1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.openehealth.ipf.commons.ihe.xds.core.ebxml.ebxml30;
17
18 import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLRetrieveImagingDocumentSetRequest;
19 import org.openehealth.ipf.commons.ihe.xds.core.ebxml.ebxml30.RetrieveDocumentSetRequestType.DocumentRequest;
20 import org.openehealth.ipf.commons.ihe.xds.core.ebxml.ebxml30.RetrieveImagingDocumentSetRequestType.StudyRequest;
21 import org.openehealth.ipf.commons.ihe.xds.core.ebxml.ebxml30.RetrieveImagingDocumentSetRequestType.SeriesRequest;
22 import org.openehealth.ipf.commons.ihe.xds.core.requests.DocumentReference;
23 import org.openehealth.ipf.commons.ihe.xds.core.requests.RetrieveSeries;
24 import org.openehealth.ipf.commons.ihe.xds.core.requests.RetrieveStudy;
25
26 import java.util.ArrayList;
27 import java.util.List;
28
29 import static org.apache.commons.lang3.Validate.notNull;
30
31
32
33
34
35
36 public class EbXMLRetrieveImagingDocumentSetRequest30 implements EbXMLRetrieveImagingDocumentSetRequest {
37 private final RetrieveImagingDocumentSetRequestType request;
38
39
40
41
42
43 public EbXMLRetrieveImagingDocumentSetRequest30(RetrieveImagingDocumentSetRequestType request) {
44 notNull(request, "request cannot be null");
45 this.request = request;
46 }
47
48 @Override
49 public RetrieveImagingDocumentSetRequestType getInternal() {
50 return request;
51 }
52
53 @Override
54 public List<RetrieveStudy> getRetrieveStudies() {
55 List<RetrieveStudy> retrieveStudies = new ArrayList<>();
56 for (StudyRequest studyRequest : request.getStudyRequest())
57 {
58 RetrieveStudy retrieveStudy = new RetrieveStudy();
59 retrieveStudy.setStudyInstanceUID(studyRequest.getStudyInstanceUID());
60 for (SeriesRequest seriesRequest : studyRequest.getSeriesRequest())
61 {
62 RetrieveSeries retrieveSeries = new RetrieveSeries();
63 retrieveSeries.setSeriesInstanceUID(seriesRequest.getSeriesInstanceUID());
64 for (DocumentRequest documentRequest : seriesRequest.getDocumentRequests())
65 {
66 DocumentReference documentReference = new DocumentReference();
67 documentReference.setDocumentUniqueId(documentRequest.getDocumentUniqueId());
68 documentReference.setHomeCommunityId(documentRequest.getHomeCommunityId());
69 documentReference.setRepositoryUniqueId(documentRequest.getRepositoryUniqueId());
70 retrieveSeries.getDocuments().add(documentReference);
71 }
72 retrieveStudy.getRetrieveSerieses().add(retrieveSeries);
73 }
74 retrieveStudies.add(retrieveStudy);
75 }
76 return retrieveStudies;
77 }
78
79 @Override
80 public List<String> getTransferSyntaxUIDList() {
81 List<String> transferSyntaxUIDs = new ArrayList<>();
82 transferSyntaxUIDs.addAll(request.getTransferSyntaxUIDList().getTransferSyntaxUID());
83 return transferSyntaxUIDs;
84 }
85
86 @Override
87 public void setRetrieveStudies(List<RetrieveStudy> retrieveStudies) {
88 request.getStudyRequest().clear();
89 if (retrieveStudies != null) {
90 for (RetrieveStudy retrieveStudy : retrieveStudies)
91 {
92 StudyRequest studyRequest = new StudyRequest();
93 studyRequest.setStudyInstanceUID(retrieveStudy.getStudyInstanceUID());
94 for ( RetrieveSeries retrieveSeries : retrieveStudy.getRetrieveSerieses())
95 {
96 SeriesRequest seriesRequest = new SeriesRequest();
97 seriesRequest.setSeriesInstanceUID(retrieveSeries.getSeriesInstanceUID());
98 for (DocumentReference documentReference : retrieveSeries.getDocuments())
99 {
100 DocumentRequest documentRequest = new DocumentRequest();
101 documentRequest.setDocumentUniqueId(documentReference.getDocumentUniqueId());
102 documentRequest.setHomeCommunityId(documentReference.getHomeCommunityId());
103 documentRequest.setRepositoryUniqueId(documentReference.getRepositoryUniqueId());
104 seriesRequest.getDocumentRequests().add(documentRequest);
105 }
106 studyRequest.getSeriesRequest().add(seriesRequest);
107 }
108 request.getStudyRequest().add(studyRequest);
109 }
110 }
111 }
112
113 @Override
114 public void setTransferSyntaxUIDList(List<String> transferSyntaxUIDList) {
115 request.getTransferSyntaxUIDList().getTransferSyntaxUID().clear();
116 if (transferSyntaxUIDList != null) {
117 request.getTransferSyntaxUIDList().getTransferSyntaxUID().addAll(transferSyntaxUIDList);
118 }
119 }
120 }