1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.openehealth.ipf.commons.ihe.xds.core.audit;
17
18 import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLRegistryPackage;
19 import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLSubmitObjectsRequest;
20 import org.openehealth.ipf.commons.ihe.xds.core.ebxml.ebxml30.EbXMLSubmitObjectsRequest30;
21 import org.openehealth.ipf.commons.ihe.xds.core.metadata.Vocabulary;
22 import org.openehealth.ipf.commons.ihe.xds.core.stub.ebrs30.lcm.SubmitObjectsRequest;
23
24 import java.util.List;
25 import java.util.Map;
26
27
28
29
30
31
32
33 public abstract class XdsSubmitAuditStrategy30 extends XdsAuditStrategy<XdsSubmitAuditDataset> {
34
35
36
37
38
39
40
41 public XdsSubmitAuditStrategy30(boolean serverSide) {
42 super(serverSide);
43 }
44
45 protected static void enrichDatasetFromSubmitObjectsRequest(XdsSubmitAuditDataset auditDataset, EbXMLSubmitObjectsRequest ebXML) {
46 List<EbXMLRegistryPackage> submissionSets = ebXML.getRegistryPackages(Vocabulary.SUBMISSION_SET_CLASS_NODE);
47 auditDataset.setHomeCommunityId(ebXML.getSingleSlotValue(Vocabulary.SLOT_NAME_HOME_COMMUNITY_ID));
48
49 submissionSets.forEach(submissionSet -> {
50 String patientId = submissionSet.getExternalIdentifierValue(Vocabulary.SUBMISSION_SET_PATIENT_ID_EXTERNAL_ID);
51 auditDataset.getPatientIds().add(patientId);
52 String uniqueId = submissionSet.getExternalIdentifierValue(Vocabulary.SUBMISSION_SET_UNIQUE_ID_EXTERNAL_ID);
53 auditDataset.setSubmissionSetUuid(uniqueId);
54 });
55 }
56
57 @Override
58 public XdsSubmitAuditDataset enrichAuditDatasetFromRequest(XdsSubmitAuditDataset auditDataset, Object pojo, Map<String, Object> parameters) {
59 SubmitObjectsRequest submitObjectsRequest = (SubmitObjectsRequest) pojo;
60 EbXMLSubmitObjectsRequest ebXML = new EbXMLSubmitObjectsRequest30(submitObjectsRequest);
61 enrichDatasetFromSubmitObjectsRequest(auditDataset, ebXML);
62 return auditDataset;
63 }
64
65
66
67 @Override
68 public XdsSubmitAuditDataset createAuditDataset() {
69 return new XdsSubmitAuditDataset(isServerSide());
70 }
71 }