1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query;
17
18 import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLAdhocQueryRequest;
19 import org.openehealth.ipf.commons.ihe.xds.core.requests.query.FindFoldersForMultiplePatientsQuery;
20
21 import static org.openehealth.ipf.commons.ihe.xds.core.metadata.Timestamp.toHL7;
22 import static org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryParameter.*;
23
24
25
26
27
28
29 public class FindFoldersForMultiplePatientsQueryTransformer extends AbstractStoredQueryTransformer<FindFoldersForMultiplePatientsQuery> {
30
31
32
33
34
35
36
37
38
39
40 public void toEbXML(FindFoldersForMultiplePatientsQuery query, EbXMLAdhocQueryRequest ebXML) {
41 if (query == null || ebXML == null) {
42 return;
43 }
44
45 super.toEbXML(query, ebXML);
46
47 QuerySlotHelper slots = new QuerySlotHelper(ebXML);
48
49 slots.fromPatientIdList(FOLDER_PATIENT_ID, query.getPatientIds());
50
51 slots.fromNumber(FOLDER_LAST_UPDATE_TIME_FROM, toHL7(query.getLastUpdateTime().getFrom()));
52 slots.fromNumber(FOLDER_LAST_UPDATE_TIME_TO, toHL7(query.getLastUpdateTime().getTo()));
53
54 slots.fromCode(FOLDER_CODES, query.getCodes());
55
56 slots.fromStatus(FOLDER_STATUS, query.getStatus());
57 }
58
59
60
61
62
63
64
65
66
67
68 public void fromEbXML(FindFoldersForMultiplePatientsQuery query, EbXMLAdhocQueryRequest ebXML) {
69 if (query == null || ebXML == null) {
70 return;
71 }
72
73 super.fromEbXML(query, ebXML);
74
75 QuerySlotHelper slots = new QuerySlotHelper(ebXML);
76 query.setPatientIds(slots.toPatientIdList(FOLDER_PATIENT_ID));
77
78 query.setCodes(slots.toCodeQueryList(FOLDER_CODES, FOLDER_CODES_SCHEME));
79
80 query.getLastUpdateTime().setFrom(slots.toNumber(FOLDER_LAST_UPDATE_TIME_FROM));
81 query.getLastUpdateTime().setTo(slots.toNumber(FOLDER_LAST_UPDATE_TIME_TO));
82
83 query.setStatus(slots.toStatus(FOLDER_STATUS));
84 }
85 }