| 1 | GMRPNCW ;SLC/DJP,MKB,MJC - CWAD Utility ;07-SEP-2001 16:11
 | 
|---|
| 2 |  ;;1.0;TEXT INTEGRATION UTILITIES;**120**;Jun 20, 1997
 | 
|---|
| 3 | EN ;Entry for secondary option to lookup patient, display warnings
 | 
|---|
| 4 |  Q:IOST?1"P".E  D SETUP("REVIEW PATIENT WARNINGS")
 | 
|---|
| 5 |  S GMRPEN=1,GMRPOPT=1
 | 
|---|
| 6 |  F  D  Q:$D(GMRPQT)
 | 
|---|
| 7 |  .W ! S DIC="^DPT(",DIC(0)="AEQM" D ^DIC
 | 
|---|
| 8 |  .S:(Y<1)!($D(DTOUT))!($D(DUOUT))!($D(DIROUT)) GMRPQT=1
 | 
|---|
| 9 |  K GMRPQT,GMRPEN,GMRPOPT,GMRPDFN,DIC,VAROOT
 | 
|---|
| 10 |  Q
 | 
|---|
| 11 | SETUP(TITLE)    ;entry utilities, option header
 | 
|---|
| 12 |  N GMRPI K GMRPQT,GMRPSTOP,GMRPLIST,GMRPOPT,GMRPAT
 | 
|---|
| 13 |  W @IOF,!!?(IOM-$L(TITLE)\2),TITLE,! F GMRPI=1:1:IOM W "-"
 | 
|---|
| 14 |  W !
 | 
|---|
| 15 |  Q
 | 
|---|
| 16 | ENPAT ;Additional entry point; must be passed Patient DFN in Y.
 | 
|---|
| 17 |  ;Setting GMRPEN permits individual options to turn on the Clin Alerts.
 | 
|---|
| 18 |  ;When ON, the keys GMRPC and/or GMRPWA may be required in the future.
 | 
|---|
| 19 |  Q:'$D(GMRPEN)
 | 
|---|
| 20 |  Q:+Y<1  N DIC,DFN,GMRPTYP
 | 
|---|
| 21 |  S (GMRPDFN,DFN)=+Y,$P(GMRPDFN,U,2)=$P(^DPT(+GMRPDFN,0),U)
 | 
|---|
| 22 |  D ALLERGY
 | 
|---|
| 23 |  I '$D(^TIU(8925,"ADCPT",+GMRPDFN)),'$D(GMRPALG),$S($D(GMRPOPT):1,$D(GMRPHOLD):1,1:0) D  Q
 | 
|---|
| 24 |  . W !!,"No Patient Warnings on file for "
 | 
|---|
| 25 |  . W $P(GMRPDFN,U,2),".",!
 | 
|---|
| 26 |  . I $$READ^TIUU("EA","Press RETURN to continue...") ; pause
 | 
|---|
| 27 |  D CWLKP I $D(GMRPOPT),'$D(GMRPQT) D PRINT
 | 
|---|
| 28 | END K GMRPQT,GMRPCWA,GMRPALG,GMRPX,X,CWA
 | 
|---|
| 29 |  Q
 | 
|---|
| 30 | CWLKP ;Lookup and presentation of CWA indicators
 | 
|---|
| 31 |  S GMRPCWA="",CTR=0
 | 
|---|
| 32 |  F CWA("DOCTYPE")=30,31,27 D
 | 
|---|
| 33 |  . I $D(^TIU(8925,"ADCPT",+GMRPDFN,CWA("DOCTYPE"),7))!$D(^TIU(8925,"ADCPT",+GMRPDFN,CWA("DOCTYPE"),8)) S GMRPTYP=$S(CWA("DOCTYPE")=30:"C",CWA("DOCTYPE")=31:"W",1:"D") D LIST ;GMRP*2.5*50 include amended as well as complete
 | 
|---|
| 34 |  I $D(GMRPALG) S GMRPCWA=GMRPCWA_"A" W !?24,"A: Known allergies"
 | 
|---|
| 35 |  I '$L(GMRPCWA) S GMRPQT=1 Q
 | 
|---|
| 36 |  I '$D(GMRPOPT),$D(GMRPHOLD) W ! N DIR S DIR(0)="E" D ^DIR W:$D(DIRUT)!(Y=1) ! Q
 | 
