ABMUTLP2 ; IHS/SD/SDR - PAYER UTILITIES ;
;;2.6;IHS 3P BILLING SYSTEM;**10,11,21**;NOV 12, 2009;Build 379
;abm*2.6*10 - split from ABMUTLP
;IHS/SD/AML - 2.6*21 HEAT178693 - Made change for electronic VA billing
;IHS/SD/SDR - 2.6*21 HEAT107645 - Made change to put MC (Medicaid) or CI (Private) for Kidscare.
;
SOP ;EP - source of pay (claim filing indicator)
S ABMTYP=$P($G(^AUTNINS(+ABMP("INS",ABMI),2)),U,11)
I ABMTYP D Q
.S ABMP("SOP",ABMI)=$P(^AUTTCFI(ABMTYP,0),U)
S ABMTYP=$P(ABMP("INS",ABMI),"^",2)
;S Y=$F("HMDRPWCFNIK",ABMTYP) ;abm*2.6*8 5010
;S Y=$F("HMDRPWCFIK",ABMTYP) ;abm*2.6*8 5010 ;abm*2.6*10 HEAT69121
;S ABMP("SOP",ABMI)=$P("^HM^SP^MC^MA^CI^WC^CH^ZZ^09^OF^MC","^",Y) ;abm*2.6*8 5010
;S ABMP("SOP",ABMI)=$P("^HM^SP^MC^MA^CI^WC^CH^ZZ^OF^MC","^",Y) ;abm*2.6*8 5010 ;abm*2.6*10 HEAT69121
;start new code abm*2.6*10 HEAT69121
I ABMTYP="H" S ABMP("SOP",ABMI)="HM"
I ABMTYP="M" S ABMP("SOP",ABMI)="SP"
I ABMTYP="D" S ABMP("SOP",ABMI)="MC"
I ABMTYP="R" S ABMP("SOP",ABMI)="MA"
I ABMTYP="P" S ABMP("SOP",ABMI)="CI"
I ABMTYP="W" S ABMP("SOP",ABMI)="WC"
I ABMTYP="C" S ABMP("SOP",ABMI)="CH"
I ABMTYP="F" S ABMP("SOP",ABMI)="ZZ"
I ABMTYP="I"!(ABMTYP="MD") S ABMP("SOP",ABMI)="OF"
;I ABMTYP="K" S ABMP("SOP",ABMI)="MC" ;abm*2.6*21 IHS/SD/SDR HEAT107645
I ABMTYP="K",($$GET1^DIQ(9999999.18,+ABMP("INS",ABMI),".38","I")="P") S ABMP("SOP",ABMI)="CI" ;abm*2.6*21 IHS/SD/SDR HEAT107645
I ABMTYP="K",($$GET1^DIQ(9999999.18,+ABMP("INS",ABMI),".38","I")'="P") S ABMP("SOP",ABMI)="MC" ;abm*2.6*21 IHS/SD/SDR HEAT107645
I ABMTYP="MH" S ABMP("SOP",ABMI)="16"
;end new code HEAT69121
I ABMTYP="V" S ABMP("SOP",ABMI)="VA" ;abm*2.6*21 IHS/SD/AML 8/21/14 - HEAT178693
I $$BCBS1^ABMERUTL(+ABMP("INS",ABMI)) D
.S ABMP("SOP",ABMI)="BL"
;I ABMP("SOP",ABMI)="MA",(ABMP("VTYP")=999!($P($G(^ABMDPARM(DUZ(2),1,5)),U,3)="C00900"))!((ABMP("BTYP")=831)&(ABMP("EXP")=22)) D ;abm*2.6*11 HEAT96809
I $G(ABMP("SOP",ABMI))="MA",(ABMP("VTYP")=999!($P($G(^ABMDPARM(DUZ(2),1,5)),U,3)="C00900"))!((ABMP("BTYP")=831)&(ABMP("EXP")=22)) D ;abm*2.6*11 HEAT96809
.S ABMP("SOP",ABMI)="MB"
;I ABMP("SOP",ABMI)="MA",(ABMP("VTYP")=999!($P($G(^ABMDPARM(DUZ(2),1,5)),U,3)="04402"))!((ABMP("BTYP")=831)&(ABMP("EXP")=22)) D ;abm*2.6*10 NOHEAT
;I ABMP("SOP",ABMI)="MA",(ABMP("VTYP")=999!($P($G(^ABMDPARM(DUZ(2),1,5)),U,3)="04402"))!((ABMP("BTYP")=831)&((ABMP("EXP")=22)!(ABMP("EXP")=32))) D ;abm*2.6*10 NOHEAT ;abm*2.6*10 HEAT68447
;I ABMP("SOP",ABMI)="MA",(ABMP("VTYP")=999!($P($G(^ABMDPARM(ABMP("LDFN"),1,5)),U,3)="04402"))!((ABMP("BTYP")=831)&((ABMP("EXP")=22)!(ABMP("EXP")=32))) D ;abm*2.6*10 NOHEAT ;abm*2.6*10 HEAT68447 ;abm*2.6*10 HEAT74059
;I ABMP("SOP",ABMI)="MA",(ABMP("VTYP")=999!(("^04312^04212^04112^04412^04402^")[("^"_$P($G(^ABMDPARM(ABMP("LDFN"),1,5)),U,3)_"^")))!((ABMP("BTYP")=831)&((ABMP("EXP")=22)!(ABMP("EXP")=32))) D ;abm*2.6*10 NOHEAT HEAT68447 HEAT74059 ;abm*2.6*11 HEAT96809
I $G(ABMP("SOP",ABMI))="MA",(ABMP("VTYP")=999!(("^04312^04212^04112^04412^04402^")[("^"_$P($G(^ABMDPARM(ABMP("LDFN"),1,5)),U,3)_"^")))!((ABMP("BTYP")=831)&((ABMP("EXP")=22)!(ABMP("EXP")=32))) D ;abm*2.6*11 HEAT96809
.S ABMP("SOP",ABMI)="MB"
Q
OVER ;EP - get override values from 3P Ins file
;S ABMOEXP=$S(ABMP("EXP")=21:11,ABMP("EXP")=22:14,ABMP("EXP")=23:18,1:0) ;abm*2.6*10 HEAT65683
S ABMOEXP=$S(ABMP("EXP")=21!(ABMP("EXP")=31):11,ABMP("EXP")=22!(ABMP("EXP")=32):14,ABMP("EXP")=23!(ABMP("EXP")=33):18,1:0) ;abm*2.6*10 HEAT65683
Q:ABMOEXP=0
S ABMOPC=0
;F S ABMOPC=$O(^ABMNINS(DUZ(2),ABMP("INS"),2,"AOVR",ABMOEXP,ABMOLN,ABMOPC)) Q:'ABMOPC D ;abm*2.6*10 HEAT53137
F S ABMOPC=$O(^ABMNINS(ABMP("LDFN"),ABMP("INS"),2,"AOVR",ABMOEXP,ABMOLN,ABMOPC)) Q:'ABMOPC D ;abm*2.6*10 HEAT53137
.K ABMOVTYP
.;start old code abm*2.6*10 HEAT53137
.;I $D(^ABMNINS(DUZ(2),ABMP("INS"),2,"AOVR",ABMOEXP,ABMOLN,ABMOPC,0)) S ABMOVTYP=0
.;I $D(^ABMNINS(DUZ(2),ABMP("INS"),2,"AOVR",ABMOEXP,ABMOLN,ABMOPC,ABMP("VTYP"))) S ABMOVTYP=ABMP("VTYP")
.;end old code start new code HEAT53137
.I $D(^ABMNINS(ABMP("LDFN"),ABMP("INS"),2,"AOVR",ABMOEXP,ABMOLN,ABMOPC,0)) S ABMOVTYP=0
.I $D(^ABMNINS(ABMP("LDFN"),ABMP("INS"),2,"AOVR",ABMOEXP,ABMOLN,ABMOPC,ABMP("VTYP"))) S ABMOVTYP=ABMP("VTYP")
.;end new code HEAT53137
.Q:'$D(ABMOVTYP)
.S ABMVALUE=^ABMNINS(DUZ(2),ABMP("INS"),2,"AOVR",ABMOEXP,ABMOLN,ABMOPC,ABMOVTYP)
.;
.I ABMOLN=51 S ABMOLN=40,ABMPC=4 D Q
..S $P(ABMR("NM1",ABMOLN),"^",ABMPC)=ABMVALUE
..S $P(ABMREC("NM1"),"*",ABMPC)=ABMVALUE
.;
.I ABMOLN=52 S ABMOLN=20,ABMPC=2 D Q
..S $P(ABMR("N3",ABMOLN),"^",ABMPC)=ABMVALUE
..S $P(ABMREC("N3"),"*",ABMPC)=ABMVALUE
.;
.I ABMOLN=53 D Q
..S ABMR("N4",20)=$P(ABMVALUE,",") ;city
..S $P(ABMREC("N4"),"*",2)=ABMR("N4",20)
..S ABMR("N4",30)=$P($P(ABMVALUE,", ",2)," ") ;state
..S $P(ABMREC("N4"),"*",3)=ABMR("N4",30)
..S ABMR("N4",40)=$P($P(ABMVALUE,",",2)," ",2) ;zip
..S $P(ABMREC("N4"),"*",4)=ABMR("N4",40)
;
K ABMOLN,ABMOPC,ABMVALUE,ABMOVTYP
Q
PAYED ; EP ;abm*2.6*19 IHS/SD/SDR HEAT168248 - split from ABMUTLP
; Build Ins Pymt Array
K ABMP("PAYED")
S (ABMOACNT,ABMPRCNT)=1
S ABMCOCNT=1
S:'$G(ABMDUZ2) ABMDUZ2=DUZ(2)
N L
S L=+$P(^ABMDBILL(ABMDUZ2,ABMP("BDFN"),0),U)_" " ;Bill#
F S L=$O(^ABMDBILL(ABMDUZ2,"B",L)) Q:+L'=+$P(^ABMDBILL(ABMDUZ2,ABMP("BDFN"),0),U)!(L="") D
.N I
.S I=$O(^ABMDBILL(ABMDUZ2,"B",L,0)) ;IEN
.Q:$P(^ABMDBILL(ABMDUZ2,I,0),U,4)="X" ;Quit if cancelled
.N K
.S K=$P(^ABMDBILL(ABMDUZ2,I,0),U,8) ;Active ins IEN
.N J
.S J=0
.F S J=$O(^ABMDBILL(ABMDUZ2,I,3,J)) Q:'J D
..N ABMPAY
..K ABMSAR ;abm*2.6*10 COB billing
..S ABMPAY=+$P(^ABMDBILL(ABMDUZ2,I,3,J,0),U,2) ;Amt paid
..S ABMP("PAYED",K)=+$G(ABMP("PAYED",K))+ABMPAY ;Add amt paid per ins
..S $P(ABMP("PAYED",K),"^",2)=$P(^ABMDBILL(ABMDUZ2,I,3,J,0),U)
..S ABMP("PAYED")=+$G(ABMP("PAYED"))+ABMPAY ;Add amt paid
..S ABMADJC=$P($G(^ABMDBILL(ABMDUZ2,I,3,J,0)),U,15) ;adj category
..I $P($G(^ABMNINS(ABMP("LDFN"),K,0)),U,11)="Y" S ABMADJC=4,ABMSAR=96 ;abm*2.6*3 HEAT7574
..Q:(ABMADJC="") ;no adj cat
..I ABMADJC=14 S ABMAMT=+$P($G(^ABMDBILL(ABMDUZ2,I,3,J,0)),U,4) ;co-ins
..I ABMADJC=13 S ABMAMT=+$P($G(^ABMDBILL(ABMDUZ2,I,3,J,0)),U,3) ;deduct
..I ABMADJC=3 S ABMAMT=+$P($G(^ABMDBILL(ABMDUZ2,I,3,J,0)),U,6) ;w-off
..I ABMADJC=4 S ABMAMT=+$P($G(^ABMDBILL(ABMDUZ2,I,3,J,0)),U,7) ;non-cov
..I ABMADJC=15 S ABMAMT=+$P($G(^ABMDBILL(ABMDUZ2,I,3,J,0)),U,9) ;penalty
..I ABMADJC=16 S ABMAMT=+$P($G(^ABMDBILL(ABMDUZ2,I,3,J,0)),U,12) ;g. allow
..I ABMADJC=19 S ABMAMT=+$P($G(^ABMDBILL(ABMDUZ2,I,3,J,0)),U,13) ;ref
..I ABMADJC=20 S ABMAMT=+$P($G(^ABMDBILL(ABMDUZ2,I,3,J,0)),U,14) ;pymt credit
..;abm*2.6*10 COB billing - switched below lines back because ABMSAR wasn't getting set; added "E" to first line
..S:(+$G(ABMSAR)=0) ABMSAR=$$GET1^DIQ("90056.06",$P($G(^ABMDBILL(ABMDUZ2,I,3,J,0)),U,17),".01","E") ;std reason ;abm*2.6*3 HEAT7574 ;abm*2.6*9 NOHEAT
..;S:(+$G(ABMSAR)'=0) ABMSAR=$$GET1^DIQ(90056.06,($P($G(^ABMDBILL(ABMDUZ2,I,3,J,0)),U,17)),".01","E") ;std reason ;abm*2.6*3 HEAT7574 ;abm*2.6*9 NOHEAT
..;I ABMADJC=4,(ABMSAR=96),($P($G(^ABMNINS(ABMP("LDFN"),K,0)),U,11)="Y") S ABMAMT=$P($G(^ABMDBILL(ABMDUZ2,I,2)),U) ;abm*2.6*3 HEAT7574 ;abm*2.6*9
..;I ABMADJC=4,($G(ABMSAR)=96),($P($G(^ABMNINS(ABMP("LDFN"),K,0)),U,11)="Y") S ABMAMT=$P($G(^ABMDBILL(ABMDUZ2,I,2)),U) ;abm*2.6*3 HEAT7574 ;abm*2.6*9 ;abm*2.6*10 COB billing
..;start new code abm*2.6*10 COB billing
..I ($P($G(^ABMNINS(ABMP("LDFN"),K,0)),U,11)="Y"),$$GET1^DIQ(9999999.181,$$GET1^DIQ(9999999.18,+ABMP("INS"),".211","I"),1,"I")="R" D Q
...S ABMP(K,"OA",ABMOACNT)="96^"_$S((ABMP("EXP")>30):ABMP("BILL"),1:$P($G(^ABMDBILL(ABMDUZ2,I,2)),U))_"^1"
...S (ABMP("PAYED"),$P(ABMP("PAYED",K),"^",0,2))=0
..;end abm*2.6*10 COB billing
..I ($G(ABMSAR)="A2") S ABMP(K,"CO",ABMCOCNT)=ABMSAR_"^"_ABMAMT_"^1",ABMCOCNT=ABMCOCNT+1 Q
..I $G(ABMSAR)=1!($G(ABMSAR)=2)!($G(ABMSAR)=3) S ABMP(K,"PR",ABMPRCNT)=ABMSAR_"^"_ABMAMT_"^1",ABMPRCNT=ABMPRCNT+1
..;I $G(ABMSAR)'=1&($G(ABMSAR)'=2)&($G(ABMSAR)'=3) S ABMP(K,"OA",ABMOACNT)=ABMSAR_"^"_ABMAMT_"^1",ABMOACNT=ABMOACNT+1 ;abm*2.6*9 NOHEAT
..I +$G(ABMSAR)'=0&($G(ABMSAR)'=1)&($G(ABMSAR)'=2)&($G(ABMSAR)'=3) S ABMP(K,"OA",ABMOACNT)=ABMSAR_"^"_ABMAMT_"^1",ABMOACNT=ABMOACNT+1 ;abm*2.6*9 NOHEAT
.;start new abm*2.6*19 IHS/SD/SDR HEAT168248
.K ABMTP,ABMTI,ABMTSAR,ABMTREAL
.S ABMTI=0
.F S ABMTI=$O(ABMP(ABMTI)) Q:'ABMTI D
..F ABMTCD="OA","CO","PR" D
...S ABMTT=0
...F S ABMTT=$O(ABMP(ABMTI,ABMTCD,ABMTT)) Q:'ABMTT D
....S ABMTSAR=$P(ABMP(ABMTI,ABMTCD,ABMTT),U)
....I $D(ABMTP(ABMTSAR)) D
.....S ABMTREAL=$O(ABMTP(ABMTSAR,""))
.....S $P(ABMP(ABMTI,ABMTCD,ABMTREAL),U,2)=$P(ABMP(ABMTI,ABMTCD,ABMTREAL),U,2)+$P(ABMP(ABMTI,ABMTCD,ABMTT),U,2)
.....K ABMP(ABMTI,ABMTCD,ABMTT)
....I '$D(ABMTP(ABMTSAR)) S ABMTP(ABMTSAR,ABMTT)=""
.K ABMTP,ABMTI,ABMTSAR,ABMTREAL
.S ABMTI=0
.F S ABMTI=$O(ABMP(ABMTI)) Q:'ABMTI D
..F ABMTTTYP="OA","CO","PR" D
..M ABMTP(ABMTI,ABMTTTYP)=ABMP(ABMTI,ABMTTTYP)
..K ABMP(ABMTI,ABMTTTYP)
.S ABMCNT=1
.S ABMTI=0
.F S ABMTI=$O(ABMTP(ABMTI)) Q:'ABMTI D
..S ABMTTTYP=""
..F S ABMTTTYP=$O(ABMTP(ABMTI,ABMTTTYP)) Q:ABMTTTYP="" D
...S ABMTT=0
...F S ABMTT=$O(ABMTP(ABMTI,ABMTTTYP,ABMTT)) Q:'ABMTT D
....S ABMP(ABMTI,ABMTTTYP,ABMCNT)=$G(ABMTP(ABMTI,ABMTTTYP,ABMTT))
....S ABMCNT=ABMCNT+1
.K ABMTP,ABMTI,ABMTSAR,ABMTREAL,ABMTTTYP,ABMCNT,ABMTT
.;end new abm*2.6*19 IHS/SD/SDR HEAT168248
Q
ABMUTLP2 ; IHS/SD/SDR - PAYER UTILITIES ;
+1 ;;2.6;IHS 3P BILLING SYSTEM;**10,11,21**;NOV 12, 2009;Build 379
+2 ;abm*2.6*10 - split from ABMUTLP
+3 ;IHS/SD/AML - 2.6*21 HEAT178693 - Made change for electronic VA billing
+4 ;IHS/SD/SDR - 2.6*21 HEAT107645 - Made change to put MC (Medicaid) or CI (Private) for Kidscare.
+5 ;
SOP ;EP - source of pay (claim filing indicator)
+1 SET ABMTYP=$PIECE($GET(^AUTNINS(+ABMP("INS",ABMI),2)),U,11)
+2 IF ABMTYP
Begin DoDot:1
+3 SET ABMP("SOP",ABMI)=$PIECE(^AUTTCFI(ABMTYP,0),U)
End DoDot:1
QUIT
+4 SET ABMTYP=$PIECE(ABMP("INS",ABMI),"^",2)
+5 ;S Y=$F("HMDRPWCFNIK",ABMTYP) ;abm*2.6*8 5010
+6 ;S Y=$F("HMDRPWCFIK",ABMTYP) ;abm*2.6*8 5010 ;abm*2.6*10 HEAT69121
+7 ;S ABMP("SOP",ABMI)=$P("^HM^SP^MC^MA^CI^WC^CH^ZZ^09^OF^MC","^",Y) ;abm*2.6*8 5010
+8 ;S ABMP("SOP",ABMI)=$P("^HM^SP^MC^MA^CI^WC^CH^ZZ^OF^MC","^",Y) ;abm*2.6*8 5010 ;abm*2.6*10 HEAT69121
+9 ;start new code abm*2.6*10 HEAT69121
+10 IF ABMTYP="H"
SET ABMP("SOP",ABMI)="HM"
+11 IF ABMTYP="M"
SET ABMP("SOP",ABMI)="SP"
+12 IF ABMTYP="D"
SET ABMP("SOP",ABMI)="MC"
+13 IF ABMTYP="R"
SET ABMP("SOP",ABMI)="MA"
+14 IF ABMTYP="P"
SET ABMP("SOP",ABMI)="CI"
+15 IF ABMTYP="W"
SET ABMP("SOP",ABMI)="WC"
+16 IF ABMTYP="C"
SET ABMP("SOP",ABMI)="CH"
+17 IF ABMTYP="F"
SET ABMP("SOP",ABMI)="ZZ"
+18 IF ABMTYP="I"!(ABMTYP="MD")
SET ABMP("SOP",ABMI)="OF"
+19 ;I ABMTYP="K" S ABMP("SOP",ABMI)="MC" ;abm*2.6*21 IHS/SD/SDR HEAT107645
+20 ;abm*2.6*21 IHS/SD/SDR HEAT107645
IF ABMTYP="K"
IF ($$GET1^DIQ(9999999.18,+ABMP("INS",ABMI),".38","I")="P")
SET ABMP("SOP",ABMI)="CI"
+21 ;abm*2.6*21 IHS/SD/SDR HEAT107645
IF ABMTYP="K"
IF ($$GET1^DIQ(9999999.18,+ABMP("INS",ABMI),".38","I")'="P")
SET ABMP("SOP",ABMI)="MC"
+22 IF ABMTYP="MH"
SET ABMP("SOP",ABMI)="16"
+23 ;end new code HEAT69121
+24 ;abm*2.6*21 IHS/SD/AML 8/21/14 - HEAT178693
IF ABMTYP="V"
SET ABMP("SOP",ABMI)="VA"
+25 IF $$BCBS1^ABMERUTL(+ABMP("INS",ABMI))
Begin DoDot:1
+26 SET ABMP("SOP",ABMI)="BL"
End DoDot:1
+27 ;I ABMP("SOP",ABMI)="MA",(ABMP("VTYP")=999!($P($G(^ABMDPARM(DUZ(2),1,5)),U,3)="C00900"))!((ABMP("BTYP")=831)&(ABMP("EXP")=22)) D ;abm*2.6*11 HEAT96809
+28 ;abm*2.6*11 HEAT96809
IF $GET(ABMP("SOP",ABMI))="MA"
IF (ABMP("VTYP")=999!($PIECE($GET(^ABMDPARM(DUZ(2),1,5)),U,3)="C00900"))!((ABMP("BTYP")=831)&(ABMP("EXP")=22))
Begin DoDot:1
+29 SET ABMP("SOP",ABMI)="MB"
End DoDot:1
+30 ;I ABMP("SOP",ABMI)="MA",(ABMP("VTYP")=999!($P($G(^ABMDPARM(DUZ(2),1,5)),U,3)="04402"))!((ABMP("BTYP")=831)&(ABMP("EXP")=22)) D ;abm*2.6*10 NOHEAT
+31 ;I ABMP("SOP",ABMI)="MA",(ABMP("VTYP")=999!($P($G(^ABMDPARM(DUZ(2),1,5)),U,3)="04402"))!((ABMP("BTYP")=831)&((ABMP("EXP")=22)!(ABMP("EXP")=32))) D ;abm*2.6*10 NOHEAT ;abm*2.6*10 HEAT68447
+32 ;I ABMP("SOP",ABMI)="MA",(ABMP("VTYP")=999!($P($G(^ABMDPARM(ABMP("LDFN"),1,5)),U,3)="04402"))!((ABMP("BTYP")=831)&((ABMP("EXP")=22)!(ABMP("EXP")=32))) D ;abm*2.6*10 NOHEAT ;abm*2.6*10 HEAT68447 ;abm*2.6*10 HEAT74059
+33 ;I ABMP("SOP",ABMI)="MA",(ABMP("VTYP")=999!(("^04312^04212^04112^04412^04402^")[("^"_$P($G(^ABMDPARM(ABMP("LDFN"),1,5)),U,3)_"^")))!((ABMP("BTYP")=831)&((ABMP("EXP")=22)!(ABMP("EXP")=32))) D ;abm*2.6*10 NOHEAT HEAT68447 HEAT74059 ;abm*2.6*11 H
EAT96809
+34 ;abm*2.6*11 HEAT96809
IF $GET(ABMP("SOP",ABMI))="MA"
IF (ABMP("VTYP")=999!(("^04312^04212^04112^04412^04402^")[("^"_$PIECE($GET(^ABMDPARM(ABMP("LDFN"),1,5)),U,3)_"^")))!((ABMP("BTYP")=831)&((ABMP("EXP")=22)!(ABMP("EXP")=32)))
Begin DoDot:1
+35 SET ABMP("SOP",ABMI)="MB"
End DoDot:1
+36 QUIT
OVER ;EP - get override values from 3P Ins file
+1 ;S ABMOEXP=$S(ABMP("EXP")=21:11,ABMP("EXP")=22:14,ABMP("EXP")=23:18,1:0) ;abm*2.6*10 HEAT65683
+2 ;abm*2.6*10 HEAT65683
SET ABMOEXP=$SELECT(ABMP("EXP")=21!(ABMP("EXP")=31):11,ABMP("EXP")=22!(ABMP("EXP")=32):14,ABMP("EXP")=23!(ABMP("EXP")=33):18,1:0)
+3 IF ABMOEXP=0
QUIT
+4 SET ABMOPC=0
+5 ;F S ABMOPC=$O(^ABMNINS(DUZ(2),ABMP("INS"),2,"AOVR",ABMOEXP,ABMOLN,ABMOPC)) Q:'ABMOPC D ;abm*2.6*10 HEAT53137
+6 ;abm*2.6*10 HEAT53137
FOR
SET ABMOPC=$ORDER(^ABMNINS(ABMP("LDFN"),ABMP("INS"),2,"AOVR",ABMOEXP,ABMOLN,ABMOPC))
IF 'ABMOPC
QUIT
Begin DoDot:1
+7 KILL ABMOVTYP
+8 ;start old code abm*2.6*10 HEAT53137
+9 ;I $D(^ABMNINS(DUZ(2),ABMP("INS"),2,"AOVR",ABMOEXP,ABMOLN,ABMOPC,0)) S ABMOVTYP=0
+10 ;I $D(^ABMNINS(DUZ(2),ABMP("INS"),2,"AOVR",ABMOEXP,ABMOLN,ABMOPC,ABMP("VTYP"))) S ABMOVTYP=ABMP("VTYP")
+11 ;end old code start new code HEAT53137
+12 IF $DATA(^ABMNINS(ABMP("LDFN"),ABMP("INS"),2,"AOVR",ABMOEXP,ABMOLN,ABMOPC,0))
SET ABMOVTYP=0
+13 IF $DATA(^ABMNINS(ABMP("LDFN"),ABMP("INS"),2,"AOVR",ABMOEXP,ABMOLN,ABMOPC,ABMP("VTYP")))
SET ABMOVTYP=ABMP("VTYP")
+14 ;end new code HEAT53137
+15 IF '$DATA(ABMOVTYP)
QUIT
+16 SET ABMVALUE=^ABMNINS(DUZ(2),ABMP("INS"),2,"AOVR",ABMOEXP,ABMOLN,ABMOPC,ABMOVTYP)
+17 ;
+18 IF ABMOLN=51
SET ABMOLN=40
SET ABMPC=4
Begin DoDot:2
+19 SET $PIECE(ABMR("NM1",ABMOLN),"^",ABMPC)=ABMVALUE
+20 SET $PIECE(ABMREC("NM1"),"*",ABMPC)=ABMVALUE
End DoDot:2
QUIT
+21 ;
+22 IF ABMOLN=52
SET ABMOLN=20
SET ABMPC=2
Begin DoDot:2
+23 SET $PIECE(ABMR("N3",ABMOLN),"^",ABMPC)=ABMVALUE
+24 SET $PIECE(ABMREC("N3"),"*",ABMPC)=ABMVALUE
End DoDot:2
QUIT
+25 ;
+26 IF ABMOLN=53
Begin DoDot:2
+27 ;city
SET ABMR("N4",20)=$PIECE(ABMVALUE,",")
+28 SET $PIECE(ABMREC("N4"),"*",2)=ABMR("N4",20)
+29 ;state
SET ABMR("N4",30)=$PIECE($PIECE(ABMVALUE,", ",2)," ")
+30 SET $PIECE(ABMREC("N4"),"*",3)=ABMR("N4",30)
+31 ;zip
SET ABMR("N4",40)=$PIECE($PIECE(ABMVALUE,",",2)," ",2)
+32 SET $PIECE(ABMREC("N4"),"*",4)=ABMR("N4",40)
End DoDot:2
QUIT
End DoDot:1
+33 ;
+34 KILL ABMOLN,ABMOPC,ABMVALUE,ABMOVTYP
+35 QUIT
PAYED ; EP ;abm*2.6*19 IHS/SD/SDR HEAT168248 - split from ABMUTLP
+1 ; Build Ins Pymt Array
+2 KILL ABMP("PAYED")
+3 SET (ABMOACNT,ABMPRCNT)=1
+4 SET ABMCOCNT=1
+5 IF '$GET(ABMDUZ2)
SET ABMDUZ2=DUZ(2)
+6 NEW L
+7 ;Bill#
SET L=+$PIECE(^ABMDBILL(ABMDUZ2,ABMP("BDFN"),0),U)_" "
+8 FOR
SET L=$ORDER(^ABMDBILL(ABMDUZ2,"B",L))
IF +L'=+$PIECE(^ABMDBILL(ABMDUZ2,ABMP("BDFN"),0),U)!(L="")
QUIT
Begin DoDot:1
+9 NEW I
+10 ;IEN
SET I=$ORDER(^ABMDBILL(ABMDUZ2,"B",L,0))
+11 ;Quit if cancelled
IF $PIECE(^ABMDBILL(ABMDUZ2,I,0),U,4)="X"
QUIT
+12 NEW K
+13 ;Active ins IEN
SET K=$PIECE(^ABMDBILL(ABMDUZ2,I,0),U,8)
+14 NEW J
+15 SET J=0
+16 FOR
SET J=$ORDER(^ABMDBILL(ABMDUZ2,I,3,J))
IF 'J
QUIT
Begin DoDot:2
+17 NEW ABMPAY
+18 ;abm*2.6*10 COB billing
KILL ABMSAR
+19 ;Amt paid
SET ABMPAY=+$PIECE(^ABMDBILL(ABMDUZ2,I,3,J,0),U,2)
+20 ;Add amt paid per ins
SET ABMP("PAYED",K)=+$GET(ABMP("PAYED",K))+ABMPAY
+21 SET $PIECE(ABMP("PAYED",K),"^",2)=$PIECE(^ABMDBILL(ABMDUZ2,I,3,J,0),U)
+22 ;Add amt paid
SET ABMP("PAYED")=+$GET(ABMP("PAYED"))+ABMPAY
+23 ;adj category
SET ABMADJC=$PIECE($GET(^ABMDBILL(ABMDUZ2,I,3,J,0)),U,15)
+24 ;abm*2.6*3 HEAT7574
IF $PIECE($GET(^ABMNINS(ABMP("LDFN"),K,0)),U,11)="Y"
SET ABMADJC=4
SET ABMSAR=96
+25 ;no adj cat
IF (ABMADJC="")
QUIT
+26 ;co-ins
IF ABMADJC=14
SET ABMAMT=+$PIECE($GET(^ABMDBILL(ABMDUZ2,I,3,J,0)),U,4)
+27 ;deduct
IF ABMADJC=13
SET ABMAMT=+$PIECE($GET(^ABMDBILL(ABMDUZ2,I,3,J,0)),U,3)
+28 ;w-off
IF ABMADJC=3
SET ABMAMT=+$PIECE($GET(^ABMDBILL(ABMDUZ2,I,3,J,0)),U,6)
+29 ;non-cov
IF ABMADJC=4
SET ABMAMT=+$PIECE($GET(^ABMDBILL(ABMDUZ2,I,3,J,0)),U,7)
+30 ;penalty
IF ABMADJC=15
SET ABMAMT=+$PIECE($GET(^ABMDBILL(ABMDUZ2,I,3,J,0)),U,9)
+31 ;g. allow
IF ABMADJC=16
SET ABMAMT=+$PIECE($GET(^ABMDBILL(ABMDUZ2,I,3,J,0)),U,12)
+32 ;ref
IF ABMADJC=19
SET ABMAMT=+$PIECE($GET(^ABMDBILL(ABMDUZ2,I,3,J,0)),U,13)
+33 ;pymt credit
IF ABMADJC=20
SET ABMAMT=+$PIECE($GET(^ABMDBILL(ABMDUZ2,I,3,J,0)),U,14)
+34 ;abm*2.6*10 COB billing - switched below lines back because ABMSAR wasn't getting set; added "E" to first line
+35 ;std reason ;abm*2.6*3 HEAT7574 ;abm*2.6*9 NOHEAT
IF (+$GET(ABMSAR)=0)
SET ABMSAR=$$GET1^DIQ("90056.06",$PIECE($GET(^ABMDBILL(ABMDUZ2,I,3,J,0)),U,17),".01","E")
+36 ;S:(+$G(ABMSAR)'=0) ABMSAR=$$GET1^DIQ(90056.06,($P($G(^ABMDBILL(ABMDUZ2,I,3,J,0)),U,17)),".01","E") ;std reason ;abm*2.6*3 HEAT7574 ;abm*2.6*9 NOHEAT
+37 ;I ABMADJC=4,(ABMSAR=96),($P($G(^ABMNINS(ABMP("LDFN"),K,0)),U,11)="Y") S ABMAMT=$P($G(^ABMDBILL(ABMDUZ2,I,2)),U) ;abm*2.6*3 HEAT7574 ;abm*2.6*9
+38 ;I ABMADJC=4,($G(ABMSAR)=96),($P($G(^ABMNINS(ABMP("LDFN"),K,0)),U,11)="Y") S ABMAMT=$P($G(^ABMDBILL(ABMDUZ2,I,2)),U) ;abm*2.6*3 HEAT7574 ;abm*2.6*9 ;abm*2.6*10 COB billing
+39 ;start new code abm*2.6*10 COB billing
+40 IF ($PIECE($GET(^ABMNINS(ABMP("LDFN"),K,0)),U,11)="Y")
IF $$GET1^DIQ(9999999.181,$$GET1^DIQ(9999999.18,+ABMP("INS"),".211","I"),1,"I")="R"
Begin DoDot:3
+41 SET ABMP(K,"OA",ABMOACNT)="96^"_$SELECT((ABMP("EXP")>30):ABMP("BILL"),1:$PIECE($GET(^ABMDBILL(ABMDUZ2,I,2)),U))_"^1"
+42 SET (ABMP("PAYED"),$PIECE(ABMP("PAYED",K),"^",0,2))=0
End DoDot:3
QUIT
+43 ;end abm*2.6*10 COB billing
+44 IF ($GET(ABMSAR)="A2")
SET ABMP(K,"CO",ABMCOCNT)=ABMSAR_"^"_ABMAMT_"^1"
SET ABMCOCNT=ABMCOCNT+1
QUIT
+45 IF $GET(ABMSAR)=1!($GET(ABMSAR)=2)!($GET(ABMSAR)=3)
SET ABMP(K,"PR",ABMPRCNT)=ABMSAR_"^"_ABMAMT_"^1"
SET ABMPRCNT=ABMPRCNT+1
+46 ;I $G(ABMSAR)'=1&($G(ABMSAR)'=2)&($G(ABMSAR)'=3) S ABMP(K,"OA",ABMOACNT)=ABMSAR_"^"_ABMAMT_"^1",ABMOACNT=ABMOACNT+1 ;abm*2.6*9 NOHEAT
+47 ;abm*2.6*9 NOHEAT
IF +$GET(ABMSAR)'=0&($GET(ABMSAR)'=1)&($GET(ABMSAR)'=2)&($GET(ABMSAR)'=3)
SET ABMP(K,"OA",ABMOACNT)=ABMSAR_"^"_ABMAMT_"^1"
SET ABMOACNT=ABMOACNT+1
End DoDot:2
+48 ;start new abm*2.6*19 IHS/SD/SDR HEAT168248
+49 KILL ABMTP,ABMTI,ABMTSAR,ABMTREAL
+50 SET ABMTI=0
+51 FOR
SET ABMTI=$ORDER(ABMP(ABMTI))
IF 'ABMTI
QUIT
Begin DoDot:2
+52 FOR ABMTCD="OA","CO","PR"
Begin DoDot:3
+53 SET ABMTT=0
+54 FOR
SET ABMTT=$ORDER(ABMP(ABMTI,ABMTCD,ABMTT))
IF 'ABMTT
QUIT
Begin DoDot:4
+55 SET ABMTSAR=$PIECE(ABMP(ABMTI,ABMTCD,ABMTT),U)
+56 IF $DATA(ABMTP(ABMTSAR))
Begin DoDot:5
+57 SET ABMTREAL=$ORDER(ABMTP(ABMTSAR,""))
+58 SET $PIECE(ABMP(ABMTI,ABMTCD,ABMTREAL),U,2)=$PIECE(ABMP(ABMTI,ABMTCD,ABMTREAL),U,2)+$PIECE(ABMP(ABMTI,ABMTCD,ABMTT),U,2)
+59 KILL ABMP(ABMTI,ABMTCD,ABMTT)
End DoDot:5
+60 IF '$DATA(ABMTP(ABMTSAR))
SET ABMTP(ABMTSAR,ABMTT)=""
End DoDot:4
End DoDot:3
End DoDot:2
+61 KILL ABMTP,ABMTI,ABMTSAR,ABMTREAL
+62 SET ABMTI=0
+63 FOR
SET ABMTI=$ORDER(ABMP(ABMTI))
IF 'ABMTI
QUIT
Begin DoDot:2
+64 FOR ABMTTTYP="OA","CO","PR"
Begin DoDot:3
End DoDot:3
+65 MERGE ABMTP(ABMTI,ABMTTTYP)=ABMP(ABMTI,ABMTTTYP)
+66 KILL ABMP(ABMTI,ABMTTTYP)
End DoDot:2
+67 SET ABMCNT=1
+68 SET ABMTI=0
+69 FOR
SET ABMTI=$ORDER(ABMTP(ABMTI))
IF 'ABMTI
QUIT
Begin DoDot:2
+70 SET ABMTTTYP=""
+71 FOR
SET ABMTTTYP=$ORDER(ABMTP(ABMTI,ABMTTTYP))
IF ABMTTTYP=""
QUIT
Begin DoDot:3
+72 SET ABMTT=0
+73 FOR
SET ABMTT=$ORDER(ABMTP(ABMTI,ABMTTTYP,ABMTT))
IF 'ABMTT
QUIT
Begin DoDot:4
+74 SET ABMP(ABMTI,ABMTTTYP,ABMCNT)=$GET(ABMTP(ABMTI,ABMTTTYP,ABMTT))
+75 SET ABMCNT=ABMCNT+1
End DoDot:4
End DoDot:3
End DoDot:2
+76 KILL ABMTP,ABMTI,ABMTSAR,ABMTREAL,ABMTTTYP,ABMCNT,ABMTT
+77 ;end new abm*2.6*19 IHS/SD/SDR HEAT168248
End DoDot:1
+78 QUIT