| 1 | GMPLEDIT ; SLC/MKB/KER -- VALM Utilities for Edit sub-list ; 04/15/2002 | 
|---|
| 2 | ;;2.0;Problem List;**26**;Aug 25, 1994 | 
|---|
| 3 | ; | 
|---|
| 4 | ; External References | 
|---|
| 5 | ;   DBIA 10060  ^VA(200 | 
|---|
| 6 | ;   DBIA 10076  ^XUSEC("GMPL ICD CODE" | 
|---|
| 7 | ;   DBIA 10009  YN^DICN | 
|---|
| 8 | ;   DBIA 10116  $$SETSTR^VALM1 | 
|---|
| 9 | ;   DBIA 10117  CLEAN^VALM10 | 
|---|
| 10 | ;   DBIA 10117  CNTRL^VALM10 | 
|---|
| 11 | ;   DBIA 10103  $$FMTE^XLFDT | 
|---|
| 12 | ;   DBIA 10104  $$REPEAT^XLFSTR | 
|---|
| 13 | ; | 
|---|
| 14 | EN ; Init Variables, list array | 
|---|
| 15 | ;   Expects GMPIFN   IEN of file 900011 (required) | 
|---|
| 16 | ;           GMPLNUM  Sequence # of Problem Edit (optional) | 
|---|
| 17 | W !!,"Retrieving current data for problem " | 
|---|
| 18 | W $S($G(GMPLNUM):"#"_GMPLNUM_" ",1:"")_"...",! K GMPFLD,GMPORIG | 
|---|
| 19 | ;   Set GMPFLD() and GMPORIG() Arrays | 
|---|
| 20 | D GETFLDS^GMPLEDT3(GMPIFN) | 
|---|
| 21 | I '$D(GMPFLD) W !!,"ERROR -- Cannot continue.",! S VALMBCK="Q" G KILL | 
|---|
| 22 | INIT ;   Build list from GMPFLD() | 
|---|
| 23 | N LCNT,TEXT,I,SP,LINE,STR,NUM,NOTE,ICD | 
|---|
| 24 | S LCNT=1,ICD=$S($D(^XUSEC("GMPL ICD CODE",DUZ)):1,1:0) | 
|---|
| 25 | S SP="" F I=1.11,1.12,1.13,1.15,1.16 S:GMPFLD(I) SP=SP_$P(GMPFLD(I),U,2)_U | 
|---|
| 26 | S:$L(SP) SP=$E(SP,1,$L(SP)-1) | 
|---|
| 27 | K GMPSAVED,GMPREBLD D CLEAN^VALM10 | 
|---|
| 28 | D WRAP^GMPLX($P(GMPFLD(.05),U,2),65,.TEXT) | 
|---|
| 29 | ;   Line 1 | 
|---|
| 30 | S LINE="1  Problem:  "_TEXT(1) | 
|---|
| 31 | S ^TMP("GMPLEDIT",$J,LCNT,0)=LINE D HI(LCNT,1) | 
|---|
| 32 | I $D(GMPLUSER),GMPARAM("VER"),GMPFLD(1.02)="T" S LINE=$E(LINE,1,12)_"$"_$E(LINE,14,79),^TMP("GMPLEDIT",$J,LCNT,0)=LINE D HI(LCNT,13) | 
|---|
| 33 | I TEXT>1 F I=2:1:TEXT S LCNT=LCNT+1,^TMP("GMPLEDIT",$J,LCNT,0)="              "_TEXT(I) | 
|---|
| 34 | S LCNT=LCNT+1,^TMP("GMPLEDIT",$J,LCNT,0)="   " | 
|---|
| 35 | IN1 ;   Line 2 | 
|---|
| 36 | S LINE="2  Onset:    ",STR=$P(GMPFLD(.13),U,2) | 
|---|
| 37 | S LINE=LINE_$S(STR="":"unknown",1:STR),LCNT=LCNT+1 | 
|---|
| 38 | I GMPVA S STR=$S(ICD:7,1:6)_"  SC Condition: "_$S(GMPFLD(1.1)="":"unknown",1:$P(GMPFLD(1.1),U,2)),LINE=$$SETSTR^VALM1(STR,LINE,45,34) | 
|---|
| 39 | S ^TMP("GMPLEDIT",$J,LCNT,0)=LINE F I=1,45 D HI(LCNT,I) | 
|---|
| 40 | IN2 ;   Line 3 | 
|---|
| 41 | S LINE="3  Status:   "_$P(GMPFLD(.12),U,2),LCNT=LCNT+1 | 
|---|
| 42 | I $E(GMPFLD(.12))="A",$L(GMPFLD(1.14)) S LINE=LINE_"/"_$P(GMPFLD(1.14),U,2) | 
|---|
| 43 | I $E(GMPFLD(.12))="I",GMPFLD(1.07) S LINE=LINE_", Resolved "_$P(GMPFLD(1.07),U,2) | 
|---|
| 44 | I GMPVA S STR=$S(ICD:8,1:7)_"  Exposure:     "_$S('$L(SP):"<None>",1:$P(SP,U)),LINE=$$SETSTR^VALM1(STR,LINE,45,34) | 
|---|
| 45 | S ^TMP("GMPLEDIT",$J,LCNT,0)=LINE F I=1,45 D HI(LCNT,I) | 
|---|
| 46 | IN3 ;   Line 4 | 
|---|
| 47 | S LINE="4  Provider: "_$P(GMPFLD(1.05),U,2),LCNT=LCNT+1 | 
|---|
| 48 | I GMPVA,$L(SP,U)>1 S STR=$P(SP,U,2),LINE=$$SETSTR^VALM1(STR,LINE,60,20) | 
|---|
| 49 | S ^TMP("GMPLEDIT",$J,LCNT,0)=LINE D HI(LCNT,1) | 
|---|
| 50 | ;   Line 5 | 
|---|
| 51 | I $E(GMPLVIEW("VIEW"))="S" S LINE="5  Service:  "_$P(GMPFLD(1.06),U,2) | 
|---|
| 52 | E  S LINE="5  Clinic:   "_$P(GMPFLD(1.08),U,2) | 
|---|
| 53 | I GMPVA,$L(SP,U)>2 S STR=$P(SP,U,3),LINE=$$SETSTR^VALM1(STR,LINE,60,20) | 
|---|
| 54 | S LCNT=LCNT+1,^TMP("GMPLEDIT",$J,LCNT,0)=LINE D HI(LCNT,1) G:'ICD IN4 | 
|---|
| 55 | ;   Line 6 | 
|---|
| 56 | S LINE="6  ICD Code: "_$P(GMPFLD(.01),U,2),LCNT=LCNT+1 | 
|---|
| 57 | S ^TMP("GMPLEDIT",$J,LCNT,0)=LINE D HI(LCNT,1) | 
|---|
| 58 | IN4 ;   Line 7/8 | 
|---|
| 59 | S LCNT=LCNT+1,^TMP("GMPLEDIT",$J,LCNT,0)="   " | 
|---|
| 60 | S LCNT=LCNT+1,^TMP("GMPLEDIT",$J,LCNT,0)="Comments: " | 
|---|
| 61 | D CNTRL^VALM10(LCNT,1,8,IOUON,IOUOFF) | 
|---|
| 62 | S NUM=$S(GMPVA:7,1:5) S:ICD NUM=NUM+1 | 
|---|
| 63 | I GMPFLD(10,0) F I=1:1:GMPFLD(10,0) D | 
|---|
| 64 | . S NUM=NUM+1,NOTE=GMPFLD(10,I) | 
|---|
| 65 | . S LINE=NUM_$E("   ",1,3-$L(NUM))_$J($$EXTDT^GMPLX($P(NOTE,U,5)),8) | 
|---|
| 66 | . I $P(GMPFLD(10,I),U,3)="",$P(GMPORIG(10,I),U,3)'="" S $P(NOTE,U,3)="<Deleted>" | 
|---|
| 67 | . S LCNT=LCNT+1,^TMP("GMPLEDIT",$J,LCNT,0)=LINE_": "_$P(NOTE,U,3) | 
|---|
| 68 | . D HI(LCNT,1) Q:'$D(GMPLMGR) | 
|---|
| 69 | . S LINE="             "_$P($G(^VA(200,+$P(NOTE,U,6),0)),U) | 
|---|
| 70 | . S LCNT=LCNT+1,^TMP("GMPLEDIT",$J,LCNT,0)=LINE | 
|---|
| 71 | IN5 ;   Last Line | 
|---|
| 72 | I $D(GMPFLD(10,"NEW"))>9 S NUM=NUM+1 D | 
|---|
| 73 | . S LINE=NUM_$E("   ",1,3-$L(NUM))_$J($$EXTDT^GMPLX(DT),8)_": " | 
|---|
| 74 | . S I=$O(GMPFLD(10,"NEW",0)),LINE=LINE_GMPFLD(10,"NEW",I) | 
|---|
| 75 | . S LCNT=LCNT+1,^TMP("GMPLEDIT",$J,LCNT,0)=LINE D HI(LCNT,1) | 
|---|
| 76 | . F  S I=$O(GMPFLD(10,"NEW",I)) Q:I'>0  D | 
|---|
| 77 | . . S LINE="             "_GMPFLD(10,"NEW",I) | 
|---|
| 78 | . . S LCNT=LCNT+1,^TMP("GMPLEDIT",$J,LCNT,0)=LINE | 
|---|
| 79 | S VALMCNT=LCNT,^TMP("GMPLEDIT",$J,0)=NUM_U_LCNT,VALMSG=$$MSG^GMPLEDT3 | 
|---|
| 80 | Q | 
|---|
| 81 | ; | 
|---|
| 82 | HI(LINE,COL) ; Hi-lite # | 
|---|
| 83 | D CNTRL^VALM10(LINE,COL,3,IOINHI,IOINORM) | 
|---|
| 84 | Q | 
|---|
| 85 | ; | 
|---|
| 86 | HDR ; Header code | 
|---|
| 87 | N LASTMOD,PAT S PAT=$P(GMPDFN,U,2)_"  ("_$P(GMPDFN,U,3)_")" | 
|---|
| 88 | S LASTMOD=$P(^AUPNPROB(GMPIFN,0),U,3) | 
|---|
| 89 | S LASTMOD="Last Updated: "_$$FMTE^XLFDT(LASTMOD) | 
|---|
| 90 | S VALMHDR(1)=PAT_$$REPEAT^XLFSTR(" ",(79-$L(PAT)-$L(LASTMOD)))_LASTMOD | 
|---|
| 91 | Q | 
|---|
| 92 | ; | 
|---|
| 93 | HELP ; Help code | 
|---|
| 94 | N X,CNT S CNT=+$G(^TMP("GMPLEDIT",$J,0)) | 
|---|
| 95 | W !!?4,"You may change one or more of the above listed values describing" | 
|---|
| 96 | W !?4,"this problem by entering its display number (1-"_CNT_") at the prompt;" | 
|---|
| 97 | W !?4,"you may then enter a new value, or '@' to delete an existing value." | 
|---|
| 98 | W !!?4,"Enter RM to remove this problem from the patient's list completely," | 
|---|
| 99 | W !?4,"SC to save your changes, or Q to simply return to the problem list." | 
|---|
| 100 | W:VALMCNT>11 !?4,"Enter '+' to see more information, as in the problem list." | 
|---|
| 101 | W !!,"Press <return> to continue ... " R X:DTIME | 
|---|
| 102 | S VALMSG=$$MSG^GMPLEDT3,VALMBCK=$S(VALMCC:"",1:"R") | 
|---|
| 103 | Q | 
|---|
| 104 | ; | 
|---|
| 105 | EXIT ; Exit code | 
|---|
| 106 | N DIFFRENT,% G:$D(GMPSAVED) KILL | 
|---|
| 107 | S DIFFRENT=$$EDITED^GMPLEDT2 I 'DIFFRENT G KILL | 
|---|
| 108 | W $C(7),!!,">>>  THIS PROBLEM HAS CHANGED!!" | 
|---|
| 109 | EX1 ;   Ask to Save Changes on Exit | 
|---|
| 110 | W !?5,"Do you want to save these changes" | 
|---|
| 111 | S %=1 D YN^DICN G:(%<0)!(%=2) KILL I %=0 D  G EX1 | 
|---|
| 112 | . W !!?5,"Enter YES or <return> to save the current values listed above" | 
|---|
| 113 | . W !?5,"describing this problem; enter NO to exit without saving.",! | 
|---|
| 114 | W !!,"Saving ..." D EN^GMPLSAVE W " done." | 
|---|
| 115 | KILL ;   Clean-up | 
|---|
| 116 | S CNT=+$G(^TMP("GMPLEDIT",$J,0)) | 
|---|
| 117 | F I=1:1:CNT K XQORM("KEY",I) | 
|---|
| 118 | D CLEAN^VALM10 K XQORM("KEY","$") | 
|---|
| 119 | K GMPFLD,GMPORIG,GMPQUIT,DUOUT,DTOUT,I,CNT | 
|---|
| 120 | Q | 
|---|