| 1 | GMPL ; SLC/MKB/AJB -- Problem List Driver ;;9-5-95 11:47am
 | 
|---|
| 2 |  ;;2.0;Problem List;**3,11,28**;Aug 25, 1994
 | 
|---|
| 3 | EN ; -- main entry point for GMPL PROBLEM LIST
 | 
|---|
| 4 |  S GMPLUSER=1
 | 
|---|
| 5 |  D EN^VALM("GMPL PROBLEM LIST")
 | 
|---|
| 6 |  Q
 | 
|---|
| 7 |  ;
 | 
|---|
| 8 | DE ; -- main entry point for GMPL DATA ENTRY
 | 
|---|
| 9 |  K GMPLUSER
 | 
|---|
| 10 |  D EN^VALM("GMPL DATA ENTRY")
 | 
|---|
| 11 |  Q
 | 
|---|
| 12 |  ;
 | 
|---|
| 13 | ADD ; -- add a new problem 
 | 
|---|
| 14 |  S VALMBCK="",GMPCLIN="" K GMPREBLD
 | 
|---|
| 15 |  I +$P(GMPDFN,U,4),'$$CKDEAD^GMPLX1($P(GMPDFN,U,4)) G ADDQ
 | 
|---|
| 16 |  S:$E(GMPLVIEW("VIEW"))'="S" GMPCLIN=$$CLINIC^GMPLX1("") G:GMPCLIN="^" ADDQ
 | 
|---|
| 17 |  S GMPLSLST=$P($G(^VA(200,DUZ,125)),U,2)
 | 
|---|
| 18 |  I 'GMPLSLST,GMPCLIN,$D(^GMPL(125,"C",+GMPCLIN)) S GMPLSLST=$O(^(+GMPCLIN,0)) ; if user has no list but clinic does, use clinic list
 | 
|---|
| 19 |  I GMPLSLST D  G ADD1
 | 
|---|
| 20 |  . S $P(GMPLSLST,U,2)=$P($G(^GMPL(125,+GMPLSLST,0)),U)
 | 
|---|
| 21 |  . D EN^VALM("GMPL LIST MENU")
 | 
|---|
| 22 |  W @IOF D FULL^VALM1 F  D ADD^GMPL1 Q:$D(GMPQUIT)  S:$D(GMPSAVED) GMPREBLD=1 K DUOUT,DTOUT,GMPSAVED W !!!,">>>  Please enter another problem, or press <return> to exit."
 | 
|---|
| 23 |  S VALMBCK="R"
 | 
|---|
| 24 | ADD1 I $D(GMPREBLD) D
 | 
|---|
| 25 |  . S VALMBCK="R",GMPRINT=1
 | 
|---|
| 26 |  . S VALMBG=$S(GMPARAM("REV"):1,VALMCNT<10:1,1:VALMCNT-9)
 | 
|---|
| 27 |  . D BUILD^GMPLMGR(.GMPLIST),HDR^GMPLMGR
 | 
|---|
| 28 | ADDQ D KILL^GMPLX S VALMSG=$$MSG^GMPLX S:'VALMCC VALMBCK="R"
 | 
|---|
| 29 |  Q
 | 
|---|
| 30 |  ;
 | 
|---|
| 31 | STATUS ; -- inactivate a problem
 | 
|---|
| 32 |  S VALMBCK="" G:+$G(GMPCOUNT)'>0 STQ
 | 
|---|
| 33 |  I GMPLVIEW("ACT")="I" W $C(7),!!,"Currently displayed problems are already inactive!",! G STQ
 | 
|---|
| 34 |  S GMPLSEL=$$SEL^GMPLX("inactivate") G:GMPLSEL="^" STQ
 | 
|---|
| 35 |  S GMPLNO=$L(GMPLSEL,",")
 | 
|---|
| 36 |  F GMPI=1:1:GMPLNO S GMPLNUM=$P(GMPLSEL,",",GMPI) I GMPLNUM D  Q:$D(GMPQUIT)
 | 
|---|
| 37 |  . S GMPIFN=$P($G(^TMP("GMPLIDX",$J,+GMPLNUM)),U,2) Q:GMPIFN'>0
 | 
|---|
| 38 |  . I $P(^AUPNPROB(GMPIFN,0),U,12)="I" W !!,$$PROBTEXT^GMPLX(GMPIFN),!,"is already inactive!",! H 2 Q
 | 
