Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: ABMDF29X

ABMDF29X.m

Go to the documentation of this file.
  1. ABMDF29X ; IHS/ASDST/DMJ - ADA-2006 FORM ;
  1. ;;2.6;IHS 3P BILLING SYSTEM;**3,8,9,11,13,21**;NOV 12, 2009;Build 379
  1. ;
  1. ; IHS/SD/SDR - v2.5 p12 - IM25568 - Corrected alignment issues
  1. ; IHS/SD/PMT - abm*2.6*3 - HEAT8604 - Corrected report to start at line 1, not line 2
  1. ; IHS/SD/SDR - abm*2.6*3 - HEAT12620 - Moved last lin of box 48 one space left
  1. ;IHS/SD/SDR - 2.6*13 - VMBP - RQMT_95 - Added code to populated remarks box 35 (line 41)
  1. ;IHS/SD/SDR - 2.6*21 - HEAT133954 - Made change for <UNDEF>LOOP+19^ABMDF29X. Test print erred because it
  1. ; expected ABMP("ITYPE") to be defined.
  1. ;IHS/SD/SDR - 2.6*21 - HEAT205579 - Made T1015 print first for ARBOR HEALTH PLAN
  1. ;************************************************************************************
  1. ;
  1. MARG ;Set left and top margins
  1. S U="^",(ABM("LM"),ABM("TM"),ABM("LN"))=0
  1. I $D(^ABMDEXP(29,0)) S ABM("TM")=$P(^(0),U,3),ABM("LM")=$P(^(0),U,2)
  1. W $$EN^ABMVDF("IOF")
  1. I +ABM("TM") F ABM("I")=1:1:ABM("TM") W !
  1. ;
  1. LOOP ;
  1. ;Loop thru line number array
  1. S ABM("LN")=$O(ABMF(ABM("LN"))) I +ABM("LN")=0!(ABM("LN")>63) G XIT
  1. ;
  1. ;Set to correct format line
  1. S ABM("FL")=ABM("LN")
  1. ;I ABM("LN")>27,ABM("LN")<37 S ABM("FL")=27 ;Lines 27 thru 36 are same HEAT8604
  1. I ABM("LN")>25,ABM("LN")<37 S ABM("FL")=26 ;Lines 27 thru 36 are same
  1. ;I ABM("LN")>39,ABM("LN")<44 S ABM("FL")=40 ;Lines 40 thru 42 are same HEAT8604
  1. ;I ABM("LN")>38,ABM("LN")<43 S ABM("FL")=40 ;Lines 39 thru 42 are same ;abm*2.6*9 IHS/SD/AML 2/9/2012 HEAT55261
  1. I ABM("LN")>38,ABM("LN")<43 S ABM("FL")=39 ;Lines 39 thru 42 are same ;abm*2.6*9 IHS/SD/AML 2/9/2012 HEAT55261
  1. ;
  1. ;Set tab & format variables
  1. S ABM("TABS")=$P($T(@ABM("FL")),";;",2)
  1. S ABM("FMAT")=$P($T(@ABM("FL")),";;",3)
  1. ;
  1. ;start new code abm*2.6*8 HEAT41791
  1. ;added NE Medicaid code for W0047 to print first
  1. ;I $P(ABMF(7),U)["NEBRASKA MEDICAID" D ;abm*2.6*11 HEAT117086
  1. ;start old abm*2.6*21 IHS/SD/SDR HEAT133954
  1. ;I ABMP("ITYP")="D" D ;abm*2.6*11 HEAT117086
  1. ;.F ABMLOOP=26:1:36 D
  1. ;..Q:'$D(ABMF(ABMLOOP))
  1. ;..S ABMCHK=$TR($P(ABMF(ABMLOOP),U,6)," ","")
  1. ;..I ABMCHK["T1015",ABMLOOP'=26 D
  1. ;...S ABMF("TMP")=$G(ABMF(26))
  1. ;...S ABMF(26)=$G(ABMF(ABMLOOP))
  1. ;...S ABMF(ABMLOOP)=$G(ABMF("TMP"))
  1. ;end old start new abm*2.6*21 IHS/SD/SDR HEAT133954
  1. I '$D(ABMF("TEST")) D
  1. .I $G(ABMP("ITYP"))="D"!(+$G(ABMP("INS"))'=0&(($P($G(^AUTNINS(ABMP("INS"),0)),U)="ARBOR HEALTH PLAN"))) D ;abm*2.6*21 IHS/SD/SDR HEAT205579
  1. ..F ABMLOOP=26:1:36 D
  1. ...Q:'$D(ABMF(ABMLOOP))
  1. ...S ABMCHK=$TR($P(ABMF(ABMLOOP),U,6)," ","")
  1. ...I ABMCHK["T1015",ABMLOOP'=26 D
  1. ....S ABMF("TMP")=$G(ABMF(26))
  1. ....S ABMF(26)=$G(ABMF(ABMLOOP))
  1. ....S ABMF(ABMLOOP)=$G(ABMF("TMP"))
  1. ;end new abm*2.6*21 IHS/SD/SDR HEAT133954
  1. K ABMLOOP,ABMCHK,ABMF("TMP")
  1. ;end new code abm*2.6*8 HEAT41791
  1. ;
  1. ;Skip to req'd line
  1. F Q:$Y-ABM("TM")>(ABM("LN")+0) W !
  1. ;
  1. ; Test Modes for setting Data Fields
  1. G LOOP2:'$D(ABMF("TEST"))
  1. F ABM("I")=1:1:$L(ABM("FMAT"),U) D
  1. .I $P(ABM("TABS"),U,ABM("I"))]"" D
  1. ..S ABM("FLD")=""
  1. ..S $P(ABM("FLD"),"X",$P(ABM("FMAT"),U,ABM("I"))+1)=""
  1. ..I ABM("FLD")]"" D
  1. ...W ?($P(ABM("TABS"),U,ABM("I"))+ABM("LM"))
  1. ...D FRMT
  1. G LOOP
  1. ;
  1. LOOP2 ;
  1. ;Loop thru the pieces of the line array
  1. F ABM("I")=1:1:$L(ABMF(ABM("LN")),U) D
  1. .I $P(ABM("TABS"),U,ABM("I"))]"" D
  1. ..S ABM("FLD")=$P(ABMF(ABM("LN")),U,ABM("I"))
  1. ..I ABM("FLD")]"" D
  1. ...W ?($P(ABM("TABS"),U,ABM("I"))+ABM("LM"))
  1. ...D FRMT
  1. G LOOP
  1. ;
  1. FRMT ;
  1. ;Write the field in the designated format
  1. S ABM("LTH")=$P(ABM("FMAT"),U,ABM("I"))
  1. I +ABM("LTH")=0 S ABM("LTH")=99
  1. ;
  1. I ABM("LTH")["$" D Q
  1. .S ABM("LTH")=$P(ABM("LTH"),"$")
  1. .S ABM("FLD")=$TR($FN(+ABM("FLD"),"",2),".")
  1. .S ABM("RT")=ABM("LTH")-$L(ABM("FLD"))+1
  1. .I ABM("RT")>1 D
  1. ..S ABM("BLNK")=""
  1. ..S $P(ABM("BLNK")," ",ABM("RT"))=""
  1. ..S ABM("FLD")=ABM("BLNK")_ABM("FLD")
  1. .W $E(ABM("FLD"),1,ABM("LTH"))
  1. ;
  1. I ABM("LTH")["D" D Q
  1. .S ABM("LTH")=$P(ABM("LTH"),"D")
  1. .W $E(ABM("FLD"),4,5),"/",$E(ABM("FLD"),6,7),"/",($E(ABM("FLD"),1,3)+1700)
  1. ;
  1. I ABM("LTH")["L" D
  1. .S ABM("LTH")=$P(ABM("LTH"),"L")
  1. .F Q:$L(ABM("FLD"))=ABM("LTH")!($L(ABM("FLD"))>ABM("LTH")) D
  1. ..S ABM("FLD")="0"_ABM("FLD")
  1. ;
  1. I ABM("LTH")["C" D
  1. .S ABM("LTH")=$P(ABM("LTH"),"C")
  1. .S ABM("FLD")=$J("",ABM("LTH")-$L(ABM("FLD"))\2)_ABM("FLD")
  1. ;
  1. I ABM("LTH")["R" D
  1. .S ABM("LTH")=$P(ABM("LTH"),"R")
  1. .S ABM("RT")=ABM("LTH")-$L(ABM("FLD"))+1
  1. .I ABM("RT")>1 D
  1. ..S ABM("BLNK")=""
  1. ..S $P(ABM("BLNK")," ",ABM("RT"))=""
  1. ..S ABM("FLD")=ABM("BLNK")_ABM("FLD")
  1. ;
  1. W $E(ABM("FLD"),1,ABM("LTH"))
  1. Q
  1. ;
  1. TEST ;
  1. S ABMF("TEST")=1
  1. F ABM=0:ABMF("TEST"):63 S ABMF(ABM)=""
  1. G MARG
  1. ;
  1. XIT ;
  1. I '$D(ABM("MORE")) K ABMF,ABM
  1. E K ABM("MORE")
  1. Q
  1. TEXT ;;TABS;;FIELD LENGTH
  1. ; FORMAT ($-$ FORMAT,L-LNGTH REQ'D,C-CENTER,R-RIGHT,D-DATE)
  1. ;2 ;;1;;1 HEAT8604
  1. 1 ;;1;;1
  1. ;3 ;;1;;1 HEAT8604
  1. 2 ;;1;;1
  1. ;5 ;;1;;30 HEAT8604
  1. 4 ;;1;;30
  1. ;6 ;;42;;30 HEAT8604
  1. 5 ;;42;;30
  1. ;7 ;;42;;30 HEAT8604
  1. 6 ;;42;;30
  1. ;8 ;;5^42;;34^30 HEAT8604
  1. 7 ;;5^42;;34^30
  1. ;9 ;;5;;34 HEAT8604
  1. 8 ;;5;;34
  1. ;10 ;;5;;34 HEAT8604
  1. 9 ;;5;;34
  1. ;11 ;;42^56^59^64;;10D^1^1^15 HEAT8604
  1. 10 ;;42^56^59^64;;10D^1^1^15
  1. ;13 ;;16^26^42^55;;1^1^12^20 HEAT8604
  1. 12 ;;16^26^42^55;;1^1^12^20
  1. ;15 ;;1;;30 HEAT8604
  1. 14 ;;1;;30
  1. ;16 ;;42^47^53^62^70^75;;1^1^1^1^1^1 HEAT8604
  1. 15 ;;42^47^53^62^70^75;;1^1^1^1^1^1
  1. ;17 ;;1^15^18^23;;10D^1^1^10 HEAT8604
  1. 16 ;;1^15^18^23;;10D^1^1^10
  1. ;18 ;;42;;30 HEAT8604
  1. 17 ;;42;;30
  1. ;19 ;;1^15^20^26^33^42;;11^1^1^1^1^30 HEAT8604
  1. 18 ;;1^15^20^26^33^42;;11^1^1^1^1^30
  1. ;20 ;;42;;30 HEAT8604
  1. 19 ;;42;;30
  1. ;21 ;;1;;30 HEAT8604
  1. 20 ;;1;;30
  1. ;22 ;;1;;30 HEAT8604
  1. 21 ;;1;;30
  1. ;23 ;;1^42^56^59^63;;30^10D^1^1^16 HEAT8604
  1. 22 ;;1^42^56^59^63;;30^10D^1^1^16
  1. ;27 ;;1^12^15^18^30^36^42^74;;10D^2^2^11^5^5^30^6$ HEAT8604
  1. 26 ;;1^12^15^18^30^36^42^74;;10D^2^2^11^5^5^30^6$
  1. ;38 ;;74;;6$ HEAT8604
  1. 37 ;;74;;6$
  1. ;39 ;;74;;6$ HEAT8604
  1. 38 ;;74;;6$
  1. ;40 ;;5;;73 HEAT8604
  1. 39 ;;5;;73
  1. ;44 ;;42^50^55^59^67^72^77;;1^1^1^1^2R^2R^2R HEAT8604
  1. 41 ;;1;;40
  1. ;abm*2.6*13 VMBP RQMT_95
  1. 43 ;;42^50^55^59^67^72^77;;1^1^1^1^2R^2R^2R
  1. ;46 ;;1^28^42^51^65;;25^10D^1^1^10D HEAT8604
  1. 45 ;;1^28^42^51^65;;25^10D^1^1^10D
  1. ;48 ;;47^51^54^65;;2^1^1^10D HEAT8604
  1. 47 ;;47^51^54^65;;2^1^1^10D
  1. ;50 ;;2^29^43^58^68;;25^10D^1^1^1 HEAT8604
  1. 49 ;;2^29^43^58^68;;25^10D^1^1^1
  1. ;51 ;;56^77;;10D^2 HEAT8604
  1. 50 ;;56^77;;10D^2
  1. ;55 ;;2^42^69;;30^25^10D HEAT8604
  1. 54 ;;2^42^69;;30^25^10D
  1. ;56 ;;2;;30 HEAT8604
  1. 55 ;;2;;30
  1. ;57 ;;3^48^69;;30^10^10 HEAT8604 & HEAT12620
  1. 56 ;;2^48^69;;30^10^10
  1. ;58 ;;68;;10 HEAT8604
  1. 57 ;;68;;10
  1. ;59 ;;43;;30 HEAT8604
  1. 58 ;;43;;30
  1. ;60 ;;1^14^27^43;;10^10^11^30 HEAT8604
  1. 59 ;;1^14^27^43;;10^10^11^30
  1. ;61 ;;6^28^46^68;;14^14^12^10 HEAT8604
  1. 60 ;;6^28^46^68;;14^14^14^10
  1. ;60 ;;6^28^46^68;;14^14^12^10 ;abm*2.6*8