ABMDF1 ; IHS/ASDST/DMJ - Set UB82 Print Array ;
;;2.6;IHS 3P BILLING SYSTEM;;NOV 12, 2009
;Original;TMD;
;
K ABMP S U="^",ABMP("XMIT")=0,ABMP("EXP")=1,ABMY("TOT")="0^0^0"
BDFN S ABMY("N")=0 F S ABMY("N")=$O(ABMY(ABMY("N"))) Q:'ABMY("N") D
.S ABMP("BDFN")=0 F S ABMP("BDFN")=$O(ABMY(ABMY("N"),ABMP("BDFN"))) Q:'ABMP("BDFN") D
..Q:'$D(^ABMDBILL(DUZ(2),ABMP("BDFN"),0))
..D ENT,^ABMDF1X
..S $P(ABMY("TOT"),U)=$P(ABMY("TOT"),U)+1
..D:$D(ABMR)=10 UB82
XMIT ..I ABMP("XMIT")=0 S ABM("XM")="" F S ABM("XM")=$O(^ABMDTXST(DUZ(2),"B",DT,ABM("XM"))) Q:'ABM("XM") D Q:ABMP("XMIT")
...Q:'$D(^ABMDTXST(DUZ(2),ABM("XM"),0)) Q:$P(^(0),U,2)'=ABMP("EXP")
...I $D(ABMY("TYP")),$P(^ABMDTXST(DUZ(2),ABM("XM"),0),U,3)=ABMY("TYP") S ABMP("XMIT")=ABM("XM")
...I $D(ABMY("INS")),$P(^ABMDTXST(DUZ(2),ABM("XM"),0),U,4)=ABMY("INS") S ABMP("XMIT")=ABM("XM")
..I '+ABMP("XMIT") S DIC="^ABMDTXST(DUZ(2),",DIC(0)="L",X=DT,DIC("DR")=".02////1;.07////1;.08////1;"_$S($D(ABMY("TYP")):".03////"_ABMY("TYP"),$D(ABMY("INS")):".04////"_$P(ABMY("INS"),U),1:".03////A")_";.05////"_DUZ
..I K DD,DO D FILE^DICN S ABMP("XMIT")=+Y
..S DIE="^ABMDBILL(DUZ(2),",DA=ABMP("BDFN"),DR=".04////B;.16////A;.17////"_ABMP("XMIT") D ^ABMDDIE Q:$D(ABM("DIE-FAIL"))
..K ^ABMDBILL(DUZ(2),"AS",+^ABMDBILL(DUZ(2),ABMP("BDFN"),0),"A",ABMP("BDFN"))
..S ABM=ABMP("BDFN"),ABM("L")=ABMP("XMIT") K ABMP S ABMP("XMIT")=ABM("L"),ABMP("BDFN")=ABM
G XIT
;
UB82 ;EP for printing export array
S ABMR="" F ABMR("I")=17:1:39 S ABMR=$O(ABMR(ABMR)) Q:'ABMR D
.S ABMF(ABMR("I"))=ABMR(ABMR)
.K ABMR(ABMR)
.Q
I ABMR("I")=39,+ABMR D ^ABMDF1X G UB82
F ABMR("I")=ABMR("I"):1:48 K ABMF(ABMR("I"))
I ABMR("I")<39 S ABMF(ABMR("I")+1)=ABMR("TOT")
E S ABMF(39)=ABMR("TOT")
D ^ABMDF1X
Q
;
ENT ;EP for setting up export array
K ABMF,ABM,ABMU,ABMR,ABMS
S:'$D(ABMY("TOT")) ABMY("TOT")="0^0^0"
S ABMP("B0")=^ABMDBILL(DUZ(2),ABMP("BDFN"),0),ABMP("INS")=$P(ABMP("B0"),U,8) Q:'ABMP("INS")
S ABMP("PDFN")=$P(ABMP("B0"),U,5),ABMP("LDFN")=$P(ABMP("B0"),U,3),ABMP("VTYP")=$P(ABMP("B0"),U,7) Q:'ABMP("PDFN")!('+ABMP("LDFN"))
S ABMP("VDT")=$P(^ABMDBILL(DUZ(2),ABMP("BDFN"),7),U)
S (ABMV("X1"),ABMV("X2"),ABMV("X3"))=""
D PAT^ABMDE1X,REMPL^ABMDE1X1,LOC^ABMDE1X1 K ABME
;
LOC S ABMF(1)=$P($P(ABMV("X1"),U),";",2)
I $P(ABMV("X1"),U,2)]"" S ABMF(2)=$P(ABMV("X1"),U,2),ABMF(3)=$P(ABMV("X1"),U,3),ABMF(4)=$P(ABMV("X1"),U,4)
E S ABMF(2)=$P(ABMV("X1"),U,3),ABMF(3)=$P(ABMV("X1"),U,4),ABMF(4)=$P(ABMV("X1"),U,5)
BNUM S $P(ABMF(2),U,3)=$P(ABMP("B0"),U,1)_$S($P($G(^ABMDPARM(DUZ(2),1,2)),U,4)]"":"-"_$P(^(2),U,4),1:"") I $P($G(^(3)),U,3),$P($G(^AUPNPAT(ABMP("PDFN"),41,ABMP("LDFN"),0)),U,2) S $P(ABMF(2),U,3)=$P(ABMF(2),U,3)_" "_$P(^(0),U,2)
BTYPE S $P(ABMF(2),U,4)=$S($P($G(^ABMNINS(DUZ(2),ABMP("INS"),1,ABMP("VTYP"),0)),U,11):$P($G(^ABMDCODE($P(^(0),U,11),0)),U),1:$P(ABMP("B0"),U,2))
INSNUM S ABM("INUM")=$P($G(^ABMNINS(DUZ(2),ABMP("INS"),1,ABMP("VTYP"),0)),U,8)
S:ABM("INUM")="" ABM("INUM")=$P($G(^AUTNINS(ABMP("INS"),15,ABMP("LDFN"),0)),U,2)
S $P(ABMF(4),U,$S($P($G(^AUTNINS(ABMP("INS"),2)),U)="D":5,1:2))=ABM("INUM")
TAX S $P(ABMF(4),U,3)=$P(ABMV("X1"),U,6)
;
; Line 6
PNODES S ABM("P0")=^DPT(ABMP("PDFN"),0)
SSN I $P(ABM("P0"),U,9)]"" S $P(ABMF(12),U,12)=$S($P(ABM("P0"),U,9)'["-":$E($P(ABM("P0"),U,9),1,3)_"-"_$E($P(ABM("P0"),U,9),4,5)_"-"_$E($P(ABM("P0"),U,9),6,9),1:$P(ABM("P0"),U,9))
NAME S ABMF(6)=$P(ABM("P0"),U)
ADDRESS S $P(ABMF(6),U,2)=$P(ABMV("X2"),U,3)_" "_$P(ABMV("X2"),U,4)
;
; Line 8
DOB S ABMF(8)=$P(ABMV("X2"),U,6)
SEX S $P(ABMF(8),U,2)=$P(ABMV("X2"),U,2)
MS S $P(ABMF(8),U,3)=$P(ABMV("X2"),U,7)
K ABM("P0")
;
G ^ABMDF1A
;
XIT K ABM,ABMV,ABMF
Q
ABMDF1 ; IHS/ASDST/DMJ - Set UB82 Print Array ;
+1 ;;2.6;IHS 3P BILLING SYSTEM;;NOV 12, 2009
+2 ;Original;TMD;
+3 ;
+4 KILL ABMP
SET U="^"
SET ABMP("XMIT")=0
SET ABMP("EXP")=1
SET ABMY("TOT")="0^0^0"
BDFN SET ABMY("N")=0
FOR
SET ABMY("N")=$ORDER(ABMY(ABMY("N")))
IF 'ABMY("N")
QUIT
Begin DoDot:1
+1 SET ABMP("BDFN")=0
FOR
SET ABMP("BDFN")=$ORDER(ABMY(ABMY("N"),ABMP("BDFN")))
IF 'ABMP("BDFN")
QUIT
Begin DoDot:2
+2 IF '$DATA(^ABMDBILL(DUZ(2),ABMP("BDFN"),0))
QUIT
+3 DO ENT
DO ^ABMDF1X
+4 SET $PIECE(ABMY("TOT"),U)=$PIECE(ABMY("TOT"),U)+1
+5 IF $DATA(ABMR)=10
DO UB82
XMIT IF ABMP("XMIT")=0
SET ABM("XM")=""
FOR
SET ABM("XM")=$ORDER(^ABMDTXST(DUZ(2),"B",DT,ABM("XM")))
IF 'ABM("XM")
QUIT
Begin DoDot:3
+1 IF '$DATA(^ABMDTXST(DUZ(2),ABM("XM"),0))
QUIT
IF $PIECE(^(0),U,2)'=ABMP("EXP")
QUIT
+2 IF $DATA(ABMY("TYP"))
IF $PIECE(^ABMDTXST(DUZ(2),ABM("XM"),0),U,3)=ABMY("TYP")
SET ABMP("XMIT")=ABM("XM")
+3 IF $DATA(ABMY("INS"))
IF $PIECE(^ABMDTXST(DUZ(2),ABM("XM"),0),U,4)=ABMY("INS")
SET ABMP("XMIT")=ABM("XM")
End DoDot:3
IF ABMP("XMIT")
QUIT
+4 IF '+ABMP("XMIT")
SET DIC="^ABMDTXST(DUZ(2),"
SET DIC(0)="L"
SET X=DT
SET DIC("DR")=".02////1;.07////1;.08////1;"_$SELECT($DATA(ABMY("TYP")):".03////"_ABMY("TYP"),$DATA(ABMY("INS")):".04////"_$PIECE(ABMY("INS"),U),1:".03////A")_";.05////"_DUZ
+5 IF $TEST
KILL DD,DO
DO FILE^DICN
SET ABMP("XMIT")=+Y
+6 SET DIE="^ABMDBILL(DUZ(2),"
SET DA=ABMP("BDFN")
SET DR=".04////B;.16////A;.17////"_ABMP("XMIT")
DO ^ABMDDIE
IF $DATA(ABM("DIE-FAIL"))
QUIT
+7 KILL ^ABMDBILL(DUZ(2),"AS",+^ABMDBILL(DUZ(2),ABMP("BDFN"),0),"A",ABMP("BDFN"))
+8 SET ABM=ABMP("BDFN")
SET ABM("L")=ABMP("XMIT")
KILL ABMP
SET ABMP("XMIT")=ABM("L")
SET ABMP("BDFN")=ABM
End DoDot:2
End DoDot:1
+9 GOTO XIT
+10 ;
UB82 ;EP for printing export array
+1 SET ABMR=""
FOR ABMR("I")=17:1:39
SET ABMR=$ORDER(ABMR(ABMR))
IF 'ABMR
QUIT
Begin DoDot:1
+2 SET ABMF(ABMR("I"))=ABMR(ABMR)
+3 KILL ABMR(ABMR)
+4 QUIT
End DoDot:1
+5 IF ABMR("I")=39
IF +ABMR
DO ^ABMDF1X
GOTO UB82
+6 FOR ABMR("I")=ABMR("I"):1:48
KILL ABMF(ABMR("I"))
+7 IF ABMR("I")<39
SET ABMF(ABMR("I")+1)=ABMR("TOT")
+8 IF '$TEST
SET ABMF(39)=ABMR("TOT")
+9 DO ^ABMDF1X
+10 QUIT
+11 ;
ENT ;EP for setting up export array
+1 KILL ABMF,ABM,ABMU,ABMR,ABMS
+2 IF '$DATA(ABMY("TOT"))
SET ABMY("TOT")="0^0^0"
+3 SET ABMP("B0")=^ABMDBILL(DUZ(2),ABMP("BDFN"),0)
SET ABMP("INS")=$PIECE(ABMP("B0"),U,8)
IF 'ABMP("INS")
QUIT
+4 SET ABMP("PDFN")=$PIECE(ABMP("B0"),U,5)
SET ABMP("LDFN")=$PIECE(ABMP("B0"),U,3)
SET ABMP("VTYP")=$PIECE(ABMP("B0"),U,7)
IF 'ABMP("PDFN")!('+ABMP("LDFN"))
QUIT
+5 SET ABMP("VDT")=$PIECE(^ABMDBILL(DUZ(2),ABMP("BDFN"),7),U)
+6 SET (ABMV("X1"),ABMV("X2"),ABMV("X3"))=""
+7 DO PAT^ABMDE1X
DO REMPL^ABMDE1X1
DO LOC^ABMDE1X1
KILL ABME
+8 ;
LOC SET ABMF(1)=$PIECE($PIECE(ABMV("X1"),U),";",2)
+1 IF $PIECE(ABMV("X1"),U,2)]""
SET ABMF(2)=$PIECE(ABMV("X1"),U,2)
SET ABMF(3)=$PIECE(ABMV("X1"),U,3)
SET ABMF(4)=$PIECE(ABMV("X1"),U,4)
+2 IF '$TEST
SET ABMF(2)=$PIECE(ABMV("X1"),U,3)
SET ABMF(3)=$PIECE(ABMV("X1"),U,4)
SET ABMF(4)=$PIECE(ABMV("X1"),U,5)
BNUM SET $PIECE(ABMF(2),U,3)=$PIECE(ABMP("B0"),U,1)_$SELECT($PIECE($GET(^ABMDPARM(DUZ(2),1,2)),U,4)]"":"-"_$PIECE(^(2),U,4),1:"")
IF $PIECE($GET(^(3)),U,3)
IF $PIECE($GET(^AUPNPAT(ABMP("PDFN"),41,ABMP("LDFN"),0)),U,2)
SET $PIECE(ABMF(2),U,3)=$PIECE(ABMF(2),U,3)_" "_$PIECE(^(0),U,2)
BTYPE SET $PIECE(ABMF(2),U,4)=$SELECT($PIECE($GET(^ABMNINS(DUZ(2),ABMP("INS"),1,ABMP("VTYP"),0)),U,11):$PIECE($GET(^ABMDCODE($PIECE(^(0),U,11),0)),U),1:$PIECE(ABMP("B0"),U,2))
INSNUM SET ABM("INUM")=$PIECE($GET(^ABMNINS(DUZ(2),ABMP("INS"),1,ABMP("VTYP"),0)),U,8)
+1 IF ABM("INUM")=""
SET ABM("INUM")=$PIECE($GET(^AUTNINS(ABMP("INS"),15,ABMP("LDFN"),0)),U,2)
+2 SET $PIECE(ABMF(4),U,$SELECT($PIECE($GET(^AUTNINS(ABMP("INS"),2)),U)="D":5,1:2))=ABM("INUM")
TAX SET $PIECE(ABMF(4),U,3)=$PIECE(ABMV("X1"),U,6)
+1 ;
+2 ; Line 6
PNODES SET ABM("P0")=^DPT(ABMP("PDFN"),0)
SSN IF $PIECE(ABM("P0"),U,9)]""
SET $PIECE(ABMF(12),U,12)=$SELECT($PIECE(ABM("P0"),U,9)'["-":$EXTRACT($PIECE(ABM("P0"),U,9),1,3)_"-"_$EXTRACT($PIECE(ABM("P0"),U,9),4,5)_"-"_$EXTRACT($PIECE(ABM("P0"),U,9),6,9),1:$PIECE(ABM("P0"),U,9))
NAME SET ABMF(6)=$PIECE(ABM("P0"),U)
ADDRESS SET $PIECE(ABMF(6),U,2)=$PIECE(ABMV("X2"),U,3)_" "_$PIECE(ABMV("X2"),U,4)
+1 ;
+2 ; Line 8
DOB SET ABMF(8)=$PIECE(ABMV("X2"),U,6)
SEX SET $PIECE(ABMF(8),U,2)=$PIECE(ABMV("X2"),U,2)
MS SET $PIECE(ABMF(8),U,3)=$PIECE(ABMV("X2"),U,7)
+1 KILL ABM("P0")
+2 ;
+3 GOTO ^ABMDF1A
+4 ;
XIT KILL ABM,ABMV,ABMF
+1 QUIT