| 1 | RAHLEX1 ;HIRMFO/REL,CRT - RAD/NUC MED HL7 Voice Reporting Exception Protocols ; 02/02/99 | 
|---|
| 2 | ;;5.0;Radiology/Nuclear Medicine;**12**;Mar 16, 1998 | 
|---|
| 3 | ; Last Edited by CRT | 
|---|
| 4 | ; | 
|---|
| 5 | Q | 
|---|
| 6 | EN ; Print Exception List Protocol - Called from ListMan ONLY | 
|---|
| 7 | ; | 
|---|
| 8 | D CLEAR^VALM1 | 
|---|
| 9 | ; | 
|---|
| 10 | DEVICE ; Select device to print report | 
|---|
| 11 | ; | 
|---|
| 12 | S %ZIS="Q",%ZIS("B")="",%ZIS("A")="Select Device: " | 
|---|
| 13 | D ^%ZIS K %ZIS I POP K DTOUT,DUOUT,POP G END | 
|---|
| 14 | ; | 
|---|
| 15 | I '$D(IO("Q")) G PRINT | 
|---|
| 16 | ; | 
|---|
| 17 | S ZTRTN="PRINT^RAHLEX1" | 
|---|
| 18 | S ZTDESC="Rad/Nuc Med HL7 Voice Reprting Errors List." | 
|---|
| 19 | ; | 
|---|
| 20 | S ZTSAVE("RAHL7SDT")="" | 
|---|
| 21 | S ZTSAVE("RAHL7EDT")="" | 
|---|
| 22 | S ZTSAVE("^TMP($J,""RAHLAPP"",")="" | 
|---|
| 23 | S ZTSAVE("^TMP($J,""RAHLUSR"",")="" | 
|---|
| 24 | ;S ZTSAVE("^TMP($J,""RAHLSRT"",")=""  ; Causes Subscript error !?!?!?! | 
|---|
| 25 | ; | 
|---|
| 26 | D ^%ZTLOAD | 
|---|
| 27 | I +$G(ZTSK("D"))>0 W !?5,"Request Queued, Task #: "_$G(ZTSK) | 
|---|
| 28 | I +$G(ZTSK("D"))=0 W !?5,"Request Cancelled" | 
|---|
| 29 | H 1.5 | 
|---|
| 30 | D ^%ZISC,HOME^%ZIS K %X,%Y,%XX,%YY,IO("Q") | 
|---|
| 31 | G END | 
|---|
| 32 | ; | 
|---|
| 33 | PRINT ; Start printing the report to the requested device - using ^TMP | 
|---|
| 34 | ; RAPN = Page Number | 
|---|
| 35 | ; WAIT = "^" if user has requested to quit prematurely | 
|---|
| 36 | ; | 
|---|
| 37 | I $D(ZTQUEUED) D | 
|---|
| 38 | .S ZTREQ="@" | 
|---|
| 39 | .S RAHLSRT="^TMP($J,""RAHLSRT"")" | 
|---|
| 40 | .S RAHLUSR="^TMP($J,""RAHLUSR"")" | 
|---|
| 41 | .S RAHLAPP="^TMP($J,""RAHLAPP"")" | 
|---|
| 42 | S WAIT="",RAPN=0,RAPL=0 | 
|---|
| 43 | I '$D(@RAHLSRT) D SETTMP^RAHLEX | 
|---|
| 44 | ; | 
|---|
| 45 | U IO | 
|---|
| 46 | ; | 
|---|
| 47 | S RASEND="" F  S RASEND=$O(@RAHLSRT@(RASEND)) Q:(RASEND="")!(WAIT="^")  D | 
|---|
| 48 | .S RAPN=RAPN+1 D:RAPN'=1 WAIT^RAHLEX1 Q:WAIT="^"  D HEADER^RAHLEX1 | 
|---|
| 49 | .S RADATE="" F  S RADATE=$O(@RAHLSRT@(RASEND,RADATE)) Q:(RADATE="")!(WAIT="^")  D | 
|---|
| 50 | ..S RADPT="" F  S RADPT=$O(@RAHLSRT@(RASEND,RADATE,RADPT)) Q:(RADPT="")!(WAIT="^")  D | 
|---|
| 51 | ...S RACN="" F  S RACN=$O(@RAHLSRT@(RASEND,RADATE,RADPT,RACN)) Q:(RACN="")!(WAIT="^")  D | 
|---|
| 52 | ....S RAUSER="" F  S RAUSER=$O(@RAHLSRT@(RASEND,RADATE,RADPT,RACN,RAUSER)) Q:(RAUSER="")!(WAIT="^")  D | 
|---|
| 53 | .....I $Y+5>IOSL S RAPN=RAPN+1 D WAIT^RAHLEX1 Q:WAIT="^"  D HEADER^RAHLEX1 | 
|---|
| 54 | .....S RAEXCP=@RAHLSRT@(RASEND,RADATE,RADPT,RACN,RAUSER,"ERR") | 
|---|
| 55 | .....I $D(ZTQUEUED) D STOPCHK^RAUTL9 I $G(ZTSTOP)=1 S WAIT="^" Q | 
|---|
| 56 | .....D FORMAT^RAHLEX1 | 
|---|
| 57 | ; | 
|---|
| 58 | I $Y+3>IOSL S RAPN=RAPN+1 D WAIT^RAHLEX1 G END:WAIT="^" D HEADER^RAHLEX1 | 
|---|
| 59 | D EN^DDIOL("** End of Report **","","!?19") | 
|---|
| 60 | D EN^DDIOL("","","!") | 
|---|
| 61 | D WAIT^RAHLEX1 | 
|---|
| 62 | ; | 
|---|
| 63 | END ; | 
|---|
| 64 | I $D(ZTQUEUED) D | 
|---|
| 65 | .K @RAHLSRT,RAHLSRT,@RAHLUSR,RAHLUSR,@RAHLAPP,RAHLAPP | 
|---|
| 66 | K X,Y,NOW,%,RASEND,RAUSER,RADATE,RADPT,RACN,RAEXCP,RAPN,RAPL | 
|---|
| 67 | K DTOUT,DUOUT,ZTRTN,ZTDESC,ZTSAVE,ZTSK,WAIT,ZTSTOP | 
|---|
| 68 | D CLOSE^RAUTL | 
|---|
| 69 | D HOME^%ZIS | 
|---|
| 70 | S VALMBCK="R" | 
|---|
| 71 | Q | 
|---|
| 72 | ; | 
|---|
| 73 | ; | 
|---|
| 74 | WAIT ; Prompt user to hit RETURN for next page | 
|---|
| 75 | ; | 
|---|
| 76 | I $E(IOST,1,2)'="C-" S WAIT="" Q  ; Don't prompt if report queued | 
|---|
| 77 | ; | 
|---|
| 78 | S DIR(0)="E" | 
|---|
| 79 | S (DIR("?"),DIR("??"))="" | 
|---|
| 80 | D ^DIR K DIR | 
|---|
| 81 | I Y=""!(Y=0) S WAIT="^" | 
|---|
| 82 | Q | 
|---|
| 83 | ; | 
|---|
| 84 | HEADER ; Report/Page Header | 
|---|
| 85 | ; | 
|---|
| 86 | K RAHDR | 
|---|
| 87 | I '($D(ZTQUEUED)&(RAPN=1)) W @IOF | 
|---|
| 88 | S RAHDR(1)=$$REPEAT^XLFSTR("=",80) | 
|---|
| 89 | S RAHDR(1,"F")="" | 
|---|
| 90 | D NOW^%DTC,YX^%DTC S NOW="Printed: "_$P(Y,"@")_"  "_$E($P(Y,"@",2),1,5) | 
|---|
| 91 | S TITLE="HL7 Voice Reporting Errors " | 
|---|
| 92 | S PAGE="Page: "_RAPN | 
|---|
| 93 | S RAHDR(2)=TITLE | 
|---|
| 94 | S RAHDR(2,"F")="!?1"  ; Left Justified | 
|---|
| 95 | S RAHDR(3)=PAGE | 
|---|
| 96 | S RAHDR(3,"F")="?"_(78-$L(PAGE))  ; Right Justified | 
|---|
| 97 | S TITLE="("_RASEND_" - RADIOLOGY/NUCLEAR MEDICINE)" | 
|---|
| 98 | S RAHDR(4)=TITLE | 
|---|
| 99 | S RAHDR(4,"F")="!?1"  ; Left Justified | 
|---|
| 100 | S RAHDR(5)=NOW | 
|---|
| 101 | S RAHDR(5,"F")="?"_(78-$L(NOW))  ; Right Justified | 
|---|
| 102 | S RAHDR(6)=$$REPEAT^XLFSTR("=",78) | 
|---|
| 103 | S RAHDR(6,"F")="!?1" | 
|---|
| 104 | S RAHDR(7)="" | 
|---|
| 105 | D EN^DDIOL(.RAHDR) | 
|---|
| 106 | K RAHDR,PAGE,TITLE,NOW | 
|---|
| 107 | Q | 
|---|
| 108 | ; | 
|---|
| 109 | FORMAT ; Format of Report | 
|---|
| 110 | ; | 
|---|
| 111 | K RADSP | 
|---|
| 112 | D DISDATE^RAHLEX(" at ") | 
|---|
| 113 | S RADSP(1)="Exception Date:   "_XRADATE | 
|---|
| 114 | S RADSP(1,"F")="!?1" | 
|---|
| 115 | S RADSP(2)="User: "_$E(RAUSER,1,24) | 
|---|
| 116 | S RADSP(2,"F")="?50" | 
|---|
| 117 | S RADSP(3)="Patient Name:     "_RADPT | 
|---|
| 118 | S RADSP(3,"F")="!?1" | 
|---|
| 119 | S RADSP(4)="Case: "_RACN | 
|---|
| 120 | S RADSP(4,"F")="?50" | 
|---|
| 121 | S RADSP(5)="Reason Rejected:  "_RAEXCP | 
|---|
| 122 | S RADSP(5,"F")="!?1" | 
|---|
| 123 | S RADSP(6)="" | 
|---|
| 124 | D EN^DDIOL(.RADSP) | 
|---|
| 125 | K RADSP,XRADATE | 
|---|
| 126 | Q | 
|---|
| 127 | ; | 
|---|
| 128 | ; ================================================================= | 
|---|
| 129 | ; | 
|---|
| 130 | NXTAPP(DIR) ; Next or Previous Exception Protocol | 
|---|
| 131 | ; VALMLST = Last ListMan Line Displayed | 
|---|
| 132 | ; VALMBG = First ListMan Line Displayed | 
|---|
| 133 | ; | 
|---|
| 134 | S DIR=$G(DIR) | 
|---|
| 135 | S VALMBCK="" | 
|---|
| 136 | I DIR=1 D  G NEND  ; Next Exception forward | 
|---|
| 137 | .S RALINE=VALMLST | 
|---|
| 138 | .I '$D(@RAHLSEL@(RALINE)) D | 
|---|
| 139 | ..S RALINE=$O(@RAHLSEL@(RALINE)) | 
|---|
| 140 | ..S:RALINE="" RALINE=VALMLST | 
|---|
| 141 | .S RALINE=RALINE-14 | 
|---|
| 142 | .S:RALINE<1 RALINE=1 | 
|---|
| 143 | .I VALMBG'=RALINE S VALMBG=RALINE,VALMBCK="R" | 
|---|
| 144 | ; Previous Exception | 
|---|
| 145 | S RALINE=$O(@RAHLSEL@(VALMBG),-1) | 
|---|
| 146 | S:('RALINE) RALINE=1 | 
|---|
| 147 | I RALINE'=VALMBG S VALMBG=RALINE,VALMBCK="R" | 
|---|
| 148 | ; | 
|---|
| 149 | NEND K RALINE,DIR | 
|---|
| 150 | Q | 
|---|
| 151 | ; | 
|---|
| 152 | ; ================================================================= | 
|---|
| 153 | ; | 
|---|
| 154 | RESEND ; Re-Submit an HL7 Message Protocol | 
|---|
| 155 | ; | 
|---|
| 156 | K VALMSG | 
|---|
| 157 | D EN^DDIOL(" ","","!!!") | 
|---|
| 158 | I HL7EX<1 D  Q | 
|---|
| 159 | .S VALMSG="Function not available - no messages to re-submit" | 
|---|
| 160 | .S VALMBCK="" | 
|---|
| 161 | .W $C(7) | 
|---|
| 162 | RESEND1 K DIR | 
|---|
| 163 | S DIR(0)="NAO^1:"_HL7EX_":0" | 
|---|
| 164 | S DIR("A")="Select HL7 Exception (1-"_HL7EX_") :" | 
|---|
| 165 | S DIR("?")="Select one of the exceptions to Re-submit" | 
|---|
| 166 | S DIR("??")="^D RESH^RAHLEX1" | 
|---|
| 167 | D ^DIR K DIR I $D(DTOUT)!(Y="")!(Y="^") S VALMBCK="R" Q | 
|---|
| 168 | ; | 
|---|
| 169 | S RAXIEN="" F RAI=1:1:Y S RAXIEN=$O(@RAHLSEL@(RAXIEN)) | 
|---|
| 170 | S RALINE=RAXIEN | 
|---|
| 171 | I @RAHLEX@(RALINE+1,0)'["Error:" D  G RESEND1 | 
|---|
| 172 | .W $C(7) | 
|---|
| 173 | .D EN^DDIOL("Message already re-submitted or deleted. Not available for selection","","!?5") | 
|---|
| 174 | ; | 
|---|
| 175 | S RAXIEN=@RAHLSEL@(RAXIEN) | 
|---|
| 176 | S HLIEN=$$GET1^DIQ(79.3,RAXIEN,.05,"I") | 
|---|
| 177 | D EN^DDIOL("Re-sending Message #"_HLIEN_"...","","!?5") | 
|---|
| 178 | H 1.5 | 
|---|
| 179 | ; | 
|---|
| 180 | S RESEND=$$REPROC^HLUTIL(HLIEN,"RAHLTCPB") | 
|---|
| 181 | I RESEND'=0 D  ; Fail !! | 
|---|
| 182 | .W $C(7) | 
|---|
| 183 | .S VALMSG="Error - Original message may have been purged" | 
|---|
| 184 | I RESEND=0 D   ; Success !! | 
|---|
| 185 | .S HLMTIENS=HLIEN | 
|---|
| 186 | .S PURGE=$$SETPURG^HLUTIL(0) | 
|---|
| 187 | .I PURGE'=0 W $C(7) S VALMSG="Cannot change purge flag for message" | 
|---|
| 188 | .S %H=$H D YX^%DTC | 
|---|
| 189 | .S @RAHLEX@(RALINE+1,0)=IOINHI_"     Message Re-submitted on "_Y_IOINORM | 
|---|
| 190 | .S DIK="^RA(79.3,",DA=RAXIEN D ^DIK  ; Remove old report entry | 
|---|
| 191 | ; | 
|---|
| 192 | REND K RAI,RAXIEN,RALINE,RESEND,HLMTIENS,HLIEN,PURGE,DA,DIK,Y,%H | 
|---|
| 193 | ; Also HLUTIL calls | 
|---|
| 194 | K HL,HLA,HLARYTYP,HLECH,HLEID,HLFORMAT,HLFS,HLHDR,HLQ,HLRESLTA | 
|---|
| 195 | K VA,VADM,HLEIDS | 
|---|
| 196 | S VALMBCK="R" | 
|---|
| 197 | Q | 
|---|
| 198 | ; | 
|---|
| 199 | RESH ; Extended help | 
|---|
| 200 | D EN^DDIOL("Select one of the HL7 exceptions to Re-submit","","!") | 
|---|
| 201 | D EN^DDIOL("(If re-submitted successfully the exception will be deleted from file)","","!") | 
|---|
| 202 | Q | 
|---|
| 203 | ; | 
|---|
| 204 | ; ================================================================= | 
|---|
| 205 | ; | 
|---|
| 206 | DELETE ; Function to delete Exception Node | 
|---|
| 207 | ; | 
|---|
| 208 | K VALMSG | 
|---|
| 209 | D EN^DDIOL(" ","","!!!") | 
|---|
| 210 | I HL7EX<1 D  Q | 
|---|
| 211 | .S VALMSG="Function not available - No messages to delete" | 
|---|
| 212 | .S VALMBCK="" | 
|---|
| 213 | .W $C(7) | 
|---|
| 214 | DELETE1 K DIR | 
|---|
| 215 | S DIR(0)="NAO^1:"_HL7EX_":0" | 
|---|
| 216 | S DIR("A")="Select HL7 Exception (1-"_HL7EX_") :" | 
|---|
| 217 | S DIR("?")="Select one of the exceptions to Delete" | 
|---|
| 218 | S DIR("??")="^D DELH^RAHLEX1" | 
|---|
| 219 | D ^DIR K DIR I $D(DTOUT)!(Y="")!(Y="^") S VALMBCK="R" Q | 
|---|
| 220 | ; | 
|---|
| 221 | S RAXIEN="" F RAI=1:1:Y S RAXIEN=$O(@RAHLSEL@(RAXIEN)) | 
|---|
| 222 | S RALINE=RAXIEN | 
|---|
| 223 | I @RAHLEX@(RALINE+1,0)'["Error:" D  G DELETE1 | 
|---|
| 224 | .W $C(7) | 
|---|
| 225 | .D EN^DDIOL("Exception already re-submitted or deleted. Not available for selection","","!?5") | 
|---|
| 226 | ; | 
|---|
| 227 | S RAXIEN=@RAHLSEL@(RAXIEN) | 
|---|
| 228 | S HLIEN=$$GET1^DIQ(79.3,RAXIEN,.05,"I") | 
|---|
| 229 | D EN^DDIOL("Deleting Exception...","","!?5") | 
|---|
| 230 | H 1.5 | 
|---|
| 231 | ; | 
|---|
| 232 | S DIK="^RA(79.3,",DA=RAXIEN D ^DIK | 
|---|
| 233 | ; | 
|---|
| 234 | S %H=$H D YX^%DTC | 
|---|
| 235 | S @RAHLEX@(RALINE+1,0)=IOINHI_"     Reported Exception Deleted on "_Y_IOINORM | 
|---|
| 236 | ; | 
|---|
| 237 | DEND K RAI,RAXIEN,DA,DIK,HLIEN,RALINE,%H,Y | 
|---|
| 238 | S VALMBCK="R" | 
|---|
| 239 | Q | 
|---|
| 240 | ; | 
|---|
| 241 | DELH D EN^DDIOL("Select one of the HL7 exceptions to Delete","","!") | 
|---|
| 242 | D EN^DDIOL("(Note: Re-submitting a message is a more effective way to delete an exception)","","!") | 
|---|
| 243 | Q | 
|---|
| 244 | ; | 
|---|
| 245 | ; ================================================================= | 
|---|