source: EDIS/tags/ed/tracking-ui-core/src/main/flex/gov/va/med/edp/factory/ReportFactory.as@ 1240

Last change on this file since 1240 was 1240, checked in by George Lilly, 13 years ago

new version from the VA

File size: 16.6 KB
Line 
1/* ReportFactory.as */
2
3package gov.va.med.edp.factory
4{
5 import gov.va.med.edp.model.reports.MissedOpReport;
6 import gov.va.med.edp.util.Vista;
7 import gov.va.med.edp.vo.reports.AcuityVO;
8 import gov.va.med.edp.vo.reports.AveragesVO;
9 import gov.va.med.edp.vo.reports.BVACLogEntryVO;
10 import gov.va.med.edp.vo.reports.EdStaffVO;
11 import gov.va.med.edp.vo.reports.OrdersByAcuityVO;
12 import gov.va.med.edp.vo.reports.PatientExposureVO;
13 import gov.va.med.edp.vo.reports.PatientXRefVO;
14 import gov.va.med.edp.vo.reports.ProviderShiftVO;
15 import gov.va.med.edp.vo.reports.ProviderVO;
16 import gov.va.med.edp.vo.reports.PtIntakeVO;
17 import gov.va.med.edp.vo.reports.ReportLogEntryVO;
18 import gov.va.med.edp.vo.reports.ShiftCategoryVO;
19 import gov.va.med.edp.vo.reports.ShiftReportColumnVO;
20 import gov.va.med.edp.vo.reports.SummaryReportVO;
21
22 import mx.collections.ArrayCollection;
23
24 public class ReportFactory
25 {
26
27 public static function buildMissedOpDispositionCodes(missedOpReport: MissedOpReport, xmlList:XMLList): void
28 {
29 for each (var item:XML in xmlList) {
30 missedOpReport.AMA = item.@AMA;
31 missedOpReport.eloped = item.@E;
32 missedOpReport.leftWithoutTreatment = item.@L;
33 }
34 }
35
36 public static function buildSummaryVOFromXML(nodeList:XMLList): SummaryReportVO
37 {
38 var summaryReportVO: SummaryReportVO = new SummaryReportVO();
39 //TODO: Mel needs to Change XML Structure.
40 //This structure doesn't fit very well..
41
42 for each (var item:XML in nodeList) {
43 if (item.@type == "All Patients"){
44 summaryReportVO.avgAllAdmitDecisionTime = item.@avgAdmDec;
45 summaryReportVO.avgAllEDVisitTime = item.@avgTime;
46 summaryReportVO.totAllEDVisits = item.@total;
47 summaryReportVO.totAllVisitOver6Hrs = item.@num6hr;
48 summaryReportVO.totAllVisitOver23Hrs = item.@num23hr;
49 summaryReportVO.numAdmittedToObservation = item.@numObs;
50 } else if (item.@type == "Not VA Admitted"){
51 summaryReportVO.totNotVaAdmittedVisits = item.@total;
52 summaryReportVO.avgNotVaAdmittedVisitTime = item.@avgTime;
53 } else if (item.@type == "VA Admitted"){
54 summaryReportVO.totVaAdmittedEDVisits = item.@total;
55 summaryReportVO.totVaAdmittedDelayOver6Hrs = item.@num6hr;
56 summaryReportVO.avgVaAdmittedDelayTime = item.@avgAdmDel;
57 summaryReportVO.avgVaAdmittedDecisionTime = item.@avgAdmDec;
58 summaryReportVO.numVaAdmittedDelayOver6Hrs = item.@numAdmDel6hr;
59 }
60 }
61 return summaryReportVO;
62 }
63
64 public static function buildPatientXRefListFromXML(nodeList:XMLList): ArrayCollection
65 {
66 var patientXRefList: ArrayCollection = new ArrayCollection();
67 for each (var item:XML in nodeList) {
68 var patientXRefVO: PatientXRefVO = buildPatientXRefVOFromXML(item);
69 patientXRefList.addItem(patientXRefVO);
70 }
71 return patientXRefList;
72 }
73
74 private static function buildPatientXRefVOFromXML(xml:XML): PatientXRefVO
75 {
76 var patientXRefVO: PatientXRefVO = new PatientXRefVO();
77 patientXRefVO.id = xml.@id;
78 patientXRefVO.patientDfn = xml.@patientDfn;
79 patientXRefVO.patientId = xml.@patientId;
80 return patientXRefVO;
81 }
82
83 public static function buildShiftReportCategoriesFromXML(nodeList:XMLList): ArrayCollection
84 {
85 var shiftCategoriesList: ArrayCollection = new ArrayCollection();
86 for each (var item:XML in nodeList) {
87 var shiftCategoryVO: ShiftCategoryVO = buildShiftReportCategoryFromXML(item);
88 shiftCategoriesList.addItem(shiftCategoryVO);
89 }
90 return shiftCategoriesList;
91 }
92
93 private static function buildShiftReportCategoryFromXML(xml:XML): ShiftCategoryVO
94 {
95 var shiftCategoryVO: ShiftCategoryVO = new ShiftCategoryVO();
96 shiftCategoryVO.category = xml.@category;
97 shiftCategoryVO.one = xml.@one;
98 shiftCategoryVO.two = xml.@two;
99 shiftCategoryVO.three = xml.@three;
100 shiftCategoryVO.four = xml.@four;
101 return shiftCategoryVO;
102 }
103
104 public static function buildShiftReportColumnsFromXML(nodeList:XMLList): ArrayCollection
105 {
106 var shiftReportColumnsList: ArrayCollection = new ArrayCollection();
107 for each (var item:XML in nodeList) {
108 var shiftReportColumnVO: ShiftReportColumnVO = buildShiftReportColumnFromXML(item);
109 shiftReportColumnsList.addItem(shiftReportColumnVO);
110 }
111 return shiftReportColumnsList;
112 }
113
114 private static function buildShiftReportColumnFromXML(xml:XML): ShiftReportColumnVO
115 {
116 var shiftReportColumnVO: ShiftReportColumnVO = new ShiftReportColumnVO();
117 shiftReportColumnVO.name = xml.@name;
118 shiftReportColumnVO.shiftId = xml.@shiftId;
119 return shiftReportColumnVO;
120 }
121
122 public static function buildAcuityReportStatsFromXML(nodeList:XMLList): ArrayCollection
123 {
124 var acuityStatsList: ArrayCollection = new ArrayCollection();
125 for each (var item:XML in nodeList) {
126 var acuityVO: AcuityVO = buildAcuityStatFromXML(item);
127 acuityStatsList.addItem(acuityVO);
128 }
129 return acuityStatsList;
130 }
131
132 public static function buildSummaryDelayChartFromXML(nodeList:XMLList): ArrayCollection
133 {
134 return buildAcuityReportStatsFromXML(nodeList);
135 }
136
137 private static function buildAcuityStatFromXML(xml:XML): AcuityVO
138 {
139 var acuityVO: AcuityVO = new AcuityVO();
140 acuityVO.none = xml.@none;
141 acuityVO.one = xml.@one;
142 acuityVO.two = xml.@two;
143 acuityVO.three = xml.@three;
144 acuityVO.four= xml.@four;
145 acuityVO.five = xml.@five;
146 acuityVO.type = xml.@type;
147 acuityVO.avgTotal = xml.@total;
148 acuityVO.reason = xml.@reason;
149 return acuityVO;
150 }
151
152
153 public static function buildProviderListFromXML(nodeList:XMLList): ArrayCollection
154 {
155 var providerList: ArrayCollection = new ArrayCollection();
156 for each (var item:XML in nodeList) {
157 var providerVO: ProviderVO = buildProviderVOFromXML(item);
158 providerList.addItem(providerVO);
159 }
160 return providerList;
161 }
162
163 private static function buildProviderVOFromXML(xml:XML): ProviderVO
164 {
165 var providerVO: ProviderVO = new ProviderVO();
166 providerVO.name = xml.@name;
167 providerVO.total = xml.@total;
168 providerVO.avgTimeMDAssigned = xml.@timeMD;
169 providerVO.avgTimeToDisposition = xml.@timeDisp;
170 providerVO.shifts = buildProviderShiftsFromXML(xml.shifts.shift);
171 return providerVO;
172 }
173
174 private static function buildProviderShiftsFromXML(nodeList:XMLList): ArrayCollection
175 {
176 var providerShiftList: ArrayCollection = new ArrayCollection();
177 for each (var item:XML in nodeList) {
178 var providerShiftVO: ProviderShiftVO = buildProviderShiftVOFromXML(item);
179 providerShiftList.addItem(providerShiftVO);
180 }
181 return providerShiftList;
182 }
183
184 private static function buildProviderShiftVOFromXML(xml:XML): ProviderShiftVO
185 {
186 var providerShiftVO: ProviderShiftVO = new ProviderShiftVO();
187 providerShiftVO.number = xml.@number;
188 providerShiftVO.acuity = xml.@acuity;
189 providerShiftVO.total = xml.@total;
190 providerShiftVO.timeInToMDAssigned = xml.@timeMD;
191 providerShiftVO.timeFromMDAssignedToDisposition = xml.@timeDisp;
192 return providerShiftVO;
193 }
194
195 public static function buildPatientExposureVOListFromXML(nodeList:XMLList): ArrayCollection
196 {
197 var patientExposureVOList: ArrayCollection = new ArrayCollection();
198 for each (var item:XML in nodeList) {
199 var patientExposureVO: PatientExposureVO = buildPatientExposureVOFromXML(item);
200 patientExposureVOList.addItem(patientExposureVO);
201 }
202 return patientExposureVOList;
203 }
204
205 private static function buildPatientExposureVOFromXML(xml:XML): PatientExposureVO
206 {
207 var patientExposureVO: PatientExposureVO = new PatientExposureVO();
208 patientExposureVO.id = xml.@id;
209 patientExposureVO.arrival = xml.@arrival;
210 patientExposureVO.roomName = xml.@roomName;
211 patientExposureVO.disposition = xml.@disposition;
212 patientExposureVO.dx = xml.@dx;
213 patientExposureVO.shiftIn = xml.@shiftIn;
214 patientExposureVO.timeIn = Vista.FMtoDate(xml.@inTS);
215 patientExposureVO.shiftOut = xml.@shiftOut;
216 patientExposureVO.timeOut = Vista.FMtoDate(xml.@outTS);
217 patientExposureVO.notes = xml.@notes;
218 return patientExposureVO;
219 }
220
221 public static function buildEDStaffVOListFromXML(nodeList:XMLList): ArrayCollection
222 {
223 var edStaffVOList: ArrayCollection = new ArrayCollection();
224 for each (var item:XML in nodeList) {
225 var edStaffVO: EdStaffVO = buildEDStaffVOFromXML(item);
226 edStaffVOList.addItem(edStaffVO);
227 }
228 return edStaffVOList;
229 }
230
231 private static function buildEDStaffVOFromXML(xml:XML): EdStaffVO
232 {
233 var edStaffVO: EdStaffVO = new EdStaffVO();
234 edStaffVO.name = xml.@name;
235 return edStaffVO;
236 }
237
238
239 public static function buildReportLogEntriesFromXML(nodeList:XMLList): ArrayCollection
240 {
241 var activityLogEntryList: ArrayCollection = new ArrayCollection();
242 for each (var item:XML in nodeList) {
243 var reportLogEntryVO: ReportLogEntryVO = buildReportLogEntryFromXML(item);
244 activityLogEntryList.addItem(reportLogEntryVO);
245 }
246 return activityLogEntryList;
247 }
248
249 private static function buildReportLogEntryFromXML(xml:XML): ReportLogEntryVO
250 {
251 var reportLogEntryVO: ReportLogEntryVO = new ReportLogEntryVO();
252 reportLogEntryVO.id = xml.@id;
253 reportLogEntryVO.acuity = xml.@acuity;
254 reportLogEntryVO.complaint = xml.@complaint;
255 reportLogEntryVO.disposition = xml.@disposition;
256 //TODO; talk to Mel to see how multiple diagnoses as passed on in xml..
257 var dx: ArrayCollection = new ArrayCollection();
258 dx.addItem(xml.@dx);
259 reportLogEntryVO.diagnoses = dx;
260 reportLogEntryVO.elapsed = xml.@elapsed;
261 reportLogEntryVO.timeIn = Vista.FMtoDate(xml.@inTS);
262 reportLogEntryVO.timeOut = Vista.FMtoDate(xml.@outTS);
263 reportLogEntryVO.provider = xml.@md;
264 reportLogEntryVO.triage = xml.@triage;
265 reportLogEntryVO.wait = xml.@wait;
266 reportLogEntryVO.admDec = xml.@admDec;
267 reportLogEntryVO.admDel = xml.@admDel;
268 reportLogEntryVO.arrival = xml.@arrival;
269 reportLogEntryVO.icd9 = xml.@icd;
270 reportLogEntryVO.delayReason = xml.@delayReason;
271 return reportLogEntryVO;
272 }
273
274 //buildOrdersByAcuityReportFromXML
275 public static function buildOrdersByAcuityLogEntriesFromXML(nodeList:XMLList): ArrayCollection
276 {
277 var ordersByAcuityLogEntryList: ArrayCollection = new ArrayCollection();
278 for each (var item:XML in nodeList) {
279 var ordersByAcuityVO: OrdersByAcuityVO = buildOrdersByAcuityLogEntryFromXML(item);
280 ordersByAcuityLogEntryList.addItem(ordersByAcuityVO);
281 }
282 return ordersByAcuityLogEntryList;
283 }
284
285 private static function buildOrdersByAcuityLogEntryFromXML(xml:XML): OrdersByAcuityVO
286 {
287 var ordersByAcuityVO: OrdersByAcuityVO = new OrdersByAcuityVO();
288 ordersByAcuityVO.acuity = xml.@acuity;
289 ordersByAcuityVO.meds = xml.@meds;
290 ordersByAcuityVO.labs = xml.@labs;
291 ordersByAcuityVO.images = xml.@images;
292 ordersByAcuityVO.consults = xml.@consults;
293 ordersByAcuityVO.others = xml.@other;
294
295 return ordersByAcuityVO;
296 }
297
298
299
300
301
302 public static function buildBVACLogEntriesFromXML(nodeList:XMLList): ArrayCollection
303 {
304 var bvacLogEntryList: ArrayCollection = new ArrayCollection();
305 for each (var item:XML in nodeList) {
306 var bvacLogEntryVO: BVACLogEntryVO = buildBVACLogEntryFromXML(item);
307 bvacLogEntryList.addItem(bvacLogEntryVO);
308 }
309 return bvacLogEntryList;
310 }
311
312 private static function buildBVACLogEntryFromXML(xml:XML): BVACLogEntryVO
313 {
314 var bvacLogEntryVO: BVACLogEntryVO = new BVACLogEntryVO();
315 bvacLogEntryVO.id = xml.@id;
316 bvacLogEntryVO.acuity = xml.@acuity;
317 bvacLogEntryVO.complaint = xml.@complaint;
318 bvacLogEntryVO.disposition = xml.@disposition;
319 //TODO; talk to Mel to see how multiple diagnoses as passed on in xml..
320 var dx: ArrayCollection = new ArrayCollection();
321 dx.addItem(xml.@dx);
322 bvacLogEntryVO.diagnoses = dx;
323 bvacLogEntryVO.elapsed = xml.@elapsed;
324 bvacLogEntryVO.timeIn = Vista.FMtoDate(xml.@inTS);
325 bvacLogEntryVO.timeOut = Vista.FMtoDate(xml.@outTS);
326 bvacLogEntryVO.provider = xml.@md;
327 bvacLogEntryVO.triage = xml.@triage;
328 bvacLogEntryVO.wait = xml.@wait;
329 bvacLogEntryVO.admDec = xml.@admDec;
330 bvacLogEntryVO.admDel = xml.@admDel;
331 bvacLogEntryVO.arrival = xml.@arrival;
332 bvacLogEntryVO.icd9 = xml.@icd;
333 bvacLogEntryVO.delayReason = xml.@delayReason;
334
335 bvacLogEntryVO.agentOrange = xml.@agentOrange;
336 bvacLogEntryVO.iraq = xml.@iraq;
337 bvacLogEntryVO.patientName = xml.@patient;
338 bvacLogEntryVO.persGulf = xml.@persGulf;
339 bvacLogEntryVO.pow = xml.@pow;
340 bvacLogEntryVO.purpleHeart = xml.@purpleHeart;
341 bvacLogEntryVO.serviceConnPct = xml.@servConnPct;
342 bvacLogEntryVO.unemployable = xml.@unemployable;
343 bvacLogEntryVO.vaPension = xml.@vaPension;
344 bvacLogEntryVO.vietnamVet = xml.@vietnam;
345 bvacLogEntryVO.combatEndDate = Vista.FMtoDate(xml.@combatEndDT);
346 return bvacLogEntryVO;
347 }
348
349
350
351
352 public static function buildPtIntakeListFromXML(nodeList:XMLList): ArrayCollection
353 {
354 var ptIntakeList: ArrayCollection = new ArrayCollection();
355 for each (var item:XML in nodeList) {
356 var ptIntakeVO: PtIntakeVO = buildPtIntakeVOFromXML(item);
357 ptIntakeList.addItem(ptIntakeVO);
358 }
359 return ptIntakeList;
360 }
361
362 private static function buildPtIntakeVOFromXML(xml:XML): PtIntakeVO
363 {
364 var ptIntakeVO: PtIntakeVO = new PtIntakeVO();
365 ptIntakeVO.sun = xml.@Sunday;
366 ptIntakeVO.mon = xml.@Monday;
367 ptIntakeVO.tue = xml.@Tuesday;
368 ptIntakeVO.wed = xml.@Wednesday;
369 ptIntakeVO.thu = xml.@Thursday;
370 ptIntakeVO.fri = xml.@Friday;
371 ptIntakeVO.sat = xml.@Saturday;
372 ptIntakeVO.time = xml.@time;
373 ptIntakeVO.total = xml.@total;
374 ptIntakeVO.average = xml.@average;
375
376 return ptIntakeVO;
377 }
378
379 public static function buildReportAveragesFromXML(nodeList:XMLList): ArrayCollection
380 {
381 var averagesList: ArrayCollection = new ArrayCollection();
382 for each (var item:XML in nodeList) {
383 var averagesVO: AveragesVO = buildReportAverageFromXML(item);
384 averagesList.addItem(averagesVO);
385 }
386 return averagesList;
387 }
388
389 private static function buildReportAverageFromXML(xml:XML): AveragesVO
390 {
391 var averagesVO: AveragesVO = new AveragesVO();
392 averagesVO.admDec = xml.@admDec;
393 averagesVO.admDel = xml.@admDel;
394 averagesVO.elapsed = xml.@elapsed;
395 averagesVO.total = xml.@total;
396 //Talk to Mel change for attribute to type instead..
397 averagesVO.type = xml.@type;
398 averagesVO.triage = xml.@triage;
399 averagesVO.wait = xml.@wait;
400 return averagesVO;
401 }
402 }
403
404
405
406}
Note: See TracBrowser for help on using the repository browser.