ABMDF14A ; IHS/ASDST/DMJ - Set HCFA-1500 Print Array ;
;;2.6;IHS 3P BILLING SYSTEM;;NOV 12, 2009
;Original;TMD;03/25/96 4:36 PM
;
; IHS/ASDS/DMJ - 05/16/00 - V2.4 Patch 1 - NOIS hqw-0500-100040
; Modified location code to check for satellite first. If no
; satellite, use parent.
;
; IHS/SD/SDR - v2.5 p8 - IM14823
; Modified to not print Medicaid provider number on PI claims
;
; IHS/SD/SDR - v2.5 p8 - IM15122
; Remove spaces from block 26
;
; IHS/SD/SDR - v2.5 p8 - task 6
; print origin/destination for ambulance
;
ENT ;
K ABMF,ABM,ABMU,ABMR,ABMS
S ABMP("B0")=^ABMDBILL(DUZ(2),ABMP("BDFN"),0) ;0 node bill file
S ABMP("INS")=$P(ABMP("B0"),U,8) ;Active insurer IEN
Q:'ABMP("INS") ;q:no active ins
S ABMP("PDFN")=$P(ABMP("B0"),U,5) ;Patient IEN
S ABMP("LDFN")=$P(ABMP("B0"),U,3) ;Visit Location IEN
Q:'ABMP("PDFN")!('+ABMP("LDFN")) ;q:no pat or loc
S ABMP("VDT")=$P(^ABMDBILL(DUZ(2),ABMP("BDFN"),7),U) ;Srv date from
S ABMP("BTYP")=$P(ABMP("B0"),"^",2) ;Bill type
S ABMP("VTYP")=$P(ABMP("B0"),"^",7) ;Visit Type IEN
S (ABMP("CLN"),ABMP("CLIN"))=$P(ABMP("B0"),"^",10) ;clinic
S ABMP("ITYPE")=$P($G(^AUTNINS(ABMP("INS"),2)),"^",1) ; Type of ins.
S (ABMV("X1"),ABMV("X2"),ABMV("X3"))=""
D PAT^ABMDE1X ; returns ABMV("X2") array
D REMPL^ABMDE1X1 ; returns ABMV("X3") array
D LOC^ABMDE1X1 ; returns ABMV("X1") array
K ABME
;
BLOC ;
S ABMF(50)=$P($G(^AUTTLOC(ABMP("LDFN"),0)),U,11) ; Facility phone
; Billing Name
S $P(ABMF(51),"^",2)=$P($G(^ABMDPARM(ABMP("LDFN"),1,2)),"^",6)
I $P(ABMF(51),"^",2)="" D
.S $P(ABMF(51),U,2)=$S($P($G(^ABMDPARM(DUZ(2),1,2)),U,6)]"":$P(^(2),U,6),$P($P(ABMV("X1"),U,2),"C/O ",2)]"":$P($P(ABMV("X1"),U,2),"C/O ",2),1:$P($P(ABMV("X1"),U),";",2))
S $P(ABMF(52),U,3)=$P(ABMV("X1"),U,3) ; Billing Address
S $P(ABMF(53),U,3)=$P(ABMV("X1"),U,4) ; Billing City,State Zip
;
VLOC ;
S $P(ABMF(51),U)=$P(^DIC(4,ABMP("LDFN"),0),"^",1)
I $G(ABMP("CLIN"))'="",($P($G(^DIC(40.7,ABMP("CLIN"),0)),U)["AMBULANCE") S $P(ABMF(51),U)="ORIGIN: "_$P($G(^ABMDBILL(DUZ(2),ABMP("BDFN"),12)),U,2)
I $D(^DIC(4,ABMP("LDFN"),1)) D
.S ABMVLOC=^DIC(4,ABMP("LDFN"),1)
.S $P(ABMF(52),"^",2)=$P(ABMVLOC,"^",1)
.S $P(ABMF(53),"^",2)=$$CSZ^ABMDUTL($P(ABMVLOC,"^",3)_"^"_$P(^DIC(4,ABMP("LDFN"),0),"^",2)_"^"_$P(ABMVLOC,"^",4))
.K ABMVLOC
I '$D(^DIC(4,ABMP("LDFN"),1)) D
.S $P(ABMF(52),U,2)=$P(^AUTTLOC(ABMP("LDFN"),0),U,12)
.S $P(ABMF(53),U,2)=$$CSZ^ABMDUTL($P(^AUTTLOC(ABMP("LDFN"),0),U,13,15))
I $P($G(^DIC(40.7,$P($G(^ABMDBILL(DUZ(2),ABMP("BDFN"),0)),U,10),0)),U)["AMBULANCE" D
.S ABMDREC=$$GETDEST^ABMDE31($P($G(^ABMDBILL(DUZ(2),ABMP("BDFN"),12)),U,7))
.S $P(ABMF(52),U,2)="DESTINATION: "_$P(ABMDREC,U)
;
BNUM ;
S $P(ABMF(49),U,4)=$P(ABMP("B0"),U)_$S($P($G(^ABMDPARM(ABMP("LDFN"),1,2)),U,4)]"":"-"_$P(^ABMDPARM(ABMP("LDFN"),1,2),U,4),1:"")
I $P($G(^ABMDPARM(ABMP("LDFN"),1,3)),U,3),$P($G(^AUPNPAT(ABMP("PDFN"),41,ABMP("LDFN"),0)),U,2) S $P(ABMF(49),U,4)=$P(ABMF(49),U,4)_"-"_$P(^AUPNPAT(ABMP("PDFN"),41,ABMP("LDFN"),0),U,2)
;
INSNUM ;
;GET PROVIDER NUMBER
S ABM("INUM")=$P($G(^ABMNINS(ABMP("LDFN"),ABMP("INS"),1,ABMP("VTYP"),0)),"^",8)
I ABM("INUM")="" D
.S ABM("I")=$P($G(^ABMNINS(ABMP("LDFN"),ABMP("INS"),1,$P(ABMP("B0"),U,7),0)),U,6)
.S ABM("INUM")=$P($G(^ABMNINS(ABMP("LDFN"),ABMP("INS"),1,$S(ABM("I")="Y":999,1:$P(ABMP("B0"),U,7)),0)),U,8)
S:ABM("INUM")="" ABM("INUM")=$P($G(^AUTNINS(ABMP("INS"),15,ABMP("LDFN"),0)),U,2)
S $P(ABMF(54),U,4)=ABM("INUM")
I $P($G(^AUTNINS(ABMP("INS"),2)),U)="R" S $P(ABMF(54),U,3)=$P(^AUTTLOC(ABMP("LDFN"),0),U,19)
S ABM("ITYP")=$P($G(^AUTNINS(ABMP("INS"),2)),U)
S ABM("ITYP")=$S(ABM("ITYP")="R":1,ABM("ITYP")="D":2,ABM("ITYP")="C":3,1:7)
S $P(ABMF(1),U,ABM("ITYP"))="X"
;
TAX ;
S $P(ABMF(49),U,1)=$P(ABMV("X1"),U,6)
S:$P(ABMV("X1"),U,6)]"" $P(ABMF(49),U,3)="X"
S $P(ABMF(49),U,5)="X"
;
PNODES ;
;PATIENT INFO
D ISET^ABMERUTL ; Needed to get medicaid name from ABMER20A
D PNM^ABMER20A
S ABM("P0")=ABME("PNM")
S $P(ABM("P0"),"^",3)=ABME("DOB")
;
NAME ;
S ABMF(3)=$P(ABM("P0"),U)
;
ADDRESS ;
S $P(ABMF(5),U)=$P(ABMV("X2"),U,3)
S $P(ABMF(7),U)=$P($P(ABMV("X2"),U,4),", ")
S $P(ABMF(7),U,2)=$P($P($P(ABMV("X2"),U,4),", ",2)," ")
S $P(ABMF(9),U)=$P($P($P(ABMV("X2"),U,4),", ",2)," ",2)
S $P(ABMF(9),U,2)=$S($E($P(ABMV("X2"),U,5))="(":"",1:" ")_$P(ABMV("X2"),U,5)
;
DOB ;
S $P(ABMF(3),U,2)=$P(ABM("P0"),U,3)
;
SEX ;
I $P(ABMV("X2"),U,2)="M" S $P(ABMF(3),U,3)="X"
E S $P(ABMF(3),U,4)="X"
K ABM("P0")
I $P(^AUPNPAT(ABMP("PDFN"),0),U,21),"1246"[$P(^(0),U,21) S $P(ABMF(9),U,3)="X"
I $P($G(^ABMDBILL(DUZ(2),ABMP("BDFN"),4)),U,9)'="" S $P(ABMF(31),U,3)=$P(^(4),U,9)
;
XIT ;
K ABM,ABMX,ABMV
Q
ABMDF14A ; IHS/ASDST/DMJ - Set HCFA-1500 Print Array ;
+1 ;;2.6;IHS 3P BILLING SYSTEM;;NOV 12, 2009
+2 ;Original;TMD;03/25/96 4:36 PM
+3 ;
+4 ; IHS/ASDS/DMJ - 05/16/00 - V2.4 Patch 1 - NOIS hqw-0500-100040
+5 ; Modified location code to check for satellite first. If no
+6 ; satellite, use parent.
+7 ;
+8 ; IHS/SD/SDR - v2.5 p8 - IM14823
+9 ; Modified to not print Medicaid provider number on PI claims
+10 ;
+11 ; IHS/SD/SDR - v2.5 p8 - IM15122
+12 ; Remove spaces from block 26
+13 ;
+14 ; IHS/SD/SDR - v2.5 p8 - task 6
+15 ; print origin/destination for ambulance
+16 ;
ENT ;
+1 KILL ABMF,ABM,ABMU,ABMR,ABMS
+2 ;0 node bill file
SET ABMP("B0")=^ABMDBILL(DUZ(2),ABMP("BDFN"),0)
+3 ;Active insurer IEN
SET ABMP("INS")=$PIECE(ABMP("B0"),U,8)
+4 ;q:no active ins
IF 'ABMP("INS")
QUIT
+5 ;Patient IEN
SET ABMP("PDFN")=$PIECE(ABMP("B0"),U,5)
+6 ;Visit Location IEN
SET ABMP("LDFN")=$PIECE(ABMP("B0"),U,3)
+7 ;q:no pat or loc
IF 'ABMP("PDFN")!('+ABMP("LDFN"))
QUIT
+8 ;Srv date from
SET ABMP("VDT")=$PIECE(^ABMDBILL(DUZ(2),ABMP("BDFN"),7),U)
+9 ;Bill type
SET ABMP("BTYP")=$PIECE(ABMP("B0"),"^",2)
+10 ;Visit Type IEN
SET ABMP("VTYP")=$PIECE(ABMP("B0"),"^",7)
+11 ;clinic
SET (ABMP("CLN"),ABMP("CLIN"))=$PIECE(ABMP("B0"),"^",10)
+12 ; Type of ins.
SET ABMP("ITYPE")=$PIECE($GET(^AUTNINS(ABMP("INS"),2)),"^",1)
+13 SET (ABMV("X1"),ABMV("X2"),ABMV("X3"))=""
+14 ; returns ABMV("X2") array
DO PAT^ABMDE1X
+15 ; returns ABMV("X3") array
DO REMPL^ABMDE1X1
+16 ; returns ABMV("X1") array
DO LOC^ABMDE1X1
+17 KILL ABME
+18 ;
BLOC ;
+1 ; Facility phone
SET ABMF(50)=$PIECE($GET(^AUTTLOC(ABMP("LDFN"),0)),U,11)
+2 ; Billing Name
+3 SET $PIECE(ABMF(51),"^",2)=$PIECE($GET(^ABMDPARM(ABMP("LDFN"),1,2)),"^",6)
+4 IF $PIECE(ABMF(51),"^",2)=""
Begin DoDot:1
+5 SET $PIECE(ABMF(51),U,2)=$SELECT($PIECE($GET(^ABMDPARM(DUZ(2),1,2)),U,6)]"":$PIECE(^(2),U,6),$PIECE($PIECE(ABMV("X1"),U,2),"C/O ",2)]"":$PIECE($PIECE(ABMV("X1"),U,2),"C/O ",2),1:$PIECE($PIECE(ABMV("X1"),U),";",2))
End DoDot:1
+6 ; Billing Address
SET $PIECE(ABMF(52),U,3)=$PIECE(ABMV("X1"),U,3)
+7 ; Billing City,State Zip
SET $PIECE(ABMF(53),U,3)=$PIECE(ABMV("X1"),U,4)
+8 ;
VLOC ;
+1 SET $PIECE(ABMF(51),U)=$PIECE(^DIC(4,ABMP("LDFN"),0),"^",1)
+2 IF $GET(ABMP("CLIN"))'=""
IF ($PIECE($GET(^DIC(40.7,ABMP("CLIN"),0)),U)["AMBULANCE")
SET $PIECE(ABMF(51),U)="ORIGIN: "_$PIECE($GET(^ABMDBILL(DUZ(2),ABMP("BDFN"),12)),U,2)
+3 IF $DATA(^DIC(4,ABMP("LDFN"),1))
Begin DoDot:1
+4 SET ABMVLOC=^DIC(4,ABMP("LDFN"),1)
+5 SET $PIECE(ABMF(52),"^",2)=$PIECE(ABMVLOC,"^",1)
+6 SET $PIECE(ABMF(53),"^",2)=$$CSZ^ABMDUTL($PIECE(ABMVLOC,"^",3)_"^"_$PIECE(^DIC(4,ABMP("LDFN"),0),"^",2)_"^"_$PIECE(ABMVLOC,"^",4))
+7 KILL ABMVLOC
End DoDot:1
+8 IF '$DATA(^DIC(4,ABMP("LDFN"),1))
Begin DoDot:1
+9 SET $PIECE(ABMF(52),U,2)=$PIECE(^AUTTLOC(ABMP("LDFN"),0),U,12)
+10 SET $PIECE(ABMF(53),U,2)=$$CSZ^ABMDUTL($PIECE(^AUTTLOC(ABMP("LDFN"),0),U,13,15))
End DoDot:1
+11 IF $PIECE($GET(^DIC(40.7,$PIECE($GET(^ABMDBILL(DUZ(2),ABMP("BDFN"),0)),U,10),0)),U)["AMBULANCE"
Begin DoDot:1
+12 SET ABMDREC=$$GETDEST^ABMDE31($PIECE($GET(^ABMDBILL(DUZ(2),ABMP("BDFN"),12)),U,7))
+13 SET $PIECE(ABMF(52),U,2)="DESTINATION: "_$PIECE(ABMDREC,U)
End DoDot:1
+14 ;
BNUM ;
+1 SET $PIECE(ABMF(49),U,4)=$PIECE(ABMP("B0"),U)_$SELECT($PIECE($GET(^ABMDPARM(ABMP("LDFN"),1,2)),U,4)]"":"-"_$PIECE(^ABMDPARM(ABMP("LDFN"),1,2),U,4),1:"")
+2 IF $PIECE($GET(^ABMDPARM(ABMP("LDFN"),1,3)),U,3)
IF $PIECE($GET(^AUPNPAT(ABMP("PDFN"),41,ABMP("LDFN"),0)),U,2)
SET $PIECE(ABMF(49),U,4)=$PIECE(ABMF(49),U,4)_"-"_$PIECE(^AUPNPAT(ABMP("PDFN"),41,ABMP("LDFN"),0),U,2)
+3 ;
INSNUM ;
+1 ;GET PROVIDER NUMBER
+2 SET ABM("INUM")=$PIECE($GET(^ABMNINS(ABMP("LDFN"),ABMP("INS"),1,ABMP("VTYP"),0)),"^",8)
+3 IF ABM("INUM")=""
Begin DoDot:1
+4 SET ABM("I")=$PIECE($GET(^ABMNINS(ABMP("LDFN"),ABMP("INS"),1,$PIECE(ABMP("B0"),U,7),0)),U,6)
+5 SET ABM("INUM")=$PIECE($GET(^ABMNINS(ABMP("LDFN"),ABMP("INS"),1,$SELECT(ABM("I")="Y":999,1:$PIECE(ABMP("B0"),U,7)),0)),U,8)
End DoDot:1
+6 IF ABM("INUM")=""
SET ABM("INUM")=$PIECE($GET(^AUTNINS(ABMP("INS"),15,ABMP("LDFN"),0)),U,2)
+7 SET $PIECE(ABMF(54),U,4)=ABM("INUM")
+8 IF $PIECE($GET(^AUTNINS(ABMP("INS"),2)),U)="R"
SET $PIECE(ABMF(54),U,3)=$PIECE(^AUTTLOC(ABMP("LDFN"),0),U,19)
+9 SET ABM("ITYP")=$PIECE($GET(^AUTNINS(ABMP("INS"),2)),U)
+10 SET ABM("ITYP")=$SELECT(ABM("ITYP")="R":1,ABM("ITYP")="D":2,ABM("ITYP")="C":3,1:7)
+11 SET $PIECE(ABMF(1),U,ABM("ITYP"))="X"
+12 ;
TAX ;
+1 SET $PIECE(ABMF(49),U,1)=$PIECE(ABMV("X1"),U,6)
+2 IF $PIECE(ABMV("X1"),U,6)]""
SET $PIECE(ABMF(49),U,3)="X"
+3 SET $PIECE(ABMF(49),U,5)="X"
+4 ;
PNODES ;
+1 ;PATIENT INFO
+2 ; Needed to get medicaid name from ABMER20A
DO ISET^ABMERUTL
+3 DO PNM^ABMER20A
+4 SET ABM("P0")=ABME("PNM")
+5 SET $PIECE(ABM("P0"),"^",3)=ABME("DOB")
+6 ;
NAME ;
+1 SET ABMF(3)=$PIECE(ABM("P0"),U)
+2 ;
ADDRESS ;
+1 SET $PIECE(ABMF(5),U)=$PIECE(ABMV("X2"),U,3)
+2 SET $PIECE(ABMF(7),U)=$PIECE($PIECE(ABMV("X2"),U,4),", ")
+3 SET $PIECE(ABMF(7),U,2)=$PIECE($PIECE($PIECE(ABMV("X2"),U,4),", ",2)," ")
+4 SET $PIECE(ABMF(9),U)=$PIECE($PIECE($PIECE(ABMV("X2"),U,4),", ",2)," ",2)
+5 SET $PIECE(ABMF(9),U,2)=$SELECT($EXTRACT($PIECE(ABMV("X2"),U,5))="(":"",1:" ")_$PIECE(ABMV("X2"),U,5)
+6 ;
DOB ;
+1 SET $PIECE(ABMF(3),U,2)=$PIECE(ABM("P0"),U,3)
+2 ;
SEX ;
+1 IF $PIECE(ABMV("X2"),U,2)="M"
SET $PIECE(ABMF(3),U,3)="X"
+2 IF '$TEST
SET $PIECE(ABMF(3),U,4)="X"
+3 KILL ABM("P0")
+4 IF $PIECE(^AUPNPAT(ABMP("PDFN"),0),U,21)
IF "1246"[$PIECE(^(0),U,21)
SET $PIECE(ABMF(9),U,3)="X"
+5 IF $PIECE($GET(^ABMDBILL(DUZ(2),ABMP("BDFN"),4)),U,9)'=""
SET $PIECE(ABMF(31),U,3)=$PIECE(^(4),U,9)
+6 ;
XIT ;
+1 KILL ABM,ABMX,ABMV
+2 QUIT