DGPFHLL ;ALB/RPM - PRF HL7 TRANSMISSION LOG API'S ; 3/6/03
;;5.3;Registration;**425,650**;Aug 13, 1993;Build 3
;
Q
;
GETLOG(DGLIEN,DGPFL) ;retrieve a transmission log record
;
; Input:
; DGLIEN - IEN for PRF HL7 TRANSMISSION LOG (#26.17) file
;
; Output:
; Function value - 1 on success, 0 on failure
; DGPFL - array of transmission data fields
; Subscript Field#
; ---------- ------
; "MSGID" .01
; "ASGNHIST" .02
; "TRANSDT" .03
; "MSGSTAT" .04
; "SITE" .05
; "ACKDT" .06
; "ERROR",n .07
;
N DGIENS ;IEN string
N DGFLDS ;results array
N DGECNT ;error counter
N DGERR ;error arrary
N DGRSLT ;function value
;
S DGRSLT=0
I $G(DGLIEN)>0,$D(^DGPF(26.17,DGLIEN)) D
. S DGIENS=DGLIEN_","
. D GETS^DIQ(26.17,DGIENS,"**","IEZ","DGFLDS","DGERR")
. Q:$D(DGERR)
. S DGRSLT=1
. S DGPFL("MSGID")=$G(DGFLDS(26.17,DGIENS,.01,"I"))_U_$G(DGFLDS(26.17,DGIENS,.01,"E"))
. S DGPFL("ASGNHIST")=$G(DGFLDS(26.17,DGIENS,.02,"I"))_U_$G(DGFLDS(26.17,DGIENS,.02,"E"))
. S DGPFL("TRANSDT")=$G(DGFLDS(26.17,DGIENS,.03,"I"))_U_$G(DGFLDS(26.17,DGIENS,.03,"E"))
. S DGPFL("MSGSTAT")=$G(DGFLDS(26.17,DGIENS,.04,"I"))_U_$G(DGFLDS(26.17,DGIENS,.04,"E"))
. S DGPFL("SITE")=$G(DGFLDS(26.17,DGIENS,.05,"I"))_U_$G(DGFLDS(26.17,DGIENS,.05,"E"))
. S DGPFL("ACKDT")=$G(DGFLDS(26.17,DGIENS,.06,"I"))_U_$G(DGFLDS(26.17,DGIENS,.06,"E"))
. ;
. ;build error code array
. S DGIENS="",DGECNT=0
. F S DGIENS=$O(DGFLDS(26.1707,DGIENS)) Q:DGIENS="" D:$G(DGFLDS(26.1707,DGIENS,.01,"E"))]""
. . S DGECNT=DGECNT+1
. . S DGPFL("ERROR",DGECNT)=DGFLDS(26.1707,DGIENS,.01,"E")
;
Q DGRSLT
;
GETQLOG(DGLIEN,DGPFL) ;retrieve a query log record
;
; Input:
; DGLIEN - IEN for PRF HL7 QUERY LOG (#26.19) file
;
; Output:
; Function value - 1 on success, 0 on failure
; DGPFL - array of transmission data fields
; Subscript Field#
; --------- ------
; "MSGID" .01
; "EVNT" .02
; "TRANSDT" .03
; "MSGSTAT" .04
; "SITE" .05
; "ACKDT" .06
; "ERROR",n .07
;
N DGIENS ;IEN string
N DGFLDS ;results array
N DGECNT ;error counter
N DGERR ;error arrary
N DGRSLT ;function value
;
S DGRSLT=0
I $G(DGLIEN)>0,$D(^DGPF(26.19,DGLIEN)) D
. S DGIENS=DGLIEN_","
. D GETS^DIQ(26.19,DGIENS,"**","IEZ","DGFLDS","DGERR")
. Q:$D(DGERR)
. S DGRSLT=1
. S DGPFL("MSGID")=$G(DGFLDS(26.19,DGIENS,.01,"I"))_U_$G(DGFLDS(26.19,DGIENS,.01,"E"))
. S DGPFL("EVNT")=$G(DGFLDS(26.19,DGIENS,.02,"I"))_U_$G(DGFLDS(26.19,DGIENS,.02,"E"))
. S DGPFL("TRANSDT")=$G(DGFLDS(26.19,DGIENS,.03,"I"))_U_$G(DGFLDS(26.19,DGIENS,.03,"E"))
. S DGPFL("MSGSTAT")=$G(DGFLDS(26.19,DGIENS,.04,"I"))_U_$G(DGFLDS(26.19,DGIENS,.04,"E"))
. S DGPFL("SITE")=$G(DGFLDS(26.19,DGIENS,.05,"I"))_U_$G(DGFLDS(26.19,DGIENS,.05,"E"))
. S DGPFL("ACKDT")=$G(DGFLDS(26.19,DGIENS,.06,"I"))_U_$G(DGFLDS(26.19,DGIENS,.06,"E"))
. ;
. ;build error code array
. S DGIENS="",DGECNT=0
. F S DGIENS=$O(DGFLDS(26.1907,DGIENS)) Q:DGIENS="" D:$G(DGFLDS(26.1907,DGIENS,.01,"E"))]""
. . S DGECNT=DGECNT+1
. . S DGPFL("ERROR",DGECNT)=DGFLDS(26.1907,DGIENS,.01,"E")
;
Q DGRSLT
;
FNDLOG(DGFILE,DGMSGID) ;find and return the record number from a given HL7
; LOG file for a given HL7 Message ID
;
; Input:
; DGFILE - file number of HL7 log file
; DGMSGID - HL7 Message ID
;
; Output:
; Function value - IEN of HL7 LOG file on success, 0 on failure
;
N DGIEN ;function value
;
I +$G(DGFILE),+$G(DGMSGID) D
. S DGIEN=$O(^DGPF(DGFILE,"B",DGMSGID,0))
Q $S($G(DGIEN)>0:DGIEN,1:0)
;
STOXMIT(DGHIEN,DGMSGID,DGINST,DGERR) ;store the transmission log data
;
; Input:
; DGHIEN - pointer to PRF ASSIGNMENT HISTORY (#26.14) file
; DGMSGID - message ID from VistA HL7
; DGINST - pointer to the INSTITUTION (#4) file
;
; Output:
; DGERR - undefined on success, error message on failure
;
N DGFDA ;fda array
N DGFDAIEN ;UPDATE^DIE ien result
;
I +$G(DGHIEN),$D(^DGPF(26.14,DGHIEN)),$D(DGMSGID),+$G(DGINST),$D(^DIC(4,DGINST)) D
. Q:$$FNDLOG^DGPFHLL(26.17,DGMSGID)
. S DGFDA(26.17,"+1,",.01)=DGMSGID
. S DGFDA(26.17,"+1,",.02)=DGHIEN
. S DGFDA(26.17,"+1,",.03)=$$NOW^XLFDT()
. S DGFDA(26.17,"+1,",.04)="T"
. S DGFDA(26.17,"+1,",.05)=DGINST
. D UPDATE^DIE("","DGFDA","DGFDAIEN","DGERR")
Q
;
STOQXMIT(DGEVNT,DGMSGID,DGINST,DGERR) ;store the query log data
;
; Input:
; DGEVNT - pointer to PRF event in PRF HL7 EVENT (#26.21) file
; DGMSGID - message ID from VistA HL7
; DGINST - pointer to the INSTITUTION (#4) file
;
; Output:
; DGERR - undefined on success, error message on failure
;
N DGFDA ;fda array
N DGFDAIEN ;UPDATE^DIE ien result
;
I +$G(DGEVNT),$D(DGMSGID),+$G(DGINST),$D(^DIC(4,DGINST)) D
. Q:$$FNDLOG^DGPFHLL(26.19,DGMSGID)
. S DGFDA(26.19,"+1,",.01)=DGMSGID
. S DGFDA(26.19,"+1,",.02)=DGEVNT
. S DGFDA(26.19,"+1,",.03)=$$NOW^XLFDT()
. S DGFDA(26.19,"+1,",.04)="T"
. S DGFDA(26.19,"+1,",.05)=DGINST
. D UPDATE^DIE("","DGFDA","DGFDAIEN","DGERR")
Q
;
STOSTAT(DGFILE,DGLIEN,DGSTAT,DGEARR) ;update the HL7 transmission status
;
; Input:
; DGFILE - file number of HL7 LOG file
; DGLIEN - IEN of selected HL7 LOG file
; DGSTAT - internal Status value
; DGEARR - (optional) array of error message codes
; format: DGEARR(n)=error code
;
; Output:
; none
;
N DGERR ;filer errors
N DGFDA ;fda array
N DGI ;generic index
N DGLIENS ;iens string
;
I $G(DGFILE)]"",+$G(DGLIEN),$D(^DGPF(DGFILE,DGLIEN)),$G(DGSTAT)]"" D
. Q:'$$TESTVAL^DGPFUT(DGFILE,.04,DGSTAT)
. S DGLIENS=DGLIEN_","
. S DGFDA(DGFILE,DGLIENS,.04)=DGSTAT
. S DGFDA(DGFILE,DGLIENS,.06)=$$NOW^XLFDT()
. S DGI=0
. F S DGI=$O(DGEARR(DGI)) Q:'DGI I DGEARR(DGI)]"" D
. . S DGFDA(DGFILE_"07","+"_DGI_","_DGLIEN_",",.01)=DGEARR(DGI)
. D UPDATE^DIE("","DGFDA","","DGERR")
Q
;
GETLSQ(DGEVNT) ;get last site queried
;
; Input:
; DGEVNT - pointer to PRF HL7 EVENT (#26.21) file
;
; Output:
; Function value - last site queried as pointer to INSTITUTION (#4)
; file on success; 0 on failure
;
N DGARR ;array of query sites sorted by date
N DGLIEN ;pointer to PRF HL7 QUERY LOG (#26.19)
N DGLOG ;query log data array
;
S DGLIEN=0
S DGEVNT=+$G(DGEVNT)
F S DGLIEN=$O(^DGPF(26.19,"C",DGEVNT,DGLIEN)) Q:'DGLIEN D
. K DGLOG
. Q:'$$GETQLOG(DGLIEN,.DGLOG)
. I +$G(DGLOG("TRANSDT"))>0,+$G(DGLOG("SITE"))>0 S DGARR(+$G(DGLOG("TRANSDT")))=+$G(DGLOG("SITE"))
Q +$G(DGARR(+$O(DGARR(""),-1)))
;
PRGQLOG(DGEVNT) ;purge PRF Query Log entries
;This procedure purges non-Accepted entries in the PRF HL7 QUERY LOG
;(#26.19) file for a given PRF HL7 EVENT.
;
; Input:
; DGEVNT - pointer to PRF HL7 EVENT (#26.21) file
;
; Output: none
;
N DGERR ;FM error array
N DGFDA ;FM FDA array
N DGLIEN ;PRF HL7 QUERY LOG (#26.19) file IEN
N DGSTAT ;transmission status
;
S DGEVNT=+$G(DGEVNT)
S DGLIEN=0
;
F S DGLIEN=$O(^DGPF(26.19,"C",DGEVNT,DGLIEN)) Q:'DGLIEN D
. K DGFDA,DGERR
. S DGSTAT=$$GET1^DIQ(26.19,DGLIEN_",",.04,"I","","DGERR")
. ;
. Q:$E(DGSTAT)="A" ;don't purge "A" or "AN" status entries
. ;
. S DGFDA(26.19,DGLIEN_",",.01)="@"
. D FILE^DIE("","DGFDA","DGERR")
;
Q
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HDGPFHLL 7632 printed Oct 16, 2024@18:48:15 Page 2
DGPFHLL ;ALB/RPM - PRF HL7 TRANSMISSION LOG API'S ; 3/6/03
+1 ;;5.3;Registration;**425,650**;Aug 13, 1993;Build 3
+2 ;
+3 QUIT
+4 ;
GETLOG(DGLIEN,DGPFL) ;retrieve a transmission log record
+1 ;
+2 ; Input:
+3 ; DGLIEN - IEN for PRF HL7 TRANSMISSION LOG (#26.17) file
+4 ;
+5 ; Output:
+6 ; Function value - 1 on success, 0 on failure
+7 ; DGPFL - array of transmission data fields
+8 ; Subscript Field#
+9 ; ---------- ------
+10 ; "MSGID" .01
+11 ; "ASGNHIST" .02
+12 ; "TRANSDT" .03
+13 ; "MSGSTAT" .04
+14 ; "SITE" .05
+15 ; "ACKDT" .06
+16 ; "ERROR",n .07
+17 ;
+18 ;IEN string
NEW DGIENS
+19 ;results array
NEW DGFLDS
+20 ;error counter
NEW DGECNT
+21 ;error arrary
NEW DGERR
+22 ;function value
NEW DGRSLT
+23 ;
+24 SET DGRSLT=0
+25 IF $GET(DGLIEN)>0
IF $DATA(^DGPF(26.17,DGLIEN))
Begin DoDot:1
+26 SET DGIENS=DGLIEN_","
+27 DO GETS^DIQ(26.17,DGIENS,"**","IEZ","DGFLDS","DGERR")
+28 if $DATA(DGERR)
QUIT
+29 SET DGRSLT=1
+30 SET DGPFL("MSGID")=$GET(DGFLDS(26.17,DGIENS,.01,"I"))_U_$GET(DGFLDS(26.17,DGIENS,.01,"E"))
+31 SET DGPFL("ASGNHIST")=$GET(DGFLDS(26.17,DGIENS,.02,"I"))_U_$GET(DGFLDS(26.17,DGIENS,.02,"E"))
+32 SET DGPFL("TRANSDT")=$GET(DGFLDS(26.17,DGIENS,.03,"I"))_U_$GET(DGFLDS(26.17,DGIENS,.03,"E"))
+33 SET DGPFL("MSGSTAT")=$GET(DGFLDS(26.17,DGIENS,.04,"I"))_U_$GET(DGFLDS(26.17,DGIENS,.04,"E"))
+34 SET DGPFL("SITE")=$GET(DGFLDS(26.17,DGIENS,.05,"I"))_U_$GET(DGFLDS(26.17,DGIENS,.05,"E"))
+35 SET DGPFL("ACKDT")=$GET(DGFLDS(26.17,DGIENS,.06,"I"))_U_$GET(DGFLDS(26.17,DGIENS,.06,"E"))
+36 ;
+37 ;build error code array
+38 SET DGIENS=""
SET DGECNT=0
+39 FOR
SET DGIENS=$ORDER(DGFLDS(26.1707,DGIENS))
if DGIENS=""
QUIT
if $GET(DGFLDS(26.1707,DGIENS,.01,"E"))]""
Begin DoDot:2
+40 SET DGECNT=DGECNT+1
+41 SET DGPFL("ERROR",DGECNT)=DGFLDS(26.1707,DGIENS,.01,"E")
End DoDot:2
End DoDot:1
+42 ;
+43 QUIT DGRSLT
+44 ;
GETQLOG(DGLIEN,DGPFL) ;retrieve a query log record
+1 ;
+2 ; Input:
+3 ; DGLIEN - IEN for PRF HL7 QUERY LOG (#26.19) file
+4 ;
+5 ; Output:
+6 ; Function value - 1 on success, 0 on failure
+7 ; DGPFL - array of transmission data fields
+8 ; Subscript Field#
+9 ; --------- ------
+10 ; "MSGID" .01
+11 ; "EVNT" .02
+12 ; "TRANSDT" .03
+13 ; "MSGSTAT" .04
+14 ; "SITE" .05
+15 ; "ACKDT" .06
+16 ; "ERROR",n .07
+17 ;
+18 ;IEN string
NEW DGIENS
+19 ;results array
NEW DGFLDS
+20 ;error counter
NEW DGECNT
+21 ;error arrary
NEW DGERR
+22 ;function value
NEW DGRSLT
+23 ;
+24 SET DGRSLT=0
+25 IF $GET(DGLIEN)>0
IF $DATA(^DGPF(26.19,DGLIEN))
Begin DoDot:1
+26 SET DGIENS=DGLIEN_","
+27 DO GETS^DIQ(26.19,DGIENS,"**","IEZ","DGFLDS","DGERR")
+28 if $DATA(DGERR)
QUIT
+29 SET DGRSLT=1
+30 SET DGPFL("MSGID")=$GET(DGFLDS(26.19,DGIENS,.01,"I"))_U_$GET(DGFLDS(26.19,DGIENS,.01,"E"))
+31 SET DGPFL("EVNT")=$GET(DGFLDS(26.19,DGIENS,.02,"I"))_U_$GET(DGFLDS(26.19,DGIENS,.02,"E"))
+32 SET DGPFL("TRANSDT")=$GET(DGFLDS(26.19,DGIENS,.03,"I"))_U_$GET(DGFLDS(26.19,DGIENS,.03,"E"))
+33 SET DGPFL("MSGSTAT")=$GET(DGFLDS(26.19,DGIENS,.04,"I"))_U_$GET(DGFLDS(26.19,DGIENS,.04,"E"))
+34 SET DGPFL("SITE")=$GET(DGFLDS(26.19,DGIENS,.05,"I"))_U_$GET(DGFLDS(26.19,DGIENS,.05,"E"))
+35 SET DGPFL("ACKDT")=$GET(DGFLDS(26.19,DGIENS,.06,"I"))_U_$GET(DGFLDS(26.19,DGIENS,.06,"E"))
+36 ;
+37 ;build error code array
+38 SET DGIENS=""
SET DGECNT=0
+39 FOR
SET DGIENS=$ORDER(DGFLDS(26.1907,DGIENS))
if DGIENS=""
QUIT
if $GET(DGFLDS(26.1907,DGIENS,.01,"E"))]""
Begin DoDot:2
+40 SET DGECNT=DGECNT+1
+41 SET DGPFL("ERROR",DGECNT)=DGFLDS(26.1907,DGIENS,.01,"E")
End DoDot:2
End DoDot:1
+42 ;
+43 QUIT DGRSLT
+44 ;
FNDLOG(DGFILE,DGMSGID) ;find and return the record number from a given HL7
+1 ; LOG file for a given HL7 Message ID
+2 ;
+3 ; Input:
+4 ; DGFILE - file number of HL7 log file
+5 ; DGMSGID - HL7 Message ID
+6 ;
+7 ; Output:
+8 ; Function value - IEN of HL7 LOG file on success, 0 on failure
+9 ;
+10 ;function value
NEW DGIEN
+11 ;
+12 IF +$GET(DGFILE)
IF +$GET(DGMSGID)
Begin DoDot:1
+13 SET DGIEN=$ORDER(^DGPF(DGFILE,"B",DGMSGID,0))
End DoDot:1
+14 QUIT $SELECT($GET(DGIEN)>0:DGIEN,1:0)
+15 ;
STOXMIT(DGHIEN,DGMSGID,DGINST,DGERR) ;store the transmission log data
+1 ;
+2 ; Input:
+3 ; DGHIEN - pointer to PRF ASSIGNMENT HISTORY (#26.14) file
+4 ; DGMSGID - message ID from VistA HL7
+5 ; DGINST - pointer to the INSTITUTION (#4) file
+6 ;
+7 ; Output:
+8 ; DGERR - undefined on success, error message on failure
+9 ;
+10 ;fda array
NEW DGFDA
+11 ;UPDATE^DIE ien result
NEW DGFDAIEN
+12 ;
+13 IF +$GET(DGHIEN)
IF $DATA(^DGPF(26.14,DGHIEN))
IF $DATA(DGMSGID)
IF +$GET(DGINST)
IF $DATA(^DIC(4,DGINST))
Begin DoDot:1
+14 if $$FNDLOG^DGPFHLL(26.17,DGMSGID)
QUIT
+15 SET DGFDA(26.17,"+1,",.01)=DGMSGID
+16 SET DGFDA(26.17,"+1,",.02)=DGHIEN
+17 SET DGFDA(26.17,"+1,",.03)=$$NOW^XLFDT()
+18 SET DGFDA(26.17,"+1,",.04)="T"
+19 SET DGFDA(26.17,"+1,",.05)=DGINST
+20 DO UPDATE^DIE("","DGFDA","DGFDAIEN","DGERR")
End DoDot:1
+21 QUIT
+22 ;
STOQXMIT(DGEVNT,DGMSGID,DGINST,DGERR) ;store the query log data
+1 ;
+2 ; Input:
+3 ; DGEVNT - pointer to PRF event in PRF HL7 EVENT (#26.21) file
+4 ; DGMSGID - message ID from VistA HL7
+5 ; DGINST - pointer to the INSTITUTION (#4) file
+6 ;
+7 ; Output:
+8 ; DGERR - undefined on success, error message on failure
+9 ;
+10 ;fda array
NEW DGFDA
+11 ;UPDATE^DIE ien result
NEW DGFDAIEN
+12 ;
+13 IF +$GET(DGEVNT)
IF $DATA(DGMSGID)
IF +$GET(DGINST)
IF $DATA(^DIC(4,DGINST))
Begin DoDot:1
+14 if $$FNDLOG^DGPFHLL(26.19,DGMSGID)
QUIT
+15 SET DGFDA(26.19,"+1,",.01)=DGMSGID
+16 SET DGFDA(26.19,"+1,",.02)=DGEVNT
+17 SET DGFDA(26.19,"+1,",.03)=$$NOW^XLFDT()
+18 SET DGFDA(26.19,"+1,",.04)="T"
+19 SET DGFDA(26.19,"+1,",.05)=DGINST
+20 DO UPDATE^DIE("","DGFDA","DGFDAIEN","DGERR")
End DoDot:1
+21 QUIT
+22 ;
STOSTAT(DGFILE,DGLIEN,DGSTAT,DGEARR) ;update the HL7 transmission status
+1 ;
+2 ; Input:
+3 ; DGFILE - file number of HL7 LOG file
+4 ; DGLIEN - IEN of selected HL7 LOG file
+5 ; DGSTAT - internal Status value
+6 ; DGEARR - (optional) array of error message codes
+7 ; format: DGEARR(n)=error code
+8 ;
+9 ; Output:
+10 ; none
+11 ;
+12 ;filer errors
NEW DGERR
+13 ;fda array
NEW DGFDA
+14 ;generic index
NEW DGI
+15 ;iens string
NEW DGLIENS
+16 ;
+17 IF $GET(DGFILE)]""
IF +$GET(DGLIEN)
IF $DATA(^DGPF(DGFILE,DGLIEN))
IF $GET(DGSTAT)]""
Begin DoDot:1
+18 if '$$TESTVAL^DGPFUT(DGFILE,.04,DGSTAT)
QUIT
+19 SET DGLIENS=DGLIEN_","
+20 SET DGFDA(DGFILE,DGLIENS,.04)=DGSTAT
+21 SET DGFDA(DGFILE,DGLIENS,.06)=$$NOW^XLFDT()
+22 SET DGI=0
+23 FOR
SET DGI=$ORDER(DGEARR(DGI))
if 'DGI
QUIT
IF DGEARR(DGI)]""
Begin DoDot:2
+24 SET DGFDA(DGFILE_"07","+"_DGI_","_DGLIEN_",",.01)=DGEARR(DGI)
End DoDot:2
+25 DO UPDATE^DIE("","DGFDA","","DGERR")
End DoDot:1
+26 QUIT
+27 ;
GETLSQ(DGEVNT) ;get last site queried
+1 ;
+2 ; Input:
+3 ; DGEVNT - pointer to PRF HL7 EVENT (#26.21) file
+4 ;
+5 ; Output:
+6 ; Function value - last site queried as pointer to INSTITUTION (#4)
+7 ; file on success; 0 on failure
+8 ;
+9 ;array of query sites sorted by date
NEW DGARR
+10 ;pointer to PRF HL7 QUERY LOG (#26.19)
NEW DGLIEN
+11 ;query log data array
NEW DGLOG
+12 ;
+13 SET DGLIEN=0
+14 SET DGEVNT=+$GET(DGEVNT)
+15 FOR
SET DGLIEN=$ORDER(^DGPF(26.19,"C",DGEVNT,DGLIEN))
if 'DGLIEN
QUIT
Begin DoDot:1
+16 KILL DGLOG
+17 if '$$GETQLOG(DGLIEN,.DGLOG)
QUIT
+18 IF +$GET(DGLOG("TRANSDT"))>0
IF +$GET(DGLOG("SITE"))>0
SET DGARR(+$GET(DGLOG("TRANSDT")))=+$GET(DGLOG("SITE"))
End DoDot:1
+19 QUIT +$GET(DGARR(+$ORDER(DGARR(""),-1)))
+20 ;
PRGQLOG(DGEVNT) ;purge PRF Query Log entries
+1 ;This procedure purges non-Accepted entries in the PRF HL7 QUERY LOG
+2 ;(#26.19) file for a given PRF HL7 EVENT.
+3 ;
+4 ; Input:
+5 ; DGEVNT - pointer to PRF HL7 EVENT (#26.21) file
+6 ;
+7 ; Output: none
+8 ;
+9 ;FM error array
NEW DGERR
+10 ;FM FDA array
NEW DGFDA
+11 ;PRF HL7 QUERY LOG (#26.19) file IEN
NEW DGLIEN
+12 ;transmission status
NEW DGSTAT
+13 ;
+14 SET DGEVNT=+$GET(DGEVNT)
+15 SET DGLIEN=0
+16 ;
+17 FOR
SET DGLIEN=$ORDER(^DGPF(26.19,"C",DGEVNT,DGLIEN))
if 'DGLIEN
QUIT
Begin DoDot:1
+18 KILL DGFDA,DGERR
+19 SET DGSTAT=$$GET1^DIQ(26.19,DGLIEN_",",.04,"I","","DGERR")
+20 ;
+21 ;don't purge "A" or "AN" status entries
if $EXTRACT(DGSTAT)="A"
QUIT
+22 ;
+23 SET DGFDA(26.19,DGLIEN_",",.01)="@"
+24 DO FILE^DIE("","DGFDA","DGERR")
End DoDot:1
+25 ;
+26 QUIT