ABMDF27D ; IHS/ASDST/DMJ - Set HCFA1500 (08/05) Print Array - Part 4 ;
;;2.6;IHS Third Party Billing;**1,2,4,6,9,11,14**;NOV 12, 2009;Build 238
;
; IHS/SD/SDR - v2.5 p12 - IM25331
; Put taxonomy code if NPI ONLY
; IHS/SD/SDR,AML - v2.5 p13 - NO IM
; IHS/SD/SDR - v2.5 p13 - IM26203
;
; IHS/SD/SDR - v2.6 CSV
; IHS/SD/SDR - abm*2.6*1 - HEAT5612 - modifier wasn't printing
; IHS/SD/SDR - abm*2.6*2 - FIXPMS10006 - check for print date (FL31)
; IHS/SD/SDR - abm*2.6*4 - HEAT12115 - made change to allow 8 DX codes to print
; IHS/SD/SDR - 2.6*9 - HEAT46087 - Changed so it will print 4 or 8 DXs based on parameter
;IHS/SD/SDR - 2.6*14 - HEAT161263 - Changed to $$GET1^DIQ so output transform will execute for SNOMED/Provider Narrative
;IHS/SD/SDR - 2.6*14 - Updated calls to DX^ABMCVAPI to be numeric
; *********************************************************************
;
DX ; Diagnosis Info
K ABMP("DX")
;S ABM="" F ABM("I")=31:1:34 S ABM=$O(^ABMDBILL(DUZ(2),ABMP("BDFN"),17,"C",ABM)) Q:'ABM D ;abm*2.6*4 HEAT12115
;S ABM="" F ABM("I")=31:1:38 S ABM=$O(^ABMDBILL(DUZ(2),ABMP("BDFN"),17,"C",ABM)) Q:'ABM D ;abm*2.6*4 HEAT12115 ;abm*2.6*9 HEAT46087
S ABMEND=$S($P($G(^ABMNINS(ABMP("LDFN"),ABMP("INS"),1,ABMP("VTYP"),1)),U,16)=8:38,1:34) ;abm*2.6*9 HEAT46087
S ABM="" F ABM("I")=31:1:ABMEND S ABM=$O(^ABMDBILL(DUZ(2),ABMP("BDFN"),17,"C",ABM)) Q:'ABM D ;abm*2.6*4 HEAT12115 ;abm*2.6*9 HEAT46087
.S ABM("X")=$O(^ABMDBILL(DUZ(2),ABMP("BDFN"),17,"C",ABM,""))
.;S ABM(9)=$P(^AUTNPOV($P(^ABMDBILL(DUZ(2),ABMP("BDFN"),17,ABM("X"),0),U,3),0),U) ;abm*2.6*14 HEAT161263
.S ABM(9)=$$GET1^DIQ(9999999.27,$P(^ABMDBILL(DUZ(2),ABMP("BDFN"),17,ABM("X"),0),U,3),".01","E") ;abm*2.6*14 HEAT161263
.S ABM(9)=$S(ABM(9)["*ICD*":$P(ABM(9)," "),1:ABM(9))
.;S ABM("ID")=$S(ABM("I")=32:33,ABM("I")=34:33,1:31) ;abm*2.6*4 HEAT12115
.;S ABM("ID")=$S(ABM("I")=32:33,ABM("I")=34:33,ABM("I")=36:33,ABM("I")=38:33,1:31) ;abm*2.6*4 HEAT12115 ;abm*2.6*9 HEAT46087
.;S ABM("TB")=$S(ABM("I")<33:1,1:2) ;abm*2.6*4 HEAT12115
.;S ABM("TB")=$S(ABM("I")<33:1,ABM("I")<35:3,ABM("I")<37:2,1:4) ;abm*2.6*4 HEAT12115 ;abm*2.6*9 HEAT46087
.;start new code abm*2.6*9 HEAT46087
.I ABMEND=38 D
..S ABM("ID")=$S(ABM("I")=32:33,ABM("I")=34:33,ABM("I")=36:33,ABM("I")=38:33,1:31)
.I ABMEND=34 D
..S ABM("ID")=$S(ABM("I")=32:33,ABM("I")=34:33,1:31)
.S ABM("TB")=$S(ABM("I")<33:1,ABM("I")<35:3,ABM("I")<37:2,1:4)
.;end new code HEAT46087
.S ABM(9)=""
.;S ABM("DIAG")=$P($$DX^ABMCVAPI(ABM("X"),ABMP("VDT")),U,2) ; CSV-c ;abm*2.6*14 update API call
.S ABM("DIAG")=$P($$DX^ABMCVAPI(+ABM("X"),ABMP("VDT")),U,2) ; CSV-c ;abm*2.6*14 update API call
.;I $P($G(^AUTNINS(ABMP("INS"),0)),U)="PHC MEDICAID" S ABM("DIAG")=$TR($P($$DX^ABMCVAPI(ABM("X"),ABMP("VDT")),U,2),".") ;abm*2.6*11 IHS/SD/AML 3/31/2011 HEAT30524 - REMOVE DECIMAL FOR PARTNERSHIP ;abm*2.6*14 update API call
.I $P($G(^AUTNINS(ABMP("INS"),0)),U)="PHC MEDICAID" S ABM("DIAG")=$TR($P($$DX^ABMCVAPI(+ABM("X"),ABMP("VDT")),U,2),".") ;abm*2.6*11 IHS/SD/AML 3/31/2011 HEAT30524 - REMOVE DECIMAL FOR PARTNERSHIP ;abm*2.6*14 update API call
.;start old code abm*2.6*9 HEAT46087
.;S ABM("DIAG")=$S(ABM("I")=35:"5. "_ABM("DIAG"),ABM("I")=36:"6. "_ABM("DIAG"),ABM("I")=37:"7. "_ABM("DIAG"),ABM("I")=38:"8. "_ABM("DIAG"),1:ABM("DIAG")) ;abm*2.6*4 HEAT12115
.;end old code start new code HEAT46087
.I $P($G(^ABMNINS(ABMP("LDFN"),ABMP("INS"),1,ABMP("VTYP"),1)),U,16)=8 D
..S ABM("DIAG")=$S(ABM("I")=35:"5. "_ABM("DIAG"),ABM("I")=36:"6. "_ABM("DIAG"),ABM("I")=37:"7. "_ABM("DIAG"),ABM("I")=38:"8. "_ABM("DIAG"),1:ABM("DIAG")) ;abm*2.6*4 HEAT12115
.;end new code HEAT46087
.;I ABMP("ITYPE")'="R",(ABM("I")>34) Q ;abm*2.6*6 HEAT12115 ;abm*2.6*9 HEAT46087
.S $P(ABMF(ABM("ID")),U,ABM("TB"))=ABM("DIAG")_" "_ABM(9)
.S ABMP("DX",ABM("DIAG"))=ABM("I")-30
;
ST S ABMP("GL")="^ABMDBILL(DUZ(2),"_ABMP("BDFN")_","
S ABMPRINT=1 D ^ABMDESM1
I $P($G(^DIC(40.7,$P($G(^ABMDBILL(DUZ(2),ABMP("BDFN"),0)),U,10),0)),U,2)="A3" D
.S ABMI=0
.F S ABMI=$O(ABMS(ABMI)) Q:'ABMI D
..I $P($P(ABMS(ABMI),U,4),"-",2)="QL" S ABMQLFLG=1
..S ABMODMOD=$P($G(^ABMDBILL(DUZ(2),ABMP("BDFN"),12)),U,14)_$P($G(^ABMDBILL(DUZ(2),ABMP("BDFN"),12)),U,16)
.S ABMI=0
.F S ABMI=$O(ABMS(ABMI)) Q:'ABMI D
..I $G(ABMQLFLG)=1,($P($P(ABMS(ABMI),U,4)," ",2)'="QL") S $P(ABMS(ABMI),U,4)=$P($P(ABMS(ABMI),U,4)," ")
..;I $G(ABMQLFLG)'=1 S $P(ABMS(ABMI),U,4)=$P($P(ABMS(ABMI),U,4)," ")_$P($P(ABMS(ABMI),U,4)," ",2)_" "_ABMODMOD ;abm*2.6*1 HEAT5612
..I $G(ABMQLFLG)'=1 S $P(ABMS(ABMI),U,4)=$P(ABMS(ABMI),U,4)_" "_ABMODMOD ;abm*2.6*1 HEAT5612
K ABMQLFLG
HCFA ;
I $P(^ABMDBILL(DUZ(2),ABMP("BDFN"),2),U)=0 S ABMS("TOT")=0
D EMG^ABMDF27E ;set EMG flag
S ABMS=0
F S ABMS=$O(ABMS(ABMS)) Q:+ABMS=0 D
.S ABMLN=2
.D PROC^ABMDF27E
.S ABMLN=ABMLN+1
S ABMLN=0,ABMPRT=0
F ABMS("I")=37:2:47 D Q:$G(ABM("QUIT"))
.S ABMLN=$O(ABMR(ABMLN))
.Q:+ABMLN=0
.S ABMPRT=0
.I (($O(ABMR(ABMLN,9),-1))+(ABMS("I")))>49 Q
.F S ABMPRT=$O(ABMR(ABMLN,ABMPRT)) Q:+ABMPRT=0 D
..M ABMF($S(ABMPRT=1:(ABMS("I")-1),1:ABMS("I")))=ABMR(ABMLN,ABMPRT)
..K ABMR(ABMLN,ABMPRT)
;
D PREV^ABMDFUTL
S ABM("RATIO")=+^ABMDBILL(DUZ(2),ABMP("BDFN"),2)/$S($P(^(2),U,3):$P(^(2),U,3),1:1)
S:ABM("RATIO")>1 ABM("RATIO")=1
S ABM("W")=+$FN(ABMP("WO")*ABM("RATIO"),"",2)
I $P($G(^ABMNINS(DUZ(2),ABMP("INS"),1,ABMP("VTYP"),0)),U,17)="DO" D
.S $P(ABMF(49),U,8)=+$FN(ABMP("PD")*ABM("RATIO"),"",2)+ABM("W")
S ABM("OB")=ABMS("TOT")-$P(ABMF(49),U,8)
S:ABM("OB")<0 ABM("OB")=0
S ABM("YTOT")=ABM("OB")
D YTOT^ABMDFUTL
S $P(ABMF(49),U,7)=ABMS("TOT") ; Total Charges
I $P($G(^ABMNINS(DUZ(2),ABMP("INS"),1,ABMP("VTYP"),0)),U,17)="DO" D
.S $P(ABMF(49),U,8)=+$FN(ABMP("PD"),"",2)
; Amount Due
I $D(ABMP("BILL")) S $P(ABMF(49),U,9)=+$FN(ABMP("BILL"),"",2)
E S $P(ABMF(49),U,9)=+$FN(ABMS("TOT")-ABMP("PD"),"",2)-$G(ABMP("PENS"))-$G(ABMP("NONC"))
K ABMS
I $D(ABMR) D
.S ABMR("TOT")=$P(ABMF(49),U,7,9)
.S $P(ABMF(49),U,7)="",$P(ABMF(49),U,8)="",$P(ABMF(49),U,9)=""
;
PRV ; Provider Info
I $P($G(^ABMDPARM(DUZ(2),1,0)),"^",17)=3 D G PDT
.S ABM("SIGN")=$P($G(^ABMDPARM(DUZ(2),1,3)),"^",7)
.I ABM("SIGN")="" D
..S ABM("X")=$O(^ABMDBILL(DUZ(2),ABMP("BDFN"),41,"C","A",0)) D
...Q:'ABM("X")
...D SELBILL^ABMDE4X
...S ABM("SIGN")=$P(ABM("A"),U,2)
.E D
..S ABM("A")=$P($G(^VA(200,+ABM("SIGN"),20)),"^",2)_"^"_+ABM("SIGN")
I $P($G(^ABMDPARM(DUZ(2),1,0)),U,17)=2 D G PDT
S ABM("X")=$O(^ABMDBILL(DUZ(2),ABMP("BDFN"),41,"C","A",0)) D
.Q:'ABM("X")
.D SELBILL^ABMDE4X
.S $P(ABMF(52),U)=$P($G(^VA(200,+$P(ABM("A"),"^",2),20)),"^",2)
.S:$P(ABMF(52),U)="" $P(ABMF(52),U)=$P(ABM("A"),U)
PDT ;S $P(ABMF(54),U)=DT ;abm*2.6*2 FIXPMS10006
;S $P(ABMF(54),U)=$S($G(ABMPDT)="O":$P($G(^ABMDTXST(DUZ(2),+$P($G(^ABMDBILL(DUZ(2),ABMP("BDFN"),1)),U,7),0)),U),1:DT) ;abm*2.6*2 FIXPMS10006 ;abm*2.6*4 HEAT17615
;S $P(ABMF(54),U)=$S($G(ABMP("PRINTDT"))="O":$P($G(^ABMDTXST(DUZ(2),+$P($G(^ABMDBILL(DUZ(2),ABMP("BDFN"),1)),U,7),0)),U),1:DT) ;abm*2.6*2 FIXPMS10006 ;abm*2.6*4 HEAT17615 ;abm*2.6*11 HEAT81561
S $P(ABMF(54),U)=$S($G(ABMP("PRINTDT"))="O":$P($G(^ABMDTXST(DUZ(2),+$P($G(^ABMDBILL(DUZ(2),ABMP("BDFN"),1)),U,7),0)),U),$G(ABMP("PRINTDT"))="A":$P($G(^ABMDBILL(DUZ(2),ABMP("BDFN"),1)),U,5),1:DT) ;abm*2.6*11 HEAT81561
I $D(ABM("A")) D
.S ABM("PRO")=$P(ABM("A"),U,2)
.S $P(ABMF(54),U,4)=$S($P($$NPI^XUSNPI("Individual_ID",ABM("PRO")),U)>0:$P($$NPI^XUSNPI("Individual_ID",ABM("PRO")),U),1:"")
.S ABMLNPI=$S($P($G(^ABMNINS(ABMP("LDFN"),ABMP("INS"),1,ABMP("VTYP"),1)),U,8)'="":$P(^ABMNINS(ABMP("LDFN"),ABMP("INS"),1,ABMP("VTYP"),1),U,8),$P($G(^ABMDPARM(ABMP("LDFN"),1,2)),U,12)'="":$P(^ABMDPARM(ABMP("LDFN"),1,2),U,12),1:ABMP("LDFN"))
.S $P(ABMF(54),U,4)=$P($$NPI^XUSNPI("Organization_ID",ABMLNPI),U)
.S ABMPQ=$S(ABMP("ITYPE")="R":"1C",ABMP("ITYPE")="D":"1D",$P($G(^ABMNINS(ABMP("LDFN"),ABMP("INS"),1,ABMP("VTYP"),1)),U)'="":$P($G(^ABMREFID($P($G(^ABMNINS(ABMP("LDFN"),ABMP("INS"),1,ABMP("VTYP"),1)),U),0)),U),1:"0B")
.S:$G(ABMPQ)="" ABMPQ="G2"
.S:($G(ABMP("NPIS"))'="")&($G(ABMP("NPIS"))'="N") $P(ABMF(54),U,5)=$G(ABMPQ)_$P($G(^ABMNINS(ABMP("LDFN"),ABMP("INS"),1,ABMP("VTYP"),0)),U,8)
.I ($G(ABMP("NPIS"))'="")&($G(ABMP("NPIS"))'="N") S $P(ABMF(54),U,5)="ZZ"_$$PTAX^ABMEEPRV(ABM("PRO"))
I $P($G(^AUTNINS(ABMP("INS"),0)),U)["ALASKA MEDICAID" D
.Q:$P($G(ABMF(37)),U,3)'=22 ;only change for POS 22
.S $P(ABMF(54),U,4)="982808978",$P(ABMF(54),U,5)="1DCL461"
;
XIT K ABM,ABMV,ABMX,ABMPRINT
Q
ABMDF27D ; IHS/ASDST/DMJ - Set HCFA1500 (08/05) Print Array - Part 4 ;
+1 ;;2.6;IHS Third Party Billing;**1,2,4,6,9,11,14**;NOV 12, 2009;Build 238
+2 ;
+3 ; IHS/SD/SDR - v2.5 p12 - IM25331
+4 ; Put taxonomy code if NPI ONLY
+5 ; IHS/SD/SDR,AML - v2.5 p13 - NO IM
+6 ; IHS/SD/SDR - v2.5 p13 - IM26203
+7 ;
+8 ; IHS/SD/SDR - v2.6 CSV
+9 ; IHS/SD/SDR - abm*2.6*1 - HEAT5612 - modifier wasn't printing
+10 ; IHS/SD/SDR - abm*2.6*2 - FIXPMS10006 - check for print date (FL31)
+11 ; IHS/SD/SDR - abm*2.6*4 - HEAT12115 - made change to allow 8 DX codes to print
+12 ; IHS/SD/SDR - 2.6*9 - HEAT46087 - Changed so it will print 4 or 8 DXs based on parameter
+13 ;IHS/SD/SDR - 2.6*14 - HEAT161263 - Changed to $$GET1^DIQ so output transform will execute for SNOMED/Provider Narrative
+14 ;IHS/SD/SDR - 2.6*14 - Updated calls to DX^ABMCVAPI to be numeric
+15 ; *********************************************************************
+16 ;
DX ; Diagnosis Info
+1 KILL ABMP("DX")
+2 ;S ABM="" F ABM("I")=31:1:34 S ABM=$O(^ABMDBILL(DUZ(2),ABMP("BDFN"),17,"C",ABM)) Q:'ABM D ;abm*2.6*4 HEAT12115
+3 ;S ABM="" F ABM("I")=31:1:38 S ABM=$O(^ABMDBILL(DUZ(2),ABMP("BDFN"),17,"C",ABM)) Q:'ABM D ;abm*2.6*4 HEAT12115 ;abm*2.6*9 HEAT46087
+4 ;abm*2.6*9 HEAT46087
SET ABMEND=$SELECT($PIECE($GET(^ABMNINS(ABMP("LDFN"),ABMP("INS"),1,ABMP("VTYP"),1)),U,16)=8:38,1:34)
+5 ;abm*2.6*4 HEAT12115 ;abm*2.6*9 HEAT46087
SET ABM=""
FOR ABM("I")=31:1:ABMEND
SET ABM=$ORDER(^ABMDBILL(DUZ(2),ABMP("BDFN"),17,"C",ABM))
IF 'ABM
QUIT
Begin DoDot:1
+6 SET ABM("X")=$ORDER(^ABMDBILL(DUZ(2),ABMP("BDFN"),17,"C",ABM,""))
+7 ;S ABM(9)=$P(^AUTNPOV($P(^ABMDBILL(DUZ(2),ABMP("BDFN"),17,ABM("X"),0),U,3),0),U) ;abm*2.6*14 HEAT161263
+8 ;abm*2.6*14 HEAT161263
SET ABM(9)=$$GET1^DIQ(9999999.27,$PIECE(^ABMDBILL(DUZ(2),ABMP("BDFN"),17,ABM("X"),0),U,3),".01","E")
+9 SET ABM(9)=$SELECT(ABM(9)["*ICD*":$PIECE(ABM(9)," "),1:ABM(9))
+10 ;S ABM("ID")=$S(ABM("I")=32:33,ABM("I")=34:33,1:31) ;abm*2.6*4 HEAT12115
+11 ;S ABM("ID")=$S(ABM("I")=32:33,ABM("I")=34:33,ABM("I")=36:33,ABM("I")=38:33,1:31) ;abm*2.6*4 HEAT12115 ;abm*2.6*9 HEAT46087
+12 ;S ABM("TB")=$S(ABM("I")<33:1,1:2) ;abm*2.6*4 HEAT12115
+13 ;S ABM("TB")=$S(ABM("I")<33:1,ABM("I")<35:3,ABM("I")<37:2,1:4) ;abm*2.6*4 HEAT12115 ;abm*2.6*9 HEAT46087
+14 ;start new code abm*2.6*9 HEAT46087
+15 IF ABMEND=38
Begin DoDot:2
+16 SET ABM("ID")=$SELECT(ABM("I")=32:33,ABM("I")=34:33,ABM("I")=36:33,ABM("I")=38:33,1:31)
End DoDot:2
+17 IF ABMEND=34
Begin DoDot:2
+18 SET ABM("ID")=$SELECT(ABM("I")=32:33,ABM("I")=34:33,1:31)
End DoDot:2
+19 SET ABM("TB")=$SELECT(ABM("I")<33:1,ABM("I")<35:3,ABM("I")<37:2,1:4)
+20 ;end new code HEAT46087
+21 SET ABM(9)=""
+22 ;S ABM("DIAG")=$P($$DX^ABMCVAPI(ABM("X"),ABMP("VDT")),U,2) ; CSV-c ;abm*2.6*14 update API call
+23 ; CSV-c ;abm*2.6*14 update API call
SET ABM("DIAG")=$PIECE($$DX^ABMCVAPI(+ABM("X"),ABMP("VDT")),U,2)
+24 ;I $P($G(^AUTNINS(ABMP("INS"),0)),U)="PHC MEDICAID" S ABM("DIAG")=$TR($P($$DX^ABMCVAPI(ABM("X"),ABMP("VDT")),U,2),".") ;abm*2.6*11 IHS/SD/AML 3/31/2011 HEAT30524 - REMOVE DECIMAL FOR PARTNERSHIP ;abm*2.6*14 update API call
+25 ;abm*2.6*11 IHS/SD/AML 3/31/2011 HEAT30524 - REMOVE DECIMAL FOR PARTNERSHIP ;abm*2.6*14 update API call
IF $PIECE($GET(^AUTNINS(ABMP("INS"),0)),U)="PHC MEDICAID"
SET ABM("DIAG")=$TRANSLATE($PIECE($$DX^ABMCVAPI(+ABM("X"),ABMP("VDT")),U,2),".")
+26 ;start old code abm*2.6*9 HEAT46087
+27 ;S ABM("DIAG")=$S(ABM("I")=35:"5. "_ABM("DIAG"),ABM("I")=36:"6. "_ABM("DIAG"),ABM("I")=37:"7. "_ABM("DIAG"),ABM("I")=38:"8. "_ABM("DIAG"),1:ABM("DIAG")) ;abm*2.6*4 HEAT12115
+28 ;end old code start new code HEAT46087
+29 IF $PIECE($GET(^ABMNINS(ABMP("LDFN"),ABMP("INS"),1,ABMP("VTYP"),1)),U,16)=8
Begin DoDot:2
+30 ;abm*2.6*4 HEAT12115
SET ABM("DIAG")=$SELECT(ABM("I")=35:"5. "_ABM("DIAG"),ABM("I")=36:"6. "_ABM("DIAG"),ABM("I")=37:"7. "_ABM("DIAG"),ABM("I")=38:"8. "_ABM("DIAG"),1:ABM("DIAG"))
End DoDot:2
+31 ;end new code HEAT46087
+32 ;I ABMP("ITYPE")'="R",(ABM("I")>34) Q ;abm*2.6*6 HEAT12115 ;abm*2.6*9 HEAT46087
+33 SET $PIECE(ABMF(ABM("ID")),U,ABM("TB"))=ABM("DIAG")_" "_ABM(9)
+34 SET ABMP("DX",ABM("DIAG"))=ABM("I")-30
End DoDot:1
+35 ;
ST SET ABMP("GL")="^ABMDBILL(DUZ(2),"_ABMP("BDFN")_","
+1 SET ABMPRINT=1
DO ^ABMDESM1
+2 IF $PIECE($GET(^DIC(40.7,$PIECE($GET(^ABMDBILL(DUZ(2),ABMP("BDFN"),0)),U,10),0)),U,2)="A3"
Begin DoDot:1
+3 SET ABMI=0
+4 FOR
SET ABMI=$ORDER(ABMS(ABMI))
IF 'ABMI
QUIT
Begin DoDot:2
+5 IF $PIECE($PIECE(ABMS(ABMI),U,4),"-",2)="QL"
SET ABMQLFLG=1
+6 SET ABMODMOD=$PIECE($GET(^ABMDBILL(DUZ(2),ABMP("BDFN"),12)),U,14)_$PIECE($GET(^ABMDBILL(DUZ(2),ABMP("BDFN"),12)),U,16)
End DoDot:2
+7 SET ABMI=0
+8 FOR
SET ABMI=$ORDER(ABMS(ABMI))
IF 'ABMI
QUIT
Begin DoDot:2
+9 IF $GET(ABMQLFLG)=1
IF ($PIECE($PIECE(ABMS(ABMI),U,4)," ",2)'="QL")
SET $PIECE(ABMS(ABMI),U,4)=$PIECE($PIECE(ABMS(ABMI),U,4)," ")
+10 ;I $G(ABMQLFLG)'=1 S $P(ABMS(ABMI),U,4)=$P($P(ABMS(ABMI),U,4)," ")_$P($P(ABMS(ABMI),U,4)," ",2)_" "_ABMODMOD ;abm*2.6*1 HEAT5612
+11 ;abm*2.6*1 HEAT5612
IF $GET(ABMQLFLG)'=1
SET $PIECE(ABMS(ABMI),U,4)=$PIECE(ABMS(ABMI),U,4)_" "_ABMODMOD
End DoDot:2
End DoDot:1
+12 KILL ABMQLFLG
HCFA ;
+1 IF $PIECE(^ABMDBILL(DUZ(2),ABMP("BDFN"),2),U)=0
SET ABMS("TOT")=0
+2 ;set EMG flag
DO EMG^ABMDF27E
+3 SET ABMS=0
+4 FOR
SET ABMS=$ORDER(ABMS(ABMS))
IF +ABMS=0
QUIT
Begin DoDot:1
+5 SET ABMLN=2
+6 DO PROC^ABMDF27E
+7 SET ABMLN=ABMLN+1
End DoDot:1
+8 SET ABMLN=0
SET ABMPRT=0
+9 FOR ABMS("I")=37:2:47
Begin DoDot:1
+10 SET ABMLN=$ORDER(ABMR(ABMLN))
+11 IF +ABMLN=0
QUIT
+12 SET ABMPRT=0
+13 IF (($ORDER(ABMR(ABMLN,9),-1))+(ABMS("I")))>49
QUIT
+14 FOR
SET ABMPRT=$ORDER(ABMR(ABMLN,ABMPRT))
IF +ABMPRT=0
QUIT
Begin DoDot:2
+15 MERGE ABMF($SELECT(ABMPRT=1:(ABMS("I")-1),1:ABMS("I")))=ABMR(ABMLN,ABMPRT)
+16 KILL ABMR(ABMLN,ABMPRT)
End DoDot:2
End DoDot:1
IF $GET(ABM("QUIT"))
QUIT
+17 ;
+18 DO PREV^ABMDFUTL
+19 SET ABM("RATIO")=+^ABMDBILL(DUZ(2),ABMP("BDFN"),2)/$SELECT($PIECE(^(2),U,3):$PIECE(^(2),U,3),1:1)
+20 IF ABM("RATIO")>1
SET ABM("RATIO")=1
+21 SET ABM("W")=+$FNUMBER(ABMP("WO")*ABM("RATIO"),"",2)
+22 IF $PIECE($GET(^ABMNINS(DUZ(2),ABMP("INS"),1,ABMP("VTYP"),0)),U,17)="DO"
Begin DoDot:1
+23 SET $PIECE(ABMF(49),U,8)=+$FNUMBER(ABMP("PD")*ABM("RATIO"),"",2)+ABM("W")
End DoDot:1
+24 SET ABM("OB")=ABMS("TOT")-$PIECE(ABMF(49),U,8)
+25 IF ABM("OB")<0
SET ABM("OB")=0
+26 SET ABM("YTOT")=ABM("OB")
+27 DO YTOT^ABMDFUTL
+28 ; Total Charges
SET $PIECE(ABMF(49),U,7)=ABMS("TOT")
+29 IF $PIECE($GET(^ABMNINS(DUZ(2),ABMP("INS"),1,ABMP("VTYP"),0)),U,17)="DO"
Begin DoDot:1
+30 SET $PIECE(ABMF(49),U,8)=+$FNUMBER(ABMP("PD"),"",2)
End DoDot:1
+31 ; Amount Due
+32 IF $DATA(ABMP("BILL"))
SET $PIECE(ABMF(49),U,9)=+$FNUMBER(ABMP("BILL"),"",2)
+33 IF '$TEST
SET $PIECE(ABMF(49),U,9)=+$FNUMBER(ABMS("TOT")-ABMP("PD"),"",2)-$GET(ABMP("PENS"))-$GET(ABMP("NONC"))
+34 KILL ABMS
+35 IF $DATA(ABMR)
Begin DoDot:1
+36 SET ABMR("TOT")=$PIECE(ABMF(49),U,7,9)
+37 SET $PIECE(ABMF(49),U,7)=""
SET $PIECE(ABMF(49),U,8)=""
SET $PIECE(ABMF(49),U,9)=""
End DoDot:1
+38 ;
PRV ; Provider Info
+1 IF $PIECE($GET(^ABMDPARM(DUZ(2),1,0)),"^",17)=3
Begin DoDot:1
+2 SET ABM("SIGN")=$PIECE($GET(^ABMDPARM(DUZ(2),1,3)),"^",7)
+3 IF ABM("SIGN")=""
Begin DoDot:2
+4 SET ABM("X")=$ORDER(^ABMDBILL(DUZ(2),ABMP("BDFN"),41,"C","A",0))
Begin DoDot:3
+5 IF 'ABM("X")
QUIT
+6 DO SELBILL^ABMDE4X
+7 SET ABM("SIGN")=$PIECE(ABM("A"),U,2)
End DoDot:3
End DoDot:2
+8 IF '$TEST
Begin DoDot:2
+9 SET ABM("A")=$PIECE($GET(^VA(200,+ABM("SIGN"),20)),"^",2)_"^"_+ABM("SIGN")
End DoDot:2
End DoDot:1
GOTO PDT
+10 IF $PIECE($GET(^ABMDPARM(DUZ(2),1,0)),U,17)=2
Begin DoDot:1
End DoDot:1
GOTO PDT
+11 SET ABM("X")=$ORDER(^ABMDBILL(DUZ(2),ABMP("BDFN"),41,"C","A",0))
Begin DoDot:1
+12 IF 'ABM("X")
QUIT
+13 DO SELBILL^ABMDE4X
+14 SET $PIECE(ABMF(52),U)=$PIECE($GET(^VA(200,+$PIECE(ABM("A"),"^",2),20)),"^",2)
+15 IF $PIECE(ABMF(52),U)=""
SET $PIECE(ABMF(52),U)=$PIECE(ABM("A"),U)
End DoDot:1
PDT ;S $P(ABMF(54),U)=DT ;abm*2.6*2 FIXPMS10006
+1 ;S $P(ABMF(54),U)=$S($G(ABMPDT)="O":$P($G(^ABMDTXST(DUZ(2),+$P($G(^ABMDBILL(DUZ(2),ABMP("BDFN"),1)),U,7),0)),U),1:DT) ;abm*2.6*2 FIXPMS10006 ;abm*2.6*4 HEAT17615
+2 ;S $P(ABMF(54),U)=$S($G(ABMP("PRINTDT"))="O":$P($G(^ABMDTXST(DUZ(2),+$P($G(^ABMDBILL(DUZ(2),ABMP("BDFN"),1)),U,7),0)),U),1:DT) ;abm*2.6*2 FIXPMS10006 ;abm*2.6*4 HEAT17615 ;abm*2.6*11 HEAT81561
+3 ;abm*2.6*11 HEAT81561
SET $PIECE(ABMF(54),U)=$SELECT($GET(ABMP("PRINTDT"))="O":$PIECE($GET(^ABMDTXST(DUZ(2),+$PIECE($GET(^ABMDBILL(DUZ(2),ABMP("BDFN"),1)),U,7),0)),U),$GET(ABMP("PRINTDT"))="A":$PIECE($GET(^ABMDBILL(DUZ(2),ABMP("BDFN"),1)),U,5),1:DT)
+4 IF $DATA(ABM("A"))
Begin DoDot:1
+5 SET ABM("PRO")=$PIECE(ABM("A"),U,2)
+6 SET $PIECE(ABMF(54),U,4)=$SELECT($PIECE($$NPI^XUSNPI("Individual_ID",ABM("PRO")),U)>0:$PIECE($$NPI^XUSNPI("Individual_ID",ABM("PRO")),U),1:"")
+7 SET ABMLNPI=$SELECT($PIECE($GET(^ABMNINS(ABMP("LDFN"),ABMP("INS"),1,ABMP("VTYP"),1)),U,8)'="":...
... $PIECE(^ABMNINS(ABMP("LDFN"),ABMP("INS"),1,ABMP("VTYP"),1),U,8),$PIECE($GET(^ABMDPARM(ABMP("LDFN"),1,2)),U,12)'="":$PIECE(^ABMDPARM(ABMP("LDFN"),1,2),U,12),1:ABMP("LDFN"))
+8 SET $PIECE(ABMF(54),U,4)=$PIECE($$NPI^XUSNPI("Organization_ID",ABMLNPI),U)
+9 SET ABMPQ=$SELECT(ABMP("ITYPE")="R":"1C",ABMP("ITYPE")="D":"1D",$PIECE($GET(^ABMNINS(ABMP("LDFN"),ABMP("INS"),1,ABMP("VTYP"),1)),U)'="":$PIECE($GET(^ABMREFID($PIECE($GET(^ABMNINS(ABMP("LDFN"),ABMP("INS"),1,ABMP("VTYP"),1)),U),0)),U),1:"
0B")
+10 IF $GET(ABMPQ)=""
SET ABMPQ="G2"
+11 IF ($GET(ABMP("NPIS"))'="")&($GET(ABMP("NPIS"))'="N")
SET $PIECE(ABMF(54),U,5)=$GET(ABMPQ)_$PIECE($GET(^ABMNINS(ABMP("LDFN"),ABMP("INS"),1,ABMP("VTYP"),0)),U,8)
+12 IF ($GET(ABMP("NPIS"))'="")&($GET(ABMP("NPIS"))'="N")
SET $PIECE(ABMF(54),U,5)="ZZ"_$$PTAX^ABMEEPRV(ABM("PRO"))
End DoDot:1
+13 IF $PIECE($GET(^AUTNINS(ABMP("INS"),0)),U)["ALASKA MEDICAID"
Begin DoDot:1
+14 ;only change for POS 22
IF $PIECE($GET(ABMF(37)),U,3)'=22
QUIT
+15 SET $PIECE(ABMF(54),U,4)="982808978"
SET $PIECE(ABMF(54),U,5)="1DCL461"
End DoDot:1
+16 ;
XIT KILL ABM,ABMV,ABMX,ABMPRINT
+1 QUIT