VAFHBGJ ;ALB/CM BACKGROUND JOB FOR UPDATE MESSAGES ;05/23/95
;;5.3;Registration;**91,415**;Jun 06, 1996
;
;This routine will loop through the pivot file, getting the entries
;that have the TRANSMITTED-NEED TO TRANSMIT field populated and
; generating an A08 message for the update.
;
;
EN ;check to see if sending is on or off
I '$$SEND^VAFHUTL() Q
;make sure only one job will run
ENT L +^XTMP("ADT/HL7 VAFH BATCH UPDATE"):3 E Q
;
D MAIN
K HLA D KILL^HLTRANS
L -^XTMP("ADT/HL7 VAFH BATCH UPDATE")
Q
;
MAIN N LSTR,LOOP,NODE,DFN,RECENT,EVTY,EVDT,PIVOT,VPTR,GBL,COUNT,UP,ERR,CLEAN
I '$O(^VAT(391.71,"AC",1,"")) Q
S LOOP="",GBL="HLA(""HLS"")"
K HLA
;
F S COUNT=1,LOOP=$O(^VAT(391.71,"AC",1,LOOP)) Q:LOOP="" D Q:$D(HL)=1
.; bad x-ref, delete it and quit
.I '$D(^VAT(391.71,LOOP)) K ^VAT(391.71,"AC",1,LOOP) Q
.S NODE=$G(^VAT(391.71,LOOP,0)) Q:'NODE
.K HL D INIT^HLFNC2("VAFH A08",.HL)
.I $D(HL)=1 Q
.I LOOP#10=0,+$$S^%ZTLOAD K HL S HL="TaskMan User Stop " Q
.S DFN=$P(NODE,"^",3),PIVOT=$P(NODE,"^",2) Q:'DFN
.; need to check if anything but registration
.S LSTR=$P($$LTD^VAFHUTL(DFN),"^",2)
.I LSTR'="R",LSTR'["No l" S LSTR=",2,50"
.E S LSTR=50
.;
.; generate the a08 message
.S ERR=$$UP^VAFHCA08(DFN,PIVOT,NODE,COUNT,GBL,"2,3,4,5,6,7,8,9,10B,11,12,13,14,16,19,22B","2,3,4,5,6,7,8,9,10,11,12,13,14,15",LSTR)
.I +ERR=0 DO
. .S CLEAN=$$CLNTRAN^VAFHPIV2(PIVOT),COUNT=$P(ERR,"^",2)+1
.E Q
.;;;I COUNT<2&($D(CLEAN)) D
.I +CLEAN=-1 D ERROR^VAFHCCAP(CLEAN,DFN) Q
.D GENERATE^HLMA("VAFH A08","LM",1,.HLRESLT)
.K HLA
Q
VAFHBGJ ;ALB/CM BACKGROUND JOB FOR UPDATE MESSAGES ;05/23/95
+1 ;;5.3;Registration;**91,415**;Jun 06, 1996
+2 ;
+3 ;This routine will loop through the pivot file, getting the entries
+4 ;that have the TRANSMITTED-NEED TO TRANSMIT field populated and
+5 ; generating an A08 message for the update.
+6 ;
+7 ;
EN ;check to see if sending is on or off
+1 IF '$$SEND^VAFHUTL()
QUIT
+2 ;make sure only one job will run
ENT LOCK +^XTMP("ADT/HL7 VAFH BATCH UPDATE"):3
IF '$TEST
QUIT
+1 ;
+2 DO MAIN
+3 KILL HLA
DO KILL^HLTRANS
+4 LOCK -^XTMP("ADT/HL7 VAFH BATCH UPDATE")
+5 QUIT
+6 ;
MAIN NEW LSTR,LOOP,NODE,DFN,RECENT,EVTY,EVDT,PIVOT,VPTR,GBL,COUNT,UP,ERR,CLEAN
+1 IF '$ORDER(^VAT(391.71,"AC",1,""))
QUIT
+2 SET LOOP=""
SET GBL="HLA(""HLS"")"
+3 KILL HLA
+4 ;
+5 FOR
SET COUNT=1
SET LOOP=$ORDER(^VAT(391.71,"AC",1,LOOP))
IF LOOP=""
QUIT
Begin DoDot:1
+6 ; bad x-ref, delete it and quit
+7 IF '$DATA(^VAT(391.71,LOOP))
KILL ^VAT(391.71,"AC",1,LOOP)
QUIT
+8 SET NODE=$GET(^VAT(391.71,LOOP,0))
IF 'NODE
QUIT
+9 KILL HL
DO INIT^HLFNC2("VAFH A08",.HL)
+10 IF $DATA(HL)=1
QUIT
+11 IF LOOP#10=0
IF +$$S^%ZTLOAD
KILL HL
SET HL="TaskMan User Stop "
QUIT
+12 SET DFN=$PIECE(NODE,"^",3)
SET PIVOT=$PIECE(NODE,"^",2)
IF 'DFN
QUIT
+13 ; need to check if anything but registration
+14 SET LSTR=$PIECE($$LTD^VAFHUTL(DFN),"^",2)
+15 IF LSTR'="R"
IF LSTR'["No l"
SET LSTR=",2,50"
+16 IF '$TEST
SET LSTR=50
+17 ;
+18 ; generate the a08 message
+19 SET ERR=$$UP^VAFHCA08(DFN,PIVOT,NODE,COUNT,GBL,"2,3,4,5,6,7,8,9,10B,11,12,13,14,16,19,22B","2,3,4,5,6,7,8,9,10,11,12,13,14,15",LSTR)
+20 IF +ERR=0
Begin DoDot:2
+21 SET CLEAN=$$CLNTRAN^VAFHPIV2(PIVOT)
SET COUNT=$PIECE(ERR,"^",2)+1
End DoDot:2
+22 IF '$TEST
QUIT
+23 ;;;I COUNT<2&($D(CLEAN)) D
+24 IF +CLEAN=-1
DO ERROR^VAFHCCAP(CLEAN,DFN)
QUIT
+25 DO GENERATE^HLMA("VAFH A08","LM",1,.HLRESLT)
+26 KILL HLA
End DoDot:1
IF $DATA(HL)=1
QUIT
+27 QUIT