|---|
| 37 |  D RESPOND:$D(GMRPOPT)
 | 
|---|
| 38 |  Q
 | 
|---|
| 39 | LIST ;List data lines -- expects GMRPTYP="C" or "W" or "A" or "D"
 | 
|---|
| 40 |  N GMRPDT,GMRPIFN,GMRPDDT,CTR,COUNT,STATUS
 | 
|---|
| 41 |  S GMRPCWA=GMRPCWA_GMRPTYP
 | 
|---|
| 42 |  ; GMRP*2.5*50 include amended as well as complete:
 | 
|---|
| 43 |  S GMRPDT(7)=$O(^TIU(8925,"ADCPT",+GMRPDFN,CWA("DOCTYPE"),7,0))
 | 
|---|
| 44 |  S GMRPDT(8)=$O(^TIU(8925,"ADCPT",+GMRPDFN,CWA("DOCTYPE"),8,0))
 | 
|---|
| 45 |  ; Get inverse date & status of most recent complete or amended note:
 | 
|---|
| 46 |  I 'GMRPDT(7) S GMRPDT=+GMRPDT(8) Q:'GMRPDT  S STATUS=8
 | 
|---|
| 47 |  I '$G(GMRPDT) I 'GMRPDT(8) S GMRPDT=+GMRPDT(7) Q:'GMRPDT  S STATUS=7
 | 
|---|
| 48 |  I '$G(GMRPDT) D
 | 
|---|
| 49 |  . I GMRPDT(7)<GMRPDT(8) S GMRPDT=GMRPDT(7),STATUS=7 Q
 | 
|---|
| 50 |  . S GMRPDT=GMRPDT(8),STATUS=8
 | 
|---|
| 51 |  S GMRPDDT=$$DATE^TIULS((9999999-GMRPDT),"MM/DD/YY HR:MIN")
 | 
|---|
| 52 |  S (CTR,COUNT)=0
 | 
|---|
| 53 |  F  S COUNT=$O(^TIU(8925,"ADCPT",+GMRPDFN,CWA("DOCTYPE"),7,COUNT)) Q:+COUNT'>0  S CTR=CTR+1 ;Counts the number of COMPLETE warnings on file  
 | 
|---|
| 54 |  S COUNT=0
 | 
|---|
| 55 |  F  S COUNT=$O(^TIU(8925,"ADCPT",+GMRPDFN,CWA("DOCTYPE"),8,COUNT)) Q:+COUNT'>0  S CTR=CTR+1 ; GMRP*2.5*50, adds the number of amended warnings on file
 | 
|---|
| 56 |  W !?11," (",CTR," note",$S(CTR>1:"s",1:" "),")",?24,GMRPTYP,": ",GMRPDDT
 | 
|---|
| 57 |  W $$ADDEND(STATUS)
 | 
|---|
| 58 |  Q
 | 
|---|
| 59 | ADDEND(STATUS) ; If addended or amended, return most recent of these, for most recent note.
 | 
|---|
| 60 |  N IEN,AMENDDT,ADDMDT,ADDMIEN,AAMENDDT,MAX,MSG
 | 
|---|
| 61 |  ; GMRP*2.5*50, get most recent complete OR AMENDED note:
 | 
|---|
| 62 |  S IEN=0
 | 
|---|
| 63 |  S IEN=$O(^TIU(8925,"ADCPT",+GMRPDFN,CWA("DOCTYPE"),STATUS,GMRPDT,IEN))
 | 
|---|
| 64 |  S AMENDDT=+$G(^TIU(8925,IEN,16)) ;date of note amendment
 | 
|---|
| 65 |  S ADDMIEN=+$O(^TIU(8925,"DAD",IEN,""),-1) ; IEN of most recent addendum
 | 
|---|
| 66 |  I +$P($G(^TIU(8925,ADDMIEN,0)),U,5)<7 S ADDMIEN=0 ;forget addm if not signed
 | 
|---|
| 67 |  S ADDMDT=+$G(^TIU(8925,ADDMIEN,12)) ; date of addm
 | 
|---|
| 68 |  S AAMENDDT=+$G(^TIU(8925,ADDMIEN,16)) ;date of addm amendment
 | 
|---|
| 69 |  I AAMENDDT>AMENDDT S AMENDDT=AAMENDDT
 | 
