| 1 | LRAURPT ;AVAMC/REG/WTY - AUTOPSY RPT ;9/22/00
 | 
|---|
| 2 |  ;;5.2;LAB SERVICE;**1,72,173,248,259**;Sep 27, 1994
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 |  ;Reference to ^DD(63 supported by IA #10155
 | 
|---|
| 5 |  ;WTY;24-AUG-01;Added ICD to the print coding question
 | 
|---|
| 6 |  ;
 | 
|---|
| 7 |  N LRPTR,LREL
 | 
|---|
| 8 |  W !!,LRO(68)," Autopsy Protocols" D XR^LRU,EN2^LRUA S LRD("V")=""
 | 
|---|
| 9 |  G END:LRAPX=2,SGL:LRAPX=3,CH:LRAPX=4
 | 
|---|
| 10 |  L +^LRO(69.2,LRAA,2):5
 | 
|---|
| 11 |  I '$T D EN^DDIOL("Someone else is building a print queue for this Accession Area","","$C(7),!!") Q
 | 
|---|
| 12 | GETP ;Add a patient to the report queue
 | 
|---|
| 13 |  W ! S X="" D ^LRUPS G GETP:LRAN["?" I LRAN=-1 L -^LRO(69.2,LRAA,2) Q
 | 
|---|
| 14 |  G:$D(^LRO(69.2,LRAA,2,LRAN,0)) GETP
 | 
|---|
| 15 |  S FDAIEN(2)=LRAN
 | 
|---|
| 16 |  S FDA(2,69.23,"+2,"_+LRAA_",",.01)=LRDFN
 | 
|---|
| 17 |  D UPDATE^DIE("","FDA(2)","FDAIEN") K FDAIEN G GETP
 | 
|---|
| 18 | CH ;Check Queue
 | 
|---|
| 19 |  I '$O(^LRO(69.2,LRAA,2,0)) D  Q
 | 
|---|
| 20 |  .W $C(7),!!,"No AUTOPSY PROTOCOLS currently on the print queue.",!!
 | 
|---|
| 21 |  ;Variable LR("DVD") is used to divide reports displayed in the browser
 | 
|---|
| 22 |  K LR("DVD")
 | 
|---|
| 23 |  S $P(LR("DVD"),"|",IOM)=""
 | 
|---|
| 24 | SPC ;Spacing
 | 
|---|
| 25 |  I LRAPX=4 D
 | 
|---|
| 26 |  .W !!,"The following two questions apply only to reports not stored in "
 | 
|---|
| 27 |  .W "TIU."
 | 
|---|
| 28 |  .W !,"If the report is stored in TIU it will be printed in its "
 | 
|---|
| 29 |  .W "original format.",!
 | 
|---|
| 30 |  R !,"(D)ouble or (S)ingle spacing of report(s): ",X:DTIME
 | 
|---|
| 31 |  Q:X=""!(X[U)
 | 
|---|
| 32 |  I $E(X)'="D"&($E(X)'="S") D  G SPC
 | 
|---|
| 33 |  .W $C(7),!,"Enter 'S' for single or 'D' for double "
 | 
|---|
| 34 |  .W "spacing of reports"
 | 
|---|
| 35 |  S LRS=$S(X="D":"D",1:"")_"W"
 | 
|---|
| 36 |  W !!,"Print special studies, journal references, weights, and "
 | 
|---|
| 37 |  W "measures: "
 | 
|---|
| 38 |  S %=1 D YN^LRU Q:%<1  S:%=1 LRD=1
 | 
|---|
| 39 |  Q:LRAPX=3
 | 
|---|
| 40 |  W !!,"Save protocol list for reprinting "
 | 
|---|
| 41 |  S %=2 D YN^LRU S:%=1 LRSAV=1
 | 
|---|
| 42 | DEV ;Device Handling
 | 
|---|
| 43 |  S %ZIS="Q" D ^%ZIS
 | 
|---|
| 44 |  I POP W ! S LR("Q")=1 Q
 | 
|---|
| 45 |  I $D(IO("Q")) D  Q
 | 
|---|
| 46 |  .S ZTDESC="Print AU Anat Path Reports"
 | 
|---|
| 47 |  .S ZTSAVE("LR*")="",ZTRTN="QUE^LRAURPT"
 | 
|---|
| 48 |  .D ^%ZTLOAD W:$D(ZTSK) !,"Request Queued, #",ZTSK W !
 | 
|---|
| 49 |  .K ZTSK,IO("Q") D HOME^%ZIS
 | 
|---|
| 50 |  .S LR("Q")=1
 | 
|---|
| 51 | QUE ;
 | 
|---|
| 52 |  U IO D L^LRU,S^LRU,EN^LRUA
 | 
|---|
| 53 |  N LRFFF
 | 
|---|
| 54 |  S LRQUIT=0,LR("Q")=+$G(LR("Q"))
 | 
|---|
| 55 |  ;LRSF515=1 means an SF515 is being generated.
 | 
|---|
| 56 |  S:'$D(LRSF515) LRSF515=0
 | 
|---|
| 57 |  S:'$D(LRFOC) LRFOC=0 ;Final office copy
 | 
|---|
| 58 |  S LRFFF=1  ;Flag used to determine whether to perform final form feed
 | 
|---|
| 59 |  I LRFOC S LRFFF=0  ;If final office copy, don't perform final form feed
 | 
|---|
| 60 |  S LR(.21)=+$G(^LRO(69.2,LRAA,.2)),(LRS(5),LRAURPT)=1
 | 
|---|
| 61 | PSGL ;Single Report
 | 
|---|
| 62 |  I $D(LRAP) D  G LST
 | 
|---|
| 63 |  .S LRDFN=LRAP
 | 
|---|
| 64 |  .I +$G(LRPTR) D  Q
 | 
|---|
| 65 |  ..D:$D(LR("AU1")) EN
 | 
|---|
| 66 |  ..Q:LR("Q")
 | 
|---|
| 67 |  ..D MAIN^LRAPTIUP(LRPTR,0)
 | 
|---|
| 68 |  ..S LRFFF=0 ;Don't do final form feed.  It's done by LRAPTIUP.
 | 
|---|
| 69 |  ..I LRQUIT S LR("Q")=1 Q
 | 
|---|
| 70 |  ..K LRAP S LR("F")=1
 | 
|---|
| 71 |  ..I 'LR("Q"),$D(LR("F")),IOST?1"C-".E D CONT
 | 
|---|
| 72 |  ..Q:LR("Q")
 | 
|---|
| 73 |  ..I 'LRFOC S LR("Q")=1 Q
 | 
|---|
| 74 |  ..S LRI="" D FOC^LRSPRPT
 | 
|---|
| 75 |  ..I LRQUIT S LR("Q")=1 Q
 | 
|---|
| 76 |  ..I 'LR("Q"),$D(LR("F")),IOST?1"C-".E D CONT
 | 
|---|
| 77 |  .D EN
 | 
|---|
| 78 |  .K LRAP
 | 
|---|
| 79 |  .I 'LR("Q"),$D(LR("F")),IOST?1"C-".E D CONT
 | 
|---|
| 80 |  .Q:LR("Q")
 | 
|---|
| 81 |  .I 'LRFOC S LR("Q")=1 Q
 | 
|---|
| 82 |  .W !
 | 
|---|
| 83 |  .W:IOST?1"P-".E @IOF
 | 
|---|
| 84 |  .S LRI="" D FOC^LRSPRPT
 | 
|---|
| 85 |  .I LRQUIT S LR("Q")=1 Q
 | 
|---|
| 86 |  .I 'LR("Q"),$D(LR("F")),IOST?1"C-".E D CONT
 | 
|---|
| 87 | PQUE ;Print all on queue
 | 
|---|
| 88 |  S LRAN=0
 | 
|---|
| 89 |  F  S LRAN=$O(^LRO(69.2,LRAA,2,LRAN)) Q:'LRAN!(LR("Q"))  D
 | 
|---|
| 90 |  .S (LRQUIT,LRQ)=0
 | 
|---|
| 91 |  .I 'LRFOC S LRFFF=1
 | 
|---|
| 92 |  .K LR("F")
 | 
|---|
| 93 |  .S LRDFN=+^LRO(69.2,LRAA,2,LRAN,0)
 | 
|---|
| 94 |  .D RELEASE^LRAPUTL(.LREL,LRDFN,LRSS)
 | 
|---|
| 95 |  .I +$G(LREL(1)) D
 | 
|---|
| 96 |  ..D TIUCHK^LRAPUTL(.LRPTR,LRDFN,LRSS)
 | 
|---|
| 97 |  .I +$G(LRPTR) D  Q
 | 
|---|
| 98 |  ..D MAIN^LRAPTIUP(LRPTR,0)
 | 
|---|
| 99 |  ..S LRFFF=0
 | 
|---|
| 100 |  ..W:IOST["BROWSER"&('LRFOC) !!,LR("DVD")
 | 
|---|
| 101 |  ..K LRPTR
 | 
|---|
| 102 |  ..I LRQUIT S LR("Q")=1 Q
 | 
|---|
| 103 |  ..S LR("F")=1
 | 
|---|
| 104 |  ..I 'LR("Q"),$D(LR("F")),IOST?1"C-".E D CONT
 | 
|---|
| 105 |  ..Q:LR("Q")!('LRFOC)
 | 
|---|
| 106 |  ..D FOC^LRSPRPT
 | 
|---|
| 107 |  ..W:IOST["BROWSER" !!,LR("DVD")
 | 
|---|
| 108 |  ..I LRQUIT S LR("Q")=1 Q
 | 
|---|
| 109 |  ..I 'LR("Q"),$D(LR("F")),IOST?1"C".E D CONT
 | 
|---|
| 110 |  .W:IOST?1"C-".E @IOF
 | 
|---|
| 111 |  .D EN
 | 
|---|
| 112 |  .W:IOST?1"P-".E @IOF
 | 
|---|
| 113 |  .W:IOST["BROWSER"&('LRFOC) !!,LR("DVD")
 | 
|---|
| 114 |  .I 'LR("Q"),$D(LR("F")),IOST?1"C-".E D CONT
 | 
|---|
| 115 |  .Q:LR("Q")!('LRFOC)
 | 
|---|
| 116 |  .W !
 | 
|---|
| 117 |  .D FOC^LRSPRPT
 | 
|---|
| 118 |  .W:IOST["BROWSER" !!,LR("DVD")
 | 
|---|
| 119 |  .I LRQUIT S LR("Q")=1 Q
 | 
|---|
| 120 |  .I 'LR("Q"),$D(LR("F")),IOST?1"C".E D CONT
 | 
|---|
| 121 |  S LRFFF=0
 | 
|---|
| 122 | LST ;
 | 
|---|
| 123 |  K:'$D(LRSAV) ^LRO(69.2,LRAA,2) K LRAURPT
 | 
|---|
| 124 |  S:'$D(^LRO(69.2,LRAA,2,0)) ^(0)="^69.23A^0^0"
 | 
|---|
| 125 |  K LRSAV D K^LRU
 | 
|---|
| 126 |  D:'$D(LR("AU1")) DEVEND
 | 
|---|
| 127 |  Q
 | 
|---|
| 128 | W ;
 | 
|---|
| 129 |  W !,LR("%")
 | 
|---|
| 130 |  Q
 | 
|---|
| 131 | F D E
 | 
|---|
| 132 |  S A=0 F LRZ=0:1 S A=$O(^LR(LRDFN,LRV,A)) Q:'A!(LR("Q"))  D
 | 
|---|
| 133 |  .D:$Y>(IOSL-12) FT,H Q:LR("Q")
 | 
|---|
| 134 |  .S X=^LR(LRDFN,LRV,A,0) D:X["|TOP|" TOP D ^DIWP
 | 
|---|
| 135 |  Q:LR("Q")  D:LRZ ^DIWW Q
 | 
|---|
| 136 | E K ^UTILITY($J) S DIWR=IOM-5,DIWL=5,DIWF=LRS
 | 
|---|
| 137 |  Q
 | 
|---|
| 138 | EN ;
 | 
|---|
| 139 |  S LR("SPSM")=1 ;Set this flag to suppress SNOMED codes 
 | 
|---|
| 140 |  S LRQ=0,X=^LR(LRDFN,0) D ^LRUP
 | 
|---|
| 141 |  I '$D(^LR(LRDFN,"AU")) L +^LRO(69.2,LRAA,2,LRAN):5 Q:'$T  D  Q
 | 
|---|
| 142 |  .S DIK="^LRO(69.2,LRAA,2,",DA=LRAN,DA(1)=0
 | 
|---|
| 143 |  .D ^DIK K DA,DIK
 | 
|---|
| 144 |  .L -^LRO(69.2,LRAA,2,LRAN)
 | 
|---|
| 145 |  S X=^LR(LRDFN,"AU"),LRAC=$P(X,"^",6),LRM(2)=$P(X,"^",7)
 | 
|---|
| 146 |  S LRM(1)=$P(X,"^",12),LRW(9)=$P(X,"^",13),LRM(3)=$P(X,"^",10)
 | 
|---|
| 147 |  S Y=$P(X,"^"),LRH(2)=$E(Y,2,3) D D^LRU
 | 
|---|
| 148 |  S LRH(1)=Y,Y=$P(X,"^",3) D D^LRU
 | 
|---|
| 149 |  S LRH(3)=Y,Y=$P(X,"^",17) D D^LRU S LRH(17)=Y
 | 
|---|
| 150 |  S LRLLOC=$P(X,"^",5),AGE=$P(X,"^",9)
 | 
|---|
| 151 |  S Y=$P(X,"^",8),C=$P(^DD(63,14.5,0),U,3)
 | 
|---|
| 152 |  D Y^DIQ S LRSVC=Y
 | 
|---|
| 153 |  S Y=$P(X,"^",11),C=$P(^DD(63,13.7,0),U,3)
 | 
|---|
| 154 |  D Y^DIQ S LRS(3)=Y
 | 
|---|
| 155 |  S DA=LRDFN D D^LRAUAW S Y=LR(63,12) D D^LRU S LRH=Y,X=LRM(1)
 | 
|---|
| 156 |  D:X D^LRUA S LRM(1)=X,X=LRM(2)
 | 
|---|
| 157 |  D:X D^LRUA S LRM(2)=X,X=LRM(3)
 | 
|---|
| 158 |  D:X D^LRUA S LRM(3)=X
 | 
|---|
| 159 |  Q:+$G(LRPTR)
 | 
|---|
| 160 |  D H Q:LR("Q")  S LR("F")=1
 | 
|---|
| 161 |  W:LRH(1)="" !?20,"**** REPORT INCOMPLETE ****",!
 | 
|---|
| 162 |  W !!,LRAU(1),! S LRV=81 D F
 | 
|---|
| 163 |  D:$Y>(IOSL-12) FT,H Q:LR("Q")  W !!,LR("%")
 | 
|---|
| 164 |  W !,LRAU(2),! S LRV=82 D F
 | 
|---|
| 165 |  I $O(^LR(LRDFN,84,0)),LR(.21) D FT,H Q:LR("Q")
 | 
|---|
| 166 |  S LRA=0 F  S LRA=$O(^LR(LRDFN,84,LRA)) Q:'LRA!(LR("Q"))  D
 | 
|---|
| 167 |  .S LRB=^LR(LRDFN,84,LRA,0) D:$Y>(IOSL-12) FT,H Q:LR("Q")
 | 
|---|
| 168 |  .W !!,"SUPPLEMENTARY REPORT DATE: "
 | 
|---|
| 169 |  .S Y=LRB D D^LRU W Y
 | 
|---|
| 170 |  .D:$P($G(^LR(LRDFN,84,LRA,2,0)),U,4) SUPA^LRAPAUSR
 | 
|---|
| 171 |  .D WRT
 | 
|---|
| 172 |  Q:LR("Q")
 | 
|---|
| 173 |  D:$G(LRD) ^LRAPT2
 | 
|---|
| 174 |  Q:LR("Q")
 | 
|---|
| 175 |  D FT
 | 
|---|
| 176 |  Q
 | 
|---|
| 177 | WRT D E S LRC=0
 | 
|---|
| 178 |  F LRZ=0:1 S LRC=$O(^LR(LRDFN,84,LRA,1,LRC)) Q:'LRC!(LR("Q"))  D
 | 
|---|
| 179 |  .D:$Y>(IOSL-12) FT,H Q:LR("Q")
 | 
|---|
| 180 |  .S X=^LR(LRDFN,84,LRA,1,LRC,0) D:X["|TOP|" TOP D ^DIWP
 | 
|---|
| 181 |  Q:LR("Q")  D:LRZ ^DIWW Q
 | 
|---|
| 182 | H ;
 | 
|---|
| 183 |  Q:LR("Q")
 | 
|---|
| 184 |  I $D(LR("F")),IOST?1"C".E D CONT  Q:LR("Q")
 | 
|---|
| 185 |  S LRQ=LRQ+1
 | 
|---|
| 186 |  W:($D(LR("F"))) @IOF
 | 
|---|
| 187 |  W !! D W
 | 
|---|
| 188 |  W !?5,"CLINICAL RECORD |",?40,"AUTOPSY PROTOCOL",?73,"Pg ",LRQ
 | 
|---|
| 189 |  W !,LR("%")
 | 
|---|
| 190 |  W !,"Date died: ",LRH,?40,"| Autopsy date: ",LRH(1)
 | 
|---|
| 191 |  W !,"Resident: ",LRM(2),?40,"| ",$E(LRS(3),1,13)
 | 
|---|
| 192 |  W ?56,"Autopsy No. ",$S(LRQ(8)]"":LRQ(8)_LRH(2)_" "_LRAC,1:LRAC)
 | 
|---|
| 193 |  W !,LR("%")
 | 
|---|
| 194 |  Q
 | 
|---|
| 195 | FT ;Footer
 | 
|---|
| 196 |  Q:LR("Q")
 | 
|---|
| 197 |  I IOSL'>66 F  Q:$Y>(IOSL-12)  W !
 | 
|---|
| 198 |  D W W !
 | 
|---|
| 199 |  W:LRH(3)=""&(LRH(17)]"") ?55,"| Provisional Anatomic Dx"
 | 
|---|
| 200 |  W !,"Pathologist: ",LRM(3),?52,LRW(9),?55,"| Date "
 | 
|---|
| 201 |  W $E($S(LRH(3)]"":LRH(3),1:LRH(17)),1,12)
 | 
|---|
| 202 |  D W W !,LRQ(1),?IOM-17,"AUTOPSY PROTOCOL"
 | 
|---|
| 203 |  W !,"Patient: ",$E(LRP,1,30),?43,SSN,?56,"SEX:",SEX,?63,"DOB:",DOB
 | 
|---|
| 204 |  W !,$E(LRLLOC,1,22),?23,"Physician: ",$E(LRM(1),1,28)
 | 
|---|
| 205 |  W ?63,"AGE AT DEATH:",$J(AGE,3)
 | 
|---|
| 206 |  Q
 | 
|---|
| 207 | SGL ;Print single report entry point
 | 
|---|
| 208 |  K LRD("V") S X="" D ^LRUPS G:LRAN="?" SGL Q:LRAN=-1
 | 
|---|
| 209 |  D RELEASE^LRAPUTL(.LREL,LRDFN,LRSS)
 | 
|---|
| 210 |  I $D(LR("AU1")),'+$G(LREL(1)) D  Q
 | 
|---|
| 211 |  .W $C(7),!!,"Report not verified." S LR("AU1")=2
 | 
|---|
| 212 |  I +$G(LREL(1)) D
 | 
|---|
| 213 |  .D TIUCHK^LRAPUTL(.LRPTR,LRDFN,LRSS)
 | 
|---|
| 214 |  I $D(LR("AU1"))!(+$G(LRPTR)) S LRS="W",LRD=1
 | 
|---|
| 215 |  E  D SPC Q:X=""!(X[U)
 | 
|---|
| 216 |  D EN2^LRUA
 | 
|---|
| 217 |  S LRAP=LRDFN,LRSAV=1
 | 
|---|
| 218 |  G DEV
 | 
|---|
| 219 | DEVEND ;Close device
 | 
|---|
| 220 |  I IOST?1"P-".E W:LRFFF @IOF
 | 
|---|
| 221 |  D ^%ZISC S:$D(ZTQUEUED) ZTREQ="@"
 | 
|---|
| 222 |  Q
 | 
|---|
| 223 | CONT ;
 | 
|---|
| 224 |  K DIR S DIR(0)="E"
 | 
|---|
| 225 |  D ^DIR W !
 | 
|---|
| 226 |  S:$D(DTOUT)!(X[U) LR("Q")=1
 | 
|---|
| 227 |  Q
 | 
|---|
| 228 | END ;
 | 
|---|
| 229 |  W $C(7),!!,"OK to delete the AUTOPSY PROTOCOL list "
 | 
|---|
| 230 |  S %=2 D YN^LRU
 | 
|---|
| 231 |  I %=1 D  Q
 | 
|---|
| 232 |  .K ^LRO(69.2,LRAA,2)
 | 
|---|
| 233 |  .S ^LRO(69.2,LRAA,2,0)="^69.23A^0^0"
 | 
|---|
| 234 |  .W $C(7),!,"LIST DELETED !",!
 | 
|---|
| 235 |  W !!,"OK, LET'S FORGET IT.",!
 | 
|---|
| 236 |  Q
 | 
|---|
| 237 | TOP ;
 | 
|---|
| 238 |  S Z=$P(X,"|TOP|",1)_$P(X,"|TOP|",2)
 | 
|---|
| 239 |  D FT,H S X=Z
 | 
|---|
| 240 |  Q
 | 
|---|