source: FOIAVistA/trunk/r/HEALTH_LEVEL_SEVEN-HL/HLEMST.m@ 1250

Last change on this file since 1250 was 628, checked in by George Lilly, 15 years ago

initial load of FOIAVistA 6/30/08 version

File size: 7.9 KB
Line 
1HLEMST ;ALB/CJM -ListManager Screen for displaying an Event Statistics;12 JUN 1997 10:00 am
2 ;;1.6;HEALTH LEVEL SEVEN;**109**;Oct 13,1995
3 ;
4EN ;Entry point to viewing a Event Statistics
5 ;Input: EVENT is the ien of an event
6 ;Output: none
7 ;
8 N IDX,BEGIN
9 I $G(PROFILE),$D(PROFILE("SITES")),$D(PROFILE("TYPES"))
10 E N PROFILE S PROFILE=$$PROFILE^HLEMSL() Q:'PROFILE S PROFILE=$$GET^HLEMP(PROFILE,.PROFILE)
11 S BEGIN=$$ASKBEGIN()
12 Q:'BEGIN
13 ;
14 S IDX="^TMP(""HLEM"",$J,""STATISTICS"")"
15 K @IDX
16 D WAIT^DICD
17 D EN^VALM("HLEM DISPLAY STATISTICS")
18 ;
19 K @IDX
20 Q
21 ;
22 ;
23HDR ;Header code
24 S VALMHDR(1)="Year Month Day Hour Event Count"
25 Q
26 ;
27INIT ;Init variables and list array
28 N ARY
29 S ARY="^TMP($J,""HLSTATS"")"
30 S VALMSG="USER PROFILE: "_$G(PROFILE("NAME"))_" STARTING: "_$$FMTE^XLFDT(BEGIN)
31 D SETUP(BEGIN,ARY,.PROFILE)
32 D DISPLAY(ARY,IDX)
33 K @ARY
34 D HDR
35 S VALMBCK="R"
36 Q
37 ;
38SETUP(START,ARY,PROFILE) ;
39 ;sets up a work array with the required statistics
40 ;START is the starting date
41 ;
42 N SITE,TYPE,IDX
43 K @ARY
44 S SITE=0
45 S START("YEAR")=1700+(+$E(START,1,3)),START("MONTH")=+$E(START,4,5),START("DAY")=+$E(START,6,7),START("HOUR")=$E($P(START,".",2),1,2)
46 S IDX="^HLEV(776.4,""AF"")"
47 F S SITE=$O(@IDX@(SITE)) Q:'SITE D:$G(PROFILE("ALL SITES"))!$D(PROFILE("SITES",SITE))
48 .S SITE("NAME")=$$STATION^HLEMSU(SITE)
49 .Q:'$L(SITE("NAME"))
50 .S $P(SITE("NAME"),"^",3)=SITE
51 .S TYPE=0
52 .F S TYPE=$O(@IDX@(SITE,TYPE)) Q:'TYPE D:PROFILE("ALL TYPES")!$D(PROFILE("TYPES",TYPE))
53 ..S TYPE("NAME")=$$CODE^HLEMT(TYPE)
54 ..S:(+TYPE("NAME")=TYPE("NAME")) TYPE("NAME")=$E($P($G(^HLEV(776.3,TYPE,4)),"^"),1,40)
55 ..Q:'$L(TYPE("NAME"))
56 ..N IDX S IDX="^HLEV(776.4,""AF"",SITE,TYPE,""RECEIVED"")"
57 ..D YEAR(.SITE,.TYPE,.START)
58 Q
59 ;
60YEAR(SITE,TYPE,START) ;
61 N YEAR
62 S YEAR=START("YEAR")-1
63 F S YEAR=$O(@IDX@("YEAR",YEAR)) Q:'YEAR D:(YEAR'<START("YEAR"))
64 .D:(YEAR>START("YEAR"))
65 ..S @ARY@(SITE("NAME"),YEAR)=$G(@ARY@(SITE("NAME"),YEAR))+$G(@IDX@("YEAR",YEAR))
66 ..S @ARY@(SITE("NAME"),YEAR,"TYPE",TYPE("NAME"))=$G(@ARY@(SITE("NAME"),YEAR,"TYPE",TYPE("NAME")))+$G(@IDX@("YEAR",YEAR))
67 .D MONTH(.SITE,.TYPE,.START,YEAR)
68 Q
69 ;
70MONTH(SITE,TYPE,START,YEAR) ;
71 N MONTH
72 S MONTH=START("MONTH")-1
73 F S MONTH=$O(@IDX@("YEAR",YEAR,"MONTH",MONTH)) Q:'MONTH D:(YEAR>START("YEAR"))!(YEAR=START("YEAR")&(MONTH'<START("MONTH")))
74 .D:(MONTH>START("MONTH"))!(YEAR>START("YEAR"))
75 ..S @ARY@(SITE("NAME"),YEAR,MONTH)=$G(@ARY@(SITE("NAME"),YEAR,MONTH))+$G(@IDX@("YEAR",YEAR,"MONTH",MONTH))
76 ..S @ARY@(SITE("NAME"),YEAR,MONTH,"TYPE",TYPE("NAME"))=$G(@ARY@(SITE("NAME"),YEAR,MONTH,"TYPE",TYPE("NAME")))+$G(@IDX@("YEAR",YEAR,"MONTH",MONTH))
77 .D DAY(.SITE,.TYPE,.START,YEAR,MONTH)
78 Q
79 ;
80DAY(SITE,TYPE,START,YEAR,MONTH) ;
81 N DAY
82 S DAY=0
83 F S DAY=$O(@IDX@("YEAR",YEAR,"MONTH",MONTH,"DAY",DAY)) Q:'DAY Q:START>((YEAR-1700)_$$RJ^XLFSTR(MONTH,2,"0")_$$RJ^XLFSTR(DAY,2,"0")) D
84 .S @ARY@(SITE("NAME"),YEAR,MONTH,DAY)=$G(@ARY@(SITE("NAME"),YEAR,MONTH,DAY))+$G(@IDX@("YEAR",YEAR,"MONTH",MONTH,"DAY",DAY))
85 .S @ARY@(SITE("NAME"),YEAR,MONTH,DAY,"TYPE",TYPE("NAME"))=$G(@ARY@(SITE("NAME"),YEAR,MONTH,DAY,"TYPE",TYPE("NAME")))+$G(@IDX@("YEAR",YEAR,"MONTH",MONTH,"DAY",DAY))
86 .D HOUR(.SITE,.TYPE,.START,YEAR,MONTH,DAY)
87 Q
88 ;
89HOUR(SITE,TYPE,START,YEAR,MONTH,DAY) ;
90 N HOUR
91 S HOUR=""
92 F S HOUR=$O(@IDX@("YEAR",YEAR,"MONTH",MONTH,"DAY",DAY,"HOUR",HOUR)) Q:(HOUR="") D:(HOUR'<START("HOUR"))
93 .S @ARY@(SITE("NAME"),YEAR,MONTH,DAY,HOUR)=$G(@ARY@(SITE("NAME"),YEAR,MONTH,DAY,HOUR))+$G(@IDX@("YEAR",YEAR,"MONTH",MONTH,"DAY",DAY,"HOUR",HOUR))
94 .S @ARY@(SITE("NAME"),YEAR,MONTH,DAY,HOUR,"TYPE",TYPE("NAME"))=$G(@ARY@(SITE("NAME"),YEAR,MONTH,DAY,HOUR,"TYPE",TYPE("NAME")))+$G(@IDX@("YEAR",YEAR,"MONTH",MONTH,"DAY",DAY,"HOUR",HOUR))
95 Q
96 ;
97DISPLAY(ARY,IDX) ;Build event statistics screen
98 N YEAR,SITE
99 D CLEAN^VALM10
100 K @IDX,VALMHDR
101 S VALMBG=1,VALMCNT=0
102 ;
103 S SITE=""
104 I '$O(@ARY@(SITE)),$$SET^HLEMSU(1,"There are no statistics for this profile and date range!",10,"H")
105 E F S SITE=$O(@ARY@(SITE)) Q:(SITE="") D
106 .I VALMCNT,$$SET^HLEMSU(VALMCNT,$G(@IDX@(VALMCNT,0)),1,"U")
107 .S VALMCNT=$$SET^HLEMSU($$INC^HLEMU(.VALMCNT),$$LJ^XLFSTR($P(SITE,"^"),30)_$$LJ^XLFSTR("Station #: "_$P(SITE,"^",2),50),1,"H")
108 .S @IDX@("SITE",$P(SITE,"^"))=VALMCNT
109 .S @IDX@("SITE",$P(SITE,"^",3))=VALMCNT
110 .S YEAR=";"
111 .F S YEAR=$O(@ARY@(SITE,YEAR),-1) Q:'YEAR D DYEAR(ARY,IDX,SITE,YEAR)
112 ;Build header
113 D HDR
114 Q
115 ;
116DYEAR(ARY,IDX,SITE,YEAR) ;
117 N EVENT,MONTH
118 S VALMCNT=$$SET^HLEMSU($$INC^HLEMU(.VALMCNT),$$LJ^XLFSTR(YEAR,71)_$$LJ^XLFSTR($G(@ARY@(SITE,YEAR)),20),1)
119 S EVENT=""
120 F S EVENT=$O(@ARY@(SITE,YEAR,"TYPE",EVENT)) Q:EVENT="" D
121 .S VALMCNT=$$SET^HLEMSU($$INC^HLEMU(.VALMCNT),$$LJ^XLFSTR(EVENT,40)_$$LJ^XLFSTR($G(@ARY@(SITE,YEAR,"TYPE",EVENT)),20),32)
122 S MONTH=";"
123 F S MONTH=$O(@ARY@(SITE,YEAR,MONTH),-1) Q:(MONTH="") D
124 .D DMONTH(ARY,IDX,SITE,YEAR,MONTH)
125 Q
126 ;
127DMONTH(ARY,IDX,SITE,YEAR,MONTH) ;
128 N EVENT,DAY
129 S VALMCNT=$$SET^HLEMSU($$INC^HLEMU(.VALMCNT),$$LJ^XLFSTR($$MONTHTXT(MONTH),64)_$$LJ^XLFSTR($G(@ARY@(SITE,YEAR,MONTH)),20),8)
130 S EVENT=""
131 F S EVENT=$O(@ARY@(SITE,YEAR,MONTH,"TYPE",EVENT)) Q:EVENT="" D
132 .S VALMCNT=$$SET^HLEMSU($$INC^HLEMU(.VALMCNT),$$LJ^XLFSTR(EVENT,40)_$$LJ^XLFSTR($G(@ARY@(SITE,YEAR,MONTH,"TYPE",EVENT)),20),32)
133 S DAY=";"
134 F S DAY=$O(@ARY@(SITE,YEAR,MONTH,DAY),-1) D Q:'DAY
135 .D:DAY DDAY(ARY,IDX,SITE,YEAR,MONTH,DAY)
136 Q
137 ;
138DDAY(ARY,IDX,SITE,YEAR,MONTH,DAY) ;
139 N EVENT,HOUR
140 S VALMCNT=$$SET^HLEMSU($$INC^HLEMU(.VALMCNT),$$LJ^XLFSTR($$DAYTXT(DAY),54)_$$LJ^XLFSTR($G(@ARY@(SITE,YEAR,MONTH,DAY)),20),18)
141 S EVENT=""
142 F S EVENT=$O(@ARY@(SITE,YEAR,MONTH,DAY,"TYPE",EVENT)) Q:EVENT="" D
143 .S VALMCNT=$$SET^HLEMSU($$INC^HLEMU(.VALMCNT),$$LJ^XLFSTR(EVENT,40)_$$LJ^XLFSTR($G(@ARY@(SITE,YEAR,MONTH,DAY,"TYPE",EVENT)),20),32)
144 S HOUR=";"
145 F S HOUR=$O(@ARY@(SITE,YEAR,MONTH,DAY,HOUR),-1) Q:'HOUR D DHOUR(ARY,IDX,SITE,YEAR,MONTH,DAY,HOUR)
146 Q
147 ;
148DHOUR(ARY,IDX,SITE,YEAR,MONTH,DAY,HOUR) ;
149 N EVENT
150 S VALMCNT=$$SET^HLEMSU($$INC^HLEMU(.VALMCNT),$$LJ^XLFSTR($$HOURTXT(HOUR),48)_$$LJ^XLFSTR($G(@ARY@(SITE,YEAR,MONTH,DAY,HOUR)),20),24)
151 S EVENT=""
152 F S EVENT=$O(@ARY@(SITE,YEAR,MONTH,DAY,HOUR,"TYPE",EVENT)) Q:EVENT="" D
153 .S VALMCNT=$$SET^HLEMSU($$INC^HLEMU(.VALMCNT),$$LJ^XLFSTR(EVENT,40)_$$LJ^XLFSTR($G(@ARY@(SITE,YEAR,MONTH,DAY,HOUR,"TYPE",EVENT)),20),32)
154 Q
155 ;
156HELP ;Help code
157 S X="?" D DISP^XQORM1 W !!
158 Q
159 ;
160EXIT ;Exit code
161 D CLEAN^VALM10
162 D CLEAR^VALM1
163 K @IDX
164 Q
165 ;
166EXPND ;Expand code
167 Q
168 ;
169X(FIELD,VALUE) ;
170 ;changes a field value in file 774.4 to external form
171 Q $$EXTERNAL^DILFD(776.4,FIELD,"F",VALUE)
172 ;
173ASKBEGIN(DEFAULT) ;
174 ;Description: Asks the user to enter a beginning date.
175 ;Input: DEFAULT - the suggested default dt/time (optional)
176 ;Output: Returns the date as the function value, or 0 if the user does n to select a date
177 ;
178 N DIR,X,Y
179 S DIR(0)="D^::TX"
180 S DIR("A")="Enter the begining date"
181 S DIR("B")=$$FMTE^XLFDT($S($G(DEFAULT):DEFAULT,1:$$FMADD^XLFDT(DT,-1)))
182 S DIR("?")="Please enter the earliest date for which you would like to see Event Logging Statistics."
183 D ^DIR
184 Q:$D(DIRUT) 0
185 Q Y
186 ;
187MONTHTXT(M) ;
188 ;Given the month as a number 1-12, returns the name
189 Q $S(M=1:"January",M=2:"February",M=3:"March",M=4:"April",M=5:"May",M=6:"June",M=7:"July",M=8:"August",M=9:"September",M=10:"October",M=11:"November",M=12:"December",1:"Unknown")
190 ;
191DAYTXT(D) ;
192 ;Given the day as a number, returns the day also as a number, but with
193 ;a suffix of either "st","nd","rd","th"
194 I D>9,D<20 Q D_"th"
195 N DIGIT
196 S DIGIT=$E(D,$L(D))
197 Q D_$S(DIGIT=1:"st",DIGIT=2:"nd",DIGIT=3:"rd",1:"th")
198 ;
199HOURTXT(H) ;
200 I H<12 Q H_"am"
201 I H=12 Q "12N"
202 I H>12 Q (H-12)_"pm"
203 Q
204 ;
205SELECT ;Allows the user to change profiles, then rebuilds the Event Log Statistics screen
206 N PROF,ASKBEGIN
207 D FULL^VALM1
208 S PROF=$$SELECT^HLEMP1($G(DUZ),20)
209 I PROF,PROF'=$G(PROFILE) D
210 .S ASKBEGIN=$$ASKBEGIN($G(BEGIN))
211 .S:ASKBEGIN BEGIN=ASKBEGIN
212 .S PROFILE=$$GET^HLEMP(PROF,.PROFILE)
213 .D INIT^HLEMST
214 S VALMBCK="R"
215 Q
216 ;
217CHNGDATE ;Allows the user to change the starting date, then rebuilds the Event Log Statistics screen
218 N ASKBEGIN
219 S ASKBEGIN=$$ASKBEGIN($G(BEGIN))
220 I ASKBEGIN D
221 .S BEGIN=ASKBEGIN
222 .D INIT^HLEMST
223 S VALMBCK="R"
224 Q
Note: See TracBrowser for help on using the repository browser.