| 1 | DGQEHLL ;ALB/RPM - VIC REPLACEMENT VIC HL7 TRAN LOG FILE ACCESS API'S ; 12/09/03
|
|---|
| 2 | ;;5.3;Registration;**571**;Aug 13, 1993
|
|---|
| 3 | ;
|
|---|
| 4 | ; This routine contains the functions and procedures used to access
|
|---|
| 5 | ; and manipulate the VIC HL7 TRANSMISSION LOG (#39.7) file.
|
|---|
| 6 | ;
|
|---|
| 7 | ; $$FINDMID - locate transmission record for a given HL7 message ID
|
|---|
| 8 | ; $$FINDLST - locate last transmission record for a given request
|
|---|
| 9 | ; $$GETLOG - retrieve a single VIC HL7 TRANSMISSION LOG record
|
|---|
| 10 | ; STOXMIT - store a new VIC HL7 TRANSMISSION LOG record
|
|---|
| 11 | ; STOACK - store acknowledgment status and date
|
|---|
| 12 | ; $$DELXMIT - delete a single VIC HL7 TRANSMISSION LOG record
|
|---|
| 13 | ;
|
|---|
| 14 | Q ;no direct entry
|
|---|
| 15 | ;
|
|---|
| 16 | FINDMID(DGMID) ;locate record for a given HL7 message ID
|
|---|
| 17 | ; This function performs a lookup of the VIC HL7 TRANSMISSION LOG
|
|---|
| 18 | ; (#39.7) file for a given HL7 Message ID.
|
|---|
| 19 | ;
|
|---|
| 20 | ; Input:
|
|---|
| 21 | ; DGMID - HL7 message ID
|
|---|
| 22 | ;
|
|---|
| 23 | ; Output:
|
|---|
| 24 | ; Function value - IEN of VIC HL7 TRANSMISSION LOG (#39.7) on success;
|
|---|
| 25 | ; 0 on failure
|
|---|
| 26 | ;
|
|---|
| 27 | S DGMID=+$G(DGMID)
|
|---|
| 28 | Q +$O(^DGQE(39.7,"B",DGMID,""))
|
|---|
| 29 | ;
|
|---|
| 30 | ;
|
|---|
| 31 | FINDLST(DGREQ) ;locate the last transmission record for a given request
|
|---|
| 32 | ;
|
|---|
| 33 | ; Input:
|
|---|
| 34 | ; DGIEN - pointer to VIC REQUEST (#39.6) file
|
|---|
| 35 | ;
|
|---|
| 36 | ; Output:
|
|---|
| 37 | ; Function value - IEN of VIC HL7 TRANSMISSION LOG (#39.7) on success,
|
|---|
| 38 | ; 0 on failure
|
|---|
| 39 | ;
|
|---|
| 40 | N DGDAT
|
|---|
| 41 | ;
|
|---|
| 42 | S DGDAT=+$O(^DGQE(39.7,"ADATE",DGREQ,""),-1)
|
|---|
| 43 | Q +$O(^DGQE(39.7,"ADATE",DGREQ,DGDAT,0))
|
|---|
| 44 | ;
|
|---|
| 45 | ;
|
|---|
| 46 | GETLOG(DGIEN,DGLOG) ;retrieve a single record
|
|---|
| 47 | ; This function retrieves all fields belonging to a single record
|
|---|
| 48 | ; in the VIC HL7 TRANSMISSION LOG (#39.7) file for a given IEN.
|
|---|
| 49 | ; The field data is placed in an array format.
|
|---|
| 50 | ;
|
|---|
| 51 | ; Input:
|
|---|
| 52 | ; DGIEN - VIC HL7 TRANSMISSION LOG (#39.7) file record number
|
|---|
| 53 | ;
|
|---|
| 54 | ; Output:
|
|---|
| 55 | ; Function value - 1 on success, 0 on failure
|
|---|
| 56 | ; DGLOG - array of field data
|
|---|
| 57 | ; Array subscripts are:
|
|---|
| 58 | ; "HLMID" - HL7 Message ID
|
|---|
| 59 | ; "REQIEN" - pointer to request in VIC REQUEST (#39.6) file
|
|---|
| 60 | ; "XMITDT" - HL7 Transmission date/time
|
|---|
| 61 | ; "XMSTAT" - Transmission status
|
|---|
| 62 | ; "ACKDT" - ACK received date/time
|
|---|
| 63 | ;
|
|---|
| 64 | N DGERR ;FM result error message
|
|---|
| 65 | N DGFIL ;FM file number
|
|---|
| 66 | N DGFLD ;FM result field array
|
|---|
| 67 | N DGIENS ;FM IENS value
|
|---|
| 68 | N DGRSLT ;function value
|
|---|
| 69 | ;
|
|---|
| 70 | S DGRSLT=0
|
|---|
| 71 | S DGFIL=39.7
|
|---|
| 72 | ;
|
|---|
| 73 | I $G(DGIEN),$D(^DGQE(DGFIL,DGIEN)) D
|
|---|
| 74 | . S DGIENS=DGIEN_","
|
|---|
| 75 | . D GETS^DIQ(DGFIL,DGIENS,"*","I","DGFLD","DGERR")
|
|---|
| 76 | . Q:$D(DGERR)
|
|---|
| 77 | . S DGLOG("HLMID")=$G(DGFLD(DGFIL,DGIENS,.01,"I"))
|
|---|
| 78 | . S DGLOG("REQIEN")=$G(DGFLD(DGFIL,DGIENS,.02,"I"))
|
|---|
| 79 | . S DGLOG("XMITDT")=$G(DGFLD(DGFIL,DGIENS,.03,"I"))
|
|---|
| 80 | . S DGLOG("XMSTAT")=$G(DGFLD(DGFIL,DGIENS,.04,"I"))
|
|---|
| 81 | . S DGLOG("ACKDT")=$G(DGFLD(DGFIL,DGIENS,.05,"I"))
|
|---|
| 82 | . S DGRSLT=1 ;success
|
|---|
| 83 | ;
|
|---|
| 84 | Q DGRSLT
|
|---|
| 85 | ;
|
|---|
| 86 | ;
|
|---|
| 87 | STOXMIT(DGMID,DGRIEN) ;create a transmit record
|
|---|
| 88 | ; This procedure creates a record in the VIC HL7 TRANSMISSION LOG
|
|---|
| 89 | ; (#39.7) file.
|
|---|
| 90 | ;
|
|---|
| 91 | ; Input:
|
|---|
| 92 | ; DGMID - HL7 Message Control ID
|
|---|
| 93 | ; DGRIEN - IEN of record in VIC REQUEST (#39.6) file
|
|---|
| 94 | ;
|
|---|
| 95 | ; Output:
|
|---|
| 96 | ; none
|
|---|
| 97 | ;
|
|---|
| 98 | N DGERR
|
|---|
| 99 | N DGFDA
|
|---|
| 100 | N DGFIL
|
|---|
| 101 | N DGIEN
|
|---|
| 102 | N DGIENS
|
|---|
| 103 | ;
|
|---|
| 104 | ;validate input params
|
|---|
| 105 | Q:$G(DGMID)'>0
|
|---|
| 106 | Q:'$G(DGRIEN)
|
|---|
| 107 | Q:'$D(^DGQE(39.6,DGRIEN))
|
|---|
| 108 | ;
|
|---|
| 109 | S DGFIL=39.7
|
|---|
| 110 | S DGIEN=$$FINDMID(DGMID)
|
|---|
| 111 | S DGIENS=$S('DGIEN:"+1,",1:DGIEN_",")
|
|---|
| 112 | ;
|
|---|
| 113 | S DGFDA(DGFIL,DGIENS,.01)=DGMID
|
|---|
| 114 | S DGFDA(DGFIL,DGIENS,.02)=DGRIEN
|
|---|
| 115 | S DGFDA(DGFIL,DGIENS,.03)=$$NOW^XLFDT()
|
|---|
| 116 | S DGFDA(DGFIL,DGIENS,.04)="T" ;transmitted
|
|---|
| 117 | D UPDATE^DIE("","DGFDA","","DGERR")
|
|---|
| 118 | ;
|
|---|
| 119 | Q
|
|---|
| 120 | ;
|
|---|
| 121 | ;
|
|---|
| 122 | STOACK(DGIEN,DGSTAT) ;update STATUS
|
|---|
| 123 | ; This procedure updates the STATUS (#.04) field of the VIC HL7
|
|---|
| 124 | ; TRANSMISSION LOG (#39.7) file
|
|---|
| 125 | ;
|
|---|
| 126 | ; Input:
|
|---|
| 127 | ; DGIEN - IEN of record in VIC HL7 TRANSMISSION LOG (#39.7) file
|
|---|
| 128 | ; DGSTAT - transmission status ("A":Accepted,"RJ":Rejected)
|
|---|
| 129 | ;
|
|---|
| 130 | ; Output:
|
|---|
| 131 | ; none
|
|---|
| 132 | ;
|
|---|
| 133 | N DGERR
|
|---|
| 134 | N DGFDA
|
|---|
| 135 | N DGIENS
|
|---|
| 136 | ;
|
|---|
| 137 | ;validate input params
|
|---|
| 138 | Q:'$G(DGIEN)
|
|---|
| 139 | Q:$G(DGSTAT)']""
|
|---|
| 140 | Q:$$EXTERNAL^DILFD(39.7,.04,"F",DGSTAT,"")']""
|
|---|
| 141 | ;
|
|---|
| 142 | S DGIENS=DGIEN_","
|
|---|
| 143 | S DGFDA(39.7,DGIENS,.04)=DGSTAT
|
|---|
| 144 | S DGFDA(39.7,DGIENS,.05)=$$NOW^XLFDT()
|
|---|
| 145 | D FILE^DIE("","DGFDA","DGERR")
|
|---|
| 146 | Q
|
|---|
| 147 | ;
|
|---|
| 148 | ;
|
|---|
| 149 | DELXMIT(DGIEN) ;delete a single VIC HL7 TRANSMISSION LOG record
|
|---|
| 150 | ;
|
|---|
| 151 | ; Input:
|
|---|
| 152 | ; DGIEN - IEN of record in VIC HL7 TRANSMISSION LOG (#39.7) file
|
|---|
| 153 | ;
|
|---|
| 154 | ; Output:
|
|---|
| 155 | ; Function value - 1 on success, 0 on failure
|
|---|
| 156 | ;
|
|---|
| 157 | N DGERR
|
|---|
| 158 | N DGFDA
|
|---|
| 159 | N DGRSLT ;function value
|
|---|
| 160 | ;
|
|---|
| 161 | S DGRSLT=0
|
|---|
| 162 | I $G(DGIEN) D
|
|---|
| 163 | . S DGFDA(39.7,DGIEN_",",.01)="@"
|
|---|
| 164 | . D FILE^DIE("","DGFDA","DGERR")
|
|---|
| 165 | . Q:$D(DGERR)
|
|---|
| 166 | . S DGRSLT=1 ;success
|
|---|
| 167 | ;
|
|---|
| 168 | Q DGRSLT
|
|---|