[613] | 1 | PXRRPAPR ;ISL/PKR - Patient activity report print. ;8/26/97
|
---|
| 2 | ;;1.0;PCE PATIENT CARE ENCOUNTER;**18,47**;Aug 12, 1996
|
---|
| 3 | ;
|
---|
| 4 | N BMARG,C1S,C2S,C3S,C1HS,HEAD,INDENT,PAGE
|
---|
| 5 | N CLIEN,CSTOP,DATE,DISDATE,DFN,DONE,ED
|
---|
| 6 | N FACIEN,FACILITY,FACPNAME,HLOC,HLOCIEN,HLOCNAM
|
---|
| 7 | N IC,JC,LOC,LOS
|
---|
| 8 | N NAME,POV,SD,SSN,STATUS,TEMP
|
---|
| 9 | ;
|
---|
| 10 | ;Allow the task to be cleaned up upon successful completion.
|
---|
| 11 | S ZTREQ="@"
|
---|
| 12 | ;
|
---|
| 13 | U IO
|
---|
| 14 | S DONE=0
|
---|
| 15 | ;Setup the formatting parameters.
|
---|
| 16 | S INDENT=2
|
---|
| 17 | S C1HS=INDENT
|
---|
| 18 | S C1S=C1HS+1
|
---|
| 19 | S C2S=C1S+22
|
---|
| 20 | S C3S=C2S+32
|
---|
| 21 | ;
|
---|
| 22 | S HEAD=1
|
---|
| 23 | S PAGE=0
|
---|
| 24 | I ($E(IOST)="C")&(IO=IO(0)) S BMARG=3
|
---|
| 25 | E S BMARG=2
|
---|
| 26 | I 'PXRRLCNP D MHEAD(1)
|
---|
| 27 | ;
|
---|
| 28 | S STATUS(0)="CANCELED OR NO-SHOWED"
|
---|
| 29 | ;
|
---|
| 30 | SET ;Set up print fields
|
---|
| 31 | S FACILITY=0
|
---|
| 32 | NFAC S FACILITY=$O(^XTMP(PXRRXTMP,"ALPHA",FACILITY))
|
---|
| 33 | I FACILITY="" G FINAL
|
---|
| 34 | S HEAD=1
|
---|
| 35 | S FACIEN=$P(FACILITY,U,3)
|
---|
| 36 | S FACPNAME=$P(FACILITY,U,1)_" "_$P(FACILITY,U,2)
|
---|
| 37 | ;Keep track of the facilities that were found.
|
---|
| 38 | F IC=1:1:NFAC I $P(PXRRFAC(IC),U,1)=FACIEN D Q
|
---|
| 39 | . S $P(PXRRFAC(IC),U,4)="M"
|
---|
| 40 | ;
|
---|
| 41 | S HLOC=""
|
---|
| 42 | NHLOC S HLOC=$O(^XTMP(PXRRXTMP,"ALPHA",FACILITY,HLOC))
|
---|
| 43 | I HLOC="" G NFAC
|
---|
| 44 | S HLOCNAM=$P(HLOC,U,1)
|
---|
| 45 | S HLOCIEN=$P(HLOC,U,2)
|
---|
| 46 | S CLIEN=$P(^SC(HLOCIEN,0),U,7)
|
---|
| 47 | S CSTOP=" ("_$P(^DIC(40.7,CLIEN,0),U,2)_")"
|
---|
| 48 | ;If the user requested it start a new page.
|
---|
| 49 | I PXRRLCNP D MHEAD(1)
|
---|
| 50 | D HEAD(0)
|
---|
| 51 | ;
|
---|
| 52 | ;Check for a user request to stop the task.
|
---|
| 53 | I $$S^%ZTLOAD S ZTSTOP=1 G EXIT
|
---|
| 54 | ;
|
---|
| 55 | S NAME=""
|
---|
| 56 | NPAT ;
|
---|
| 57 | S NAME=$O(^XTMP(PXRRXTMP,"ALPHA",FACILITY,HLOC,NAME))
|
---|
| 58 | I NAME="" G NHLOC
|
---|
| 59 | S SSN="",SSN=$O(^XTMP(PXRRXTMP,"ALPHA",FACILITY,HLOC,NAME,SSN))
|
---|
| 60 | S DFN=^XTMP(PXRRXTMP,"ALPHA",FACILITY,HLOC,NAME,SSN)
|
---|
| 61 | D PPRINT
|
---|
| 62 | I DONE G EXIT
|
---|
| 63 | G NPAT
|
---|
| 64 | ;
|
---|
| 65 | FINAL ;Check for facilities that were listed but had no encounters.
|
---|
| 66 | I $Y>(IOSL-BMARG-3) D PAGE
|
---|
| 67 | D FACNE^PXRRGPRT(INDENT)
|
---|
| 68 | EXIT ;
|
---|
| 69 | D EXIT^PXRRGUT
|
---|
| 70 | D EOR^PXRRGUT
|
---|
| 71 | Q
|
---|
| 72 | ;
|
---|
| 73 | ;=======================================================================
|
---|
| 74 | HEAD(NEWPAGE) ;
|
---|
| 75 | I NEWPAGE D PAGE
|
---|
| 76 | E I $Y>(IOSL-BMARG) D PAGE
|
---|
| 77 | I DONE Q
|
---|
| 78 | I HEAD D
|
---|
| 79 | . N CEN,LEN
|
---|
| 80 | . S LEN=$$MAX^XLFMTH($L(FACPNAME),$L(HLOCNAM))+10
|
---|
| 81 | . S CEN=(IOM-LEN)/2
|
---|
| 82 | . W !!,?CEN,"Facility: ",FACPNAME
|
---|
| 83 | . W !,?CEN,"Location: ",HLOCNAM,CSTOP
|
---|
| 84 | . S HEAD=0
|
---|
| 85 | Q
|
---|
| 86 | ;
|
---|
| 87 | ;=======================================================================
|
---|
| 88 | MHEAD(NEWPAGE) ;Write the main report header.
|
---|
| 89 | I NEWPAGE D PAGE
|
---|
| 90 | E I $Y>(IOSL-BMARG) D PAGE
|
---|
| 91 | W !!,"Criteria for Patient Activity Report"
|
---|
| 92 | W !?INDENT,"Location selection criteria:",?35,$P(PXRRLCSC,U,2)
|
---|
| 93 | S SD=$$FMTE^XLFDT(PXRRBADT)
|
---|
| 94 | S ED=$$FMTE^XLFDT(PXRREADT)
|
---|
| 95 | W !?INDENT,"Patient appointment date range:",?35,SD," through ",ED
|
---|
| 96 | S SD=$$FMTE^XLFDT(PXRRBCDT)
|
---|
| 97 | S ED=$$FMTE^XLFDT(PXRRECDT)
|
---|
| 98 | W !?INDENT,"Patient activity date range:",?35,SD," through ",ED
|
---|
| 99 | S SD=$$FMTE^XLFDT(PXRRBFDT)
|
---|
| 100 | S ED=$$FMTE^XLFDT(PXRREFDT)
|
---|
| 101 | W !?INDENT,"Future appointment date range:",?35,SD," through ",ED
|
---|
| 102 | W !,"____________________________________________________________________"
|
---|
| 103 | Q
|
---|
| 104 | ;
|
---|
| 105 | ;=======================================================================
|
---|
| 106 | PAGE ;form feed to new page
|
---|
| 107 | I ($E(IOST)="C")&(IO=IO(0)) D
|
---|
| 108 | . S DIR(0)="E"
|
---|
| 109 | . W !
|
---|
| 110 | . D ^DIR K DIR
|
---|
| 111 | I $D(DIROUT)!$D(DUOUT)!($D(DTOUT)) S DONE=1 Q
|
---|
| 112 | W:$D(IOF) @IOF
|
---|
| 113 | S PAGE=PAGE+1
|
---|
| 114 | D HDR^PXRRGPRT(PAGE)
|
---|
| 115 | S HEAD=1
|
---|
| 116 | Q
|
---|
| 117 | ;
|
---|
| 118 | ;=======================================================================
|
---|
| 119 | PHEAD(NEWPAGE) ;Print the patient header
|
---|
| 120 | D HEAD(NEWPAGE)
|
---|
| 121 | I DONE Q
|
---|
| 122 | N C2S,C3S,T1,TEMP
|
---|
| 123 | S TEMP=^XTMP(PXRRXTMP,"PATIENT",DFN)
|
---|
| 124 | S C2S=$L(NAME)+5
|
---|
| 125 | S C3S=C2S+14
|
---|
| 126 | W !,"_______________________________________________________________________________"
|
---|
| 127 | W !,NAME,?C2S,$P(TEMP,U,1),?C3S,$P(TEMP,U,9)
|
---|
| 128 | W !
|
---|
| 129 | S T1=$P(TEMP,U,2)
|
---|
| 130 | I $L(T1)>0 W T1
|
---|
| 131 | S T1=$P(TEMP,U,3)
|
---|
| 132 | I $L(T1)>0 W " ",T1
|
---|
| 133 | S T1=$P(TEMP,U,4)
|
---|
| 134 | I $L(T1)>0 W " ",T1
|
---|
| 135 | S T1=$P(TEMP,U,5)
|
---|
| 136 | I $L(T1)>0 W " ",T1
|
---|
| 137 | S T1=$P(TEMP,U,7)
|
---|
| 138 | I $L(T1)>0 W " ",T1
|
---|
| 139 | S T1=$P(TEMP,U,8)
|
---|
| 140 | I $L(T1)>0 W " ",T1
|
---|
| 141 | Q
|
---|
| 142 | ;
|
---|
| 143 | ;=======================================================================
|
---|
| 144 | PPRINT ;Print the information for a patient.
|
---|
| 145 | N DATE,DXLS,EM,IC,JC,NEWPAGE,PV,ST
|
---|
| 146 | I $Y>(IOSL-BMARG-5) S NEWPAGE=1
|
---|
| 147 | E S NEWPAGE=0
|
---|
| 148 | D PHEAD(NEWPAGE)
|
---|
| 149 | I DONE Q
|
---|
| 150 | ;Appointments
|
---|
| 151 | I $D(^XTMP(PXRRXTMP,FACIEN,HLOCIEN,DFN,"APPT")) D
|
---|
| 152 | . I $Y>(IOSL-BMARG-2) D PHEAD(1)
|
---|
| 153 | . I DONE Q
|
---|
| 154 | . W !!,?C1HS,"Appointment criteria met:"
|
---|
| 155 | . S IC=0
|
---|
| 156 | . F S IC=$O(^XTMP(PXRRXTMP,FACIEN,HLOCIEN,DFN,"APPT",IC)) Q:(+IC=0)!(DONE) D
|
---|
| 157 | .. S TEMP=^XTMP(PXRRXTMP,FACIEN,HLOCIEN,DFN,"APPT",IC)
|
---|
| 158 | ..;We are not currently displaying status, but save this code in case
|
---|
| 159 | ..;it is needed later.
|
---|
| 160 | .. ;S ST=$P(TEMP,U,1)
|
---|
| 161 | .. ;I $L(ST)=0 S ST=0
|
---|
| 162 | .. ;I '$D(STATUS(ST)) S STATUS(ST)=$$EXTERNAL^DILFD(2.98,3,"",ST,.EM)
|
---|
| 163 | .. S PV=$P(TEMP,U,2)
|
---|
| 164 | .. I '$D(POV(PV)) S POV(PV)=$$EXTERNAL^DILFD(2.98,9,"",PV,.EM)
|
---|
| 165 | .. S DATE=$$FMTE^XLFDT(IC,"5F")
|
---|
| 166 | .. S DATE=$TR(DATE,"@"," ")
|
---|
| 167 | .. I $Y>(IOSL-BMARG) D
|
---|
| 168 | ... D PHEAD(1)
|
---|
| 169 | ... I 'DONE W !!,?C1HS,"Appointment criteria met:"
|
---|
| 170 | .. I 'DONE W !,?C1S,DATE,?C2S,HLOCNAM,?C3S,POV(PV)
|
---|
| 171 | I DONE Q
|
---|
| 172 | ;
|
---|
| 173 | ;Future appointments
|
---|
| 174 | I $D(^XTMP(PXRRXTMP,FACIEN,HLOCIEN,DFN,"FUT")) D
|
---|
| 175 | . I $Y>(IOSL-BMARG-2) D PHEAD(1)
|
---|
| 176 | . I DONE Q
|
---|
| 177 | . W !!,?C1HS,"Future Appointments:"
|
---|
| 178 | . S IC=0
|
---|
| 179 | . F S IC=$O(^XTMP(PXRRXTMP,FACIEN,HLOCIEN,DFN,"FUT",IC)) Q:(+IC=0)!(DONE) D
|
---|
| 180 | .. S TEMP=^XTMP(PXRRXTMP,FACIEN,HLOCIEN,DFN,"FUT",IC)
|
---|
| 181 | .. S DATE=$P(TEMP,U,1)
|
---|
| 182 | .. S LOC=$P(TEMP,U,2)
|
---|
| 183 | .. S TYPE=$P(TEMP,U,4)
|
---|
| 184 | .. I $Y>(IOSL-BMARG) D
|
---|
| 185 | ... D PHEAD(1)
|
---|
| 186 | ... I 'DONE W !!,?C1HS,"Future Appointments:"
|
---|
| 187 | .. I 'DONE W !,?C1S,DATE,?C2S,LOC,?C3S,TYPE
|
---|
| 188 | I DONE Q
|
---|
| 189 | ;
|
---|
| 190 | ;Admission and discharge information.
|
---|
| 191 | I $D(^XTMP(PXRRXTMP,FACIEN,HLOCIEN,DFN,"ADMDIS")) D
|
---|
| 192 | . N NEEDBL
|
---|
| 193 | . I $Y>(IOSL-BMARG-2) D PHEAD(1)
|
---|
| 194 | . I DONE Q
|
---|
| 195 | . W ! D SHEAD(C1HS,"Inpatient Stays","-")
|
---|
| 196 | . S NEEDBL=0
|
---|
| 197 | . S IC=""
|
---|
| 198 | . F S IC=$O(^XTMP(PXRRXTMP,FACIEN,HLOCIEN,DFN,"ADMDIS",IC)) Q:(+IC=0)!(DONE) D
|
---|
| 199 | .. S JC=$O(^XTMP(PXRRXTMP,FACIEN,HLOCIEN,DFN,"ADMDIS",IC,""))
|
---|
| 200 | .. S DATE=$$FMTE^XLFDT(IC,"5DF")
|
---|
| 201 | .. I $L(JC)>0 S DISDATE=$$FMTE^XLFDT(JC,"5DF")
|
---|
| 202 | .. E S DISDATE=""
|
---|
| 203 | .. S LOS=$$FMDIFF^XLFDT(JC,IC,1)
|
---|
| 204 | ..;If IC<0 then we have a discharge without any admission informtion.
|
---|
| 205 | .. I IC["NA" D
|
---|
| 206 | ... S DATE=" Unknown"
|
---|
| 207 | ... S LOS=""
|
---|
| 208 | ..;A patient that has not been discharged will be flagged with a
|
---|
| 209 | ..;discharge date of DT+1.
|
---|
| 210 | .. I JC>DT D
|
---|
| 211 | ... S DISDATE="present"
|
---|
| 212 | ... S LOS=LOS-1
|
---|
| 213 | .. S TEMP=^XTMP(PXRRXTMP,FACIEN,HLOCIEN,DFN,"ADMDIS",IC,JC)
|
---|
| 214 | .. I $Y>(IOSL-BMARG) D
|
---|
| 215 | ... D PHEAD(1)
|
---|
| 216 | ... I 'DONE D
|
---|
| 217 | .... W ! D SHEAD(C1HS,"Inpatient Stays","-")
|
---|
| 218 | .... S NEEDBL=0
|
---|
| 219 | .. I 'DONE D
|
---|
| 220 | ... I NEEDBL W !
|
---|
| 221 | ... W !,?C1S,DATE," - ",DISDATE,?C2S,$P(TEMP,U,1),?C3S,"LOS: ",LOS
|
---|
| 222 | ... W !,?C1S," Last Tr. Specialty: ",?C2S,$P(TEMP,U,2)
|
---|
| 223 | ... W ?C3S,"Last Prov: ",$P($P(TEMP,U,3),",",1)
|
---|
| 224 | ... W !,?C1S,"Admitting Diagnosis: ",?C2S,$P(TEMP,U,4)
|
---|
| 225 | ... S DXLS=$P(TEMP,U,5)
|
---|
| 226 | ... I $L(DXLS)>0 W !,?(C1S+15),"DXLS:",?C2S,DXLS
|
---|
| 227 | ... S NEEDBL=1
|
---|
| 228 | I DONE Q
|
---|
| 229 | ;
|
---|
| 230 | ;Emergency room visits
|
---|
| 231 | I $D(^XTMP(PXRRXTMP,FACIEN,HLOCIEN,DFN,"ER")) D
|
---|
| 232 | . I $Y>(IOSL-BMARG-2) D PHEAD(1)
|
---|
| 233 | . I DONE Q
|
---|
| 234 | . W ! D SHEAD(C1HS,"Emergency Room Visits","-")
|
---|
| 235 | . S IC=0
|
---|
| 236 | . F S IC=$O(^XTMP(PXRRXTMP,FACIEN,HLOCIEN,DFN,"ER",IC)) Q:(+IC=0)!(DONE) D
|
---|
| 237 | .. S TEMP=^XTMP(PXRRXTMP,FACIEN,HLOCIEN,DFN,"ER",IC)
|
---|
| 238 | .. S DATE=$$FMTE^XLFDT(IC,"5F")
|
---|
| 239 | .. S DATE=$TR(DATE,"@"," ")
|
---|
| 240 | .. I $Y>(IOSL-BMARG) D
|
---|
| 241 | ... D PHEAD(1)
|
---|
| 242 | ... I 'DONE W ! D SHEAD(C1HS,"Emergency Room Visits","-")
|
---|
| 243 | .. I 'DONE W !?C1S,DATE,?C2S,$P(TEMP,U,2)
|
---|
| 244 | I DONE Q
|
---|
| 245 | ;
|
---|
| 246 | ;Critical Lab values.
|
---|
| 247 | I $D(^XTMP(PXRRXTMP,FACIEN,HLOCIEN,DFN,"CLAB")) D
|
---|
| 248 | . I $Y>(IOSL-BMARG-2) D PHEAD(1)
|
---|
| 249 | . I DONE Q
|
---|
| 250 | . W ! D SHEAD(C1HS,"Critical Lab Values","-")
|
---|
| 251 | . S IC=0
|
---|
| 252 | . F S IC=$O(^XTMP(PXRRXTMP,FACIEN,HLOCIEN,DFN,"CLAB",IC)) Q:(+IC=0)!(DONE) D
|
---|
| 253 | .. S JC=0
|
---|
| 254 | .. F S JC=$O(^XTMP(PXRRXTMP,FACIEN,HLOCIEN,DFN,"CLAB",IC,JC)) Q:+JC=0 D
|
---|
| 255 | ... S TEMP=^XTMP(PXRRXTMP,FACIEN,HLOCIEN,DFN,"CLAB",IC,JC)
|
---|
| 256 | ... S DATE=$$FMTE^XLFDT(IC,"5F")
|
---|
| 257 | ... S DATE=$TR(DATE,"@"," ")
|
---|
| 258 | ... I $Y>(IOSL-BMARG) D
|
---|
| 259 | .... D PHEAD(1)
|
---|
| 260 | .... I 'DONE W ! D SHEAD(C1HS,"Critical Lab Values","-")
|
---|
| 261 | ... I 'DONE W !,?C1S,DATE,?C2S,$P(TEMP,U,1),?C3S,$P(TEMP,U,2)," ",$P(TEMP,U,4)
|
---|
| 262 | Q
|
---|
| 263 | ;
|
---|
| 264 | ;=======================================================================
|
---|
| 265 | SHEAD(INDENT,TEXT,FC) ;Write a section header. INDENT is the number
|
---|
| 266 | ;of spaces to indent on both the left and right, TEXT is the text, and
|
---|
| 267 | ;FC is the fill character.
|
---|
| 268 | N FILLEND,FILLLEN,HEAD,IC,LINELEN,PTEXT,TEXTLEN
|
---|
| 269 | S PTEXT=" "_TEXT_" "
|
---|
| 270 | S TEXTLEN=$L(PTEXT)
|
---|
| 271 | S LINELEN=IOM-(2*INDENT)
|
---|
| 272 | S FILLLEN=LINELEN-TEXTLEN
|
---|
| 273 | S FILLEND=INDENT+(FILLLEN\2)
|
---|
| 274 | I FILLLEN>1 D
|
---|
| 275 | .S HEAD=""
|
---|
| 276 | .F IC=INDENT:1:FILLEND D
|
---|
| 277 | .. S HEAD=HEAD_FC
|
---|
| 278 | .S HEAD=HEAD_PTEXT
|
---|
| 279 | .F IC=($L(HEAD)+1):1:LINELEN D
|
---|
| 280 | .. S HEAD=HEAD_FC
|
---|
| 281 | . W !,?INDENT,HEAD
|
---|
| 282 | E D
|
---|
| 283 | . S IC=(IOM-$L(TEXT))\2
|
---|
| 284 | . W !,?IC,TEXT
|
---|
| 285 | Q
|
---|
| 286 | ;
|
---|