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 | ; =================================================================
|
---|