1 | PXRMG2E2 ;SLC/JVS -GEC #2 EXTRACT #2 ;7/14/05 08:32
|
---|
2 | ;;2.0;CLINICAL REMINDERS;**2,4**;Feb 04, 2005;Build 21
|
---|
3 | Q
|
---|
4 | ;
|
---|
5 | ;Variables
|
---|
6 | ;CNTREF=The unique counted Referral number
|
---|
7 | ;DA =DA or Ien of the Health Factor
|
---|
8 | ;REF =REFERRAL NUMBER
|
---|
9 | ;ARY =Array that is ordering through
|
---|
10 | Q
|
---|
11 | EN ;Entry Point
|
---|
12 | ;SEND IN
|
---|
13 | ;BDT,EDT,QUARTER
|
---|
14 | ;-----TEMPORARY-----
|
---|
15 | ;K ^TMP("PXRMGEC",$J)
|
---|
16 | ;-----TEMPORARY-----
|
---|
17 | N CR1,CR2,CR3,CR4,CRITER,FOUND,CNT,ARY
|
---|
18 | N M1,M2,M3,BDTEDT
|
---|
19 | ;---TEMPORARY
|
---|
20 | ;S QUARTER=1
|
---|
21 | ;---TEMORARY
|
---|
22 | S CRITER=0,FOUND=0,CNT=0
|
---|
23 | D PROGRAM^PXRMG2E4,CRITER4^PXRMG2E3
|
---|
24 | I $D(YEAR),$D(QUARTER) D
|
---|
25 | .S BDTEDT=$$FMDATE(YEAR,QUARTER)
|
---|
26 | .S BDT=$P(BDTEDT,"^",1)
|
---|
27 | .S EDT=$P(BDTEDT,"^",2)
|
---|
28 | ;
|
---|
29 | D E^PXRMG2E1("HS",1,BDT,EDT,"F",DFNONLY,TPAT)
|
---|
30 | K VDOC
|
---|
31 | ;This creates the following array besides the HS array
|
---|
32 | ;TMP("PXRMGEC",$J,"GEC2",CNTREF,DA,AGE FLAG,APPOINTMENTS,MONTH)=""
|
---|
33 | ;
|
---|
34 | S ARY="^TMP(""PXRMGEC"",$J,""GEC2"")"
|
---|
35 | S REF=0 F S REF=$O(@ARY@(REF)) Q:REF<1 D
|
---|
36 | .I QUARTER=1 S M1=1,M2=2,M3=3
|
---|
37 | .I QUARTER=2 S M1=4,M2=5,M3=6
|
---|
38 | .I QUARTER=3 S M1=7,M2=8,M3=9
|
---|
39 | .I QUARTER=4 S M1=10,M2=11,M3=12
|
---|
40 | .D PRE(REF)
|
---|
41 | D POST
|
---|
42 | Q
|
---|
43 | ;======================================
|
---|
44 | FMDATE(YEAR,QUARTER) ;Get BDT and EDT from year and quarter
|
---|
45 | Q:YEAR=""
|
---|
46 | Q:QUARTER=""
|
---|
47 | Q:QUARTER>4
|
---|
48 | Q:QUARTER=0
|
---|
49 | N YER,QAR,BDT,EDT
|
---|
50 | S YER=YEAR-1700
|
---|
51 | I QUARTER=1 S BDT=YER_"0101",EDT=YER_"0331"
|
---|
52 | I QUARTER=2 S BDT=YER_"0401",EDT=YER_"0630"
|
---|
53 | I QUARTER=3 S BDT=YER_"0701",EDT=YER_"0930"
|
---|
54 | I QUARTER=4 S BDT=YER_"1001",EDT=YER_"1231"
|
---|
55 | Q BDT_"^"_EDT
|
---|
56 | ;======================================
|
---|
57 | GET(REF) ;Get Criteria
|
---|
58 | N DFN,MONTH,NAME,SSN,PROG
|
---|
59 | S (CR1,CR2,CR3,CR4,CRITER)=0
|
---|
60 | S CR1=$$C1^PXRMG2S1(REF)
|
---|
61 | S CR2=$$C2^PXRMG2S1(REF)
|
---|
62 | S CR3=$$C3^PXRMG2S1(REF)
|
---|
63 | S CR4=$$C4^PXRMG2S1(REF)
|
---|
64 | S DFN=$P(CR4,"^",2)
|
---|
65 | S MONTH=$P(CR4,"^",3)
|
---|
66 | S NAME=$P(^DPT(DFN,0),"^",1)
|
---|
67 | S SSN=$P(CR4,"^",4)
|
---|
68 | S DATE=$P(CR4,"^",5)
|
---|
69 | S PROG=$P(CR4,"^",6)
|
---|
70 | S CR4=+CR4
|
---|
71 | I CR1=1 S CRITER="1"
|
---|
72 | I CR2=1 S CRITER=$S(CRITER=0:2,1:CRITER_",2")
|
---|
73 | I CR3=1 S CRITER=$S(CRITER=0:3,1:CRITER_",3")
|
---|
74 | I CR4=1 S CRITER=$S(CRITER=0:4,1:CRITER_",4")
|
---|
75 | S ^TMP("PXRMGEC",$J,"GEC2","RPT",NAME,SSN,DATE,CRITER,PROG)=""
|
---|
76 | Q CRITER
|
---|
77 | ;
|
---|
78 | PRE(REF) ;Pre Process array by Program and Month
|
---|
79 | N ARY
|
---|
80 | S ARY="^TMP(""PXRMGEC"",$J,""GEC2"")"
|
---|
81 | I $D(@ARY@(REF,$O(P441(0)))),$D(@ARY@(REF,$O(P449(0)))) D
|
---|
82 | .S @ARY@("ADHC",$$MONTH(REF,ARY),REF,$$PIECE($$GET(REF)))=$$GET(REF)
|
---|
83 | I $D(@ARY@(REF,$O(P4410(0)))),$D(@ARY@(REF,$O(P449(0)))) D
|
---|
84 | .S @ARY@("HHHA",$$MONTH(REF,ARY),REF,$$PIECE($$GET(REF)))=$$GET(REF)
|
---|
85 | I $D(@ARY@(REF,$O(P4412(0)))),$D(@ARY@(REF,$O(P449(0)))) D
|
---|
86 | .S @ARY@("VAIHR",$$MONTH(REF,ARY),REF,$$PIECE($$GET(REF)))=$$GET(REF)
|
---|
87 | I $D(@ARY@(REF,$O(P451(0)))),$D(@ARY@(REF,$O(P452(0)))) D
|
---|
88 | .S @ARY@("CC",$$MONTH(REF,ARY),REF,$$PIECE($$GET(REF)))=$$GET(REF)
|
---|
89 | Q
|
---|
90 | ;
|
---|
91 | MONTH(REF,ARY) ;Get month out of array
|
---|
92 | Q:REF=""
|
---|
93 | Q:ARY=""
|
---|
94 | N IEN,AGE,APP,DFN,MON
|
---|
95 | S IEN=$O(@ARY@(REF,0))
|
---|
96 | S AGE=$O(@ARY@(REF,IEN,-1))
|
---|
97 | S APP=$O(@ARY@(REF,IEN,AGE,-1))
|
---|
98 | S DFN=$O(@ARY@(REF,IEN,AGE,APP,0))
|
---|
99 | S MON=$O(@ARY@(REF,IEN,AGE,APP,DFN,0))
|
---|
100 | Q MON
|
---|
101 | ;
|
---|
102 | PIECE(CRITER) ;Get the piece in the array the criter goes into
|
---|
103 | N PIECE
|
---|
104 | I CRITER=0 S PIECE=5
|
---|
105 | I CRITER=1 S PIECE=6
|
---|
106 | I CRITER=2 S PIECE=7
|
---|
107 | I CRITER=3 S PIECE=8
|
---|
108 | I CRITER=4 S PIECE=9
|
---|
109 | I CRITER="1,2" S PIECE=10
|
---|
110 | I CRITER="1,3" S PIECE=11
|
---|
111 | I CRITER="1,4" S PIECE=12
|
---|
112 | I CRITER="2,3" S PIECE=13
|
---|
113 | I CRITER="2,4" S PIECE=14
|
---|
114 | I CRITER="3,4" S PIECE=15
|
---|
115 | I CRITER="1,2,3" S PIECE=16
|
---|
116 | I CRITER="1,2,4" S PIECE=17
|
---|
117 | I CRITER="1,3,4" S PIECE=18
|
---|
118 | I CRITER="2,3,4" S PIECE=19
|
---|
119 | I CRITER="1,2,3,4" S PIECE=20
|
---|
120 | Q PIECE
|
---|
121 | ;
|
---|
122 | POST ;Set the Statistical Arrays
|
---|
123 | D START
|
---|
124 | N PROG,MON,REF,PIE,MONX,SITE,STOP,ARY,X,Y
|
---|
125 | S ARY="^TMP(""PXRMGEC"",$J,""GEC2"")"
|
---|
126 | S PROG="ADH" F S PROG=$O(@ARY@(PROG)) Q:PROG="" D
|
---|
127 | .S MON=0 F S MON=$O(@ARY@(PROG,MON)) Q:MON="" D
|
---|
128 | ..Q:MON'=M1&(MON'=M2)&(MON'=M3)
|
---|
129 | ..S CNT=0
|
---|
130 | ..S REF=0 F S REF=$O(@ARY@(PROG,MON,REF)) Q:REF="" D
|
---|
131 | ...S CNT=CNT+1
|
---|
132 | ...S PIE=0 F S PIE=$O(@ARY@(PROG,MON,REF,PIE)) Q:PIE="" D
|
---|
133 | ....I MON=1!(MON=4)!(MON=7)!(MON=10) S MONX=1
|
---|
134 | ....I MON=2!(MON=5)!(MON=8)!(MON=11) S MONX=2
|
---|
135 | ....I MON=3!(MON=6)!(MON=9)!(MON=12) S MONX=3
|
---|
136 | ....S Y=$P($G(STAT(PROG,MONX)),",",PIE)
|
---|
137 | ....S Y=Y+1,$P(STAT(PROG,MONX),",",PIE)=Y
|
---|
138 | ....S $P(STAT(PROG,MONX),",",2)=MON
|
---|
139 | ....S $P(STAT(PROG,MONX),",",4)=CNT
|
---|
140 | Q
|
---|
141 | ;
|
---|
142 | START ; Start the STAT(PROG,MON) ARRAYS
|
---|
143 | N I,SITE,F,S,T
|
---|
144 | I QUARTER=1 S F=1,S=2,T=3
|
---|
145 | I QUARTER=2 S F=4,S=5,T=6
|
---|
146 | I QUARTER=3 S F=7,S=8,T=9
|
---|
147 | I QUARTER=4 S F=10,S=11,T=12
|
---|
148 | S SITE=$P($$SITE^VASITE,"^",3)
|
---|
149 | F I=1:1:3 S STAT("ADHC",I)=SITE_",,"_"ADHC"_",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0" D
|
---|
150 | .I I=1 S $P(STAT("ADHC",I),",",2)=F
|
---|
151 | .I I=2 S $P(STAT("ADHC",I),",",2)=S
|
---|
152 | .I I=3 S $P(STAT("ADHC",I),",",2)=T
|
---|
153 | F I=1:1:3 S STAT("HHHA",I)=SITE_",,"_"HHHA"_",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0" D
|
---|
154 | .I I=1 S $P(STAT("HHHA",I),",",2)=F
|
---|
155 | .I I=2 S $P(STAT("HHHA",I),",",2)=S
|
---|
156 | .I I=3 S $P(STAT("HHHA",I),",",2)=T
|
---|
157 | F I=1:1:3 S STAT("CC",I)=SITE_",,"_"CC"_",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0" D
|
---|
158 | .I I=1 S $P(STAT("CC",I),",",2)=F
|
---|
159 | .I I=2 S $P(STAT("CC",I),",",2)=S
|
---|
160 | .I I=3 S $P(STAT("CC",I),",",2)=T
|
---|
161 | F I=1:1:3 S STAT("VAIHR",I)=SITE_",,"_"VAIHR"_",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0" D
|
---|
162 | .I I=1 S $P(STAT("VAIHR",I),",",2)=F
|
---|
163 | .I I=2 S $P(STAT("VAIHR",I),",",2)=S
|
---|
164 | .I I=3 S $P(STAT("VAIHR",I),",",2)=T
|
---|
165 | Q
|
---|
166 | WRITE ;Write to screen the STAT array
|
---|
167 | N PROG,MON
|
---|
168 | W !,"An Email containing this information will be sent to all those who are listed"
|
---|
169 | W !,"in the ""G.GEC2 NATIONAL ROLLUP"" mail group",!
|
---|
170 | S PROG="AD" F S PROG=$O(STAT(PROG)) Q:PROG="" D
|
---|
171 | .S MON=0 F S MON=$O(STAT(PROG,MON)) Q:MON="" D
|
---|
172 | ..W !,$G(STAT(PROG,MON))
|
---|
173 | W !!,"The above information is a statistical compilation of the"
|
---|
174 | W !,"information seen in the local view of this option."
|
---|
175 | W !!,"Thanks in advance",!!
|
---|
176 | D MAIL^PXRMG2M1
|
---|
177 | D EXIT
|
---|
178 | Q
|
---|
179 | ;=================================================
|
---|
180 | EXIT ;Exit and Clean up Variables
|
---|
181 | K C1101,C1107,C1108
|
---|
182 | K C1410,C1412,C1414,C142,C144,C146,C148,C166,C171
|
---|
183 | K C2110,C2114,C2118,C212,C2120,C214,C216,C218,C221,C224,C226
|
---|
184 | K C2710,C272,C274,C276,C278,C286
|
---|
185 | K P441,P4410,P4412,P449,P451,P452
|
---|
186 | K STAT
|
---|
187 | Q
|
---|