Changeset 1501 for qrda/C0Q/trunk/p/C0QMU12.m
- Timestamp:
- Aug 2, 2012, 8:59:21 PM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
qrda/C0Q/trunk/p/C0QMU12.m
r1445 r1501 1 C0QMU12 ;JJOH/ZAG/GPL - Patient Reminder List ; 5/30/12 11:28am2 ;;1.0;C0Q;;May 21, 2012;Build 441 C0QMU12 ;JJOH/ZAG/GPL - Patient Reminder List ; 7/31/12 12:34pm 2 ;;1.0;C0Q;;May 21, 2012;Build 63 3 3 ; 4 4 ;2011 Zach Gonzales<zach@linux.com> - Licensed under the terms of the GNU 5 5 ;General Public License See attached copy of the License. 6 ;7 ;This program is free software; you can redistribute it and/or modify8 ;it under the terms of the GNU General Public License as published by9 ;the Free Software Foundation; either version 2 of the License, or10 ;(at your option) any later version.11 ;12 ;This program is distributed in the hope that it will be useful,13 ;but WITHOUT ANY WARRANTY; without even the implied warranty of14 ;MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the15 ;GNU General Public License for more details.16 ;17 ;You should have received a copy of the GNU General Public License along18 ;with this program; if not, write to the Free Software Foundation, Inc.,19 ;51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.20 6 ; 21 7 ; GPL - THIS ROUTINE IS A COPY OF JJOHMU11 THAT HAS BEEN MODIFIED … … 77 63 . D ALL ; all currently admitted patients in the hospital 78 64 . D DIS ; all patients discharged since the reporting period began 79 . I C0QSS ZWRITE GRSLT65 . I C0QSS D ZWRITE^C0QUTIL("GRSLT") 80 66 . ;D ICUPAT ; GENERATE ICU PATIENT LIST 81 67 . I C0QPL D ; … … 111 97 . . N DFN,RB S DFN="" 112 98 . . F S DFN=$O(^DPT("CN",WARD,+DFN)) Q:'DFN D ;DFN of patient on ward 113 . . . D DEMO 99 . . . D DEMO^C0QMU122 114 100 . . . D PROBLEM 115 101 . . . D ALLERGY … … 122 108 . . . D COD 123 109 . . . D EDTIME 124 . . . I C0QPR D PRINT 125 . . . I C0QSS D SS 126 . . . I C0QPL D PATLIST 127 Q 128 ; 129 DEMO ; patient demographics 130 K PTDOB 131 N PTNAME,PTSEX,PTHRN,PTRLANG,PTLANG,RACE,RACEDSC,ETHN,ETHNDSC,RB 132 S PTNAME=$P(^DPT(DFN,0),U) ;patient name 133 S PTDOB=$$FMTE^XLFDT($P($G(^DPT(DFN,0)),U,3)) ;date of birth 134 S PTSEX=$P($G(^DPT(DFN,0)),U,2) ;patient sex 135 D PID^VADPT ;VADPT call to grab PISD based on PT Eligibility 136 S PTHRN=$P($G(VA("PID")),U) ;health record number 137 S PTRLANG=$P($G(^DPT(DFN,256000)),U) ;ptr to language file 138 I $G(PTRLANG)'="" S PTLANG=$P(^DI(.85,PTRLANG,0),U) ;PLS extrnl 139 S RACE="" 140 F D Q:RACE="" 141 . S RACE=$O(^DPT(DFN,.02,"B",RACE)) ;race code IEN 142 . Q:'RACE 143 . S RACEDSC=$P($G(^DIC(10,RACE,0)),U) ;race description 144 S ETHN="" 145 F D Q:ETHN="" 146 . S ETHN=$O(^DPT(DFN,.06,"B",ETHN)) ;ethnicity IEN 147 . Q:'ETHN 148 . S ETHNDSC=$P($G(^DIC(10.2,ETHN,0)),U) ;ethnincity description 149 S RB=$P($G(^DPT(DFN,.101)),U) ;room and bed 150 N DEMOYN S DEMOYN=1 151 I $G(PTSEX)="" S DEMOYN=0 152 I $G(PTDOB)="" S DEMOYN=0 153 I $G(PTHRN)="" S DEMOYN=0 154 I $G(PTLANG)="" S DEMOYN=0 155 I $G(RACEDSC)="" S DEMOYN=0 156 I $G(ETHNDSC)="" S DEMOYN=0 157 I DEMOYN S C0QLIST(ZYR_"HasDemographics",DFN)="" 158 E S C0QLIST(ZYR_"FailedDemographics",DFN)="" 110 . . . I C0QPR D PRINT^C0QMU121 111 . . . I C0QSS D SS^C0QMU121 112 . . . I C0QPL D PATLIST^C0QMU121 159 113 Q 160 114 ; … … 264 218 Q 265 219 ; 266 SMOKING ; 267 ; WANT TO CHANGE SMOKING STATUS CHECKING FOR 2012 TO A SIMPLE SET OF 268 ; HEALTH FACTORS. GPL 269 I $$INLIST(ZYR_"HasSmokingStatus",DFN) D Q ; ALREADY HAS SMOKING STAT CHECK 270 . S C0QLIST(ZYR_"HasSmokingStatus",DFN)="" 271 . S C0QLIST(ZYR_"Over12",DFN)="" 272 I $$INLIST(ZYR_"NoSmokingStatus",DFN) D Q ; ALREADY HAS SMOKING STATUS CHECK 273 . S C0QLIST(ZYR_"NoSmokingStatus",DFN)="" 274 . S C0QLIST(ZYR_"Over12",DFN)="" 275 N C0QSMOKE,C0QSYN 276 S C0QSYN=0 277 I $$AGE^C0QUTIL(DFN)<13 Q ; DON'T CHECK UNDER AGE 13 278 D HFCAT^C0QHF(.C0QSMOKE,DFN,"TOBACCO") ; GET ALL HEALTH FACTORS FOR THE 279 ; PATIENT IN THE CATEGORY OF TOBACCO 280 I $D(C0QSMOKE) S C0QSYN=1 281 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Quit Smokeless Tobacco <1 Yr Ago") 282 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Quit Smokeless Tobacco > 20 Yrs Ago") 283 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Quit Smokeless Tobacco: 1-5 Yrs Ago") 284 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Quit Smokeless Tobacco: 10-20 Yrs Ago") 285 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Quit Smokeless Tobacco: 5-10 Yrs Ago") 286 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Quit Smoking") 287 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Quit Smoking < 1 Yr Ago") 288 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Quit Smoking > 20 Yrs Ago") 289 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Quit Smoking: 1-5 Yrs Ago") 290 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Quit Smoking: 10-20 Yrs Ago") 291 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Quit Smoking: 5-10 Yrs Ago") 292 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"PREVIOUS SMOKELESS TOBACCO USER") 293 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"PREVIOUS SMOKELESS: 1-5 YRS AGO") 294 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"PREVIOUS SMOKELESS: 10-20 YRS AGO") 295 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"PREVIOUS SMOKELESS: 5-10 YRS AGO") 296 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"PREVIOUS SMOKELESS: < 1 YR AGO") 297 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"PREVIOUS SMOKELESS: > 20 YRS AGO") 298 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"PREVIOUS SMOKER") 299 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"PREVIOUS SMOKER 10-20 YRS") 300 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"PREVIOUS SMOKER 20+ YRS") 301 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"PREVIOUS SMOKER < 1 YR") 302 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"PREVIOUS SMOKER < 1 YR AGO") 303 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"PREVIOUS SMOKER > 20 YRS AGO") 304 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"PREVIOUS SMOKER: 1-5 YRS") 305 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"PREVIOUS SMOKER: 1-5 YRS AGO") 306 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"PREVIOUS SMOKER: 10-20 YRS AGO") 307 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"PREVIOUS SMOKER: 5-10 YRS") 308 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"PREVIOUS SMOKER: 5-10 YRS AGO") 309 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"PREVIOUS SMOKELESS TOBACCO USER") 310 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"LIFETIME NON-SMOKER") 311 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Former Smokeless Tobacco User") 312 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Former Smoker") 313 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Former Smoker (PMH)") 314 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Smoke Exposure/2nd Hand Exposure") 315 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Smoked For 1-5 Yrs") 316 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Smoked For 10-20 Yrs") 317 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Smoked For 5-10 Yrs") 318 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Smoked For < 1 Yr") 319 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Smoked For > 20 Yrs") 320 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Smokeless Tobacco User") 321 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Smokeless Used for 1-5 Yrs") 322 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Smokeless Used for 10-20 Yrs") 323 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Smokeless Used for 5-10 Yrs") 324 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Smokeless Used for < 1 Yr") 325 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Smokeless Used for > 20 Yrs") 326 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Smoker (HPI)") 327 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Smoking (FMH)") 328 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Smoking (PMH)") 329 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Smoking Cessation (OPH)") 330 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"LIFETIME NON-SMOKER") 331 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Former Smokeless Tobacco User") 332 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Former Smoker") 333 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Former Smoker (PMH)") 334 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Smoke Exposure/2nd Hand Exposure") 335 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Smoked For 1-5 Yrs") 336 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Smoked For 10-20 Yrs") 337 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Smoked For 5-10 Yrs") 338 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Smoked For < 1 Yr") 339 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Smoked For > 20 Yrs") 340 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Smokeless Tobacco User") 341 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Smokeless Used for 1-5 Yrs") 342 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Smokeless Used for 10-20 Yrs") 343 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Smokeless Used for 5-10 Yrs") 344 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Smokeless Used for < 1 Yr") 345 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Smokeless Used for > 20 Yrs") 346 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Smoker (HPI)") 347 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Smoking (FMH)") 348 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Smoking (PMH)") 349 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Non-Smoker") 350 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"LIFETIME NON-SMOKER") 351 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Former Smokeless Tobacco User") 352 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Former Smoker") 353 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Former Smoker (PMH)") 354 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Smoke Exposure/2nd Hand Exposure") 355 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Smoked For 1-5 Yrs") 356 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Smoked For 10-20 Yrs") 357 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Smoked For 5-10 Yrs") 358 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Smoked For < 1 Yr") 359 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Smoked For > 20 Yrs") 360 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Smokeless Tobacco User") 361 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Smokeless Used for 1-5 Yrs") 362 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Smokeless Used for 10-20 Yrs") 363 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Smokeless Used for 5-10 Yrs") 364 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Smokeless Used for < 1 Yr") 365 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Smokeless Used for > 20 Yrs") 366 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Smoker (HPI)") 367 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Smoking (FMH)") 368 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Smoking (PMH)") 369 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"LIFETIME NON-SMOKER") 370 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Former Smokeless Tobacco User") 371 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Former Smoker") 372 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Former Smoker (PMH)") 373 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Smoke Exposure/2nd Hand Exposure") 374 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Smoked For 1-5 Yrs") 375 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Smoked For 10-20 Yrs") 376 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Smoked For 5-10 Yrs") 377 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Smoked For < 1 Yr") 378 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Smoked For > 20 Yrs") 379 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Smokeless Tobacco User") 380 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Smokeless Used for 1-5 Yrs") 381 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Smokeless Used for 10-20 Yrs") 382 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Smokeless Used for 5-10 Yrs") 383 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Smokeless Used for < 1 Yr") 384 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Smokeless Used for > 20 Yrs") 385 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Smoker (HPI)") 386 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Smoking (FMH)") 387 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Smoking (PMH)") 388 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Non-Smoker") 389 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"LIFETIME NON-SMOKER") 390 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Former Smokeless Tobacco User") 391 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Former Smoker") 392 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Former Smoker (PMH)") 393 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Smoke Exposure/2nd Hand Exposure") 394 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Smoked For 1-5 Yrs") 395 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Smoked For 10-20 Yrs") 396 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Smoked For 5-10 Yrs") 397 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Smoked For < 1 Yr") 398 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Smoked For > 20 Yrs") 399 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Smokeless Tobacco User") 400 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Smokeless Used for 1-5 Yrs") 401 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Smokeless Used for 10-20 Yrs") 402 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Smokeless Used for 5-10 Yrs") 403 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Smokeless Used for < 1 Yr") 404 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Smokeless Used for > 20 Yrs") 405 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Smoker (HPI)") 406 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Smoking (FMH)") 407 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Smoking (PMH)") 408 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Non-Smoker") 409 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Non-Smoker (PMH)") 410 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Non-Tobacco User") 411 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Current Smoker - No") 412 S:'C0QSYN C0QSYN=$$HFYN^C0QHF(DFN,"Current Smoker - Yes") 413 S C0QLIST(ZYR_"Over12",DFN)="" 414 ;N GT 415 ;S GT(1,"HasSmokingStatus","SMOK")="" 416 ;S GT(2,"HasSmokingStatus","Smok")="" 417 ;S GT(3,"HasSmokingStatus","smok")="" 418 ;I 'C0QSYN D ; 419 ;. N G 420 ;. S OK=$$TXTALL^C0QNOTES(.G,.GT,DFN) 421 ;. I $D(G) S C0QSYN=1 422 I C0QSYN S C0QLIST(ZYR_"HasSmokingStatus",DFN)="" 423 E S C0QLIST(ZYR_"NoSmokingStatus",DFN)="" 424 Q 425 ; 220 SMOKING G SMOKING^C0QMU121 426 221 VITALS ; 427 222 ; … … 512 307 ED1 ; 513 308 S ZYR="MU12-" 514 D DOTIME ("ED DEPARTURE TIME")309 D DOTIME^C0QMU121("ED DEPARTURE TIME") 515 310 Q 516 311 ; 517 312 ED2 ; 518 313 S ZYR="MU12-" 519 D DOTIME2("TIME DECISION TO ADMIT MADE") 520 Q 521 ; 522 DOTIME(ZHF) ; COMPUTE THE MEAN TIME IN THE ED FROM ARRIVAL TO DEPARTURE 523 ; THIS IS A QUALITY MEASURE ED-1 FOR MEANINGFUL USE 524 ; IT PRINTS A REPORT OF EACH PATIENT WITH THE ED TIMES RECORDED 525 ; AND THEIR TIME. AT THE END IT PRINTS THE MEAN TIME 526 N ZP 527 S ZP=$$PATLN(ZYR_"HasEDtime") ; patient list name for patients to process 528 S ZHFN=9000010.23 ; FILE NUMBER FOR V HEALTH FACTORS 529 S ZVFN=9000010 ; VISIT FILE NUMBER 530 K ZARY1,ZARY2 531 N ZI S ZI="" 532 S COUNT=0 533 F S ZI=$O(@ZP@(ZI)) Q:ZI="" D ; FOR EACH PATIENT 534 . S COUNT=COUNT+1 535 . N ZA,ZD 536 . S ZA=$$VHFIEN^C0QHF(ZI,"ED ARRIVAL TIME") ; IEN OF ARRIVAL HEALTH FACTOR 537 . S ZD=$$VHFIEN^C0QHF(ZI,ZHF) ; IEN OF DEPART HEALTH FACTOR 538 . N ZAD,ZDD ; ARRIVAL DATE, DEPARTURE DATE 539 . N ZAC,ZDC ; ARRIVAL COMMENT, DEPARTURE COMMENT 540 . ; THE COMMENT IS THE TIME XXYY 541 . N OK,TMP 542 . S TMP=$$GET1^DIQ(ZHFN,ZA_",",.03,"I") ; VISIT POINTER 543 . S ZAD=$$GET1^DIQ(ZVFN,TMP_",",.01,"I") ; VISIT DATE 544 . ;S ZAD=$P(^AUPNVHF(ZA,0),U,3) ; DATE IS PIECE 3 545 . S TMP=$$GET1^DIQ(ZHFN,ZD_",",.03,"I") ; VISIT POINTER 546 . S ZDD=$$GET1^DIQ(ZVFN,TMP_",",.01,"I") ; VISIT DATE 547 . ;S ZDD=$$GET1^DIQ(ZHFN,ZD_",",1201,"I") ; EVENT DATE FIELD 548 . ;S ZDD=$P(^AUPNVHF(ZD,0),U,3) ; DATE IS PIECE 3 549 . ;S OK=$$GET1^DIQ(ZHFN,ZA_",",81101,"","ZAC") ; ARRIVAL TIME 550 . S ZAC=$G(^AUPNVHF(ZA,811)) ; THE TIME 551 . ;S OK=$$GET1^DIQ(ZHFN,ZD_",",81101,"","ZDC") ; DEPARTURE TIME 552 . S ZDC=$G(^AUPNVHF(ZD,811)) ; DEPARTURE TIME 553 . N ZT ; THE TIME DIFFERENCE BETWEEN THE DATES 554 . W !,!,"PATIENT: ",ZI," ",$P(^DPT(ZI,0),U,1) 555 . W !,"IN: ",$$FMTE^XLFDT(ZAD_"."_ZAC)," OUT: ",$$FMTE^XLFDT(ZDD_"."_ZDC) 556 . S G1=($E(ZDC,1,2)*60)+($E(ZDC,3,4)) 557 . S G2=($E(ZAC,1,2)*60)+($E(ZAC,3,4)) 558 . I (ZDD-ZAD)>0 S G1=G1+(((ZDD-ZAD)*24)*60) 559 . S GTOT=G1-G2 560 . W !,"TIME: ",GTOT," ESTIMATED" 561 . S ZT=$$DTDIFF^C0QUTIL(ZDD,ZDC,ZAD,ZAC) ; COMPUTE THE DIFFERENCE IN MINUTES 562 . W !,"COMPUTED MINUTES: ",ZT 563 . ;I ZT'=GTOT B ; LET'S FIND OUT WHAT'S WRONG 564 . I ZT<0 D Q ; SKIP PATIENTS WITH NEGATIVE TIMES 565 . . W !,"****EXCLUDED****" 566 . I ZT>400000 D Q ; THESE ARE ERRORS 567 . . W !,"****EXCLUDED****" 568 . S ZARY1(ZT,ZI)="" ; ARRAY ORDERED BY MINUTES OF PATIENTS 569 N ZY,ZZ S ZY="" S ZZ="" 570 N ZCOUNT S ZCOUNT=0 571 F S ZY=$O(ZARY1(ZY)) Q:ZY="" D ; FOR EACH TIME 572 . F S ZZ=$O(ZARY1(ZY,ZZ)) Q:ZZ="" D ; FOR EACH PATIENT WITH THIS TIME 573 . . S ZCOUNT=ZCOUNT+1 574 . . S ZARY2(ZCOUNT,ZY,ZZ)="" 575 . . ;W !,ZCOUNT," PATIENT: ",ZZ," MINUTES: ",ZY 576 N ZMID 577 S ZMID=$P(ZCOUNT/2,".") 578 W !,"NUMBER OF PATIENTS IN REPORT: ",ZCOUNT 579 W !,"ED ARRIVAL TIME UNTIL ",ZHF 580 W !,"MEDIAN TIME: ",$O(ZARY2(ZMID,"")) 581 Q 582 ; 583 DOTIME2(ZHF) ; COMPUTE THE MEAN TIME IN THE ED FROM ARRIVAL TO DEPARTURE 584 ; THIS IS A QUALITY MEASURE ED-1 FOR MEANINGFUL USE 585 ; IT PRINTS A REPORT OF EACH PATIENT WITH THE ED TIMES RECORDED 586 ; AND THEIR TIME. AT THE END IT PRINTS THE MEAN TIME 587 N ZP 588 S ZP=$$PATLN(ZYR_"HasEDtime") ; patient list name for patients to process 589 S ZHFN=9000010.23 ; FILE NUMBER FOR V HEALTH FACTORS 590 S ZVFN=9000010 ; VISIT FILE NUMBER 591 K ZARY1,ZARY2 592 N ZI S ZI="" 593 S COUNT=0 594 F S ZI=$O(@ZP@(ZI)) Q:ZI="" D ; FOR EACH PATIENT 595 . S COUNT=COUNT+1 596 . N ZA,ZD 597 . ;S ZA=$$VHFIEN^C0QHF(ZI,"ED ARRIVAL TIME") ; IEN OF ARRIVAL HEALTH FACTOR 598 . ;S ZD=$$VHFIEN^C0QHF(ZI,ZHF) ; IEN OF DEPART HEALTH FACTOR 599 . S ZA=$$VHFIEN^C0QHF(ZI,ZHF) ; IEN OF DEPART HEALTH FACTOR 600 . S ZD=$$VHFIEN^C0QHF(ZI,"ED DEPARTURE TIME") ; IEN OF ARRIVAL HEALTH FACTOR 601 . N ZAD,ZDD ; ARRIVAL DATE, DEPARTURE DATE 602 . N ZAC,ZDC ; ARRIVAL COMMENT, DEPARTURE COMMENT 603 . ; THE COMMENT IS THE TIME XXYY 604 . N OK,TMP 605 . S TMP=$$GET1^DIQ(ZHFN,ZA_",",.03,"I") ; VISIT POINTER 606 . S ZAD=$$GET1^DIQ(ZVFN,TMP_",",.01,"I") ; VISIT DATE 607 . ;S ZAD=$P(^AUPNVHF(ZA,0),U,3) ; DATE IS PIECE 3 608 . S TMP=$$GET1^DIQ(ZHFN,ZD_",",.03,"I") ; VISIT POINTER 609 . S ZDD=$$GET1^DIQ(ZVFN,TMP_",",.01,"I") ; VISIT DATE 610 . ;S ZDD=$$GET1^DIQ(ZHFN,ZD_",",1201,"I") ; EVENT DATE FIELD 611 . ;S ZDD=$P(^AUPNVHF(ZD,0),U,3) ; DATE IS PIECE 3 612 . ;S OK=$$GET1^DIQ(ZHFN,ZA_",",81101,"","ZAC") ; ARRIVAL TIME 613 . S ZAC=$G(^AUPNVHF(ZA,811)) ; THE TIME 614 . ;S OK=$$GET1^DIQ(ZHFN,ZD_",",81101,"","ZDC") ; DEPARTURE TIME 615 . S ZDC=$G(^AUPNVHF(ZD,811)) ; DEPARTURE TIME 616 . N ZT ; THE TIME DIFFERENCE BETWEEN THE DATES 617 . W !,!,"PATIENT: ",ZI," ",$P(^DPT(ZI,0),U,1) 618 . W !,"IN: ",$$FMTE^XLFDT(ZAD_"."_ZAC)," OUT: ",$$FMTE^XLFDT(ZDD_"."_ZDC) 619 . S G1=($E(ZDC,1,2)*60)+($E(ZDC,3,4)) 620 . S G2=($E(ZAC,1,2)*60)+($E(ZAC,3,4)) 621 . I (ZDD-ZAD)>0 S G1=G1+(((ZDD-ZAD)*24)*60) 622 . S GTOT=G1-G2 623 . W !,"TIME: ",GTOT," ESTIMATED" 624 . S ZT=$$DTDIFF^C0QUTIL(ZDD,ZDC,ZAD,ZAC) ; COMPUTE THE DIFFERENCE IN MINUTES 625 . W !,"COMPUTED MINUTES: ",ZT 626 . ;I ZT'=GTOT B ; LET'S FIND OUT WHAT'S WRONG 627 . I ZT<0 D Q ; SKIP PATIENTS WITH NEGATIVE TIMES 628 . . W !,"****EXCLUDED****" 629 . I ZT>400000 D Q ; THESE ARE ERRORS 630 . . W !,"****EXCLUDED****" 631 . S ZARY1(ZT,ZI)="" ; ARRAY ORDERED BY MINUTES OF PATIENTS 632 N ZY,ZZ S ZY="" S ZZ="" 633 N ZCOUNT S ZCOUNT=0 634 F S ZY=$O(ZARY1(ZY)) Q:ZY="" D ; FOR EACH TIME 635 . F S ZZ=$O(ZARY1(ZY,ZZ)) Q:ZZ="" D ; FOR EACH PATIENT WITH THIS TIME 636 . . S ZCOUNT=ZCOUNT+1 637 . . S ZARY2(ZCOUNT,ZY,ZZ)="" 638 . . ;W !,ZCOUNT," PATIENT: ",ZZ," MINUTES: ",ZY 639 N ZMID 640 S ZMID=$P(ZCOUNT/2,".") 641 W !,"NUMBER OF PATIENTS IN REPORT: ",ZCOUNT 642 W !,"ED ARRIVAL TIME UNTIL ",ZHF 643 W !,"MEDIAN TIME: ",$O(ZARY2(ZMID,"")) 314 D DOTIME2^C0QMU121("TIME DECISION TO ADMIT MADE") 644 315 Q 645 316 ; … … 665 336 I $D(^C0Q(301,ZL,1,"B",DFN)) S ZR=1 ; PATIENT IS IN LIST 666 337 Q ZR 667 ;668 ; LOOK AT GETTING RID OF PRINT AND SS AS THEY ARE NOT BEING USED. GPL669 PRINT ; PRINT TO SCREEN670 I $D(WARD) W !!,WARD_"-"_WARDNAME_" "_RB_": "_PTNAME_"("_PTSEX_") "671 I $D(EXDTE) D ;672 . W !,"Discharge Date: ",EXDTE673 . W !,DFN," ",PTNAME674 W !,"DOB: ",PTDOB," HRN: ",PTHRN675 W !,"Language Spoken: ",$G(PTLANG)676 W !,"Race: ",RACEDSC677 W !,"Ethnicity: ",$G(ETHNDSC)678 W !,"Problems: "679 W !,PBDESC680 W !,"Allergies: "681 W !,ALDESC682 W !,"Medications: "683 W !684 Q685 ;686 SS ; CREATE SPREADSHEET ARRAY687 S G1("Patient")=DFN688 I $D(WARD) D ;689 . S G1("WardName")=WARDNAME690 . S G1("RoomAndBed")=RB691 I $D(EXDTE) D ;692 . S G1("DischargeDate")=EXDTE693 S G1("PatientName")=PTNAME694 S G1("Gender")=PTSEX695 S G1("DateOfBirth")=PTDOB696 S G1("HealthRecordNumber")=PTHRN697 S G1("LanguageSpoken")=$G(PTLANG)698 S G1("Race")=RACEDSC699 S G1("Ehtnicity")=$G(ETHNDSC)700 S G1("Problem")=PBDESC701 I PBDESC["No problems found" S G1("HasProblem")=0702 E S G1("HasProblem")=1703 S G1("Allergies")=ALDESC704 I ALDESC["No Allergy" S G1("HasAllergy")=0705 E S G1("HasAllergy")=1706 I $D(MDITEM) D ;707 . S G1("HasMed")=1708 E S G1("HasMed")=0709 S G1("MedDescription")=$G(MDDESC)710 I $D(MDITEM) W !,"("_MDITEM_")"_MDDESC E W !,MDDESC711 D RNF1TO2B^C0CRNF("GRSLT","G1")712 K G1713 Q ; DON'T WANT TO DO THE NHIN STUFF NOW714 ;715 PATLIST ; CREATE PATIENT LISTS716 ; WANT TO GET RID OF PATLIST AND MOVE FUNCTION TO OTHER ROUTINES. GPL717 S C0QLIST(ZYR_"Patient",DFN)="" ; THE PATIENT LIST718 N DEMOYN S DEMOYN=1719 I $G(PTSEX)="" S DEMOYN=0720 I $G(PTDOB)="" S DEMOYN=0721 I $G(PTHRN)="" S DEMOYN=0722 I $G(PTLANG)="" S DEMOYN=0723 I $G(RACEDSC)="" S DEMOYN=0724 I $G(ETHNDSC)="" S DEMOYN=0725 ;I DEMOYN S C0QLIST("HasDemographics",DFN)=""726 ;E S C0QLIST("FailedDemographics",DFN)=""727 ;S G1("Gender")=PTSEX728 ;S G1("DateOfBirth")=PTDOB729 ;S G1("HealthRecordNumber")=PTHRN730 ;S G1("LanguageSpoken")=$G(PTLANG)731 ;S G1("Race")=RACEDSC732 ;S G1("Ehtnicity")=$G(ETHNDSC)733 S G1("Problem")=PBDESC734 I PBDESC["No problems found" S C0QLIST(ZYR_"NoProblem",DFN)=""735 E S C0QLIST(ZYR_"HasProblem",DFN)=""736 ;S G1("Allergies")=ALDESC737 I ALDESC["No Allergy" S C0QLIST(ZYR_"NoAllergy",DFN)=""738 E S C0QLIST(ZYR_"HasAllergy",DFN)=""739 ;I $D(MDITEM) D ;740 ;. S C0QLIST("HasMed",DFN)=""741 ;E S G1("NoMed",DFN)=""742 ;S G1("MedDescription")=$G(MDDESC)743 Q744 ;745 NHIN ; SHOW THE NHIN ARRAY FOR THIS PATIENT746 Q:DFN=137!14747 D EN^C0CNHIN(.G,DFN,"")748 ZWRITE G749 K G750 ;751 QUIT ;end of WARD752 338 ; 753 339 LOCPAT(PREFIX,LOC) ;retrieve active outpatients … … 799 385 . S PRE=ZYR_"EP-"_C0QCLNC_"-" 800 386 . D LOCPAT(PRE,C0QCLNC) ; GET THE PATIENTS 801 . I $D(DEBUG) ZWRITE C0QLIST387 . I $D(DEBUG) D ZWRITE^C0QUTIL("C0QLIST") 802 388 . M C0QLIST(ZYR_"EP-ALL-PATIENTS")=C0QLIST(PRE_"Patient") 803 389 S DFN="" 804 390 S ZYR=ZYR_"EP-" 805 391 F S DFN=$O(C0QLIST(ZYR_"ALL-PATIENTS",DFN)) Q:DFN="" D ; EACH PATIENT 806 . D DEMO 392 . D DEMO^C0QMU122 807 393 . D PROBLEM 808 394 . D ALLERGY … … 812 398 . D VITALS 813 399 D FILE ; FILE THE PATIENT LISTS 814 ;815 ; Now process eRx MU measures for these patients816 ; Check for eRx template and code first; if they exist, run the code817 ; I $D(^C0PX("B","GETMEDS6")),$L($T(SOAP^C0PWS2)) DO ; smh -cmm for now818 . N C0QDEBUG S C0QDEBUG=1 ; This causes the code to print out data;819 . D EN^C0QMUERX($$PATLN^C0QMU12(ZYR_"HasERX")) ; Pass the eRx patient list820 . K C0QDEBUG ; remove debug variable821 ;822 400 N C0QCIEN 823 401 S ZI="" … … 841 419 . . S DFN=$P(^DGPM(PTFM,0),U,3) 842 420 . . S C0QLIST(ZYR_"Patient",DFN)="" 843 . . D DEMO 421 . . D DEMO^C0QMU122 844 422 . . D PROBLEM 845 423 . . D ALLERGY … … 853 431 . . D COD 854 432 . . D EDTIME 855 . . I C0QPR D PRINT 856 . . I C0QSS D SS 857 . . I C0QPL D PATLIST 433 . . I C0QPR D PRINT^C0QMU121 434 . . I C0QSS D SS^C0QMU121 435 . . I C0QPL D PATLIST^C0QMU121 858 436 Q 859 437 ; … … 941 519 D UPDATE^DIE("","C0QFDA","","ZERR") 942 520 I $D(ZERR) S ZZERR=ZZERR ; ZZERR DOESN'T EXIST, INVOKE THE ERROR TRAP IF TASKED 943 ;. W "ERROR",!944 ;. ZWR ZERR945 ;. B946 521 K C0QFDA 947 522 Q 948 523 ; 949 ; WHAT FOLLOWS IS OLD CODE - DELETE WHEN THIS WORKS950 ;. . N PTNAME S PTNAME=$P(^DPT(DFN,0),U,1)951 ;. . S PTDOB=$$FMTE^XLFDT($P($G(^DPT(DFN,0)),U,3)) ;date of birth952 ;. . S PTSEX=$P($G(^DPT(DFN,0)),U,2) ;patient sex953 ;. . D PID^VADPT ;VADPT call to grab PISD based on PT Eligibility954 ;. . S PTHRN=$P($G(VA("PID")),U) ;health record number955 ;. . S PTRLANG=$P($G(^DPT(DFN,256000)),U) ;ptr to language file956 ;. . I $G(PTRLANG)'="" S PTLANG=$P(^DI(.85,PTRLANG,0),U) ;PLS extrnl957 ;. . S RACE=""958 ;. . F D Q:RACE=""959 ;. . . S RACE=$O(^DPT(DFN,.02,"B",RACE))960 ;. . . Q:'RACE961 ;. . . S RACEDSC=$P($G(^DIC(10,RACE,0)),U)962 ;. . N ETHNDSC963 ;. . N ETHNDSC S ETHNDSC=""964 ;. . S ETHN=""965 ;. . F D Q:ETHN=""966 ;. . . S ETHN=$O(^DPT(DFN,.06,"B",ETHN))967 ;. . . Q:'ETHN968 ;. . . S ETHNDSC=$P($G(^DIC(10.2,ETHN,0)),U)969 ;. . D LIST^ORQQPL(.PROBL,DFN,"A")970 ;. . S PBCNT=""971 ;. . F S PBCNT=$O(PROBL(PBCNT)) Q:PBCNT="" D972 ;. . . S PBDESC=$P(PROBL(PBCNT),U,2) ;problem description973 ;. . K PROBL974 ;. . D LIST^ORQQAL(.ALRGYL,DFN)975 ;. . S ALCNT=""976 ;. . F S ALCNT=$O(ALRGYL(ALCNT)) Q:ALCNT="" D977 ;. . . S ALDESC=$P(ALRGYL(ALCNT),U,2) ;allergy description978 ;. . K ALRGYL979 ;. . D COVER^ORWPS(.MEDSL,DFN)980 ;. . S MDCNT=""981 ;. . F S MDCNT=$O(MEDSL(MDCNT)) Q:MDCNT="" D982 ;. . . Q:$P(MEDSL(MDCNT),U,4)'="ACTIVE" ;active medications only983 ;. . . S MDDESC=$P(MEDSL(MDCNT),U,2) ;medication description984 ;. . . S MDITEM=$P($G(MEDSL(MDCNT)),U,3)985 ;. . K MEDSL986 ;. . W !,"Discharge Date: ",EXDTE987 ;. . W !,DFN," ",PTNAME988 ;. . W !,"DOB: ",PTDOB," HRN: ",PTHRN989 ;. . W !,"Language Spoken: ",$G(PTLANG)990 ;. . W !,"Race: ",RACEDSC991 ;. . W !,"Ethnicity: ",ETHNDSC992 ;. . W !,"Problems: "993 ;. . W !,PBDESC994 ;. . W !,"Allergies: "995 ;. . W !,ALDESC996 ;. . W !,"Medications: "997 ;. . I $D(MDITEM) W !,"(",MDITEM,")",MDDESC E W !,MDDESC998 ;. . W !999 ;Q1000 ;1001 ;1002 ;1003 ;1004 524 END ;end of C0QPRML;
Note:
See TracChangeset
for help on using the changeset viewer.