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
|
---|