|---|
| 39 |  . I $P($G(^AUPNPROB(GMPIFN,1)),U,2)="H" W !!,$$PROBTEXT^GMPLX(GMPIFN),!,"has been removed from this patient's problem list!",! H 2 Q
 | 
|---|
| 40 |  . L +^AUPNPROB(GMPIFN,0):1 I '$T W $C(7),!!,$$LOCKED^GMPLX,! H 2 Q
 | 
|---|
| 41 |  . D STATUS^GMPL1 L -^AUPNPROB(GMPIFN,0)
 | 
|---|
| 42 |  I $D(GMPSAVED) D
 | 
|---|
| 43 |  . S VALMBCK="R",GMPRINT=1
 | 
|---|
| 44 |  . D BUILD^GMPLMGR(.GMPLIST),HDR^GMPLMGR
 | 
|---|
| 45 | STQ D KILL^GMPLX S VALMSG=$$MSG^GMPLX S:'VALMCC VALMBCK="R"
 | 
|---|
| 46 |  Q
 | 
|---|
| 47 |  ;
 | 
|---|
| 48 | NOTES ; -- annotate a problem
 | 
|---|
| 49 |  S VALMBCK="" G:+$G(GMPCOUNT)'>0 NTQ
 | 
|---|
| 50 |  S GMPLNUM=$$SEL1^GMPLX("add comment(s) to") G:GMPLNUM="^" NTQ
 | 
|---|
| 51 |  S GMPIFN=$P($G(^TMP("GMPLIDX",$J,+GMPLNUM)),U,2) G:GMPIFN'>0 NTQ
 | 
|---|
| 52 |  I $P($G(^AUPNPROB(GMPIFN,1)),U,2)="H" W !!,$$PROBTEXT^GMPLX(GMPIFN),!,"has been removed from this patient's problem list!",! H 2 G NTQ
 | 
|---|
| 53 |  ; Code Set Versioning (CSV)
 | 
|---|
| 54 |  I '$$CODESTS^GMPLX(GMPIFN,DT) W !!,$$PROBTEXT^GMPLX(GMPIFN),!,"has an inactive ICD9 code. Edit the problem before adding comments.",! H 3 G NTQ
 | 
|---|
| 55 |  L +^AUPNPROB(GMPIFN,0):1 I '$T W $C(7),!!,$$LOCKED^GMPLX,! H 2 G NTQ
 | 
|---|
| 56 |  D NEWNOTE^GMPL1 I $D(GMPSAVED) D
 | 
|---|
| 57 |  . S VALMBCK="R",GMPRINT=1
 | 
|---|
| 58 |  . D BUILD^GMPLMGR(.GMPLIST)
 | 
|---|
| 59 |  L -^AUPNPROB(GMPIFN,0)
 | 
|---|
| 60 | NTQ D KILL^GMPLX S VALMSG=$$MSG^GMPLX S:'VALMCC VALMBCK="R"
 | 
|---|
| 61 |  Q
 | 
|---|
| 62 |  ;
 | 
|---|
| 63 | EDIT ; -- edit allowable fields of a problem
 | 
|---|
| 64 |  S VALMBCK="" G:+$G(GMPCOUNT)'>0 EDQ
 | 
|---|
| 65 |  S GMPLNUM=$$SEL1^GMPLX("edit") G:GMPLNUM="^" EDQ
 | 
|---|
| 66 |  S GMPIFN=$P($G(^TMP("GMPLIDX",$J,+GMPLNUM)),U,2) G:GMPIFN'>0 EDQ
 | 
|---|
| 67 |  ; Code Set Versioning (CSV)
 | 
|---|
| 68 |  ; I '$$CODESTS^GMPLX(GMPIFN,DT) W !!,$$PROBTEXT^GMPLX(GMPIFN),!,"has an inactive ICD code.",! H 3 G EDQ
 | 
|---|
| 69 |  I $P($G(^AUPNPROB(GMPIFN,1)),U,2)="H" W !!,$$PROBTEXT^GMPLX(GMPIFN),!,"has been removed from this patient's problem list!",! H 2 G EDQ
 | 
|---|
| 70 |  L +^AUPNPROB(GMPIFN,0):1 I '$T W $C(7),!!,$$LOCKED^GMPLX,! H 2 G EDQ
 | 
|---|
| 71 |  D EN^VALM("GMPL EDIT PROBLEM")
 | 
|---|
| 72 |  I $D(GMPSAVED) D BUILD^GMPLMGR(.GMPLIST),HDR^GMPLMGR S GMPRINT=1
 | 
