[623] | 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
|
---|