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 static org.openehealth.ipf.commons.ihe.xds.core.metadata.Timestamp.toHL7;
19 import static org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryParameter.*;
20
21 import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLAdhocQueryRequest;
22 import org.openehealth.ipf.commons.ihe.xds.core.metadata.Hl7v2Based;
23 import org.openehealth.ipf.commons.ihe.xds.core.metadata.Identifiable;
24 import org.openehealth.ipf.commons.ihe.xds.core.requests.query.FindFoldersQuery;
25
26
27
28
29
30 public class FindFoldersQueryTransformer extends AbstractStoredQueryTransformer<FindFoldersQuery>{
31
32
33
34
35
36
37
38
39
40
41 public void toEbXML(FindFoldersQuery query, EbXMLAdhocQueryRequest ebXML) {
42 if (query == null || ebXML == null) {
43 return;
44 }
45
46 super.toEbXML(query, ebXML);
47
48 QuerySlotHelper slots = new QuerySlotHelper(ebXML);
49
50 slots.fromString(FOLDER_PATIENT_ID, Hl7v2Based.render(query.getPatientId()));
51
52 slots.fromNumber(FOLDER_LAST_UPDATE_TIME_FROM, toHL7(query.getLastUpdateTime().getFrom()));
53 slots.fromNumber(FOLDER_LAST_UPDATE_TIME_TO, toHL7(query.getLastUpdateTime().getTo()));
54
55 slots.fromCode(FOLDER_CODES, query.getCodes());
56
57 slots.fromStatus(FOLDER_STATUS, query.getStatus());
58 slots.fromInteger(METADATA_LEVEL, query.getMetadataLevel());
59 }
60
61
62
63
64
65
66
67
68
69
70 public void fromEbXML(FindFoldersQuery query, EbXMLAdhocQueryRequest ebXML) {
71 if (query == null || ebXML == null) {
72 return;
73 }
74
75 super.fromEbXML(query, ebXML);
76
77 QuerySlotHelper slots = new QuerySlotHelper(ebXML);
78 String patientId = slots.toString(FOLDER_PATIENT_ID);
79 query.setPatientId(Hl7v2Based.parse(patientId, Identifiable.class));
80
81 query.setCodes(slots.toCodeQueryList(FOLDER_CODES, FOLDER_CODES_SCHEME));
82
83 query.getLastUpdateTime().setFrom(slots.toNumber(FOLDER_LAST_UPDATE_TIME_FROM));
84 query.getLastUpdateTime().setTo(slots.toNumber(FOLDER_LAST_UPDATE_TIME_TO));
85
86 query.setStatus(slots.toStatus(FOLDER_STATUS));
87 query.setMetadataLevel(slots.toInteger(METADATA_LEVEL));
88 }
89 }