1 | GMPLPRNT ; SLC/MKB,KER -- Problem List prints/displays; 04/15/2002
|
---|
2 | ;;2.0;Problem List;**1,13,26**;Aug 25, 1994
|
---|
3 | ;
|
---|
4 | ; External References
|
---|
5 | ; DBIA 10090 ^DIC(4
|
---|
6 | ; DBIA 10082 ^ICD9(
|
---|
7 | ; DBIA 10086 ^%ZIS
|
---|
8 | ; DBIA 10086 HOME^%ZIS
|
---|
9 | ; DBIA 10089 ^%ZISC
|
---|
10 | ; DBIA 10063 ^%ZTLOAD
|
---|
11 | ; DBIA 10026 ^DIR
|
---|
12 | ; DBIA 10061 OERR^VADPT
|
---|
13 | ; DBIA 10116 CLEAR^VALM1
|
---|
14 | ; DBIA 10103 $$FMTE^XLFDT
|
---|
15 | ; DBIA 10103 $$NOW^XLFDT
|
---|
16 | ; DBIA 10104 $$REPEAT^XLFSTR
|
---|
17 | ;
|
---|
18 | EN ; Print/Display (Main)
|
---|
19 | N DIR,X,Y S VALMBCK=$S(VALMCC:"",1:"R") W !
|
---|
20 | I '(($L(GMPLVIEW("ACT")))!(GMPLVIEW("PROV"))!($L(GMPLVIEW("VIEW"),"/")>2)) S Y="A" G EN1
|
---|
21 | S DIR(0)="SAOM^C:CURRENT VIEW;A:ALL PROBLEMS;"
|
---|
22 | S DIR("A")="Print (C)urrently displayed problems only, or include (A)ll problems? "
|
---|
23 | S DIR("?",1)="Enter C to print a copy of your currently displayed view"
|
---|
24 | S DIR("?",2)="of this patient's list; to print a complete list of all"
|
---|
25 | S DIR("?",3)="active and inactive problems, which may be included in"
|
---|
26 | S DIR("?")="the patient's chart, select A."
|
---|
27 | D ^DIR G:$D(DTOUT)!($D(DUOUT))!(Y="") ENQ
|
---|
28 | EN1 ; Print View
|
---|
29 | W ! D @$S(Y="C":"LIST",1:"VAF")
|
---|
30 | I GMPRT'>0 W !!,"No problems found.",!,$C(7) H 1 G ENQ
|
---|
31 | D DEVICE G:$D(GMPQUIT) ENQ
|
---|
32 | D CLEAR^VALM1,PRT S VALMBCK="R"
|
---|
33 | ENQ ; Quit Print/Display
|
---|
34 | D KILL^GMPLX S VALMSG=$$MSG^GMPLX Q
|
---|
35 | ;
|
---|
36 | VAF ; Build Chart Copy
|
---|
37 | N TOTAL,VIEW K GMPLCURR S (TOTAL,GMPRT)=0
|
---|
38 | Q:'$D(^AUPNPROB("AC",+GMPDFN))
|
---|
39 | S (VIEW("ACT"),VIEW("VIEW"))="",VIEW("PROV")=0
|
---|
40 | D GETPLIST^GMPLMGR1(.GMPRT,.TOTAL,.VIEW)
|
---|
41 | S GMPRT=TOTAL
|
---|
42 | Q
|
---|
43 | ;
|
---|
44 | LIST ; Build Current View
|
---|
45 | S GMPLCURR=1,GMPRT=0 Q:+$G(GMPCOUNT)'>0 N I,IFN
|
---|
46 | W !,"One moment, please ..."
|
---|
47 | F I=0:0 S I=$O(^TMP("GMPLIDX",$J,I)) Q:I'>0 D
|
---|
48 | . S IFN=$P($G(^TMP("GMPLIDX",$J,I)),U,2) Q:IFN'>0
|
---|
49 | . S GMPRT=GMPRT+1,GMPRT(I)=IFN W "."
|
---|
50 | Q
|
---|
51 | ;
|
---|
52 | DEVICE ; Get Device
|
---|
53 | S %ZIS="Q",%ZIS("B")="" D ^%ZIS I POP S GMPQUIT=1 G DQ
|
---|
54 | I '$D(GMPLCURR) K GMPRINT
|
---|
55 | I $D(IO("Q")) D
|
---|
56 | . S ZTRTN="PRT^GMPLPRNT",ZTDESC="PROBLEM LIST OF "_$P(GMPDFN,U,2)
|
---|
57 | . S (ZTSAVE("GMPRT"),ZTSAVE("GMPRT("),ZTSAVE("GMPDFN"),ZTSAVE("GMPVAMC"))=""
|
---|
58 | . S:$D(GMPLCURR) ZTSAVE("GMPLCURR")="" S ZTDTH=$H
|
---|
59 | . D ^%ZTLOAD,HOME^%ZIS S:$D(ZTSK) GMPQUIT=1
|
---|
60 | DQ ; Quit Device
|
---|
61 | K IO("Q"),POP,%ZIS,ZTRTN,ZTDESC,ZTSAVE,ZTSK
|
---|
62 | Q
|
---|
63 | ;
|
---|
64 | HDR ; Header Code
|
---|
65 | N PAGE S PAGE="Page: "_GMPLPAGE,GMPLPAGE=GMPLPAGE+1
|
---|
66 | W $C(13),$$REPEAT^XLFSTR("-",79),!
|
---|
67 | I IOST?1"P".E W:$D(GMPLCURR) "** NOT for " W "Medical Record" W:$D(GMPLCURR) " **"
|
---|
68 | I IOST'?1"P".E W $P(GMPDFN,U,2)_" ("_$P(GMPDFN,U,3)_")"
|
---|
69 | W ?41,"| " W:$D(GMPLCURR) "PARTIAL "
|
---|
70 | W "PROBLEM LIST",?(79-$L(PAGE)),PAGE,!
|
---|
71 | W $$REPEAT^XLFSTR("-",79),!
|
---|
72 | W !," Date",?63,"Date of Date"
|
---|
73 | W !," Recorded Problems",?64,"Onset Resolved"
|
---|
74 | W !,$$REPEAT^XLFSTR("-",79)
|
---|
75 | Q
|
---|
76 | ;
|
---|
77 | FTR ; Footer Code
|
---|
78 | N I,SITE,DFN,VA,VADM,LOC,DATE,FORM
|
---|
79 | F I=1:1:(IOSL-$Y-6) W !
|
---|
80 | S SITE=$O(^DIC(4,"D",+GMPVAMC,0)),SITE=$P($G(^DIC(4,+SITE,0)),U)
|
---|
81 | S:SITE'["VAMC" SITE=SITE_" VAMC"
|
---|
82 | S DFN=+GMPDFN D OERR^VADPT
|
---|
83 | S LOC="Pt Loc: "_$S(VAIN(4)]"":$P(VAIN(4),U,2)_" "_VAIN(5),1:"OUTPATIENT") K VAIN
|
---|
84 | I $L(LOC)>51 S LOC=$E(LOC,1,51),FORM="VAF10-141"
|
---|
85 | E S FORM="VA FORM 10-1415"
|
---|
86 | W !,$S($D(GMPLFLAG):"$ = Requires verification by provider",1:"")
|
---|
87 | W !,$$REPEAT^XLFSTR("-",79)
|
---|
88 | W !,$P(GMPDFN,U,2),?(79-$L(SITE)\2),SITE
|
---|
89 | S DATE=$$FMTE^XLFDT($E(($$NOW^XLFDT),1,12),2)
|
---|
90 | S DATE="Printed:"_$P(DATE,"@")_" "_$P(DATE,"@",2)
|
---|
91 | W ?(79-$L(DATE)),DATE
|
---|
92 | W !,VA("PID"),?(79-$L(LOC)\2),LOC,?(79-$L(FORM)),FORM
|
---|
93 | W !,$$REPEAT^XLFSTR("-",79),@IOF
|
---|
94 | Q
|
---|
95 | ;
|
---|
96 | RETURN() ; End of page
|
---|
97 | N X,Y,DIR,I F I=1:1:(IOSL-$Y-3) W !
|
---|
98 | S DIR(0)="E" D ^DIR
|
---|
99 | Q +Y
|
---|
100 | ;
|
---|
101 | PRT ; Body of Problem List
|
---|
102 | U IO N I,IFN,GMPLPAGE,GMPLFLAG S GMPLPAGE=1 D HDR
|
---|
103 | F I=0:0 S I=$O(GMPRT(I)) Q:I'>0 D Q:$D(GMPQUIT)
|
---|
104 | . S IFN=GMPRT(I) Q:IFN'>0
|
---|
105 | . D PROB(IFN,I)
|
---|
106 | D FTR:IOST?1"P".E I '$D(GMPQUIT),IOST?1"C".E S I=$$RETURN
|
---|
107 | I $D(ZTQUEUED) S ZTREQ="@" K GMPDFN,GMPLCURR,GMPQUIT,GMPRT
|
---|
108 | D ^%ZISC
|
---|
109 | Q
|
---|
110 | ;
|
---|
111 | PROB(DA,NUM) ; Get Problem Text Line
|
---|
112 | N GMPL0,GMPL1,ONSET,DATE,TEXT,NOTES,J,RESOLVED,X,LINES,PROB,SCS,SP
|
---|
113 | S GMPL0=$G(^AUPNPROB(DA,0)),GMPL1=$G(^(1)) Q:GMPL0="" Q:GMPL1=""
|
---|
114 | S ONSET=$P(GMPL0,U,13),DATE=$P(GMPL1,U,9),RESOLVED=$P(GMPL1,U,7)
|
---|
115 | D SCS^GMPLX1(+DA,.SCS) S SP=$G(SCS(3))
|
---|
116 | I 'DATE S DATE=$P(GMPL0,U,8)
|
---|
117 | S PROB=$$PROBTEXT^GMPLX(DA)
|
---|
118 | S PROB=PROB_" ("_$P($G(^ICD9(+GMPL0,0)),U)_")"
|
---|
119 | I $P($G(^AUPNPROB(DA,1)),"^",14)="A" S PROB="*"_PROB
|
---|
120 | E S PROB=" "_PROB
|
---|
121 | D WRAP^GMPLX(PROB,50,.TEXT)
|
---|
122 | D NOTES(DA) S LINES=TEXT+NOTES+1
|
---|
123 | I ($Y+LINES)>(IOSL-7) D Q:$D(GMPQUIT)
|
---|
124 | . I IOST?1"P".E D FTR,HDR Q
|
---|
125 | . I $$RETURN W @IOF D HDR Q
|
---|
126 | . S GMPQUIT=1
|
---|
127 | PR1 ; Write Problem Text Line
|
---|
128 | W !!,$E(" ",1,3-$L(NUM))_NUM_". "_$J($$EXTDT^GMPLX(DATE),8)
|
---|
129 | I $P(GMPL1,U,2)="T",$P($G(^GMPL(125.99,1,0)),U,2) W ?14,"$" S GMPLFLAG=1
|
---|
130 | W ?15,TEXT(1),?62,$J($$EXTDT^GMPLX(ONSET),8)
|
---|
131 | I $P(GMPL0,U,12)="I" W ?71,$S(RESOLVED:$J($$EXTDT^GMPLX(RESOLVED),8),1:"unknown")
|
---|
132 | I TEXT>1 F J=2:1:TEXT W !?15,TEXT(J)
|
---|
133 | Q:'NOTES S DATE=$P(DATE,".")
|
---|
134 | F J=1:1:NOTES S X=$S(DATE'=$P(NOTES(J),U):$$EXTDT^GMPLX($P(NOTES(J),U)),1:"") W !?5,$J(X,8),?17,$P(NOTES(J),U,2) S DATE=$P(NOTES(J),U)
|
---|
135 | Q
|
---|
136 | NOTES(IFN) ; Place Comments in NOTES array
|
---|
137 | N I,NOTE,DATE,TEXT,FAC,NIFN S (NOTES,I)=0
|
---|
138 | Q:'$D(^AUPNPROB(IFN,11))
|
---|
139 | S FAC=$O(^AUPNPROB(IFN,11,"B",+GMPVAMC,0)) Q:FAC'>0
|
---|
140 | F NIFN=0:0 S NIFN=$O(^AUPNPROB(IFN,11,FAC,11,"B",NIFN)) Q:NIFN'>0 D
|
---|
141 | . S NOTE=$G(^AUPNPROB(IFN,11,FAC,11,NIFN,0)) Q:NOTE=""
|
---|
142 | . S DATE=$P(NOTE,U,5),TEXT=$P(NOTE,U,3),I=I+1
|
---|
143 | . S NOTES(I)=$P(DATE,".")_U_TEXT
|
---|
144 | S NOTES=I
|
---|
145 | Q
|
---|