|---|
| 73 |  S VALMBCK="R" L -^AUPNPROB(GMPIFN,0)
 | 
|---|
| 74 | EDQ D KILL^GMPLX S VALMSG=$$MSG^GMPLX S:'VALMCC VALMBCK="R"
 | 
|---|
| 75 |  Q
 | 
|---|
| 76 |  ;
 | 
|---|
| 77 | DELETE ; -- delete a problem
 | 
|---|
| 78 |  S VALMBCK="" G:+$G(GMPCOUNT)'>0 DELQ
 | 
|---|
| 79 |  S GMPLSEL=$$SEL^GMPLX("remove from the list") G:GMPLSEL="^" DELQ
 | 
|---|
| 80 |  S GMPLNO=$L(GMPLSEL,",") G:'$$SUREDEL^GMPLEDT2(GMPLNO-1) DELQ
 | 
|---|
| 81 |  F GMPI=1:1:GMPLNO S GMPLNUM=$P(GMPLSEL,",",GMPI) I GMPLNUM D  Q:$D(GMPQUIT)
 | 
|---|
| 82 |  . S GMPIFN=$P($G(^TMP("GMPLIDX",$J,+GMPLNUM)),U,2) Q:GMPIFN'>0
 | 
|---|
| 83 |  . I $P($G(^AUPNPROB(GMPIFN,1)),U,2)="H" W !!,$$PROBTEXT^GMPLX(GMPIFN),!,"has already been removed from this patient's problem list!",! H 2 Q
 | 
|---|
| 84 |  . L +^AUPNPROB(GMPIFN,0):1 I '$T W $C(7),!!,$$LOCKED^GMPLX,! H 2 Q
 | 
|---|
| 85 |  . D DELETE^GMPL1 L -^AUPNPROB(GMPIFN,0)
 | 
|---|
| 86 |  I $D(GMPSAVED) D
 | 
|---|
| 87 |  . S VALMBCK="R",GMPRINT=1 D BUILD^GMPLMGR(.GMPLIST),HDR^GMPLMGR
 | 
|---|
| 88 | DELQ D KILL^GMPLX S VALMSG=$$MSG^GMPLX S:'VALMCC VALMBCK="R"
 | 
|---|
| 89 |  Q
 | 
|---|
| 90 |  ;
 | 
|---|
| 91 | VERIFY ; -- verify a problem
 | 
|---|
| 92 |  S VALMBCK="" Q:+$G(GMPCOUNT)'>0
 | 
|---|
| 93 |  W !!,"Select the problem(s) you wish to verify as correct."
 | 
|---|
| 94 |  S GMPLSEL=$$SEL^GMPLX("mark as verified") G:GMPLSEL="^" VERQ
 | 
|---|
| 95 |  S GMPLNO=$L(GMPLSEL,",")
 | 
|---|
| 96 |  F GMPI=1:1:GMPLNO S GMPLNUM=$P(GMPLSEL,",",GMPI) I GMPLNUM D
 | 
|---|
| 97 |  . S GMPIFN=$P($G(^TMP("GMPLIDX",$J,GMPLNUM)),U,2)
 | 
|---|
| 98 |  . D:GMPIFN VERIFY^GMPL1
 | 
|---|
| 99 |  I $D(GMPSAVED) D BUILD^GMPLMGR(.GMPLIST) S VALMBCK="R"
 | 
|---|
| 100 | VERQ D KILL^GMPLX S VALMSG=$$MSG^GMPLX S:'VALMCC VALMBCK="R"
 | 
|---|
| 101 |  Q
 | 
|---|
| 102 |  ;
 | 
|---|
| 103 | EXPAND ; -- detailed display of a problem
 | 
|---|
| 104 |  S VALMBCK="" Q:+$G(GMPCOUNT)'>0
 | 
|---|
| 105 |  S GMPLSEL=$$SEL^GMPLX("view") G:GMPLSEL="^" EXPQ
 | 
|---|
| 106 |  S GMPLNO=$L(GMPLSEL,",")-1,GMPI=0
 | 
|---|
| 107 |  D EN^VALM("GMPL DETAILED DISPLAY")
 | 
|---|
| 108 |  S VALMBCK="R"
 | 
|---|
| 109 | EXPQ D KILL^GMPLX S VALMSG=$$MSG^GMPLX S:'VALMCC VALMBCK="R"
 | 
|---|
| 110 |  Q
 | 
|---|