1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.openehealth.ipf.commons.ihe.xds.core.requests.query;
17
18 import lombok.EqualsAndHashCode;
19 import lombok.Getter;
20 import lombok.Setter;
21 import lombok.ToString;
22 import org.openehealth.ipf.commons.ihe.xds.core.metadata.Code;
23 import org.openehealth.ipf.commons.ihe.xds.core.metadata.Person;
24 import org.openehealth.ipf.commons.ihe.xds.core.metadata.TimeRange;
25 import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query.QuerySlotHelper;
26
27 import javax.xml.bind.annotation.*;
28 import java.util.List;
29
30
31
32
33
34 @XmlAccessorType(XmlAccessType.FIELD)
35 @XmlType(name = "DocumentsQuery", propOrder = {
36 "authorPersons", "creationTime", "serviceStartTime", "serviceStopTime",
37 "classCodes", "confidentialityCodes", "eventCodes", "formatCodes",
38 "healthcareFacilityTypeCodes", "practiceSettingCodes", "typeCodes"})
39 @XmlRootElement(name = "abstractDocumentsQuery")
40 @EqualsAndHashCode(callSuper = true, doNotUseGetters = true)
41 @ToString(callSuper = true, doNotUseGetters = true)
42 public abstract class DocumentsQuery extends StoredQuery {
43 private static final long serialVersionUID = 1162423827844317922L;
44
45 @XmlElement(name = "typeCode")
46 @Getter @Setter private List<Code> typeCodes;
47 @XmlElement(name = "classCode")
48 @Getter @Setter private List<Code> classCodes;
49 @XmlElement(name = "practiceSettingCode")
50 @Getter @Setter private List<Code> practiceSettingCodes;
51 @XmlElement(name = "healthcareFacilityTypeCode")
52 @Getter @Setter private List<Code> healthcareFacilityTypeCodes;
53 @XmlElement(name = "eventCode")
54 @Getter @Setter private QueryList<Code> eventCodes;
55 @XmlElement(name = "confidentialityCode")
56 @Getter @Setter private QueryList<Code> confidentialityCodes;
57 @XmlElement(name = "formatCode")
58 @Getter @Setter private List<Code> formatCodes;
59 @XmlElement(name = "authorPerson")
60 @Getter @Setter private List<String> authorPersons;
61
62 @Getter private final TimeRange creationTime = new TimeRange();
63 @Getter private final TimeRange serviceStartTime = new TimeRange();
64 @Getter private final TimeRange serviceStopTime = new TimeRange();
65
66
67
68
69 protected DocumentsQuery() {
70 }
71
72
73 protected DocumentsQuery(QueryType type) {
74 super(type);
75 }
76
77
78
79
80
81
82
83 public void setTypedAuthorPersons(List<Person> authorPersons) {
84 this.authorPersons = QuerySlotHelper.render(authorPersons);
85 }
86
87
88
89
90
91
92
93
94 public List<Person> getTypedAuthorPersons() {
95 return QuerySlotHelper.parse(this.authorPersons, Person.class);
96 }
97
98 }