| 1 | GMPLEDT2 ; SLC/MKB/KER -- Problem List edit actions ; 04/15/2002 | 
|---|
| 2 | ;;2.0;Problem List;**26**;Aug 25, 1994 | 
|---|
| 3 | ; | 
|---|
| 4 | ; External References | 
|---|
| 5 | ;   DBIA 10060  ^VA(200 | 
|---|
| 6 | ;   DBIA 10003  ^%DT | 
|---|
| 7 | ;   DBIA 10006  ^DIC | 
|---|
| 8 | ;   DBIA 10026  ^DIR | 
|---|
| 9 | ;   DBIA 10103  $$HTFM^XLFDT | 
|---|
| 10 | ;   DBIA 10104  $$UP^XLFSTR | 
|---|
| 11 | ; | 
|---|
| 12 | EDITED() ; Returns 1 if problem has been altered | 
|---|
| 13 | N FLD,NOTE,DIFFRENT S DIFFRENT=0 | 
|---|
| 14 | F FLD=0:0 S FLD=$O(GMPORIG(FLD)) Q:(FLD'>0)!(FLD'<10)  I GMPORIG(FLD)'=GMPFLD(FLD) S DIFFRENT=1 Q | 
|---|
| 15 | G:DIFFRENT EDQ | 
|---|
| 16 | I $D(GMPFLD(10,"NEW"))>9 S DIFFRENT=1 G EDQ | 
|---|
| 17 | F NOTE=0:0 S NOTE=$O(GMPORIG(10,NOTE)) Q:NOTE'>0  I $P(GMPORIG(10,NOTE),U,3)'=$P(GMPFLD(10,NOTE),U,3) S DIFFRENT=1 Q | 
|---|
| 18 | EDQ Q DIFFRENT | 
|---|
| 19 | ; | 
|---|
| 20 | SUREDEL(NUM) ; -- sure you want to delete problems? | 
|---|
| 21 | N DIR,X,Y | 
|---|
| 22 | W !!,"CAUTION:  "_$S(NUM=1:"This problem",1:"These "_NUM_" problems")_" will be completely removed",!,"          from this patient's list!!",! | 
|---|
| 23 | S DIR(0)="YA",DIR("A")="Are you sure? ",DIR("B")="NO" | 
|---|
| 24 | S DIR("?",1)="Enter YES to delete "_$S(NUM=1:"this problem",1:"these problems")_" from the current patient's list." | 
|---|
| 25 | S DIR("?",2)="DO NOT use this option to remove problems from your currently" | 
|---|
| 26 | S DIR("?")="displayed view of the Problem List!!" | 
|---|
| 27 | W $C(7) D ^DIR | 
|---|
| 28 | Q +Y | 
|---|
| 29 | ; | 
|---|
| 30 | DELETE ; Remove current problem from patient's list | 
|---|
| 31 | N CHNGE S VALMBCK=$S(VALMCC:"",1:"R") Q:'$$SUREDEL(1) | 
|---|
| 32 | S CHNGE=GMPIFN_"^1.02^"_$$HTFM^XLFDT($H)_U_DUZ_"^P^H^Deleted^"_+$G(GMPROV) W "." | 
|---|
| 33 | S $P(^AUPNPROB(GMPIFN,1),U,2)="H",GMPSAVED=1,VALMBCK="Q" W "." | 
|---|
| 34 | D AUDIT^GMPLX(CHNGE,""),DTMOD^GMPLX(GMPIFN) W "." | 
|---|
| 35 | W "... removed!",!!,"Returning to Problem List.",! H 1 | 
|---|
| 36 | Q | 
|---|
| 37 | ; | 
|---|
| 38 | VERIFY ; Mark current problem as verified | 
|---|
| 39 | I GMPFLD(1.02)'="T" W $C(7),!!,"This problem does not require verification.",! H 1 Q | 
|---|
| 40 | S GMPFLD(1.02)="P" W !,"." | 
|---|
| 41 | W "... verified!" H 1 | 
|---|
| 42 | Q | 
|---|
| 43 | ; | 
|---|
| 44 | NPERSON ; look up into #200, given PROMPT,HELPMSG,DEFAULT (returns X, Y) | 
|---|
| 45 | N DIC | 
|---|
| 46 | NP W !,PROMPT_$S(+DEFAULT:$P(DEFAULT,U,2)_"//",1:"") | 
|---|
| 47 | R X:DTIME S:'$T DTOUT=1 I $D(DTOUT)!(X="^") S GMPQUIT=1 Q | 
|---|
| 48 | I X?1"^".E D JUMP^GMPLEDT3(X) Q:$D(GMPQUIT)!($G(GMPLJUMP))  K:$G(GMPIFN) GMPLJUMP G NP | 
|---|
| 49 | I X="" S Y=DEFAULT Q | 
|---|
| 50 | I X="@" G:'$$SURE^GMPLX NP S Y="" Q | 
|---|
| 51 | I X="?" W !!,HELPMSG,! G NP | 
|---|
| 52 | I X["??" D NPHELP G NP | 
|---|
| 53 | S DIC="^VA(200,",DIC(0)="EMQ" D ^DIC | 
|---|
| 54 | I Y'>0 W !!,HELPMSG,!,$C(7) G NP | 
|---|
| 55 | Q | 
|---|
| 56 | ; | 
|---|
| 57 | NPHELP ; List names in New Person file | 
|---|
| 58 | N NM,CNT,I,Y S CNT=0,(NM,Y)="" W !,"Choose from: " | 
|---|
| 59 | F  S NM=$O(^VA(200,"B",NM)) Q:NM=""  D  Q:Y'="" | 
|---|
| 60 | . S CNT=CNT+1 I '(CNT#9) D  Q:Y="^" | 
|---|
| 61 | . . W "      ... more, or ^ to stop: " R Y:DTIME S:'$T Y="^" | 
|---|
| 62 | . S I=$O(^VA(200,"B",NM,0)) W !,"   "_$P($G(^VA(200,I,0)),U) | 
|---|
| 63 | W ! | 
|---|
| 64 | Q | 
|---|
| 65 | ; | 
|---|
| 66 | DATE ; Edit date fields given PROMPT,HELPMSG,DEFAULT (ret'ns X,Y) | 
|---|
| 67 | N %DT S %DT="EP" | 
|---|
| 68 | D1 W !,PROMPT_$S(+DEFAULT:$P(DEFAULT,U,2)_"//",1:"") | 
|---|
| 69 | R X:DTIME S:'$T DTOUT=1 I $D(DTOUT)!(X="^") S GMPQUIT=1 Q | 
|---|
| 70 | I X?1"^".E D JUMP^GMPLEDT3(X) Q:$D(GMPQUIT)!($G(GMPLJUMP))  K:$G(GMPIFN) GMPLJUMP G D1 | 
|---|
| 71 | I X="" S Y=DEFAULT Q | 
|---|
| 72 | I X="@" G:'$$SURE^GMPLX D1 S Y="" Q | 
|---|
| 73 | I X="?" W !!,HELPMSG,! G D1 | 
|---|
| 74 | I X["??" D DTHELP G D1 | 
|---|
| 75 | D ^%DT I Y<1 W "  INVALID DATE" D DTHELP W !,HELPMSG G D1 | 
|---|
| 76 | I Y>DT W !!,"Date cannot be in the future!",!,$C(7) G D1 | 
|---|
| 77 | Q | 
|---|
| 78 | ; | 
|---|
| 79 | DTHELP ; Date help | 
|---|
| 80 | W !!,"Examples of valid dates:" | 
|---|
| 81 | W !,"   Jan 20 1957 or 20 Jan 57 or 1/20/57 or 012057" | 
|---|
| 82 | W !,"   T   (for TODAY),  T-1 (for YESTERDAY),  T-3W (for 3 WEEKS AGO), etc." | 
|---|
| 83 | W !,"You may omit the precise day, such as Jan 1957, or" | 
|---|
| 84 | W !,"If the year is omitted, a date in the PAST will be assumed.",! | 
|---|
| 85 | Q | 
|---|
| 86 | ; | 
|---|
| 87 | SPEXP ; Edit Fields 1.11, 1.12, 1.13, 1.15, 1.16 | 
|---|
| 88 | D:GMPAGTOR SP(1.11,"Agent Orange") Q:$D(GMPQUIT)!($G(GMPLJUMP)) | 
|---|
| 89 | S:$G(GMPFLD(1.11)) $P(GMPFLD(1.11),U,2)="AGENT ORANGE" | 
|---|
| 90 | D:GMPION SP(1.12,"Radiation") Q:$D(GMPQUIT)!($G(GMPLJUMP)) | 
|---|
| 91 | S:$G(GMPFLD(1.12)) $P(GMPFLD(1.12),U,2)="RADIATION" | 
|---|
| 92 | D:GMPGULF SP(1.13,"Environmental Contaminants") Q:$D(GMPQUIT)!($G(GMPLJUMP)) | 
|---|
| 93 | S:$G(GMPFLD(1.13)) $P(GMPFLD(1.13),U,2)="ENV CONTAMINANTS" | 
|---|
| 94 | D:GMPHNC SP(1.15,"Head and/or Neck Cancer") Q:$D(GMPQUIT)!($G(GMPLJUMP)) | 
|---|
| 95 | S:$G(GMPFLD(1.15)) $P(GMPFLD(1.15),U,2)="HEAD/NECK CANCER" | 
|---|
| 96 | D:GMPMST SP(1.16,"Military Sexual Trauma") Q:$D(GMPQUIT)!($G(GMPLJUMP)) | 
|---|
| 97 | S:$G(GMPFLD(1.16)) $P(GMPFLD(1.16),U,2)="MIL SEXUAL TRAUMA" | 
|---|
| 98 | Q | 
|---|
| 99 | SP(FLD,NAME) ; edit exposure fields -- Requires FLD number & field NAME | 
|---|
| 100 | N DIR,X,Y,GMPLN S DIR(0)="YAO",GMPLN=$$UP^XLFSTR(NAME) | 
|---|
| 101 | S DIR("A")="Is this problem related to "_GMPLN | 
|---|
| 102 | S:GMPLN'["SEXUAL"&(GMPLN'["CANCER") DIR("A")=DIR("A")_" EXPOSURE" S DIR("A")=DIR("A")_"? " | 
|---|
| 103 | S DIR("?",1)="Enter YES if this problem is related in some way to the patient's" | 
|---|
| 104 | S DIR("?")="diagnosed "_NAME_"." S:GMPLN["SEXUAL" DIR("?")="reported "_NAME_"." S:GMPLN'["SEXUAL"&(GMPLN'["CANCER") DIR("?")="exposure to "_NAME_"." | 
|---|
| 105 | S:$L($G(GMPFLD(FLD))) DIR("B")=$S(+GMPFLD(FLD):"YES",1:"NO") | 
|---|
| 106 | SP1 D ^DIR I $D(DTOUT)!(Y="^") S GMPQUIT=1 Q | 
|---|
| 107 | I Y?1"^".E D JUMP^GMPLEDT3(Y) Q:$D(GMPQUIT)!($G(GMPLJUMP))  K:$G(GMPIFN) GMPLJUMP G SP1 | 
|---|
| 108 | I X="@" G:'$$SURE^GMPLX SP1 S Y="" | 
|---|
| 109 | S GMPFLD(FLD)=Y S:Y'="" GMPFLD(FLD)=GMPFLD(FLD)_U_$S(Y:"YES",1:"NO") | 
|---|
| 110 | Q | 
|---|