| 1 | RAHLEX ;HIRMFO/REL,CRT - RAD/NUC MED HL7 Voice Reporting Exception List; 02/02/99
|
---|
| 2 | ;;5.0;Radiology/Nuclear Medicine;**12,17,25**;Mar 16, 1998
|
---|
| 3 | ; Last Edited by CRT
|
---|
| 4 | ;
|
---|
| 5 | S RAHLAPP="^TMP($J,""RAHLAPP"")" K @RAHLAPP ; Sending Apps included
|
---|
| 6 | S RAHLEX="^TMP($J,""RAHLEX"")" K @RAHLEX ; List Display
|
---|
| 7 | S RAHLSEL="^TMP($J,""RAHLSEL"")" K @RAHLSEL ; X-ref Display to ^DIZ
|
---|
| 8 | S RAHLUSR="^TMP($J,""RAHLUSR"")" K @RAHLUSR ; Rad Users included
|
---|
| 9 | S RAHLSRT="^TMP($J,""RAHLSRT"")" K @RAHLSRT ; Sorted records from #79.3
|
---|
| 10 | S VALMCNT=0
|
---|
| 11 | ;
|
---|
| 12 | W @IOF
|
---|
| 13 | ;
|
---|
| 14 | D EN^DDIOL("Rad/Nuc Med HL7 Voice Reporting Exception List","","!?5")
|
---|
| 15 | ;
|
---|
| 16 | I ('$O(^RA(79.3,0))) D G EXIT
|
---|
| 17 | .S RACLR=1
|
---|
| 18 | .W $C(7)
|
---|
| 19 | .D EN^DDIOL("No Voice Reporting Exceptions currently recorded","","!?5")
|
---|
| 20 | .D END
|
---|
| 21 | ;
|
---|
| 22 | APPS ; 1st prompt for Sending Applications to print
|
---|
| 23 | ; skip prompt if there is only one Sending App.
|
---|
| 24 | ;
|
---|
| 25 | S RAHLAIEN="" F I=1:1:2 S RAHLAIEN=$O(^RA(79.3,"AA",RAHLAIEN))
|
---|
| 26 | I RAHLAIEN="" D G STDT
|
---|
| 27 | .S RAHLAIEN=$O(^RA(79.3,"AA",RAHLAIEN))
|
---|
| 28 | .S RAHLA=$$GET1^DIQ(771,RAHLAIEN,.01)
|
---|
| 29 | .S @RAHLAPP@(RAHLA,RAHLAIEN)=""
|
---|
| 30 | .K RAHLAIEN,RAHLA
|
---|
| 31 | ;
|
---|
| 32 | K RAHLAIEN
|
---|
| 33 | S RAINPUT=""
|
---|
| 34 | S RADIC="^HL(771,"
|
---|
| 35 | S RADIC(0)="ABEQSZ"
|
---|
| 36 | S RADIC("A")="Select Voice Reporting Application: "
|
---|
| 37 | S RADIC("B")="ALL"
|
---|
| 38 | S RADIC("S")="I $D(^RA(79.3,""AA"",Y))"
|
---|
| 39 | S RAUTIL="RAHLAPP"
|
---|
| 40 | D EN1^RASELCT(.RADIC,RAUTIL,"",RAINPUT)
|
---|
| 41 | K RADIC,RAUTIL,RAINPUT
|
---|
| 42 | I '$D(@RAHLAPP)!$G(RAQUIT) D G EXIT
|
---|
| 43 | .W $C(7)
|
---|
| 44 | .D EN^DDIOL("No Voice Reporting Applications selected for reporting","","!?5")
|
---|
| 45 | .D END
|
---|
| 46 | ;
|
---|
| 47 | STDT ; Prompt for Start From Date
|
---|
| 48 | ;
|
---|
| 49 | D EN^DDIOL(" ","","!")
|
---|
| 50 | K %DT
|
---|
| 51 | S %DT="AEPST"
|
---|
| 52 | S %DT("A")="Exception starting date/time: "
|
---|
| 53 | S %DT(0)="-NOW" ; Must be in the past
|
---|
| 54 | D ^%DT K %DT
|
---|
| 55 | I X']"" D EN^DDIOL("You must enter a start date, or '^' to exit","","!?5") G STDT
|
---|
| 56 | S RAHL7SDT=Y
|
---|
| 57 | I $D(DTOUT)!(U[X) D END G EXIT
|
---|
| 58 | ;
|
---|
| 59 | ETDT ; Prompt for End Date (Must be after Start Date.. obviously!)
|
---|
| 60 | ;
|
---|
| 61 | D EN^DDIOL(" ","","!")
|
---|
| 62 | S %DT="AEPST"
|
---|
| 63 | S %DT("A")="Exception ending date/time: "
|
---|
| 64 | S %DT(0)=RAHL7SDT
|
---|
| 65 | S %DT("B")="NOW" ; Default of current date/time
|
---|
| 66 | D ^%DT K %DT
|
---|
| 67 | I $D(DTOUT)!(U[X) D END G EXIT
|
---|
| 68 | S RAHL7EDT=Y
|
---|
| 69 | I $P(RAHL7EDT,".",2)="" S RAHL7EDT=+RAHL7EDT+1
|
---|
| 70 | ;
|
---|
| 71 | USER ; Prompt for Users to include
|
---|
| 72 | ; skip prompt if there is only one User on file.
|
---|
| 73 | ; also there may be entries with no user!!
|
---|
| 74 | ;
|
---|
| 75 | S RAHLUIEN=$O(^RA(79.3,"AB","")) G:RAHLUIEN="" LISTMAN
|
---|
| 76 | S RAHLUIEN=$O(^RA(79.3,"AB",RAHLUIEN))
|
---|
| 77 | I RAHLUIEN="" D G LISTMAN
|
---|
| 78 | .S RAHLUIEN=$O(^RA(79.3,"AB",RAHLUIEN))
|
---|
| 79 | .S RAHLU=$$GET1^DIQ(200,RAHLUIEN,.01)
|
---|
| 80 | .S @RAHLUSR@(RAHLU,RAHLUIEN)=""
|
---|
| 81 | .K RAHLUIEN,RAHLU
|
---|
| 82 | ;
|
---|
| 83 | K RAHLUIEN
|
---|
| 84 | S RAINPUT=""
|
---|
| 85 | S RADIC="^VA(200,"
|
---|
| 86 | S RADIC(0)="ABEQZ"
|
---|
| 87 | S RADIC("A")="Select Radiology User: "
|
---|
| 88 | S RADIC("B")="ALL"
|
---|
| 89 | ;S RADIC("S")="I $D(^RA(79.3,""AB"",Y))"
|
---|
| 90 | S RAUTIL="RAHLUSR"
|
---|
| 91 | D EN1^RASELCT(.RADIC,RAUTIL,"",RAINPUT)
|
---|
| 92 | K RADIC,RAUTIL,RAINPUT
|
---|
| 93 | I '$D(@RAHLUSR)!$G(RAQUIT) D G EXIT
|
---|
| 94 | .W $C(7)
|
---|
| 95 | .D EN^DDIOL("No Radiology User selected for reporting","","!?5")
|
---|
| 96 | .D END
|
---|
| 97 | ;
|
---|
| 98 | LISTMAN ; Call List Manager
|
---|
| 99 | D EN^VALM("RA HL7 VOICE REPORTING ERRORS")
|
---|
| 100 | Q
|
---|
| 101 | ;
|
---|
| 102 | HEADER ; Report/Page Header
|
---|
| 103 | ;
|
---|
| 104 | S VALMHDR(1)=""
|
---|
| 105 | Q
|
---|
| 106 | ;
|
---|
| 107 | SETTMP ;Create ^TMP workfile with sorted records on...
|
---|
| 108 | ;
|
---|
| 109 | S RAPPX="" F S RAPPX=$O(@RAHLAPP@(RAPPX)) Q:RAPPX="" D
|
---|
| 110 | .S RAPPI=0 F S RAPPI=$O(@RAHLAPP@(RAPPX,RAPPI)) Q:RAPPI'>0 D
|
---|
| 111 | ..S RAXIEN="" F S RAXIEN=$O(^RA(79.3,"AA",RAPPI,RAXIEN)) Q:RAXIEN'>0 D
|
---|
| 112 | ...S RAX=$G(^RA(79.3,RAXIEN,0)) Q:RAX=""
|
---|
| 113 | ...;
|
---|
| 114 | ...S RASEND=$$GET1^DIQ(771,RAPPI,3)
|
---|
| 115 | ...;
|
---|
| 116 | ...S RADATE=$P(RAX,U,1) Q:RADATE=""
|
---|
| 117 | ...I (RAHL7SDT]RADATE)!(RADATE]RAHL7EDT) Q
|
---|
| 118 | ...;
|
---|
| 119 | ...S RAUSER=$P(RAX,U,6)
|
---|
| 120 | ...I RAUSER'="" S RAUSER=$$GET1^DIQ(200,RAUSER,.01) Q:'$D(@RAHLUSR@(RAUSER))
|
---|
| 121 | ...S:RAUSER="" RAUSER="Not Known"
|
---|
| 122 | ...;
|
---|
| 123 | ...S RADPT=$P(RAX,U,3)
|
---|
| 124 | ...S:RADPT'="" RADPT=$$GET1^DIQ(70,RADPT,.01)
|
---|
| 125 | ...S:RADPT="" RADPT="Not known"
|
---|
| 126 | ...;
|
---|
| 127 | ...S RACN=$P(RAX,U,4)
|
---|
| 128 | ...S:RACN="" RACN="?????"
|
---|
| 129 | ...;
|
---|
| 130 | ...S RAEXCP=$$GET1^DIQ(79.3,RAXIEN,1)
|
---|
| 131 | ...;
|
---|
| 132 | ...S @RAHLSRT@(RASEND,RADATE,RADPT,RACN,RAUSER)=RAXIEN
|
---|
| 133 | ...S @RAHLSRT@(RASEND,RADATE,RADPT,RACN,RAUSER,"ERR")=RAEXCP
|
---|
| 134 | ...Q
|
---|
| 135 | K RAPPI,RAPPX,RAX,RAXIEN,RASEND,RADATE,Y,RAUSER,RADPT,RACN,RAEXCP
|
---|
| 136 | Q
|
---|
| 137 | ;
|
---|
| 138 | ENTRY ; List Manager Entry Point
|
---|
| 139 | ;
|
---|
| 140 | D SETTMP^RAHLEX
|
---|
| 141 | S (HL7EX,VALMCNT)=0
|
---|
| 142 | ;
|
---|
| 143 | I '$D(@RAHLSRT) D G END
|
---|
| 144 | .W $C(7)
|
---|
| 145 | .S VALMSG="Nothing to Report for selection criteria"
|
---|
| 146 | ;
|
---|
| 147 | ;
|
---|
| 148 | DISPLAY ; Create ARRAY for List Manager display on ^TMP($J,"RAHLEX")
|
---|
| 149 | ;
|
---|
| 150 | S SPACES=" "
|
---|
| 151 | S (RAOLD,RASEND)="" F S RASEND=$O(@RAHLSRT@(RASEND)) Q:RASEND="" D
|
---|
| 152 | .; Blank line
|
---|
| 153 | .S VALMCNT=VALMCNT+1,@RAHLEX@(VALMCNT,0)=""
|
---|
| 154 | .; Sending Application Sub-Heading
|
---|
| 155 | .I RAOLD'=RASEND D
|
---|
| 156 | ..S VALMCNT=VALMCNT+1
|
---|
| 157 | ..S LINE=" HL7 Voice Reporting Application: "_$E(RASEND_$$REPEAT^XLFSTR(" ",30),1,30)_" "
|
---|
| 158 | ..S @RAHLEX@(VALMCNT,0)=LINE
|
---|
| 159 | ..D CNTRL^VALM10(VALMCNT,6,33+$L(RASEND),IORVON,IORVOFF,0)
|
---|
| 160 | ..S RAOLD=RASEND
|
---|
| 161 | .;
|
---|
| 162 | .S RADATE="" F S RADATE=$O(@RAHLSRT@(RASEND,RADATE)) Q:RADATE="" D
|
---|
| 163 | ..S RADPT="" F S RADPT=$O(@RAHLSRT@(RASEND,RADATE,RADPT)) Q:RADPT="" D
|
---|
| 164 | ...S RACN="" F S RACN=$O(@RAHLSRT@(RASEND,RADATE,RADPT,RACN)) Q:RACN="" D
|
---|
| 165 | ....S RAUSER="" F S RAUSER=$O(@RAHLSRT@(RASEND,RADATE,RADPT,RACN,RAUSER)) Q:RAUSER="" D
|
---|
| 166 | .....S RAEXCP=@RAHLSRT@(RASEND,RADATE,RADPT,RACN,RAUSER,"ERR")
|
---|
| 167 | .....S VALMCNT=VALMCNT+1 S @RAHLEX@(VALMCNT,0)="" ; Blank line
|
---|
| 168 | .....S VALMCNT=VALMCNT+1,HL7EX=$G(HL7EX)+1
|
---|
| 169 | .....S @RAHLSEL@(VALMCNT)=@RAHLSRT@(RASEND,RADATE,RADPT,RACN,RAUSER)
|
---|
| 170 | .....S LINE=$E(HL7EX_"."_$E(SPACES,1,5),1,5)
|
---|
| 171 | .....D DISDATE(" ")
|
---|
| 172 | .....S LINE=LINE_$E(XRADATE_$E(SPACES,1,22),1,22)
|
---|
| 173 | .....S LINE=LINE_$E($E(RADPT,1,25)_$E(SPACES,1,27),1,27)
|
---|
| 174 | .....S LINE=LINE_$E(RACN_$E(SPACES,1,7),1,7)
|
---|
| 175 | .....S LINE=LINE_$E(RAUSER,1,19)
|
---|
| 176 | .....S @RAHLEX@(VALMCNT,0)=LINE
|
---|
| 177 | .....S VALMCNT=VALMCNT+1
|
---|
| 178 | .....S LINE=" Error: "_RAEXCP
|
---|
| 179 | .....S @RAHLEX@(VALMCNT,0)=LINE
|
---|
| 180 | ;
|
---|
| 181 | END ; Tidy up variables after ENTRY call only
|
---|
| 182 | K XRADATE,RAQUIT,RASEND,RADPT,RACN,RAEXCP,RADATE,RAUSER,LINE,RAOLD,SPACES
|
---|
| 183 | ;
|
---|
| 184 | Q
|
---|
| 185 | ;
|
---|
| 186 | EXIT ; Tidy variables after function (including ListMan IO* and VALM*)
|
---|
| 187 | K VALMCNT,HL7EX,HL,RAHL7SDT,RAHL7EDT,Y,X,POP,PAGE,DTOUT
|
---|
| 188 | K @RAHLEX,RAHLEX,@RAHLSRT,RAHLSRT,@RAHLSEL,RAHLSEL,TITLE,DISYS
|
---|
| 189 | K @RAHLAPP,RAHLAPP,@RAHLUSR,RAHLUSR
|
---|
| 190 | ;
|
---|
| 191 | D:'$G(RACLR) CLEAR^VALM1
|
---|
| 192 | ;
|
---|
| 193 | K VALM,VALMAR,VALMBCK,VALMBG,VALMCAP,VALMCC,VALMCNT
|
---|
| 194 | K VALMDDF,VALMDN,VALMHDR,VALMIOXY,VALMKEY,VALMLFT,VALMLST
|
---|
| 195 | K VALMMENU,VALMMSGR,VALMUP,VALMSG,RACLR
|
---|
| 196 | ;
|
---|
| 197 | K IOBOFF,IOBON,IOINORM,IOINHI,IORVON,IORVOFF,IOUOFF,IOUON
|
---|
| 198 | Q
|
---|
| 199 | ;
|
---|
| 200 | DISDATE(SEP) ; Display date in external form
|
---|
| 201 | ; SEP is the separator between date and time - eg " " or "@" or " at "
|
---|
| 202 | S Y=$P(RADATE,".") D D^RAUTL
|
---|
| 203 | S XRADATE=Y_SEP_$E(RADATE_0,9,10)_":"_$E(RADATE_000,11,12)_":"_$E(RADATE_00000,13,14)
|
---|
| 204 | K Y
|
---|
| 205 | Q
|
---|
| 206 | ;
|
---|
| 207 | HELP ; The '??' help ListMan Call:
|
---|
| 208 | I X="?" D Q
|
---|
| 209 | .D EN^DDIOL("Choose one of the options listed","","!?5")
|
---|
| 210 | .D EN^DDIOL("Or '??' to list More Options","","!?5")
|
---|
| 211 | .D WAIT^RAHLEX1
|
---|
| 212 | D CLEAR^VALM1
|
---|
| 213 | K RAH
|
---|
| 214 | S RAH(1)=" Rad/Nuc Med HL7 Voice Reporting Exception List"
|
---|
| 215 | S RAH(1,"F")=""
|
---|
| 216 | S RAH(2)="=============================================="
|
---|
| 217 | S RAH(3)="This utility lists all the Errors that have been reported from HL7"
|
---|
| 218 | S RAH(4)="Voice Reporting applications for Radiology/Nuclear Medicine."
|
---|
| 219 | S RAH(5)="It provides some additional facilities:"
|
---|
| 220 | S RAH(6)="1. PL - The list can be printed to screen or to a printer, prints"
|
---|
| 221 | S RAH(7)=" can be queued or printed immediately."
|
---|
| 222 | S RAH(8)="2. RS - Any rejected message listed can be re-submitted. To re-send"
|
---|
| 223 | S RAH(9)=" a message via HL7, first try to resolve the reported"
|
---|
| 224 | S RAH(10)=" problem, then return to this list and select the error. Once"
|
---|
| 225 | S RAH(11)=" successfully re-submitted the reported error will be purged."
|
---|
| 226 | S RAH(12)=" Note however, that successful re-submission does not guarantee"
|
---|
| 227 | S RAH(13)=" the problem has been resolved and that Radiology will be updated"
|
---|
| 228 | S RAH(14)="3. DE - To purge a reported error without re-submitting first."
|
---|
| 229 | S RAH(15)=""
|
---|
| 230 | F RAHI=2:1:15 S RAH(RAHI,"F")="!?5"
|
---|
| 231 | S RAH(5,"F")="!!"
|
---|
| 232 | S (RAH(3,"F"),RAH(4,"F"))="!"
|
---|
| 233 | D EN^DDIOL(.RAH)
|
---|
| 234 | S VALMBCK="R"
|
---|
| 235 | K RAHI,RAH
|
---|
| 236 | Q
|
---|