1 | LRAPR ;AVAMC/REG/WTY/KLL- ANAT RELEASE REPORTS ;10/30/01
|
---|
2 | ;;5.2;LAB SERVICE;**72,248,259,317**;Sep 27, 1994
|
---|
3 | ;
|
---|
4 | N LRESSW
|
---|
5 | D SWITCH
|
---|
6 | I +LRESSW D Q
|
---|
7 | .D ^LRAPRES
|
---|
8 | .D END
|
---|
9 | W !!?27,"Release Pathology Reports",!!
|
---|
10 | D A
|
---|
11 | I '$D(LRSS) D END Q
|
---|
12 | I LRCAPA D G:'$D(X) END
|
---|
13 | .S X=$S(LRSS="CY":"CYTOLOGY REPORTING",LRSS="SP":"SURGICAL PATH REPORTING",1:"")
|
---|
14 | .D:X]"" X^LRUWK
|
---|
15 | I LRSS="AU" D B Q
|
---|
16 | S LRSOP="Z"
|
---|
17 | S DR="S A=^LR(LRDFN,LRSS,LRI,0),LRZ=$P(A,U,3),LRZ(1)=$P(A,U,13),"
|
---|
18 | S DR=DR_"LRZ(2)=$P(A,U,11),LRZ(3)=$P(A,U,2);"
|
---|
19 | S DR=DR_"I 'LRZ W $C(7),!,""No date report completed. "
|
---|
20 | S DR=DR_"Cannot release."" S Y=0;"
|
---|
21 | S DR=DR_"I 'LRZ(2) D NMPATH^LRAPR;"
|
---|
22 | S DR=DR_"I LRZ(2) D RINFO^LRAPR S Y=0;"
|
---|
23 | ;Perform supp edit regardless if date rept released since supp rpt
|
---|
24 | ; is added to released report
|
---|
25 | S DR=DR_"D SUPCHK^LRAPR;"
|
---|
26 | S DR=DR_"S DIR(0)=""YA"",DIR(""A"")=""Release report? """
|
---|
27 | S DR=DR_",DIR(""B"")=""NO"" D ^DIR K:Y Y S:$D(Y) Y=0;"
|
---|
28 | S DR=DR_".11////^D NOW^%DTC S X=%;.13////^S X=DUZ;"
|
---|
29 | S DR=DR_"W !!,""Report released..."""
|
---|
30 | D ^LRAPDA
|
---|
31 | D END
|
---|
32 | Q
|
---|
33 | ;
|
---|
34 | B ;Autopsy
|
---|
35 | S LRSOP="Z"
|
---|
36 | S DR="S A=$G(^LR(LRDFN,""AU"")) I A="""" S Y=0;"
|
---|
37 | S DR=DR_"S LRZ=$P(A,U,3),LRZ(1)=$P(A,U,16),LRZ(2)=$P(A,U,15),"
|
---|
38 | ;KLL-LRZ(3)=SR PATHOLOGIST,LRZ(4)=PROVISIONAL DATE
|
---|
39 | S DR=DR_"LRZ(3)=$P(A,U,10),LRZ(4)=$P(A,U,17);"
|
---|
40 | ;KLL-PROVISIONAL OR DATE REPORT COMPLETED IS REQUIRED
|
---|
41 | S DR=DR_"I 'LRZ(4),'LRZ W $C(7),!,""Provisional date or date report completed required. "
|
---|
42 | S DR=DR_"Cannot release."" S Y=0;"
|
---|
43 | S DR=DR_"I 'LRZ(2) D NMPATH^LRAPR;"
|
---|
44 | S DR=DR_"I LRZ(2) D RINFO^LRAPR S Y=0;"
|
---|
45 | ;Perform supp edit regardless if date rept released since supp rpt
|
---|
46 | ; is added to released report
|
---|
47 | S DR=DR_"D SUPCHK^LRAPR;"
|
---|
48 | S DR=DR_"D RELEASE^LRAPR;"
|
---|
49 | S DR=DR_"D NOW^%DTC S LRDTE=%;"
|
---|
50 | S DR=DR_"14.7////^S X=$S(LRZ(2):""@"",1:LRDTE);"
|
---|
51 | S DR=DR_"14.8////^S X=$S(LRZ(2):""@"",1:DUZ);"
|
---|
52 | S DR=DR_"W !!,""Report "" W:LRZ(2) ""un"" W ""released..."";K LRDTE"
|
---|
53 | D ^LRAPDA
|
---|
54 | D END
|
---|
55 | Q
|
---|
56 | EN ;Supplementary Report Entry Point
|
---|
57 | N LRESSW
|
---|
58 | D SWITCH
|
---|
59 | W !!?20,"Release Supplementary Pathology Reports",!
|
---|
60 | ;D A
|
---|
61 | ;Section prompt replaces the line above
|
---|
62 | S LRQUIT=0
|
---|
63 | D SECTION^LRAPRES
|
---|
64 | I '$D(LRSS) D END Q
|
---|
65 | ;Verify User ID has access to release supp. reports
|
---|
66 | S LREND=0
|
---|
67 | I LRESSW D CLSSCHK^LRAPRES1(DUZ,.LREND)
|
---|
68 | Q:LREND
|
---|
69 | ;
|
---|
70 | W !!,"Data entry for ",LRH(0)," "
|
---|
71 | S %=1 D YN^LRU G:%<1 END
|
---|
72 | I %=2 D G:Y<1 END
|
---|
73 | .S %DT="AE",%DT(0)="-N",%DT("A")="Enter YEAR: " D ^%DT K %DT
|
---|
74 | .Q:Y<1 S LRAD=$E(Y,1,3)_"0000",LRH(0)=$E(Y,1,3)+1700
|
---|
75 | I '$D(^LRO(68,LRAA,1,LRAD,0)) D Q
|
---|
76 | .W $C(7),!!,"NO ",LRAA(1)," ACCESIONS IN FILE FOR ",LRH(0),!!
|
---|
77 | W K X,Y,LR("CK") R !!,"Select Accession Number/Pt name: ",LRAN:DTIME
|
---|
78 | G:LRAN=""!(LRAN[U) END
|
---|
79 | I LRAN'?1N.N D G:LRAN<1 END G W
|
---|
80 | .D PNAME^LRAPDA
|
---|
81 | .Q:LRAN<1
|
---|
82 | .D DIE
|
---|
83 | D REST
|
---|
84 | G W
|
---|
85 | REST W " for ",LRH(0)
|
---|
86 | I '$D(^LRO(68,LRAA,1,LRAD,1,LRAN,0)) D Q
|
---|
87 | .W $C(7),!!,"Accession # ",LRAN," for ",LRH(0)
|
---|
88 | .W " not in ACCESSION file",!!
|
---|
89 | S X=^LRO(68,LRAA,1,LRAD,1,LRAN,0),LRLLOC=$P(X,"^",7),LRDFN=+X
|
---|
90 | Q:'$D(^LR(LRDFN,0)) S X=^(0) D ^LRUP
|
---|
91 | W !,LRP," ID: ",SSN
|
---|
92 | I LRSS'="AU" D
|
---|
93 | .S LRI=$P(^LRO(68,LRAA,1,LRAD,1,LRAN,3),"^",5)
|
---|
94 | .W !,"Specimen(s):"
|
---|
95 | .S X=0 F S X=$O(^LR(LRDFN,LRSS,LRI,.1,X)) Q:'X D
|
---|
96 | ..I $D(^LR(LRDFN,LRSS,LRI,.1,X,0)),$L(^(0)) W !,^(0)
|
---|
97 | DIE ;Define default supplementary report
|
---|
98 | N LRFILE,LRIENS,LRIENS1,LRX,LRRLS,LRFDA,LRLKFL,LRDA,LRQUIT,LRNOSP
|
---|
99 | N LRMSG,LRSRFL,LRFDA2,LRSRMD,LRRLM
|
---|
100 | S DIC("B")="",LRNOSP=0
|
---|
101 | I LRSS'="AU" D
|
---|
102 | .S LRFILE=+$$GET1^DID(LRSF,1.2,"","SPECIFIER")
|
---|
103 | .S LRIENS1=LRI_","_LRDFN_","
|
---|
104 | .I '+$P($G(^LR(LRDFN,LRSS,LRI,1.2,0)),"^",4) S LRNOSP=1 Q
|
---|
105 | .S LRX=0 F S LRX=$O(^LR(LRDFN,LRSS,LRI,1.2,LRX)) Q:'LRX D
|
---|
106 | ..S LRIENS=LRX_","_LRIENS1
|
---|
107 | ..S LRSRFL=$$GET1^DIQ(LRFILE,LRIENS,.02,"I")
|
---|
108 | ..;LRSRMD-set to 1 if supp rpt modified and requires release
|
---|
109 | ..S LRSRMD=$$GET1^DIQ(LRFILE,LRIENS,.03,"I")
|
---|
110 | ..Q:LRSRFL&('LRSRMD)
|
---|
111 | ..S DIC("B")=$$GET1^DIQ(LRFILE,LRIENS,.01,"I")
|
---|
112 | I LRSS="AU" D
|
---|
113 | .S LRFILE=63.324,LRIENS1=LRDFN_","
|
---|
114 | .I '+$P($G(^LR(LRDFN,84,0)),"^",4) S LRNOSP=1 Q
|
---|
115 | .S LRX=0 F S LRX=$O(^LR(LRDFN,84,LRX)) Q:'LRX D
|
---|
116 | ..S LRIENS=LRX_","_LRIENS1
|
---|
117 | ..S LRSRFL=$$GET1^DIQ(LRFILE,LRIENS,.02,"I")
|
---|
118 | ..;LRSRMD-set to 1 if supp rpt modified and requires release
|
---|
119 | ..S LRSRMD=$$GET1^DIQ(LRFILE,LRIENS,.03,"I")
|
---|
120 | ..Q:LRSRFL&('LRSRMD)
|
---|
121 | ..S DIC("B")=$$GET1^DIQ(LRFILE,LRIENS,.01,"I")
|
---|
122 | I LRNOSP D Q
|
---|
123 | .K LRMSG
|
---|
124 | .S LRMSG=$C(7)_"No supplementary reports exist for this accession."
|
---|
125 | .D EN^DDIOL(LRMSG,"","!!")
|
---|
126 | I 'DIC("B") D Q
|
---|
127 | .K LRMSG
|
---|
128 | .S LRMSG=$C(7)_"All supplementary reports have been released."
|
---|
129 | .D EN^DDIOL(LRMSG,"","!!")
|
---|
130 | DIE1 ;
|
---|
131 | S (LRQUIT,LRRLM)=0
|
---|
132 | F D Q:LRQUIT
|
---|
133 | .W !
|
---|
134 | .S:LRSS="AU" (LRLKFL,DIC)="^LR(LRDFN,84,"
|
---|
135 | .S:LRSS'="AU" (LRLKFL,DIC)="^LR(LRDFN,LRSS,LRI,1.2,"
|
---|
136 | .S DIC("A")="Select SUPPLEMENTARY REPORT DATE: "
|
---|
137 | .S DIC(0)="AEQM"
|
---|
138 | .D ^DIC K DIC
|
---|
139 | .I Y<1 S LRQUIT=1 Q
|
---|
140 | .S LRDA=+Y
|
---|
141 | .S LRIENS=LRDA_","_LRIENS1
|
---|
142 | .S LRRLS=+$$GET1^DIQ(LRFILE,LRIENS,.02,"I")
|
---|
143 | .;If E-Sign OFF, must check LRRLM. LRRLM=1 if supp rpt has been
|
---|
144 | .; modified and requires release
|
---|
145 | .S LRRLM=+$$GET1^DIQ(LRFILE,LRIENS,.03,"I")
|
---|
146 | .I LRESSW,LRRLS D Q
|
---|
147 | ..W !!,"This supplementary report has already been released.",!
|
---|
148 | .I 'LRESSW,LRRLS D Q:'LRRLM
|
---|
149 | ..I 'LRRLM W !!,"This supplementary rept has already been released.",!
|
---|
150 | .W !
|
---|
151 | .I LRESSW D Q
|
---|
152 | ..D ESIG Q:LRQUIT
|
---|
153 | ..D UPDATE
|
---|
154 | .S DIR("A")="Release supplementary report",DIR(0)="Y",DIR("B")="NO"
|
---|
155 | .D ^DIR K DIR
|
---|
156 | .Q:'Y
|
---|
157 | .D UPDATE
|
---|
158 | .;If E-sign switch OFF and orig report released, must verify all
|
---|
159 | .; supp reports released before release main report.
|
---|
160 | .I LRCKREL,'LRESSW D CHKSUP^LRAPR1
|
---|
161 | Q
|
---|
162 | ;
|
---|
163 | A D ^LRAP G:'$D(Y) END
|
---|
164 | Q
|
---|
165 | C ;
|
---|
166 | S LRDICS="SPCYEM" D ^LRAP
|
---|
167 | G:'$D(Y) END
|
---|
168 | Q
|
---|
169 | S ;from LRAPDA
|
---|
170 | S LRK=$P(^LR(LRDFN,LRSS,LRI,0),"^",11) Q:'LRK S:'$D(^LRO(68,LRAA,1,LRAD,1,LRAN,4,0)) ^(0)="^68.04PA^^"
|
---|
171 | Q:$D(^LRO(68,LRAA,1,LRAD,1,LRAN,4,LRT,0)) S ^(0)=LRT_"^50^^"_DUZ_"^"_LRK,X=^LRO(68,LRAA,1,LRAD,1,LRAN,4,0),^(0)=$P(X,"^",1,2)_"^"_LRT_"^"_($P(X,"^",4)+1)
|
---|
172 | S:'$D(^LRO(68,LRAA,1,LRAD,1,LRAN,4,LRT,1,0)) ^(0)="^68.14P^^"
|
---|
173 | S C=0 F S C=$O(LRT(C)) Q:'C D CAP
|
---|
174 | S ^LRO(68,"AA",LRAA_"|"_LRAD_"|"_LRAN_"|"_LRT)=""
|
---|
175 | Q
|
---|
176 | ;
|
---|
177 | CAP S ^LRO(68,LRAA,1,LRAD,1,LRAN,4,LRT,1,C,0)=C_"^1^0^0^^"_LRK_"^"_DUZ_"^"_DUZ(2)_"^"_LRAA_"^"_LRAA_"^"_LRAA
|
---|
178 | S X=^LRO(68,LRAA,1,LRAD,1,LRAN,4,LRT,1,0),^(0)=$P(X,"^",1,2)_"^"_C_"^"_($P(X,"^",4)+1)
|
---|
179 | Q
|
---|
180 | ;
|
---|
181 | SWITCH ;Check to see if electronic signature is enabled
|
---|
182 | D GETDATA^LRAPESON(.LRESSW)
|
---|
183 | Q
|
---|
184 | ESIG ;Prompt for electronic signature
|
---|
185 | S LRQUIT=0
|
---|
186 | D SIG^XUSESIG
|
---|
187 | I X1="" D
|
---|
188 | .W " SIGNATURE NOT VERIFIED"
|
---|
189 | .S LRQUIT=1
|
---|
190 | Q
|
---|
191 | UPDATE ;
|
---|
192 | S LRLKFL=LRLKFL_LRDA_",0)"
|
---|
193 | L +@(LRLKFL):5 I '$T D Q
|
---|
194 | .S LRMSG="This record is locked by another user. "
|
---|
195 | .S LRMSG=LRMSG_"Please wait and try again."
|
---|
196 | .D EN^DDIOL(LRMSG,"","!!")
|
---|
197 | S LRFDA(LRFILE,LRIENS,.02)=1
|
---|
198 | S LRFDA2(LRFILE,LRIENS,.02)="@" ;Set but don't file unless unrel needed
|
---|
199 | ;File signer ID and Date/time of released supp report
|
---|
200 | D CKSIGNR^LRAPR1
|
---|
201 | D FILE^DIE("","LRFDA")
|
---|
202 | W "...Released"
|
---|
203 | L -@(LRLKFL)
|
---|
204 | ;If all supp reports released, and E-Sign switch is ON, proceed to
|
---|
205 | ; release main report
|
---|
206 | S LRCKREL=0
|
---|
207 | S:LRSS'="AU" LRCKREL=$P(^LR(LRDFN,LRSS,LRI,0),"^",11)
|
---|
208 | S:LRSS="AU" LRCKREL=$P(^LR(LRDFN,LRSS),"^",15)
|
---|
209 | I LRCKREL,LRESSW D RELMN
|
---|
210 | Q
|
---|
211 | SUPCHK ;Check for unreleased supplementary reports
|
---|
212 | N LRSR,LRSR1,LRSR2
|
---|
213 | S LRSR=0,LRSR1=1
|
---|
214 | I LRSS'="AU" D
|
---|
215 | .Q:'+$P($G(^LR(LRDFN,LRSS,LRI,1.2,0)),U,4)
|
---|
216 | .F S LRSR=$O(^LR(LRDFN,LRSS,LRI,1.2,LRSR)) Q:LRSR'>0!('LRSR1) D
|
---|
217 | ..S LRSR1=+$P(^LR(LRDFN,LRSS,LRI,1.2,LRSR,0),U,2)
|
---|
218 | ..I 'LRSR1 D
|
---|
219 | ...S Y=+$P(^LR(LRDFN,LRSS,LRI,1.2,LRSR,0),U)
|
---|
220 | ...D DD^%DT S LRSR2=Y
|
---|
221 | I LRSS="AU" D
|
---|
222 | .Q:'+$P($G(^LR(LRDFN,84,0)),U,4)
|
---|
223 | .F S LRSR=$O(^LR(LRDFN,84,LRSR)) Q:LRSR'>0!('LRSR1) D
|
---|
224 | ..S LRSR1=+$P(^LR(LRDFN,84,LRSR,0),U,2)
|
---|
225 | ..I 'LRSR1 D
|
---|
226 | ...S Y=+$P(^LR(LRDFN,84,LRSR,0),U)
|
---|
227 | ...D DD^%DT S LRSR2=Y
|
---|
228 | I 'LRSR1 D
|
---|
229 | .W $C(7),!,"Supplementary report "_LRSR2_" has not been released. "
|
---|
230 | .W "Cannot release."
|
---|
231 | .S Y=0
|
---|
232 | Q
|
---|
233 | RINFO ;Display release information
|
---|
234 | W $C(7),!,"Report "
|
---|
235 | W:LRZ(2)=1 "has already been "
|
---|
236 | W "released "
|
---|
237 | S Y=LRZ(2)
|
---|
238 | D DD^%DT
|
---|
239 | W:LRZ(2)>1 Y
|
---|
240 | W:LRZ(1)'="" " by "_$P($G(^VA(200,LRZ(1),0)),U)
|
---|
241 | K Y
|
---|
242 | Q
|
---|
243 | NMPATH ;Check for missing pathologist name
|
---|
244 | I 'LRZ(3) D
|
---|
245 | .W $C(7),!,"Pathologist name missing. Cannot release."
|
---|
246 | .S Y=0
|
---|
247 | Q
|
---|
248 | RELEASE ;Prompt for release/unrelease
|
---|
249 | W ! S DIR(0)="YA",DIR("B")="NO"
|
---|
250 | S:LRZ(2) DIR("A")="Unrelease report? "
|
---|
251 | S:'LRZ(2) DIR("A")="Release report? "
|
---|
252 | D ^DIR
|
---|
253 | K:Y Y
|
---|
254 | I $D(Y) S Y=0
|
---|
255 | Q
|
---|
256 | RELMN ;Allow release of main report as long as all supp reports are
|
---|
257 | ; released, and signer is same person for main and supp report(s)
|
---|
258 | ;Make sure all supp reports signed out
|
---|
259 | S LRQT=0
|
---|
260 | D RELCHK^LRAPR1
|
---|
261 | Q:LRQT
|
---|
262 | ;
|
---|
263 | ;Continue with electronic signature and storage in TIU
|
---|
264 | S LRAU=$S(LRSS="AU":1,1:0)
|
---|
265 | I 'LRAU D
|
---|
266 | .S LRPAT=+$$GET1^DIQ(LRSF,LRIENS1,.02,"I")
|
---|
267 | .S LRZ=$$GET1^DIQ(LRSF,LRIENS1,.03,"I")
|
---|
268 | .S LRZ(1)=$$GET1^DIQ(LRSF,LRIENS1,.13,"I")
|
---|
269 | .S LRZ(1.1)=$$GET1^DIQ(LRSF,LRIENS1,.13)
|
---|
270 | .S LRZ(2)=$$GET1^DIQ(LRSF,LRIENS1,.11,"I")
|
---|
271 | I LRAU D
|
---|
272 | .S LRPAT=+$$GET1^DIQ(63,LRDFN_",",13.6,"I")
|
---|
273 | .S LRZ=$$GET1^DIQ(63,LRDFN_",",13,"I")
|
---|
274 | .S LRZ(1)=$$GET1^DIQ(63,LRDFN_",",14.8,"I")
|
---|
275 | .S LRZ(1.1)=$$GET1^DIQ(63,LRDFN_",",14.8)
|
---|
276 | .S LRZ(2)=$$GET1^DIQ(63,LRDFN_",",14.7,"I")
|
---|
277 | .S LRI=""
|
---|
278 | W !!,?25,"*** Main Report Release ***",!
|
---|
279 | D NOW^%DTC S LRNTIME=%
|
---|
280 | D TIUPREP^LRAPRES
|
---|
281 | D STORE^LRAPRES
|
---|
282 | I LRQUIT D FILE^DIE("","LRFDA2") Q
|
---|
283 | D UNRLSE^LRAPR1
|
---|
284 | D RELEASE^LRAPRES
|
---|
285 | I LRQUIT D FILE^DIE("","LRFDA2") Q
|
---|
286 | D MAIN^LRAPRES1(LRDFN,LRSS,LRI,LRSF,LRP,LRAC)
|
---|
287 | D OERR^LR7OB63D
|
---|
288 | S LRQUIT=1
|
---|
289 | Q
|
---|
290 | END ;
|
---|
291 | D V^LRU
|
---|
292 | Q
|
---|