1 | PXRMDEV ; SLC/PKR - This is a driver for testing Clinical Reminders.;05/04/2006
|
---|
2 | ;;2.0;CLINICAL REMINDERS;**4**;Feb 04, 2005;Build 21
|
---|
3 | ;
|
---|
4 | ;==================================================
|
---|
5 | CMOUT ;Do formatted Clinical Maintenance output.
|
---|
6 | N DUE,DUECOL,HIST,LAST,LASTCOL,LNUM,RIEN,RNAME,STATUS,STATCOL,TEMP,TYPE
|
---|
7 | W !!,"Formatted Output:"
|
---|
8 | S RIEN=$O(^TMP("PXRHM",$J,""))
|
---|
9 | S RNAME=$O(^TMP("PXRHM",$J,RIEN,""))
|
---|
10 | S TEMP=$G(^TMP("PXRHM",$J,RIEN,RNAME))
|
---|
11 | S STATUS=$P(TEMP,U,1)
|
---|
12 | S DUE=$$EDATE^PXRMDATE($P(TEMP,U,2))
|
---|
13 | S LAST=$$EDATE^PXRMDATE($P(TEMP,U,3))
|
---|
14 | S STATCOL=41-($L(STATUS)/2)
|
---|
15 | S DUECOL=53-($L(DUE)/2)
|
---|
16 | S LASTCOL=67-($L(LAST)/2)
|
---|
17 | W !!,?36,"--STATUS--",?47,"--DUE DATE--",?61,"--LAST DONE--",!
|
---|
18 | W !,RNAME,?STATCOL,STATUS,?DUECOL,DUE,?LASTCOL,LAST,!
|
---|
19 | S LNUM=0
|
---|
20 | F S LNUM=$O(^TMP("PXRHM",$J,RIEN,RNAME,"TXT",LNUM)) Q:LNUM="" D
|
---|
21 | . W !,^TMP("PXRHM",$J,RIEN,RNAME,"TXT",LNUM)
|
---|
22 | Q
|
---|
23 | ;
|
---|
24 | ;==================================================
|
---|
25 | DEB ;Prompt for patient and reminder by name input component.
|
---|
26 | N DATE,DFN,DIC,DIR,DIROUT,DTOUT,DUOUT,PXRMITEM,PXRHM,PXRMTDEB,X,Y
|
---|
27 | S DIC=2,DIC("A")="Select Patient: "
|
---|
28 | S DIC(0)="AEQMZ"
|
---|
29 | D ^DIC
|
---|
30 | I $D(DTOUT)!$D(DUOUT) Q
|
---|
31 | S DFN=+$P(Y,U,1)
|
---|
32 | I DFN=-1 W !,"No patient selected!" Q
|
---|
33 | S DIC=811.9,DIC("A")="Select Reminder: "
|
---|
34 | S DIC("S")="I $P(^PXD(811.9,Y,100),U,4)'[""L"""
|
---|
35 | D ^DIC
|
---|
36 | I $D(DIROUT)!$D(DIRUT) Q
|
---|
37 | I $D(DTOUT)!$D(DUOUT) Q
|
---|
38 | S PXRMITEM=+$P(Y,U,1)
|
---|
39 | I PXRMITEM=-1 W !,"No reminder selected!" Q
|
---|
40 | S DIR(0)="LA"_U_"0"
|
---|
41 | S DIR("A")="Enter component number 0, 1, 5, 10, 11, 12: "
|
---|
42 | D ^DIR
|
---|
43 | I $D(DIROUT)!$D(DIRUT) Q
|
---|
44 | I $D(DTOUT)!$D(DUOUT) Q
|
---|
45 | I X="" S X=5
|
---|
46 | S PXRHM=X
|
---|
47 | S DIR(0)="DA^"_0_"::ETX"
|
---|
48 | S DIR("A")="Enter date for reminder evaluation: "
|
---|
49 | S DIR("B")=$$FMTE^XLFDT($$DT^XLFDT,"D")
|
---|
50 | S DIR("PRE")="S X=$$DCHECK^PXRMDATE(X) K:X=-1 X"
|
---|
51 | W !
|
---|
52 | D ^DIR K DIR
|
---|
53 | I $D(DIROUT)!$D(DIRUT) Q
|
---|
54 | I $D(DTOUT)!$D(DUOUT) Q
|
---|
55 | S DATE=Y
|
---|
56 | I $D(^PXD(811.9,PXRMITEM,20,"E","PXRMD(811.5,")) S PXRMTDEB=$$ASKYN^PXRMEUT("N","Display all term findings","","")
|
---|
57 | D DOREM(DFN,PXRMITEM,PXRHM,DATE)
|
---|
58 | Q
|
---|
59 | ;
|
---|
60 | ;==================================================
|
---|
61 | DEV ;Prompt for patient and reminder by name and evaluation date.
|
---|
62 | N DATE,DFN,DIC,DIROUT,DIRUT,DTOUT,DUOUT,PXRMITEM,PXRHM,PXRMTDEB,REF,X,Y
|
---|
63 | S DIC=2,DIC("A")="Select Patient: "
|
---|
64 | S DIC(0)="AEQMZ"
|
---|
65 | D ^DIC
|
---|
66 | I $D(DIROUT)!$D(DIRUT) Q
|
---|
67 | I $D(DTOUT)!$D(DUOUT) Q
|
---|
68 | S DFN=+$P(Y,U,1)
|
---|
69 | S DIC=811.9,DIC("A")="Select Reminder: "
|
---|
70 | S DIC("S")="I $P(^PXD(811.9,Y,100),U,4)'[""L"""
|
---|
71 | D ^DIC
|
---|
72 | I $D(DIROUT)!$D(DIRUT) Q
|
---|
73 | I $D(DTOUT)!$D(DUOUT) Q
|
---|
74 | S PXRMITEM=+$P(Y,U,1)
|
---|
75 | S PXRHM=5
|
---|
76 | S DIR(0)="DA^"_0_"::ETX"
|
---|
77 | S DIR("A")="Enter date for reminder evaluation: "
|
---|
78 | S DIR("B")=$$FMTE^XLFDT($$DT^XLFDT,"D")
|
---|
79 | S DIR("PRE")="S X=$$DCHECK^PXRMDATE(X) K:X=-1 X"
|
---|
80 | W !
|
---|
81 | D ^DIR K DIR
|
---|
82 | I $D(DIROUT)!$D(DIRUT) Q
|
---|
83 | I $D(DTOUT)!$D(DUOUT) Q
|
---|
84 | S DATE=Y
|
---|
85 | I $D(^PXD(811.9,PXRMITEM,20,"E","PXRMD(811.5,")) S PXRMTDEB=$$ASKYN^PXRMEUT("N","Display all term findings","","")
|
---|
86 | D DOREM(DFN,PXRMITEM,PXRHM,DATE)
|
---|
87 | Q
|
---|
88 | ;
|
---|
89 | ;==================================================
|
---|
90 | DOREM(DFN,PXRMITEM,PXRMHM,DATE) ;Do the reminder
|
---|
91 | N DEFARR,FIEVAL,FINDING,PXRMDEBG,PXRMID,REF,TFIEVAL
|
---|
92 | ;This is a debugging run so set PXRMDEBG.
|
---|
93 | S PXRMDEBG=1
|
---|
94 | D DEF^PXRMLDR(PXRMITEM,.DEFARR)
|
---|
95 | I +$G(DATE)=0 D EVAL^PXRM(DFN,.DEFARR,PXRHM,1,.FIEVAL)
|
---|
96 | I +$G(DATE)>0 D EVAL^PXRM(DFN,.DEFARR,PXRHM,1,.FIEVAL,DATE)
|
---|
97 | ;
|
---|
98 | W !!,"The elements of the FIEVAL array are:"
|
---|
99 | S REF="FIEVAL"
|
---|
100 | D AWRITE^PXRMUTIL(REF)
|
---|
101 | ;
|
---|
102 | I $G(PXRMTDEB) D
|
---|
103 | . W !!,"Term findings:"
|
---|
104 | . S REF="TFIEVAL"
|
---|
105 | . S FINDING=0
|
---|
106 | . F S FINDING=$O(^TMP("PXRMTDEB",$J,FINDING)) Q:FINDING="" D
|
---|
107 | .. K TFIEVAL M TFIEVAL(FINDING)=^TMP("PXRMTDEB",$J,FINDING)
|
---|
108 | .. W !,"Finding ",FINDING,":"
|
---|
109 | .. D AWRITE^PXRMUTIL(REF)
|
---|
110 | . K ^TMP("PXRMTDEB",$J)
|
---|
111 | ;
|
---|
112 | W !!,"The elements of the ^TMP(PXRMID,$J) array are:"
|
---|
113 | I $D(PXRMID) S REF="^TMP(PXRMID,$J)" D AWRITE^PXRMUTIL(REF) K ^TMP(PXRMID,$J)
|
---|
114 | ;
|
---|
115 | W !!,"The elements of the ^TMP(""PXRHM"",$J) array are:"
|
---|
116 | S REF="^TMP(""PXRHM"",$J)"
|
---|
117 | D AWRITE^PXRMUTIL(REF)
|
---|
118 | ;
|
---|
119 | I $D(^TMP("PXRHM",$J)) D CMOUT
|
---|
120 | I PXRHM=12 D MHVCOUT
|
---|
121 | K ^TMP("PXRM",$J),^TMP("PXRHM",$J),^TMP("PXRMMHVC",$J)
|
---|
122 | Q
|
---|
123 | ;==================================================
|
---|
124 | MHVCOUT ;Do formatted MHV combined output.
|
---|
125 | N DUE,DUECOL,HIST,LAST,LASTCOL,LNUM,RIEN,RNAME,STATUS,STATCOL,TEMP,TYPE
|
---|
126 | W !!,"Formatted Output:"
|
---|
127 | S RIEN=$O(^TMP("PXRMMHVC",$J,""))
|
---|
128 | S TEMP=^TMP("PXRMMHVC",$J,RIEN,"STATUS")
|
---|
129 | S STATUS=$P(TEMP,U,1)
|
---|
130 | S DUE=$$EDATE^PXRMDATE($P(TEMP,U,2))
|
---|
131 | S LAST=$$EDATE^PXRMDATE($P(TEMP,U,3))
|
---|
132 | S DUE=$$EDATE^PXRMDATE($P(TEMP,U,2))
|
---|
133 | S LAST=$$EDATE^PXRMDATE($P(TEMP,U,3))
|
---|
134 | S STATCOL=41-($L(STATUS)/2)
|
---|
135 | S DUECOL=53-($L(DUE)/2)
|
---|
136 | S LASTCOL=67-($L(LAST)/2)
|
---|
137 | S RNAME=$P(^PXD(811.9,RIEN,0),U,3)
|
---|
138 | I RNAME="" S RNAME=$P(^PXD(811.9,RIEN,0),U,1)
|
---|
139 | W !!,?36,"--STATUS--",?47,"--DUE DATE--",?61,"--LAST DONE--",!
|
---|
140 | W !,RNAME,?STATCOL,STATUS,?DUECOL,DUE,?LASTCOL,LAST,!
|
---|
141 | W !!,"---------- Detailed Output ----------"
|
---|
142 | S LNUM=0
|
---|
143 | F S LNUM=$O(^TMP("PXRMMHVC",$J,RIEN,"DETAIL",LNUM)) Q:LNUM="" D
|
---|
144 | . W !,^TMP("PXRMMHVC",$J,RIEN,"DETAIL",LNUM)
|
---|
145 | W !!,"---------- Summary Output ----------"
|
---|
146 | S LNUM=0
|
---|
147 | F S LNUM=$O(^TMP("PXRMMHVC",$J,RIEN,"SUMMARY",LNUM)) Q:LNUM="" D
|
---|
148 | . W !,^TMP("PXRMMHVC",$J,RIEN,"SUMMARY",LNUM)
|
---|
149 | Q
|
---|
150 | ;
|
---|