|---|
| 70 |  S MAX=$S(AMENDDT>ADDMDT:AMENDDT,1:ADDMDT)
 | 
|---|
| 71 |  I MAX=0 S MSG="" G ADDX
 | 
|---|
| 72 |  I MAX=AMENDDT S MSG="  (amended "_$$DATE^TIULS(AMENDDT,"MM/DD/YY HR:MIN")_")" G ADDX
 | 
|---|
| 73 |  S MSG="  (addendum "_$$DATE^TIULS(ADDMDT,"MM/DD/YY HR:MIN")_")"
 | 
|---|
| 74 | ADDX Q MSG
 | 
|---|
| 75 |  ;
 | 
|---|
| 76 | RESPOND ;prompt for warnings to display
 | 
|---|
| 77 |  W !!,"Select patient warning(s) to display: "_GMRPCWA_"//"
 | 
|---|
| 78 |  R GMRPX:60 I '$T!(GMRPX["^") S GMRPQT=1 Q
 | 
|---|
| 79 |  S:GMRPX="" GMRPX=GMRPCWA
 | 
|---|
| 80 |  I GMRPX["?" D QUES K GMRPX G RESPOND
 | 
|---|
| 81 |  S GMRPX=$$UP^XLFSTR(GMRPX)
 | 
|---|
| 82 |  Q
 | 
|---|
| 83 | PRINT ;Prints Crisis Notes, Clin Warnings & Allergies using HS utilities.
 | 
|---|
| 84 |  S X="GMTS" X ^%ZOSF("TEST") I '$T W $C(7) D  Q
 | 
|---|
| 85 |  .W !,"This display uses the Health Summary, currently unavailable.",!
 | 
|---|
| 86 |  N GMTSTITL,GMTSPRM S GMTSTITL="PATIENT WARNINGS",GMTSPRM=""
 | 
|---|
| 87 |  S:GMRPX["C" GMTSPRM="CN"
 | 
|---|
| 88 |  I $L($T(CD^GMTSCW)) D
 | 
|---|
| 89 |  .S:GMRPX["W" GMTSPRM=GMTSPRM_",CW"
 | 
|---|
| 90 |  .S:GMRPX["A" GMTSPRM=GMTSPRM_",ADR"
 | 
|---|
| 91 |  .S:GMRPX["D" GMTSPRM=GMTSPRM_",CD"
 | 
|---|
| 92 |  E  D
 | 
|---|
| 93 |  .S:GMRPX["W"!(GMRPX["D") GMTSPRM=GMTSPRM_",CW"
 | 
|---|
| 94 |  .S:GMRPX["A" GMTSPRM=GMTSPRM_",ADR"
 | 
|---|
| 95 |  I GMTSPRM="" S GMRPQT=1 Q
 | 
|---|
| 96 |  I $E(GMTSPRM)="," S GMTSPRM=$P(GMTSPRM,",",2,5)
 | 
|---|
| 97 |  D ENCWA^GMTS
 | 
|---|
| 98 |  Q
 | 
|---|
| 99 | QUES ;Response to "?" at CWA prompt
 | 
|---|
| 100 |  W !!,"     Enter:"
 | 
|---|
| 101 |  W !?8,"C     for Crisis Notes",!?8,"W     for Clinical Warnings"
 | 
|---|
| 102 |  W !?8,"A     for Allergies",!?8,"D     for Directive Notes"
 | 
|---|
| 103 |  W !?8,"CWAD  for all 4 patient warnings"
 | 
|---|
| 104 |  W !!?8,"or any combination of C, W, A, and D without commas."
 | 
|---|
| 105 |  Q
 | 
|---|
| 106 | ALLERGY ;checks for allergies on file for patient - requires GMRPDFN
 | 
|---|
| 107 |  ;Returns GMRPALG if allergies found ('$D if none)
 | 
|---|
| 108 |  K GMRPALG,GMRA
 | 
|---|
| 109 |  S X="GMRADPT" X ^%ZOSF("TEST") I $T D  Q
 | 
|---|
| 110 |  .D EN1^GMRADPT S:+$G(GMRAL) GMRPALG=1 K GMRAL
 | 
|---|
| 111 |  I $D(^DPT(+GMRPDFN,"PA",0)),$P(^(0),U,4)>0 S GMRPALG=1
 | 
|---|
| 112 |  Q
 | 
|---|