1 | LRAPMRL ;DALOI/WTY/KLL- AP MODIFY RELEASED REPORT;12/04/01
|
---|
2 | ;;5.2;LAB SERVICE;**259,295,317,368**;Sep 27, 1994;Build 1
|
---|
3 | ;
|
---|
4 | MAIN ;
|
---|
5 | N LRQUIT,LRMSG,LREND,LRDATA,LRREL,LRAU,LREFPD,LRWM,LRCT,LRTMP,LRGMDF
|
---|
6 | N LRFLD,LRDSC,LRCHG,LRXTMP,LRYTMP,LRIENS1,LRFILE,LRFLDA,LRAD1,LRIENS
|
---|
7 | N LRORIEN,LRWPROOT,LRFDA,LRDA,LRFIELD,LRFILE1,LRIENS2,LRDT0,LRESCPT
|
---|
8 | N LRQUIT1,LREDIAG,LRLOCK,LRNOTXT,LRORIEN
|
---|
9 | S LRESCPT=0
|
---|
10 | D TITLE
|
---|
11 | I LRQUIT D END Q
|
---|
12 | D NOTICE
|
---|
13 | I LRQUIT D END Q
|
---|
14 | D SECTION
|
---|
15 | I LRQUIT D END Q
|
---|
16 | D WHAT
|
---|
17 | I LRQUIT D END Q
|
---|
18 | D CPTCHK
|
---|
19 | ;D SECTION
|
---|
20 | I LRQUIT D END Q
|
---|
21 | D ASK
|
---|
22 | I LRQUIT D END Q
|
---|
23 | D SETDR^LRAPMRL1
|
---|
24 | D ACCYR
|
---|
25 | I LRQUIT D END Q
|
---|
26 | D ACCPN
|
---|
27 | D END
|
---|
28 | Q
|
---|
29 | ACCPN ;Prompt for accesion number or patient name
|
---|
30 | F D Q:LREND
|
---|
31 | .S (LRQUIT,LREND)=0
|
---|
32 | .D CPTCHK
|
---|
33 | .D LOOKUP^LRAPUTL(.LRDATA,LRH(0),LRO(68),LRSS,LRAD,LRAA)
|
---|
34 | .I (LRDATA<1)!('$G(LRAN))!($G(LRAN)=-1) S LREND=1 Q
|
---|
35 | .S LRDFN=LRDATA,LRI=LRDATA(1)
|
---|
36 | .S LRLOCK="^LR(LRDFN"_$S(LRAU:")",1:",LRSS,LRI)")
|
---|
37 | .L +@(LRLOCK):5 I '$T D Q
|
---|
38 | ..S LRMSG="This record is locked by another user. "
|
---|
39 | ..S LRMSG=LRMSG_"Please try again later."
|
---|
40 | ..D EN^DDIOL(LRMSG,"","!!") K LRMSG
|
---|
41 | .S LRIENS=$S('LRAU:LRI_",",1:"")_LRDFN_","
|
---|
42 | .D RELCHK^LRAPMRL1
|
---|
43 | .I LRQUIT D UNLOCK Q
|
---|
44 | .D RELEASE^LRAPMRL1
|
---|
45 | .D QUEUPD^LRAPMRL1
|
---|
46 | .D:LRCAPA&'LRAU C^LRAPSWK
|
---|
47 | .D:'LREDIAG SETDR^LRAPMRL1,EDIT^LRAPMRL1
|
---|
48 | .I LRQUIT D UNLOCK Q
|
---|
49 | .I 'LRAU D
|
---|
50 | ..F LRFLD=1,1.1,1.4,1.3 D Q:LRQUIT
|
---|
51 | ...Q:LREDIAG&(LRFLD'=1.4)
|
---|
52 | ...Q:'LREDIAG&(LRFLD=1.4)
|
---|
53 | ...Q:LRFLD=1.3&(LRSS'="SP")
|
---|
54 | ...D ASK2 Q:LRQUIT!('LRGMDF)
|
---|
55 | ...D SAVTXT
|
---|
56 | ...K DR S DR=LRFLD
|
---|
57 | ...D EDIT^LRAPMRL1
|
---|
58 | ...D COMPARE Q:LRQUIT
|
---|
59 | ...D AUDIT Q:LRQUIT
|
---|
60 | ...D STORE
|
---|
61 | .I LRAU,LREDIAG D
|
---|
62 | ..S LRDSC="PATHOLOGICAL DIAGNOSIS"
|
---|
63 | ..S LRFLD=32.3
|
---|
64 | ..D SAVTXT
|
---|
65 | ..K DR S DR=LRFLD
|
---|
66 | ..D EDIT^LRAPMRL1
|
---|
67 | ..D COMPARE
|
---|
68 | .I $G(SEX)["F","SPCY"[LRSS D DEL^LRWOMEN
|
---|
69 | .I LRQUIT D UNLOCK Q
|
---|
70 | .I LREDIAG D UNLOCK Q
|
---|
71 | .D:LRESCPT CPTCODE^LRAPMRL1
|
---|
72 | .D UNLOCK
|
---|
73 | Q
|
---|
74 | TITLE ;Title
|
---|
75 | S (LRQUIT,LRQUIT1)=0
|
---|
76 | D CK^LRAP
|
---|
77 | I Y=-1 S LRQUIT=1 Q
|
---|
78 | W @IOF
|
---|
79 | S LRMSG="Modify Released Pathology Reports"
|
---|
80 | S LRMSG(1)=$$CJ^XLFSTR(LRMSG,IOM)
|
---|
81 | S LRMSG(1,"F")="!!"
|
---|
82 | S LRMSG(2)="",LRMSG(2,"F")="!"
|
---|
83 | D EN^DDIOL(.LRMSG) K LRMSG
|
---|
84 | Q
|
---|
85 | NOTICE ;Warn the user and allow an exit
|
---|
86 | K LRMSG
|
---|
87 | S LRMSG="NOTICE"
|
---|
88 | S LRMSG(1)=$$CJ^XLFSTR(LRMSG,IOM),LRMSG(1,"F")="!!"
|
---|
89 | S LRMSG(2)="",LRMSG(2,"F")="!"
|
---|
90 | S LRMSG(3)=$C(7)_"This option allows modification of a verified/"
|
---|
91 | S LRMSG(3)=LRMSG(3)_"released pathology report."
|
---|
92 | S LRMSG(3,"F")="!?3"
|
---|
93 | S LRMSG(4)="Continuing with this option will unrelease the report "
|
---|
94 | S LRMSG(4)=LRMSG(4)_"and flag the report",LRMSG(4,"F")="!?3"
|
---|
95 | S LRMSG(5)="as modified even if the data is unchanged. It will "
|
---|
96 | S LRMSG(5)=LRMSG(5)_"also be queued to the",LRMSG(5,"F")="!?3"
|
---|
97 | S LRMSG(6)="final report queue so that it may be verified/released "
|
---|
98 | S LRMSG(6)=LRMSG(6)_"again.",LRMSG(6,"F")="!?3"
|
---|
99 | D EN^DDIOL(.LRMSG) K LRMSG
|
---|
100 | W !!
|
---|
101 | S DIR(0)="Y",DIR("A")="Do you wish to continue",DIR("B")="NO"
|
---|
102 | D ^DIR
|
---|
103 | S:Y<1 LRQUIT=1
|
---|
104 | Q
|
---|
105 | WHAT ;What is to be edited
|
---|
106 | W !
|
---|
107 | K DIR
|
---|
108 | ;Don't ask to Edit Diagnosis if initial entry of diagnosis is turned
|
---|
109 | ; off at data entry for SP, CY, EM's
|
---|
110 | S LRASK=1,XASK=""
|
---|
111 | I 'LRAU D
|
---|
112 | .S XASK=$S(LRSS="SP":11.2,LRSS="CY":11.3,1:"")
|
---|
113 | .S:XASK="" XASK=$S(LRSS="EM":11.4,1:"")
|
---|
114 | .S LRASK=$$GET1^DIQ(69.9,"1,",XASK,"I")
|
---|
115 | S:LRASK DIR(0)="S^1:Edit Report;2:Edit Diagnosis"
|
---|
116 | S:LRASK DIR("A")="Enter selection",DIR("B")=1
|
---|
117 | S:'LRASK DIR(0)="Y",DIR("B")="YES",DIR("A")="Edit Report?"
|
---|
118 | D ^DIR
|
---|
119 | I $D(DTOUT)!($D(DUOUT))!($D(DIRUT))!($D(DIROUT)) S LRQUIT=1 Q
|
---|
120 | S:Y=0 LRQUIT=1
|
---|
121 | Q:LRQUIT=1
|
---|
122 | S LREDIAG=Y
|
---|
123 | S LREDIAG=$S(LREDIAG=2:1,1:0)
|
---|
124 | Q
|
---|
125 | CPTCHK ;Determine if CPT is activated
|
---|
126 | Q:$T(ES^LRCAPES)=""
|
---|
127 | S LRESCPT=$$ES^LRCAPES()
|
---|
128 | Q
|
---|
129 | SECTION ;Choose Anatomic Pathology section (AU,SP,CY,EM)
|
---|
130 | W !
|
---|
131 | D ^LRAP
|
---|
132 | I '$D(Y)!('$D(LRSS)) S LRQUIT=1 Q
|
---|
133 | S:LRO(68)="EM" LRO(68)="ELECTRON MICROSCOPY"
|
---|
134 | S LRAU=0 ; LRAU = 0 - Not Autopsy
|
---|
135 | S:LRSS="AU" LRAU=1 ; = 1 - Autosy
|
---|
136 | I LRCAPA D @(LRSS_"^LRAPSWK")
|
---|
137 | S LRMSG(1)=LRO(68)_" ("_LRABV_")",LRMSG(1,"F")="!?20"
|
---|
138 | S LRMSG(2)="",LRMSG(2,"F")="!"
|
---|
139 | D EN^DDIOL(.LRMSG) K LRMSG
|
---|
140 | Q
|
---|
141 | ASK ;Ask etiology,function,procedure,disease,weights,measures
|
---|
142 | I LREDIAG D Q
|
---|
143 | .S:'LRAU LREFPD=0
|
---|
144 | .S:LRAU LRWM=0
|
---|
145 | W !
|
---|
146 | S DIR(0)="Y",DIR("B")="NO"
|
---|
147 | S DIR("A")="Edit etiology, function, procedure & disease"
|
---|
148 | D ^DIR
|
---|
149 | I Y="^" S LRQUIT=1 Q
|
---|
150 | S LREFPD=$S(+Y:1,1:0)
|
---|
151 | I LRAU D
|
---|
152 | .W !
|
---|
153 | .S DIR(0)="Y",DIR("B")="NO"
|
---|
154 | .S DIR("A")="Edit weights and measures"
|
---|
155 | .D ^DIR
|
---|
156 | .I Y="^" S LRQUIT=1 Q
|
---|
157 | .S LRWM=$S(+Y:1,1:0)
|
---|
158 | Q
|
---|
159 | ACCYR ;Determine Accession Year
|
---|
160 | D ACCYR^LRAPUTL(.LRAD1,LRH(0),LRAA,LRO(68))
|
---|
161 | I LRAD1=-1 S LRQUIT=1 Q
|
---|
162 | I LRAD1 S LRAD=$P(LRAD1,U),LRH(0)=$P(LRAD1,U,2)
|
---|
163 | Q
|
---|
164 | ASK2 ;Ask about other fields
|
---|
165 | S LRGMDF=0
|
---|
166 | K LRDSC
|
---|
167 | I LRFLD=1!(LRFLD=1.1) D
|
---|
168 | .S:LRFLD=1 LRFLDA=7
|
---|
169 | .S:LRFLD=1.1 LRFLDA=4
|
---|
170 | .S LRDSC=$S(LRFLD=1:"GROSS",LRFLD=1.1:"MICROSCOPIC",1:"")
|
---|
171 | .S LRDSC=LRDSC_" DESCRIPTION"
|
---|
172 | S:LRFLD=1.4 LRDSC="DIAGNOSIS",LRFLDA=5
|
---|
173 | S:LRFLD=1.3 LRDSC="FROZEN SECTION",LRFLDA=6
|
---|
174 | I 'LREDIAG D
|
---|
175 | .S DIR(0)="Y",DIR("B")="NO"
|
---|
176 | .S DIR("A")="Edit "_LRDSC
|
---|
177 | .D ^DIR
|
---|
178 | .I Y="^" S LRQUIT=1 Q
|
---|
179 | .S LRGMDF=$S(+Y:1,1:0)
|
---|
180 | S:LREDIAG LRGMDF=1
|
---|
181 | Q
|
---|
182 | SAVTXT ;Save word processing field text.
|
---|
183 | S LRNOTXT=0
|
---|
184 | K ^TMP("DIQ1",$J)
|
---|
185 | S:'LRAU LRIENS=LRI_","_LRDFN_",",LRFILE=LRSF
|
---|
186 | S:LRAU LRIENS=LRDFN_",",LRFILE=63
|
---|
187 | Q:LRFLD=""
|
---|
188 | S LRTMP=$$GET1^DIQ(LRFILE,LRIENS,LRFLD,"","^TMP(""DIQ1"",$J)")
|
---|
189 | I LRTMP="" D
|
---|
190 | .K LRMSG
|
---|
191 | .S LRMSG(1)="There is no "_LRDSC_" text to modify."
|
---|
192 | .S LRMSG(1,"F")="!!"
|
---|
193 | .S LRMSG(2)="Report was released before entering text."
|
---|
194 | .S LRMSG(2,"F")="!"
|
---|
195 | .D EN^DDIOL(.LRMSG)
|
---|
196 | .S LRNOTXT=1
|
---|
197 | Q
|
---|
198 | COMPARE ;Compare report text
|
---|
199 | S (LRCHG,LRQUIT,LRCT)=0
|
---|
200 | S:'LRAU LRFILE="^LR(LRDFN,LRSS,LRI,LRFLD,"
|
---|
201 | S:LRAU LRFILE="^LR(LRDFN,82,"
|
---|
202 | I '$D(@(LRFILE_"0)")) D Q
|
---|
203 | .Q:LRNOTXT
|
---|
204 | .S LRQUIT=1
|
---|
205 | F S LRCT=$O(@(LRFILE_"LRCT)")) Q:'LRCT D
|
---|
206 | .S LRXTMP=@(LRFILE_"LRCT,0)")
|
---|
207 | .I '$D(^TMP("DIQ1",$J,LRCT)) S LRCHG=1 Q
|
---|
208 | .S LRYTMP=^TMP("DIQ1",$J,LRCT)
|
---|
209 | .I LRXTMP'=LRYTMP S LRCHG=1
|
---|
210 | I 'LRCHG D
|
---|
211 | .S LRCT=0 F S LRCT=$O(^TMP("DIQ1",$J,LRCT)) Q:'LRCT D
|
---|
212 | ..I '$D(@(LRFILE_"LRCT,0)")) S LRCHG=1
|
---|
213 | I 'LRCHG D Q
|
---|
214 | .D EN^DDIOL("No changes made to "_LRDSC_".","","!!")
|
---|
215 | .W !
|
---|
216 | .K ^TMP("DIQ1",$J)
|
---|
217 | I LRCHG&(LRFLD=1.4!(LRFLD=32.3)) D ;Indicate that the diagnosis
|
---|
218 | .K LRFDA ;has been modified.
|
---|
219 | .S:'LRAU LRFDA(LRSF,LRIENS,.172)=1
|
---|
220 | .;KLL-CORRECT BUG WHERE LRSF IS NULL, REPLACE LRSF WITH 63
|
---|
221 | .S:LRAU LRFDA(63,LRIENS,102.2)=1
|
---|
222 | .;S:LRAU LRFDA(LRSF,LRIENS,102.2)=1
|
---|
223 | .D FILE^DIE("","LRFDA")
|
---|
224 | Q
|
---|
225 | AUDIT ;
|
---|
226 | N LRNTIME
|
---|
227 | K LRFDA
|
---|
228 | D NOW^%DTC S LRNTIME=%
|
---|
229 | S LRIENS1="+1,"_LRIENS
|
---|
230 | S LRFILE=+$$GET1^DID(LRSF,LRFLDA,"","SPECIFIER")
|
---|
231 | I LRFILE="" S LRQUIT=1 Q
|
---|
232 | S LRFDA(1,LRFILE,LRIENS1,.01)=LRNTIME
|
---|
233 | S LRFDA(1,LRFILE,LRIENS1,.02)=DUZ
|
---|
234 | D UPDATE^DIE("","LRFDA(1)","LRORIEN")
|
---|
235 | Q
|
---|
236 | STORE ;
|
---|
237 | K LRIENS1
|
---|
238 | S LRIENS1=LRORIEN(1)_","_LRIENS
|
---|
239 | S LRWPROOT="^TMP(""DIQ1"",$J)"
|
---|
240 | D WP^DIE(LRFILE,LRIENS1,1,"",LRWPROOT)
|
---|
241 | K ^TMP("DIQ1",$J)
|
---|
242 | Q
|
---|
243 | SUPRPT ;Supplementary Report
|
---|
244 | K DIR
|
---|
245 | S DIR(0)="Y",DIR("B")="NO"
|
---|
246 | S DIR("A")="Edit SUPPLEMENTARY REPORTS"
|
---|
247 | D ^DIR
|
---|
248 | I Y="^" S LRQUIT1=1 Q
|
---|
249 | Q:Y<1
|
---|
250 | N LRX,LRRLS,LRA,LRFLG,LRNOW
|
---|
251 | D GETRPT^LRAPDSR Q:LRQUIT
|
---|
252 | S LRRLS=1,LRRLS1=0
|
---|
253 | D COPY^LRAPDSR Q:LRQUIT
|
---|
254 | D RPT^LRAPDSR Q:LRQUIT
|
---|
255 | S Y=LRDA
|
---|
256 | D RELEAS2^LRAPDSR
|
---|
257 | D COMPARE^LRAPDSR Q:LRQUIT
|
---|
258 | D UNRELEAS^LRAPDSR
|
---|
259 | D UPDATE^LRAPDSR Q:LRQUIT
|
---|
260 | D STORE^LRAPDSR
|
---|
261 | Q
|
---|
262 | UNLOCK ;Unlock the record
|
---|
263 | D UPDATE^LRPXRM(LRDFN,$G(LRSS,"AU"),$G(LRI))
|
---|
264 | L -@(LRLOCK)
|
---|
265 | Q
|
---|
266 | END ;Clean-up variables and quit
|
---|
267 | K ^TMP("LRAPBR",$J),^TMP("TIUP",$J)
|
---|
268 | D CLEAN^DILF
|
---|
269 | D:$T(CLEAN^LRCAPES)'="" CLEAN^LRCAPES
|
---|
270 | D V^LRU
|
---|
271 | Q
|
---|