1 | /* ReportFactory.as */
|
---|
2 |
|
---|
3 | package 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 | }
|
---|