diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/audit/XdsAuditStrategy.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/audit/XdsAuditStrategy.java index 4e946df12a..d7e9ad9e6f 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/audit/XdsAuditStrategy.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/audit/XdsAuditStrategy.java @@ -47,7 +47,7 @@ public XdsAuditStrategy(boolean serverSide) { * @param response registry to analyze. * @return outcome code. */ - private static EventOutcomeIndicator getEventOutcomeCodeFromRegistryResponse(EbXMLRegistryResponse response) { + private static EventOutcomeIndicator getEventOutcomeCodeFromRegistryResponse(EbXMLRegistryResponse response) { try { if (response.getStatus() == Status.SUCCESS) { return EventOutcomeIndicator.Success; @@ -67,7 +67,7 @@ private static EventOutcomeIndicator getEventOutcomeCodeFromRegistryResponse(EbX } } - private static String getEventOutcomeDescriptionFromRegistryResponse(EbXMLRegistryResponse response) { + private static String getEventOutcomeDescriptionFromRegistryResponse(EbXMLRegistryResponse response) { if (response.getErrors().isEmpty()) { return null; } @@ -83,14 +83,14 @@ private static String getEventOutcomeDescriptionFromRegistryResponse(EbXMLRegist @Override public EventOutcomeIndicator getEventOutcomeIndicator(T auditDataset, Object pojo) { var response = (RegistryResponseType) pojo; - EbXMLRegistryResponse ebXML = new EbXMLRegistryResponse30(response); + EbXMLRegistryResponse ebXML = new EbXMLRegistryResponse30(response); return getEventOutcomeCodeFromRegistryResponse(ebXML); } @Override public String getEventOutcomeDescription(T auditDataset, Object pojo) { var response = (RegistryResponseType) pojo; - EbXMLRegistryResponse ebXML = new EbXMLRegistryResponse30(response); + EbXMLRegistryResponse ebXML = new EbXMLRegistryResponse30(response); return getEventOutcomeDescriptionFromRegistryResponse(ebXML); } diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/audit/XdsSubmitAuditStrategy30.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/audit/XdsSubmitAuditStrategy30.java index 9196f05218..7231a34bc9 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/audit/XdsSubmitAuditStrategy30.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/audit/XdsSubmitAuditStrategy30.java @@ -40,7 +40,7 @@ public XdsSubmitAuditStrategy30(boolean serverSide) { super(serverSide); } - protected static void enrichDatasetFromSubmitObjectsRequest(XdsSubmitAuditDataset auditDataset, EbXMLSubmitObjectsRequest ebXML) { + protected static void enrichDatasetFromSubmitObjectsRequest(XdsSubmitAuditDataset auditDataset, EbXMLSubmitObjectsRequest ebXML) { var submissionSets = ebXML.getRegistryPackages(Vocabulary.SUBMISSION_SET_CLASS_NODE); auditDataset.setHomeCommunityId(ebXML.getSingleSlotValue(Vocabulary.SLOT_NAME_HOME_COMMUNITY_ID)); @@ -59,7 +59,7 @@ protected static void enrichDatasetFromSubmitObjectsRequest(XdsSubmitAuditDatase public XdsSubmitAuditDataset enrichAuditDatasetFromRequest(XdsSubmitAuditDataset auditDataset, Object pojo, Map parameters) { if (pojo instanceof SubmitObjectsRequest) { var submitObjectsRequest = (SubmitObjectsRequest) pojo; - EbXMLSubmitObjectsRequest ebXML = new EbXMLSubmitObjectsRequest30(submitObjectsRequest); + EbXMLSubmitObjectsRequest ebXML = new EbXMLSubmitObjectsRequest30(submitObjectsRequest); enrichDatasetFromSubmitObjectsRequest(auditDataset, ebXML); } return auditDataset; diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/EbXMLAdhocQueryRequest.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/EbXMLAdhocQueryRequest.java index 75b0eaff7f..f625c89780 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/EbXMLAdhocQueryRequest.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/EbXMLAdhocQueryRequest.java @@ -22,7 +22,7 @@ * abstraction of the ebXML data structure. * @author Jens Riemschneider */ -public interface EbXMLAdhocQueryRequest extends EbXMLSlotList { +public interface EbXMLAdhocQueryRequest extends EbXMLSlotList { /** * @param returnType @@ -60,5 +60,5 @@ public interface EbXMLAdhocQueryRequest extends EbXMLSlotList { /** * @return the ebXML object wrapped by this object. */ - Object getInternal(); + E getInternal(); } diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/EbXMLFactory.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/EbXMLFactory.java index 2e1e6d8456..03ac997e94 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/EbXMLFactory.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/EbXMLFactory.java @@ -16,6 +16,17 @@ package org.openehealth.ipf.commons.ihe.xds.core.ebxml; +import org.openehealth.ipf.commons.ihe.xds.core.ebxml.ebxml30.ProvideAndRegisterDocumentSetRequestType; +import org.openehealth.ipf.commons.ihe.xds.core.ebxml.ebxml30.RemoveDocumentsRequestType; +import org.openehealth.ipf.commons.ihe.xds.core.ebxml.ebxml30.RetrieveDocumentSetRequestType; +import org.openehealth.ipf.commons.ihe.xds.core.ebxml.ebxml30.RetrieveDocumentSetResponseType; +import org.openehealth.ipf.commons.ihe.xds.core.stub.ebrs30.lcm.RemoveObjectsRequest; +import org.openehealth.ipf.commons.ihe.xds.core.stub.ebrs30.lcm.SubmitObjectsRequest; +import org.openehealth.ipf.commons.ihe.xds.core.stub.ebrs30.query.AdhocQueryRequest; +import org.openehealth.ipf.commons.ihe.xds.core.stub.ebrs30.query.AdhocQueryResponse; +import org.openehealth.ipf.commons.ihe.xds.core.stub.ebrs30.rs.RegistryResponseType; +import org.openehealth.ipf.commons.ihe.xds.core.stub.xdsi.RetrieveImagingDocumentSetRequestType; + /** * Serves as a factory for ebXML objects. *

@@ -72,7 +83,7 @@ public interface EbXMLFactory { * Creates a new request to submit objects. * @return the created object. */ - EbXMLSubmitObjectsRequest createSubmitObjectsRequest(); + EbXMLSubmitObjectsRequest createSubmitObjectsRequest(); /** * Creates a new request to provide and register documents. @@ -80,31 +91,31 @@ public interface EbXMLFactory { * the object library to use. * @return the created object. */ - EbXMLProvideAndRegisterDocumentSetRequest createProvideAndRegisterDocumentSetRequest(EbXMLObjectLibrary library); + EbXMLProvideAndRegisterDocumentSetRequest createProvideAndRegisterDocumentSetRequest(EbXMLObjectLibrary library); /** * Creates a new request to retrieve documents. * @return the created object. */ - EbXMLNonconstructiveDocumentSetRequest createRetrieveDocumentSetRequest(); + EbXMLNonconstructiveDocumentSetRequest createRetrieveDocumentSetRequest(); /** * Creates a new request to remove documents. * @return the created object. */ - EbXMLNonconstructiveDocumentSetRequest createRemoveDocumentsRequest(); + EbXMLNonconstructiveDocumentSetRequest createRemoveDocumentsRequest(); /** * Creates a new request to retrieve imaging documents. * @return the created object. */ - EbXMLRetrieveImagingDocumentSetRequest createRetrieveImagingDocumentSetRequest(); + EbXMLRetrieveImagingDocumentSetRequest createRetrieveImagingDocumentSetRequest(); /** * Creates a new request to query a registry. * @return the created object. */ - EbXMLAdhocQueryRequest createAdhocQueryRequest(); + EbXMLAdhocQueryRequest createAdhocQueryRequest(); /** * Creates a new response for a query request. @@ -119,19 +130,19 @@ public interface EbXMLFactory { * therefore the object library would produce unwanted query results. * @return the created object. */ - EbXMLQueryResponse createAdhocQueryResponse(EbXMLObjectLibrary objectLibrary, boolean returnsObjectRefs); + EbXMLQueryResponse createAdhocQueryResponse(EbXMLObjectLibrary objectLibrary, boolean returnsObjectRefs); /** * Creates a new response for a registry request. * @return the created object. */ - EbXMLRegistryResponse createRegistryResponse(); + EbXMLRegistryResponse createRegistryResponse(); /** * Creates a new response for a retrieve document request. * @return the created object. */ - EbXMLRetrieveDocumentSetResponse createRetrieveDocumentSetResponse(); + EbXMLRetrieveDocumentSetResponse createRetrieveDocumentSetResponse(); /** * Creates a new registry error object. @@ -143,5 +154,5 @@ public interface EbXMLFactory { * Creates a new remove metadata request. * @return the created object. */ - EbXMLRemoveMetadataRequest createRemoveMetadataRequest(); + EbXMLRemoveMetadataRequest createRemoveMetadataRequest(); } diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/EbXMLNonconstructiveDocumentSetRequest.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/EbXMLNonconstructiveDocumentSetRequest.java index 47e5dda21a..c30264d8c1 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/EbXMLNonconstructiveDocumentSetRequest.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/EbXMLNonconstructiveDocumentSetRequest.java @@ -26,7 +26,7 @@ * abstraction of the ebXML data structure. * @author Jens Riemschneider */ -public interface EbXMLNonconstructiveDocumentSetRequest { +public interface EbXMLNonconstructiveDocumentSetRequest { /** * Sets the documents of the request. * @param documents @@ -42,5 +42,5 @@ public interface EbXMLNonconstructiveDocumentSetRequest { /** * @return the ebXML object being wrapped by this class. */ - Object getInternal(); + E getInternal(); } diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/EbXMLProvideAndRegisterDocumentSetRequest.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/EbXMLProvideAndRegisterDocumentSetRequest.java index cec5e7e598..a734d829fc 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/EbXMLProvideAndRegisterDocumentSetRequest.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/EbXMLProvideAndRegisterDocumentSetRequest.java @@ -26,7 +26,7 @@ * abstraction of the ebXML data structure. * @author Jens Riemschneider */ -public interface EbXMLProvideAndRegisterDocumentSetRequest extends EbXMLSubmitObjectsRequest { +public interface EbXMLProvideAndRegisterDocumentSetRequest extends EbXMLSubmitObjectsRequest { /** * @return the documents contained in the request. This map is read-only. */ diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/EbXMLQueryResponse.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/EbXMLQueryResponse.java index bce3646269..b9b5e63cf8 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/EbXMLQueryResponse.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/EbXMLQueryResponse.java @@ -26,7 +26,7 @@ * abstraction of the ebXML data structure. * @author Jens Riemschneider */ -public interface EbXMLQueryResponse extends EbXMLObjectContainer, EbXMLRegistryResponse { +public interface EbXMLQueryResponse extends EbXMLObjectContainer, EbXMLRegistryResponse { /** * Adds an object reference to the response. * @param ref diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/EbXMLRegistryResponse.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/EbXMLRegistryResponse.java index 33c0388fa0..8415545afc 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/EbXMLRegistryResponse.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/EbXMLRegistryResponse.java @@ -23,7 +23,7 @@ * Represents a ebXML {@code RegistryResponseType}. * @author Jens Riemschneider */ -public interface EbXMLRegistryResponse { +public interface EbXMLRegistryResponse { /** * @param status * the status result. @@ -49,5 +49,5 @@ public interface EbXMLRegistryResponse { /** * @return the ebXML object being wrapped by this class. */ - Object getInternal(); + E getInternal(); } diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/EbXMLRemoveMetadataRequest.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/EbXMLRemoveMetadataRequest.java index a9c216f6c5..06ce1616f8 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/EbXMLRemoveMetadataRequest.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/EbXMLRemoveMetadataRequest.java @@ -27,7 +27,7 @@ * abstraction of the ebXML data structure. * @author Jens Riemschneider */ -public interface EbXMLRemoveMetadataRequest extends EbXMLAdhocQueryRequest { +public interface EbXMLRemoveMetadataRequest extends EbXMLAdhocQueryRequest { /** * Sets the object references of the remove request. @@ -52,9 +52,4 @@ public interface EbXMLRemoveMetadataRequest extends EbXMLAdhocQueryRequest { */ void setDeletionScope(String deletionScope); - /** - * @return the wrapped ebXML representation of this request. - */ - @Override - Object getInternal(); } diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/EbXMLRetrieveDocumentSetResponse.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/EbXMLRetrieveDocumentSetResponse.java index dd0f1de431..195f38b8ad 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/EbXMLRetrieveDocumentSetResponse.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/EbXMLRetrieveDocumentSetResponse.java @@ -26,7 +26,7 @@ * abstraction of the ebXML data structure. * @author Jens Riemschneider */ -public interface EbXMLRetrieveDocumentSetResponse extends EbXMLRegistryResponse { +public interface EbXMLRetrieveDocumentSetResponse extends EbXMLRegistryResponse { /** * Sets the documents returned by the response. * @param documents diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/EbXMLRetrieveImagingDocumentSetRequest.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/EbXMLRetrieveImagingDocumentSetRequest.java index f5f6435001..22a6deb130 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/EbXMLRetrieveImagingDocumentSetRequest.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/EbXMLRetrieveImagingDocumentSetRequest.java @@ -27,7 +27,7 @@ * * @author Clay Sebourn */ -public interface EbXMLRetrieveImagingDocumentSetRequest +public interface EbXMLRetrieveImagingDocumentSetRequest { /** * Sets the retrieveStudies of the request. @@ -54,5 +54,5 @@ public interface EbXMLRetrieveImagingDocumentSetRequest /** * @return the ebXML object being wrapped by this class. */ - Object getInternal(); + E getInternal(); } diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/EbXMLSubmitObjectsRequest.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/EbXMLSubmitObjectsRequest.java index 05cc51e320..a11f3d3f8d 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/EbXMLSubmitObjectsRequest.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/EbXMLSubmitObjectsRequest.java @@ -23,9 +23,9 @@ * abstraction of the ebXML data structure. * @author Jens Riemschneider */ -public interface EbXMLSubmitObjectsRequest extends EbXMLObjectContainer, EbXMLSlotList { +public interface EbXMLSubmitObjectsRequest extends EbXMLObjectContainer, EbXMLSlotList { /** * @return the wrapped ebXML representation of this request. */ - Object getInternal(); + E getInternal(); } diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/ebxml30/EbXMLAdhocQueryRequest30.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/ebxml30/EbXMLAdhocQueryRequest30.java index 196b49d754..1335708b2f 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/ebxml30/EbXMLAdhocQueryRequest30.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/ebxml30/EbXMLAdhocQueryRequest30.java @@ -25,7 +25,7 @@ * Encapsulation of {@link AdhocQueryRequest}. * @author Jens Riemschneider */ -public class EbXMLAdhocQueryRequest30 implements EbXMLAdhocQueryRequest { +public class EbXMLAdhocQueryRequest30 implements EbXMLAdhocQueryRequest { private final AdhocQueryRequest request; /** @@ -34,7 +34,7 @@ public class EbXMLAdhocQueryRequest30 implements EbXMLAdhocQueryRequest { * the ebXML 3.0 object. */ public EbXMLAdhocQueryRequest30(AdhocQueryRequest request) { - this.request = requireNonNull(request, "request cannot be null");; + this.request = requireNonNull(request, "request cannot be null"); } @Override diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/ebxml30/EbXMLFactory30.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/ebxml30/EbXMLFactory30.java index 13e01d19ed..5d085e03d0 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/ebxml30/EbXMLFactory30.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/ebxml30/EbXMLFactory30.java @@ -31,7 +31,11 @@ import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLRetrieveDocumentSetResponse; import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLRetrieveImagingDocumentSetRequest; import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLSubmitObjectsRequest; +import org.openehealth.ipf.commons.ihe.xds.core.stub.ebrs30.lcm.RemoveObjectsRequest; import org.openehealth.ipf.commons.ihe.xds.core.stub.ebrs30.lcm.SubmitObjectsRequest; +import org.openehealth.ipf.commons.ihe.xds.core.stub.ebrs30.query.AdhocQueryRequest; +import org.openehealth.ipf.commons.ihe.xds.core.stub.ebrs30.query.AdhocQueryResponse; +import org.openehealth.ipf.commons.ihe.xds.core.stub.ebrs30.rs.RegistryResponseType; import org.openehealth.ipf.commons.ihe.xds.core.stub.xdsi.RetrieveImagingDocumentSetRequestType; @@ -95,7 +99,7 @@ public EbXMLAssociation createAssociation(String id, EbXMLObjectLibrary objectLi } @Override - public EbXMLSubmitObjectsRequest createSubmitObjectsRequest() { + public EbXMLSubmitObjectsRequest createSubmitObjectsRequest() { var request = LCM_FACTORY.createSubmitObjectsRequest(); request.setRegistryObjectList(RIM_FACTORY.createRegistryObjectListType()); request.setRequestSlotList(RIM_FACTORY.createSlotListType()); @@ -103,24 +107,24 @@ public EbXMLSubmitObjectsRequest createSubmitObjectsRequest() { } @Override - public EbXMLProvideAndRegisterDocumentSetRequest createProvideAndRegisterDocumentSetRequest(EbXMLObjectLibrary objectLibrary) { + public EbXMLProvideAndRegisterDocumentSetRequest createProvideAndRegisterDocumentSetRequest(EbXMLObjectLibrary objectLibrary) { var request = new ProvideAndRegisterDocumentSetRequestType(); - request.setSubmitObjectsRequest((SubmitObjectsRequest) createSubmitObjectsRequest().getInternal()); + request.setSubmitObjectsRequest(createSubmitObjectsRequest().getInternal()); return new EbXMLProvideAndRegisterDocumentSetRequest30(request, objectLibrary); } @Override - public EbXMLNonconstructiveDocumentSetRequest createRetrieveDocumentSetRequest() { + public EbXMLNonconstructiveDocumentSetRequest createRetrieveDocumentSetRequest() { return new EbXMLNonconstructiveDocumentSetRequest30<>(new RetrieveDocumentSetRequestType()); } @Override - public EbXMLNonconstructiveDocumentSetRequest createRemoveDocumentsRequest() { + public EbXMLNonconstructiveDocumentSetRequest createRemoveDocumentsRequest() { return new EbXMLNonconstructiveDocumentSetRequest30<>(new RemoveDocumentsRequestType()); } @Override - public EbXMLRetrieveImagingDocumentSetRequest createRetrieveImagingDocumentSetRequest() { + public EbXMLRetrieveImagingDocumentSetRequest createRetrieveImagingDocumentSetRequest() { return new EbXMLRetrieveImagingDocumentSetRequest30(new RetrieveImagingDocumentSetRequestType()); } @@ -130,19 +134,19 @@ public EbXMLObjectLibrary createObjectLibrary() { } @Override - public EbXMLRegistryResponse createRegistryResponse() { + public EbXMLRegistryResponse createRegistryResponse() { return new EbXMLRegistryResponse30(RS_FACTORY.createRegistryResponseType()); } @Override - public EbXMLRetrieveDocumentSetResponse createRetrieveDocumentSetResponse() { + public EbXMLRetrieveDocumentSetResponse createRetrieveDocumentSetResponse() { var response = new RetrieveDocumentSetResponseType(); response.setRegistryResponse(RS_FACTORY.createRegistryResponseType()); return new EbXMLRetrieveDocumentSetResponse30(response); } @Override - public EbXMLAdhocQueryRequest createAdhocQueryRequest() { + public EbXMLAdhocQueryRequest createAdhocQueryRequest() { var request = QUERY_FACTORY.createAdhocQueryRequest(); var responseOption = QUERY_FACTORY.createResponseOptionType(); @@ -156,7 +160,7 @@ public EbXMLAdhocQueryRequest createAdhocQueryRequest() { } @Override - public EbXMLQueryResponse createAdhocQueryResponse(EbXMLObjectLibrary objectLibrary, boolean returnsObjectRefs) { + public EbXMLQueryResponse createAdhocQueryResponse(EbXMLObjectLibrary objectLibrary, boolean returnsObjectRefs) { var response = QUERY_FACTORY.createAdhocQueryResponse(); response.setRegistryObjectList(RIM_FACTORY.createRegistryObjectListType()); return new EbXMLQueryResponse30(response, objectLibrary); @@ -169,7 +173,7 @@ public EbXMLRegistryError createRegistryError() { } @Override - public EbXMLRemoveMetadataRequest createRemoveMetadataRequest() { + public EbXMLRemoveMetadataRequest createRemoveMetadataRequest() { var removeObjectsRequest = LCM_FACTORY.createRemoveObjectsRequest(); return new EbXMLRemoveMetadataRequest30(removeObjectsRequest); } diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/ebxml30/EbXMLInternationalString30.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/ebxml30/EbXMLInternationalString30.java index 9b78277256..f3c51ddda4 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/ebxml30/EbXMLInternationalString30.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/ebxml30/EbXMLInternationalString30.java @@ -98,11 +98,8 @@ public LocalizedString getSingleLocalizedString() { } var locals = international.getLocalizedString(); - if (locals == null || locals.isEmpty()) { - return null; - } + return locals == null || locals.isEmpty() ? null : createLocalizedString(locals.get(0)); - return createLocalizedString(locals.get(0)); } private LocalizedString createLocalizedString(LocalizedStringType localizedEbRS30) { diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/ebxml30/EbXMLNonconstructiveDocumentSetRequest30.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/ebxml30/EbXMLNonconstructiveDocumentSetRequest30.java index 959b804347..723482b17b 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/ebxml30/EbXMLNonconstructiveDocumentSetRequest30.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/ebxml30/EbXMLNonconstructiveDocumentSetRequest30.java @@ -28,20 +28,20 @@ * The ebXML 3.0 version of the {@link EbXMLNonconstructiveDocumentSetRequest}. * @author Jens Riemschneider */ -public class EbXMLNonconstructiveDocumentSetRequest30 implements EbXMLNonconstructiveDocumentSetRequest { - private final T request; +public class EbXMLNonconstructiveDocumentSetRequest30 implements EbXMLNonconstructiveDocumentSetRequest { + private final E request; /** * Constructs a request by wrapping the given ebXML 3.0 object. * @param request * the object to wrap. */ - public EbXMLNonconstructiveDocumentSetRequest30(T request) { - this.request = requireNonNull(request, "request cannot be null");; + public EbXMLNonconstructiveDocumentSetRequest30(E request) { + this.request = requireNonNull(request, "request cannot be null"); } @Override - public T getInternal() { + public E getInternal() { return request; } diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/ebxml30/EbXMLProvideAndRegisterDocumentSetRequest30.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/ebxml30/EbXMLProvideAndRegisterDocumentSetRequest30.java index a007ad0b81..f65ac1728a 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/ebxml30/EbXMLProvideAndRegisterDocumentSetRequest30.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/ebxml30/EbXMLProvideAndRegisterDocumentSetRequest30.java @@ -36,7 +36,8 @@ * Encapsulation of {@link ProvideAndRegisterDocumentSetRequestType} * @author Jens Riemschneider */ -public class EbXMLProvideAndRegisterDocumentSetRequest30 extends EbXMLObjectContainer30 implements EbXMLProvideAndRegisterDocumentSetRequest { +public class EbXMLProvideAndRegisterDocumentSetRequest30 extends EbXMLObjectContainer30 + implements EbXMLProvideAndRegisterDocumentSetRequest { private final ProvideAndRegisterDocumentSetRequestType request; /** @@ -48,7 +49,7 @@ public class EbXMLProvideAndRegisterDocumentSetRequest30 extends EbXMLObjectCont */ public EbXMLProvideAndRegisterDocumentSetRequest30(ProvideAndRegisterDocumentSetRequestType request, EbXMLObjectLibrary objectLibrary) { super(objectLibrary); - this.request = requireNonNull(request, "request cannot be null");; + this.request = requireNonNull(request, "request cannot be null"); } /** diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/ebxml30/EbXMLQueryResponse30.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/ebxml30/EbXMLQueryResponse30.java index fb0838b947..7974dd173f 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/ebxml30/EbXMLQueryResponse30.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/ebxml30/EbXMLQueryResponse30.java @@ -36,7 +36,7 @@ * Encapsulation of {@link AdhocQueryResponse}. * @author Jens Riemschneider */ -public class EbXMLQueryResponse30 extends EbXMLObjectContainer30 implements EbXMLQueryResponse { +public class EbXMLQueryResponse30 extends EbXMLObjectContainer30 implements EbXMLQueryResponse { private final AdhocQueryResponse response; /** diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/ebxml30/EbXMLRegistryError30.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/ebxml30/EbXMLRegistryError30.java index 54693fcff4..6ca1cbe342 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/ebxml30/EbXMLRegistryError30.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/ebxml30/EbXMLRegistryError30.java @@ -28,7 +28,7 @@ public class EbXMLRegistryError30 implements EbXMLRegistryError { private final RegistryError error; public EbXMLRegistryError30(RegistryError error) { - this.error = requireNonNull(error, "registry error object cannot be null");; + this.error = requireNonNull(error, "registry error object cannot be null"); } @Override diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/ebxml30/EbXMLRegistryObject30.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/ebxml30/EbXMLRegistryObject30.java index 665001571f..32e9c2323f 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/ebxml30/EbXMLRegistryObject30.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/ebxml30/EbXMLRegistryObject30.java @@ -191,11 +191,7 @@ public String getObjectType() { @Override public EbXMLClassification getSingleClassification(String scheme) { var filtered = getClassifications(scheme); - if (filtered.isEmpty()) { - return null; - } - - return filtered.get(0); + return filtered.isEmpty() ? null : filtered.get(0); } @Override diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/ebxml30/EbXMLRegistryResponse30.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/ebxml30/EbXMLRegistryResponse30.java index ef420f5c9b..7a6858a23c 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/ebxml30/EbXMLRegistryResponse30.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/ebxml30/EbXMLRegistryResponse30.java @@ -30,7 +30,7 @@ * The ebXML 3.0 version of the {@link EbXMLRegistryResponse}. * @author Jens Riemschneider */ -public class EbXMLRegistryResponse30 implements EbXMLRegistryResponse { +public class EbXMLRegistryResponse30 implements EbXMLRegistryResponse { private final RegistryResponseType regResponse; /** diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/ebxml30/EbXMLRemoveMetadataRequest30.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/ebxml30/EbXMLRemoveMetadataRequest30.java index 9e806c08ef..aa0569fc15 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/ebxml30/EbXMLRemoveMetadataRequest30.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/ebxml30/EbXMLRemoveMetadataRequest30.java @@ -33,7 +33,7 @@ * Encapsulation of {@link RemoveObjectsRequest} * @author Boris Stanojevic */ -public class EbXMLRemoveMetadataRequest30 implements EbXMLRemoveMetadataRequest { +public class EbXMLRemoveMetadataRequest30 implements EbXMLRemoveMetadataRequest { private final RemoveObjectsRequest removeObjectsRequest; /** diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/ebxml30/EbXMLRetrieveDocumentSetResponse30.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/ebxml30/EbXMLRetrieveDocumentSetResponse30.java index 05b45df8b7..c4cf65a200 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/ebxml30/EbXMLRetrieveDocumentSetResponse30.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/ebxml30/EbXMLRetrieveDocumentSetResponse30.java @@ -33,7 +33,7 @@ * The ebXML 3.0 version of the {@link EbXMLRetrieveDocumentSetResponse}. * @author Jens Riemschneider */ -public class EbXMLRetrieveDocumentSetResponse30 implements EbXMLRetrieveDocumentSetResponse { +public class EbXMLRetrieveDocumentSetResponse30 implements EbXMLRetrieveDocumentSetResponse { private final RetrieveDocumentSetResponseType response; /** @@ -58,23 +58,26 @@ public List getDocuments() { requestData.setDocumentUniqueId(documentResponse.getDocumentUniqueId()); requestData.setHomeCommunityId(documentResponse.getHomeCommunityId()); requestData.setRepositoryUniqueId(documentResponse.getRepositoryUniqueId()); - - var doc = new RetrievedDocument(); - doc.setDataHandler(documentResponse.getDocument()); - doc.setRequestData(requestData); - doc.setNewRepositoryUniqueId(documentResponse.getNewRepositoryUniqueId()); - doc.setNewDocumentUniqueId(documentResponse.getNewDocumentUniqueId()); - if (documentResponse.getMimeType() != null) { - doc.setMimeType(documentResponse.getMimeType()); - } else if (documentResponse.getDocument() != null) { - doc.setMimeType(documentResponse.getDocument().getContentType()); - } - + var doc = getRetrievedDocument(documentResponse, requestData); docs.add(doc); } return docs; } + private static RetrievedDocument getRetrievedDocument(DocumentResponse documentResponse, DocumentReference requestData) { + var doc = new RetrievedDocument(); + doc.setDataHandler(documentResponse.getDocument()); + doc.setRequestData(requestData); + doc.setNewRepositoryUniqueId(documentResponse.getNewRepositoryUniqueId()); + doc.setNewDocumentUniqueId(documentResponse.getNewDocumentUniqueId()); + if (documentResponse.getMimeType() != null) { + doc.setMimeType(documentResponse.getMimeType()); + } else if (documentResponse.getDocument() != null) { + doc.setMimeType(documentResponse.getDocument().getContentType()); + } + return doc; + } + @Override public void setDocuments(List documents) { response.getDocumentResponse().clear(); diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/ebxml30/EbXMLRetrieveImagingDocumentSetRequest30.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/ebxml30/EbXMLRetrieveImagingDocumentSetRequest30.java index 7217b994b7..00167d9938 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/ebxml30/EbXMLRetrieveImagingDocumentSetRequest30.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/ebxml30/EbXMLRetrieveImagingDocumentSetRequest30.java @@ -34,7 +34,7 @@ * * @author Clay Sebourn */ -public class EbXMLRetrieveImagingDocumentSetRequest30 implements EbXMLRetrieveImagingDocumentSetRequest { +public class EbXMLRetrieveImagingDocumentSetRequest30 implements EbXMLRetrieveImagingDocumentSetRequest { private final RetrieveImagingDocumentSetRequestType request; /** diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/ebxml30/EbXMLSlotList30.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/ebxml30/EbXMLSlotList30.java index 5c5354247d..edb30fb855 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/ebxml30/EbXMLSlotList30.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/ebxml30/EbXMLSlotList30.java @@ -80,7 +80,7 @@ public List getSlotValues(String slotName) { @Override public String getSingleSlotValue(String slotName) { var slotValues = getSlotValues(slotName); - return slotValues.size() > 0 ? slotValues.get(0) : null; + return !slotValues.isEmpty() ? slotValues.get(0) : null; } @Override diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/ebxml30/EbXMLSubmitObjectsRequest30.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/ebxml30/EbXMLSubmitObjectsRequest30.java index 56d246ac02..be903e3c4d 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/ebxml30/EbXMLSubmitObjectsRequest30.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/ebxml30/EbXMLSubmitObjectsRequest30.java @@ -33,7 +33,7 @@ * Encapsulation of {@link SubmitObjectsRequest} * @author Jens Riemschneider */ -public class EbXMLSubmitObjectsRequest30 extends EbXMLObjectContainer30 implements EbXMLSubmitObjectsRequest { +public class EbXMLSubmitObjectsRequest30 extends EbXMLObjectContainer30 implements EbXMLSubmitObjectsRequest { private final SubmitObjectsRequest submitObjectsRequest; /** diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/ebxml30/RetrieveDocumentSetResponseType.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/ebxml30/RetrieveDocumentSetResponseType.java index 727de88829..60255b7463 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/ebxml30/RetrieveDocumentSetResponseType.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/ebxml/ebxml30/RetrieveDocumentSetResponseType.java @@ -15,6 +15,8 @@ */ package org.openehealth.ipf.commons.ihe.xds.core.ebxml.ebxml30; +import lombok.Getter; +import lombok.Setter; import org.openehealth.ipf.commons.ihe.xds.core.stub.ebrs30.rs.RegistryResponseType; import javax.activation.DataHandler; @@ -25,9 +27,9 @@ /** *

Java class for RetrieveDocumentSetResponseType complex type. - * + * *

The following schema fragment specifies the expected content contained within this class. - * + * *

  * <complexType name="RetrieveDocumentSetResponseType">
  *   <complexContent>
@@ -58,8 +60,8 @@
  *   </complexContent>
  * </complexType>
  * 
- * - * + * + * */ @XmlRootElement(name = "RetrieveDocumentSetResponse") @XmlAccessorType(XmlAccessType.FIELD) @@ -69,35 +71,13 @@ }) public class RetrieveDocumentSetResponseType { + @Setter + @Getter @XmlElement(name = "RegistryResponse", namespace = "urn:oasis:names:tc:ebxml-regrep:xsd:rs:3.0", required = true) private RegistryResponseType registryResponse; @XmlElement(name = "DocumentResponse") private List documentResponse; - /** - * Gets the value of the registryResponse property. - * - * @return - * possible object is - * {@link RegistryResponseType } - * - */ - public RegistryResponseType getRegistryResponse() { - return registryResponse; - } - - /** - * Sets the value of the registryResponse property. - * - * @param value - * allowed object is - * {@link RegistryResponseType } - * - */ - public void setRegistryResponse(RegistryResponseType value) { - registryResponse = value; - } - /** * Gets the value of the documentResponse property. * @@ -131,9 +111,9 @@ public List getDocumentRespons /** *

Java class for anonymous complex type. - * + * *

The following schema fragment specifies the expected content contained within this class. - * + * *

      * <complexType>
      *   <complexContent>
@@ -149,9 +129,10 @@ public List getDocumentRespons
      *   </complexContent>
      * </complexType>
      * 
- * - * + * + * */ + @Getter @Setter @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "", propOrder = { "homeCommunityId", @@ -166,156 +147,26 @@ public static class DocumentResponse { @XmlElement(name = "HomeCommunityId") private String homeCommunityId; + @XmlElement(name = "RepositoryUniqueId", required = true) private String repositoryUniqueId; + @XmlElement(name = "DocumentUniqueId", required = true) private String documentUniqueId; + @XmlElement(name = "NewRepositoryUniqueId") private String newRepositoryUniqueId; + @XmlElement(name = "NewDocumentUniqueId") private String newDocumentUniqueId; + @XmlElement(required = true) private String mimeType; + @XmlElement(name = "Document", required = true) @XmlMimeType("application/octet-stream") private DataHandler document; - /** - * Gets the value of the homeCommunityId property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getHomeCommunityId() { - return homeCommunityId; - } - - /** - * Sets the value of the homeCommunityId property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setHomeCommunityId(String value) { - homeCommunityId = value; - } - - /** - * Gets the value of the repositoryUniqueId property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getRepositoryUniqueId() { - return repositoryUniqueId; - } - - /** - * Sets the value of the repositoryUniqueId property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setRepositoryUniqueId(String value) { - repositoryUniqueId = value; - } - - /** - * Gets the value of the documentUniqueId property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getDocumentUniqueId() { - return documentUniqueId; - } - - /** - * Sets the value of the documentUniqueId property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setDocumentUniqueId(String value) { - documentUniqueId = value; - } - - public String getNewRepositoryUniqueId() { - return newRepositoryUniqueId; - } - - public void setNewRepositoryUniqueId(String newRepositoryUniqueId) { - this.newRepositoryUniqueId = newRepositoryUniqueId; - } - - public String getNewDocumentUniqueId() { - return newDocumentUniqueId; - } - - public void setNewDocumentUniqueId(String newDocumentUniqueId) { - this.newDocumentUniqueId = newDocumentUniqueId; - } - - /** - * Gets the value of the mimeType property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getMimeType() { - return mimeType; - } - - /** - * Sets the value of the mimeType property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setMimeType(String value) { - mimeType = value; - } - - /** - * Gets the value of the document property. - * - * @return - * possible object is - * {@link DataHandler } - * - */ - public DataHandler getDocument() { - return document; - } - - /** - * Sets the value of the document property. - * - * @param value - * allowed object is - * {@link DataHandler } - * - */ - public void setDocument(DataHandler value) { - document = value; - } - } } diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/metadata/Hl7v2Based.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/metadata/Hl7v2Based.java index e0484bf8d0..93c33219cd 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/metadata/Hl7v2Based.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/metadata/Hl7v2Based.java @@ -213,7 +213,7 @@ protected static void setAssigningAuthority(AssigningAuthority assigningAuthorit /** * Fake enclosing element for an HL7 v2 sub-component, necessary for correct rendering and parsing. */ - static class Holder extends AbstractType implements Composite { + public static class Holder extends AbstractType implements Composite { private static final long serialVersionUID = -9084300955263787034L; private final Type[] data = new Type[1]; diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/metadata/jaxbadapters/ClassificationListAdapter.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/metadata/jaxbadapters/ClassificationListAdapter.java index 121e3afd0c..347e9adadb 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/metadata/jaxbadapters/ClassificationListAdapter.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/metadata/jaxbadapters/ClassificationListAdapter.java @@ -31,7 +31,7 @@ public class ClassificationListAdapter extends XmlAdapter> { @Override - public List unmarshal(ClassificationList classificationList) throws Exception { + public List unmarshal(ClassificationList classificationList) { if (classificationList == null) { return null; } @@ -41,7 +41,7 @@ public List unmarshal(ClassificationList classificationList } @Override - public ClassificationList marshal(List ebXMLClassifications) throws Exception { + public ClassificationList marshal(List ebXMLClassifications) { if (ebXMLClassifications == null) { return null; } diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/requests/query/Query.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/requests/query/Query.java index 6ffca977ad..aa8761ea06 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/requests/query/Query.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/requests/query/Query.java @@ -85,6 +85,11 @@ public interface Visitor { void visit(FindMedicationListQuery query); // extension DE:GEMATIK void visit(FindDocumentsByTitleQuery query); + void visit(SubscriptionForDocumentEntryQuery query); + void visit(SubscriptionForFolderQuery query); + void visit(SubscriptionForPatientIndependentDocumentEntryQuery query); + void visit(SubscriptionForSubmissionSetQuery query); + void visit(SubscriptionForPatientIndependentSubmissionSetQuery query); } /** diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/requests/query/QueryType.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/requests/query/QueryType.java index 5b90bd137b..6d0a495e98 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/requests/query/QueryType.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/requests/query/QueryType.java @@ -80,7 +80,12 @@ public enum QueryType { /** Find the medication list to the patient (PHARM-1). */ @XmlEnumValue("FindMedicationList") FIND_MEDICATION_LIST("urn:uuid:80ebbd83-53c1-4453-9860-349585962af6", FindMedicationListQuery.class), /** Searches for documents by title (DE:GEMATIK). */ - @XmlEnumValue("FindDocumentsByTitle") FIND_DOCUMENTS_BY_TITLE("urn:uuid:ab474085-82b5-402d-8115-3f37cb1e2405", FindDocumentsByTitleQuery.class); + @XmlEnumValue("FindDocumentsByTitle") FIND_DOCUMENTS_BY_TITLE("urn:uuid:ab474085-82b5-402d-8115-3f37cb1e2405", FindDocumentsByTitleQuery.class), + @XmlEnumValue("SubscriptionForDocumentEntry") SUBSCRIPTION_FOR_DOCUMENT_ENTRY("urn:uuid:aa2332d0-f8fe-11e0-be50-0800200c9a66", SubscriptionForDocumentEntryQuery.class), + @XmlEnumValue("SubscriptionForPatientIndepedentDocumentEntry") SUBSCRIPTION_FOR_PATIENT_INDEPENDENT_DOCUMENT_ENTRY("urn:uuid:742790e0-aba6-43d6-9f1f-e43ed9790b79", SubscriptionForPatientIndependentDocumentEntryQuery.class), + @XmlEnumValue("SubscriptionForSubmissionSet") SUBSCRIPTION_FOR_SUBMISSION_SET("urn:uuid:fbede94e-dbdc-4f6b-bc1f-d730e677cece", SubscriptionForSubmissionSetQuery.class), + @XmlEnumValue("SubscriptionForPatientIndependentSubmissionSet") SUBSCRIPTION_FOR_PATIENT_INDEPENDENT_SUBMISSION_SET("urn:uuid:868cad3d-ec09-4565-b66c-1be10d034399", SubscriptionForPatientIndependentSubmissionSetQuery.class), + @XmlEnumValue("SubscriptionForFolder") SUBSCRIPTION_FOR_FOLDER("urn:uuid:9376254e-da05-41f5-9af3-ac56d63d8ebd", SubscriptionForFolderQuery.class); private final String id; private final Class type; diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/requests/query/SubscriptionForDocumentEntryQuery.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/requests/query/SubscriptionForDocumentEntryQuery.java new file mode 100644 index 0000000000..9d02512201 --- /dev/null +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/requests/query/SubscriptionForDocumentEntryQuery.java @@ -0,0 +1,78 @@ +/* + * Copyright 2023 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.openehealth.ipf.commons.ihe.xds.core.requests.query; + +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; +import org.openehealth.ipf.commons.ihe.xds.core.metadata.Identifiable; +import org.openehealth.ipf.commons.ihe.xds.core.metadata.ReferenceId; +import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query.QuerySlotHelper; + +import javax.xml.bind.annotation.*; + +/** + * Represents a stored query for SubscriptionFilterQuery used for ITI-52 filters + * @author Christian Ohr + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "SubscriptionForDocumentEntryQuery", propOrder = {"patientId", "referenceIds"}) +@XmlRootElement(name = "subscriptionForDocumentEntryQuery") +@EqualsAndHashCode(callSuper = true, doNotUseGetters = true) +@ToString(callSuper = true, doNotUseGetters = true) +public class SubscriptionForDocumentEntryQuery extends DocumentsQuery implements PatientIdBasedStoredQuery { + private static final long serialVersionUID = -5765363916663583605L; + + @Getter @Setter private Identifiable patientId; + + @XmlElement(name = "referenceId") + @Getter @Setter private QueryList referenceIds; + + + /** + * Constructs the query. + */ + public SubscriptionForDocumentEntryQuery() { + super(QueryType.SUBSCRIPTION_FOR_DOCUMENT_ENTRY); + } + + /** + * Allows to use a collection of {@link ReferenceId} instead of a collection of {@link String} + * for specifying the query parameter "$XDSDocumentEntryReferenceIdList". + * + * @param referenceIds a collection of {@link ReferenceId} objects with AND/OR semantics. + */ + public void setTypedReferenceIds(QueryList referenceIds) { + this.referenceIds = QuerySlotHelper.render(referenceIds); + } + + /** + * Tries to return the query parameter "$XDSDocumentEntryReferenceIdList" + * as a collection of {@link ReferenceId} instead of a collection of {@link String}. + * This may fail if SQL LIKE wildcards ("%", "_", etc.) are used in one or more elements. + * + * @return a collection of {@link ReferenceId} objects with AND/OR semantics. + */ + public QueryList getTypedReferenceIds() { + return QuerySlotHelper.parse(this.referenceIds, ReferenceId.class); + } + + @Override + public void accept(Visitor visitor) { + visitor.visit(this); + } +} diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/requests/query/SubscriptionForFolderQuery.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/requests/query/SubscriptionForFolderQuery.java new file mode 100644 index 0000000000..c6d381d3fc --- /dev/null +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/requests/query/SubscriptionForFolderQuery.java @@ -0,0 +1,57 @@ +/* + * Copyright 2023 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.openehealth.ipf.commons.ihe.xds.core.requests.query; + +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; +import org.openehealth.ipf.commons.ihe.xds.core.metadata.Code; +import org.openehealth.ipf.commons.ihe.xds.core.metadata.Identifiable; + +import javax.xml.bind.annotation.*; +import java.util.List; + +/** + * Represents a stored query for SubscriptionFilterQuery used for ITI-52 filters + * @author Christian Ohr + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "SubscriptionForFolderQuery", propOrder = {"patientId", "codes", "logicalUuid"}) +@XmlRootElement(name = "subscriptionForFolderQuery") +@EqualsAndHashCode(callSuper = true, doNotUseGetters = true) +@ToString(callSuper = true, doNotUseGetters = true) +public class SubscriptionForFolderQuery extends GetByIdQuery implements PatientIdBasedStoredQuery { + private static final long serialVersionUID = -5765363916663583605L; + + @Getter @Setter private Identifiable patientId; + @XmlElement(name = "code") + @Getter @Setter private QueryList codes; + @Getter @Setter private List logicalUuid; + + /** + * Constructs the query. + */ + public SubscriptionForFolderQuery() { + super(QueryType.SUBSCRIPTION_FOR_FOLDER); + } + + + @Override + public void accept(Visitor visitor) { + visitor.visit(this); + } +} diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/requests/query/SubscriptionForPatientIndependentDocumentEntryQuery.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/requests/query/SubscriptionForPatientIndependentDocumentEntryQuery.java new file mode 100644 index 0000000000..e01acafb6f --- /dev/null +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/requests/query/SubscriptionForPatientIndependentDocumentEntryQuery.java @@ -0,0 +1,46 @@ +/* + * Copyright 2023 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.openehealth.ipf.commons.ihe.xds.core.requests.query; + +import lombok.EqualsAndHashCode; +import lombok.ToString; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlRootElement; +import javax.xml.bind.annotation.XmlType; + +/** + * Represents a stored query for SubscriptionForPatientIndependentDocumentEntryQuery used for ITI-52 filters + * @author Christian Ohr + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "SubscriptionForPatientIndependentDocumentEntryQuery") +@XmlRootElement(name = "subscriptionForPatientIndependentDocumentEntryQuery") +@EqualsAndHashCode(callSuper = true, doNotUseGetters = true) +@ToString(callSuper = true, doNotUseGetters = true) +public class SubscriptionForPatientIndependentDocumentEntryQuery extends DocumentsQuery { + + public SubscriptionForPatientIndependentDocumentEntryQuery() { + super(QueryType.SUBSCRIPTION_FOR_PATIENT_INDEPENDENT_DOCUMENT_ENTRY); + } + + + @Override + public void accept(Visitor visitor) { + visitor.visit(this); + } +} diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/requests/query/SubscriptionForPatientIndependentSubmissionSetQuery.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/requests/query/SubscriptionForPatientIndependentSubmissionSetQuery.java new file mode 100644 index 0000000000..f8543861ed --- /dev/null +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/requests/query/SubscriptionForPatientIndependentSubmissionSetQuery.java @@ -0,0 +1,56 @@ +/* + * Copyright 2023 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.openehealth.ipf.commons.ihe.xds.core.requests.query; + +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; + +import javax.xml.bind.annotation.*; +import java.util.List; + +/** + * Represents a stored query for SubscriptionFilterQuery used for ITI-52 filters + * @author Christian Ohr + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "SubscriptionForPatientIndependentSubmissionSetQuery", propOrder = {"sourceIds", "authorPersons", "intendedRecipients"}) +@XmlRootElement(name = "subscriptionForPatientIndependentSubmissionSetQuery") +@EqualsAndHashCode(callSuper = true, doNotUseGetters = true) +@ToString(callSuper = true, doNotUseGetters = true) +public class SubscriptionForPatientIndependentSubmissionSetQuery extends StoredQuery { + + @XmlElement(name = "sourceId") + @Getter @Setter private List sourceIds; + @XmlElement(name = "authorPerson") + @Getter @Setter private List authorPersons; + @XmlElement(name = "intendedRecipient") + @Getter @Setter private List intendedRecipients; + + /** + * Constructs the query. + */ + public SubscriptionForPatientIndependentSubmissionSetQuery() { + super(QueryType.SUBSCRIPTION_FOR_PATIENT_INDEPENDENT_SUBMISSION_SET); + } + + + @Override + public void accept(Visitor visitor) { + visitor.visit(this); + } +} diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/requests/query/SubscriptionForSubmissionSetQuery.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/requests/query/SubscriptionForSubmissionSetQuery.java new file mode 100644 index 0000000000..7a82bc0049 --- /dev/null +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/requests/query/SubscriptionForSubmissionSetQuery.java @@ -0,0 +1,65 @@ +/* + * Copyright 2023 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.openehealth.ipf.commons.ihe.xds.core.requests.query; + +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; +import org.openehealth.ipf.commons.ihe.xds.core.metadata.Identifiable; + +import javax.xml.bind.annotation.*; +import java.util.List; + +/** + * Represents a stored query for SubscriptionFilterQuery used for ITI-52 filters + * @author Christian Ohr + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "SubscriptionForSubmissionSetQuery", propOrder = {"sourceIds", "authorPersons", "intendedRecipients", "patientId"}) +@XmlRootElement(name = "subscriptionForSubmissionSetQuery") +@EqualsAndHashCode(callSuper = true, doNotUseGetters = true) +@ToString(callSuper = true, doNotUseGetters = true) +public class SubscriptionForSubmissionSetQuery extends StoredQuery implements PatientIdBasedStoredQuery { + + @XmlElement(name = "sourceId") + @Getter @Setter + private List sourceIds; + + @XmlElement(name = "authorPerson") + @Getter @Setter + private List authorPersons; + + @XmlElement(name = "intendedRecipient") + @Getter @Setter + private List intendedRecipients; + + @XmlElement(name = "patientId") + @Getter @Setter private Identifiable patientId; + + /** + * Constructs the query. + */ + public SubscriptionForSubmissionSetQuery() { + super(QueryType.SUBSCRIPTION_FOR_SUBMISSION_SET); + } + + + @Override + public void accept(Visitor visitor) { + visitor.visit(this); + } +} diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/stub/ebrs30/query/AdhocQueryRequest.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/stub/ebrs30/query/AdhocQueryRequest.java index 4c08e3c3ae..671fe6daa8 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/stub/ebrs30/query/AdhocQueryRequest.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/stub/ebrs30/query/AdhocQueryRequest.java @@ -175,7 +175,7 @@ public void setFederation(String value) { * */ public BigInteger getStartIndex() { - return Objects.requireNonNullElseGet(startIndex, () -> BigInteger.ZERO); + return Objects.requireNonNullElse(startIndex, BigInteger.ZERO); } /** diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/stub/ebrs30/query/AdhocQueryResponse.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/stub/ebrs30/query/AdhocQueryResponse.java index 4b7a829865..baba61aa2f 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/stub/ebrs30/query/AdhocQueryResponse.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/stub/ebrs30/query/AdhocQueryResponse.java @@ -91,7 +91,7 @@ public void setRegistryObjectList(RegistryObjectListType value) { * */ public BigInteger getStartIndex() { - return Objects.requireNonNullElseGet(startIndex, () -> BigInteger.ZERO); + return Objects.requireNonNullElse(startIndex, BigInteger.ZERO); } /** diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/ebxml/AuthorTransformer.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/ebxml/AuthorTransformer.java index 792e9e990b..34917da68e 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/ebxml/AuthorTransformer.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/ebxml/AuthorTransformer.java @@ -27,6 +27,7 @@ import java.util.ArrayList; import java.util.List; +import java.util.Objects; /** * Transforms between an {@link Author} instance and its representation in ebXML. @@ -89,7 +90,7 @@ public Author fromEbXML(EbXMLClassification classification) { var author = new Author(); var persons = classification.getSlotValues(SLOT_NAME_AUTHOR_PERSON); - if (persons.size() > 0) { + if (!persons.isEmpty()) { var person = Hl7v2Based.parse(persons.get(0), Person.class); author.setAuthorPerson(person); } @@ -127,12 +128,10 @@ private static > void transformFrom List targetCollection, Class targetClass) { - for (var source : sourceClassification.getSlotValues(sourceSlotName)) { - var target = Hl7v2Based.parse(source, targetClass); - if (target != null) { - targetCollection.add(target); - } - } + sourceClassification.getSlotValues(sourceSlotName).stream() + .map(source -> Hl7v2Based.parse(source, targetClass)) + .filter(Objects::nonNull) + .forEach(targetCollection::add); } @@ -156,12 +155,12 @@ private static > void transformToHl7Slots( String targetSlotName) { var targetCollection = new ArrayList(); - for (var source : sourceCollection) { + sourceCollection.forEach(source -> { var target = Hl7v2Based.render(source); if (source != null) { targetCollection.add(target); } - } + }); var array = new String[targetCollection.size()]; targetClassification.addSlot(targetSlotName, targetCollection.toArray(array)); diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/ebxml/CodeTransformer.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/ebxml/CodeTransformer.java index 754c1ae369..423cef0fb7 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/ebxml/CodeTransformer.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/ebxml/CodeTransformer.java @@ -80,7 +80,7 @@ public Code fromEbXML(EbXMLClassification classification) { code.setDisplayName(classification.getName()); var slotValues = classification.getSlotValues(SLOT_NAME_CODING_SCHEME); - if (slotValues.size() > 0) { + if (!slotValues.isEmpty()) { code.setSchemeName(slotValues.get(0)); } diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/ebxml/DocumentEntryTransformer.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/ebxml/DocumentEntryTransformer.java index 65b1bc77a1..b4edf45bd2 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/ebxml/DocumentEntryTransformer.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/ebxml/DocumentEntryTransformer.java @@ -140,10 +140,9 @@ protected void addSlots(DocumentEntry docEntry, EbXMLExtrinsicObject extrinsic, extrinsic.addSlot(SLOT_NAME_SOURCE_PATIENT_INFO, slotValues.toArray(new String[0])); if (! docEntry.getReferenceIdList().isEmpty()) { - var referenceIdValues = new String[docEntry.getReferenceIdList().size()]; - for (var i = 0; i < docEntry.getReferenceIdList().size(); ++i) { - referenceIdValues[i] = Hl7v2Based.render(docEntry.getReferenceIdList().get(i)); - } + var referenceIdValues = docEntry.getReferenceIdList().stream() + .map(Hl7v2Based::render) + .toArray(String[]::new); extrinsic.addSlot(SLOT_NAME_REFERENCE_ID_LIST, referenceIdValues); } } @@ -152,9 +151,8 @@ protected void addSlots(DocumentEntry docEntry, EbXMLExtrinsicObject extrinsic, protected void addClassificationsFromEbXML(DocumentEntry docEntry, EbXMLExtrinsicObject extrinsic) { super.addClassificationsFromEbXML(docEntry, extrinsic); - for (var author : extrinsic.getClassifications(DOC_ENTRY_AUTHOR_CLASS_SCHEME)) { - docEntry.getAuthors().add(authorTransformer.fromEbXML(author)); - } + extrinsic.getClassifications(DOC_ENTRY_AUTHOR_CLASS_SCHEME) + .forEach(author -> docEntry.getAuthors().add(authorTransformer.fromEbXML(author))); var classCode = extrinsic.getSingleClassification(DOC_ENTRY_CLASS_CODE_CLASS_SCHEME); docEntry.setClassCode(codeTransformer.fromEbXML(classCode)); @@ -186,11 +184,10 @@ protected void addClassificationsFromEbXML(DocumentEntry docEntry, EbXMLExtrinsi @Override protected void addClassifications(DocumentEntry docEntry, EbXMLExtrinsicObject extrinsic, EbXMLObjectLibrary objectLibrary) { super.addClassifications(docEntry, extrinsic, objectLibrary); - - for (var author : docEntry.getAuthors()) { - var authorClasification = authorTransformer.toEbXML(author, objectLibrary); - extrinsic.addClassification(authorClasification, DOC_ENTRY_AUTHOR_CLASS_SCHEME); - } + + docEntry.getAuthors().stream() + .map(author -> authorTransformer.toEbXML(author, objectLibrary)) + .forEach(authorClassification -> extrinsic.addClassification(authorClassification, DOC_ENTRY_AUTHOR_CLASS_SCHEME)); var classCode = codeTransformer.toEbXML(docEntry.getClassCode(), objectLibrary); extrinsic.addClassification(classCode, DOC_ENTRY_CLASS_CODE_CLASS_SCHEME); @@ -206,15 +203,13 @@ protected void addClassifications(DocumentEntry docEntry, EbXMLExtrinsicObject e var typeCode = codeTransformer.toEbXML(docEntry.getTypeCode(), objectLibrary); extrinsic.addClassification(typeCode, DOC_ENTRY_TYPE_CODE_CLASS_SCHEME); - - for (var confCode : docEntry.getConfidentialityCodes()) { - var conf = codeTransformer.toEbXML(confCode, objectLibrary); - extrinsic.addClassification(conf, DOC_ENTRY_CONFIDENTIALITY_CODE_CLASS_SCHEME); - } - - for (var eventCode : docEntry.getEventCodeList()) { - var event = codeTransformer.toEbXML(eventCode, objectLibrary); - extrinsic.addClassification(event, DOC_ENTRY_EVENT_CODE_CLASS_SCHEME); - } + + docEntry.getConfidentialityCodes().stream() + .map(confCode -> codeTransformer.toEbXML(confCode, objectLibrary)) + .forEach(conf -> extrinsic.addClassification(conf, DOC_ENTRY_CONFIDENTIALITY_CODE_CLASS_SCHEME)); + + docEntry.getEventCodeList().stream() + .map(eventCode -> codeTransformer.toEbXML(eventCode, objectLibrary)) + .forEach(event -> extrinsic.addClassification(event, DOC_ENTRY_EVENT_CODE_CLASS_SCHEME)); } } diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/ebxml/FolderTransformer.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/ebxml/FolderTransformer.java index 848f35bad1..0c0dc6eb81 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/ebxml/FolderTransformer.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/ebxml/FolderTransformer.java @@ -99,10 +99,9 @@ protected void addClassificationsFromEbXML(Folder folder, EbXMLRegistryPackage r @Override protected void addClassifications(Folder folder, EbXMLRegistryPackage regPackage, EbXMLObjectLibrary objectLibrary) { super.addClassifications(folder, regPackage, objectLibrary); - - for (var codeListElem : folder.getCodeList()) { - var code = codeTransformer.toEbXML(codeListElem, objectLibrary); - regPackage.addClassification(code, FOLDER_CODE_LIST_CLASS_SCHEME); - } + + folder.getCodeList().stream() + .map(codeListElem -> codeTransformer.toEbXML(codeListElem, objectLibrary)) + .forEach(code -> regPackage.addClassification(code, FOLDER_CODE_LIST_CLASS_SCHEME)); } } diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/ebxml/SubmissionSetTransformer.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/ebxml/SubmissionSetTransformer.java index 4553ac4072..9a050d5a65 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/ebxml/SubmissionSetTransformer.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/ebxml/SubmissionSetTransformer.java @@ -111,10 +111,9 @@ protected void addSlotsFromEbXML(SubmissionSet metaData, EbXMLRegistryPackage eb @Override protected void addClassificationsFromEbXML(SubmissionSet set, EbXMLRegistryPackage regPackage) { super.addClassificationsFromEbXML(set, regPackage); - - for (var author : regPackage.getClassifications(SUBMISSION_SET_AUTHOR_CLASS_SCHEME)) { - set.getAuthors().add(authorTransformer.fromEbXML(author)); - } + + regPackage.getClassifications(SUBMISSION_SET_AUTHOR_CLASS_SCHEME).forEach(author -> + set.getAuthors().add(authorTransformer.fromEbXML(author))); var contentType = regPackage.getSingleClassification(SUBMISSION_SET_CONTENT_TYPE_CODE_CLASS_SCHEME); set.setContentTypeCode(codeTransformer.fromEbXML(contentType)); @@ -123,11 +122,10 @@ protected void addClassificationsFromEbXML(SubmissionSet set, EbXMLRegistryPacka @Override protected void addClassifications(SubmissionSet set, EbXMLRegistryPackage regPackage, EbXMLObjectLibrary objectLibrary) { super.addClassifications(set, regPackage, objectLibrary); - - for (var author : set.getAuthors()) { - var authorClasification = authorTransformer.toEbXML(author, objectLibrary); - regPackage.addClassification(authorClasification, SUBMISSION_SET_AUTHOR_CLASS_SCHEME); - } + + set.getAuthors().stream() + .map(author -> authorTransformer.toEbXML(author, objectLibrary)) + .forEach(authorClassification -> regPackage.addClassification(authorClassification, SUBMISSION_SET_AUTHOR_CLASS_SCHEME)); var contentType = codeTransformer.toEbXML(set.getContentTypeCode(), objectLibrary); regPackage.addClassification(contentType, SUBMISSION_SET_CONTENT_TYPE_CODE_CLASS_SCHEME); diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/FromEbXMLVisitor.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/FromEbXMLVisitor.java index 05635a34bc..c1fb8a686b 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/FromEbXMLVisitor.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/FromEbXMLVisitor.java @@ -20,6 +20,7 @@ import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLAdhocQueryRequest; import org.openehealth.ipf.commons.ihe.xds.core.requests.query.*; import org.openehealth.ipf.commons.ihe.xds.core.requests.query.Query.Visitor; +import org.openehealth.ipf.commons.ihe.xds.core.stub.ebrs30.query.AdhocQueryRequest; import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query.*; /** @@ -27,140 +28,165 @@ * @author Jens Riemschneider */ final class FromEbXMLVisitor implements Visitor { - private final EbXMLAdhocQueryRequest ebXML; + private final EbXMLAdhocQueryRequest ebXML; /** * Constructs the visitor. * @param ebXML * the ebXML object that is transformed. */ - FromEbXMLVisitor(EbXMLAdhocQueryRequest ebXML) { + FromEbXMLVisitor(EbXMLAdhocQueryRequest ebXML) { requireNonNull(ebXML, "ebXML cannot be null"); this.ebXML = ebXML; } @Override public void visit(FindDocumentsQuery query) { - new FindDocumentsQueryTransformer<>().fromEbXML(query, ebXML); + FindDocumentsQueryTransformer.getInstance().fromEbXML(query, ebXML); } @Override public void visit(FindDocumentsForMultiplePatientsQuery query) { - new FindDocumentsForMultiplePatientsQueryTransformer().fromEbXML(query, ebXML); + FindDocumentsForMultiplePatientsQueryTransformer.getInstance().fromEbXML(query, ebXML); } @Override public void visit(FindFoldersQuery query) { - new FindFoldersQueryTransformer().fromEbXML(query, ebXML); + FindFoldersQueryTransformer.getInstance().fromEbXML(query, ebXML); } @Override public void visit(FindFoldersForMultiplePatientsQuery query) { - new FindFoldersForMultiplePatientsQueryTransformer().fromEbXML(query, ebXML); + FindFoldersForMultiplePatientsQueryTransformer.getInstance().fromEbXML(query, ebXML); } @Override public void visit(GetSubmissionSetsQuery query) { - new GetSubmissionSetsQueryTransformer().fromEbXML(query, ebXML); + GetSubmissionSetsQueryTransformer.getInstance().fromEbXML(query, ebXML); } @Override public void visit(GetSubmissionSetAndContentsQuery query) { - new GetSubmissionSetAndContentsQueryTransformer().fromEbXML(query, ebXML); + GetSubmissionSetAndContentsQueryTransformer.getInstance().fromEbXML(query, ebXML); } @Override public void visit(GetRelatedDocumentsQuery query) { - new GetRelatedDocumentsQueryTransformer().fromEbXML(query, ebXML); + GetRelatedDocumentsQueryTransformer.getInstance().fromEbXML(query, ebXML); } @Override public void visit(GetFoldersQuery query) { - new GetFoldersQueryTransformer().fromEbXML(query, ebXML); + GetFoldersQueryTransformer.getInstance().fromEbXML(query, ebXML); } @Override public void visit(GetFoldersForDocumentQuery query) { - new GetFoldersForDocumentQueryTransformer().fromEbXML(query, ebXML); + GetFoldersForDocumentQueryTransformer.getInstance().fromEbXML(query, ebXML); } @Override public void visit(GetFolderAndContentsQuery query) { - new GetFolderAndContentsQueryTransformer().fromEbXML(query, ebXML); + GetFolderAndContentsQueryTransformer.getInstance().fromEbXML(query, ebXML); } @Override public void visit(GetDocumentsQuery query) { - new GetDocumentsQueryTransformer().fromEbXML(query, ebXML); + GetDocumentsQueryTransformer.getInstance().fromEbXML(query, ebXML); } @Override public void visit(GetDocumentsAndAssociationsQuery query) { - new GetDocumentsAndAssociationsQueryTransformer().fromEbXML(query, ebXML); + GetDocumentsAndAssociationsQueryTransformer.getInstance().fromEbXML(query, ebXML); } @Override public void visit(GetAssociationsQuery query) { - new GetAssociationsQueryTransformer().fromEbXML(query, ebXML); + GetAssociationsQueryTransformer.getInstance().fromEbXML(query, ebXML); } @Override public void visit(GetAllQuery query) { - new GetAllQueryTransformer().fromEbXML(query, ebXML); + GetAllQueryTransformer.getInstance().fromEbXML(query, ebXML); } @Override public void visit(FindSubmissionSetsQuery query) { - new FindSubmissionSetsQueryTransformer().fromEbXML(query, ebXML); + FindSubmissionSetsQueryTransformer.getInstance().fromEbXML(query, ebXML); } @Override public void visit(FetchQuery query) { - new FetchQueryTransformer().fromEbXML(query, ebXML); + FetchQueryTransformer.getInstance().fromEbXML(query, ebXML); } @Override public void visit(FindDocumentsByReferenceIdQuery query) { - new FindDocumentsByReferenceIdQueryTransformer().fromEbXML(query, ebXML); + FindDocumentsByReferenceIdQueryTransformer.getInstance().fromEbXML(query, ebXML); } @Override public void visit(FindMedicationTreatmentPlansQuery query) { - new FindMedicationTreatmentPlansQueryTransformer().fromEbXML(query, ebXML); + FindMedicationTreatmentPlansQueryTransformer.getInstance().fromEbXML(query, ebXML); } @Override public void visit(FindPrescriptionsQuery query) { - new FindPrescriptionsQueryTransformer().fromEbXML(query, ebXML); + FindPrescriptionsQueryTransformer.getInstance().fromEbXML(query, ebXML); } @Override public void visit(FindDispensesQuery query) { - new FindDispensesQueryTransformer().fromEbXML(query, ebXML); + FindDispensesQueryTransformer.getInstance().fromEbXML(query, ebXML); } @Override public void visit(FindMedicationAdministrationsQuery query) { - new FindMedicationAdministrationsQueryTransformer().fromEbXML(query, ebXML); + FindMedicationAdministrationsQueryTransformer.getInstance().fromEbXML(query, ebXML); } @Override public void visit(FindPrescriptionsForValidationQuery query) { - new FindPrescriptionsForValidationQueryTransformer().fromEbXML(query, ebXML); + FindPrescriptionsForValidationQueryTransformer.getInstance().fromEbXML(query, ebXML); } @Override public void visit(FindPrescriptionsForDispenseQuery query) { - new FindPrescriptionsForDispenseQueryTransformer().fromEbXML(query, ebXML); + FindPrescriptionsForDispenseQueryTransformer.getInstance().fromEbXML(query, ebXML); } @Override public void visit(FindMedicationListQuery query) { - new FindMedicationListQueryTransformer().fromEbXML(query, ebXML); + FindMedicationListQueryTransformer.getInstance().fromEbXML(query, ebXML); } @Override public void visit(FindDocumentsByTitleQuery query) { - new FindDocumentsByTitleQueryTransformer().fromEbXML(query, ebXML); + FindDocumentsByTitleQueryTransformer.getInstance().fromEbXML(query, ebXML); + } + + @Override + public void visit(SubscriptionForDocumentEntryQuery query) { + SubscriptionForDocumentEntryQueryTransformer.getInstance().fromEbXML(query, ebXML); + } + + @Override + public void visit(SubscriptionForFolderQuery query) { + SubscriptionForFolderQueryTransformer.getInstance().fromEbXML(query, ebXML); + } + + @Override + public void visit(SubscriptionForPatientIndependentDocumentEntryQuery query) { + SubscriptionForPatientIndependentDocumentEntryQueryTransformer.getInstance().fromEbXML(query, ebXML); + } + + @Override + public void visit(SubscriptionForSubmissionSetQuery query) { + SubscriptionForSubmissionSetQueryTransformer.getInstance().fromEbXML(query, ebXML); + } + + @Override + public void visit(SubscriptionForPatientIndependentSubmissionSetQuery query) { + SubscriptionForPatientIndependentSubmissionSetQueryTransformer.getInstance().fromEbXML(query, ebXML); } } diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ProvideAndRegisterDocumentSetTransformer.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ProvideAndRegisterDocumentSetTransformer.java index 96f35852fb..48823f1a0a 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ProvideAndRegisterDocumentSetTransformer.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ProvideAndRegisterDocumentSetTransformer.java @@ -17,6 +17,7 @@ import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLFactory; import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLProvideAndRegisterDocumentSetRequest; +import org.openehealth.ipf.commons.ihe.xds.core.ebxml.ebxml30.ProvideAndRegisterDocumentSetRequestType; import org.openehealth.ipf.commons.ihe.xds.core.metadata.Document; import org.openehealth.ipf.commons.ihe.xds.core.metadata.DocumentEntryType; import org.openehealth.ipf.commons.ihe.xds.core.requests.ProvideAndRegisterDocumentSet; @@ -47,7 +48,7 @@ public ProvideAndRegisterDocumentSetTransformer(EbXMLFactory factory) { * the request. Can be null. * @return the ebXML representation. null if the input was null. */ - public EbXMLProvideAndRegisterDocumentSetRequest toEbXML(ProvideAndRegisterDocumentSet request) { + public EbXMLProvideAndRegisterDocumentSetRequest toEbXML(ProvideAndRegisterDocumentSet request) { if (request == null) { return null; } @@ -86,7 +87,7 @@ public EbXMLProvideAndRegisterDocumentSetRequest toEbXML(ProvideAndRegisterDocum * the ebXML representation. Can be null. * @return the request. null if the input was null. */ - public ProvideAndRegisterDocumentSet fromEbXML(EbXMLProvideAndRegisterDocumentSetRequest ebXML) { + public ProvideAndRegisterDocumentSet fromEbXML(EbXMLProvideAndRegisterDocumentSetRequest ebXML) { if (ebXML == null) { return null; } @@ -113,7 +114,7 @@ public ProvideAndRegisterDocumentSet fromEbXML(EbXMLProvideAndRegisterDocumentSe } var regPackages = ebXML.getRegistryPackages(SUBMISSION_SET_CLASS_NODE); - if (regPackages.size() > 0) { + if (!regPackages.isEmpty()) { request.setSubmissionSet(submissionSetTransformer.fromEbXML(regPackages.get(0))); } diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/QueryParameter.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/QueryParameter.java index 0dd49d5e50..5c71585a03 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/QueryParameter.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/QueryParameter.java @@ -128,6 +128,8 @@ public enum QueryParameter { SUBMISSION_SET_SUBMISSION_TIME_TO("$XDSSubmissionSetSubmissionTimeTo"), /** Used to filter {@link SubmissionSet#getAuthors()}. */ SUBMISSION_SET_AUTHOR_PERSON("$XDSSubmissionSetAuthorPerson"), + /** Used to filter {@link SubmissionSet#getIntendedRecipients()} ()}. */ + SUBMISSION_SET_INTENDED_RECIPIENT("$XDSSubmissionSetIntendedRecipient "), /** Used to filter {@link SubmissionSet#getContentTypeCode()}. */ SUBMISSION_SET_CONTENT_TYPE_CODE("$XDSSubmissionSetContentType"), /** Used to filter {@link SubmissionSet#getContentTypeCode()}. */ diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/QueryRegistryTransformer.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/QueryRegistryTransformer.java index b29a006974..152c570c41 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/QueryRegistryTransformer.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/QueryRegistryTransformer.java @@ -22,6 +22,7 @@ import org.openehealth.ipf.commons.ihe.xds.core.requests.query.Query; import org.openehealth.ipf.commons.ihe.xds.core.requests.query.QueryReturnType; import org.openehealth.ipf.commons.ihe.xds.core.requests.query.QueryType; +import org.openehealth.ipf.commons.ihe.xds.core.stub.ebrs30.query.AdhocQueryRequest; import java.lang.reflect.InvocationTargetException; @@ -30,15 +31,23 @@ * @author Jens Riemschneider */ public class QueryRegistryTransformer { - private final EbXMLFactory factory30 = new EbXMLFactory30(); - + private final EbXMLFactory factory30; + + public QueryRegistryTransformer() { + this(new EbXMLFactory30()); + } + + public QueryRegistryTransformer(EbXMLFactory factory30) { + this.factory30 = factory30; + } + /** * Transforms the request into its ebXML representation. * @param request * the request. Can be null. * @return the ebXML representation. null if the input was null. */ - public EbXMLAdhocQueryRequest toEbXML(QueryRegistry request) { + public EbXMLAdhocQueryRequest toEbXML(QueryRegistry request) { if (request == null) { return null; } @@ -58,7 +67,7 @@ public EbXMLAdhocQueryRequest toEbXML(QueryRegistry request) { * the ebXML representation. Can be null. * @return the request. null if the input was null. */ - public QueryRegistry fromEbXML(EbXMLAdhocQueryRequest ebXML) { + public QueryRegistry fromEbXML(EbXMLAdhocQueryRequest ebXML) { if (ebXML == null) { return null; } @@ -86,7 +95,7 @@ private Query createQuery(QueryType queryType) { } } - private EbXMLAdhocQueryRequest createAdhocQueryRequest() { + private EbXMLAdhocQueryRequest createAdhocQueryRequest() { return factory30.createAdhocQueryRequest(); } } diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/RegisterDocumentSetTransformer.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/RegisterDocumentSetTransformer.java index 2e1b995dd3..2da197a823 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/RegisterDocumentSetTransformer.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/RegisterDocumentSetTransformer.java @@ -20,6 +20,7 @@ import org.openehealth.ipf.commons.ihe.xds.core.metadata.DocumentEntryType; import org.openehealth.ipf.commons.ihe.xds.core.metadata.Vocabulary; import org.openehealth.ipf.commons.ihe.xds.core.requests.RegisterDocumentSet; +import org.openehealth.ipf.commons.ihe.xds.core.stub.ebrs30.lcm.SubmitObjectsRequest; import org.openehealth.ipf.commons.ihe.xds.core.transform.ebxml.LeafClassTransformer; import static java.util.Objects.requireNonNull; @@ -45,7 +46,7 @@ public RegisterDocumentSetTransformer(EbXMLFactory factory) { * the request. Can be null. * @return the ebXML representation. null if the input was null. */ - public EbXMLSubmitObjectsRequest toEbXML(RegisterDocumentSet request) { + public EbXMLSubmitObjectsRequest toEbXML(RegisterDocumentSet request) { requireNonNull(request, "request cannot be null"); var ebXML = factory.createSubmitObjectsRequest(); @@ -74,7 +75,7 @@ public EbXMLSubmitObjectsRequest toEbXML(RegisterDocumentSet request) { * the ebXML representation. Can be null. * @return the request. null if the input was null. */ - public RegisterDocumentSet fromEbXML(EbXMLSubmitObjectsRequest ebXML) { + public RegisterDocumentSet fromEbXML(EbXMLSubmitObjectsRequest ebXML) { requireNonNull(ebXML, "ebXML cannot be null"); var request = new RegisterDocumentSet(); @@ -88,7 +89,7 @@ public RegisterDocumentSet fromEbXML(EbXMLSubmitObjectsRequest ebXML) { } var regPackages = ebXML.getRegistryPackages(Vocabulary.SUBMISSION_SET_CLASS_NODE); - if (regPackages.size() > 0) { + if (!regPackages.isEmpty()) { request.setSubmissionSet(submissionSetTransformer.fromEbXML(regPackages.get(0))); } diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/RemoveDocumentsRequestTransformer.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/RemoveDocumentsRequestTransformer.java index 8288b636a7..d70f276897 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/RemoveDocumentsRequestTransformer.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/RemoveDocumentsRequestTransformer.java @@ -17,6 +17,7 @@ import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLFactory; import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLNonconstructiveDocumentSetRequest; +import org.openehealth.ipf.commons.ihe.xds.core.ebxml.ebxml30.RemoveDocumentsRequestType; import org.openehealth.ipf.commons.ihe.xds.core.requests.RemoveDocuments; import static java.util.Objects.requireNonNull; @@ -43,7 +44,7 @@ public RemoveDocumentsRequestTransformer(EbXMLFactory factory) { * the request. Can be null. * @return the ebXML representation. null if the input was null. */ - public EbXMLNonconstructiveDocumentSetRequest toEbXML(RemoveDocuments request) { + public EbXMLNonconstructiveDocumentSetRequest toEbXML(RemoveDocuments request) { if (request == null) { return null; } @@ -59,7 +60,7 @@ public EbXMLNonconstructiveDocumentSetRequest toEbXML(RemoveDocuments request) { * the ebXML representation. Can be null. * @return the request. null if the input was null. */ - public RemoveDocuments fromEbXML(EbXMLNonconstructiveDocumentSetRequest ebXML) { + public RemoveDocuments fromEbXML(EbXMLNonconstructiveDocumentSetRequest ebXML) { if (ebXML == null) { return null; } diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/RemoveMetadataRequestTransformer.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/RemoveMetadataRequestTransformer.java index 22b2244cab..b863b79568 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/RemoveMetadataRequestTransformer.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/RemoveMetadataRequestTransformer.java @@ -19,6 +19,7 @@ import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLRemoveMetadataRequest; import org.openehealth.ipf.commons.ihe.xds.core.ebxml.ebxml30.EbXMLFactory30; import org.openehealth.ipf.commons.ihe.xds.core.requests.RemoveMetadata; +import org.openehealth.ipf.commons.ihe.xds.core.stub.ebrs30.lcm.RemoveObjectsRequest; /** * Transforms between a {@link RemoveMetadata} and its ebXML representation. @@ -39,7 +40,7 @@ public RemoveMetadataRequestTransformer() { * the request. Can be null. * @return the ebXML representation. null if the input was null. */ - public EbXMLRemoveMetadataRequest toEbXML(RemoveMetadata request) { + public EbXMLRemoveMetadataRequest toEbXML(RemoveMetadata request) { if (request == null) { return null; } @@ -56,7 +57,7 @@ public EbXMLRemoveMetadataRequest toEbXML(RemoveMetadata request) { * the ebXML representation. Can be null. * @return the request. null if the input was null. */ - public RemoveMetadata fromEbXML(EbXMLRemoveMetadataRequest ebXML) { + public RemoveMetadata fromEbXML(EbXMLRemoveMetadataRequest ebXML) { if (ebXML == null) { return null; } diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/RetrieveDocumentSetRequestTransformer.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/RetrieveDocumentSetRequestTransformer.java index 44630267f7..32474d2f39 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/RetrieveDocumentSetRequestTransformer.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/RetrieveDocumentSetRequestTransformer.java @@ -19,8 +19,10 @@ import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLFactory; import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLNonconstructiveDocumentSetRequest; +import org.openehealth.ipf.commons.ihe.xds.core.ebxml.ebxml30.RetrieveDocumentSetRequestType; import org.openehealth.ipf.commons.ihe.xds.core.requests.RetrieveDocumentSet; + /** * Transforms between a {@link EbXMLNonconstructiveDocumentSetRequest} and its ebXML representation. * @author Jens Riemschneider @@ -44,7 +46,7 @@ public RetrieveDocumentSetRequestTransformer(EbXMLFactory factory) { * the request. Can be null. * @return the ebXML representation. null if the input was null. */ - public EbXMLNonconstructiveDocumentSetRequest toEbXML(RetrieveDocumentSet request) { + public EbXMLNonconstructiveDocumentSetRequest toEbXML(RetrieveDocumentSet request) { if (request == null) { return null; } @@ -60,7 +62,7 @@ public EbXMLNonconstructiveDocumentSetRequest toEbXML(RetrieveDocumentSet reques * the ebXML representation. Can be null. * @return the request. null if the input was null. */ - public RetrieveDocumentSet fromEbXML(EbXMLNonconstructiveDocumentSetRequest ebXML) { + public RetrieveDocumentSet fromEbXML(EbXMLNonconstructiveDocumentSetRequest ebXML) { if (ebXML == null) { return null; } diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/RetrieveImagingDocumentSetRequestTransformer.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/RetrieveImagingDocumentSetRequestTransformer.java index 67dd8d4346..e0eebdbd78 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/RetrieveImagingDocumentSetRequestTransformer.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/RetrieveImagingDocumentSetRequestTransformer.java @@ -18,6 +18,7 @@ import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLFactory; import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLRetrieveImagingDocumentSetRequest; import org.openehealth.ipf.commons.ihe.xds.core.requests.RetrieveImagingDocumentSet; +import org.openehealth.ipf.commons.ihe.xds.core.stub.xdsi.RetrieveImagingDocumentSetRequestType; import static java.util.Objects.requireNonNull; @@ -45,7 +46,7 @@ public RetrieveImagingDocumentSetRequestTransformer(EbXMLFactory factory) { * @param request The request. Can be null. * @return the ebXML representation. null if the input was null. */ - public EbXMLRetrieveImagingDocumentSetRequest toEbXML(RetrieveImagingDocumentSet request) { + public EbXMLRetrieveImagingDocumentSetRequest toEbXML(RetrieveImagingDocumentSet request) { if (request == null) { return null; } @@ -61,7 +62,7 @@ public EbXMLRetrieveImagingDocumentSetRequest toEbXML(RetrieveImagingDocumentSet * @param ebXML The ebXML representation. Can be null. * @return the request. null if the input was null. */ - public RetrieveImagingDocumentSet fromEbXML(EbXMLRetrieveImagingDocumentSetRequest ebXML) { + public RetrieveImagingDocumentSet fromEbXML(EbXMLRetrieveImagingDocumentSetRequest ebXML) { if (ebXML == null) { return null; } diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ToEbXMLVisitor.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ToEbXMLVisitor.java index 71ad00d6c8..dd8550b156 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ToEbXMLVisitor.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ToEbXMLVisitor.java @@ -20,6 +20,7 @@ import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLAdhocQueryRequest; import org.openehealth.ipf.commons.ihe.xds.core.requests.query.*; import org.openehealth.ipf.commons.ihe.xds.core.requests.query.Query.Visitor; +import org.openehealth.ipf.commons.ihe.xds.core.stub.ebrs30.query.AdhocQueryRequest; import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query.*; /** @@ -27,139 +28,164 @@ * @author Jens Riemschneider */ final class ToEbXMLVisitor implements Visitor { - private final EbXMLAdhocQueryRequest ebXML; + private final EbXMLAdhocQueryRequest ebXML; /** * Constructs the visitor. * @param ebXML * the ebXML result. */ - ToEbXMLVisitor(EbXMLAdhocQueryRequest ebXML) { + ToEbXMLVisitor(EbXMLAdhocQueryRequest ebXML) { this.ebXML = requireNonNull(ebXML, "ebXML cannot be null"); } @Override public void visit(FindDocumentsQuery query) { - new FindDocumentsQueryTransformer<>().toEbXML(query, ebXML); + FindDocumentsQueryTransformer.getInstance().toEbXML(query, ebXML); } @Override public void visit(FindDocumentsForMultiplePatientsQuery query) { - new FindDocumentsForMultiplePatientsQueryTransformer().toEbXML(query, ebXML); + FindDocumentsForMultiplePatientsQueryTransformer.getInstance().toEbXML(query, ebXML); } @Override public void visit(FindFoldersQuery query) { - new FindFoldersQueryTransformer().toEbXML(query, ebXML); + FindFoldersQueryTransformer.getInstance().toEbXML(query, ebXML); } @Override public void visit(FindFoldersForMultiplePatientsQuery query) { - new FindFoldersForMultiplePatientsQueryTransformer().toEbXML(query, ebXML); + FindFoldersForMultiplePatientsQueryTransformer.getInstance().toEbXML(query, ebXML); } @Override public void visit(GetSubmissionSetsQuery query) { - new GetSubmissionSetsQueryTransformer().toEbXML(query, ebXML); + GetSubmissionSetsQueryTransformer.getInstance().toEbXML(query, ebXML); } @Override public void visit(GetSubmissionSetAndContentsQuery query) { - new GetSubmissionSetAndContentsQueryTransformer().toEbXML(query, ebXML); + GetSubmissionSetAndContentsQueryTransformer.getInstance().toEbXML(query, ebXML); } @Override public void visit(GetRelatedDocumentsQuery query) { - new GetRelatedDocumentsQueryTransformer().toEbXML(query, ebXML); + GetRelatedDocumentsQueryTransformer.getInstance().toEbXML(query, ebXML); } @Override public void visit(GetFoldersQuery query) { - new GetFoldersQueryTransformer().toEbXML(query, ebXML); + GetFoldersQueryTransformer.getInstance().toEbXML(query, ebXML); } @Override public void visit(GetFoldersForDocumentQuery query) { - new GetFoldersForDocumentQueryTransformer().toEbXML(query, ebXML); + GetFoldersForDocumentQueryTransformer.getInstance().toEbXML(query, ebXML); } @Override public void visit(GetFolderAndContentsQuery query) { - new GetFolderAndContentsQueryTransformer().toEbXML(query, ebXML); + GetFolderAndContentsQueryTransformer.getInstance().toEbXML(query, ebXML); } @Override public void visit(GetDocumentsQuery query) { - new GetDocumentsQueryTransformer().toEbXML(query, ebXML); + GetDocumentsQueryTransformer.getInstance().toEbXML(query, ebXML); } @Override public void visit(GetDocumentsAndAssociationsQuery query) { - new GetDocumentsAndAssociationsQueryTransformer().toEbXML(query, ebXML); + GetDocumentsAndAssociationsQueryTransformer.getInstance().toEbXML(query, ebXML); } @Override public void visit(GetAssociationsQuery query) { - new GetAssociationsQueryTransformer().toEbXML(query, ebXML); + GetAssociationsQueryTransformer.getInstance().toEbXML(query, ebXML); } @Override public void visit(GetAllQuery query) { - new GetAllQueryTransformer().toEbXML(query, ebXML); + GetAllQueryTransformer.getInstance().toEbXML(query, ebXML); } @Override public void visit(FindSubmissionSetsQuery query) { - new FindSubmissionSetsQueryTransformer().toEbXML(query, ebXML); + FindSubmissionSetsQueryTransformer.getInstance().toEbXML(query, ebXML); } @Override public void visit(FetchQuery query) { - new FetchQueryTransformer().toEbXML(query, ebXML); + FetchQueryTransformer.getInstance().toEbXML(query, ebXML); } @Override public void visit(FindDocumentsByReferenceIdQuery query) { - new FindDocumentsByReferenceIdQueryTransformer().toEbXML(query, ebXML); + FindDocumentsByReferenceIdQueryTransformer.getInstance().toEbXML(query, ebXML); } @Override public void visit(FindMedicationTreatmentPlansQuery query) { - new FindMedicationTreatmentPlansQueryTransformer().toEbXML(query, ebXML); + FindMedicationTreatmentPlansQueryTransformer.getInstance().toEbXML(query, ebXML); } @Override public void visit(FindPrescriptionsQuery query) { - new FindPrescriptionsQueryTransformer().toEbXML(query, ebXML); + FindPrescriptionsQueryTransformer.getInstance().toEbXML(query, ebXML); } @Override public void visit(FindDispensesQuery query) { - new FindDispensesQueryTransformer().toEbXML(query, ebXML); + FindDispensesQueryTransformer.getInstance().toEbXML(query, ebXML); } @Override public void visit(FindMedicationAdministrationsQuery query) { - new FindMedicationAdministrationsQueryTransformer().toEbXML(query, ebXML); + FindMedicationAdministrationsQueryTransformer.getInstance().toEbXML(query, ebXML); } @Override public void visit(FindPrescriptionsForValidationQuery query) { - new FindPrescriptionsForValidationQueryTransformer().toEbXML(query, ebXML); + FindPrescriptionsForValidationQueryTransformer.getInstance().toEbXML(query, ebXML); } @Override public void visit(FindPrescriptionsForDispenseQuery query) { - new FindPrescriptionsForDispenseQueryTransformer().toEbXML(query, ebXML); + FindPrescriptionsForDispenseQueryTransformer.getInstance().toEbXML(query, ebXML); } @Override public void visit(FindMedicationListQuery query) { - new FindMedicationListQueryTransformer().toEbXML(query, ebXML); + FindMedicationListQueryTransformer.getInstance().toEbXML(query, ebXML); } @Override public void visit(FindDocumentsByTitleQuery query) { - new FindDocumentsByTitleQueryTransformer().toEbXML(query, ebXML); + FindDocumentsByTitleQueryTransformer.getInstance().toEbXML(query, ebXML); + } + + @Override + public void visit(SubscriptionForDocumentEntryQuery query) { + SubscriptionForDocumentEntryQueryTransformer.getInstance().toEbXML(query, ebXML); + } + + @Override + public void visit(SubscriptionForPatientIndependentDocumentEntryQuery query) { + SubscriptionForPatientIndependentDocumentEntryQueryTransformer.getInstance().toEbXML(query, ebXML); + } + + @Override + public void visit(SubscriptionForSubmissionSetQuery query) { + SubscriptionForSubmissionSetQueryTransformer.getInstance().toEbXML(query, ebXML); + } + + @Override + public void visit(SubscriptionForPatientIndependentSubmissionSetQuery query) { + SubscriptionForPatientIndependentSubmissionSetQueryTransformer.getInstance().toEbXML(query, ebXML); + } + + @Override + public void visit(SubscriptionForFolderQuery query) { + SubscriptionForFolderQueryTransformer.getInstance().toEbXML(query, ebXML); } } diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/AbstractFindDocumentsQueryTransformer.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/AbstractFindDocumentsQueryTransformer.java new file mode 100644 index 0000000000..304719f46f --- /dev/null +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/AbstractFindDocumentsQueryTransformer.java @@ -0,0 +1,52 @@ +/* + * Copyright 2023 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query; + +import org.openehealth.ipf.commons.ihe.xds.core.metadata.Hl7v2Based; +import org.openehealth.ipf.commons.ihe.xds.core.metadata.Identifiable; +import org.openehealth.ipf.commons.ihe.xds.core.requests.query.FindDocumentsQuery; + +import static org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryParameter.*; + +/** + * @author Jens Riemschneider + */ +public class AbstractFindDocumentsQueryTransformer extends DocumentsQueryTransformer { + + protected AbstractFindDocumentsQueryTransformer() { + } + + @Override + protected void toEbXML(T query, QuerySlotHelper slots) { + super.toEbXML(query, slots); + slots.fromString(DOC_ENTRY_PATIENT_ID, Hl7v2Based.render(query.getPatientId())); + slots.fromDocumentEntryType(DOC_ENTRY_TYPE, query.getDocumentEntryTypes()); + slots.fromStatus(DOC_ENTRY_STATUS, query.getStatus()); + slots.fromDocumentAvailability(DOC_ENTRY_DOCUMENT_AVAILABILITY, query.getDocumentAvailability()); + slots.fromInteger(METADATA_LEVEL, query.getMetadataLevel()); + } + + @Override + protected void fromEbXML(T query, QuerySlotHelper slots) { + super.fromEbXML(query, slots); + var patientId = slots.toString(DOC_ENTRY_PATIENT_ID); + query.setPatientId(Hl7v2Based.parse(patientId, Identifiable.class)); + query.setDocumentEntryTypes(slots.toDocumentEntryType(DOC_ENTRY_TYPE)); + query.setStatus(slots.toStatus(DOC_ENTRY_STATUS)); + query.setDocumentAvailability(slots.toDocumentAvailability(DOC_ENTRY_DOCUMENT_AVAILABILITY)); + query.setMetadataLevel(slots.toInteger(METADATA_LEVEL)); + } +} diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/AbstractStoredQueryTransformer.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/AbstractStoredQueryTransformer.java index 02c251b66b..bff103b8fa 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/AbstractStoredQueryTransformer.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/AbstractStoredQueryTransformer.java @@ -16,12 +16,14 @@ package org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query; import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLAdhocQueryRequest; +import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLSlot; import org.openehealth.ipf.commons.ihe.xds.core.requests.query.StoredQuery; - +import org.openehealth.ipf.commons.ihe.xds.core.stub.ebrs30.query.AdhocQueryRequest; import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryParameter; /** * Base transformations for all stored queries. + * * @author Dmytro Rud */ abstract class AbstractStoredQueryTransformer { @@ -29,13 +31,12 @@ abstract class AbstractStoredQueryTransformer { /** * Transforms the query into its ebXML representation. *

- * Does not perform any transformation if one of the parameters is null. - * @param query - * the query. Can be null. - * @param ebXML - * the ebXML representation. Can be null. + * Does not perform any transformation if one of the parameters is null. + * + * @param query the query. Can be null. + * @param ebXML the ebXML representation. Can be null. */ - public void toEbXML(T query, EbXMLAdhocQueryRequest ebXML) { + public void toEbXML(T query, EbXMLAdhocQueryRequest ebXML) { if (query == null || ebXML == null) { return; } @@ -43,38 +44,53 @@ public void toEbXML(T query, EbXMLAdhocQueryRequest ebXML) { ebXML.setId(query.getType().getId()); ebXML.setHome(query.getHomeCommunityId()); - var slotHelper = new QuerySlotHelper(ebXML); - for (var entry : query.getExtraParameters().entrySet()) { - slotHelper.fromStringList(entry.getKey(), entry.getValue()); - } + toEbXML(query, new QuerySlotHelper(ebXML)); } - + /** * Transforms the ebXML representation of a query into a query object. *

- * Does not perform any transformation if one of the parameters is null. - * @param query - * the query. Can be null. - * @param ebXML - * the ebXML representation. Can be null. + * Does not perform any transformation if one of the parameters is null. + * + * @param query the query. Can be null. + * @param ebXML the ebXML representation. Can be null. */ - public void fromEbXML(T query, EbXMLAdhocQueryRequest ebXML) { + public void fromEbXML(T query, EbXMLAdhocQueryRequest ebXML) { if (query == null || ebXML == null) { return; } - query.setHomeCommunityId(ebXML.getHome()); + fromEbXML(query, new QuerySlotHelper(ebXML)); + } - var slotHelper = new QuerySlotHelper(ebXML); - for (var slot : ebXML.getSlots()) { - var slotName = slot.getName(); - if ((QueryParameter.valueOfSlotName(slotName) == null) && (! query.getExtraParameters().containsKey(slotName))) { - var queryList = slotHelper.toStringQueryList(slotName); - if (queryList != null) { - query.getExtraParameters().put(slotName, queryList); - } - } - } + /** + * Called by {@link #toEbXML(StoredQuery, EbXMLAdhocQueryRequest)} to + * transform slots. + * + * @param query the query to transform. + * @param slots the slots to be filled. + */ + protected void toEbXML(T query, QuerySlotHelper slots) { + query.getExtraParameters().forEach(slots::fromStringList); + } + + /** + * Called by {@link #fromEbXML(StoredQuery, EbXMLAdhocQueryRequest)} to + * transform slots. + * + * @param query the target query. + * @param slots the slots to transform. + */ + protected void fromEbXML(T query, QuerySlotHelper slots) { + slots.getSlots().stream() + .map(EbXMLSlot::getName) + .filter(slotName -> (QueryParameter.valueOfSlotName(slotName) == null) && (!query.getExtraParameters().containsKey(slotName))) + .forEach(slotName -> { + var queryList = slots.toStringQueryList(slotName); + if (queryList != null) { + query.getExtraParameters().put(slotName, queryList); + } + }); } } diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/DocumentsQueryTransformer.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/DocumentsQueryTransformer.java index 885b65fcf8..105340de8b 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/DocumentsQueryTransformer.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/DocumentsQueryTransformer.java @@ -26,25 +26,9 @@ */ abstract class DocumentsQueryTransformer extends AbstractStoredQueryTransformer { - /** - * Transforms the query into its ebXML representation. - *

- * Does not perform any transformation if one of the parameters is null. - * @param query - * the query. Can be null. - * @param ebXML - * the ebXML representation. Can be null. - */ @Override - public void toEbXML(T query, EbXMLAdhocQueryRequest ebXML) { - if (query == null || ebXML == null) { - return; - } - - super.toEbXML(query, ebXML); - - var slots = new QuerySlotHelper(ebXML); - + protected void toEbXML(T query, QuerySlotHelper slots) { + super.toEbXML(query, slots); slots.fromStringList(DOC_ENTRY_AUTHOR_PERSON, query.getAuthorPersons()); slots.fromTimestamp(DOC_ENTRY_CREATION_TIME_FROM, query.getCreationTime().getFrom()); @@ -52,7 +36,7 @@ public void toEbXML(T query, EbXMLAdhocQueryRequest ebXML) { slots.fromTimestamp(DOC_ENTRY_SERVICE_START_TIME_FROM, query.getServiceStartTime().getFrom()); slots.fromTimestamp(DOC_ENTRY_SERVICE_START_TIME_TO, query.getServiceStartTime().getTo()); - + slots.fromTimestamp(DOC_ENTRY_SERVICE_STOP_TIME_FROM, query.getServiceStopTime().getFrom()); slots.fromTimestamp(DOC_ENTRY_SERVICE_STOP_TIME_TO, query.getServiceStopTime().getTo()); @@ -64,26 +48,10 @@ public void toEbXML(T query, EbXMLAdhocQueryRequest ebXML) { slots.fromCode(DOC_ENTRY_EVENT_CODE, query.getEventCodes()); slots.fromCode(DOC_ENTRY_CONFIDENTIALITY_CODE, query.getConfidentialityCodes()); } - - /** - * Transforms the ebXML representation of a query into a query object. - *

- * Does not perform any transformation if one of the parameters is null. - * @param query - * the query. Can be null. - * @param ebXML - * the ebXML representation. Can be null. - */ - @Override - public void fromEbXML(T query, EbXMLAdhocQueryRequest ebXML) { - if (query == null || ebXML == null) { - return; - } - - super.fromEbXML(query, ebXML); - - var slots = new QuerySlotHelper(ebXML); + @Override + protected void fromEbXML(T query, QuerySlotHelper slots) { + super.fromEbXML(query, slots); query.setClassCodes(slots.toCodeList(DOC_ENTRY_CLASS_CODE)); query.setTypeCodes(slots.toCodeList(DOC_ENTRY_TYPE_CODE)); query.setPracticeSettingCodes(slots.toCodeList(DOC_ENTRY_PRACTICE_SETTING_CODE)); @@ -92,16 +60,17 @@ public void fromEbXML(T query, EbXMLAdhocQueryRequest ebXML) { query.setEventCodes(slots.toCodeQueryList(DOC_ENTRY_EVENT_CODE, DOC_ENTRY_EVENT_CODE_SCHEME)); query.setConfidentialityCodes(slots.toCodeQueryList(DOC_ENTRY_CONFIDENTIALITY_CODE, DOC_ENTRY_CONFIDENTIALITY_CODE_SCHEME)); - + query.setAuthorPersons(slots.toStringList(DOC_ENTRY_AUTHOR_PERSON)); - + query.getCreationTime().setFrom(slots.toTimestamp(DOC_ENTRY_CREATION_TIME_FROM)); query.getCreationTime().setTo(slots.toTimestamp(DOC_ENTRY_CREATION_TIME_TO)); - + query.getServiceStartTime().setFrom(slots.toTimestamp(DOC_ENTRY_SERVICE_START_TIME_FROM)); query.getServiceStartTime().setTo(slots.toTimestamp(DOC_ENTRY_SERVICE_START_TIME_TO)); query.getServiceStopTime().setFrom(slots.toTimestamp(DOC_ENTRY_SERVICE_STOP_TIME_FROM)); query.getServiceStopTime().setTo(slots.toTimestamp(DOC_ENTRY_SERVICE_STOP_TIME_TO)); } + } diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/FetchQueryTransformer.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/FetchQueryTransformer.java index 360480bca3..d716d37472 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/FetchQueryTransformer.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/FetchQueryTransformer.java @@ -15,6 +15,7 @@ */ package org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query; +import lombok.Getter; import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLAdhocQueryRequest; import org.openehealth.ipf.commons.ihe.xds.core.metadata.Hl7v2Based; import org.openehealth.ipf.commons.ihe.xds.core.metadata.Identifiable; @@ -27,28 +28,25 @@ * @author Dmytro Rud */ public class FetchQueryTransformer extends DocumentsQueryTransformer { - @Override - public void toEbXML(FetchQuery query, EbXMLAdhocQueryRequest ebXML) { - if (query == null || ebXML == null) { - return; - } - super.toEbXML(query, ebXML); + @Getter + private static final FetchQueryTransformer instance = new FetchQueryTransformer(); - var slots = new QuerySlotHelper(ebXML); - slots.fromString(DOC_ENTRY_PATIENT_ID, Hl7v2Based.render(query.getPatientId())); + private FetchQueryTransformer() { } - @Override - public void fromEbXML(FetchQuery query, EbXMLAdhocQueryRequest ebXML) { - if (query == null || ebXML == null) { - return; - } + protected void toEbXML(FetchQuery query, QuerySlotHelper slots) { + super.toEbXML(query, slots); + slots.fromString(DOC_ENTRY_PATIENT_ID, Hl7v2Based.render(query.getPatientId())); + } - super.fromEbXML(query, ebXML); - var slots = new QuerySlotHelper(ebXML); + @Override + protected void fromEbXML(FetchQuery query, QuerySlotHelper slots) { + super.fromEbXML(query, slots); var patientId = slots.toString(DOC_ENTRY_PATIENT_ID); query.setPatientId(Hl7v2Based.parse(patientId, Identifiable.class)); } + + } diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/FindDispensesQueryTransformer.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/FindDispensesQueryTransformer.java index b756fc7610..cd0e7f8835 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/FindDispensesQueryTransformer.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/FindDispensesQueryTransformer.java @@ -15,6 +15,7 @@ */ package org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query; +import lombok.Getter; import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLAdhocQueryRequest; import org.openehealth.ipf.commons.ihe.xds.core.requests.query.FindDispensesQuery; @@ -24,4 +25,10 @@ * @since 3.7 */ public class FindDispensesQueryTransformer extends PharmacyStableDocumentsQueryTransformer { + + @Getter + private static final FindDispensesQueryTransformer instance = new FindDispensesQueryTransformer(); + + private FindDispensesQueryTransformer() { + } } diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/FindDocumentsByReferenceIdQueryTransformer.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/FindDocumentsByReferenceIdQueryTransformer.java index b96401404a..a1bd5b5d51 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/FindDocumentsByReferenceIdQueryTransformer.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/FindDocumentsByReferenceIdQueryTransformer.java @@ -15,6 +15,7 @@ */ package org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query; +import lombok.Getter; import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLAdhocQueryRequest; import org.openehealth.ipf.commons.ihe.xds.core.requests.query.FindDocumentsByReferenceIdQuery; @@ -24,28 +25,24 @@ * Transforms between a {@link FindDocumentsByReferenceIdQuery} and {@link EbXMLAdhocQueryRequest}. * @author Dmytro Rud */ -public class FindDocumentsByReferenceIdQueryTransformer extends FindDocumentsQueryTransformer { +public class FindDocumentsByReferenceIdQueryTransformer extends AbstractFindDocumentsQueryTransformer { - @Override - public void toEbXML(FindDocumentsByReferenceIdQuery query, EbXMLAdhocQueryRequest ebXML) { - if (query == null || ebXML == null) { - return; - } + @Getter + private static final FindDocumentsByReferenceIdQueryTransformer instance = new FindDocumentsByReferenceIdQueryTransformer(); - super.toEbXML(query, ebXML); - var slots = new QuerySlotHelper(ebXML); - slots.fromStringList(DOC_ENTRY_REFERENCE_IDS, query.getReferenceIds()); + private FindDocumentsByReferenceIdQueryTransformer() { + super(); } - @Override - public void fromEbXML(FindDocumentsByReferenceIdQuery query, EbXMLAdhocQueryRequest ebXML) { - if (query == null || ebXML == null) { - return; - } + protected void toEbXML(FindDocumentsByReferenceIdQuery query, QuerySlotHelper slots) { + super.toEbXML(query, slots); + slots.fromStringList(DOC_ENTRY_REFERENCE_IDS, query.getReferenceIds()); + } - super.fromEbXML(query, ebXML); - var slots = new QuerySlotHelper(ebXML); + @Override + protected void fromEbXML(FindDocumentsByReferenceIdQuery query, QuerySlotHelper slots) { + super.fromEbXML(query, slots); query.setReferenceIds(slots.toStringQueryList(DOC_ENTRY_REFERENCE_IDS)); } } diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/FindDocumentsByTitleQueryTransformer.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/FindDocumentsByTitleQueryTransformer.java index 98a38e4643..3a2cff90ab 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/FindDocumentsByTitleQueryTransformer.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/FindDocumentsByTitleQueryTransformer.java @@ -15,35 +15,33 @@ */ package org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query; -import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLAdhocQueryRequest; +import lombok.Getter; import org.openehealth.ipf.commons.ihe.xds.core.requests.query.FindDocumentsByTitleQuery; import static org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryParameter.DOC_ENTRY_AUTHOR_INSTITUTION; import static org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryParameter.DOC_ENTRY_TITLE; -public class FindDocumentsByTitleQueryTransformer extends FindDocumentsQueryTransformer { +public class FindDocumentsByTitleQueryTransformer extends AbstractFindDocumentsQueryTransformer { - @Override - public void toEbXML(FindDocumentsByTitleQuery query, EbXMLAdhocQueryRequest ebXML) { - if (query == null || ebXML == null) { - return; - } + @Getter + private static final FindDocumentsByTitleQueryTransformer instance = new FindDocumentsByTitleQueryTransformer(); + + private FindDocumentsByTitleQueryTransformer() { + } - super.toEbXML(query, ebXML); - var slots = new QuerySlotHelper(ebXML); + @Override + protected void toEbXML(FindDocumentsByTitleQuery query, QuerySlotHelper slots) { + super.toEbXML(query, slots); slots.fromStringList(DOC_ENTRY_TITLE, query.getTitle()); slots.fromStringList(DOC_ENTRY_AUTHOR_INSTITUTION, query.getAuthorInstitution()); } @Override - public void fromEbXML(FindDocumentsByTitleQuery query, EbXMLAdhocQueryRequest ebXML) { - if (query == null || ebXML == null) { - return; - } - - super.fromEbXML(query, ebXML); - var slots = new QuerySlotHelper(ebXML); + protected void fromEbXML(FindDocumentsByTitleQuery query, QuerySlotHelper slots) { + super.fromEbXML(query, slots); query.setTitle(slots.toStringList(DOC_ENTRY_TITLE)); query.setAuthorInstitution(slots.toStringList(DOC_ENTRY_AUTHOR_INSTITUTION)); } + + } diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/FindDocumentsForMultiplePatientsQueryTransformer.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/FindDocumentsForMultiplePatientsQueryTransformer.java index de5b5fed39..59b7d5dfe5 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/FindDocumentsForMultiplePatientsQueryTransformer.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/FindDocumentsForMultiplePatientsQueryTransformer.java @@ -15,6 +15,7 @@ */ package org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query; +import lombok.Getter; import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLAdhocQueryRequest; import org.openehealth.ipf.commons.ihe.xds.core.requests.query.FindDocumentsForMultiplePatientsQuery; @@ -26,30 +27,24 @@ */ public class FindDocumentsForMultiplePatientsQueryTransformer extends DocumentsQueryTransformer { - @Override - public void toEbXML(FindDocumentsForMultiplePatientsQuery query, EbXMLAdhocQueryRequest ebXML) { - if (query == null || ebXML == null) { - return; - } - super.toEbXML(query, ebXML); + @Getter + private static final FindDocumentsForMultiplePatientsQueryTransformer instance = new FindDocumentsForMultiplePatientsQueryTransformer(); + + private FindDocumentsForMultiplePatientsQueryTransformer() { + } - var slots = new QuerySlotHelper(ebXML); + @Override + protected void toEbXML(FindDocumentsForMultiplePatientsQuery query, QuerySlotHelper slots) { + super.toEbXML(query, slots); slots.fromPatientIdList(DOC_ENTRY_PATIENT_ID, query.getPatientIds()); slots.fromDocumentEntryType(DOC_ENTRY_TYPE, query.getDocumentEntryTypes()); slots.fromStatus(DOC_ENTRY_STATUS, query.getStatus()); } - @Override - public void fromEbXML(FindDocumentsForMultiplePatientsQuery query, EbXMLAdhocQueryRequest ebXML) { - if (query == null || ebXML == null) { - return; - } - - super.fromEbXML(query, ebXML); - var slots = new QuerySlotHelper(ebXML); - + protected void fromEbXML(FindDocumentsForMultiplePatientsQuery query, QuerySlotHelper slots) { + super.fromEbXML(query, slots); query.setPatientIds(slots.toPatientIdList(DOC_ENTRY_PATIENT_ID)); query.setDocumentEntryTypes(slots.toDocumentEntryType(DOC_ENTRY_TYPE)); query.setStatus(slots.toStatus(DOC_ENTRY_STATUS)); diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/FindDocumentsQueryTransformer.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/FindDocumentsQueryTransformer.java index a4cc315157..3f2e0365e7 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/FindDocumentsQueryTransformer.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/FindDocumentsQueryTransformer.java @@ -15,49 +15,21 @@ */ package org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query; +import lombok.Getter; import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLAdhocQueryRequest; -import org.openehealth.ipf.commons.ihe.xds.core.metadata.Hl7v2Based; -import org.openehealth.ipf.commons.ihe.xds.core.metadata.Identifiable; import org.openehealth.ipf.commons.ihe.xds.core.requests.query.FindDocumentsQuery; -import static org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryParameter.*; - /** * Transforms between a {@link FindDocumentsQuery} and {@link EbXMLAdhocQueryRequest}. * @author Jens Riemschneider */ -public class FindDocumentsQueryTransformer extends DocumentsQueryTransformer { - - @Override - public void toEbXML(T query, EbXMLAdhocQueryRequest ebXML) { - if (query == null || ebXML == null) { - return; - } +public class FindDocumentsQueryTransformer extends AbstractFindDocumentsQueryTransformer { - super.toEbXML(query, ebXML); + @Getter + private static final FindDocumentsQueryTransformer instance = new FindDocumentsQueryTransformer(); - var slots = new QuerySlotHelper(ebXML); - slots.fromString(DOC_ENTRY_PATIENT_ID, Hl7v2Based.render(query.getPatientId())); - slots.fromDocumentEntryType(DOC_ENTRY_TYPE, query.getDocumentEntryTypes()); - slots.fromStatus(DOC_ENTRY_STATUS, query.getStatus()); - slots.fromDocumentAvailability(DOC_ENTRY_DOCUMENT_AVAILABILITY, query.getDocumentAvailability()); - slots.fromInteger(METADATA_LEVEL, query.getMetadataLevel()); + private FindDocumentsQueryTransformer() { + super(); } - - @Override - public void fromEbXML(T query, EbXMLAdhocQueryRequest ebXML) { - if (query == null || ebXML == null) { - return; - } - - super.fromEbXML(query, ebXML); - var slots = new QuerySlotHelper(ebXML); - var patientId = slots.toString(DOC_ENTRY_PATIENT_ID); - query.setPatientId(Hl7v2Based.parse(patientId, Identifiable.class)); - query.setDocumentEntryTypes(slots.toDocumentEntryType(DOC_ENTRY_TYPE)); - query.setStatus(slots.toStatus(DOC_ENTRY_STATUS)); - query.setDocumentAvailability(slots.toDocumentAvailability(DOC_ENTRY_DOCUMENT_AVAILABILITY)); - query.setMetadataLevel(slots.toInteger(METADATA_LEVEL)); - } } diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/FindFoldersForMultiplePatientsQueryTransformer.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/FindFoldersForMultiplePatientsQueryTransformer.java index b88e7cb804..62f90b1646 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/FindFoldersForMultiplePatientsQueryTransformer.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/FindFoldersForMultiplePatientsQueryTransformer.java @@ -15,6 +15,7 @@ */ package org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query; +import lombok.Getter; import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLAdhocQueryRequest; import org.openehealth.ipf.commons.ihe.xds.core.requests.query.FindFoldersForMultiplePatientsQuery; @@ -27,60 +28,29 @@ */ public class FindFoldersForMultiplePatientsQueryTransformer extends AbstractStoredQueryTransformer { - /** - * Transforms the query into its ebXML representation. - *

- * Does not perform any transformation if one of the parameters is null. - * @param query - * the query. Can be null. - * @param ebXML - * the ebXML representation. Can be null. - */ - @Override - public void toEbXML(FindFoldersForMultiplePatientsQuery query, EbXMLAdhocQueryRequest ebXML) { - if (query == null || ebXML == null) { - return; - } + @Getter + private static final FindFoldersForMultiplePatientsQueryTransformer instance = new FindFoldersForMultiplePatientsQueryTransformer(); - super.toEbXML(query, ebXML); + private FindFoldersForMultiplePatientsQueryTransformer() { + } - var slots = new QuerySlotHelper(ebXML); - + @Override + protected void toEbXML(FindFoldersForMultiplePatientsQuery query, QuerySlotHelper slots) { + super.toEbXML(query, slots); slots.fromPatientIdList(FOLDER_PATIENT_ID, query.getPatientIds()); - slots.fromTimestamp(FOLDER_LAST_UPDATE_TIME_FROM, query.getLastUpdateTime().getFrom()); slots.fromTimestamp(FOLDER_LAST_UPDATE_TIME_TO, query.getLastUpdateTime().getTo()); - slots.fromCode(FOLDER_CODES, query.getCodes()); - slots.fromStatus(FOLDER_STATUS, query.getStatus()); } - - /** - * Transforms the ebXML representation of a query into a query object. - *

- * Does not perform any transformation if one of the parameters is null. - * @param query - * the query. Can be null. - * @param ebXML - * the ebXML representation. Can be null. - */ - @Override - public void fromEbXML(FindFoldersForMultiplePatientsQuery query, EbXMLAdhocQueryRequest ebXML) { - if (query == null || ebXML == null) { - return; - } - - super.fromEbXML(query, ebXML); - var slots = new QuerySlotHelper(ebXML); + @Override + protected void fromEbXML(FindFoldersForMultiplePatientsQuery query, QuerySlotHelper slots) { + super.fromEbXML(query, slots); query.setPatientIds(slots.toPatientIdList(FOLDER_PATIENT_ID)); - query.setCodes(slots.toCodeQueryList(FOLDER_CODES, FOLDER_CODES_SCHEME)); - query.getLastUpdateTime().setFrom(slots.toTimestamp(FOLDER_LAST_UPDATE_TIME_FROM)); query.getLastUpdateTime().setTo(slots.toTimestamp(FOLDER_LAST_UPDATE_TIME_TO)); - query.setStatus(slots.toStatus(FOLDER_STATUS)); } } diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/FindFoldersQueryTransformer.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/FindFoldersQueryTransformer.java index 92e1a4b8dc..fe33ff8a86 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/FindFoldersQueryTransformer.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/FindFoldersQueryTransformer.java @@ -15,75 +15,45 @@ */ package org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query; -import static org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryParameter.*; - +import lombok.Getter; import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLAdhocQueryRequest; import org.openehealth.ipf.commons.ihe.xds.core.metadata.Hl7v2Based; import org.openehealth.ipf.commons.ihe.xds.core.metadata.Identifiable; import org.openehealth.ipf.commons.ihe.xds.core.requests.query.FindFoldersQuery; +import static org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryParameter.*; + /** * Transforms between a {@link FindFoldersQuery} and {@link EbXMLAdhocQueryRequest}. * @author Jens Riemschneider */ public class FindFoldersQueryTransformer extends AbstractStoredQueryTransformer{ - /** - * Transforms the query into its ebXML representation. - *

- * Does not perform any transformation if one of the parameters is null. - * @param query - * the query. Can be null. - * @param ebXML - * the ebXML representation. Can be null. - */ - @Override - public void toEbXML(FindFoldersQuery query, EbXMLAdhocQueryRequest ebXML) { - if (query == null || ebXML == null) { - return; - } - - super.toEbXML(query, ebXML); + @Getter + private static final FindFoldersQueryTransformer instance = new FindFoldersQueryTransformer(); - var slots = new QuerySlotHelper(ebXML); + private FindFoldersQueryTransformer() { + } + @Override + protected void toEbXML(FindFoldersQuery query, QuerySlotHelper slots) { + super.toEbXML(query, slots); slots.fromString(FOLDER_PATIENT_ID, Hl7v2Based.render(query.getPatientId())); - slots.fromTimestamp(FOLDER_LAST_UPDATE_TIME_FROM, query.getLastUpdateTime().getFrom()); slots.fromTimestamp(FOLDER_LAST_UPDATE_TIME_TO, query.getLastUpdateTime().getTo()); - slots.fromCode(FOLDER_CODES, query.getCodes()); - slots.fromStatus(FOLDER_STATUS, query.getStatus()); slots.fromInteger(METADATA_LEVEL, query.getMetadataLevel()); } - - /** - * Transforms the ebXML representation of a query into a query object. - *

- * Does not perform any transformation if one of the parameters is null. - * @param query - * the query. Can be null. - * @param ebXML - * the ebXML representation. Can be null. - */ - @Override - public void fromEbXML(FindFoldersQuery query, EbXMLAdhocQueryRequest ebXML) { - if (query == null || ebXML == null) { - return; - } - - super.fromEbXML(query, ebXML); - var slots = new QuerySlotHelper(ebXML); + @Override + protected void fromEbXML(FindFoldersQuery query, QuerySlotHelper slots) { + super.fromEbXML(query, slots); var patientId = slots.toString(FOLDER_PATIENT_ID); query.setPatientId(Hl7v2Based.parse(patientId, Identifiable.class)); - query.setCodes(slots.toCodeQueryList(FOLDER_CODES, FOLDER_CODES_SCHEME)); - query.getLastUpdateTime().setFrom(slots.toTimestamp(FOLDER_LAST_UPDATE_TIME_FROM)); query.getLastUpdateTime().setTo(slots.toTimestamp(FOLDER_LAST_UPDATE_TIME_TO)); - query.setStatus(slots.toStatus(FOLDER_STATUS)); query.setMetadataLevel(slots.toInteger(METADATA_LEVEL)); } diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/FindMedicationAdministrationsQueryTransformer.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/FindMedicationAdministrationsQueryTransformer.java index ec72756064..4d935f3895 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/FindMedicationAdministrationsQueryTransformer.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/FindMedicationAdministrationsQueryTransformer.java @@ -15,6 +15,7 @@ */ package org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query; +import lombok.Getter; import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLAdhocQueryRequest; import org.openehealth.ipf.commons.ihe.xds.core.requests.query.FindMedicationAdministrationsQuery; @@ -24,4 +25,10 @@ * @since 3.7 */ public class FindMedicationAdministrationsQueryTransformer extends PharmacyStableDocumentsQueryTransformer { + + @Getter + private static final FindMedicationAdministrationsQueryTransformer instance = new FindMedicationAdministrationsQueryTransformer(); + + private FindMedicationAdministrationsQueryTransformer() { + } } diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/FindMedicationListQueryTransformer.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/FindMedicationListQueryTransformer.java index a8254b9fc1..a844fb3e6a 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/FindMedicationListQueryTransformer.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/FindMedicationListQueryTransformer.java @@ -15,11 +15,12 @@ */ package org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query; -import static org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryParameter.*; - +import lombok.Getter; import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLAdhocQueryRequest; import org.openehealth.ipf.commons.ihe.xds.core.requests.query.FindMedicationListQuery; +import static org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryParameter.*; + /** * Transforms between {@link FindMedicationListQuery} and {@link EbXMLAdhocQueryRequest}. * @author Quentin Ligier @@ -27,58 +28,30 @@ */ public class FindMedicationListQueryTransformer extends PharmacyDocumentsQueryTransformer { - /** - * Transforms the query into its EbXML representation. - *

- * Does not perform any transformation if one of the parameters is null. - * @param query - * the query to transform. - * @param ebXML - * the EbXML representation. - */ - @Override - public void toEbXML(FindMedicationListQuery query, EbXMLAdhocQueryRequest ebXML) { - if (query == null || ebXML == null) { - return; - } + @Getter + private static final FindMedicationListQueryTransformer instance = new FindMedicationListQueryTransformer(); - super.toEbXML(query, ebXML); - var slots = new QuerySlotHelper(ebXML); + private FindMedicationListQueryTransformer() { + } + @Override + protected void toEbXML(FindMedicationListQuery query, QuerySlotHelper slots) { + super.toEbXML(query, slots); slots.fromCode(DOC_ENTRY_FORMAT_CODE, query.getFormatCodes()); slots.fromDocumentEntryType(DOC_ENTRY_TYPE, query.getDocumentEntryTypes()); - slots.fromTimestamp(DOC_ENTRY_SERVICE_START_FROM, query.getServiceStart().getFrom()); slots.fromTimestamp(DOC_ENTRY_SERVICE_START_TO, query.getServiceStart().getTo()); - slots.fromTimestamp(DOC_ENTRY_SERVICE_END_FROM, query.getServiceEnd().getFrom()); slots.fromTimestamp(DOC_ENTRY_SERVICE_END_TO, query.getServiceEnd().getTo()); } - /** - * Transforms the ebXML representation of a query into a query object. - *

- * Does not perform any transformation if one of the parameters is null. - * @param query - * the query. Can be null. - * @param ebXML - * the ebXML representation. Can be null. - */ @Override - public void fromEbXML(FindMedicationListQuery query, EbXMLAdhocQueryRequest ebXML) { - if (query == null || ebXML == null) { - return; - } - - super.fromEbXML(query, ebXML); - var slots = new QuerySlotHelper(ebXML); - + protected void fromEbXML(FindMedicationListQuery query, QuerySlotHelper slots) { + super.fromEbXML(query, slots); query.setFormatCodes(slots.toCodeList(DOC_ENTRY_FORMAT_CODE)); query.setDocumentEntryTypes(slots.toDocumentEntryType(DOC_ENTRY_TYPE)); - query.getServiceStart().setFrom(slots.toTimestamp(DOC_ENTRY_SERVICE_START_FROM)); query.getServiceStart().setTo(slots.toTimestamp(DOC_ENTRY_SERVICE_START_TO)); - query.getServiceEnd().setFrom(slots.toTimestamp(DOC_ENTRY_SERVICE_END_FROM)); query.getServiceEnd().setTo(slots.toTimestamp(DOC_ENTRY_SERVICE_END_TO)); } diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/FindMedicationTreatmentPlansQueryTransformer.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/FindMedicationTreatmentPlansQueryTransformer.java index 6875a6efc6..752de59cd9 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/FindMedicationTreatmentPlansQueryTransformer.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/FindMedicationTreatmentPlansQueryTransformer.java @@ -15,6 +15,7 @@ */ package org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query; +import lombok.Getter; import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLAdhocQueryRequest; import org.openehealth.ipf.commons.ihe.xds.core.requests.query.FindMedicationTreatmentPlansQuery; @@ -24,4 +25,10 @@ * @since 3.7 */ public class FindMedicationTreatmentPlansQueryTransformer extends PharmacyStableDocumentsQueryTransformer { + + @Getter + private static final FindMedicationTreatmentPlansQueryTransformer instance = new FindMedicationTreatmentPlansQueryTransformer(); + + private FindMedicationTreatmentPlansQueryTransformer() { + } } diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/FindPrescriptionsForDispenseQueryTransformer.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/FindPrescriptionsForDispenseQueryTransformer.java index e06acdc3e6..d12f24d366 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/FindPrescriptionsForDispenseQueryTransformer.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/FindPrescriptionsForDispenseQueryTransformer.java @@ -15,6 +15,7 @@ */ package org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query; +import lombok.Getter; import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLAdhocQueryRequest; import org.openehealth.ipf.commons.ihe.xds.core.requests.query.FindPrescriptionsForDispenseQuery; @@ -24,4 +25,10 @@ * @since 3.7 */ public class FindPrescriptionsForDispenseQueryTransformer extends PharmacyStableDocumentsQueryTransformer { + + @Getter + private static final FindPrescriptionsForDispenseQueryTransformer instance = new FindPrescriptionsForDispenseQueryTransformer(); + + private FindPrescriptionsForDispenseQueryTransformer() { + } } diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/FindPrescriptionsForValidationQueryTransformer.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/FindPrescriptionsForValidationQueryTransformer.java index 02197c92c0..ec1f36089f 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/FindPrescriptionsForValidationQueryTransformer.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/FindPrescriptionsForValidationQueryTransformer.java @@ -15,6 +15,7 @@ */ package org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query; +import lombok.Getter; import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLAdhocQueryRequest; import org.openehealth.ipf.commons.ihe.xds.core.requests.query.FindPrescriptionsForValidationQuery; @@ -24,4 +25,10 @@ * @since 3.7 */ public class FindPrescriptionsForValidationQueryTransformer extends PharmacyStableDocumentsQueryTransformer { + + @Getter + private static final FindPrescriptionsForValidationQueryTransformer instance = new FindPrescriptionsForValidationQueryTransformer(); + + private FindPrescriptionsForValidationQueryTransformer() { + } } diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/FindPrescriptionsQueryTransformer.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/FindPrescriptionsQueryTransformer.java index b8cfa50022..3f3f048b52 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/FindPrescriptionsQueryTransformer.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/FindPrescriptionsQueryTransformer.java @@ -15,6 +15,7 @@ */ package org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query; +import lombok.Getter; import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLAdhocQueryRequest; import org.openehealth.ipf.commons.ihe.xds.core.requests.query.FindPrescriptionsQuery; @@ -24,4 +25,10 @@ * @since 3.7 */ public class FindPrescriptionsQueryTransformer extends PharmacyStableDocumentsQueryTransformer { + + @Getter + private static final FindPrescriptionsQueryTransformer instance = new FindPrescriptionsQueryTransformer(); + + private FindPrescriptionsQueryTransformer() { + } } diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/FindSubmissionSetsQueryTransformer.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/FindSubmissionSetsQueryTransformer.java index b56d948a45..b3cdba1f30 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/FindSubmissionSetsQueryTransformer.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/FindSubmissionSetsQueryTransformer.java @@ -15,83 +15,48 @@ */ package org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query; -import static org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryParameter.*; - +import lombok.Getter; import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLAdhocQueryRequest; import org.openehealth.ipf.commons.ihe.xds.core.metadata.Hl7v2Based; import org.openehealth.ipf.commons.ihe.xds.core.metadata.Identifiable; import org.openehealth.ipf.commons.ihe.xds.core.requests.query.FindSubmissionSetsQuery; +import static org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryParameter.*; + /** * Transforms between {@link FindSubmissionSetsQuery} and {@link EbXMLAdhocQueryRequest}. * @author Jens Riemschneider */ public class FindSubmissionSetsQueryTransformer extends AbstractStoredQueryTransformer { - /** - * Transforms the query into its EbXML representation. - *

- * Does not perform any transformation if one of the parameters is null. - * @param query - * the query to transform. - * @param ebXML - * the EbXML representation. - */ - @Override - public void toEbXML(FindSubmissionSetsQuery query, EbXMLAdhocQueryRequest ebXML) { - if (query == null || ebXML == null) { - return; - } - - super.toEbXML(query, ebXML); + @Getter + private static final FindSubmissionSetsQueryTransformer instance = new FindSubmissionSetsQueryTransformer(); - var slots = new QuerySlotHelper(ebXML); + private FindSubmissionSetsQueryTransformer() { + } + @Override + protected void toEbXML(FindSubmissionSetsQuery query, QuerySlotHelper slots) { + super.toEbXML(query, slots); slots.fromString(SUBMISSION_SET_PATIENT_ID, Hl7v2Based.render(query.getPatientId())); - slots.fromStringList(SUBMISSION_SET_SOURCE_ID, query.getSourceIds()); - slots.fromTimestamp(SUBMISSION_SET_SUBMISSION_TIME_FROM, query.getSubmissionTime().getFrom()); slots.fromTimestamp(SUBMISSION_SET_SUBMISSION_TIME_TO, query.getSubmissionTime().getTo()); - slots.fromString(SUBMISSION_SET_AUTHOR_PERSON, query.getAuthorPerson()); - slots.fromCode(SUBMISSION_SET_CONTENT_TYPE_CODE, query.getContentTypeCodes()); - slots.fromStatus(SUBMISSION_SET_STATUS, query.getStatus()); } - - /** - * Transforms the ebXML representation of a query into a query object. - *

- * Does not perform any transformation if one of the parameters is null. - * @param query - * the query. Can be null. - * @param ebXML - * the ebXML representation. Can be null. - */ - @Override - public void fromEbXML(FindSubmissionSetsQuery query, EbXMLAdhocQueryRequest ebXML) { - if (query == null || ebXML == null) { - return; - } - - super.fromEbXML(query, ebXML); - - var slots = new QuerySlotHelper(ebXML); + @Override + protected void fromEbXML(FindSubmissionSetsQuery query, QuerySlotHelper slots) { + super.fromEbXML(query, slots); var patientId = slots.toString(SUBMISSION_SET_PATIENT_ID); query.setPatientId(Hl7v2Based.parse(patientId, Identifiable.class)); - query.setSourceIds(slots.toStringList(SUBMISSION_SET_SOURCE_ID)); - query.getSubmissionTime().setFrom(slots.toTimestamp(SUBMISSION_SET_SUBMISSION_TIME_FROM)); query.getSubmissionTime().setTo(slots.toTimestamp(SUBMISSION_SET_SUBMISSION_TIME_TO)); - query.setAuthorPerson(slots.toString(SUBMISSION_SET_AUTHOR_PERSON)); - query.setContentTypeCodes(slots.toCodeList(SUBMISSION_SET_CONTENT_TYPE_CODE)); - query.setStatus(slots.toStatus(SUBMISSION_SET_STATUS)); } } diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/GetAllQueryTransformer.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/GetAllQueryTransformer.java index 5683552b2e..f60370ea8d 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/GetAllQueryTransformer.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/GetAllQueryTransformer.java @@ -15,80 +15,50 @@ */ package org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query; -import static org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryParameter.*; - +import lombok.Getter; import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLAdhocQueryRequest; import org.openehealth.ipf.commons.ihe.xds.core.metadata.Hl7v2Based; import org.openehealth.ipf.commons.ihe.xds.core.metadata.Identifiable; import org.openehealth.ipf.commons.ihe.xds.core.requests.query.GetAllQuery; +import static org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryParameter.*; + /** * Transforms between a {@link GetAllQuery} and {@link EbXMLAdhocQueryRequest}. * @author Jens Riemschneider */ public class GetAllQueryTransformer extends AbstractStoredQueryTransformer { - /** - * Transforms the query into its ebXML representation. - *

- * Does not perform any transformation if one of the parameters is null. - * @param query - * the query. Can be null. - * @param ebXML - * the ebXML representation. Can be null. - */ - @Override - public void toEbXML(GetAllQuery query, EbXMLAdhocQueryRequest ebXML) { - if (query == null || ebXML == null) { - return; - } - - super.toEbXML(query, ebXML); + @Getter + private static final GetAllQueryTransformer instance = new GetAllQueryTransformer(); - var slots = new QuerySlotHelper(ebXML); + private GetAllQueryTransformer() { + } + @Override + protected void toEbXML(GetAllQuery query, QuerySlotHelper slots) { + super.toEbXML(query, slots); slots.fromString(PATIENT_ID, Hl7v2Based.render(query.getPatientId())); - slots.fromStatus(DOC_ENTRY_STATUS, query.getStatusDocuments()); slots.fromStatus(SUBMISSION_SET_STATUS, query.getStatusSubmissionSets()); slots.fromStatus(FOLDER_STATUS, query.getStatusFolders()); - slots.fromCode(DOC_ENTRY_FORMAT_CODE, query.getFormatCodes()); slots.fromCode(DOC_ENTRY_CONFIDENTIALITY_CODE, query.getConfidentialityCodes()); - slots.fromDocumentEntryType(DOC_ENTRY_TYPE, query.getDocumentEntryTypes()); slots.fromStatus(ASSOCIATION_STATUS, query.getAssociationStatuses()); slots.fromInteger(METADATA_LEVEL, query.getMetadataLevel()); } - - /** - * Transforms the ebXML representation of a query into a query object. - *

- * Does not perform any transformation if one of the parameters is null. - * @param query - * the query. Can be null. - * @param ebXML - * the ebXML representation. Can be null. - */ - @Override - public void fromEbXML(GetAllQuery query, EbXMLAdhocQueryRequest ebXML) { - if (query == null || ebXML == null) { - return; - } - - super.fromEbXML(query, ebXML); - var slots = new QuerySlotHelper(ebXML); + @Override + protected void fromEbXML(GetAllQuery query, QuerySlotHelper slots) { + super.fromEbXML(query, slots); var patientId = slots.toString(PATIENT_ID); query.setPatientId(Hl7v2Based.parse(patientId, Identifiable.class)); - query.setStatusDocuments(slots.toStatus(DOC_ENTRY_STATUS)); query.setStatusFolders(slots.toStatus(FOLDER_STATUS)); query.setStatusSubmissionSets(slots.toStatus(SUBMISSION_SET_STATUS)); - query.setConfidentialityCodes(slots.toCodeQueryList(DOC_ENTRY_CONFIDENTIALITY_CODE, DOC_ENTRY_CONFIDENTIALITY_CODE_SCHEME)); query.setFormatCodes(slots.toCodeList(DOC_ENTRY_FORMAT_CODE)); - query.setDocumentEntryTypes(slots.toDocumentEntryType(DOC_ENTRY_TYPE)); query.setAssociationStatuses(slots.toStatus(ASSOCIATION_STATUS)); query.setMetadataLevel(slots.toInteger(METADATA_LEVEL)); diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/GetAssociationsQueryTransformer.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/GetAssociationsQueryTransformer.java index b6a70e1d5b..2f2cf20b78 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/GetAssociationsQueryTransformer.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/GetAssociationsQueryTransformer.java @@ -15,57 +15,38 @@ */ package org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query; -import static org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryParameter.*; - +import lombok.Getter; import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLAdhocQueryRequest; import org.openehealth.ipf.commons.ihe.xds.core.requests.query.GetAssociationsQuery; +import static org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryParameter.*; + /** * Transforms between {@link GetAssociationsQuery} and {@link EbXMLAdhocQueryRequest}. * @author Jens Riemschneider */ public class GetAssociationsQueryTransformer extends GetByUUIDQueryTransformer { + + @Getter + private static final GetAssociationsQueryTransformer instance = new GetAssociationsQueryTransformer(); + /** * Constructs the transformer. */ - public GetAssociationsQueryTransformer() { + private GetAssociationsQueryTransformer() { super(UUID); } - /** - * - * @param query - * the query. Can be null. - * @param ebXML ebXML object - */ @Override - public void toEbXML(GetAssociationsQuery query, EbXMLAdhocQueryRequest ebXML) { - if (query == null || ebXML == null) { - return; - } - - super.toEbXML(query, ebXML); - - var slots = new QuerySlotHelper(ebXML); + protected void toEbXML(GetAssociationsQuery query, QuerySlotHelper slots) { + super.toEbXML(query, slots); slots.fromStatus(ASSOCIATION_STATUS, query.getAssociationStatuses()); slots.fromInteger(METADATA_LEVEL, query.getMetadataLevel()); } - /** - * - * @param query - * the query. Can be null. - * @param ebXML ebXML object - */ @Override - public void fromEbXML(GetAssociationsQuery query, EbXMLAdhocQueryRequest ebXML) { - if (query == null || ebXML == null) { - return; - } - - super.fromEbXML(query, ebXML); - - var slots = new QuerySlotHelper(ebXML); + protected void fromEbXML(GetAssociationsQuery query, QuerySlotHelper slots) { + super.fromEbXML(query, slots); query.setAssociationStatuses(slots.toStatus(ASSOCIATION_STATUS)); query.setMetadataLevel(slots.toInteger(METADATA_LEVEL)); } diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/GetByIDAndCodesQueryTransformer.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/GetByIDAndCodesQueryTransformer.java index 44c389f978..7ca528ad98 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/GetByIDAndCodesQueryTransformer.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/GetByIDAndCodesQueryTransformer.java @@ -15,7 +15,6 @@ */ package org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query; -import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLAdhocQueryRequest; import org.openehealth.ipf.commons.ihe.xds.core.requests.query.GetByIdAndCodesQuery; import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryParameter; @@ -49,11 +48,11 @@ public abstract class GetByIDAndCodesQueryTransformer - * Does not perform any transformation if one of the parameters is null. - * @param query - * the query. Can be null. - * @param ebXML - * the ebXML representation. Can be null. - */ @Override - public void toEbXML(T query, EbXMLAdhocQueryRequest ebXML) { - if (query == null || ebXML == null) { - return; - } - - super.toEbXML(query, ebXML); - - var slots = new QuerySlotHelper(ebXML); - + protected void toEbXML(T query, QuerySlotHelper slots) { + super.toEbXML(query, slots); slots.fromCode(formatCodeParam, query.getFormatCodes()); slots.fromCode(confCodeParam, query.getConfidentialityCodes()); slots.fromString(uuidParam, query.getUuid()); slots.fromString(uniqueIdParam, query.getUniqueId()); } - /** - * Transforms the ebXML representation of a query into a query object. - *

- * Does not perform any transformation if one of the parameters is null. - * @param query - * the query. Can be null. - * @param ebXML - * the ebXML representation. Can be null. - */ @Override - public void fromEbXML(T query, EbXMLAdhocQueryRequest ebXML) { - if (query == null || ebXML == null) { - return; - } - - super.fromEbXML(query, ebXML); - - var slots = new QuerySlotHelper(ebXML); - + protected void fromEbXML(T query, QuerySlotHelper slots) { + super.fromEbXML(query, slots); query.setFormatCodes(slots.toCodeList(formatCodeParam)); query.setConfidentialityCodes(slots.toCodeQueryList(confCodeParam, confCodeSchemeParam)); query.setUniqueId(slots.toString(uniqueIdParam)); query.setUuid(slots.toString(uuidParam)); } - } diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/GetByIDQueryTransformer.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/GetByIDQueryTransformer.java index 0d39573ac5..5184ecccf9 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/GetByIDQueryTransformer.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/GetByIDQueryTransformer.java @@ -27,7 +27,7 @@ * the actual query type that is transformed by an extending subclass. * @author Jens Riemschneider */ -public abstract class GetByIDQueryTransformer extends GetByUUIDQueryTransformer { +abstract class GetByIDQueryTransformer extends GetByUUIDQueryTransformer { private final QueryParameter uniqueIdParam; /** diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/GetByUUIDQueryTransformer.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/GetByUUIDQueryTransformer.java index b48b5c69a4..4871211bdc 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/GetByUUIDQueryTransformer.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/GetByUUIDQueryTransformer.java @@ -15,7 +15,6 @@ */ package org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query; -import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLAdhocQueryRequest; import org.openehealth.ipf.commons.ihe.xds.core.requests.query.GetByUuidQuery; import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryParameter; @@ -23,8 +22,8 @@ /** * Base class of transformers for {@link GetByUuidQuery}. - * @param - * type of the query. + * + * @param type of the query. * @author Jens Riemschneider */ public abstract class GetByUUIDQueryTransformer extends AbstractStoredQueryTransformer { @@ -32,8 +31,8 @@ public abstract class GetByUUIDQueryTransformer extend /** * Constructs the transformer. - * @param uuidParam - * the parameter name of the UUID parameter. + * + * @param uuidParam the parameter name of the UUID parameter. */ protected GetByUUIDQueryTransformer(QueryParameter uuidParam) { this.uuidParam = requireNonNull(uuidParam, "uuidParam cannot be null"); @@ -45,63 +44,27 @@ protected GetByUUIDQueryTransformer(QueryParameter uuidParam) { * Does not perform any transformation if one of the parameters is null. * @param query * the query. Can be null. - * @param ebXML + * @param slots * the ebXML representation. Can be null. */ @Override - public void toEbXML(T query, EbXMLAdhocQueryRequest ebXML) { - if (query == null || ebXML == null) { - return; - } - - super.toEbXML(query, ebXML); - - var slots = new QuerySlotHelper(ebXML); + protected void toEbXML(T query, QuerySlotHelper slots) { + super.toEbXML(query, slots); slots.fromStringList(uuidParam, query.getUuids()); - - toEbXML(query, slots); } /** * Transforms the ebXML representation of a query into a query object. *

- * Does not perform any transformation if one of the parameters is null. + * Does not perform any transformation if one of the parameters is null. * @param query * the query. Can be null. - * @param ebXML + * @param slots * the ebXML representation. Can be null. */ - @Override -public void fromEbXML(T query, EbXMLAdhocQueryRequest ebXML) { - if (query == null || ebXML == null) { - return; - } - - super.fromEbXML(query, ebXML); - - var slots = new QuerySlotHelper(ebXML); + @Override + protected void fromEbXML(T query, QuerySlotHelper slots) { + super.fromEbXML(query, slots); query.setUuids(slots.toStringList(uuidParam)); - - fromEbXML(query, slots); } - - /** - * Called by {@link #toEbXML(GetByUuidQuery, EbXMLAdhocQueryRequest)} to - * transform slots. - * @param query - * the query to transform. - * @param slots - * the slots to be filled. - */ - protected void toEbXML(T query, QuerySlotHelper slots) {} - - /** - * Called by {@link #fromEbXML(GetByUuidQuery, EbXMLAdhocQueryRequest)} to - * transform slots. - * @param query - * the target query. - * @param slots - * the slots to transform. - */ - protected void fromEbXML(T query, QuerySlotHelper slots) {} } diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/GetDocumentsAndAssociationsQueryTransformer.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/GetDocumentsAndAssociationsQueryTransformer.java index ebe2f505bf..75c5b81eb1 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/GetDocumentsAndAssociationsQueryTransformer.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/GetDocumentsAndAssociationsQueryTransformer.java @@ -15,6 +15,7 @@ */ package org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query; +import lombok.Getter; import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLAdhocQueryRequest; import org.openehealth.ipf.commons.ihe.xds.core.requests.query.GetDocumentsAndAssociationsQuery; @@ -25,48 +26,30 @@ * @author Jens Riemschneider */ public class GetDocumentsAndAssociationsQueryTransformer extends GetByIDQueryTransformer { + + @Getter + private static final GetDocumentsAndAssociationsQueryTransformer instance = new GetDocumentsAndAssociationsQueryTransformer(); + /** * Constructs the transformer. */ - public GetDocumentsAndAssociationsQueryTransformer() { + private GetDocumentsAndAssociationsQueryTransformer() { super(DOC_ENTRY_UUID, DOC_ENTRY_UNIQUE_ID); } - /** - * - * @param query - * the query. Can be null. - * @param ebXML ebXML object - */ - @Override - public void toEbXML(GetDocumentsAndAssociationsQuery query, EbXMLAdhocQueryRequest ebXML) { - if (query == null || ebXML == null) { - return; - } - - super.toEbXML(query, ebXML); - var slots = new QuerySlotHelper(ebXML); + @Override + protected void toEbXML(GetDocumentsAndAssociationsQuery query, QuerySlotHelper slots) { + super.toEbXML(query, slots); slots.fromStatus(ASSOCIATION_STATUS, query.getAssociationStatuses()); slots.fromInteger(METADATA_LEVEL, query.getMetadataLevel()); } - /** - * - * @param query - * the query. Can be null. - * @param ebXML ebXML object - */ @Override - public void fromEbXML(GetDocumentsAndAssociationsQuery query, EbXMLAdhocQueryRequest ebXML) { - if (query == null || ebXML == null) { - return; - } - - super.fromEbXML(query, ebXML); - - var slots = new QuerySlotHelper(ebXML); + protected void fromEbXML(GetDocumentsAndAssociationsQuery query, QuerySlotHelper slots) { + super.fromEbXML(query, slots); query.setAssociationStatuses(slots.toStatus(ASSOCIATION_STATUS)); query.setMetadataLevel(slots.toInteger(METADATA_LEVEL)); } + } diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/GetDocumentsQueryTransformer.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/GetDocumentsQueryTransformer.java index d9dbd87e52..82089b9f61 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/GetDocumentsQueryTransformer.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/GetDocumentsQueryTransformer.java @@ -15,6 +15,7 @@ */ package org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query; +import lombok.Getter; import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLAdhocQueryRequest; import org.openehealth.ipf.commons.ihe.xds.core.requests.query.GetDocumentsQuery; @@ -25,48 +26,29 @@ * @author Jens Riemschneider */ public class GetDocumentsQueryTransformer extends GetByIDQueryTransformer { + + @Getter + private static final GetDocumentsQueryTransformer instance = new GetDocumentsQueryTransformer(); + /** * Constructs the transformer. */ - public GetDocumentsQueryTransformer() { + private GetDocumentsQueryTransformer() { super(DOC_ENTRY_UUID, DOC_ENTRY_UNIQUE_ID); } - /** - * - * @param query - * the query. Can be null. - * @param ebXML ebXML object - */ @Override - public void toEbXML(GetDocumentsQuery query, EbXMLAdhocQueryRequest ebXML) { - if (query == null || ebXML == null) { - return; - } - - super.toEbXML(query, ebXML); - - var slots = new QuerySlotHelper(ebXML); + protected void toEbXML(GetDocumentsQuery query, QuerySlotHelper slots) { + super.toEbXML(query, slots); slots.fromStringList(DOC_ENTRY_LOGICAL_ID, query.getLogicalUuid()); slots.fromInteger(METADATA_LEVEL, query.getMetadataLevel()); } - /** - * - * @param query - * the query. Can be null. - * @param ebXML ebXML object - */ @Override - public void fromEbXML(GetDocumentsQuery query, EbXMLAdhocQueryRequest ebXML) { - if (query == null || ebXML == null) { - return; - } - - super.fromEbXML(query, ebXML); - - var slots = new QuerySlotHelper(ebXML); + protected void fromEbXML(GetDocumentsQuery query, QuerySlotHelper slots) { + super.fromEbXML(query, slots); query.setLogicalUuid(slots.toStringList(DOC_ENTRY_LOGICAL_ID)); query.setMetadataLevel(slots.toInteger(METADATA_LEVEL)); } + } diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/GetFolderAndContentsQueryTransformer.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/GetFolderAndContentsQueryTransformer.java index 9d4e9e7914..d0d600f1ba 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/GetFolderAndContentsQueryTransformer.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/GetFolderAndContentsQueryTransformer.java @@ -15,20 +15,26 @@ */ package org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query; -import static org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryParameter.*; - +import lombok.Getter; import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLAdhocQueryRequest; import org.openehealth.ipf.commons.ihe.xds.core.requests.query.GetFolderAndContentsQuery; +import static org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryParameter.*; + /** * Transforms between a {@link GetFolderAndContentsQuery} and {@link EbXMLAdhocQueryRequest}. * @author Jens Riemschneider */ public class GetFolderAndContentsQueryTransformer extends GetByIDAndCodesQueryTransformer { + + @Getter + private static final GetFolderAndContentsQueryTransformer instance = new GetFolderAndContentsQueryTransformer(); + + /** * Constructs the transformer. */ - public GetFolderAndContentsQueryTransformer() { + private GetFolderAndContentsQueryTransformer() { super(FOLDER_UUID, FOLDER_UNIQUE_ID, DOC_ENTRY_FORMAT_CODE, @@ -38,26 +44,16 @@ public GetFolderAndContentsQueryTransformer() { } @Override - public void toEbXML(GetFolderAndContentsQuery query, EbXMLAdhocQueryRequest ebXML) { - if (query == null || ebXML == null) { - return; - } - - super.toEbXML(query, ebXML); - var slots = new QuerySlotHelper(ebXML); + protected void toEbXML(GetFolderAndContentsQuery query, QuerySlotHelper slots) { + super.toEbXML(query, slots); slots.fromDocumentEntryType(DOC_ENTRY_TYPE, query.getDocumentEntryTypes()); slots.fromStatus(ASSOCIATION_STATUS, query.getAssociationStatuses()); slots.fromInteger(METADATA_LEVEL, query.getMetadataLevel()); } @Override - public void fromEbXML(GetFolderAndContentsQuery query, EbXMLAdhocQueryRequest ebXML) { - if (query == null || ebXML == null) { - return; - } - - super.fromEbXML(query, ebXML); - var slots = new QuerySlotHelper(ebXML); + protected void fromEbXML(GetFolderAndContentsQuery query, QuerySlotHelper slots) { + super.fromEbXML(query, slots); query.setDocumentEntryTypes(slots.toDocumentEntryType(DOC_ENTRY_TYPE)); query.setAssociationStatuses(slots.toStatus(ASSOCIATION_STATUS)); query.setMetadataLevel(slots.toInteger(METADATA_LEVEL)); diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/GetFoldersForDocumentQueryTransformer.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/GetFoldersForDocumentQueryTransformer.java index 51857407de..f22e4e4029 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/GetFoldersForDocumentQueryTransformer.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/GetFoldersForDocumentQueryTransformer.java @@ -16,10 +16,12 @@ package org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query; +import lombok.Getter; import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLAdhocQueryRequest; import org.openehealth.ipf.commons.ihe.xds.core.requests.query.GetFoldersForDocumentQuery; -import static org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryParameter.*; +import static org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryParameter.ASSOCIATION_STATUS; +import static org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryParameter.METADATA_LEVEL; /** * Transforms between a {@link GetFoldersForDocumentQuery} and {@link EbXMLAdhocQueryRequest}. @@ -27,40 +29,22 @@ */ public class GetFoldersForDocumentQueryTransformer extends GetFromDocumentQueryTransformer { - /** - * - * @param query - * the query. Can be null. - * @param ebXML ebXML object - */ - @Override - public void toEbXML(GetFoldersForDocumentQuery query, EbXMLAdhocQueryRequest ebXML) { - if (query == null || ebXML == null) { - return; - } + @Getter + private static final GetFoldersForDocumentQueryTransformer instance = new GetFoldersForDocumentQueryTransformer(); - super.toEbXML(query, ebXML); + private GetFoldersForDocumentQueryTransformer() { + } - var slots = new QuerySlotHelper(ebXML); + @Override + protected void toEbXML(GetFoldersForDocumentQuery query, QuerySlotHelper slots) { + super.toEbXML(query, slots); slots.fromStatus(ASSOCIATION_STATUS, query.getAssociationStatuses()); slots.fromInteger(METADATA_LEVEL, query.getMetadataLevel()); } - /** - * - * @param query - * the query. Can be null. - * @param ebXML ebXML object - */ @Override - public void fromEbXML(GetFoldersForDocumentQuery query, EbXMLAdhocQueryRequest ebXML) { - if (query == null || ebXML == null) { - return; - } - - super.fromEbXML(query, ebXML); - - var slots = new QuerySlotHelper(ebXML); + protected void fromEbXML(GetFoldersForDocumentQuery query, QuerySlotHelper slots) { + super.fromEbXML(query, slots); query.setAssociationStatuses(slots.toStatus(ASSOCIATION_STATUS)); query.setMetadataLevel(slots.toInteger(METADATA_LEVEL)); } diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/GetFoldersQueryTransformer.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/GetFoldersQueryTransformer.java index 240c9a438c..325e0bad72 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/GetFoldersQueryTransformer.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/GetFoldersQueryTransformer.java @@ -15,55 +15,41 @@ */ package org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query; -import static org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryParameter.*; - +import lombok.Getter; import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLAdhocQueryRequest; import org.openehealth.ipf.commons.ihe.xds.core.requests.query.GetFoldersQuery; +import static org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryParameter.*; + /** * Transforms between a {@link GetFoldersQuery} and {@link EbXMLAdhocQueryRequest}. * * @author Jens Riemschneider */ public class GetFoldersQueryTransformer extends GetByIDQueryTransformer { + + @Getter + private static final GetFoldersQueryTransformer instance = new GetFoldersQueryTransformer(); + /** * Constructs the transformer. */ - public GetFoldersQueryTransformer() { + private GetFoldersQueryTransformer() { super(FOLDER_UUID, FOLDER_UNIQUE_ID); } - /** - * @param query the query. Can be null. - * @param ebXML ebXML request - */ @Override - public void toEbXML(GetFoldersQuery query, EbXMLAdhocQueryRequest ebXML) { - if (query == null || ebXML == null) { - return; - } - - super.toEbXML(query, ebXML); - - var slots = new QuerySlotHelper(ebXML); + protected void toEbXML(GetFoldersQuery query, QuerySlotHelper slots) { + super.toEbXML(query, slots); slots.fromStringList(FOLDER_LOGICAL_ID, query.getLogicalUuid()); slots.fromInteger(METADATA_LEVEL, query.getMetadataLevel()); } - /** - * @param query the query. Can be null. - * @param ebXML ebXML request - */ @Override - public void fromEbXML(GetFoldersQuery query, EbXMLAdhocQueryRequest ebXML) { - if (query == null || ebXML == null) { - return; - } - - super.fromEbXML(query, ebXML); - - var slots = new QuerySlotHelper(ebXML); + protected void fromEbXML(GetFoldersQuery query, QuerySlotHelper slots) { + super.fromEbXML(query, slots); query.setLogicalUuid(slots.toStringList(FOLDER_LOGICAL_ID)); query.setMetadataLevel(slots.toInteger(METADATA_LEVEL)); } + } diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/GetFromDocumentQueryTransformer.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/GetFromDocumentQueryTransformer.java index caabb27cdf..c6379b64e9 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/GetFromDocumentQueryTransformer.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/GetFromDocumentQueryTransformer.java @@ -15,7 +15,6 @@ */ package org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query; -import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLAdhocQueryRequest; import org.openehealth.ipf.commons.ihe.xds.core.requests.query.GetFromDocumentQuery; import static org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryParameter.DOC_ENTRY_UNIQUE_ID; @@ -28,49 +27,18 @@ * @author Jens Riemschneider */ public abstract class GetFromDocumentQueryTransformer extends AbstractStoredQueryTransformer { - /** - * Transforms the query into its ebXML representation. - *

- * Does not perform any transformation if one of the parameters is null. - * @param query - * the query. Can be null. - * @param ebXML - * the ebXML representation. Can be null. - */ - @Override - public void toEbXML(T query, EbXMLAdhocQueryRequest ebXML) { - if (query == null || ebXML == null) { - return; - } - - super.toEbXML(query, ebXML); - var slots = new QuerySlotHelper(ebXML); + @Override + protected void toEbXML(T query, QuerySlotHelper slots) { + super.toEbXML(query, slots); slots.fromString(DOC_ENTRY_UUID, query.getUuid()); slots.fromString(DOC_ENTRY_UNIQUE_ID, query.getUniqueId()); } - /** - * Transforms the ebXML representation of a query into a query object. - *

- * Does not perform any transformation if one of the parameters is null. - * @param query - * the query. Can be null. - * @param ebXML - * the ebXML representation. Can be null. - */ @Override - public void fromEbXML(T query, EbXMLAdhocQueryRequest ebXML) { - if (query == null || ebXML == null) { - return; - } - - super.fromEbXML(query, ebXML); - - var slots = new QuerySlotHelper(ebXML); - + protected void fromEbXML(T query, QuerySlotHelper slots) { + super.fromEbXML(query, slots); query.setUniqueId(slots.toString(DOC_ENTRY_UNIQUE_ID)); query.setUuid(slots.toString(DOC_ENTRY_UUID)); } - } diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/GetRelatedDocumentsQueryTransformer.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/GetRelatedDocumentsQueryTransformer.java index 4ef9cc6664..67f4674785 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/GetRelatedDocumentsQueryTransformer.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/GetRelatedDocumentsQueryTransformer.java @@ -15,41 +15,37 @@ */ package org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query; -import static org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryParameter.*; - +import lombok.Getter; import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLAdhocQueryRequest; import org.openehealth.ipf.commons.ihe.xds.core.requests.query.GetDocumentsQuery; import org.openehealth.ipf.commons.ihe.xds.core.requests.query.GetRelatedDocumentsQuery; +import static org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryParameter.*; + /** * Transforms between a {@link GetDocumentsQuery} and {@link EbXMLAdhocQueryRequest}. * @author Jens Riemschneider */ public class GetRelatedDocumentsQueryTransformer extends GetFromDocumentQueryTransformer { - @Override - public void toEbXML(GetRelatedDocumentsQuery query, EbXMLAdhocQueryRequest ebXML) { - if (query == null || ebXML == null) { - return; - } - - super.toEbXML(query, ebXML); - var slots = new QuerySlotHelper(ebXML); + @Getter + private static final GetRelatedDocumentsQueryTransformer instance = new GetRelatedDocumentsQueryTransformer(); + + private GetRelatedDocumentsQueryTransformer() { + } + + @Override + protected void toEbXML(GetRelatedDocumentsQuery query, QuerySlotHelper slots) { + super.toEbXML(query, slots); slots.fromAssociationType(ASSOCIATION_TYPE, query.getAssociationTypes()); slots.fromDocumentEntryType(DOC_ENTRY_TYPE, query.getDocumentEntryTypes()); slots.fromStatus(ASSOCIATION_STATUS, query.getAssociationStatuses()); slots.fromInteger(METADATA_LEVEL, query.getMetadataLevel()); } - - @Override - public void fromEbXML(GetRelatedDocumentsQuery query, EbXMLAdhocQueryRequest ebXML) { - if (query == null || ebXML == null) { - return; - } - - super.fromEbXML(query, ebXML); - var slots = new QuerySlotHelper(ebXML); + @Override + protected void fromEbXML(GetRelatedDocumentsQuery query, QuerySlotHelper slots) { + super.fromEbXML(query, slots); query.setAssociationTypes(slots.toAssociationType(ASSOCIATION_TYPE)); query.setDocumentEntryTypes(slots.toDocumentEntryType(DOC_ENTRY_TYPE)); query.setAssociationStatuses(slots.toStatus(ASSOCIATION_STATUS)); diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/GetSubmissionSetAndContentsQueryTransformer.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/GetSubmissionSetAndContentsQueryTransformer.java index 3255a6af65..e9a7ef2bd3 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/GetSubmissionSetAndContentsQueryTransformer.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/GetSubmissionSetAndContentsQueryTransformer.java @@ -15,20 +15,25 @@ */ package org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query; -import static org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryParameter.*; - +import lombok.Getter; import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLAdhocQueryRequest; import org.openehealth.ipf.commons.ihe.xds.core.requests.query.GetSubmissionSetAndContentsQuery; +import static org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryParameter.*; + /** * Transforms between a {@link GetSubmissionSetAndContentsQuery} and {@link EbXMLAdhocQueryRequest}. * @author Jens Riemschneider */ public class GetSubmissionSetAndContentsQueryTransformer extends GetByIDAndCodesQueryTransformer { + + @Getter + private static final GetSubmissionSetAndContentsQueryTransformer instance = new GetSubmissionSetAndContentsQueryTransformer(); + /** * Constructs the transformer. */ - public GetSubmissionSetAndContentsQueryTransformer() { + private GetSubmissionSetAndContentsQueryTransformer() { super(SUBMISSION_SET_UUID, SUBMISSION_SET_UNIQUE_ID, DOC_ENTRY_FORMAT_CODE, @@ -38,25 +43,15 @@ public GetSubmissionSetAndContentsQueryTransformer() { } @Override - public void toEbXML(GetSubmissionSetAndContentsQuery query, EbXMLAdhocQueryRequest ebXML) { - if (query == null || ebXML == null) { - return; - } - - super.toEbXML(query, ebXML); - var slots = new QuerySlotHelper(ebXML); + protected void toEbXML(GetSubmissionSetAndContentsQuery query, QuerySlotHelper slots) { + super.toEbXML(query, slots); slots.fromDocumentEntryType(DOC_ENTRY_TYPE, query.getDocumentEntryTypes()); slots.fromInteger(METADATA_LEVEL, query.getMetadataLevel()); } @Override - public void fromEbXML(GetSubmissionSetAndContentsQuery query, EbXMLAdhocQueryRequest ebXML) { - if (query == null || ebXML == null) { - return; - } - - super.fromEbXML(query, ebXML); - var slots = new QuerySlotHelper(ebXML); + protected void fromEbXML(GetSubmissionSetAndContentsQuery query, QuerySlotHelper slots) { + super.fromEbXML(query, slots); query.setDocumentEntryTypes(slots.toDocumentEntryType(DOC_ENTRY_TYPE)); query.setMetadataLevel(slots.toInteger(METADATA_LEVEL)); } diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/GetSubmissionSetsQueryTransformer.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/GetSubmissionSetsQueryTransformer.java index d71949a648..dbbb8da583 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/GetSubmissionSetsQueryTransformer.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/GetSubmissionSetsQueryTransformer.java @@ -15,54 +15,42 @@ */ package org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query; -import static org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryParameter.*; - +import lombok.Getter; import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLAdhocQueryRequest; import org.openehealth.ipf.commons.ihe.xds.core.requests.query.GetAssociationsQuery; import org.openehealth.ipf.commons.ihe.xds.core.requests.query.GetSubmissionSetsQuery; +import static org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryParameter.METADATA_LEVEL; +import static org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryParameter.UUID; + /** * Transforms between {@link GetAssociationsQuery} and {@link EbXMLAdhocQueryRequest}. * * @author Jens Riemschneider */ public class GetSubmissionSetsQueryTransformer extends GetByUUIDQueryTransformer { + + @Getter + private static final GetSubmissionSetsQueryTransformer instance = new GetSubmissionSetsQueryTransformer(); + + /** * Constructs the transformer. */ - public GetSubmissionSetsQueryTransformer() { + private GetSubmissionSetsQueryTransformer() { super(UUID); } - /** - * @param query the query. Can be null. - * @param ebXML ebXML request - */ @Override - public void toEbXML(GetSubmissionSetsQuery query, EbXMLAdhocQueryRequest ebXML) { - if (query == null || ebXML == null) { - return; - } - - super.toEbXML(query, ebXML); - - var slots = new QuerySlotHelper(ebXML); + protected void toEbXML(GetSubmissionSetsQuery query, QuerySlotHelper slots) { + super.toEbXML(query, slots); slots.fromInteger(METADATA_LEVEL, query.getMetadataLevel()); } - /** - * @param query the query. Can be null. - * @param ebXML ebXML request - */ @Override - public void fromEbXML(GetSubmissionSetsQuery query, EbXMLAdhocQueryRequest ebXML) { - if (query == null || ebXML == null) { - return; - } - - super.fromEbXML(query, ebXML); - - var slots = new QuerySlotHelper(ebXML); + protected void fromEbXML(GetSubmissionSetsQuery query, QuerySlotHelper slots) { + super.fromEbXML(query, slots); query.setMetadataLevel(slots.toInteger(METADATA_LEVEL)); } + } \ No newline at end of file diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/PharmacyDocumentsQueryTransformer.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/PharmacyDocumentsQueryTransformer.java index af7a98cae3..eb35d24240 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/PharmacyDocumentsQueryTransformer.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/PharmacyDocumentsQueryTransformer.java @@ -15,7 +15,6 @@ */ package org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query; -import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLAdhocQueryRequest; import org.openehealth.ipf.commons.ihe.xds.core.metadata.Hl7v2Based; import org.openehealth.ipf.commons.ihe.xds.core.metadata.Identifiable; import org.openehealth.ipf.commons.ihe.xds.core.requests.query.PharmacyDocumentsQuery; @@ -29,47 +28,17 @@ */ abstract class PharmacyDocumentsQueryTransformer extends AbstractStoredQueryTransformer { - /** - * Transforms the query into its ebXML representation. - *

- * Does not perform any transformation if one of the parameters is null. - * @param query - * the query. Can be null. - * @param ebXML - * the ebXML representation. Can be null. - */ @Override - public void toEbXML(T query, EbXMLAdhocQueryRequest ebXML) { - if (query == null || ebXML == null) { - return; - } - - super.toEbXML(query, ebXML); - var slots = new QuerySlotHelper(ebXML); - + protected void toEbXML(T query, QuerySlotHelper slots) { + super.toEbXML(query, slots); slots.fromInteger(METADATA_LEVEL, query.getMetadataLevel()); slots.fromString(DOC_ENTRY_PATIENT_ID, Hl7v2Based.render(query.getPatientId())); slots.fromStatus(DOC_ENTRY_STATUS, query.getStatus()); } - /** - * Transforms the ebXML representation of a query into a query object. - *

- * Does not perform any transformation if one of the parameters is null. - * @param query - * the query. Can be null. - * @param ebXML - * the ebXML representation. Can be null. - */ @Override - public void fromEbXML(T query, EbXMLAdhocQueryRequest ebXML) { - if (query == null || ebXML == null) { - return; - } - - super.fromEbXML(query, ebXML); - var slots = new QuerySlotHelper(ebXML); - + protected void fromEbXML(T query, QuerySlotHelper slots) { + super.fromEbXML(query, slots); query.setMetadataLevel(slots.toInteger(METADATA_LEVEL)); query.setPatientId(Hl7v2Based.parse(slots.toString(DOC_ENTRY_PATIENT_ID), Identifiable.class)); query.setStatus(slots.toStatus(DOC_ENTRY_STATUS)); diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/PharmacyStableDocumentsQueryTransformer.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/PharmacyStableDocumentsQueryTransformer.java index c731d278dc..9525007b67 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/PharmacyStableDocumentsQueryTransformer.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/PharmacyStableDocumentsQueryTransformer.java @@ -15,7 +15,6 @@ */ package org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query; -import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLAdhocQueryRequest; import org.openehealth.ipf.commons.ihe.xds.core.requests.query.PharmacyStableDocumentsQuery; import static org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryParameter.*; @@ -27,24 +26,10 @@ */ abstract class PharmacyStableDocumentsQueryTransformer extends PharmacyDocumentsQueryTransformer { - /** - * Transforms the query into its ebXML representation. - *

- * Does not perform any transformation if one of the parameters is null. - * @param query - * the query. Can be null. - * @param ebXML - * the ebXML representation. Can be null. - */ - @Override - public void toEbXML(T query, EbXMLAdhocQueryRequest ebXML) { - if (query == null || ebXML == null) { - return; - } - - super.toEbXML(query, ebXML); - var slots = new QuerySlotHelper(ebXML); + @Override + protected void toEbXML(T query, QuerySlotHelper slots) { + super.toEbXML(query, slots); slots.fromStringList(DOC_ENTRY_AUTHOR_PERSON, query.getAuthorPersons()); slots.fromStringList(DOC_ENTRY_UUID, query.getUuids()); slots.fromStringList(DOC_ENTRY_UNIQUE_ID, query.getUniqueIds()); @@ -54,32 +39,15 @@ public void toEbXML(T query, EbXMLAdhocQueryRequest ebXML) { slots.fromCode(DOC_ENTRY_PRACTICE_SETTING_CODE, query.getPracticeSettingCodes()); slots.fromCode(DOC_ENTRY_EVENT_CODE, query.getEventCodes()); slots.fromCode(DOC_ENTRY_CONFIDENTIALITY_CODE, query.getConfidentialityCodes()); - slots.fromTimestamp(DOC_ENTRY_SERVICE_START_TIME_FROM, query.getServiceStartTime().getFrom()); slots.fromTimestamp(DOC_ENTRY_SERVICE_START_TIME_TO, query.getServiceStartTime().getTo()); - slots.fromTimestamp(DOC_ENTRY_SERVICE_STOP_TIME_FROM, query.getServiceStopTime().getFrom()); slots.fromTimestamp(DOC_ENTRY_SERVICE_STOP_TIME_TO, query.getServiceStopTime().getTo()); } - /** - * Transforms the ebXML representation of a query into a query object. - *

- * Does not perform any transformation if one of the parameters is null. - * @param query - * the query. Can be null. - * @param ebXML - * the ebXML representation. Can be null. - */ @Override - public void fromEbXML(T query, EbXMLAdhocQueryRequest ebXML) { - if (query == null || ebXML == null) { - return; - } - - super.fromEbXML(query, ebXML); - var slots = new QuerySlotHelper(ebXML); - + protected void fromEbXML(T query, QuerySlotHelper slots) { + super.fromEbXML(query, slots); query.setAuthorPersons(slots.toStringList(DOC_ENTRY_AUTHOR_PERSON)); query.setConfidentialityCodes(slots.toCodeList(DOC_ENTRY_CONFIDENTIALITY_CODE)); query.getCreationTime().setFrom(slots.toTimestamp(DOC_ENTRY_CREATION_TIME_FROM)); @@ -89,10 +57,8 @@ public void fromEbXML(T query, EbXMLAdhocQueryRequest ebXML) { query.setPracticeSettingCodes(slots.toCodeList(DOC_ENTRY_PRACTICE_SETTING_CODE)); query.setUniqueIds(slots.toStringList(DOC_ENTRY_UNIQUE_ID)); query.setUuids(slots.toStringList(DOC_ENTRY_UUID)); - query.getServiceStartTime().setFrom(slots.toTimestamp(DOC_ENTRY_SERVICE_START_TIME_FROM)); query.getServiceStartTime().setTo(slots.toTimestamp(DOC_ENTRY_SERVICE_START_TIME_TO)); - query.getServiceStopTime().setFrom(slots.toTimestamp(DOC_ENTRY_SERVICE_STOP_TIME_FROM)); query.getServiceStopTime().setTo(slots.toTimestamp(DOC_ENTRY_SERVICE_STOP_TIME_TO)); } diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/QuerySlotHelper.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/QuerySlotHelper.java index 0d42a379e8..864caeaa2f 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/QuerySlotHelper.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/QuerySlotHelper.java @@ -18,14 +18,18 @@ import ca.uhn.hl7v2.model.Composite; import org.apache.commons.lang3.StringUtils; import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLAdhocQueryRequest; +import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLSlot; import org.openehealth.ipf.commons.ihe.xds.core.metadata.*; import org.openehealth.ipf.commons.ihe.xds.core.requests.query.QueryList; +import org.openehealth.ipf.commons.ihe.xds.core.stub.ebrs30.query.AdhocQueryRequest; import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryParameter; import org.openehealth.ipf.commons.ihe.xds.core.validate.ValidationMessage; import org.openehealth.ipf.commons.ihe.xds.core.validate.XDSMetaDataException; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; +import java.util.Objects; import java.util.stream.Collectors; import static org.apache.commons.lang3.StringUtils.isEmpty; @@ -40,26 +44,31 @@ * values are met. *

* Note that this class is only used for ebXML 3.0! + * * @author Jens Riemschneider * @author Dmytro Rud */ public class QuerySlotHelper { - private final EbXMLAdhocQueryRequest ebXML; + private final EbXMLAdhocQueryRequest ebXML; /** * Constructs the wrapper. - * @param ebXML - * the wrapped object. + * + * @param ebXML the wrapped object. */ - public QuerySlotHelper(EbXMLAdhocQueryRequest ebXML) { + public QuerySlotHelper(EbXMLAdhocQueryRequest ebXML) { this.ebXML = requireNonNull(ebXML, "ebXML cannot be null"); } + public List getSlots() { + return ebXML.getSlots(); + } + /** * Retrieves a string-valued parameter from a slot. - * @param param - * the parameter. + * + * @param param the parameter. * @return the string value. */ public String toString(QueryParameter param) { @@ -69,10 +78,9 @@ public String toString(QueryParameter param) { /** * Stores a string-valued parameter into a slot. - * @param param - * the parameter. - * @param value - * the string value. + * + * @param param the parameter. + * @param value the string value. */ public void fromString(QueryParameter param, String value) { if (value != null) { @@ -82,36 +90,31 @@ public void fromString(QueryParameter param, String value) { /** * Stores a list of codes into a slot. - * @param param - * the parameter. - * @param codes - * the list of codes. + * + * @param param the parameter. + * @param codes the list of codes. */ public void fromCode(QueryParameter param, List codes) { if (codes == null) { return; } - var slotValues = new ArrayList(); - for (var code : codes) { - var hl7CE = Hl7v2Based.render(code); - slotValues.add(encodeAsStringList(hl7CE)); - } - ebXML.addSlot(param.getSlotName(), slotValues.toArray(new String[0])); + ebXML.addSlot(param.getSlotName(), codes.stream() + .map(Hl7v2Based::render) + .map(QuerySlotHelper::encodeAsStringList) + .toArray(String[]::new)); } /** * Stores a code list with AND/OR semantics into a set of slots with the same name. - * @param param - * standard query parameter (implies the name of the slots). - * @param queryList - * the list of codes. + * + * @param param standard query parameter (implies the name of the slots). + * @param queryList the list of codes. */ public void fromCode(QueryParameter param, QueryList queryList) { if (queryList == null) { return; } - for (var codes : queryList.getOuterList()) { fromCode(param, codes); } @@ -122,19 +125,17 @@ private QueryList toCodeQueryList(QueryParameter param) { if (slots.isEmpty()) { return null; } - var queryList = new QueryList(); - for (var slot : slots) { - var innerList = toCode(slot.getValueList()); - queryList.getOuterList().add(innerList); - } + slots.stream() + .map(slot -> toCode(slot.getValueList())) + .forEach(innerList -> queryList.getOuterList().add(innerList)); return queryList; } /** * Retrieves a string list with AND/OR semantics from a set of slots with the same name. - * @param param - * standard query parameter (implies the name of the slots). + * + * @param param standard query parameter (implies the name of the slots). * @return the string list. */ public QueryList toStringQueryList(QueryParameter param) { @@ -143,38 +144,35 @@ public QueryList toStringQueryList(QueryParameter param) { /** * Retrieves a string list with AND/OR semantics from a set of slots with the same name. - * @param slotName - * name of the source slots, may correspond to either - * a standard query parameter or an extra parameter. + * + * @param slotName name of the source slots, may correspond to either + * a standard query parameter or an extra parameter. * @return the string list. */ public QueryList toStringQueryList(String slotName) { if (isEmpty(slotName)) { return null; } - var slots = ebXML.getSlots(slotName); if (slots.isEmpty()) { return null; } - var queryList = new QueryList(); - for (var slot : slots) { + slots.forEach(slot -> { var innerList = new ArrayList(); for (var slotValue : slot.getValueList()) { innerList.addAll(decodeStringList(slotValue)); } queryList.getOuterList().add(innerList); - } + }); return queryList; } /** * Stores a list of strings into a slot. - * @param param - * standard query parameter (implies the name of the slots). - * @param values - * the string list. + * + * @param param standard query parameter (implies the name of the slots). + * @param values the string list. */ public void fromStringList(QueryParameter param, List values) { fromStringList(param.getSlotName(), values); @@ -182,17 +180,15 @@ public void fromStringList(QueryParameter param, List values) { /** * Stores a list of strings into a slot. - * @param slotName - * name of the target slot, may correspond to either - * a standard query parameter or an extra parameter. - * @param values - * the string list. + * + * @param slotName name of the target slot, may correspond to either + * a standard query parameter or an extra parameter. + * @param values the string list. */ public void fromStringList(String slotName, List values) { if (isEmpty(slotName) || (values == null)) { return; } - var slotValues = values.stream() .map(QuerySlotHelper::encodeAsStringList) .toArray(String[]::new); @@ -201,10 +197,9 @@ public void fromStringList(String slotName, List values) { /** * Stores a string list with AND/OR semantics into a set of slots with the same name. - * @param param - * standard query parameter (implies the name of the slots). - * @param queryList - * the list of strings. + * + * @param param standard query parameter (implies the name of the slots). + * @param queryList the list of strings. */ public void fromStringList(QueryParameter param, QueryList queryList) { fromStringList(param.getSlotName(), queryList); @@ -212,26 +207,22 @@ public void fromStringList(QueryParameter param, QueryList queryList) { /** * Stores a string list with AND/OR semantics into a set of slots with the same name. - * @param slotName - * name of the target slots, may correspond to either - * a standard query parameter or an extra parameter. - * @param queryList - * the list of strings. + * + * @param slotName name of the target slots, may correspond to either + * a standard query parameter or an extra parameter. + * @param queryList the list of strings. */ public void fromStringList(String slotName, QueryList queryList) { if (isEmpty(slotName) || (queryList == null)) { return; } - - for (var list : queryList.getOuterList()) { - fromStringList(slotName, list); - } + queryList.getOuterList().forEach(list -> fromStringList(slotName, list)); } /** * Retrieves a list of strings from a slot. - * @param param - * the parameter. + * + * @param param the parameter. * @return the string list. */ public List toStringList(QueryParameter param) { @@ -239,27 +230,22 @@ public List toStringList(QueryParameter param) { if (slotValues.isEmpty()) { return null; } - - var values = new ArrayList(); - for (var slotValue : slotValues) { - values.addAll(decodeStringList(slotValue)); - } - return values; + return slotValues.stream() + .flatMap(slotValue -> decodeStringList(slotValue).stream()) + .collect(Collectors.toList()); } /** * Stores a list of patient IDs into a slot. - * @param param - * the parameter. - * @param values - * the patient ID list. + * + * @param param the parameter. + * @param values the patient ID list. */ public void fromPatientIdList(QueryParameter param, List values) { if (values == null) { return; } - var slotValues = values.stream() .map(value -> encodeAsStringList(Hl7v2Based.render(value))) .toArray(String[]::new); @@ -268,8 +254,8 @@ public void fromPatientIdList(QueryParameter param, List values) { /** * Retrieves a list of patient IDs from a slot. - * @param param - * the parameter. + * + * @param param the parameter. * @return the patient ID list. */ public List toPatientIdList(QueryParameter param) { @@ -277,18 +263,15 @@ public List toPatientIdList(QueryParameter param) { if (values == null) { return null; } - - var patientIds = new ArrayList(); - for (var value : values) { - patientIds.add(Hl7v2Based.parse(value, Identifiable.class)); - } - return patientIds; + return values.stream() + .map(value -> Hl7v2Based.parse(value, Identifiable.class)) + .collect(Collectors.toList()); } /** * Retrieves a list of codes from a slot. - * @param param - * the parameter. + * + * @param param the parameter. * @return the codes. */ public List toCodeList(QueryParameter param) { @@ -297,10 +280,9 @@ public List toCodeList(QueryParameter param) { /** * Retrieves a code list with AND/OR semantics from a set of slots with the same name. - * @param param - * standard query parameter (implies the name of the slots). - * @param schemeParam - * the code scheme parameter. + * + * @param param standard query parameter (implies the name of the slots). + * @param schemeParam the code scheme parameter. * @return the codes. */ public QueryList toCodeQueryList(QueryParameter param, QueryParameter schemeParam) { @@ -308,7 +290,6 @@ public QueryList toCodeQueryList(QueryParameter param, QueryParameter sche if (codes == null) { return null; } - var schemes = toStringQueryList(schemeParam); if (schemes != null) { var schemesOuter = schemes.getOuterList(); @@ -324,37 +305,12 @@ public QueryList toCodeQueryList(QueryParameter param, QueryParameter sche return codes; } - /** - * Stores a numbered parameter into a slot. - * @param param - * the parameter. - * @param value - * the value. - * @deprecated not used - */ - @Deprecated - public void fromNumber(QueryParameter param, String value) { - ebXML.addSlot(param.getSlotName(), value); - } - - /** - * Retrieves a numbered parameter from a slot. - * @param param - * the parameter. - * @return the value. - * @deprecated used only in the deprecated class {@link org.openehealth.ipf.commons.ihe.xds.core.validate.query.NumberValidation} - */ - @Deprecated - public String toNumber(QueryParameter param) { - return ebXML.getSingleSlotValue(param.getSlotName()); - } /** * Stores a timestamp parameter into a slot. - * @param param - * the parameter. - * @param value - * the value. + * + * @param param the parameter. + * @param value the value. */ public void fromTimestamp(QueryParameter param, Timestamp value) { ebXML.addSlot(param.getSlotName(), Timestamp.toHL7(value)); @@ -363,8 +319,8 @@ public void fromTimestamp(QueryParameter param, Timestamp value) { /** * Retrieves a timestamp parameter from a slot. * According to CP-ITI-1260, a timestamp parameter may be enclosed in single quotes. - * @param param - * the parameter. + * + * @param param the parameter. * @return the value. */ public String toTimestamp(QueryParameter param) { @@ -374,10 +330,9 @@ public String toTimestamp(QueryParameter param) { /** * Stores a status parameter into a slot. - * @param param - * the parameter. - * @param status - * the list of status values. + * + * @param param the parameter. + * @param status the list of status values. */ public void fromStatus(QueryParameter param, List status) { if (status == null) { @@ -391,8 +346,8 @@ public void fromStatus(QueryParameter param, List status) { /** * Retrieves a status parameter from a slot. - * @param param - * the parameter. + * + * @param param the parameter. * @return the list of status values. */ public List toStatus(QueryParameter param) { @@ -400,29 +355,22 @@ public List toStatus(QueryParameter param) { if (opcodes == null) { return null; } - - var list = new ArrayList(); - for (var opcode : opcodes) { - var status = AvailabilityStatus.valueOfOpcode(opcode); - if (status != null) { - list.add(status); - } - } - return list; + return opcodes.stream() + .map(AvailabilityStatus::valueOfOpcode) + .filter(Objects::nonNull) + .collect(Collectors.toList()); } /** * Stores an association parameter into a slot. - * @param param - * the parameter. - * @param associationTypes - * the list of association types. + * + * @param param the parameter. + * @param associationTypes the list of association types. */ public void fromAssociationType(QueryParameter param, List associationTypes) { if (associationTypes == null) { return; } - var opcodes = associationTypes.stream() .map(type -> AssociationType.getOpcode30(type)) .collect(Collectors.toList()); @@ -431,8 +379,8 @@ public void fromAssociationType(QueryParameter param, List asso /** * Retrieves an association parameter from a slot. - * @param param - * the parameter. + * + * @param param the parameter. * @return the list of association types. */ public List toAssociationType(QueryParameter param) { @@ -440,7 +388,6 @@ public List toAssociationType(QueryParameter param) { if (opcodes == null) { return null; } - return opcodes.stream() .map(AssociationType::valueOfOpcode30) .collect(Collectors.toList()); @@ -450,7 +397,6 @@ public void fromDocumentEntryType(QueryParameter param, List if (documentEntryTypes == null) { return; } - var uuids = documentEntryTypes.stream() .map(DocumentEntryType::toUuid) .collect(Collectors.toList()); @@ -462,42 +408,37 @@ public List toDocumentEntryType(QueryParameter param) { if (uuids == null) { return null; } - - return uuids.stream() - .map(DocumentEntryType::valueOfUuid) - .collect(Collectors.toList()); + return uuids.stream() + .map(DocumentEntryType::valueOfUuid) + .collect(Collectors.toList()); } public static List toCode(List slotValues) { if (slotValues.isEmpty()) { return null; } - var codes = new ArrayList(); - for (var slotValue : slotValues) { - for (var hl7CE : decodeStringList(slotValue)) { - var code = Hl7v2Based.parse(hl7CE, Code.class); - if (code == null || StringUtils.isEmpty(code.getCode()) || StringUtils.isEmpty(code.getSchemeName())) { - throw new XDSMetaDataException(ValidationMessage.INVALID_QUERY_PARAMETER_VALUE, hl7CE); - } - codes.add(code); - } - } + slotValues.forEach(slotValue -> + decodeStringList(slotValue).forEach(hl7CE -> { + var code = Hl7v2Based.parse(hl7CE, Code.class); + if (code == null || isEmpty(code.getCode()) || isEmpty(code.getSchemeName())) { + throw new XDSMetaDataException(ValidationMessage.INVALID_QUERY_PARAMETER_VALUE, hl7CE); + } + codes.add(code); + })); return codes; } /** * Stores a status parameter into a slot. - * @param param - * the parameter. - * @param status - * the list of documentAvailability values. + * + * @param param the parameter. + * @param status the list of documentAvailability values. */ public void fromDocumentAvailability(QueryParameter param, List status) { if (status == null) { return; } - var opcodes = status.stream() .map(DocumentAvailability::toFullQualifiedOpcode) .collect(Collectors.toList()); @@ -506,8 +447,8 @@ public void fromDocumentAvailability(QueryParameter param, List toDocumentAvailability(QueryParameter param) { @@ -515,26 +456,20 @@ public List toDocumentAvailability(QueryParameter param) { if (opcodes == null) { return null; } - - var list = new ArrayList(); - for (var opcode : opcodes) { - var availability = DocumentAvailability.valueOfOpcode(opcode); - if (availability != null) { - list.add(availability); - } - } - return list; + return opcodes.stream() + .map(DocumentAvailability::valueOfOpcode) + .filter(Objects::nonNull) + .collect(Collectors.toList()); } /** * Stores a numbered parameter into a slot. - * @param param - * the parameter. - * @param value - * the value. + * + * @param param the parameter. + * @param value the value. */ public void fromInteger(QueryParameter param, Integer value) { - if (value == null){ + if (value == null) { return; } ebXML.addSlot(param.getSlotName(), String.valueOf(value)); @@ -542,21 +477,20 @@ public void fromInteger(QueryParameter param, Integer value) { /** * Retrieves a numbered parameter from a slot. - * @param param - * the parameter. + * + * @param param the parameter. * @return the value. */ public Integer toInteger(QueryParameter param) { - Integer result = null; try { var slotValue = ebXML.getSingleSlotValue(param.getSlotName()); if (StringUtils.isNotBlank(slotValue)) { - result = Integer.valueOf(slotValue); + return Integer.valueOf(slotValue); } - } catch (NumberFormatException nfe){ + } catch (NumberFormatException nfe) { // ok, return null } - return result; + return null; } public static String encodeAsString(String value) { @@ -588,24 +522,19 @@ public static List decodeStringList(String list) { if (list == null) { return null; } - - list = list.trim(); - if (list.startsWith("(")) { - list = list.substring(1); + String trimmed = list.trim(); + if (trimmed.startsWith("(")) { + trimmed = trimmed.substring(1); } - if (list.endsWith(")")) { - list = list.substring(0, list.length() - 1); + if (trimmed.endsWith(")")) { + trimmed = trimmed.substring(0, trimmed.length() - 1); } - - var values = new ArrayList(); - for (var value: list.split(",")){ - var decodedValue = isNotBlank(value)? decodeString(value.trim()): ""; - values.add(decodedValue); - } - return values; + return Arrays.stream(trimmed.split(",")) + .map(value -> isNotBlank(value) ? decodeString(value.trim()) : "") + .collect(Collectors.toList()); } - public static QueryList render(QueryList source) { + public static > QueryList render(QueryList source) { if (source == null) { return null; } @@ -615,7 +544,7 @@ public static QueryList render(QueryList sourc return target; } - public static List render(List source) { + public static > List render(List source) { if (source == null) { return null; } @@ -627,8 +556,7 @@ public static List render(List source) { public static > QueryList parse( QueryList source, - Class targetClass) - { + Class targetClass) { if (source == null) { return null; } @@ -640,8 +568,7 @@ public static > QueryList parse( public static > List parse( List source, - Class targetClass) - { + Class targetClass) { if (source == null) { return null; } diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/SubscriptionForDocumentEntryQueryTransformer.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/SubscriptionForDocumentEntryQueryTransformer.java new file mode 100644 index 0000000000..6497ae5f4e --- /dev/null +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/SubscriptionForDocumentEntryQueryTransformer.java @@ -0,0 +1,53 @@ +/* + * Copyright 2009 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query; + +import lombok.Getter; +import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLAdhocQueryRequest; +import org.openehealth.ipf.commons.ihe.xds.core.metadata.Hl7v2Based; +import org.openehealth.ipf.commons.ihe.xds.core.metadata.Identifiable; +import org.openehealth.ipf.commons.ihe.xds.core.requests.query.SubscriptionForDocumentEntryQuery; + +import static org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryParameter.DOC_ENTRY_PATIENT_ID; +import static org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryParameter.DOC_ENTRY_REFERENCE_IDS; + +/** + * Transforms between a {@link SubscriptionForDocumentEntryQuery} and {@link EbXMLAdhocQueryRequest}. + * @author Christian Ohr + */ +public class SubscriptionForDocumentEntryQueryTransformer extends DocumentsQueryTransformer { + + @Getter + private static final SubscriptionForDocumentEntryQueryTransformer instance = new SubscriptionForDocumentEntryQueryTransformer(); + + private SubscriptionForDocumentEntryQueryTransformer() { + } + + @Override + protected void toEbXML(SubscriptionForDocumentEntryQuery query, QuerySlotHelper slots) { + super.toEbXML(query, slots); + slots.fromString(DOC_ENTRY_PATIENT_ID, Hl7v2Based.render(query.getPatientId())); + slots.fromStringList(DOC_ENTRY_REFERENCE_IDS, query.getReferenceIds()); + } + + @Override + protected void fromEbXML(SubscriptionForDocumentEntryQuery query, QuerySlotHelper slots) { + super.fromEbXML(query, slots); + var patientId = slots.toString(DOC_ENTRY_PATIENT_ID); + query.setPatientId(Hl7v2Based.parse(patientId, Identifiable.class)); + query.setReferenceIds(slots.toStringQueryList(DOC_ENTRY_REFERENCE_IDS)); + } +} diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/SubscriptionForFolderQueryTransformer.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/SubscriptionForFolderQueryTransformer.java new file mode 100644 index 0000000000..f65e8121b6 --- /dev/null +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/SubscriptionForFolderQueryTransformer.java @@ -0,0 +1,56 @@ +/* + * Copyright 2009 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query; + +import lombok.Getter; +import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLAdhocQueryRequest; +import org.openehealth.ipf.commons.ihe.xds.core.metadata.Hl7v2Based; +import org.openehealth.ipf.commons.ihe.xds.core.metadata.Identifiable; +import org.openehealth.ipf.commons.ihe.xds.core.requests.query.SubscriptionForFolderQuery; + +import static org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryParameter.*; + +/** + * Transforms between a {@link SubscriptionForFolderQuery} and {@link EbXMLAdhocQueryRequest}. + * @author Christian Ohr + */ +public class SubscriptionForFolderQueryTransformer extends GetByIDQueryTransformer { + + @Getter + private static final SubscriptionForFolderQueryTransformer instance = new SubscriptionForFolderQueryTransformer(); + + private SubscriptionForFolderQueryTransformer() { + super(FOLDER_UUID, FOLDER_UNIQUE_ID); + } + + @Override + protected void toEbXML(SubscriptionForFolderQuery query, QuerySlotHelper slots) { + super.toEbXML(query, slots); + slots.fromString(FOLDER_PATIENT_ID, Hl7v2Based.render(query.getPatientId())); + slots.fromCode(FOLDER_CODES, query.getCodes()); + slots.fromStringList(FOLDER_LOGICAL_ID, query.getLogicalUuid()); + } + + @Override + protected void fromEbXML(SubscriptionForFolderQuery query, QuerySlotHelper slots) { + super.fromEbXML(query, slots); + var patientId = slots.toString(FOLDER_PATIENT_ID); + query.setPatientId(Hl7v2Based.parse(patientId, Identifiable.class)); + query.setCodes(slots.toCodeQueryList(FOLDER_CODES, FOLDER_CODES_SCHEME)); + query.setLogicalUuid(slots.toStringList(FOLDER_LOGICAL_ID)); + } + +} diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/SubscriptionForPatientIndependentDocumentEntryQueryTransformer.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/SubscriptionForPatientIndependentDocumentEntryQueryTransformer.java new file mode 100644 index 0000000000..4952786cf3 --- /dev/null +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/SubscriptionForPatientIndependentDocumentEntryQueryTransformer.java @@ -0,0 +1,45 @@ +/* + * Copyright 2009 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query; + +import lombok.Getter; +import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLAdhocQueryRequest; +import org.openehealth.ipf.commons.ihe.xds.core.requests.query.SubscriptionForPatientIndependentDocumentEntryQuery; + +/** + * Transforms between a {@link SubscriptionForPatientIndependentDocumentEntryQuery} and {@link EbXMLAdhocQueryRequest}. + * @author Christian Ohr + */ +public class SubscriptionForPatientIndependentDocumentEntryQueryTransformer extends DocumentsQueryTransformer { + + @Getter + private static final SubscriptionForPatientIndependentDocumentEntryQueryTransformer instance = new SubscriptionForPatientIndependentDocumentEntryQueryTransformer(); + + private SubscriptionForPatientIndependentDocumentEntryQueryTransformer() { + super(); + } + + @Override + protected void toEbXML(SubscriptionForPatientIndependentDocumentEntryQuery query, QuerySlotHelper slots) { + super.toEbXML(query, slots); + } + + @Override + protected void fromEbXML(SubscriptionForPatientIndependentDocumentEntryQuery query, QuerySlotHelper slots) { + super.fromEbXML(query, slots); + } + +} diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/SubscriptionForPatientIndependentSubmissionSetQueryTransformer.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/SubscriptionForPatientIndependentSubmissionSetQueryTransformer.java new file mode 100644 index 0000000000..920ca962d6 --- /dev/null +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/SubscriptionForPatientIndependentSubmissionSetQueryTransformer.java @@ -0,0 +1,54 @@ +/* + * Copyright 2009 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query; + +import lombok.Getter; +import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLAdhocQueryRequest; +import org.openehealth.ipf.commons.ihe.xds.core.requests.query.SubscriptionForPatientIndependentSubmissionSetQuery; +import org.openehealth.ipf.commons.ihe.xds.core.requests.query.SubscriptionForSubmissionSetQuery; + +import static org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryParameter.*; + +/** + * Transforms between a {@link SubscriptionForSubmissionSetQuery} and {@link EbXMLAdhocQueryRequest}. + * @author Christian Ohr + */ +public class SubscriptionForPatientIndependentSubmissionSetQueryTransformer extends AbstractStoredQueryTransformer { + + @Getter + private static final SubscriptionForPatientIndependentSubmissionSetQueryTransformer instance = new SubscriptionForPatientIndependentSubmissionSetQueryTransformer(); + + private SubscriptionForPatientIndependentSubmissionSetQueryTransformer() { + super(); + } + + @Override + protected void toEbXML(SubscriptionForPatientIndependentSubmissionSetQuery query, QuerySlotHelper slots) { + super.toEbXML(query, slots); + slots.fromStringList(SUBMISSION_SET_SOURCE_ID, query.getSourceIds()); + slots.fromStringList(SUBMISSION_SET_AUTHOR_PERSON, query.getAuthorPersons()); + slots.fromStringList(SUBMISSION_SET_INTENDED_RECIPIENT, query.getIntendedRecipients()); + } + + @Override + protected void fromEbXML(SubscriptionForPatientIndependentSubmissionSetQuery query, QuerySlotHelper slots) { + super.fromEbXML(query, slots); + query.setSourceIds(slots.toStringList(SUBMISSION_SET_SOURCE_ID)); + query.setAuthorPersons(slots.toStringList(SUBMISSION_SET_AUTHOR_PERSON)); + query.setIntendedRecipients(slots.toStringList(SUBMISSION_SET_INTENDED_RECIPIENT)); + } + +} diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/SubscriptionForSubmissionSetQueryTransformer.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/SubscriptionForSubmissionSetQueryTransformer.java new file mode 100644 index 0000000000..dace611393 --- /dev/null +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/SubscriptionForSubmissionSetQueryTransformer.java @@ -0,0 +1,58 @@ +/* + * Copyright 2009 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query; + +import lombok.Getter; +import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLAdhocQueryRequest; +import org.openehealth.ipf.commons.ihe.xds.core.metadata.Hl7v2Based; +import org.openehealth.ipf.commons.ihe.xds.core.metadata.Identifiable; +import org.openehealth.ipf.commons.ihe.xds.core.requests.query.SubscriptionForSubmissionSetQuery; + +import static org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryParameter.*; + +/** + * Transforms between a {@link SubscriptionForSubmissionSetQuery} and {@link EbXMLAdhocQueryRequest}. + * @author Christian Ohr + */ +public class SubscriptionForSubmissionSetQueryTransformer extends AbstractStoredQueryTransformer { + + @Getter + private static final SubscriptionForSubmissionSetQueryTransformer instance = new SubscriptionForSubmissionSetQueryTransformer(); + + private SubscriptionForSubmissionSetQueryTransformer() { + super(); + } + + @Override + protected void toEbXML(SubscriptionForSubmissionSetQuery query, QuerySlotHelper slots) { + super.toEbXML(query, slots); + slots.fromString(SUBMISSION_SET_PATIENT_ID, Hl7v2Based.render(query.getPatientId())); + slots.fromStringList(SUBMISSION_SET_SOURCE_ID, query.getSourceIds()); + slots.fromStringList(SUBMISSION_SET_AUTHOR_PERSON, query.getAuthorPersons()); + slots.fromStringList(SUBMISSION_SET_INTENDED_RECIPIENT, query.getIntendedRecipients()); + } + + @Override + protected void fromEbXML(SubscriptionForSubmissionSetQuery query, QuerySlotHelper slots) { + super.fromEbXML(query, slots); + var patientId = slots.toString(SUBMISSION_SET_PATIENT_ID); + query.setPatientId(Hl7v2Based.parse(patientId, Identifiable.class)); + query.setSourceIds(slots.toStringList(SUBMISSION_SET_SOURCE_ID)); + query.setAuthorPersons(slots.toStringList(SUBMISSION_SET_AUTHOR_PERSON)); + query.setIntendedRecipients(slots.toStringList(SUBMISSION_SET_INTENDED_RECIPIENT)); + } + +} diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/responses/QueryResponseTransformer.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/responses/QueryResponseTransformer.java index 0eb67c0489..fa651fe1a6 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/responses/QueryResponseTransformer.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/responses/QueryResponseTransformer.java @@ -21,6 +21,7 @@ import org.openehealth.ipf.commons.ihe.xds.core.metadata.DocumentEntryType; import org.openehealth.ipf.commons.ihe.xds.core.metadata.Vocabulary; import org.openehealth.ipf.commons.ihe.xds.core.responses.QueryResponse; +import org.openehealth.ipf.commons.ihe.xds.core.stub.ebrs30.query.AdhocQueryResponse; import org.openehealth.ipf.commons.ihe.xds.core.transform.ebxml.LeafClassTransformer; import javax.activation.DataHandler; @@ -49,7 +50,7 @@ public QueryResponseTransformer(EbXMLFactory factory) { * @param response the response. Can be null. * @return the ebXML representation. null if the input was null. */ - public EbXMLQueryResponse toEbXML(QueryResponse response) { + public EbXMLQueryResponse toEbXML(QueryResponse response) { if (response == null) { return null; } @@ -96,7 +97,7 @@ public EbXMLQueryResponse toEbXML(QueryResponse response) { * @param ebXML the ebXML representation. Can be null. * @return the response. null if the input was null. */ - public QueryResponse fromEbXML(EbXMLQueryResponse ebXML) { + public QueryResponse fromEbXML(EbXMLQueryResponse ebXML) { if (ebXML == null) { return null; } diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/responses/ResponseTransformer.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/responses/ResponseTransformer.java index f7008c5ed6..e15c5f6012 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/responses/ResponseTransformer.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/responses/ResponseTransformer.java @@ -20,6 +20,7 @@ import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLFactory; import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLRegistryResponse; import org.openehealth.ipf.commons.ihe.xds.core.responses.Response; +import org.openehealth.ipf.commons.ihe.xds.core.stub.ebrs30.rs.RegistryResponseType; /** * Transforms between {@link Response} and the ebXML representation. @@ -35,7 +36,7 @@ public class ResponseTransformer { * the factory for ebXML objects. */ public ResponseTransformer(EbXMLFactory factory) { - this.factory = requireNonNull(factory, "factory cannot be null");; + this.factory = requireNonNull(factory, "factory cannot be null"); this.errorInfoListTransformer = new ErrorInfoListTransformer(factory); } @@ -45,7 +46,7 @@ public ResponseTransformer(EbXMLFactory factory) { * the response. Can be null. * @return the ebXML representation. null if the input was null. */ - public EbXMLRegistryResponse toEbXML(Response response) { + public EbXMLRegistryResponse toEbXML(Response response) { requireNonNull(response, "response cannot be null"); var ebXML = factory.createRegistryResponse(); @@ -64,7 +65,7 @@ public EbXMLRegistryResponse toEbXML(Response response) { * the ebXML representation. Can be null. * @return the response. null if the input was null. */ - public Response fromEbXML(EbXMLRegistryResponse ebXML) { + public Response fromEbXML(EbXMLRegistryResponse ebXML) { requireNonNull(ebXML, "ebXML cannot be null"); var response = new Response(); diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/responses/RetrieveDocumentSetResponseTransformer.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/responses/RetrieveDocumentSetResponseTransformer.java index 5107251a0a..d6759fcc63 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/responses/RetrieveDocumentSetResponseTransformer.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/transform/responses/RetrieveDocumentSetResponseTransformer.java @@ -19,6 +19,7 @@ import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLFactory; import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLRetrieveDocumentSetResponse; +import org.openehealth.ipf.commons.ihe.xds.core.ebxml.ebxml30.RetrieveDocumentSetResponseType; import org.openehealth.ipf.commons.ihe.xds.core.responses.RetrievedDocumentSet; /** @@ -35,7 +36,7 @@ public class RetrieveDocumentSetResponseTransformer { * the factory for ebXML objects. */ public RetrieveDocumentSetResponseTransformer(EbXMLFactory factory) { - this.factory = requireNonNull(factory, "factory cannot be null");; + this.factory = requireNonNull(factory, "factory cannot be null"); this.errorInfoListTransformer = new ErrorInfoListTransformer(factory); } @@ -45,7 +46,7 @@ public RetrieveDocumentSetResponseTransformer(EbXMLFactory factory) { * the response. Can be null. * @return the ebXML representation. null if the input was null. */ - public EbXMLRetrieveDocumentSetResponse toEbXML(RetrievedDocumentSet response) { + public EbXMLRetrieveDocumentSetResponse toEbXML(RetrievedDocumentSet response) { if (response == null) { return null; } @@ -65,7 +66,7 @@ public EbXMLRetrieveDocumentSetResponse toEbXML(RetrievedDocumentSet response) { * the ebXML representation. Can be null. * @return the response. null if the input was null. */ - public RetrievedDocumentSet fromEbXML(EbXMLRetrieveDocumentSetResponse ebXML) { + public RetrievedDocumentSet fromEbXML(EbXMLRetrieveDocumentSetResponse ebXML) { if (ebXML == null) { return null; } diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/SlotLengthAndNameUniquenessValidator.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/SlotLengthAndNameUniquenessValidator.java index ed0ecef814..662ad2758b 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/SlotLengthAndNameUniquenessValidator.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/SlotLengthAndNameUniquenessValidator.java @@ -40,7 +40,7 @@ * @author Jens Riemschneider * @author Dmytro Rud */ -public class SlotLengthAndNameUniquenessValidator { +public abstract class SlotLengthAndNameUniquenessValidator { /** * Validates slot lengths and name uniqueness @@ -49,27 +49,27 @@ public class SlotLengthAndNameUniquenessValidator { * @param container the container of ebXML objects. * @throws XDSMetaDataException if a slot length validation failed. */ - public void validateContainer(EbXMLObjectContainer container) throws XDSMetaDataException { + public static void validateContainer(EbXMLObjectContainer container) throws XDSMetaDataException { validateRegistryObjects(container.getAssociations()); validateRegistryObjects(container.getExtrinsicObjects()); validateRegistryObjects(container.getRegistryPackages()); validateSlotLists(container.getClassifications()); } - private void validateRegistryObjects(List regObjects) throws XDSMetaDataException { + private static void validateRegistryObjects(List regObjects) throws XDSMetaDataException { validateSlotLists(regObjects); for (EbXMLRegistryObject regObj : regObjects) { validateSlotLists(regObj.getClassifications()); } } - private void validateSlotLists(List slotListContainers) throws XDSMetaDataException { + private static void validateSlotLists(List slotListContainers) throws XDSMetaDataException { for (EbXMLSlotList slotList : slotListContainers) { doValidateSlots(slotList.getSlots(), false, emptySet()); } } - public void validateQuerySlots( + public static void validateQuerySlots( List slots, Set allowedSlotNamesMultiple) throws XDSMetaDataException { doValidateSlots(slots, true, allowedSlotNamesMultiple); @@ -83,7 +83,7 @@ public void validateQuerySlots( * @param allowedSlotNamesMultiple names of slots which are allowed to be present more than once (only for queries). * @throws XDSMetaDataException when the validation fails. */ - private void doValidateSlots( + private static void doValidateSlots( List slots, boolean queryMode, Set allowedSlotNamesMultiple) throws XDSMetaDataException { diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/ValidationProfile.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/ValidationProfile.java index a89788110d..901056f414 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/ValidationProfile.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/ValidationProfile.java @@ -40,7 +40,7 @@ public interface ValidationProfile { /** * @return ID of the eHealth transaction. */ - XdsInteractionId getInteractionId(); + XdsInteractionId getInteractionId(); /** diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/query/AssociationValidation.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/query/AssociationValidation.java index 5f7a3d1a5e..7f86de6623 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/query/AssociationValidation.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/query/AssociationValidation.java @@ -16,6 +16,7 @@ package org.openehealth.ipf.commons.ihe.xds.core.validate.query; import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLAdhocQueryRequest; +import org.openehealth.ipf.commons.ihe.xds.core.stub.ebrs30.query.AdhocQueryRequest; import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryParameter; import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query.QuerySlotHelper; import org.openehealth.ipf.commons.ihe.xds.core.validate.XDSMetaDataException; @@ -46,22 +47,21 @@ public AssociationValidation(QueryParameter param) { } @Override - public void validate(EbXMLAdhocQueryRequest request) throws XDSMetaDataException { + public void validate(EbXMLAdhocQueryRequest request) throws XDSMetaDataException { var slotValues = request.getSlotValues(param.getSlotName()); metaDataAssert(!slotValues.isEmpty(), MISSING_REQUIRED_QUERY_PARAMETER, param); - for (var slotValue : slotValues) { + slotValues.forEach(slotValue -> { metaDataAssert(slotValue != null, MISSING_REQUIRED_QUERY_PARAMETER, param); metaDataAssert(PATTERN.matcher(slotValue).matches(), PARAMETER_VALUE_NOT_STRING_LIST, param); - } + }); var slots = new QuerySlotHelper(request); var associationTypes = slots.toAssociationType(param); if (associationTypes != null) { - for (var type : associationTypes) { - metaDataAssert(type != null, INVALID_QUERY_PARAMETER_VALUE, param); - } + associationTypes.forEach(type -> + metaDataAssert(type != null, INVALID_QUERY_PARAMETER_VALUE, param)); } else { throw new XDSMetaDataException(INVALID_ASSOCIATION_TYPE); } diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/query/ChoiceValidation.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/query/ChoiceValidation.java index 8b0aa1158d..b122606462 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/query/ChoiceValidation.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/query/ChoiceValidation.java @@ -19,6 +19,7 @@ import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLAdhocQueryRequest; import org.openehealth.ipf.commons.ihe.xds.core.responses.ErrorCode; import org.openehealth.ipf.commons.ihe.xds.core.responses.Severity; +import org.openehealth.ipf.commons.ihe.xds.core.stub.ebrs30.query.AdhocQueryRequest; import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryParameter; import org.openehealth.ipf.commons.ihe.xds.core.validate.XDSMetaDataException; @@ -53,7 +54,7 @@ public ChoiceValidation(boolean optional, QueryParameter... params) { } @Override - public void validate(EbXMLAdhocQueryRequest request) throws XDSMetaDataException { + public void validate(EbXMLAdhocQueryRequest request) throws XDSMetaDataException { var paramSlotNames = Arrays.stream(params) .map(QueryParameter::getSlotName) .collect(Collectors.toList()); diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/query/CodeValidation.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/query/CodeValidation.java index 626d70bbcd..a4f3b20aeb 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/query/CodeValidation.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/query/CodeValidation.java @@ -17,6 +17,7 @@ import static java.util.Objects.requireNonNull; import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLAdhocQueryRequest; +import org.openehealth.ipf.commons.ihe.xds.core.stub.ebrs30.query.AdhocQueryRequest; import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryParameter; import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query.QuerySlotHelper; import static org.openehealth.ipf.commons.ihe.xds.core.validate.ValidationMessage.*; @@ -58,23 +59,23 @@ public CodeValidation(QueryParameter param) { } @Override - public void validate(EbXMLAdhocQueryRequest request) throws XDSMetaDataException { + public void validate(EbXMLAdhocQueryRequest request) throws XDSMetaDataException { var slotValues = request.getSlotValues(param.getSlotName()); - for (var slotValue : slotValues) { + slotValues.forEach(slotValue -> { metaDataAssert(slotValue != null, MISSING_REQUIRED_QUERY_PARAMETER, param); metaDataAssert(PATTERN.matcher(slotValue).matches(), PARAMETER_VALUE_NOT_STRING_LIST, param); - } + }); var slots = new QuerySlotHelper(request); var codes = slots.toCodeList(param); if (codes != null) { - for (var code : codes) { + codes.forEach(code -> { metaDataAssert(code != null, INVALID_QUERY_PARAMETER_VALUE, param); metaDataAssert(code.getCode() != null, INVALID_QUERY_PARAMETER_VALUE, param); metaDataAssert(code.getSchemeName() != null, INVALID_QUERY_PARAMETER_VALUE, param); - } + }); } else { metaDataAssert(optional, MISSING_REQUIRED_QUERY_PARAMETER, param); } diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/query/DocumentEntryTypeValidation.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/query/DocumentEntryTypeValidation.java index 2af5d6998c..27461fa315 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/query/DocumentEntryTypeValidation.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/query/DocumentEntryTypeValidation.java @@ -16,6 +16,7 @@ package org.openehealth.ipf.commons.ihe.xds.core.validate.query; import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLAdhocQueryRequest; +import org.openehealth.ipf.commons.ihe.xds.core.stub.ebrs30.query.AdhocQueryRequest; import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryParameter; import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query.QuerySlotHelper; import org.openehealth.ipf.commons.ihe.xds.core.validate.XDSMetaDataException; @@ -32,7 +33,7 @@ public class DocumentEntryTypeValidation implements QueryParameterValidation { private final QueryParameter param = QueryParameter.DOC_ENTRY_TYPE; @Override - public void validate(EbXMLAdhocQueryRequest request) throws XDSMetaDataException { + public void validate(EbXMLAdhocQueryRequest request) throws XDSMetaDataException { var slotValues = request.getSlotValues(param.getSlotName()); for (var slotValue : slotValues) { metaDataAssert(slotValue != null, MISSING_REQUIRED_QUERY_PARAMETER, param); @@ -42,9 +43,7 @@ public void validate(EbXMLAdhocQueryRequest request) throws XDSMetaDataException var list = slots.toDocumentEntryType(param); if (list != null) { - for (var type : list) { - metaDataAssert(type != null, INVALID_QUERY_PARAMETER_VALUE, param); - } + list.forEach(type -> metaDataAssert(type != null, INVALID_QUERY_PARAMETER_VALUE, param)); } } } diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/query/HomeCommunityIdValidation.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/query/HomeCommunityIdValidation.java index 92c68f7d2a..4417038e98 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/query/HomeCommunityIdValidation.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/query/HomeCommunityIdValidation.java @@ -17,10 +17,13 @@ import org.openehealth.ipf.commons.ihe.xds.XdsIntegrationProfile; import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLAdhocQueryRequest; +import org.openehealth.ipf.commons.ihe.xds.core.stub.ebrs30.query.AdhocQueryRequest; import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryParameter; import org.openehealth.ipf.commons.ihe.xds.core.validate.HomeCommunityIdValidator; import org.openehealth.ipf.commons.ihe.xds.core.validate.XDSMetaDataException; +import java.util.Arrays; + /** * Validator for home community ID attribute in stored queries. *

@@ -42,7 +45,7 @@ public HomeCommunityIdValidation(XdsIntegrationProfile.HomeCommunityIdOptionalit } @Override - public void validate(EbXMLAdhocQueryRequest request) throws XDSMetaDataException { + public void validate(EbXMLAdhocQueryRequest request) throws XDSMetaDataException { final boolean homeCommunityRequired; switch (optionality) { case NEVER: @@ -62,13 +65,9 @@ public void validate(EbXMLAdhocQueryRequest request) throws XDSMetaDataException validator.validate(request.getHome()); } - private static boolean patientIdMissing(EbXMLAdhocQueryRequest request) { - for (var parameter : PATIENT_ID_PARAMETERS) { - if (!request.getSlotValues(parameter.getSlotName()).isEmpty()) { - return false; - } - } - return true; + private static boolean patientIdMissing(EbXMLAdhocQueryRequest request) { + return Arrays.stream(PATIENT_ID_PARAMETERS).allMatch(parameter -> + request.getSlotValues(parameter.getSlotName()).isEmpty()); } } diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/query/NumberValidation.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/query/NumberValidation.java index e875523ffb..e69de29bb2 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/query/NumberValidation.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/query/NumberValidation.java @@ -1,59 +0,0 @@ -/* - * Copyright 2009 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.openehealth.ipf.commons.ihe.xds.core.validate.query; - -import static java.util.Objects.requireNonNull; - -import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLAdhocQueryRequest; -import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryParameter; -import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query.QuerySlotHelper; -import org.openehealth.ipf.commons.ihe.xds.core.validate.ValueValidator; -import org.openehealth.ipf.commons.ihe.xds.core.validate.XDSMetaDataException; - -/** - * Query parameter validation for parameters that are Number-based. - * @author Jens Riemschneider - * @deprecated not used - */ -@Deprecated -public class NumberValidation implements QueryParameterValidation { - private final QueryParameter param; - private final ValueValidator validator; - - /** - * Constructs a validation object. - * @param param - * parameter to validate. - * @param validator - * validator to use on the parameter value. - */ - public NumberValidation(QueryParameter param, ValueValidator validator) { - requireNonNull(param, "param cannot be null"); - requireNonNull(validator, "validator cannot be null"); - - this.param = param; - this.validator = validator; - } - - @Override - public void validate(EbXMLAdhocQueryRequest request) throws XDSMetaDataException { - var slots = new QuerySlotHelper(request); - var value = slots.toNumber(param); - if (value != null) { - validator.validate(value); - } - } -} diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/query/QueryListCodeValidation.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/query/QueryListCodeValidation.java index fe7199b895..2787a15935 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/query/QueryListCodeValidation.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/query/QueryListCodeValidation.java @@ -1,12 +1,12 @@ /* * Copyright 2009 the original author or authors. - * + * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -17,16 +17,21 @@ import static java.util.Objects.requireNonNull; import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLAdhocQueryRequest; +import org.openehealth.ipf.commons.ihe.xds.core.stub.ebrs30.query.AdhocQueryRequest; import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryParameter; import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query.QuerySlotHelper; + import static org.openehealth.ipf.commons.ihe.xds.core.validate.ValidationMessage.*; import static org.openehealth.ipf.commons.ihe.xds.core.validate.ValidatorAssertions.metaDataAssert; + import org.openehealth.ipf.commons.ihe.xds.core.validate.XDSMetaDataException; +import java.util.Collection; import java.util.regex.Pattern; /** - * Query parameter validation for parameters that are QueryList-based. + * Query parameter validation for parameters that are QueryList-based. + * * @author Jens Riemschneider */ public class QueryListCodeValidation implements QueryParameterValidation { @@ -38,10 +43,9 @@ public class QueryListCodeValidation implements QueryParameterValidation { /** * Constructs a validation object. - * @param param - * parameter of the code to validate. - * @param schemeParam - * parameter of the scheme to validate. + * + * @param param parameter of the code to validate. + * @param schemeParam parameter of the scheme to validate. */ public QueryListCodeValidation(QueryParameter param, QueryParameter schemeParam) { requireNonNull(param, "param cannot be null"); @@ -52,17 +56,17 @@ public QueryListCodeValidation(QueryParameter param, QueryParameter schemeParam) } @Override - public void validate(EbXMLAdhocQueryRequest request) throws XDSMetaDataException { + public void validate(EbXMLAdhocQueryRequest request) throws XDSMetaDataException { var slotValues = request.getSlotValues(param.getSlotName()); - for (var slotValue : slotValues) { + slotValues.forEach(slotValue -> { metaDataAssert(slotValue != null, MISSING_REQUIRED_QUERY_PARAMETER, param); metaDataAssert(PATTERN.matcher(slotValue).matches(), PARAMETER_VALUE_NOT_STRING_LIST, param); - } + }); var slots = new QuerySlotHelper(request); var codes = slots.toCodeQueryList(param, schemeParam); - + if (codes != null) { var schemes = slots.toStringQueryList(schemeParam); if (schemes != null) { @@ -72,14 +76,13 @@ public void validate(EbXMLAdhocQueryRequest request) throws XDSMetaDataException } } - for (var innerList : codes.getOuterList()) { - for (var code : innerList) { - metaDataAssert(code != null, INVALID_QUERY_PARAMETER_VALUE, param); - metaDataAssert(code.getCode() != null, INVALID_QUERY_PARAMETER_VALUE, param); - } - } - } - else { + codes.getOuterList().stream() + .flatMap(Collection::stream) + .forEach(code -> { + metaDataAssert(code != null, INVALID_QUERY_PARAMETER_VALUE, param); + metaDataAssert(code.getCode() != null, INVALID_QUERY_PARAMETER_VALUE, param); + }); + } else { var schemes = slots.toStringQueryList(schemeParam); metaDataAssert(schemes == null, INVALID_QUERY_PARAMETER_VALUE, schemeParam); } diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/query/QueryParameterValidation.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/query/QueryParameterValidation.java index ed76d3a79c..74b65ceb56 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/query/QueryParameterValidation.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/query/QueryParameterValidation.java @@ -16,6 +16,7 @@ package org.openehealth.ipf.commons.ihe.xds.core.validate.query; import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLAdhocQueryRequest; +import org.openehealth.ipf.commons.ihe.xds.core.stub.ebrs30.query.AdhocQueryRequest; import org.openehealth.ipf.commons.ihe.xds.core.validate.XDSMetaDataException; /** @@ -30,5 +31,5 @@ public interface QueryParameterValidation { * @throws XDSMetaDataException * if the validation failed. */ - void validate(EbXMLAdhocQueryRequest request) throws XDSMetaDataException; + void validate(EbXMLAdhocQueryRequest request) throws XDSMetaDataException; } diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/query/StatusValidation.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/query/StatusValidation.java index 141f698d2a..4074cbb2d5 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/query/StatusValidation.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/query/StatusValidation.java @@ -25,12 +25,14 @@ import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLAdhocQueryRequest; import org.openehealth.ipf.commons.ihe.xds.core.metadata.AvailabilityStatus; +import org.openehealth.ipf.commons.ihe.xds.core.stub.ebrs30.query.AdhocQueryRequest; import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryParameter; import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query.QuerySlotHelper; import org.openehealth.ipf.commons.ihe.xds.core.validate.XDSMetaDataException; /** * Query parameter validation for parameters that are AvailabilityStatus-based. + * * @author Jens Riemschneider */ public class StatusValidation implements QueryParameterValidation { @@ -41,31 +43,31 @@ public class StatusValidation implements QueryParameterValidation { /** * Constructs a validation object. - * @param param - * parameter to validate. + * + * @param param parameter to validate. */ public StatusValidation(QueryParameter param) { this.param = requireNonNull(param, "param cannot be null"); } @Override - public void validate(EbXMLAdhocQueryRequest request) throws XDSMetaDataException { + public void validate(EbXMLAdhocQueryRequest request) throws XDSMetaDataException { var slotValues = request.getSlotValues(param.getSlotName()); metaDataAssert(!slotValues.isEmpty(), MISSING_REQUIRED_QUERY_PARAMETER, param); - for (var slotValue : slotValues) { + slotValues.forEach(slotValue -> { metaDataAssert(slotValue != null, MISSING_REQUIRED_QUERY_PARAMETER, param); metaDataAssert(PATTERN.matcher(slotValue).matches(), PARAMETER_VALUE_NOT_STRING_LIST, param); - } + }); var slots = new QuerySlotHelper(request); var list = slots.toStatus(param); if (list.isEmpty()) { - for (var value : slots.toStringList(param)) { - metaDataAssert(AvailabilityStatus.valueOfOpcode(value) != null, INVALID_QUERY_PARAMETER_VALUE, value); - } + slots.toStringList(param) + .forEach(value -> + metaDataAssert(AvailabilityStatus.valueOfOpcode(value) != null, INVALID_QUERY_PARAMETER_VALUE, value)); } metaDataAssert(!list.isEmpty(), MISSING_REQUIRED_QUERY_PARAMETER, slotValues); diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/query/StringListValidation.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/query/StringListValidation.java index 2ee6228bc8..3977d1e311 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/query/StringListValidation.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/query/StringListValidation.java @@ -17,6 +17,7 @@ import static java.util.Objects.requireNonNull; import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLAdhocQueryRequest; +import org.openehealth.ipf.commons.ihe.xds.core.stub.ebrs30.query.AdhocQueryRequest; import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryParameter; import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query.QuerySlotHelper; import static org.openehealth.ipf.commons.ihe.xds.core.validate.ValidationMessage.*; @@ -50,22 +51,22 @@ public StringListValidation(QueryParameter param, ValueValidator validator) { } @Override - public void validate(EbXMLAdhocQueryRequest request) throws XDSMetaDataException { + public void validate(EbXMLAdhocQueryRequest request) throws XDSMetaDataException { var slotValues = request.getSlotValues(param.getSlotName()); - for (var slotValue : slotValues) { + slotValues.forEach(slotValue -> { metaDataAssert(slotValue != null, MISSING_REQUIRED_QUERY_PARAMETER, param); metaDataAssert(PATTERN.matcher(slotValue).matches(), PARAMETER_VALUE_NOT_STRING_LIST, param); - } + }); var slots = new QuerySlotHelper(request); var list = slots.toStringList(param); if (list != null) { - for (var value : list) { + list.forEach(value -> { metaDataAssert(value != null, INVALID_QUERY_PARAMETER_VALUE, param); validator.validate(value); - } + }); } } } diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/query/StringValidation.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/query/StringValidation.java index b8d8a7dc7b..7babc351c4 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/query/StringValidation.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/query/StringValidation.java @@ -17,6 +17,7 @@ import static java.util.Objects.requireNonNull; import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLAdhocQueryRequest; +import org.openehealth.ipf.commons.ihe.xds.core.stub.ebrs30.query.AdhocQueryRequest; import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryParameter; import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query.QuerySlotHelper; import static org.openehealth.ipf.commons.ihe.xds.core.validate.ValidationMessage.*; @@ -54,12 +55,12 @@ public StringValidation(QueryParameter param, ValueValidator validator, boolean } @Override - public void validate(EbXMLAdhocQueryRequest request) throws XDSMetaDataException { + public void validate(EbXMLAdhocQueryRequest request) throws XDSMetaDataException { var slotValues = request.getSlotValues(param.getSlotName()); - metaDataAssert(optional || slotValues.size() >= 1, MISSING_REQUIRED_QUERY_PARAMETER, param); + metaDataAssert(optional || !slotValues.isEmpty(), MISSING_REQUIRED_QUERY_PARAMETER, param); metaDataAssert(optional || slotValues.size() == 1, TOO_MANY_VALUES_FOR_QUERY_PARAMETER, param); - - if (slotValues.size() > 0) { + + if (!slotValues.isEmpty()) { var slotValue = slotValues.get(0); metaDataAssert(slotValue != null || optional, MISSING_REQUIRED_QUERY_PARAMETER, param); metaDataAssert(PATTERN.matcher(slotValue).matches(), PARAMETER_VALUE_NOT_STRING, param); diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/query/TimestampValidation.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/query/TimestampValidation.java index 0e3ab32445..25f7e213d3 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/query/TimestampValidation.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/query/TimestampValidation.java @@ -16,6 +16,7 @@ package org.openehealth.ipf.commons.ihe.xds.core.validate.query; import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLAdhocQueryRequest; +import org.openehealth.ipf.commons.ihe.xds.core.stub.ebrs30.query.AdhocQueryRequest; import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryParameter; import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query.QuerySlotHelper; import org.openehealth.ipf.commons.ihe.xds.core.validate.TimeValidator; @@ -43,7 +44,7 @@ public TimestampValidation(QueryParameter param) { } @Override - public void validate(EbXMLAdhocQueryRequest request) throws XDSMetaDataException { + public void validate(EbXMLAdhocQueryRequest request) throws XDSMetaDataException { var slots = new QuerySlotHelper(request); var value = slots.toTimestamp(param); if (value != null) { diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/requests/AdhocQueryRequestValidator.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/requests/AdhocQueryRequestValidator.java index cc56aff490..b8afd29bbb 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/requests/AdhocQueryRequestValidator.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/requests/AdhocQueryRequestValidator.java @@ -15,17 +15,21 @@ */ package org.openehealth.ipf.commons.ihe.xds.core.validate.requests; +import lombok.Getter; import org.apache.commons.lang3.StringUtils; import org.openehealth.ipf.commons.core.modules.api.Validator; import org.openehealth.ipf.commons.ihe.core.InteractionId; +import org.openehealth.ipf.commons.ihe.xds.XdsIntegrationProfile; import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLAdhocQueryRequest; import org.openehealth.ipf.commons.ihe.xds.core.requests.query.QueryReturnType; import org.openehealth.ipf.commons.ihe.xds.core.requests.query.QueryType; +import org.openehealth.ipf.commons.ihe.xds.core.stub.ebrs30.query.AdhocQueryRequest; import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryParameter; import org.openehealth.ipf.commons.ihe.xds.core.validate.*; import org.openehealth.ipf.commons.ihe.xds.core.validate.query.*; import java.util.*; +import java.util.concurrent.ConcurrentHashMap; import java.util.stream.Collectors; import static java.util.Objects.requireNonNull; @@ -44,8 +48,13 @@ * * @author Jens Riemschneider */ -public class AdhocQueryRequestValidator implements Validator { +public class AdhocQueryRequestValidator implements Validator, ValidationProfile> { + + @Getter + private static final AdhocQueryRequestValidator instance = new AdhocQueryRequestValidator(); + private static final CXValidator cxValidator = new CXValidator(true); + private static final OIDValidator oidValidator = new OIDValidator(); private static final NopValidator nopValidator = new NopValidator(); @@ -156,10 +165,18 @@ private static void addAllowedMultipleSlots(QueryType queryType, QueryParameter. ALLOWED_QUERY_TYPES.put(PHARM_1, pharmStoredQueryTypes); } + private final Map validations = new ConcurrentHashMap<>(); + + private AdhocQueryRequestValidator() { + } private QueryParameterValidation[] getValidators(QueryType queryType, ValidationProfile profile) { var homeCommunityIdOptionality = profile.getInteractionProfile().getHomeCommunityIdOptionality(); + return validations.computeIfAbsent(queryType.name() + homeCommunityIdOptionality.name(), + s -> instantiateValidators(queryType, homeCommunityIdOptionality)); + } + private QueryParameterValidation[] instantiateValidators(QueryType queryType, XdsIntegrationProfile.HomeCommunityIdOptionality homeCommunityIdOptionality) { switch (queryType) { case FETCH: return new QueryParameterValidation[]{ @@ -394,13 +411,60 @@ private QueryParameterValidation[] getValidators(QueryType queryType, Validation new StatusValidation(DOC_ENTRY_STATUS), new DocumentEntryTypeValidation(), }; + + case SUBSCRIPTION_FOR_DOCUMENT_ENTRY: + return new QueryParameterValidation[]{ + new StringValidation(DOC_ENTRY_PATIENT_ID, cxValidator, false), + new CodeValidation(DOC_ENTRY_CLASS_CODE), + new CodeValidation(DOC_ENTRY_TYPE_CODE), + new StringListValidation(DOC_ENTRY_REFERENCE_IDS, nopValidator), + new CodeValidation(DOC_ENTRY_PRACTICE_SETTING_CODE), + new CodeValidation(DOC_ENTRY_HEALTHCARE_FACILITY_TYPE_CODE), + new CodeValidation(DOC_ENTRY_FORMAT_CODE), + new QueryListCodeValidation(DOC_ENTRY_EVENT_CODE, DOC_ENTRY_EVENT_CODE_SCHEME), + new QueryListCodeValidation(DOC_ENTRY_CONFIDENTIALITY_CODE, DOC_ENTRY_CONFIDENTIALITY_CODE_SCHEME), + new CodeValidation(DOC_ENTRY_FORMAT_CODE), + new StringListValidation(DOC_ENTRY_AUTHOR_PERSON, nopValidator) + }; + + case SUBSCRIPTION_FOR_FOLDER: + return new QueryParameterValidation[]{ + new StringValidation(FOLDER_PATIENT_ID, cxValidator, false), + new StringListValidation(FOLDER_UNIQUE_ID, nopValidator), + new QueryListCodeValidation(FOLDER_CODES, FOLDER_CODES_SCHEME) + }; + + case SUBSCRIPTION_FOR_SUBMISSION_SET: + return new QueryParameterValidation[]{ + new StringValidation(SUBMISSION_SET_PATIENT_ID, cxValidator, false), + new StringListValidation(SUBMISSION_SET_SOURCE_ID, oidValidator), + new StringValidation(SUBMISSION_SET_AUTHOR_PERSON, nopValidator, true), + new StringListValidation(SUBMISSION_SET_INTENDED_RECIPIENT, nopValidator) + }; + case SUBSCRIPTION_FOR_PATIENT_INDEPENDENT_DOCUMENT_ENTRY: + return new QueryParameterValidation[]{ + new CodeValidation(DOC_ENTRY_CLASS_CODE), + new CodeValidation(DOC_ENTRY_TYPE_CODE), + new CodeValidation(DOC_ENTRY_PRACTICE_SETTING_CODE), + new CodeValidation(DOC_ENTRY_HEALTHCARE_FACILITY_TYPE_CODE), + new QueryListCodeValidation(DOC_ENTRY_EVENT_CODE, DOC_ENTRY_EVENT_CODE_SCHEME), + new QueryListCodeValidation(DOC_ENTRY_CONFIDENTIALITY_CODE, DOC_ENTRY_CONFIDENTIALITY_CODE_SCHEME), + new CodeValidation(DOC_ENTRY_FORMAT_CODE), + new StringListValidation(DOC_ENTRY_AUTHOR_PERSON, nopValidator) + }; + case SUBSCRIPTION_FOR_PATIENT_INDEPENDENT_SUBMISSION_SET: + return new QueryParameterValidation[]{ + new StringListValidation(SUBMISSION_SET_SOURCE_ID, oidValidator), + new StringValidation(SUBMISSION_SET_AUTHOR_PERSON, nopValidator, true), + new StringListValidation(SUBMISSION_SET_INTENDED_RECIPIENT, nopValidator) + }; } return null; // should not occur } @Override - public void validate(EbXMLAdhocQueryRequest request, ValidationProfile profile) { + public void validate(EbXMLAdhocQueryRequest request, ValidationProfile profile) { requireNonNull(request, "request cannot be null"); if (profile == ITI_63) { @@ -418,14 +482,12 @@ public void validate(EbXMLAdhocQueryRequest request, ValidationProfile profile) var allowedQueryTypes = ALLOWED_QUERY_TYPES.getOrDefault(profile.getInteractionId(), Collections.emptySet()); metaDataAssert(allowedQueryTypes.contains(queryType), UNSUPPORTED_QUERY_TYPE, queryType); - new SlotLengthAndNameUniquenessValidator().validateQuerySlots( + SlotLengthAndNameUniquenessValidator.validateQuerySlots( request.getSlots(), ALLOWED_MULTIPLE_SLOTS.getOrDefault(queryType, Collections.emptySet())); var validations = getValidators(queryType, profile); if (validations != null) { - for (var validation : validations) { - validation.validate(request); - } + Arrays.stream(validations).forEach(validation -> validation.validate(request)); } switch (queryType) { @@ -435,13 +497,19 @@ public void validate(EbXMLAdhocQueryRequest request, ValidationProfile profile) case FIND_FOLDERS_MPQ: checkAtLeastOnePresent(request, FOLDER_PATIENT_ID, FOLDER_CODES); break; + case SUBSCRIPTION_FOR_PATIENT_INDEPENDENT_DOCUMENT_ENTRY: + checkAtLeastOnePresent(request, DOC_ENTRY_CLASS_CODE, DOC_ENTRY_TYPE_CODE, DOC_ENTRY_PRACTICE_SETTING_CODE, DOC_ENTRY_HEALTHCARE_FACILITY_TYPE_CODE); + break; + case SUBSCRIPTION_FOR_PATIENT_INDEPENDENT_SUBMISSION_SET: + checkAtLeastOnePresent(request, SUBMISSION_SET_SOURCE_ID, SUBMISSION_SET_AUTHOR_PERSON, SUBMISSION_SET_INTENDED_RECIPIENT); + break; } } /** * Checks that at least one of the given query parameters is provided in the message. */ - private void checkAtLeastOnePresent(EbXMLAdhocQueryRequest request, QueryParameter... params) { + private void checkAtLeastOnePresent(EbXMLAdhocQueryRequest request, QueryParameter... params) { var slotNames = Arrays.stream(params).map(QueryParameter::getSlotName).collect(Collectors.toList()); slotNames.stream() .map(request::getSlotValues) diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/requests/NonconstructiveDocumentSetRequestValidator.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/requests/NonconstructiveDocumentSetRequestValidator.java index 4037ece95b..226e7a8b8f 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/requests/NonconstructiveDocumentSetRequestValidator.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/requests/NonconstructiveDocumentSetRequestValidator.java @@ -15,6 +15,7 @@ */ package org.openehealth.ipf.commons.ihe.xds.core.validate.requests; +import lombok.Getter; import org.openehealth.ipf.commons.core.modules.api.Validator; import org.openehealth.ipf.commons.ihe.xds.XdsIntegrationProfile; import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLNonconstructiveDocumentSetRequest; @@ -30,23 +31,27 @@ * Validates a {@link EbXMLNonconstructiveDocumentSetRequest}. * @author Jens Riemschneider */ -public class NonconstructiveDocumentSetRequestValidator implements Validator { +public class NonconstructiveDocumentSetRequestValidator implements Validator, ValidationProfile> { private final HomeCommunityIdValidator hcValidator = new HomeCommunityIdValidator(true); + @Getter + private static final NonconstructiveDocumentSetRequestValidator instance = new NonconstructiveDocumentSetRequestValidator(); + + private NonconstructiveDocumentSetRequestValidator() { + } + @Override - public void validate(EbXMLNonconstructiveDocumentSetRequest request, ValidationProfile profile) { + public void validate(EbXMLNonconstructiveDocumentSetRequest request, ValidationProfile profile) { requireNonNull(request, "request cannot be null"); - - for (var document : request.getDocuments()) { + + request.getDocuments().forEach(document -> { var repoId = document.getRepositoryUniqueId(); metaDataAssert(repoId != null && !repoId.isEmpty(), REPO_ID_MUST_BE_SPECIFIED); - var docId = document.getDocumentUniqueId(); metaDataAssert(docId != null && !docId.isEmpty(), DOC_ID_MUST_BE_SPECIFIED); - if (profile.getInteractionProfile().getHomeCommunityIdOptionality() != XdsIntegrationProfile.HomeCommunityIdOptionality.NEVER) { hcValidator.validate(document.getHomeCommunityId()); } - } + }); } } diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/requests/ObjectContainerValidator.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/requests/ObjectContainerValidator.java index 3e15b875c6..c9ab5af1d3 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/requests/ObjectContainerValidator.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/requests/ObjectContainerValidator.java @@ -15,6 +15,7 @@ */ package org.openehealth.ipf.commons.ihe.xds.core.validate.requests; +import lombok.Getter; import org.apache.commons.lang3.StringUtils; import org.openehealth.ipf.commons.core.modules.api.Validator; import org.openehealth.ipf.commons.ihe.xds.*; @@ -41,8 +42,6 @@ */ public class ObjectContainerValidator implements Validator { - private final SlotLengthAndNameUniquenessValidator slotLengthAndNameUniquenessValidator = - new SlotLengthAndNameUniquenessValidator(); private final OIDValidator oidValidator = new OIDValidator(); private final TimeValidator timeValidator = new TimeValidator(); private final TimeValidator timeValidatorSec = new TimeValidator(14); @@ -73,6 +72,11 @@ public class ObjectContainerValidator implements Validator documentEntrySlotValidators(ValidationProfile profile, boolean onDemandProvided, boolean limitedMetadata) { var isContinuaHRN = (profile == CONTINUA_HRN.Interactions.ITI_41); @@ -177,7 +181,7 @@ public void validate(EbXMLObjectContainer container, ValidationProfile profile) requireNonNull(container, "container cannot be null"); requireNonNull(profile, "profile must be set"); - slotLengthAndNameUniquenessValidator.validateContainer(container); + SlotLengthAndNameUniquenessValidator.validateContainer(container); // Note: The order of these checks is important! validateSubmissionSet(container, profile); @@ -356,8 +360,8 @@ private void validatePatientIdsAreIdentical(EbXMLObjectContainer container) thro private void validateAssociations(EbXMLObjectContainer container, ValidationProfile profile) throws XDSMetaDataException { var logicalIds = new HashSet(); var docEntryIds = container.getExtrinsicObjects(DocumentEntryType.STABLE_OR_ON_DEMAND).stream() - .filter(docEntry -> docEntry.getId() != null) .map(EbXMLRegistryObject::getId) + .filter(Objects::nonNull) .collect(Collectors.toSet()); var submissionSetIds = container.getRegistryPackages(SUBMISSION_SET_CLASS_NODE).stream() .map(EbXMLRegistryObject::getId) diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/requests/ProvideAndRegisterDocumentSetRequestValidator.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/requests/ProvideAndRegisterDocumentSetRequestValidator.java index d7bee26aea..9c87ad4265 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/requests/ProvideAndRegisterDocumentSetRequestValidator.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/requests/ProvideAndRegisterDocumentSetRequestValidator.java @@ -1,12 +1,12 @@ /* * Copyright 2009 the original author or authors. - * + * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -16,49 +16,61 @@ package org.openehealth.ipf.commons.ihe.xds.core.validate.requests; import static java.util.Objects.requireNonNull; + +import lombok.Getter; import org.openehealth.ipf.commons.core.modules.api.Validator; import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLProvideAndRegisterDocumentSetRequest; +import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLRegistryObject; import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLSubmitObjectsRequest; + import static org.openehealth.ipf.commons.ihe.xds.core.validate.ValidationMessage.MISSING_DOCUMENT_FOR_DOC_ENTRY; import static org.openehealth.ipf.commons.ihe.xds.core.validate.ValidationMessage.MISSING_DOC_ENTRY_FOR_DOCUMENT; +import org.openehealth.ipf.commons.ihe.xds.core.ebxml.ebxml30.ProvideAndRegisterDocumentSetRequestType; import org.openehealth.ipf.commons.ihe.xds.core.metadata.DocumentEntryType; import org.openehealth.ipf.commons.ihe.xds.core.validate.ValidationProfile; + import static org.openehealth.ipf.commons.ihe.xds.core.validate.ValidatorAssertions.metaDataAssert; import java.util.HashSet; +import java.util.Objects; /** * Validates a {@link EbXMLSubmitObjectsRequest} request. + * * @author Jens Riemschneider */ -public class ProvideAndRegisterDocumentSetRequestValidator implements Validator{ - private final SubmitObjectsRequestValidator submitObjectsRequestValidator = - new SubmitObjectsRequestValidator(); - +public class ProvideAndRegisterDocumentSetRequestValidator implements Validator, ValidationProfile> { + private final SubmitObjectsRequestValidator submitObjectsRequestValidator = SubmitObjectsRequestValidator.getInstance(); + + @Getter + private static final ProvideAndRegisterDocumentSetRequestValidator instance = new ProvideAndRegisterDocumentSetRequestValidator(); + + private ProvideAndRegisterDocumentSetRequestValidator() { + } + @Override - public void validate(EbXMLProvideAndRegisterDocumentSetRequest request, ValidationProfile profile) { + public void validate(EbXMLProvideAndRegisterDocumentSetRequest request, ValidationProfile profile) { requireNonNull(request, "request cannot be null"); submitObjectsRequestValidator.validate(request, profile); - + validateDocuments(request); } - private void validateDocuments(EbXMLProvideAndRegisterDocumentSetRequest request) { + private void validateDocuments(EbXMLProvideAndRegisterDocumentSetRequest request) { var documents = request.getDocuments(); var docEntryIds = new HashSet(); - for (var docEntry : request.getExtrinsicObjects(DocumentEntryType.STABLE.getUuid())) { - var docId = docEntry.getId(); - if (docId != null) { - docEntryIds.add(docId); - metaDataAssert(documents.get(docId) != null, MISSING_DOCUMENT_FOR_DOC_ENTRY, docId); - } - } - - for (var docId : documents.keySet()) { - metaDataAssert(docEntryIds.contains(docId), MISSING_DOC_ENTRY_FOR_DOCUMENT, docId); - } + request.getExtrinsicObjects(DocumentEntryType.STABLE.getUuid()).stream() + .map(EbXMLRegistryObject::getId) + .filter(Objects::nonNull) + .forEach(docId -> { + docEntryIds.add(docId); + metaDataAssert(documents.get(docId) != null, MISSING_DOCUMENT_FOR_DOC_ENTRY, docId); + }); + + documents.keySet().forEach(docId -> + metaDataAssert(docEntryIds.contains(docId), MISSING_DOC_ENTRY_FOR_DOCUMENT, docId)); } } diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/requests/RemoveMetadataRequestValidator.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/requests/RemoveMetadataRequestValidator.java index be68350d33..b1f56b8d38 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/requests/RemoveMetadataRequestValidator.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/requests/RemoveMetadataRequestValidator.java @@ -15,8 +15,10 @@ */ package org.openehealth.ipf.commons.ihe.xds.core.validate.requests; +import lombok.Getter; import org.openehealth.ipf.commons.core.modules.api.Validator; import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLRemoveMetadataRequest; +import org.openehealth.ipf.commons.ihe.xds.core.stub.ebrs30.lcm.RemoveObjectsRequest; import org.openehealth.ipf.commons.ihe.xds.core.validate.ValidationProfile; import static org.openehealth.ipf.commons.ihe.xds.XDS.Interactions.ITI_62; @@ -28,7 +30,13 @@ * Validates a {@link EbXMLRemoveMetadataRequest} request. * @author Boris Stanojevic */ -public class RemoveMetadataRequestValidator implements Validator { +public class RemoveMetadataRequestValidator implements Validator, ValidationProfile> { + + @Getter + private static final RemoveMetadataRequestValidator instance = new RemoveMetadataRequestValidator(); + + private RemoveMetadataRequestValidator() { + } /** * Validates the request. @@ -38,9 +46,9 @@ public class RemoveMetadataRequestValidator implements Validator request, ValidationProfile profile) { if (profile == ITI_62) { - metaDataAssert(request.getReferences().size() > 0, EMPTY_REFERENCE_LIST, "RemoveObjectsRequest"); + metaDataAssert(!request.getReferences().isEmpty(), EMPTY_REFERENCE_LIST, "RemoveObjectsRequest"); metaDataAssert(request.getId() == null && request.getHome() == null && request.getSlots().isEmpty(), OBJECT_SHALL_NOT_BE_SPECIFIED, "AdhocQuery"); diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/requests/RetrieveImagingDocumentSetRequestValidator.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/requests/RetrieveImagingDocumentSetRequestValidator.java index 458b24e461..93b53c375b 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/requests/RetrieveImagingDocumentSetRequestValidator.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/requests/RetrieveImagingDocumentSetRequestValidator.java @@ -15,9 +15,11 @@ */ package org.openehealth.ipf.commons.ihe.xds.core.validate.requests; +import lombok.Getter; import org.openehealth.ipf.commons.core.modules.api.Validator; import org.openehealth.ipf.commons.ihe.xds.XdsIntegrationProfile; import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLRetrieveImagingDocumentSetRequest; +import org.openehealth.ipf.commons.ihe.xds.core.stub.xdsi.RetrieveImagingDocumentSetRequestType; import org.openehealth.ipf.commons.ihe.xds.core.validate.HomeCommunityIdValidator; import org.openehealth.ipf.commons.ihe.xds.core.validate.ValidationProfile; @@ -35,37 +37,38 @@ * * @author Clay Sebourn */ -public class RetrieveImagingDocumentSetRequestValidator implements Validator { +public class RetrieveImagingDocumentSetRequestValidator implements Validator, ValidationProfile> { private final HomeCommunityIdValidator hcValidator = new HomeCommunityIdValidator(true); + @Getter + private static final RetrieveImagingDocumentSetRequestValidator instance = new RetrieveImagingDocumentSetRequestValidator(); + + private RetrieveImagingDocumentSetRequestValidator() { + } + @Override - public void validate(EbXMLRetrieveImagingDocumentSetRequest request, ValidationProfile profile) { + public void validate(EbXMLRetrieveImagingDocumentSetRequest request, ValidationProfile profile) { requireNonNull(request, "request cannot be null"); - for (var retrieveStudy : request.getRetrieveStudies()) { + request.getRetrieveStudies().forEach(retrieveStudy -> { var studyInstanceUID = retrieveStudy.getStudyInstanceUID(); metaDataAssert(isNotEmpty(studyInstanceUID), STUDY_INSTANCE_UID_MUST_BE_SPECIFIED); - var transferSyntaxUIDList = request.getTransferSyntaxUIDList(); metaDataAssert(transferSyntaxUIDList != null && !transferSyntaxUIDList.isEmpty(), TRANSFER_SYNTAX_UID_LIST_MUST_BE_SPECIFIED); - - for (var retrieveSeries : retrieveStudy.getRetrieveSerieses()) { + retrieveStudy.getRetrieveSerieses().forEach(retrieveSeries -> { var seriesInstanceUID = retrieveSeries.getSeriesInstanceUID(); metaDataAssert(isNotEmpty(seriesInstanceUID), SERIES_INSTANCE_UID_MUST_BE_SPECIFIED); - - for (var document : retrieveSeries.getDocuments()) { - //todo: Eliminate this duplicate code from DocumentRequest? + //todo: Eliminate this duplicate code from DocumentRequest? + retrieveSeries.getDocuments().forEach(document -> { var repoId = document.getRepositoryUniqueId(); metaDataAssert(isNotEmpty(repoId), REPO_ID_MUST_BE_SPECIFIED); - var docId = document.getDocumentUniqueId(); metaDataAssert(isNotEmpty(docId), DOC_ID_MUST_BE_SPECIFIED); - if (profile.getInteractionProfile().getHomeCommunityIdOptionality() != XdsIntegrationProfile.HomeCommunityIdOptionality.NEVER) { hcValidator.validate(document.getHomeCommunityId()); } - } - } - } + }); + }); + }); } } \ No newline at end of file diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/requests/SubmitObjectsRequestValidator.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/requests/SubmitObjectsRequestValidator.java index 01e4f57443..287573c41f 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/requests/SubmitObjectsRequestValidator.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/requests/SubmitObjectsRequestValidator.java @@ -15,6 +15,7 @@ */ package org.openehealth.ipf.commons.ihe.xds.core.validate.requests; +import lombok.Getter; import org.openehealth.ipf.commons.core.modules.api.Validator; import org.openehealth.ipf.commons.ihe.xds.XCDR; import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLSubmitObjectsRequest; @@ -27,10 +28,16 @@ * Validates a {@link EbXMLSubmitObjectsRequest} request. * @author Jens Riemschneider */ -public class SubmitObjectsRequestValidator implements Validator { - private static final ObjectContainerValidator OBJECT_CONTAINER_VALIDATOR = new ObjectContainerValidator(); +public class SubmitObjectsRequestValidator implements Validator, ValidationProfile> { + private static final ObjectContainerValidator OBJECT_CONTAINER_VALIDATOR = ObjectContainerValidator.getInstance(); private static final HomeCommunityIdValidator HOME_COMMUNITY_ID_VALIDATOR = new HomeCommunityIdValidator(false); + @Getter + private static final SubmitObjectsRequestValidator instance = new SubmitObjectsRequestValidator(); + + private SubmitObjectsRequestValidator() { + } + /** * Validates the request. * @param request @@ -39,7 +46,7 @@ public class SubmitObjectsRequestValidator implements Validator request, ValidationProfile profile) { OBJECT_CONTAINER_VALIDATOR.validate(request, profile); HOME_COMMUNITY_ID_VALIDATOR.validate(request.getRegistryPackages().get(0).getHome()); new HomeCommunityIdValidator(profile.getInteractionId() == XCDR.Interactions.ITI_80).validate(request.getSingleSlotValue(Vocabulary.SLOT_NAME_HOME_COMMUNITY_ID)); diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/responses/QueryResponseValidator.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/responses/QueryResponseValidator.java index 9daa1a926d..8060341224 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/responses/QueryResponseValidator.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/responses/QueryResponseValidator.java @@ -15,6 +15,7 @@ */ package org.openehealth.ipf.commons.ihe.xds.core.validate.responses; +import lombok.Getter; import org.openehealth.ipf.commons.core.modules.api.Validator; import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLObjectContainer; import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLQueryResponse; @@ -41,21 +42,25 @@ * Validate a {@link EbXMLQueryResponse}. * @author Jens Riemschneider */ -public class QueryResponseValidator implements Validator { - private final RegistryResponseValidator regResponseValidator = new RegistryResponseValidator(); - private final ObjectContainerValidator objectContainerValidator = new ObjectContainerValidator(); +public class QueryResponseValidator implements Validator, ValidationProfile> { + private final RegistryResponseValidator regResponseValidator = RegistryResponseValidator.getInstance(); + private final ObjectContainerValidator objectContainerValidator = ObjectContainerValidator.getInstance(); + + @Getter + private static final QueryResponseValidator instance = new QueryResponseValidator(); + + private QueryResponseValidator() { + } @Override - public void validate(EbXMLQueryResponse response, ValidationProfile profile) { + public void validate(EbXMLQueryResponse response, ValidationProfile profile) { requireNonNull(response, "response cannot be null"); regResponseValidator.validate(response, profile); objectContainerValidator.validate(response, profile); var references = response.getReferences(); - for (var objRef : references) { - metaDataAssert(objRef.getId() != null, MISSING_OBJ_REF); - } + references.forEach(objRef -> metaDataAssert(objRef.getId() != null, MISSING_OBJ_REF)); if (profile != ITI_51) { validatePatientIdsAreIdentical(response); diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/responses/RegistryResponseValidator.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/responses/RegistryResponseValidator.java index f2c4088292..b1390d2514 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/responses/RegistryResponseValidator.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/responses/RegistryResponseValidator.java @@ -15,6 +15,7 @@ */ package org.openehealth.ipf.commons.ihe.xds.core.validate.responses; +import lombok.Getter; import org.openehealth.ipf.commons.core.modules.api.Validator; import org.openehealth.ipf.commons.ihe.xds.XCA; import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLRegistryResponse; @@ -33,15 +34,21 @@ * * @author Jens Riemschneider */ -public class RegistryResponseValidator implements Validator { +public class RegistryResponseValidator implements Validator, ValidationProfile> { private final HomeCommunityIdValidator hcValidator = new HomeCommunityIdValidator(true); + @Getter + private static final RegistryResponseValidator instance = new RegistryResponseValidator(); + + private RegistryResponseValidator() { + } + @Override - public void validate(EbXMLRegistryResponse response, ValidationProfile profile) { + public void validate(EbXMLRegistryResponse response, ValidationProfile profile) { requireNonNull(response, "response cannot be null"); metaDataAssert(response.getStatus() != null, INVALID_STATUS_IN_RESPONSE); - for (var registryError : response.getErrors()) { + response.getErrors().forEach(registryError -> { metaDataAssert(registryError != null, INVALID_ERROR_INFO_IN_RESPONSE); metaDataAssert(registryError.getErrorCode() != null, INVALID_ERROR_CODE_IN_RESPONSE); metaDataAssert(registryError.getSeverity() != null, INVALID_SEVERITY_IN_RESPONSE); @@ -49,6 +56,6 @@ public void validate(EbXMLRegistryResponse response, ValidationProfile profile) if ((profile.getInteractionId() == XCA.Interactions.ITI_38) || (profile.getInteractionId() == XCA.Interactions.ITI_39)) { hcValidator.validate(registryError.getLocation()); } - } + }); } } diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/responses/RetrieveDocumentSetResponseValidator.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/responses/RetrieveDocumentSetResponseValidator.java index 9b9d33352d..c33c8ccf53 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/responses/RetrieveDocumentSetResponseValidator.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/core/validate/responses/RetrieveDocumentSetResponseValidator.java @@ -15,9 +15,11 @@ */ package org.openehealth.ipf.commons.ihe.xds.core.validate.responses; +import lombok.Getter; import org.openehealth.ipf.commons.core.modules.api.Validator; import org.openehealth.ipf.commons.ihe.xds.XdsIntegrationProfile; import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLRetrieveDocumentSetResponse; +import org.openehealth.ipf.commons.ihe.xds.core.ebxml.ebxml30.RetrieveDocumentSetResponseType; import org.openehealth.ipf.commons.ihe.xds.core.validate.HomeCommunityIdValidator; import org.openehealth.ipf.commons.ihe.xds.core.validate.ValidationProfile; @@ -34,36 +36,36 @@ * * @author Jens Riemschneider */ -public class RetrieveDocumentSetResponseValidator implements Validator { - private final RegistryResponseValidator regResponseValidator = new RegistryResponseValidator(); +public class RetrieveDocumentSetResponseValidator implements Validator, ValidationProfile> { + private final RegistryResponseValidator regResponseValidator = RegistryResponseValidator.getInstance(); private final HomeCommunityIdValidator hcValidator = new HomeCommunityIdValidator(true); + @Getter + private static final RetrieveDocumentSetResponseValidator instance = new RetrieveDocumentSetResponseValidator(); + + private RetrieveDocumentSetResponseValidator() { + } + @Override - public void validate(EbXMLRetrieveDocumentSetResponse response, ValidationProfile profile) { + public void validate(EbXMLRetrieveDocumentSetResponse response, ValidationProfile profile) { requireNonNull(response, "response cannot be null"); regResponseValidator.validate(response, profile); - for (var doc : response.getDocuments()) { + response.getDocuments().forEach(doc -> { var requestData = doc.getRequestData(); - var repoId = requestData.getRepositoryUniqueId(); metaDataAssert(repoId != null && !repoId.isEmpty(), REPO_ID_MUST_BE_SPECIFIED); - var docId = requestData.getDocumentUniqueId(); metaDataAssert(docId != null && !docId.isEmpty(), DOC_ID_MUST_BE_SPECIFIED); - var newDocId = doc.getNewDocumentUniqueId(); metaDataAssert(!docId.equals(newDocId), ON_DEMAND_DOC_ID_MUST_DIFFER); - var mimeType = doc.getMimeType(); metaDataAssert(mimeType != null && !mimeType.isEmpty(), MIME_TYPE_MUST_BE_SPECIFIED); - if (profile.getInteractionProfile().getHomeCommunityIdOptionality() != XdsIntegrationProfile.HomeCommunityIdOptionality.NEVER) { hcValidator.validate(requestData.getHomeCommunityId()); } - metaDataAssert(doc.getDataHandler() != null, MISSING_DOCUMENT_FOR_DOC_ENTRY, docId); - } + }); } } diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/iti41/Iti41AuditStrategy.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/iti41/Iti41AuditStrategy.java index 6e28e2d6eb..1932b6585e 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/iti41/Iti41AuditStrategy.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/iti41/Iti41AuditStrategy.java @@ -20,6 +20,7 @@ import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLSubmitObjectsRequest; import org.openehealth.ipf.commons.ihe.xds.core.ebxml.ebxml30.EbXMLSubmitObjectsRequest30; import org.openehealth.ipf.commons.ihe.xds.core.ebxml.ebxml30.ProvideAndRegisterDocumentSetRequestType; +import org.openehealth.ipf.commons.ihe.xds.core.stub.ebrs30.lcm.SubmitObjectsRequest; import java.util.Map; @@ -45,7 +46,7 @@ public XdsSubmitAuditDataset enrichAuditDatasetFromRequest(XdsSubmitAuditDataset var request = (ProvideAndRegisterDocumentSetRequestType) pojo; var submitObjectsRequest = request.getSubmitObjectsRequest(); if (submitObjectsRequest != null) { - EbXMLSubmitObjectsRequest ebXML = new EbXMLSubmitObjectsRequest30(submitObjectsRequest); + EbXMLSubmitObjectsRequest ebXML = new EbXMLSubmitObjectsRequest30(submitObjectsRequest); enrichDatasetFromSubmitObjectsRequest(auditDataset, ebXML); } return auditDataset; diff --git a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/iti80/Iti80AuditStrategy.java b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/iti80/Iti80AuditStrategy.java index 80bbfe90eb..4e86a06760 100644 --- a/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/iti80/Iti80AuditStrategy.java +++ b/commons/ihe/xds/src/main/java/org/openehealth/ipf/commons/ihe/xds/iti80/Iti80AuditStrategy.java @@ -20,6 +20,7 @@ import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLSubmitObjectsRequest; import org.openehealth.ipf.commons.ihe.xds.core.ebxml.ebxml30.EbXMLSubmitObjectsRequest30; import org.openehealth.ipf.commons.ihe.xds.core.ebxml.ebxml30.ProvideAndRegisterDocumentSetRequestType; +import org.openehealth.ipf.commons.ihe.xds.core.stub.ebrs30.lcm.SubmitObjectsRequest; import java.util.Map; @@ -44,7 +45,7 @@ public XdsSubmitAuditDataset enrichAuditDatasetFromRequest(XdsSubmitAuditDataset var request = (ProvideAndRegisterDocumentSetRequestType)pojo; var submitObjectsRequest = request.getSubmitObjectsRequest(); if (submitObjectsRequest != null) { - EbXMLSubmitObjectsRequest ebXML = new EbXMLSubmitObjectsRequest30(submitObjectsRequest); + EbXMLSubmitObjectsRequest ebXML = new EbXMLSubmitObjectsRequest30(submitObjectsRequest); enrichDatasetFromSubmitObjectsRequest(auditDataset, ebXML); } return auditDataset; diff --git a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/SampleData.java b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/SampleData.java index fdbd1f9919..0b0e2dfe69 100644 --- a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/SampleData.java +++ b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/SampleData.java @@ -25,6 +25,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; +import java.util.List; /** * Utility class to create sample data used in tests. @@ -261,7 +262,7 @@ public static SubmissionSet createSubmissionSet(Identifiable patientID) { */ public static DocumentEntry createDocumentEntry(Identifiable patientID) { var author = new Author(); - Name name = new XpnName(); + var name = new XpnName(); name.setFamilyName("Norbi"); author.setAuthorPerson(new Person(new Identifiable("id2", new AssigningAuthority("1.2")), name)); author.getAuthorInstitution().add(new Organization("authorOrg", null, null)); @@ -444,6 +445,71 @@ public static QueryRegistry createFindDocumentsByReferenceIdQuery() { return new QueryRegistry(query); } + public static QueryRegistry createFindDocumentsByTitleQuery() { + var query = new FindDocumentsByTitleQuery(); + populateDocumentsQuery(query); + query.setPatientId(new Identifiable("id3", new AssigningAuthority("1.3"))); + query.setStatus(Arrays.asList(AvailabilityStatus.APPROVED, AvailabilityStatus.SUBMITTED)); + query.setDocumentEntryTypes(Collections.singletonList(DocumentEntryType.STABLE)); + query.setTitle(List.of("myTitle")); + + return new QueryRegistry(query); + } + + /** + * @return a sample stored query for find documents by reference ID. + */ + public static QueryRegistry createSubscriptionForDocumentEntryQuery() { + var query = new SubscriptionForDocumentEntryQuery(); + populateDocumentsQuery(query); + query.setPatientId(new Identifiable("id3", new AssigningAuthority("1.3"))); + + var referenceIds = new QueryList(); + referenceIds.getOuterList().add(Arrays.asList( + new ReferenceId("ref-id-11", new CXiAssigningAuthority("", "1.1.1.1", "ISO"), + ReferenceId.ID_TYPE_CODE_UNIQUE_ID), + new ReferenceId("ref-id-12", null, ReferenceId.ID_TYPE_WORKFLOW_INSTANCE_ID), + new ReferenceId("ref-id-13", null, ReferenceId.ID_TYPE_CODE_REFERRAL))); + referenceIds.getOuterList().add(Arrays.asList( + new ReferenceId("ref-id-21", new CXiAssigningAuthority("", "1.1.1.2", "ISO"), + ReferenceId.ID_TYPE_CODE_ACCESSION), + new ReferenceId("ref-id-22", null, ReferenceId.ID_TYPE_CODE_ORDER))); + query.setTypedReferenceIds(referenceIds); + + return new QueryRegistry(query); + } + + public static QueryRegistry createSubscriptionForFolderQuery() { + var query = new SubscriptionForFolderQuery(); + query.setPatientId(new Identifiable("st3498702", new AssigningAuthority("1.3.6.1.4.1.21367.2005.3.7"))); + var codes = new QueryList(); + codes.getOuterList().add(Collections.singletonList(new Code("FolderCodeExample", null, "folderCodeListCodingScheme"))); + query.setCodes(codes); + return new QueryRegistry(query); + } + + public static QueryRegistry createSubscriptionForSubmissionSetQuery() { + var query = new SubscriptionForSubmissionSetQuery(); + query.setPatientId(new Identifiable("st3498702", new AssigningAuthority("1.3.6.1.4.1.21367.2005.3.7"))); + query.setIntendedRecipients(List.of("Some Hospital%", "|Welby%")); + return new QueryRegistry(query); + } + + public static QueryRegistry createSubscriptionForPatientIndependentSubmissionSetQuery() { + var query = new SubscriptionForPatientIndependentSubmissionSetQuery(); + query.setIntendedRecipients(List.of("Some Hospital%", "|Welby%")); + query.setSourceIds(List.of("1.2.5.7.8")); + return new QueryRegistry(query); + } + + public static QueryRegistry createSubscriptionForPatientIndependentDocumentEntryQuery() { + var query = new SubscriptionForPatientIndependentDocumentEntryQuery(); + query.setHealthcareFacilityTypeCodes(List.of(new Code("Emergency Department", null, "healthcareFacilityCodingScheme"))); + return new QueryRegistry(query); + } + + + private static void populateDocumentsQuery(DocumentsQuery query) { query.setHomeCommunityId("12.21.41"); diff --git a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/metadata/SubmissionSetTest.java b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/metadata/SubmissionSetTest.java index cf6728b431..100aaba510 100644 --- a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/metadata/SubmissionSetTest.java +++ b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/metadata/SubmissionSetTest.java @@ -29,14 +29,12 @@ public class SubmissionSetTest { private Author author1; private Author author2; - private Author author3; private SubmissionSet submissionSet; @BeforeEach public void setUp() { author1 = new Author(); author2 = new Author(); - author3 = new Author(); submissionSet = new SubmissionSet(); } diff --git a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/metadata/TimeRangeTest.java b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/metadata/TimeRangeTest.java index 5383cb1786..eba1b1e07f 100755 --- a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/metadata/TimeRangeTest.java +++ b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/metadata/TimeRangeTest.java @@ -43,7 +43,7 @@ public void testXmlDateSerialization() throws Exception { @SuppressWarnings({"unchecked"}) private void checkSerialization(String name, T object) throws Exception { var qname = new QName("http://www.openehealth.org/ipf/xds", name); - var jaxbElement = new JAXBElement(qname, (Class) object.getClass(), object); + var jaxbElement = new JAXBElement<>(qname, (Class) object.getClass(), object); var jaxbContext = JAXBContext.newInstance(TimeRange.class); var marshaller = jaxbContext.createMarshaller(); marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); diff --git a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/requests/query/QueryListTest.java b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/requests/query/QueryListTest.java index 8dd9ce9c40..bd76415b87 100755 --- a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/requests/query/QueryListTest.java +++ b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/requests/query/QueryListTest.java @@ -65,7 +65,7 @@ public void testXmlSerializationWithCode() throws Exception { @SuppressWarnings({"unchecked"}) private void checkSerialization(JAXBContext jaxbContext, String name, T object) throws Exception { var qname = new QName("http://www.openehealth.org/ipf/xds", name); - var jaxbElement = new JAXBElement(qname, (Class) object.getClass(), object); + var jaxbElement = new JAXBElement<>(qname, (Class) object.getClass(), object); var marshaller = jaxbContext.createMarshaller(); marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); // marshaller.marshal(jaxbElement, System.out); diff --git a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/hl7/XdsHl7v2RenderingTest.java b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/hl7/XdsHl7v2RenderingTest.java index 7c2e006fae..a8b78258dc 100644 --- a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/hl7/XdsHl7v2RenderingTest.java +++ b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/hl7/XdsHl7v2RenderingTest.java @@ -15,7 +15,6 @@ */ package org.openehealth.ipf.commons.ihe.xds.core.transform.hl7; -import org.apache.commons.lang3.BooleanUtils; import org.junit.jupiter.api.Test; import org.openehealth.ipf.commons.ihe.xds.core.metadata.Code; import org.openehealth.ipf.commons.ihe.xds.core.metadata.Hl7v2Based; diff --git a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/hl7/pid/PatientInfoTest.java b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/hl7/pid/PatientInfoTest.java index 7f74ecc2dd..0d2b8a1957 100644 --- a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/hl7/pid/PatientInfoTest.java +++ b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/hl7/pid/PatientInfoTest.java @@ -39,7 +39,7 @@ */ public class PatientInfoTest { - private static final SubmitObjectsRequestValidator SUBMIT_OBJECTS_REQUEST_VALIDATOR = new SubmitObjectsRequestValidator(); + private static final SubmitObjectsRequestValidator SUBMIT_OBJECTS_REQUEST_VALIDATOR = SubmitObjectsRequestValidator.getInstance(); private static final RegisterDocumentSetTransformer REGISTER_DOCUMENT_SET_TRANSFORMER = new RegisterDocumentSetTransformer(new EbXMLFactory30()); private static final PatientInfoTransformer PATIENT_INFO_TRANSFORMER = new PatientInfoTransformer(); diff --git a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ProvideAndRegisterDocumentSetTransformerTestBase.java b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ProvideAndRegisterDocumentSetTransformerTestBase.java index 7c72317df3..e6b80309fe 100644 --- a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ProvideAndRegisterDocumentSetTransformerTestBase.java +++ b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ProvideAndRegisterDocumentSetTransformerTestBase.java @@ -38,7 +38,7 @@ public abstract class ProvideAndRegisterDocumentSetTransformerTestBase implement private DataHandler dataHandler; @BeforeEach - public void setUp() throws Exception { + public void setUp() { var factory = createFactory(); transformer = new ProvideAndRegisterDocumentSetTransformer(factory); diff --git a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/RemoveMetadataTransformerTest.java b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/RemoveMetadataTransformerTest.java index 015a3a60c7..68b69d191a 100644 --- a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/RemoveMetadataTransformerTest.java +++ b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/RemoveMetadataTransformerTest.java @@ -40,7 +40,7 @@ public class RemoveMetadataTransformerTest { @BeforeEach - public void setUp() throws Exception { + public void setUp() { transformer = new RemoveMetadataRequestTransformer(); request = SampleData.createRemoveMetadata(); } @@ -96,7 +96,7 @@ public void verifyEbXmlSerialization() throws JAXBException { marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE); var writer = new StringWriter(); marshaller.marshal(ebXML.getInternal(), writer); - new RemoveMetadataRequestValidator().validate(ebXML, ITI_62); + RemoveMetadataRequestValidator.getInstance().validate(ebXML, ITI_62); assertFalse(writer.toString().contains("AdhocQuery"), "AdhocQuery is not expected in ITI-62 request"); } } diff --git a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/FindDispensesQueryTransformerTest.java b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/FindDispensesQueryTransformerTest.java index 941d5969e4..3faa17ad23 100644 --- a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/FindDispensesQueryTransformerTest.java +++ b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/FindDispensesQueryTransformerTest.java @@ -17,7 +17,6 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLAdhocQueryRequest; import org.openehealth.ipf.commons.ihe.xds.core.ebxml.ebxml30.EbXMLFactory30; import org.openehealth.ipf.commons.ihe.xds.core.metadata.AssigningAuthority; import org.openehealth.ipf.commons.ihe.xds.core.metadata.AvailabilityStatus; @@ -26,6 +25,7 @@ import org.openehealth.ipf.commons.ihe.xds.core.requests.query.FindDispensesQuery; import org.openehealth.ipf.commons.ihe.xds.core.requests.query.QueryType; import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryParameter; +import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query.AbstractQueryTransformerTest; import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query.FindDispensesQueryTransformer; import java.util.Arrays; @@ -38,16 +38,13 @@ * @author Quentin Ligier * @since 3.7 */ -public class FindDispensesQueryTransformerTest { - private FindDispensesQueryTransformer transformer; - private FindDispensesQuery query; - private EbXMLAdhocQueryRequest ebXML; +public class FindDispensesQueryTransformerTest extends AbstractQueryTransformerTest { @BeforeEach public void setUp() { - transformer = new FindDispensesQueryTransformer(); + transformer = FindDispensesQueryTransformer.getInstance(); - query = new FindDispensesQuery(); + query = emptyQuery(); query.setPatientId(new Identifiable("id3", new AssigningAuthority("uni3", "uniType3"))); query.setHomeCommunityId("12.21.41"); query.setConfidentialityCodes(Arrays.asList(new Code("code10", null, "scheme10"), new Code("code11", null, "scheme11"))); @@ -98,37 +95,8 @@ public void testToEbXML() { ebXML.getSlotValues(QueryParameter.DOC_ENTRY_AUTHOR_PERSON.getSlotName())); } - @Test - public void testToEbXMLNull() { - transformer.toEbXML(null, ebXML); - assertEquals(0, ebXML.getSlots().size()); - } - - @Test - public void testToEbXMLEmpty() { - transformer.toEbXML(new FindDispensesQuery(), ebXML); - assertEquals(0, ebXML.getSlots().size()); - } - - @Test - public void testFromEbXML() { - transformer.toEbXML(query, ebXML); - var result = new FindDispensesQuery(); - transformer.fromEbXML(result, ebXML); - assertEquals(query, result); - } - - @Test - public void testFromEbXMLNull() { - var result = new FindDispensesQuery(); - transformer.fromEbXML(result, null); - assertEquals(new FindDispensesQuery(), result); - } - - @Test - public void testFromEbXMLEmpty() { - var result = new FindDispensesQuery(); - transformer.fromEbXML(result, ebXML); - assertEquals(new FindDispensesQuery(), result); + @Override + protected FindDispensesQuery emptyQuery() { + return new FindDispensesQuery(); } } diff --git a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/FindDocumentsByReferenceIdQueryTransformerTest.java b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/FindDocumentsByReferenceIdQueryTransformerTest.java index cf55acd529..80493b4a59 100644 --- a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/FindDocumentsByReferenceIdQueryTransformerTest.java +++ b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/FindDocumentsByReferenceIdQueryTransformerTest.java @@ -18,11 +18,11 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.openehealth.ipf.commons.ihe.xds.core.SampleData; -import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLAdhocQueryRequest; import org.openehealth.ipf.commons.ihe.xds.core.ebxml.ebxml30.EbXMLFactory30; import org.openehealth.ipf.commons.ihe.xds.core.requests.query.FindDocumentsByReferenceIdQuery; import org.openehealth.ipf.commons.ihe.xds.core.requests.query.QueryType; import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryParameter; +import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query.AbstractQueryTransformerTest; import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query.FindDocumentsByReferenceIdQueryTransformer; import java.util.Arrays; @@ -34,14 +34,11 @@ * Tests for {@link FindDocumentsByReferenceIdQueryTransformer}. * @author Dmytro Rud */ -public class FindDocumentsByReferenceIdQueryTransformerTest { - private FindDocumentsByReferenceIdQueryTransformer transformer; - private FindDocumentsByReferenceIdQuery query; - private EbXMLAdhocQueryRequest ebXML; +public class FindDocumentsByReferenceIdQueryTransformerTest extends AbstractQueryTransformerTest { @BeforeEach public void setUp() { - transformer = new FindDocumentsByReferenceIdQueryTransformer(); + transformer = FindDocumentsByReferenceIdQueryTransformer.getInstance(); query = (FindDocumentsByReferenceIdQuery) SampleData.createFindDocumentsByReferenceIdQuery().getQuery(); ebXML = new EbXMLFactory30().createAdhocQueryRequest(); } @@ -68,38 +65,8 @@ public void testToEbXML() { referenceIdSlots.get(1).getValueList()); } - @Test - public void testToEbXMLNull() { - transformer.toEbXML(null, ebXML); - assertEquals(0, ebXML.getSlots().size()); - } - - @Test - public void testToEbXMLEmpty() { - transformer.toEbXML(new FindDocumentsByReferenceIdQuery(), ebXML); - assertEquals(0, ebXML.getSlots().size()); - } - - @Test - public void testFromEbXML() { - transformer.toEbXML(query, ebXML); - var result = new FindDocumentsByReferenceIdQuery(); - transformer.fromEbXML(result, ebXML); - assertEquals(query, result); + @Override + protected FindDocumentsByReferenceIdQuery emptyQuery() { + return new FindDocumentsByReferenceIdQuery(); } - - @Test - public void testFromEbXMLNull() { - var result = new FindDocumentsByReferenceIdQuery(); - transformer.fromEbXML(result, null); - assertEquals(new FindDocumentsByReferenceIdQuery(), result); - } - - @Test - public void testFromEbXMLEmpty() { - var result = new FindDocumentsByReferenceIdQuery(); - transformer.fromEbXML(result, ebXML); - assertEquals(new FindDocumentsByReferenceIdQuery(), result); - } - } diff --git a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/FindDocumentsByTitleQueryTransformerTest.java b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/FindDocumentsByTitleQueryTransformerTest.java new file mode 100644 index 0000000000..53c656bb48 --- /dev/null +++ b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/FindDocumentsByTitleQueryTransformerTest.java @@ -0,0 +1,66 @@ +/* + * Copyright 2013 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.openehealth.ipf.commons.ihe.xds.core.transform.requests.ebxml30; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.openehealth.ipf.commons.ihe.xds.core.SampleData; +import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLAdhocQueryRequest; +import org.openehealth.ipf.commons.ihe.xds.core.ebxml.ebxml30.EbXMLFactory30; +import org.openehealth.ipf.commons.ihe.xds.core.requests.query.FindDocumentsByTitleQuery; +import org.openehealth.ipf.commons.ihe.xds.core.requests.query.QueryType; +import org.openehealth.ipf.commons.ihe.xds.core.stub.ebrs30.query.AdhocQueryRequest; +import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryParameter; +import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query.AbstractQueryTransformerTest; +import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query.FindDocumentsByReferenceIdQueryTransformer; +import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query.FindDocumentsByTitleQueryTransformer; + +import java.util.Collections; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +/** + * Tests for {@link FindDocumentsByTitleQueryTransformer}. + * @author Christian Ohr + */ +public class FindDocumentsByTitleQueryTransformerTest extends AbstractQueryTransformerTest { + + @BeforeEach + public void setUp() { + transformer = FindDocumentsByTitleQueryTransformer.getInstance(); + query = (FindDocumentsByTitleQuery) SampleData.createFindDocumentsByTitleQuery().getQuery(); + ebXML = new EbXMLFactory30().createAdhocQueryRequest(); + } + + @Test + public void testToEbXML() { + transformer.toEbXML(query, ebXML); + + assertEquals(QueryType.FIND_DOCUMENTS_BY_TITLE.getId(), ebXML.getId()); + assertEquals("12.21.41", ebXML.getHome()); + assertEquals(Collections.singletonList("'id3^^^&1.3&ISO'"), + ebXML.getSlotValues(QueryParameter.DOC_ENTRY_PATIENT_ID.getSlotName())); + + var titleSlots = ebXML.getSlots(QueryParameter.DOC_ENTRY_TITLE.getSlotName()); + assertEquals(1, titleSlots.size()); + assertEquals("('myTitle')", titleSlots.get(0).getValueList().get(0)); + } + + @Override + protected FindDocumentsByTitleQuery emptyQuery() { + return new FindDocumentsByTitleQuery(); + } +} diff --git a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/FindDocumentsQueryTransformerTest.java b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/FindDocumentsQueryTransformerTest.java index fd71c83e6a..14e34e5f00 100644 --- a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/FindDocumentsQueryTransformerTest.java +++ b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/FindDocumentsQueryTransformerTest.java @@ -23,6 +23,7 @@ import org.openehealth.ipf.commons.ihe.xds.core.requests.query.FindDocumentsForMultiplePatientsQuery; import org.openehealth.ipf.commons.ihe.xds.core.requests.query.FindDocumentsQuery; import org.openehealth.ipf.commons.ihe.xds.core.requests.query.QueryType; +import org.openehealth.ipf.commons.ihe.xds.core.stub.ebrs30.query.AdhocQueryRequest; import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryParameter; import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query.FindDocumentsForMultiplePatientsQueryTransformer; import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query.FindDocumentsQueryTransformer; @@ -38,17 +39,17 @@ * @author Michael Ottati */ public class FindDocumentsQueryTransformerTest { - private FindDocumentsQueryTransformer transformer; + private FindDocumentsQueryTransformer transformer; private FindDocumentsForMultiplePatientsQueryTransformer multiplePatientsQueryTransformer; private FindDocumentsForMultiplePatientsQuery multiplePatientsQuery; private FindDocumentsQuery query; - private EbXMLAdhocQueryRequest ebXML; + private EbXMLAdhocQueryRequest ebXML; @BeforeEach public void setUp() { - transformer = new FindDocumentsQueryTransformer<>(); + transformer = FindDocumentsQueryTransformer.getInstance(); query = (FindDocumentsQuery)SampleData.createFindDocumentsQuery().getQuery(); - multiplePatientsQueryTransformer = new FindDocumentsForMultiplePatientsQueryTransformer(); + multiplePatientsQueryTransformer = FindDocumentsForMultiplePatientsQueryTransformer.getInstance(); multiplePatientsQuery = (FindDocumentsForMultiplePatientsQuery)SampleData.createFindDocumentsForMultiplePatientsQuery().getQuery(); ebXML = new EbXMLFactory30().createAdhocQueryRequest(); @@ -73,7 +74,7 @@ public void testToEbXML_MPQ() { checkEbXML(ebXML, 19); } - private static void checkEbXML(EbXMLAdhocQueryRequest ebXML, int expectedSlots) { + private static void checkEbXML(EbXMLAdhocQueryRequest ebXML, int expectedSlots) { assertEquals("12.21.41", ebXML.getHome()); assertEquals(Arrays.asList("('code1^^scheme1')", "('code2^^scheme2')"), diff --git a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/FindFoldersForMultiplePatientsQueryTransformerTest.java b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/FindFoldersForMultiplePatientsQueryTransformerTest.java index 11ddf35703..1ed7a108bb 100644 --- a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/FindFoldersForMultiplePatientsQueryTransformerTest.java +++ b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/FindFoldersForMultiplePatientsQueryTransformerTest.java @@ -26,6 +26,7 @@ import org.openehealth.ipf.commons.ihe.xds.core.requests.query.FindFoldersForMultiplePatientsQuery; import org.openehealth.ipf.commons.ihe.xds.core.requests.query.QueryList; import org.openehealth.ipf.commons.ihe.xds.core.requests.query.QueryType; +import org.openehealth.ipf.commons.ihe.xds.core.stub.ebrs30.query.AdhocQueryRequest; import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryParameter; import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query.FindFoldersForMultiplePatientsQueryTransformer; @@ -41,11 +42,11 @@ public class FindFoldersForMultiplePatientsQueryTransformerTest { private FindFoldersForMultiplePatientsQueryTransformer transformer; private FindFoldersForMultiplePatientsQuery query; - private EbXMLAdhocQueryRequest ebXML; + private EbXMLAdhocQueryRequest ebXML; @BeforeEach public void setUp() { - transformer = new FindFoldersForMultiplePatientsQueryTransformer(); + transformer = FindFoldersForMultiplePatientsQueryTransformer.getInstance(); query = new FindFoldersForMultiplePatientsQuery(); query.setPatientIds(Arrays.asList(new Identifiable("id1", new AssigningAuthority("uni1", "uniType1")), new Identifiable("id2", new AssigningAuthority("uni2", "uniType2")))); diff --git a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/FindFoldersQueryTransformerTest.java b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/FindFoldersQueryTransformerTest.java index 3fdae5b46c..1df3caf71a 100644 --- a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/FindFoldersQueryTransformerTest.java +++ b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/FindFoldersQueryTransformerTest.java @@ -17,7 +17,6 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLAdhocQueryRequest; import org.openehealth.ipf.commons.ihe.xds.core.ebxml.ebxml30.EbXMLFactory30; import org.openehealth.ipf.commons.ihe.xds.core.metadata.AssigningAuthority; import org.openehealth.ipf.commons.ihe.xds.core.metadata.AvailabilityStatus; @@ -27,6 +26,7 @@ import org.openehealth.ipf.commons.ihe.xds.core.requests.query.QueryList; import org.openehealth.ipf.commons.ihe.xds.core.requests.query.QueryType; import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryParameter; +import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query.AbstractQueryTransformerTest; import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query.FindFoldersQueryTransformer; import java.util.Arrays; @@ -38,15 +38,12 @@ * Tests for {@link FindFoldersQueryTransformer}. * @author Jens Riemschneider */ -public class FindFoldersQueryTransformerTest { - private FindFoldersQueryTransformer transformer; - private FindFoldersQuery query; - private EbXMLAdhocQueryRequest ebXML; +public class FindFoldersQueryTransformerTest extends AbstractQueryTransformerTest { @BeforeEach public void setUp() { - transformer = new FindFoldersQueryTransformer(); - query = new FindFoldersQuery(); + transformer = FindFoldersQueryTransformer.getInstance(); + query = emptyQuery(); query.setPatientId(new Identifiable("id1", new AssigningAuthority("uni1", "uniType1"))); query.getLastUpdateTime().setFrom("20150102030405"); @@ -88,29 +85,6 @@ public void testToEbXML() { assertEquals(6, ebXML.getSlots().size()); } - @Test - public void testToEbXMLNull() { - transformer.toEbXML(null, ebXML); - assertEquals(0, ebXML.getSlots().size()); - } - - @Test - public void testToEbXMLEmpty() { - transformer.toEbXML(new FindFoldersQuery(), ebXML); - assertEquals(0, ebXML.getSlots().size()); - } - - - - @Test - public void testFromEbXML() { - transformer.toEbXML(query, ebXML); - var result = new FindFoldersQuery(); - transformer.fromEbXML(result, ebXML); - - assertEquals(query, result); - } - @Test public void testFromEbXMLLineBreakInAValueList() { transformer.toEbXML(query, ebXML); @@ -121,18 +95,9 @@ public void testFromEbXMLLineBreakInAValueList() { assertEquals(query, result); } - - @Test - public void testFromEbXMLNull() { - var result = new FindFoldersQuery(); - transformer.fromEbXML(result, null); - assertEquals(new FindFoldersQuery(), result); - } - - @Test - public void testFromEbXMLEmpty() { - var result = new FindFoldersQuery(); - transformer.fromEbXML(result, ebXML); - assertEquals(new FindFoldersQuery().toString(), result.toString()); + + @Override + protected FindFoldersQuery emptyQuery() { + return new FindFoldersQuery(); } } diff --git a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/FindMedicationAdministrationsTransformerTest.java b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/FindMedicationAdministrationsTransformerTest.java index e0dba1733c..aa68f878f1 100644 --- a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/FindMedicationAdministrationsTransformerTest.java +++ b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/FindMedicationAdministrationsTransformerTest.java @@ -17,7 +17,6 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLAdhocQueryRequest; import org.openehealth.ipf.commons.ihe.xds.core.ebxml.ebxml30.EbXMLFactory30; import org.openehealth.ipf.commons.ihe.xds.core.metadata.AssigningAuthority; import org.openehealth.ipf.commons.ihe.xds.core.metadata.AvailabilityStatus; @@ -26,6 +25,7 @@ import org.openehealth.ipf.commons.ihe.xds.core.requests.query.FindMedicationAdministrationsQuery; import org.openehealth.ipf.commons.ihe.xds.core.requests.query.QueryType; import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryParameter; +import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query.AbstractQueryTransformerTest; import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query.FindMedicationAdministrationsQueryTransformer; import java.util.Arrays; @@ -38,16 +38,13 @@ * @author Quentin Ligier * @since 3.7 */ -public class FindMedicationAdministrationsTransformerTest { - private FindMedicationAdministrationsQueryTransformer transformer; - private FindMedicationAdministrationsQuery query; - private EbXMLAdhocQueryRequest ebXML; +public class FindMedicationAdministrationsTransformerTest extends AbstractQueryTransformerTest { @BeforeEach public void setUp() { - transformer = new FindMedicationAdministrationsQueryTransformer(); + transformer = FindMedicationAdministrationsQueryTransformer.getInstance(); - query = new FindMedicationAdministrationsQuery(); + query = emptyQuery(); query.setPatientId(new Identifiable("id1", new AssigningAuthority("uni1", "uniType1"))); query.setHomeCommunityId("12.21.41"); query.setConfidentialityCodes(Arrays.asList(new Code("code10", null, "scheme10"), new Code("code11", null, "scheme11"))); @@ -98,37 +95,8 @@ public void testToEbXML() { ebXML.getSlotValues(QueryParameter.DOC_ENTRY_AUTHOR_PERSON.getSlotName())); } - @Test - public void testToEbXMLNull() { - transformer.toEbXML(null, ebXML); - assertEquals(0, ebXML.getSlots().size()); - } - - @Test - public void testToEbXMLEmpty() { - transformer.toEbXML(new FindMedicationAdministrationsQuery(), ebXML); - assertEquals(0, ebXML.getSlots().size()); - } - - @Test - public void testFromEbXML() { - transformer.toEbXML(query, ebXML); - var result = new FindMedicationAdministrationsQuery(); - transformer.fromEbXML(result, ebXML); - assertEquals(query, result); - } - - @Test - public void testFromEbXMLNull() { - var result = new FindMedicationAdministrationsQuery(); - transformer.fromEbXML(result, null); - assertEquals(new FindMedicationAdministrationsQuery(), result); - } - - @Test - public void testFromEbXMLEmpty() { - var result = new FindMedicationAdministrationsQuery(); - transformer.fromEbXML(result, ebXML); - assertEquals(new FindMedicationAdministrationsQuery(), result); + @Override + protected FindMedicationAdministrationsQuery emptyQuery() { + return new FindMedicationAdministrationsQuery(); } } diff --git a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/FindMedicationListQueryTransformerTest.java b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/FindMedicationListQueryTransformerTest.java index d098321b71..03817760f9 100644 --- a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/FindMedicationListQueryTransformerTest.java +++ b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/FindMedicationListQueryTransformerTest.java @@ -17,12 +17,12 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLAdhocQueryRequest; import org.openehealth.ipf.commons.ihe.xds.core.ebxml.ebxml30.EbXMLFactory30; import org.openehealth.ipf.commons.ihe.xds.core.metadata.*; import org.openehealth.ipf.commons.ihe.xds.core.requests.query.FindMedicationListQuery; import org.openehealth.ipf.commons.ihe.xds.core.requests.query.QueryType; import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryParameter; +import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query.AbstractQueryTransformerTest; import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query.FindMedicationListQueryTransformer; import java.util.Arrays; @@ -35,16 +35,13 @@ * @author Quentin Ligier * @since 3.7 */ -public class FindMedicationListQueryTransformerTest { - private FindMedicationListQueryTransformer transformer; - private FindMedicationListQuery query; - private EbXMLAdhocQueryRequest ebXML; +public class FindMedicationListQueryTransformerTest extends AbstractQueryTransformerTest { @BeforeEach public void setUp() { - transformer = new FindMedicationListQueryTransformer(); + transformer = FindMedicationListQueryTransformer.getInstance(); - query = new FindMedicationListQuery(); + query = emptyQuery(); query.setPatientId(new Identifiable("id1", new AssigningAuthority("uni1", "uniType1"))); query.setHomeCommunityId("12.21.41"); query.getServiceStart().setFrom("1982"); @@ -78,37 +75,8 @@ public void testToEbXML() { ebXML.getSlotValues(QueryParameter.DOC_ENTRY_TYPE.getSlotName())); } - @Test - public void testToEbXMLNull() { - transformer.toEbXML(null, ebXML); - assertEquals(0, ebXML.getSlots().size()); - } - - @Test - public void testToEbXMLEmpty() { - transformer.toEbXML(new FindMedicationListQuery(), ebXML); - assertEquals(0, ebXML.getSlots().size()); - } - - @Test - public void testFromEbXML() { - transformer.toEbXML(query, ebXML); - var result = new FindMedicationListQuery(); - transformer.fromEbXML(result, ebXML); - assertEquals(query, result); - } - - @Test - public void testFromEbXMLNull() { - var result = new FindMedicationListQuery(); - transformer.fromEbXML(result, null); - assertEquals(new FindMedicationListQuery(), result); - } - - @Test - public void testFromEbXMLEmpty() { - var result = new FindMedicationListQuery(); - transformer.fromEbXML(result, ebXML); - assertEquals(new FindMedicationListQuery(), result); + @Override + protected FindMedicationListQuery emptyQuery() { + return new FindMedicationListQuery(); } } diff --git a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/FindMedicationTreatmentPlansQueryTransformerTest.java b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/FindMedicationTreatmentPlansQueryTransformerTest.java index ee1b601137..4d988187e8 100644 --- a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/FindMedicationTreatmentPlansQueryTransformerTest.java +++ b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/FindMedicationTreatmentPlansQueryTransformerTest.java @@ -17,7 +17,6 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLAdhocQueryRequest; import org.openehealth.ipf.commons.ihe.xds.core.ebxml.ebxml30.EbXMLFactory30; import org.openehealth.ipf.commons.ihe.xds.core.metadata.AssigningAuthority; import org.openehealth.ipf.commons.ihe.xds.core.metadata.AvailabilityStatus; @@ -26,6 +25,7 @@ import org.openehealth.ipf.commons.ihe.xds.core.requests.query.FindMedicationTreatmentPlansQuery; import org.openehealth.ipf.commons.ihe.xds.core.requests.query.QueryType; import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryParameter; +import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query.AbstractQueryTransformerTest; import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query.FindMedicationTreatmentPlansQueryTransformer; import java.util.Arrays; @@ -38,16 +38,14 @@ * @author Quentin Ligier * @since 3.7 */ -public class FindMedicationTreatmentPlansQueryTransformerTest { - private FindMedicationTreatmentPlansQueryTransformer transformer; - private FindMedicationTreatmentPlansQuery query; - private EbXMLAdhocQueryRequest ebXML; +public class FindMedicationTreatmentPlansQueryTransformerTest extends AbstractQueryTransformerTest { + @BeforeEach public void setUp() { - transformer = new FindMedicationTreatmentPlansQueryTransformer(); + transformer = FindMedicationTreatmentPlansQueryTransformer.getInstance(); - query = new FindMedicationTreatmentPlansQuery(); + query = emptyQuery(); query.setPatientId(new Identifiable("id1", new AssigningAuthority("uni1", "uniType1"))); query.setHomeCommunityId("12.21.41"); query.setConfidentialityCodes(Arrays.asList(new Code("code10", null, "scheme10"), new Code("code11", null, "scheme11"))); @@ -98,37 +96,8 @@ public void testToEbXML() { ebXML.getSlotValues(QueryParameter.DOC_ENTRY_AUTHOR_PERSON.getSlotName())); } - @Test - public void testToEbXMLNull() { - transformer.toEbXML(null, ebXML); - assertEquals(0, ebXML.getSlots().size()); - } - - @Test - public void testToEbXMLEmpty() { - transformer.toEbXML(new FindMedicationTreatmentPlansQuery(), ebXML); - assertEquals(0, ebXML.getSlots().size()); - } - - @Test - public void testFromEbXML() { - transformer.toEbXML(query, ebXML); - var result = new FindMedicationTreatmentPlansQuery(); - transformer.fromEbXML(result, ebXML); - assertEquals(query, result); - } - - @Test - public void testFromEbXMLNull() { - var result = new FindMedicationTreatmentPlansQuery(); - transformer.fromEbXML(result, null); - assertEquals(new FindMedicationTreatmentPlansQuery(), result); - } - - @Test - public void testFromEbXMLEmpty() { - var result = new FindMedicationTreatmentPlansQuery(); - transformer.fromEbXML(result, ebXML); - assertEquals(new FindMedicationTreatmentPlansQuery(), result); + @Override + protected FindMedicationTreatmentPlansQuery emptyQuery() { + return new FindMedicationTreatmentPlansQuery(); } } diff --git a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/FindPrescriptionsForDispenseQueryTransformerTest.java b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/FindPrescriptionsForDispenseQueryTransformerTest.java index 46a17b2681..e70b188177 100644 --- a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/FindPrescriptionsForDispenseQueryTransformerTest.java +++ b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/FindPrescriptionsForDispenseQueryTransformerTest.java @@ -17,7 +17,6 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLAdhocQueryRequest; import org.openehealth.ipf.commons.ihe.xds.core.ebxml.ebxml30.EbXMLFactory30; import org.openehealth.ipf.commons.ihe.xds.core.metadata.AssigningAuthority; import org.openehealth.ipf.commons.ihe.xds.core.metadata.AvailabilityStatus; @@ -26,6 +25,7 @@ import org.openehealth.ipf.commons.ihe.xds.core.requests.query.FindPrescriptionsForDispenseQuery; import org.openehealth.ipf.commons.ihe.xds.core.requests.query.QueryType; import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryParameter; +import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query.AbstractQueryTransformerTest; import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query.FindPrescriptionsForDispenseQueryTransformer; import java.util.Arrays; @@ -38,16 +38,13 @@ * @author Quentin Ligier * @since 3.7 */ -public class FindPrescriptionsForDispenseQueryTransformerTest { - private FindPrescriptionsForDispenseQueryTransformer transformer; - private FindPrescriptionsForDispenseQuery query; - private EbXMLAdhocQueryRequest ebXML; +public class FindPrescriptionsForDispenseQueryTransformerTest extends AbstractQueryTransformerTest { @BeforeEach public void setUp() { - transformer = new FindPrescriptionsForDispenseQueryTransformer(); + transformer = FindPrescriptionsForDispenseQueryTransformer.getInstance(); - query = new FindPrescriptionsForDispenseQuery(); + query = emptyQuery(); query.setPatientId(new Identifiable("id1", new AssigningAuthority("uni1", "uniType1"))); query.setHomeCommunityId("12.21.41"); query.setConfidentialityCodes(Arrays.asList(new Code("code10", null, "scheme10"), new Code("code11", null, "scheme11"))); @@ -98,37 +95,8 @@ public void testToEbXML() { ebXML.getSlotValues(QueryParameter.DOC_ENTRY_AUTHOR_PERSON.getSlotName())); } - @Test - public void testToEbXMLNull() { - transformer.toEbXML(null, ebXML); - assertEquals(0, ebXML.getSlots().size()); - } - - @Test - public void testToEbXMLEmpty() { - transformer.toEbXML(new FindPrescriptionsForDispenseQuery(), ebXML); - assertEquals(0, ebXML.getSlots().size()); - } - - @Test - public void testFromEbXML() { - transformer.toEbXML(query, ebXML); - var result = new FindPrescriptionsForDispenseQuery(); - transformer.fromEbXML(result, ebXML); - assertEquals(query, result); - } - - @Test - public void testFromEbXMLNull() { - var result = new FindPrescriptionsForDispenseQuery(); - transformer.fromEbXML(result, null); - assertEquals(new FindPrescriptionsForDispenseQuery(), result); - } - - @Test - public void testFromEbXMLEmpty() { - var result = new FindPrescriptionsForDispenseQuery(); - transformer.fromEbXML(result, ebXML); - assertEquals(new FindPrescriptionsForDispenseQuery(), result); + @Override + protected FindPrescriptionsForDispenseQuery emptyQuery() { + return new FindPrescriptionsForDispenseQuery(); } } diff --git a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/FindPrescriptionsForValidationQueryTransformerTest.java b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/FindPrescriptionsForValidationQueryTransformerTest.java index 8dfce2258d..1a86c018ef 100644 --- a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/FindPrescriptionsForValidationQueryTransformerTest.java +++ b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/FindPrescriptionsForValidationQueryTransformerTest.java @@ -17,7 +17,6 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLAdhocQueryRequest; import org.openehealth.ipf.commons.ihe.xds.core.ebxml.ebxml30.EbXMLFactory30; import org.openehealth.ipf.commons.ihe.xds.core.metadata.AssigningAuthority; import org.openehealth.ipf.commons.ihe.xds.core.metadata.AvailabilityStatus; @@ -26,6 +25,7 @@ import org.openehealth.ipf.commons.ihe.xds.core.requests.query.FindPrescriptionsForValidationQuery; import org.openehealth.ipf.commons.ihe.xds.core.requests.query.QueryType; import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryParameter; +import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query.AbstractQueryTransformerTest; import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query.FindPrescriptionsForValidationQueryTransformer; import java.util.Arrays; @@ -38,16 +38,13 @@ * @author Quentin Ligier * @since 3.7 */ -public class FindPrescriptionsForValidationQueryTransformerTest { - private FindPrescriptionsForValidationQueryTransformer transformer; - private FindPrescriptionsForValidationQuery query; - private EbXMLAdhocQueryRequest ebXML; +public class FindPrescriptionsForValidationQueryTransformerTest extends AbstractQueryTransformerTest { @BeforeEach public void setUp() { - transformer = new FindPrescriptionsForValidationQueryTransformer(); + transformer = FindPrescriptionsForValidationQueryTransformer.getInstance(); - query = new FindPrescriptionsForValidationQuery(); + query = emptyQuery(); query.setPatientId(new Identifiable("id1", new AssigningAuthority("uni1", "uniType1"))); query.setHomeCommunityId("12.21.41"); query.setConfidentialityCodes(Arrays.asList(new Code("code10", null, "scheme10"), new Code("code11", null, "scheme11"))); @@ -98,37 +95,8 @@ public void testToEbXML() { ebXML.getSlotValues(QueryParameter.DOC_ENTRY_AUTHOR_PERSON.getSlotName())); } - @Test - public void testToEbXMLNull() { - transformer.toEbXML(null, ebXML); - assertEquals(0, ebXML.getSlots().size()); - } - - @Test - public void testToEbXMLEmpty() { - transformer.toEbXML(new FindPrescriptionsForValidationQuery(), ebXML); - assertEquals(0, ebXML.getSlots().size()); - } - - @Test - public void testFromEbXML() { - transformer.toEbXML(query, ebXML); - var result = new FindPrescriptionsForValidationQuery(); - transformer.fromEbXML(result, ebXML); - assertEquals(query, result); - } - - @Test - public void testFromEbXMLNull() { - var result = new FindPrescriptionsForValidationQuery(); - transformer.fromEbXML(result, null); - assertEquals(new FindPrescriptionsForValidationQuery(), result); - } - - @Test - public void testFromEbXMLEmpty() { - var result = new FindPrescriptionsForValidationQuery(); - transformer.fromEbXML(result, ebXML); - assertEquals(new FindPrescriptionsForValidationQuery(), result); + @Override + protected FindPrescriptionsForValidationQuery emptyQuery() { + return new FindPrescriptionsForValidationQuery(); } } diff --git a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/FindPrescriptionsQueryTransformerTest.java b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/FindPrescriptionsQueryTransformerTest.java index 0aee605a49..32f429017f 100644 --- a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/FindPrescriptionsQueryTransformerTest.java +++ b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/FindPrescriptionsQueryTransformerTest.java @@ -17,7 +17,6 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLAdhocQueryRequest; import org.openehealth.ipf.commons.ihe.xds.core.ebxml.ebxml30.EbXMLFactory30; import org.openehealth.ipf.commons.ihe.xds.core.metadata.AssigningAuthority; import org.openehealth.ipf.commons.ihe.xds.core.metadata.AvailabilityStatus; @@ -26,6 +25,7 @@ import org.openehealth.ipf.commons.ihe.xds.core.requests.query.FindPrescriptionsQuery; import org.openehealth.ipf.commons.ihe.xds.core.requests.query.QueryType; import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryParameter; +import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query.AbstractQueryTransformerTest; import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query.FindPrescriptionsQueryTransformer; import java.util.Arrays; @@ -38,16 +38,13 @@ * @author Quentin Ligier * @since 3.7 */ -public class FindPrescriptionsQueryTransformerTest { - private FindPrescriptionsQueryTransformer transformer; - private FindPrescriptionsQuery query; - private EbXMLAdhocQueryRequest ebXML; +public class FindPrescriptionsQueryTransformerTest extends AbstractQueryTransformerTest { @BeforeEach public void setUp() { - transformer = new FindPrescriptionsQueryTransformer(); + transformer = FindPrescriptionsQueryTransformer.getInstance(); - query = new FindPrescriptionsQuery(); + query = emptyQuery(); query.setPatientId(new Identifiable("id1", new AssigningAuthority("uni1", "uniType1"))); query.setHomeCommunityId("12.21.41"); query.setConfidentialityCodes(Arrays.asList(new Code("code10", null, "scheme10"), new Code("code11", null, "scheme11"))); @@ -98,37 +95,8 @@ public void testToEbXML() { ebXML.getSlotValues(QueryParameter.DOC_ENTRY_AUTHOR_PERSON.getSlotName())); } - @Test - public void testToEbXMLNull() { - transformer.toEbXML(null, ebXML); - assertEquals(0, ebXML.getSlots().size()); - } - - @Test - public void testToEbXMLEmpty() { - transformer.toEbXML(new FindPrescriptionsQuery(), ebXML); - assertEquals(0, ebXML.getSlots().size()); - } - - @Test - public void testFromEbXML() { - transformer.toEbXML(query, ebXML); - var result = new FindPrescriptionsQuery(); - transformer.fromEbXML(result, ebXML); - assertEquals(query, result); - } - - @Test - public void testFromEbXMLNull() { - var result = new FindPrescriptionsQuery(); - transformer.fromEbXML(result, null); - assertEquals(new FindPrescriptionsQuery(), result); - } - - @Test - public void testFromEbXMLEmpty() { - var result = new FindPrescriptionsQuery(); - transformer.fromEbXML(result, ebXML); - assertEquals(new FindPrescriptionsQuery(), result); + @Override + protected FindPrescriptionsQuery emptyQuery() { + return new FindPrescriptionsQuery(); } } diff --git a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/FindSubmissionSetsQueryTransformerTest.java b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/FindSubmissionSetsQueryTransformerTest.java index 45f8684b10..0acfe31e6f 100644 --- a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/FindSubmissionSetsQueryTransformerTest.java +++ b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/FindSubmissionSetsQueryTransformerTest.java @@ -25,7 +25,9 @@ import org.openehealth.ipf.commons.ihe.xds.core.metadata.Identifiable; import org.openehealth.ipf.commons.ihe.xds.core.requests.query.FindSubmissionSetsQuery; import org.openehealth.ipf.commons.ihe.xds.core.requests.query.QueryType; +import org.openehealth.ipf.commons.ihe.xds.core.stub.ebrs30.query.AdhocQueryRequest; import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryParameter; +import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query.AbstractQueryTransformerTest; import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query.FindSubmissionSetsQueryTransformer; import java.util.Arrays; @@ -37,15 +39,13 @@ * Tests for {@link FindSubmissionSetsQueryTransformer}. * @author Jens Riemschneider */ -public class FindSubmissionSetsQueryTransformerTest { - private FindSubmissionSetsQueryTransformer transformer; - private FindSubmissionSetsQuery query; - private EbXMLAdhocQueryRequest ebXML; +public class FindSubmissionSetsQueryTransformerTest extends AbstractQueryTransformerTest { + @BeforeEach public void setUp() { - transformer = new FindSubmissionSetsQueryTransformer(); - query = new FindSubmissionSetsQuery(); + transformer = FindSubmissionSetsQueryTransformer.getInstance(); + query = emptyQuery(); query.setPatientId(new Identifiable("id1", new AssigningAuthority("uni1", "uniType1"))); query.setContentTypeCodes(Arrays.asList(new Code("code1", null, "system1"), new Code("code2", null, "system2"))); @@ -83,41 +83,9 @@ public void testToEbXML() { assertEquals(6, ebXML.getSlots().size()); } - - @Test - public void testToEbXMLNull() { - transformer.toEbXML(null, ebXML); - assertEquals(0, ebXML.getSlots().size()); - } - - @Test - public void testToEbXMLEmpty() { - transformer.toEbXML(new FindSubmissionSetsQuery(), ebXML); - assertEquals(0, ebXML.getSlots().size()); - } - - - @Test - public void testFromEbXML() { - transformer.toEbXML(query, ebXML); - var result = new FindSubmissionSetsQuery(); - transformer.fromEbXML(result, ebXML); - - assertEquals(query, result); - } - - @Test - public void testFromEbXMLNull() { - var result = new FindSubmissionSetsQuery(); - transformer.fromEbXML(result, null); - assertEquals(new FindSubmissionSetsQuery(), result); - } - - @Test - public void testFromEbXMLEmpty() { - var result = new FindSubmissionSetsQuery(); - transformer.fromEbXML(result, ebXML); - assertEquals(new FindSubmissionSetsQuery(), result); + @Override + protected FindSubmissionSetsQuery emptyQuery() { + return new FindSubmissionSetsQuery(); } } diff --git a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/GetAllQueryTransformerTest.java b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/GetAllQueryTransformerTest.java index 768e7aa3bb..d9f895f5ac 100644 --- a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/GetAllQueryTransformerTest.java +++ b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/GetAllQueryTransformerTest.java @@ -17,13 +17,13 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLAdhocQueryRequest; import org.openehealth.ipf.commons.ihe.xds.core.ebxml.ebxml30.EbXMLFactory30; import org.openehealth.ipf.commons.ihe.xds.core.metadata.*; import org.openehealth.ipf.commons.ihe.xds.core.requests.query.GetAllQuery; import org.openehealth.ipf.commons.ihe.xds.core.requests.query.QueryList; import org.openehealth.ipf.commons.ihe.xds.core.requests.query.QueryType; import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryParameter; +import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query.AbstractQueryTransformerTest; import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query.GetAllQueryTransformer; import java.util.Arrays; @@ -35,15 +35,12 @@ * Tests for {@link GetAllQueryTransformer}. * @author Jens Riemschneider */ -public class GetAllQueryTransformerTest { - private GetAllQueryTransformer transformer; - private GetAllQuery query; - private EbXMLAdhocQueryRequest ebXML; +public class GetAllQueryTransformerTest extends AbstractQueryTransformerTest { @BeforeEach public void setUp() { - transformer = new GetAllQueryTransformer(); - query = new GetAllQuery(); + transformer = GetAllQueryTransformer.getInstance(); + query = emptyQuery(); query.setPatientId(new Identifiable("id1", new AssigningAuthority("uni1", "uniType1"))); var confidentialityCodes = new QueryList(); @@ -93,41 +90,9 @@ public void testToEbXML() { assertEquals(8, ebXML.getSlots().size()); } - - @Test - public void testToEbXMLNull() { - transformer.toEbXML(null, ebXML); - assertEquals(0, ebXML.getSlots().size()); - } - - @Test - public void testToEbXMLEmpty() { - transformer.toEbXML(new GetAllQuery(), ebXML); - assertEquals(0, ebXML.getSlots().size()); - } - - - @Test - public void testFromEbXML() { - transformer.toEbXML(query, ebXML); - var result = new GetAllQuery(); - transformer.fromEbXML(result, ebXML); - - assertEquals(query, result); - } - - @Test - public void testFromEbXMLNull() { - var result = new GetAllQuery(); - transformer.fromEbXML(result, null); - assertEquals(new GetAllQuery(), result); - } - - @Test - public void testFromEbXMLEmpty() { - var result = new GetAllQuery(); - transformer.fromEbXML(result, ebXML); - assertEquals(new GetAllQuery(), result); + @Override + protected GetAllQuery emptyQuery() { + return new GetAllQuery(); } } diff --git a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/GetAssociationsQueryTransformerTest.java b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/GetAssociationsQueryTransformerTest.java index 29917e683f..e2921bbaea 100644 --- a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/GetAssociationsQueryTransformerTest.java +++ b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/GetAssociationsQueryTransformerTest.java @@ -17,11 +17,11 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLAdhocQueryRequest; import org.openehealth.ipf.commons.ihe.xds.core.ebxml.ebxml30.EbXMLFactory30; import org.openehealth.ipf.commons.ihe.xds.core.requests.query.GetAssociationsQuery; import org.openehealth.ipf.commons.ihe.xds.core.requests.query.QueryType; import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryParameter; +import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query.AbstractQueryTransformerTest; import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query.GetAssociationsQueryTransformer; import java.util.Arrays; @@ -32,15 +32,12 @@ * Tests for {@link GetAssociationsQueryTransformer}. * @author Jens Riemschneider */ -public class GetAssociationsQueryTransformerTest { - private GetAssociationsQueryTransformer transformer; - private GetAssociationsQuery query; - private EbXMLAdhocQueryRequest ebXML; +public class GetAssociationsQueryTransformerTest extends AbstractQueryTransformerTest { @BeforeEach public void setUp() { - transformer = new GetAssociationsQueryTransformer(); - query = new GetAssociationsQuery(); + transformer = GetAssociationsQueryTransformer.getInstance(); + query = emptyQuery(); query.setUuids(Arrays.asList("uuid1", "uuid2")); query.setHomeCommunityId("home"); @@ -59,41 +56,9 @@ public void testToEbXML() { assertEquals("home", ebXML.getHome()); assertEquals(1, ebXML.getSlots().size()); } - - @Test - public void testToEbXMLNull() { - transformer.toEbXML(null, ebXML); - assertEquals(0, ebXML.getSlots().size()); - } - - @Test - public void testToEbXMLEmpty() { - transformer.toEbXML(new GetAssociationsQuery(), ebXML); - assertEquals(0, ebXML.getSlots().size()); - } - - - @Test - public void testFromEbXML() { - transformer.toEbXML(query, ebXML); - var result = new GetAssociationsQuery(); - transformer.fromEbXML(result, ebXML); - - assertEquals(query, result); - } - - @Test - public void testFromEbXMLNull() { - var result = new GetAssociationsQuery(); - transformer.fromEbXML(result, null); - assertEquals(new GetAssociationsQuery(), result); - } - - @Test - public void testFromEbXMLEmpty() { - var result = new GetAssociationsQuery(); - transformer.fromEbXML(result, ebXML); - assertEquals(new GetAssociationsQuery(), result); + @Override + protected GetAssociationsQuery emptyQuery() { + return new GetAssociationsQuery(); } } diff --git a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/GetDocumentsAndAssociationsQueryTransformerTest.java b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/GetDocumentsAndAssociationsQueryTransformerTest.java index d1340caa2b..3698e93342 100644 --- a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/GetDocumentsAndAssociationsQueryTransformerTest.java +++ b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/GetDocumentsAndAssociationsQueryTransformerTest.java @@ -17,11 +17,11 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLAdhocQueryRequest; import org.openehealth.ipf.commons.ihe.xds.core.ebxml.ebxml30.EbXMLFactory30; import org.openehealth.ipf.commons.ihe.xds.core.requests.query.GetDocumentsAndAssociationsQuery; import org.openehealth.ipf.commons.ihe.xds.core.requests.query.QueryType; import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryParameter; +import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query.AbstractQueryTransformerTest; import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query.GetDocumentsAndAssociationsQueryTransformer; import java.util.Arrays; @@ -32,15 +32,12 @@ * Tests for {@link GetDocumentsAndAssociationsQueryTransformer}. * @author Jens Riemschneider */ -public class GetDocumentsAndAssociationsQueryTransformerTest { - private GetDocumentsAndAssociationsQueryTransformer transformer; - private GetDocumentsAndAssociationsQuery query; - private EbXMLAdhocQueryRequest ebXML; +public class GetDocumentsAndAssociationsQueryTransformerTest extends AbstractQueryTransformerTest { @BeforeEach public void setUp() { - transformer = new GetDocumentsAndAssociationsQueryTransformer(); - query = new GetDocumentsAndAssociationsQuery(); + transformer = GetDocumentsAndAssociationsQueryTransformer.getInstance(); + query = emptyQuery(); query.setUuids(Arrays.asList("uuid1", "uuid2")); query.setUniqueIds(Arrays.asList("uniqueId1", "uniqueId2")); @@ -63,41 +60,9 @@ public void testToEbXML() { assertEquals("home", ebXML.getHome()); assertEquals(2, ebXML.getSlots().size()); } - - @Test - public void testToEbXMLNull() { - transformer.toEbXML(null, ebXML); - assertEquals(0, ebXML.getSlots().size()); - } - - @Test - public void testToEbXMLEmpty() { - transformer.toEbXML(new GetDocumentsAndAssociationsQuery(), ebXML); - assertEquals(0, ebXML.getSlots().size()); - } - - - @Test - public void testFromEbXML() { - transformer.toEbXML(query, ebXML); - var result = new GetDocumentsAndAssociationsQuery(); - transformer.fromEbXML(result, ebXML); - - assertEquals(query, result); - } - - @Test - public void testFromEbXMLNull() { - var result = new GetDocumentsAndAssociationsQuery(); - transformer.fromEbXML(result, null); - assertEquals(new GetDocumentsAndAssociationsQuery(), result); - } - - @Test - public void testFromEbXMLEmpty() { - var result = new GetDocumentsAndAssociationsQuery(); - transformer.fromEbXML(result, ebXML); - assertEquals(new GetDocumentsAndAssociationsQuery(), result); + @Override + protected GetDocumentsAndAssociationsQuery emptyQuery() { + return new GetDocumentsAndAssociationsQuery(); } } diff --git a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/GetDocumentsQueryTransformerTest.java b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/GetDocumentsQueryTransformerTest.java index d56096a191..4e83e88f99 100644 --- a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/GetDocumentsQueryTransformerTest.java +++ b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/GetDocumentsQueryTransformerTest.java @@ -17,12 +17,12 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLAdhocQueryRequest; import org.openehealth.ipf.commons.ihe.xds.core.ebxml.ebxml30.EbXMLFactory30; import org.openehealth.ipf.commons.ihe.xds.core.requests.query.GetDocumentsQuery; import org.openehealth.ipf.commons.ihe.xds.core.requests.query.QueryList; import org.openehealth.ipf.commons.ihe.xds.core.requests.query.QueryType; import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryParameter; +import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query.AbstractQueryTransformerTest; import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query.GetDocumentsQueryTransformer; import java.util.Arrays; @@ -34,15 +34,12 @@ * Tests for {@link GetDocumentsQueryTransformer}. * @author Jens Riemschneider */ -public class GetDocumentsQueryTransformerTest { - private GetDocumentsQueryTransformer transformer; - private GetDocumentsQuery query; - private EbXMLAdhocQueryRequest ebXML; +public class GetDocumentsQueryTransformerTest extends AbstractQueryTransformerTest { @BeforeEach public void setUp() { - transformer = new GetDocumentsQueryTransformer(); - query = new GetDocumentsQuery(); + transformer = GetDocumentsQueryTransformer.getInstance(); + query = emptyQuery(); query.setUuids(Arrays.asList("uuid1", "uuid2")); query.setUniqueIds(Arrays.asList("uniqueId1", "uniqueId2")); @@ -90,48 +87,8 @@ public void testToEbXML() { assertEquals(6, ebXML.getSlots().size()); } - @Test - public void testRoundtrip() { - transformer.toEbXML(query, ebXML); - var otherQuery = new GetDocumentsQuery(); - transformer.fromEbXML(otherQuery, ebXML); - assertEquals(query, otherQuery); - } - - @Test - public void testToEbXMLNull() { - transformer.toEbXML(null, ebXML); - assertEquals(0, ebXML.getSlots().size()); - } - - @Test - public void testToEbXMLEmpty() { - transformer.toEbXML(new GetDocumentsQuery(), ebXML); - assertEquals(0, ebXML.getSlots().size()); - } - - - - @Test - public void testFromEbXML() { - transformer.toEbXML(query, ebXML); - var result = new GetDocumentsQuery(); - transformer.fromEbXML(result, ebXML); - - assertEquals(query, result); - } - - @Test - public void testFromEbXMLNull() { - var result = new GetDocumentsQuery(); - transformer.fromEbXML(result, null); - assertEquals(new GetDocumentsQuery(), result); - } - - @Test - public void testFromEbXMLEmpty() { - var result = new GetDocumentsQuery(); - transformer.fromEbXML(result, ebXML); - assertEquals(new GetDocumentsQuery(), result); + @Override + protected GetDocumentsQuery emptyQuery() { + return new GetDocumentsQuery(); } } diff --git a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/GetFolderAndContentsQueryTransformerTest.java b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/GetFolderAndContentsQueryTransformerTest.java index 8a721690ed..f5e59bd476 100644 --- a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/GetFolderAndContentsQueryTransformerTest.java +++ b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/GetFolderAndContentsQueryTransformerTest.java @@ -17,7 +17,6 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLAdhocQueryRequest; import org.openehealth.ipf.commons.ihe.xds.core.ebxml.ebxml30.EbXMLFactory30; import org.openehealth.ipf.commons.ihe.xds.core.metadata.Code; import org.openehealth.ipf.commons.ihe.xds.core.metadata.DocumentEntryType; @@ -25,6 +24,7 @@ import org.openehealth.ipf.commons.ihe.xds.core.requests.query.QueryList; import org.openehealth.ipf.commons.ihe.xds.core.requests.query.QueryType; import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryParameter; +import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query.AbstractQueryTransformerTest; import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query.GetDocumentsQueryTransformer; import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query.GetFolderAndContentsQueryTransformer; @@ -37,15 +37,12 @@ * Tests for {@link GetDocumentsQueryTransformer}. * @author Jens Riemschneider */ -public class GetFolderAndContentsQueryTransformerTest { - private GetFolderAndContentsQueryTransformer transformer; - private GetFolderAndContentsQuery query; - private EbXMLAdhocQueryRequest ebXML; +public class GetFolderAndContentsQueryTransformerTest extends AbstractQueryTransformerTest { @BeforeEach public void setUp() { - transformer = new GetFolderAndContentsQueryTransformer(); - query = new GetFolderAndContentsQuery(); + transformer = GetFolderAndContentsQueryTransformer.getInstance(); + query = emptyQuery(); query.setUuid("uuid1"); query.setUniqueId("uniqueId1"); @@ -88,41 +85,9 @@ public void testToEbXML() { assertEquals(6, ebXML.getSlots().size()); } - - @Test - public void testToEbXMLNull() { - transformer.toEbXML(null, ebXML); - assertEquals(0, ebXML.getSlots().size()); - } - - @Test - public void testToEbXMLEmpty() { - transformer.toEbXML(new GetFolderAndContentsQuery(), ebXML); - assertEquals(0, ebXML.getSlots().size()); - } - - - @Test - public void testFromEbXML() { - transformer.toEbXML(query, ebXML); - var result = new GetFolderAndContentsQuery(); - transformer.fromEbXML(result, ebXML); - - assertEquals(query, result); - } - - @Test - public void testFromEbXMLNull() { - var result = new GetFolderAndContentsQuery(); - transformer.fromEbXML(result, null); - assertEquals(new GetFolderAndContentsQuery(), result); - } - - @Test - public void testFromEbXMLEmpty() { - var result = new GetFolderAndContentsQuery(); - transformer.fromEbXML(result, ebXML); - assertEquals(new GetFolderAndContentsQuery(), result); + @Override + protected GetFolderAndContentsQuery emptyQuery() { + return new GetFolderAndContentsQuery(); } } diff --git a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/GetFoldersForDocumentQueryTransformerTest.java b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/GetFoldersForDocumentQueryTransformerTest.java index 4728e8356b..5d91bde492 100644 --- a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/GetFoldersForDocumentQueryTransformerTest.java +++ b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/GetFoldersForDocumentQueryTransformerTest.java @@ -21,7 +21,9 @@ import org.openehealth.ipf.commons.ihe.xds.core.ebxml.ebxml30.EbXMLFactory30; import org.openehealth.ipf.commons.ihe.xds.core.requests.query.GetFoldersForDocumentQuery; import org.openehealth.ipf.commons.ihe.xds.core.requests.query.QueryType; +import org.openehealth.ipf.commons.ihe.xds.core.stub.ebrs30.query.AdhocQueryRequest; import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryParameter; +import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query.AbstractQueryTransformerTest; import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query.GetFoldersForDocumentQueryTransformer; import java.util.Collections; @@ -32,15 +34,12 @@ * Tests for {@link GetFoldersForDocumentQueryTransformer}. * @author Jens Riemschneider */ -public class GetFoldersForDocumentQueryTransformerTest { - private GetFoldersForDocumentQueryTransformer transformer; - private GetFoldersForDocumentQuery query; - private EbXMLAdhocQueryRequest ebXML; +public class GetFoldersForDocumentQueryTransformerTest extends AbstractQueryTransformerTest { @BeforeEach public void setUp() { - transformer = new GetFoldersForDocumentQueryTransformer(); - query = new GetFoldersForDocumentQuery(); + transformer = GetFoldersForDocumentQueryTransformer.getInstance(); + query = emptyQuery(); query.setUuid("uuid1"); query.setUniqueId("uniqueId1"); @@ -63,41 +62,9 @@ public void testToEbXML() { assertEquals("home", ebXML.getHome()); assertEquals(2, ebXML.getSlots().size()); } - - @Test - public void testToEbXMLNull() { - transformer.toEbXML(null, ebXML); - assertEquals(0, ebXML.getSlots().size()); - } - - @Test - public void testToEbXMLEmpty() { - transformer.toEbXML(new GetFoldersForDocumentQuery(), ebXML); - assertEquals(0, ebXML.getSlots().size()); - } - - - @Test - public void testFromEbXML() { - transformer.toEbXML(query, ebXML); - var result = new GetFoldersForDocumentQuery(); - transformer.fromEbXML(result, ebXML); - - assertEquals(query, result); - } - - @Test - public void testFromEbXMLNull() { - var result = new GetFoldersForDocumentQuery(); - transformer.fromEbXML(result, null); - assertEquals(new GetFoldersForDocumentQuery(), result); - } - - @Test - public void testFromEbXMLEmpty() { - var result = new GetFoldersForDocumentQuery(); - transformer.fromEbXML(result, ebXML); - assertEquals(new GetFoldersForDocumentQuery(), result); + @Override + protected GetFoldersForDocumentQuery emptyQuery() { + return new GetFoldersForDocumentQuery(); } } diff --git a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/GetFoldersQueryTransformerTest.java b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/GetFoldersQueryTransformerTest.java index dea8dd477f..aa92632ef6 100644 --- a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/GetFoldersQueryTransformerTest.java +++ b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/GetFoldersQueryTransformerTest.java @@ -21,7 +21,9 @@ import org.openehealth.ipf.commons.ihe.xds.core.ebxml.ebxml30.EbXMLFactory30; import org.openehealth.ipf.commons.ihe.xds.core.requests.query.GetFoldersQuery; import org.openehealth.ipf.commons.ihe.xds.core.requests.query.QueryType; +import org.openehealth.ipf.commons.ihe.xds.core.stub.ebrs30.query.AdhocQueryRequest; import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryParameter; +import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query.AbstractQueryTransformerTest; import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query.GetFoldersQueryTransformer; import java.util.Arrays; @@ -32,15 +34,12 @@ * Tests for {@link GetFoldersQueryTransformer}. * @author Jens Riemschneider */ -public class GetFoldersQueryTransformerTest { - private GetFoldersQueryTransformer transformer; - private GetFoldersQuery query; - private EbXMLAdhocQueryRequest ebXML; +public class GetFoldersQueryTransformerTest extends AbstractQueryTransformerTest { @BeforeEach public void setUp() { - transformer = new GetFoldersQueryTransformer(); - query = new GetFoldersQuery(); + transformer = GetFoldersQueryTransformer.getInstance(); + query = emptyQuery(); query.setUuids(Arrays.asList("uuid1", "uuid2")); query.setUniqueIds(Arrays.asList("uniqueId1", "uniqueId2")); @@ -63,41 +62,9 @@ public void testToEbXML() { assertEquals("home", ebXML.getHome()); assertEquals(2, ebXML.getSlots().size()); } - - @Test - public void testToEbXMLNull() { - transformer.toEbXML(null, ebXML); - assertEquals(0, ebXML.getSlots().size()); - } - - @Test - public void testToEbXMLEmpty() { - transformer.toEbXML(new GetFoldersQuery(), ebXML); - assertEquals(0, ebXML.getSlots().size()); - } - - - @Test - public void testFromEbXML() { - transformer.toEbXML(query, ebXML); - var result = new GetFoldersQuery(); - transformer.fromEbXML(result, ebXML); - - assertEquals(query, result); - } - - @Test - public void testFromEbXMLNull() { - var result = new GetFoldersQuery(); - transformer.fromEbXML(result, null); - assertEquals(new GetFoldersQuery(), result); - } - - @Test - public void testFromEbXMLEmpty() { - var result = new GetFoldersQuery(); - transformer.fromEbXML(result, ebXML); - assertEquals(new GetFoldersQuery(), result); + @Override + protected GetFoldersQuery emptyQuery() { + return new GetFoldersQuery(); } } diff --git a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/GetRelatedDocumentsQueryTransformerTest.java b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/GetRelatedDocumentsQueryTransformerTest.java index e7286f4983..25ede1acf6 100644 --- a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/GetRelatedDocumentsQueryTransformerTest.java +++ b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/GetRelatedDocumentsQueryTransformerTest.java @@ -23,7 +23,9 @@ import org.openehealth.ipf.commons.ihe.xds.core.metadata.DocumentEntryType; import org.openehealth.ipf.commons.ihe.xds.core.requests.query.GetRelatedDocumentsQuery; import org.openehealth.ipf.commons.ihe.xds.core.requests.query.QueryType; +import org.openehealth.ipf.commons.ihe.xds.core.stub.ebrs30.query.AdhocQueryRequest; import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryParameter; +import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query.AbstractQueryTransformerTest; import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query.GetDocumentsQueryTransformer; import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query.GetRelatedDocumentsQueryTransformer; @@ -36,15 +38,12 @@ * Tests for {@link GetDocumentsQueryTransformer}. * @author Jens Riemschneider */ -public class GetRelatedDocumentsQueryTransformerTest { - private GetRelatedDocumentsQueryTransformer transformer; - private GetRelatedDocumentsQuery query; - private EbXMLAdhocQueryRequest ebXML; +public class GetRelatedDocumentsQueryTransformerTest extends AbstractQueryTransformerTest { @BeforeEach public void setUp() { - transformer = new GetRelatedDocumentsQueryTransformer(); - query = new GetRelatedDocumentsQuery(); + transformer = GetRelatedDocumentsQueryTransformer.getInstance(); + query = emptyQuery(); query.setUuid("uuid1"); query.setUniqueId("uniqueId1"); @@ -76,41 +75,9 @@ public void testToEbXML() { assertEquals(4, ebXML.getSlots().size()); } - - @Test - public void testToEbXMLNull() { - transformer.toEbXML(null, ebXML); - assertEquals(0, ebXML.getSlots().size()); - } - - @Test - public void testToEbXMLEmpty() { - transformer.toEbXML(new GetRelatedDocumentsQuery(), ebXML); - assertEquals(0, ebXML.getSlots().size()); - } - - - @Test - public void testFromEbXML() { - transformer.toEbXML(query, ebXML); - var result = new GetRelatedDocumentsQuery(); - transformer.fromEbXML(result, ebXML); - - assertEquals(query, result); - } - - @Test - public void testFromEbXMLNull() { - var result = new GetRelatedDocumentsQuery(); - transformer.fromEbXML(result, null); - assertEquals(new GetRelatedDocumentsQuery(), result); - } - - @Test - public void testFromEbXMLEmpty() { - var result = new GetRelatedDocumentsQuery(); - transformer.fromEbXML(result, ebXML); - assertEquals(new GetRelatedDocumentsQuery(), result); + @Override + protected GetRelatedDocumentsQuery emptyQuery() { + return new GetRelatedDocumentsQuery(); } } diff --git a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/GetSubmissionSetAndContentsQueryTransformerTest.java b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/GetSubmissionSetAndContentsQueryTransformerTest.java index cd49f7122d..dacbd93f4b 100644 --- a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/GetSubmissionSetAndContentsQueryTransformerTest.java +++ b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/GetSubmissionSetAndContentsQueryTransformerTest.java @@ -17,7 +17,6 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLAdhocQueryRequest; import org.openehealth.ipf.commons.ihe.xds.core.ebxml.ebxml30.EbXMLFactory30; import org.openehealth.ipf.commons.ihe.xds.core.metadata.Code; import org.openehealth.ipf.commons.ihe.xds.core.metadata.DocumentEntryType; @@ -25,6 +24,7 @@ import org.openehealth.ipf.commons.ihe.xds.core.requests.query.QueryList; import org.openehealth.ipf.commons.ihe.xds.core.requests.query.QueryType; import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryParameter; +import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query.AbstractQueryTransformerTest; import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query.GetDocumentsQueryTransformer; import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query.GetSubmissionSetAndContentsQueryTransformer; @@ -37,15 +37,12 @@ * Tests for {@link GetDocumentsQueryTransformer}. * @author Jens Riemschneider */ -public class GetSubmissionSetAndContentsQueryTransformerTest { - private GetSubmissionSetAndContentsQueryTransformer transformer; - private GetSubmissionSetAndContentsQuery query; - private EbXMLAdhocQueryRequest ebXML; +public class GetSubmissionSetAndContentsQueryTransformerTest extends AbstractQueryTransformerTest { @BeforeEach public void setUp() { - transformer = new GetSubmissionSetAndContentsQueryTransformer(); - query = new GetSubmissionSetAndContentsQuery(); + transformer = GetSubmissionSetAndContentsQueryTransformer.getInstance(); + query = emptyQuery(); query.setUuid("uuid1"); query.setUniqueId("uniqueId1"); @@ -88,41 +85,9 @@ public void testToEbXML() { assertEquals(6, ebXML.getSlots().size()); } - - @Test - public void testToEbXMLNull() { - transformer.toEbXML(null, ebXML); - assertEquals(0, ebXML.getSlots().size()); - } - - @Test - public void testToEbXMLEmpty() { - transformer.toEbXML(new GetSubmissionSetAndContentsQuery(), ebXML); - assertEquals(0, ebXML.getSlots().size()); - } - - - @Test - public void testFromEbXML() { - transformer.toEbXML(query, ebXML); - var result = new GetSubmissionSetAndContentsQuery(); - transformer.fromEbXML(result, ebXML); - - assertEquals(query, result); - } - - @Test - public void testFromEbXMLNull() { - var result = new GetSubmissionSetAndContentsQuery(); - transformer.fromEbXML(result, null); - assertEquals(new GetSubmissionSetAndContentsQuery(), result); - } - - @Test - public void testFromEbXMLEmpty() { - var result = new GetSubmissionSetAndContentsQuery(); - transformer.fromEbXML(result, ebXML); - assertEquals(new GetSubmissionSetAndContentsQuery(), result); + @Override + protected GetSubmissionSetAndContentsQuery emptyQuery() { + return new GetSubmissionSetAndContentsQuery(); } } diff --git a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/GetSubmissionSetsQueryTransformerTest.java b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/GetSubmissionSetsQueryTransformerTest.java index 8afe97aef4..490b6d2ba1 100644 --- a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/GetSubmissionSetsQueryTransformerTest.java +++ b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/GetSubmissionSetsQueryTransformerTest.java @@ -17,11 +17,11 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLAdhocQueryRequest; import org.openehealth.ipf.commons.ihe.xds.core.ebxml.ebxml30.EbXMLFactory30; import org.openehealth.ipf.commons.ihe.xds.core.requests.query.GetSubmissionSetsQuery; import org.openehealth.ipf.commons.ihe.xds.core.requests.query.QueryType; import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryParameter; +import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query.AbstractQueryTransformerTest; import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query.GetSubmissionSetsQueryTransformer; import java.util.Arrays; @@ -32,15 +32,12 @@ * Tests for {@link GetSubmissionSetsQueryTransformer}. * @author Jens Riemschneider */ -public class GetSubmissionSetsQueryTransformerTest { - private GetSubmissionSetsQueryTransformer transformer; - private GetSubmissionSetsQuery query; - private EbXMLAdhocQueryRequest ebXML; +public class GetSubmissionSetsQueryTransformerTest extends AbstractQueryTransformerTest { @BeforeEach public void setUp() { - transformer = new GetSubmissionSetsQueryTransformer(); - query = new GetSubmissionSetsQuery(); + transformer = GetSubmissionSetsQueryTransformer.getInstance(); + query = emptyQuery(); query.setUuids(Arrays.asList("uuid1", "uuid2")); query.setHomeCommunityId("home"); @@ -59,41 +56,9 @@ public void testToEbXML() { assertEquals("home", ebXML.getHome()); assertEquals(1, ebXML.getSlots().size()); } - - @Test - public void testToEbXMLNull() { - transformer.toEbXML(null, ebXML); - assertEquals(0, ebXML.getSlots().size()); - } - - @Test - public void testToEbXMLEmpty() { - transformer.toEbXML(new GetSubmissionSetsQuery(), ebXML); - assertEquals(0, ebXML.getSlots().size()); - } - - - @Test - public void testFromEbXML() { - transformer.toEbXML(query, ebXML); - var result = new GetSubmissionSetsQuery(); - transformer.fromEbXML(result, ebXML); - - assertEquals(query, result); - } - - @Test - public void testFromEbXMLNull() { - var result = new GetSubmissionSetsQuery(); - transformer.fromEbXML(result, null); - assertEquals(new GetSubmissionSetsQuery(), result); - } - - @Test - public void testFromEbXMLEmpty() { - var result = new GetSubmissionSetsQuery(); - transformer.fromEbXML(result, ebXML); - assertEquals(new GetSubmissionSetsQuery(), result); + @Override + protected GetSubmissionSetsQuery emptyQuery() { + return new GetSubmissionSetsQuery(); } } diff --git a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/RetrieveImagingDocumentSetRequestTransformerTest.java b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/RetrieveImagingDocumentSetRequestTransformerTest.java index f3430daa0a..be82a59a4c 100644 --- a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/RetrieveImagingDocumentSetRequestTransformerTest.java +++ b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/RetrieveImagingDocumentSetRequestTransformerTest.java @@ -67,8 +67,8 @@ public void testToEbXML() { assertEquals("repo2", doc.getRepositoryUniqueId()); var transferSyntaxUIds = ebXML.getTransferSyntaxUIDList(); - assertEquals(true, transferSyntaxUIds.contains("1.2.840.10008.1.2.4.64"), "1.2.840.10008.1.2.4.64"); - assertEquals(true, transferSyntaxUIds.contains("1.2.840.10008.1.2.4.70"), "1.2.840.10008.1.2.4.70"); + assertTrue(transferSyntaxUIds.contains("1.2.840.10008.1.2.4.64"), "1.2.840.10008.1.2.4.64"); + assertTrue(transferSyntaxUIds.contains("1.2.840.10008.1.2.4.70"), "1.2.840.10008.1.2.4.70"); } @Test diff --git a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/SubscriptionForDocumentEntryQueryTransformerTest.java b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/SubscriptionForDocumentEntryQueryTransformerTest.java new file mode 100644 index 0000000000..05ccdeb7b0 --- /dev/null +++ b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/SubscriptionForDocumentEntryQueryTransformerTest.java @@ -0,0 +1,73 @@ +/* + * Copyright 2023 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.openehealth.ipf.commons.ihe.xds.core.transform.requests.ebxml30; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.openehealth.ipf.commons.ihe.xds.core.SampleData; +import org.openehealth.ipf.commons.ihe.xds.core.ebxml.ebxml30.EbXMLFactory30; +import org.openehealth.ipf.commons.ihe.xds.core.requests.query.QueryType; +import org.openehealth.ipf.commons.ihe.xds.core.requests.query.SubscriptionForDocumentEntryQuery; +import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryParameter; +import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query.AbstractQueryTransformerTest; +import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query.SubscriptionForDocumentEntryQueryTransformer; + +import java.util.Arrays; +import java.util.Collections; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +/** + * Tests for {@link SubscriptionForDocumentEntryQueryTransformer}. + * @author Christian Ohr + */ +public class SubscriptionForDocumentEntryQueryTransformerTest extends AbstractQueryTransformerTest { + + + @BeforeEach + public void setUp() { + transformer = SubscriptionForDocumentEntryQueryTransformer.getInstance(); + query = (SubscriptionForDocumentEntryQuery) SampleData.createSubscriptionForDocumentEntryQuery().getQuery(); + ebXML = new EbXMLFactory30().createAdhocQueryRequest(); + } + + @Test + public void testToEbXML() { + transformer.toEbXML(query, ebXML); + + assertEquals(QueryType.SUBSCRIPTION_FOR_DOCUMENT_ENTRY.getId(), ebXML.getId()); + assertEquals("12.21.41", ebXML.getHome()); + assertEquals(Collections.singletonList("'id3^^^&1.3&ISO'"), + ebXML.getSlotValues(QueryParameter.DOC_ENTRY_PATIENT_ID.getSlotName())); + + var referenceIdSlots = ebXML.getSlots(QueryParameter.DOC_ENTRY_REFERENCE_IDS.getSlotName()); + assertEquals(2, referenceIdSlots.size()); + assertEquals(Arrays.asList( + "('ref-id-11^^^&1.1.1.1&ISO^urn:ihe:iti:xds:2013:uniqueId')", + "('ref-id-12^^^^urn:ihe:iti:xdw:2013:workflowInstanceId')", + "('ref-id-13^^^^urn:ihe:iti:xds:2013:referral')"), + referenceIdSlots.get(0).getValueList()); + assertEquals(Arrays.asList( + "('ref-id-21^^^&1.1.1.2&ISO^urn:ihe:iti:xds:2013:accession')", + "('ref-id-22^^^^urn:ihe:iti:xds:2013:order')"), + referenceIdSlots.get(1).getValueList()); + } + + @Override + protected SubscriptionForDocumentEntryQuery emptyQuery() { + return new SubscriptionForDocumentEntryQuery(); + } +} diff --git a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/SubscriptionForFolderQueryTransformerTest.java b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/SubscriptionForFolderQueryTransformerTest.java new file mode 100644 index 0000000000..77dd64330b --- /dev/null +++ b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/SubscriptionForFolderQueryTransformerTest.java @@ -0,0 +1,41 @@ +package org.openehealth.ipf.commons.ihe.xds.core.transform.requests.ebxml30; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.openehealth.ipf.commons.ihe.xds.core.SampleData; +import org.openehealth.ipf.commons.ihe.xds.core.ebxml.ebxml30.EbXMLFactory30; +import org.openehealth.ipf.commons.ihe.xds.core.requests.query.QueryType; +import org.openehealth.ipf.commons.ihe.xds.core.requests.query.SubscriptionForFolderQuery; +import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryParameter; +import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query.AbstractQueryTransformerTest; +import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query.SubscriptionForFolderQueryTransformer; + +import java.util.Collections; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +public class SubscriptionForFolderQueryTransformerTest extends AbstractQueryTransformerTest { + + @BeforeEach + public void setUp() { + transformer = SubscriptionForFolderQueryTransformer.getInstance(); + query = (SubscriptionForFolderQuery) SampleData.createSubscriptionForFolderQuery().getQuery(); + ebXML = new EbXMLFactory30().createAdhocQueryRequest(); + } + + @Test + public void testToEbXML() { + transformer.toEbXML(query, ebXML); + + assertEquals(QueryType.SUBSCRIPTION_FOR_FOLDER.getId(), ebXML.getId()); + assertEquals(Collections.singletonList("'st3498702^^^&1.3.6.1.4.1.21367.2005.3.7&ISO'"), + ebXML.getSlotValues(QueryParameter.FOLDER_PATIENT_ID.getSlotName())); + var folderCodeSlotValues = ebXML.getSlotValues(QueryParameter.FOLDER_CODES.getSlotName()); + assertEquals(Collections.singletonList("('FolderCodeExample^^folderCodeListCodingScheme')"), folderCodeSlotValues); + } + + @Override + protected SubscriptionForFolderQuery emptyQuery() { + return new SubscriptionForFolderQuery(); + } +} diff --git a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/SubscriptionForPatientIndependentDocumentEntryQueryTransformerTest.java b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/SubscriptionForPatientIndependentDocumentEntryQueryTransformerTest.java new file mode 100644 index 0000000000..87751474c0 --- /dev/null +++ b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/SubscriptionForPatientIndependentDocumentEntryQueryTransformerTest.java @@ -0,0 +1,40 @@ +package org.openehealth.ipf.commons.ihe.xds.core.transform.requests.ebxml30; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.openehealth.ipf.commons.ihe.xds.core.SampleData; +import org.openehealth.ipf.commons.ihe.xds.core.ebxml.ebxml30.EbXMLFactory30; +import org.openehealth.ipf.commons.ihe.xds.core.requests.query.QueryType; +import org.openehealth.ipf.commons.ihe.xds.core.requests.query.SubscriptionForPatientIndependentDocumentEntryQuery; +import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryParameter; +import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query.AbstractQueryTransformerTest; +import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query.SubscriptionForPatientIndependentDocumentEntryQueryTransformer; + +import java.util.List; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +public class SubscriptionForPatientIndependentDocumentEntryQueryTransformerTest + extends AbstractQueryTransformerTest { + + @BeforeEach + public void setUp() { + transformer = SubscriptionForPatientIndependentDocumentEntryQueryTransformer.getInstance(); + query = (SubscriptionForPatientIndependentDocumentEntryQuery) SampleData.createSubscriptionForPatientIndependentDocumentEntryQuery().getQuery(); + ebXML = new EbXMLFactory30().createAdhocQueryRequest(); + } + + @Test + public void testToEbXML() { + transformer.toEbXML(query, ebXML); + + assertEquals(QueryType.SUBSCRIPTION_FOR_PATIENT_INDEPENDENT_DOCUMENT_ENTRY.getId(), ebXML.getId()); + var healthCareFacilityTypeCodes = ebXML.getSlotValues(QueryParameter.DOC_ENTRY_HEALTHCARE_FACILITY_TYPE_CODE.getSlotName()); + assertEquals(List.of("('Emergency Department^^healthcareFacilityCodingScheme')"), healthCareFacilityTypeCodes); + } + + @Override + protected SubscriptionForPatientIndependentDocumentEntryQuery emptyQuery() { + return new SubscriptionForPatientIndependentDocumentEntryQuery(); + } +} diff --git a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/SubscriptionForPatientIndependentSubmissionSetQueryTransformerTest.java b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/SubscriptionForPatientIndependentSubmissionSetQueryTransformerTest.java new file mode 100644 index 0000000000..b9e62440fe --- /dev/null +++ b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/SubscriptionForPatientIndependentSubmissionSetQueryTransformerTest.java @@ -0,0 +1,41 @@ +package org.openehealth.ipf.commons.ihe.xds.core.transform.requests.ebxml30; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.openehealth.ipf.commons.ihe.xds.core.SampleData; +import org.openehealth.ipf.commons.ihe.xds.core.ebxml.ebxml30.EbXMLFactory30; +import org.openehealth.ipf.commons.ihe.xds.core.requests.query.QueryType; +import org.openehealth.ipf.commons.ihe.xds.core.requests.query.SubscriptionForPatientIndependentSubmissionSetQuery; +import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryParameter; +import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query.AbstractQueryTransformerTest; +import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query.SubscriptionForPatientIndependentSubmissionSetQueryTransformer; + +import java.util.List; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +public class SubscriptionForPatientIndependentSubmissionSetQueryTransformerTest extends AbstractQueryTransformerTest { + + @BeforeEach + public void setUp() { + transformer = SubscriptionForPatientIndependentSubmissionSetQueryTransformer.getInstance(); + query = (SubscriptionForPatientIndependentSubmissionSetQuery) SampleData.createSubscriptionForPatientIndependentSubmissionSetQuery().getQuery(); + ebXML = new EbXMLFactory30().createAdhocQueryRequest(); + } + + @Test + public void testToEbXML() { + transformer.toEbXML(query, ebXML); + + assertEquals(QueryType.SUBSCRIPTION_FOR_PATIENT_INDEPENDENT_SUBMISSION_SET.getId(), ebXML.getId()); + var intendedRecipients = ebXML.getSlotValues(QueryParameter.SUBMISSION_SET_INTENDED_RECIPIENT.getSlotName()); + assertEquals(List.of("('Some Hospital%')", "('|Welby%')"), intendedRecipients); + var sourceIds = ebXML.getSlotValues(QueryParameter.SUBMISSION_SET_SOURCE_ID.getSlotName()); + assertEquals(List.of("('1.2.5.7.8')"), sourceIds); + } + + @Override + protected SubscriptionForPatientIndependentSubmissionSetQuery emptyQuery() { + return new SubscriptionForPatientIndependentSubmissionSetQuery(); + } +} diff --git a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/SubscriptionForSubmissionSetQueryTransformerTest.java b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/SubscriptionForSubmissionSetQueryTransformerTest.java new file mode 100644 index 0000000000..6b83fb9945 --- /dev/null +++ b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/ebxml30/SubscriptionForSubmissionSetQueryTransformerTest.java @@ -0,0 +1,42 @@ +package org.openehealth.ipf.commons.ihe.xds.core.transform.requests.ebxml30; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.openehealth.ipf.commons.ihe.xds.core.SampleData; +import org.openehealth.ipf.commons.ihe.xds.core.ebxml.ebxml30.EbXMLFactory30; +import org.openehealth.ipf.commons.ihe.xds.core.requests.query.QueryType; +import org.openehealth.ipf.commons.ihe.xds.core.requests.query.SubscriptionForSubmissionSetQuery; +import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryParameter; +import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query.AbstractQueryTransformerTest; +import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query.SubscriptionForSubmissionSetQueryTransformer; + +import java.util.Collections; +import java.util.List; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +public class SubscriptionForSubmissionSetQueryTransformerTest extends AbstractQueryTransformerTest { + + @BeforeEach + public void setUp() { + transformer = SubscriptionForSubmissionSetQueryTransformer.getInstance(); + query = (SubscriptionForSubmissionSetQuery) SampleData.createSubscriptionForSubmissionSetQuery().getQuery(); + ebXML = new EbXMLFactory30().createAdhocQueryRequest(); + } + + @Test + public void testToEbXML() { + transformer.toEbXML(query, ebXML); + + assertEquals(QueryType.SUBSCRIPTION_FOR_SUBMISSION_SET.getId(), ebXML.getId()); + assertEquals(Collections.singletonList("'st3498702^^^&1.3.6.1.4.1.21367.2005.3.7&ISO'"), + ebXML.getSlotValues(QueryParameter.SUBMISSION_SET_PATIENT_ID.getSlotName())); + var intendedRecipients = ebXML.getSlotValues(QueryParameter.SUBMISSION_SET_INTENDED_RECIPIENT.getSlotName()); + assertEquals(List.of("('Some Hospital%')", "('|Welby%')"), intendedRecipients); + } + + @Override + protected SubscriptionForSubmissionSetQuery emptyQuery() { + return new SubscriptionForSubmissionSetQuery(); + } +} diff --git a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/AbstractQueryTransformerTest.java b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/AbstractQueryTransformerTest.java new file mode 100644 index 0000000000..6a56f9c76d --- /dev/null +++ b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/requests/query/AbstractQueryTransformerTest.java @@ -0,0 +1,51 @@ +package org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query; + +import org.junit.jupiter.api.Test; +import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLAdhocQueryRequest; +import org.openehealth.ipf.commons.ihe.xds.core.requests.query.StoredQuery; +import org.openehealth.ipf.commons.ihe.xds.core.stub.ebrs30.query.AdhocQueryRequest; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +public abstract class AbstractQueryTransformerTest> { + + protected Q query; + protected T transformer; + protected EbXMLAdhocQueryRequest ebXML; + + @Test + public void testToEbXMLNull() { + transformer.toEbXML(null, ebXML); + assertEquals(0, ebXML.getSlots().size()); + } + + @Test + public void testToEbXMLEmpty() { + transformer.toEbXML(emptyQuery(), ebXML); + assertEquals(0, ebXML.getSlots().size()); + } + + @Test + public void testFromEbXML() { + transformer.toEbXML(query, ebXML); + var result = emptyQuery(); + transformer.fromEbXML(result, ebXML); + assertEquals(query, result); + } + + @Test + public void testFromEbXMLNull() { + var result = emptyQuery(); + transformer.fromEbXML(result, (EbXMLAdhocQueryRequest)null); + assertEquals(emptyQuery(), result); + } + + @Test + public void testFromEbXMLEmpty() { + var result = emptyQuery(); + transformer.fromEbXML(result, ebXML); + assertEquals(emptyQuery(), result); + } + + protected abstract Q emptyQuery(); +} diff --git a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/responses/ResponseTransformerTestBase.java b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/responses/ResponseTransformerTestBase.java index e05e1b02c6..e3b3684cb8 100644 --- a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/responses/ResponseTransformerTestBase.java +++ b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/responses/ResponseTransformerTestBase.java @@ -61,7 +61,7 @@ public void testToEbXMLRegistryResponse() { assertEquals("context2", error.getCodeContext()); assertEquals(ErrorCode.SQL_ERROR.getOpcode(), error.getErrorCode()); assertEquals(Severity.WARNING, error.getSeverity()); - assertEquals(null, error.getLocation()); + assertNull(error.getLocation()); error = errors.get(2); assertEquals("context3", error.getCodeContext()); diff --git a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/responses/ebxml30/RetrieveDocumentSetResponseTransformerTest.java b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/responses/ebxml30/RetrieveDocumentSetResponseTransformerTest.java index cc9b86a525..94be8c68c2 100644 --- a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/responses/ebxml30/RetrieveDocumentSetResponseTransformerTest.java +++ b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/transform/responses/ebxml30/RetrieveDocumentSetResponseTransformerTest.java @@ -38,7 +38,7 @@ public class RetrieveDocumentSetResponseTransformerTest { private DataHandler dataHandler2; @BeforeEach - public void setUp() throws Exception { + public void setUp() { EbXMLFactory factory = new EbXMLFactory30(); transformer = new RetrieveDocumentSetResponseTransformer(factory); diff --git a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/validate/ClassificationDisplayNameValidatorTest.java b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/validate/ClassificationDisplayNameValidatorTest.java index 559cdea7f9..db40072efb 100644 --- a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/validate/ClassificationDisplayNameValidatorTest.java +++ b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/validate/ClassificationDisplayNameValidatorTest.java @@ -48,7 +48,7 @@ public class ClassificationDisplayNameValidatorTest { private EbXMLExtrinsicObject extrinsicObject; @BeforeEach - public void setUp() throws Exception { + public void setUp() { var ebXMLObject = createProvideAndRegisterDocumentSetRequest(); extrinsicObject = ebXMLObject.getExtrinsicObjects().get(0); } @@ -102,7 +102,7 @@ private ClassificationValidation buildEventListValidator(){ } - private EbXMLProvideAndRegisterDocumentSetRequest createProvideAndRegisterDocumentSetRequest() { + private EbXMLProvideAndRegisterDocumentSetRequest createProvideAndRegisterDocumentSetRequest() { EbXMLFactory factory = new EbXMLFactory30(); var request = SampleData.createProvideAndRegisterDocumentSet(); var transformer = new ProvideAndRegisterDocumentSetTransformer(factory); @@ -113,12 +113,12 @@ private EbXMLProvideAndRegisterDocumentSetRequest createProvideAndRegisterDocume * @param ebXML ebXML object */ @SuppressWarnings("unused") - private void marshalEbXML(EbXMLProvideAndRegisterDocumentSetRequest ebXML) { + private void marshalEbXML(EbXMLProvideAndRegisterDocumentSetRequest ebXML) { try { var context = JAXBContext.newInstance("org.openehealth.ipf.commons.ihe.xds.core.stub.ebrs30.rs"); var marshaller = context.createMarshaller(); var outputStream = new ByteArrayOutputStream(); - var request = (ProvideAndRegisterDocumentSetRequestType) ebXML.getInternal(); + var request = ebXML.getInternal(); marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); marshaller.marshal(request.getSubmitObjectsRequest(), outputStream); // System.out.println(new String(outputStream.toByteArray())); diff --git a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/validate/SlotLengthValidatorTest.java b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/validate/SlotLengthValidatorTest.java index 191e4e634e..169b62899c 100644 --- a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/validate/SlotLengthValidatorTest.java +++ b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/validate/SlotLengthValidatorTest.java @@ -35,14 +35,14 @@ public class SlotLengthValidatorTest { @Test public void testValidateGoodCase30() throws XDSMetaDataException { - new SlotLengthAndNameUniquenessValidator().validateContainer(createContainer(factory30, SLOT_VALUE_30, -1)); + SlotLengthAndNameUniquenessValidator.validateContainer(createContainer(factory30, SLOT_VALUE_30, -1)); } @Test public void testValidateTooLong30() throws XDSMetaDataException { for (var idx = 0; idx < 7; ++idx) { try { - new SlotLengthAndNameUniquenessValidator().validateContainer(createContainer(factory30, SLOT_VALUE_30, idx)); + SlotLengthAndNameUniquenessValidator.validateContainer(createContainer(factory30, SLOT_VALUE_30, idx)); fail("Expected exception: " + XDSMetaDataException.class + ", index=" + idx); } catch (XDSMetaDataException e) { // expected diff --git a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/validate/UUIDValidatorTest.java b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/validate/UUIDValidatorTest.java index 38613a2b19..7e4e4fd7d0 100644 --- a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/validate/UUIDValidatorTest.java +++ b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/validate/UUIDValidatorTest.java @@ -46,7 +46,7 @@ public void testValidateBadCases() throws XDSMetaDataException { @Test public void testGetAsUUID() throws URISyntaxException { var random = UUID.randomUUID(); - assertEquals(random, validator.getAsUUID("urn:uuid:" + random.toString()).get()); + assertEquals(random, validator.getAsUUID("urn:uuid:" + random).get()); assertEquals(random, validator.getAsUUID(new URI("urn", "uuid", random.toString())).get()); assertEquals(random, validator.getAsUUID(new URN(random)).get()); assertFalse(validator.getAsUUID("gablorg").isPresent()); diff --git a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/validate/query/StatusValidationTest.java b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/validate/query/StatusValidationTest.java index baf0ccdf4a..0dd5b01574 100644 --- a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/validate/query/StatusValidationTest.java +++ b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/validate/query/StatusValidationTest.java @@ -19,6 +19,7 @@ import org.openehealth.ipf.commons.ihe.xds.core.SampleData; import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLAdhocQueryRequest; import org.openehealth.ipf.commons.ihe.xds.core.metadata.AvailabilityStatus; +import org.openehealth.ipf.commons.ihe.xds.core.stub.ebrs30.query.AdhocQueryRequest; import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryParameter; import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryRegistryTransformer; import org.openehealth.ipf.commons.ihe.xds.core.validate.ValidationMessage; @@ -53,7 +54,7 @@ public void noStatusIsPresent() { expectValidationError(MISSING_REQUIRED_QUERY_PARAMETER, invalidQueryRequestWithStatus(null)); } - private void expectValidationError(ValidationMessage expectedError, EbXMLAdhocQueryRequest request) { + private void expectValidationError(ValidationMessage expectedError, EbXMLAdhocQueryRequest request) { try { validator.validate(request); fail("XDSMetaDataException expected"); @@ -62,7 +63,7 @@ private void expectValidationError(ValidationMessage expectedError, EbXMLAdhocQu } } - private EbXMLAdhocQueryRequest invalidQueryRequestWithStatus(String statusQuery) { + private EbXMLAdhocQueryRequest invalidQueryRequestWithStatus(String statusQuery) { var createFindDocumentsQuery = SampleData.createFindDocumentsQuery(); var ebXML = new QueryRegistryTransformer().toEbXML(createFindDocumentsQuery); var slotValues = ebXML.getSlotValues(QueryParameter.DOC_ENTRY_STATUS.getSlotName()); @@ -71,7 +72,7 @@ private EbXMLAdhocQueryRequest invalidQueryRequestWithStatus(String statusQuery) slotValues.add(statusQuery); return ebXML; } - private EbXMLAdhocQueryRequest validQueryRequestWithStatus() { + private EbXMLAdhocQueryRequest validQueryRequestWithStatus() { var createFindDocumentsQuery = SampleData.createFindDocumentsQuery(); return new QueryRegistryTransformer().toEbXML(createFindDocumentsQuery); } diff --git a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/validate/requests/AdhocQueryRequestValidatorTest.java b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/validate/requests/AdhocQueryRequestValidatorTest.java index b84540a3ca..d3ee48f807 100644 --- a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/validate/requests/AdhocQueryRequestValidatorTest.java +++ b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/validate/requests/AdhocQueryRequestValidatorTest.java @@ -25,6 +25,7 @@ import org.openehealth.ipf.commons.ihe.xds.core.requests.QueryRegistry; import org.openehealth.ipf.commons.ihe.xds.core.requests.query.*; import org.openehealth.ipf.commons.ihe.xds.core.responses.ErrorCode; +import org.openehealth.ipf.commons.ihe.xds.core.stub.ebrs30.query.AdhocQueryRequest; import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryParameter; import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryRegistryTransformer; import org.openehealth.ipf.commons.ihe.xds.core.validate.ValidationMessage; @@ -52,7 +53,7 @@ public class AdhocQueryRequestValidatorTest { @BeforeEach public void setUp() { - validator = new AdhocQueryRequestValidator(); + validator = AdhocQueryRequestValidator.getInstance(); transformer = new QueryRegistryTransformer(); request = SampleData.createFindDocumentsQuery(); requestMpq = SampleData.createFindDocumentsForMultiplePatientsQuery(); @@ -330,7 +331,7 @@ public void testDuplicateSlotForGetDocumentsQueryValidationWithFailure() { expectFailure(DUPLICATE_SLOT_NAME, ebXML, ITI_18); } - private void expectFailure(ValidationMessage expectedMessage, EbXMLAdhocQueryRequest request, ValidationProfile profile) { + private void expectFailure(ValidationMessage expectedMessage, EbXMLAdhocQueryRequest request, ValidationProfile profile) { try { validator.validate(request, profile); fail("Expected exception: " + XDSMetaDataException.class); diff --git a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/validate/requests/LimitedMetadataTest.java b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/validate/requests/LimitedMetadataTest.java index eca8158da7..7ae128937f 100644 --- a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/validate/requests/LimitedMetadataTest.java +++ b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/validate/requests/LimitedMetadataTest.java @@ -96,7 +96,7 @@ public void testXdmRequestValidation() { System.out.println(writer.toString()); */ - var validator = new SubmitObjectsRequestValidator(); + var validator = SubmitObjectsRequestValidator.getInstance(); validator.validate(ebXmlRequest, XDM.Interactions.ITI_41); } diff --git a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/validate/requests/NonconstructiveDocumentSetRequestValidatorTest.java b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/validate/requests/NonconstructiveDocumentSetRequestValidatorTest.java index 7ec9ba153c..e9744ebbb7 100644 --- a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/validate/requests/NonconstructiveDocumentSetRequestValidatorTest.java +++ b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/validate/requests/NonconstructiveDocumentSetRequestValidatorTest.java @@ -21,6 +21,7 @@ import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLFactory; import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLNonconstructiveDocumentSetRequest; import org.openehealth.ipf.commons.ihe.xds.core.ebxml.ebxml30.EbXMLFactory30; +import org.openehealth.ipf.commons.ihe.xds.core.ebxml.ebxml30.RetrieveDocumentSetRequestType; import org.openehealth.ipf.commons.ihe.xds.core.requests.DocumentReference; import org.openehealth.ipf.commons.ihe.xds.core.requests.RetrieveDocumentSet; import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.RetrieveDocumentSetRequestTransformer; @@ -44,7 +45,7 @@ public class NonconstructiveDocumentSetRequestValidatorTest { @BeforeEach public void setUp() { - validator = new NonconstructiveDocumentSetRequestValidator(); + validator = NonconstructiveDocumentSetRequestValidator.getInstance(); EbXMLFactory factory = new EbXMLFactory30(); transformer = new RetrieveDocumentSetRequestTransformer(factory); request = SampleData.createRetrieveDocumentSet(); @@ -69,7 +70,7 @@ public void testDocIdMustBeSpecified() { expectFailure(DOC_ID_MUST_BE_SPECIFIED, ebXML); } - private void expectFailure(ValidationMessage expectedMessage, EbXMLNonconstructiveDocumentSetRequest ebXML) { + private void expectFailure(ValidationMessage expectedMessage, EbXMLNonconstructiveDocumentSetRequest ebXML) { try { validator.validate(ebXML, ITI_43); fail("Expected exception: " + XDSMetaDataException.class); diff --git a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/validate/requests/ProvideAndRegisterDocumentSetRequestValidatorTest.java b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/validate/requests/ProvideAndRegisterDocumentSetRequestValidatorTest.java index 1f6466a0b4..50520edd14 100644 --- a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/validate/requests/ProvideAndRegisterDocumentSetRequestValidatorTest.java +++ b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/validate/requests/ProvideAndRegisterDocumentSetRequestValidatorTest.java @@ -21,6 +21,7 @@ import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLFactory; import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLProvideAndRegisterDocumentSetRequest; import org.openehealth.ipf.commons.ihe.xds.core.ebxml.ebxml30.EbXMLFactory30; +import org.openehealth.ipf.commons.ihe.xds.core.ebxml.ebxml30.ProvideAndRegisterDocumentSetRequestType; import org.openehealth.ipf.commons.ihe.xds.core.metadata.DocumentEntry; import org.openehealth.ipf.commons.ihe.xds.core.metadata.Organization; import org.openehealth.ipf.commons.ihe.xds.core.requests.ProvideAndRegisterDocumentSet; @@ -47,7 +48,7 @@ public class ProvideAndRegisterDocumentSetRequestValidatorTest { @BeforeEach public void setUp() { - validator = new ProvideAndRegisterDocumentSetRequestValidator(); + validator = ProvideAndRegisterDocumentSetRequestValidator.getInstance(); EbXMLFactory factory = new EbXMLFactory30(); request = SampleData.createProvideAndRegisterDocumentSet(); @@ -110,7 +111,7 @@ private void expectFailure(ValidationMessage expectedMessage) { expectFailure(expectedMessage, transformer.toEbXML(request), ITI_41); } - private void expectFailure(ValidationMessage expectedMessage, EbXMLProvideAndRegisterDocumentSetRequest ebXML, ValidationProfile profile) { + private void expectFailure(ValidationMessage expectedMessage, EbXMLProvideAndRegisterDocumentSetRequest ebXML, ValidationProfile profile) { try { validator.validate(ebXML, profile); fail("Expected exception: " + XDSMetaDataException.class); diff --git a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/validate/requests/RemoveMetadataRequestValidatorTest.java b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/validate/requests/RemoveMetadataRequestValidatorTest.java index c392115468..f40e182cd4 100644 --- a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/validate/requests/RemoveMetadataRequestValidatorTest.java +++ b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/validate/requests/RemoveMetadataRequestValidatorTest.java @@ -47,7 +47,7 @@ public class RemoveMetadataRequestValidatorTest { @BeforeEach public void setUp() { - validator = new RemoveMetadataRequestValidator(); + validator = RemoveMetadataRequestValidator.getInstance(); request = SampleData.createRemoveMetadata(); transformer = new RemoveMetadataRequestTransformer(); } @@ -73,7 +73,7 @@ public void testIssue150() { reference.setId(uuid); request.getObjectRefList().getObjectRef().add(reference); } - EbXMLRemoveMetadataRequest ebXml = new EbXMLRemoveMetadataRequest30(request); + var ebXml = new EbXMLRemoveMetadataRequest30(request); validator.validate(ebXml, ITI_62); } @@ -81,11 +81,11 @@ private void expectFailure(ValidationMessage expectedMessage) { expectFailure(expectedMessage, transformer.toEbXML(request)); } - private void expectFailure(ValidationMessage expectedMessage, EbXMLRemoveMetadataRequest ebXML) { + private void expectFailure(ValidationMessage expectedMessage, EbXMLRemoveMetadataRequest ebXML) { expectFailure(expectedMessage, ebXML, ITI_62); } - private void expectFailure(ValidationMessage expectedMessage, EbXMLRemoveMetadataRequest ebXML, ValidationProfile profile) { + private void expectFailure(ValidationMessage expectedMessage, EbXMLRemoveMetadataRequest ebXML, ValidationProfile profile) { try { validator.validate(ebXML, profile); fail("Expected exception: " + XDSMetaDataException.class); diff --git a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/validate/requests/RetrieveImagingDocumentSetRequestValidatorTest.java b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/validate/requests/RetrieveImagingDocumentSetRequestValidatorTest.java index 5119ed103b..71f66f5182 100644 --- a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/validate/requests/RetrieveImagingDocumentSetRequestValidatorTest.java +++ b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/validate/requests/RetrieveImagingDocumentSetRequestValidatorTest.java @@ -25,6 +25,7 @@ import org.openehealth.ipf.commons.ihe.xds.core.requests.RetrieveImagingDocumentSet; import org.openehealth.ipf.commons.ihe.xds.core.requests.RetrieveSeries; import org.openehealth.ipf.commons.ihe.xds.core.requests.RetrieveStudy; +import org.openehealth.ipf.commons.ihe.xds.core.stub.xdsi.RetrieveImagingDocumentSetRequestType; import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.RetrieveImagingDocumentSetRequestTransformer; import org.openehealth.ipf.commons.ihe.xds.core.validate.ValidationMessage; import org.openehealth.ipf.commons.ihe.xds.core.validate.XDSMetaDataException; @@ -48,7 +49,7 @@ public class RetrieveImagingDocumentSetRequestValidatorTest @BeforeEach public void setUp() { - validator = new RetrieveImagingDocumentSetRequestValidator(); + validator = RetrieveImagingDocumentSetRequestValidator.getInstance(); EbXMLFactory factory = new EbXMLFactory30(); transformer = new RetrieveImagingDocumentSetRequestTransformer(factory); request = SampleData.createRetrieveImagingDocumentSet(); @@ -103,7 +104,7 @@ public void testDocIdMustBeSpecified() { expectFailure(DOC_ID_MUST_BE_SPECIFIED, ebXML); } - private void expectFailure(ValidationMessage expectedMessage, EbXMLRetrieveImagingDocumentSetRequest ebXML) { + private void expectFailure(ValidationMessage expectedMessage, EbXMLRetrieveImagingDocumentSetRequest ebXML) { try { validator.validate(ebXML, RAD_69); fail("Expected exception: " + XDSMetaDataException.class); diff --git a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/validate/requests/SubmitObjectsRequestForUpdateValidatorTest.java b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/validate/requests/SubmitObjectsRequestForUpdateValidatorTest.java index e8aaaf0a9e..8b5d454298 100644 --- a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/validate/requests/SubmitObjectsRequestForUpdateValidatorTest.java +++ b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/validate/requests/SubmitObjectsRequestForUpdateValidatorTest.java @@ -38,7 +38,7 @@ * @author Boris Stanojevic */ public class SubmitObjectsRequestForUpdateValidatorTest { - private SubmitObjectsRequestValidator validator = new SubmitObjectsRequestValidator(); + private final SubmitObjectsRequestValidator validator = SubmitObjectsRequestValidator.getInstance(); @Test public void testOKFromRealEbXML() throws Exception { @@ -66,7 +66,7 @@ public void testNonStandardAssociationType() throws Exception { validator.validate(request, ITI_57); } - private void expectXdsMetadataException(ValidationMessage expectedMessage, EbXMLSubmitObjectsRequest ebXML, ValidationProfile profile) { + private void expectXdsMetadataException(ValidationMessage expectedMessage, EbXMLSubmitObjectsRequest ebXML, ValidationProfile profile) { try { validator.validate(ebXML, profile); fail("Expected exception: " + XDSMetaDataException.class); @@ -76,7 +76,7 @@ private void expectXdsMetadataException(ValidationMessage expectedMessage, EbXML } } - private void expectXdsRuntimeException(ErrorCode expectedErrorCode, EbXMLSubmitObjectsRequest ebXML, ValidationProfile profile) { + private void expectXdsRuntimeException(ErrorCode expectedErrorCode, EbXMLSubmitObjectsRequest ebXML, ValidationProfile profile) { try { validator.validate(ebXML, profile); fail("Expected exception: " + XdsRuntimeException.class); diff --git a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/validate/requests/SubmitObjectsRequestValidatorTest.java b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/validate/requests/SubmitObjectsRequestValidatorTest.java index 5f7326241f..a0d703f8b3 100644 --- a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/validate/requests/SubmitObjectsRequestValidatorTest.java +++ b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/validate/requests/SubmitObjectsRequestValidatorTest.java @@ -24,6 +24,7 @@ import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLSubmitObjectsRequest; import org.openehealth.ipf.commons.ihe.xds.core.ebxml.ebxml30.EbXMLFactory30; import org.openehealth.ipf.commons.ihe.xds.core.ebxml.ebxml30.EbXMLSlot30; +import org.openehealth.ipf.commons.ihe.xds.core.ebxml.ebxml30.ProvideAndRegisterDocumentSetRequestType; import org.openehealth.ipf.commons.ihe.xds.core.metadata.*; import org.openehealth.ipf.commons.ihe.xds.core.requests.ProvideAndRegisterDocumentSet; import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.ProvideAndRegisterDocumentSetTransformer; @@ -53,7 +54,7 @@ public class SubmitObjectsRequestValidatorTest { @BeforeEach public void setUp() { - validator = new SubmitObjectsRequestValidator(); + validator = SubmitObjectsRequestValidator.getInstance(); factory = new EbXMLFactory30(); request = SampleData.createProvideAndRegisterDocumentSet(); @@ -256,8 +257,7 @@ public void testRequiredNodeRepresentationIsNull() { ebXML.getExtrinsicObjects().get(0).getClassifications().stream() .filter(x -> !isAuthorClassification(x)) .findAny() - .get() - .setNodeRepresentation(null); + .ifPresent(e -> e.setNodeRepresentation(null)); expectFailure(NODE_REPRESENTATION_MISSING, ebXML); } @@ -276,9 +276,9 @@ public void testRequiredNodeRepresentationIsEmpty() { public void testProhibitedNodeRepresentationIsNotEmpty() { var ebXML = transformer.toEbXML(request); var classification = ebXML.getExtrinsicObjects().get(0).getClassifications().stream() - .filter(x -> isAuthorClassification(x)) + .filter(SubmitObjectsRequestValidatorTest::isAuthorClassification) .findAny() - .get(); + .orElseThrow(AssertionError::new); classification.setNodeRepresentation(null); validator.validate(ebXML, ITI_42); @@ -507,7 +507,7 @@ public void testFolderUpdateTimeLowPrecision() { public void testAuthorValidation() { request.getSubmissionSet().getAuthors().clear(); var ebXml = transformer.toEbXML(request); - new ObjectContainerValidator().validate(ebXml, ITI_42); + ObjectContainerValidator.getInstance().validate(ebXml, ITI_42); var author = new Author(); author.getAuthorRole().add(new Identifiable("clown", new AssigningAuthority("1.3.14.15", "ISO"))); @@ -516,7 +516,7 @@ public void testAuthorValidation() { var failed = false; try { - new ObjectContainerValidator().validate(ebXml, ITI_42); + ObjectContainerValidator.getInstance().validate(ebXml, ITI_42); } catch (XDSMetaDataException e) { failed = true; } @@ -536,11 +536,11 @@ private void expectFailure(ValidationMessage expectedMessage) { expectFailure(expectedMessage, transformer.toEbXML(request)); } - private void expectFailure(ValidationMessage expectedMessage, EbXMLSubmitObjectsRequest ebXML) { + private void expectFailure(ValidationMessage expectedMessage, EbXMLSubmitObjectsRequest ebXML) { expectFailure(expectedMessage, ebXML, ITI_42); } - private void expectFailure(ValidationMessage expectedMessage, EbXMLSubmitObjectsRequest ebXML, ValidationProfile profile) { + private void expectFailure(ValidationMessage expectedMessage, EbXMLSubmitObjectsRequest ebXML, ValidationProfile profile) { try { validator.validate(ebXML, profile); fail("Expected exception: " + XDSMetaDataException.class); diff --git a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/validate/requests/XcdrRequestTest.java b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/validate/requests/XcdrRequestTest.java index d1fa2214ff..699883d965 100644 --- a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/validate/requests/XcdrRequestTest.java +++ b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/validate/requests/XcdrRequestTest.java @@ -20,6 +20,7 @@ import org.openehealth.ipf.commons.ihe.xds.core.SampleData; import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLProvideAndRegisterDocumentSetRequest; import org.openehealth.ipf.commons.ihe.xds.core.ebxml.ebxml30.EbXMLFactory30; +import org.openehealth.ipf.commons.ihe.xds.core.ebxml.ebxml30.ProvideAndRegisterDocumentSetRequestType; import org.openehealth.ipf.commons.ihe.xds.core.metadata.Identifiable; import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.ProvideAndRegisterDocumentSetTransformer; import org.openehealth.ipf.commons.ihe.xds.core.validate.ValidationMessage; @@ -43,17 +44,14 @@ public class XcdrRequestTest { @BeforeEach public void before() { - validator = new ProvideAndRegisterDocumentSetRequestValidator(); + validator = ProvideAndRegisterDocumentSetRequestValidator.getInstance(); transformer = new ProvideAndRegisterDocumentSetTransformer(new EbXMLFactory30()); } @Test public void testPatientIdValidationXcdr() { var request = SampleData.createProvideAndRegisterDocumentSet(); - EbXMLProvideAndRegisterDocumentSetRequest ebXml; - - // correct patient ID --> both ITI-41 and ITI-80 are happy - ebXml = transformer.toEbXML(request); + var ebXml = transformer.toEbXML(request); validator.validate(ebXml, ITI_41); validator.validate(ebXml, ITI_80); @@ -62,20 +60,22 @@ public void testPatientIdValidationXcdr() { request.getSubmissionSet().setPatientId(wrongPatientId); request.getDocuments().forEach(document -> document.getDocumentEntry().setPatientId(wrongPatientId)); request.getFolders().forEach(folder -> folder.setPatientId(wrongPatientId)); - ebXml = transformer.toEbXML(request); - expectFailure(UNIVERSAL_ID_TYPE_MUST_BE_ISO, ebXml, ITI_41); - expectFailure(UNIVERSAL_ID_TYPE_MUST_BE_ISO, ebXml, ITI_80); + + var ebXml2 = transformer.toEbXML(request); + expectFailure(UNIVERSAL_ID_TYPE_MUST_BE_ISO, ebXml2, ITI_41); + expectFailure(UNIVERSAL_ID_TYPE_MUST_BE_ISO, ebXml2, ITI_80); // missing patient ID --> ITI-41 validation fails, ITI-80 validation passes request.getSubmissionSet().setPatientId(null); request.getDocuments().forEach(document -> document.getDocumentEntry().setPatientId(null)); request.getFolders().forEach(folder -> folder.setPatientId(null)); - ebXml = transformer.toEbXML(request); - expectFailure(MISSING_EXTERNAL_IDENTIFIER, ebXml, ITI_41); - validator.validate(ebXml, ITI_80); + + var ebXml3 = transformer.toEbXML(request); + expectFailure(MISSING_EXTERNAL_IDENTIFIER, ebXml3, ITI_41); + validator.validate(ebXml3, ITI_80); } - private void expectFailure(ValidationMessage expectedMessage, EbXMLProvideAndRegisterDocumentSetRequest ebXML, ValidationProfile profile) { + private void expectFailure(ValidationMessage expectedMessage, EbXMLProvideAndRegisterDocumentSetRequest ebXML, ValidationProfile profile) { try { validator.validate(ebXML, profile); fail("Expected exception: " + XDSMetaDataException.class); diff --git a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/validate/responses/QueryResponseValidatorTest.java b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/validate/responses/QueryResponseValidatorTest.java index e7c45d43d0..4951adb8ed 100644 --- a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/validate/responses/QueryResponseValidatorTest.java +++ b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/validate/responses/QueryResponseValidatorTest.java @@ -23,6 +23,7 @@ import org.openehealth.ipf.commons.ihe.xds.core.ebxml.ebxml30.EbXMLFactory30; import org.openehealth.ipf.commons.ihe.xds.core.metadata.*; import org.openehealth.ipf.commons.ihe.xds.core.responses.QueryResponse; +import org.openehealth.ipf.commons.ihe.xds.core.stub.ebrs30.query.AdhocQueryResponse; import org.openehealth.ipf.commons.ihe.xds.core.transform.responses.QueryResponseTransformer; import org.openehealth.ipf.commons.ihe.xds.core.validate.ValidationMessage; import org.openehealth.ipf.commons.ihe.xds.core.validate.XDSMetaDataException; @@ -43,7 +44,7 @@ public class QueryResponseValidatorTest { @BeforeEach public void setUp() { - validator = new QueryResponseValidator(); + validator = QueryResponseValidator.getInstance(); EbXMLFactory factory = new EbXMLFactory30(); response = SampleData.createQueryResponseWithLeafClass(); @@ -136,7 +137,7 @@ private void expectFailure(ValidationMessage expectedMessage) { expectFailure(expectedMessage, transformer.toEbXML(response)); } - private void expectFailure(ValidationMessage expectedMessage, EbXMLQueryResponse ebXMLQueryResponse) { + private void expectFailure(ValidationMessage expectedMessage, EbXMLQueryResponse ebXMLQueryResponse) { try { validator.validate(ebXMLQueryResponse, ITI_18); fail("Expected exception: " + XDSMetaDataException.class); diff --git a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/validate/responses/RegistryResponseValidatorTest.java b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/validate/responses/RegistryResponseValidatorTest.java index 0c42d44c9e..2252746236 100644 --- a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/validate/responses/RegistryResponseValidatorTest.java +++ b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/validate/responses/RegistryResponseValidatorTest.java @@ -18,7 +18,6 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.openehealth.ipf.commons.ihe.xds.core.SampleData; -import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLFactory; import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLRegistryResponse; import org.openehealth.ipf.commons.ihe.xds.core.ebxml.ebxml30.EbXMLFactory30; import org.openehealth.ipf.commons.ihe.xds.core.responses.ErrorInfo; @@ -45,8 +44,8 @@ public class RegistryResponseValidatorTest { @BeforeEach public void setUp() { - validator = new RegistryResponseValidator(); - EbXMLFactory factory = new EbXMLFactory30(); + validator = RegistryResponseValidator.getInstance(); + var factory = new EbXMLFactory30(); transformer = new ResponseTransformer(factory); response = SampleData.createResponse(); } @@ -71,7 +70,7 @@ public void testInvalidErrorCode() { @Test public void testInvalidSeverity() { var ebXML = transformer.toEbXML(response); - ((RegistryResponseType)ebXML.getInternal()).getRegistryErrorList().getRegistryError().get(0).setSeverity("lol"); + ebXML.getInternal().getRegistryErrorList().getRegistryError().get(0).setSeverity("lol"); expectFailure(INVALID_SEVERITY_IN_RESPONSE, ebXML); } @@ -79,7 +78,7 @@ private void expectFailure(ValidationMessage expectedMessage) { expectFailure(expectedMessage, transformer.toEbXML(response)); } - private void expectFailure(ValidationMessage expectedMessage, EbXMLRegistryResponse ebXMLRegistryResponse) { + private void expectFailure(ValidationMessage expectedMessage, EbXMLRegistryResponse ebXMLRegistryResponse) { try { validator.validate(ebXMLRegistryResponse, ITI_18); fail("Expected exception: " + XDSMetaDataException.class); diff --git a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/validate/responses/RetrieveDocumentResponseValidatorTest.java b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/validate/responses/RetrieveDocumentResponseValidatorTest.java index 1ef9821bbf..0a7e14ba30 100644 --- a/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/validate/responses/RetrieveDocumentResponseValidatorTest.java +++ b/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/validate/responses/RetrieveDocumentResponseValidatorTest.java @@ -46,7 +46,7 @@ public class RetrieveDocumentResponseValidatorTest { @BeforeEach public void setUp() { - validator = new RetrieveDocumentSetResponseValidator(); + validator = RetrieveDocumentSetResponseValidator.getInstance(); EbXMLFactory factory = new EbXMLFactory30(); transformer = new RetrieveDocumentSetResponseTransformer(factory); response = SampleData.createRetrievedDocumentSet(); @@ -124,7 +124,7 @@ private void expectFailure(ValidationMessage expectedMessage) { expectFailure(expectedMessage, transformer.toEbXML(response)); } - private void expectFailure(ValidationMessage expectedMessage, EbXMLRetrieveDocumentSetResponse ebXMLRegistryResponse) { + private void expectFailure(ValidationMessage expectedMessage, EbXMLRetrieveDocumentSetResponse ebXMLRegistryResponse) { try { validator.validate(ebXMLRegistryResponse, ITI_43); fail("Expected exception: " + XDSMetaDataException.class); diff --git a/platform-camel/ihe/continua/src/main/java/org/openehealth/ipf/platform/camel/ihe/continua/hrn/ContinuaHrnCamelProcessors.java b/platform-camel/ihe/continua/src/main/java/org/openehealth/ipf/platform/camel/ihe/continua/hrn/ContinuaHrnCamelProcessors.java index 786b94e987..15e5fc137e 100644 --- a/platform-camel/ihe/continua/src/main/java/org/openehealth/ipf/platform/camel/ihe/continua/hrn/ContinuaHrnCamelProcessors.java +++ b/platform-camel/ihe/continua/src/main/java/org/openehealth/ipf/platform/camel/ihe/continua/hrn/ContinuaHrnCamelProcessors.java @@ -50,7 +50,7 @@ abstract public class ContinuaHrnCamelProcessors { if (validationEnabled) { var message = new EbXMLProvideAndRegisterDocumentSetRequest30(exchange.getIn().getBody(ProvideAndRegisterDocumentSetRequestType.class)); - new ProvideAndRegisterDocumentSetRequestValidator().validate(message, CONTINUA_HRN.Interactions.ITI_41); + ProvideAndRegisterDocumentSetRequestValidator.getInstance().validate(message, CONTINUA_HRN.Interactions.ITI_41); } // transform ebXML into simplified model, extract embedded documents, check document count diff --git a/platform-camel/ihe/xds/src/main/java/org/openehealth/ipf/platform/camel/ihe/xds/XdsCamelValidators.java b/platform-camel/ihe/xds/src/main/java/org/openehealth/ipf/platform/camel/ihe/xds/XdsCamelValidators.java index 01133e0333..5bd7912441 100644 --- a/platform-camel/ihe/xds/src/main/java/org/openehealth/ipf/platform/camel/ihe/xds/XdsCamelValidators.java +++ b/platform-camel/ihe/xds/src/main/java/org/openehealth/ipf/platform/camel/ihe/xds/XdsCamelValidators.java @@ -54,7 +54,7 @@ public abstract class XdsCamelValidators { } var message = new EbXMLAdhocQueryRequest30(exchange.getIn().getBody(AdhocQueryRequest.class)); - new AdhocQueryRequestValidator().validate(message, ITI_18); + AdhocQueryRequestValidator.getInstance().validate(message, ITI_18); }; private static final Processor ITI_18_RESPONSE_VALIDATOR = exchange -> { @@ -62,7 +62,7 @@ public abstract class XdsCamelValidators { return; } var message = new EbXMLQueryResponse30(exchange.getIn().getBody(AdhocQueryResponse.class)); - new QueryResponseValidator().validate(message, ITI_18); + QueryResponseValidator.getInstance().validate(message, ITI_18); }; private static final Processor ITI_38_REQUEST_VALIDATOR = exchange -> { @@ -70,7 +70,7 @@ public abstract class XdsCamelValidators { return; } var message = new EbXMLAdhocQueryRequest30(exchange.getIn().getBody(AdhocQueryRequest.class)); - new AdhocQueryRequestValidator().validate(message, ITI_38); + AdhocQueryRequestValidator.getInstance().validate(message, ITI_38); }; private static final Processor ITI_38_RESPONSE_VALIDATOR = exchange -> { @@ -78,7 +78,7 @@ public abstract class XdsCamelValidators { return; } var message = new EbXMLQueryResponse30(exchange.getIn().getBody(AdhocQueryResponse.class)); - new QueryResponseValidator().validate(message, ITI_38); + QueryResponseValidator.getInstance().validate(message, ITI_38); }; private static final Processor ITI_39_REQUEST_VALIDATOR = exchange -> { @@ -86,7 +86,7 @@ public abstract class XdsCamelValidators { return; } var message = new EbXMLNonconstructiveDocumentSetRequest30<>(exchange.getIn().getBody(RetrieveDocumentSetRequestType.class)); - new NonconstructiveDocumentSetRequestValidator().validate(message, ITI_39); + NonconstructiveDocumentSetRequestValidator.getInstance().validate(message, ITI_39); }; private static final Processor ITI_39_RESPONSE_VALIDATOR = exchange -> { @@ -94,7 +94,7 @@ public abstract class XdsCamelValidators { return; } var message = new EbXMLRetrieveDocumentSetResponse30(exchange.getIn().getBody(RetrieveDocumentSetResponseType.class)); - new RetrieveDocumentSetResponseValidator().validate(message, ITI_39); + RetrieveDocumentSetResponseValidator.getInstance().validate(message, ITI_39); }; private static final Processor ITI_41_REQUEST_VALIDATOR = exchange -> { @@ -102,7 +102,7 @@ public abstract class XdsCamelValidators { return; } var message = new EbXMLProvideAndRegisterDocumentSetRequest30(exchange.getIn().getBody(ProvideAndRegisterDocumentSetRequestType.class)); - new ProvideAndRegisterDocumentSetRequestValidator().validate(message, ITI_41); + ProvideAndRegisterDocumentSetRequestValidator.getInstance().validate(message, ITI_41); }; private static final Processor ITI_41_XDM_REQUEST_VALIDATOR = exchange -> { @@ -110,7 +110,7 @@ public abstract class XdsCamelValidators { return; } var message = new EbXMLProvideAndRegisterDocumentSetRequest30(exchange.getIn().getBody(ProvideAndRegisterDocumentSetRequestType.class)); - new ProvideAndRegisterDocumentSetRequestValidator().validate(message, XDM.Interactions.ITI_41); + ProvideAndRegisterDocumentSetRequestValidator.getInstance().validate(message, XDM.Interactions.ITI_41); }; private static final Processor ITI_41_XDR_REQUEST_VALIDATOR = exchange -> { @@ -118,7 +118,7 @@ public abstract class XdsCamelValidators { return; } var message = new EbXMLProvideAndRegisterDocumentSetRequest30(exchange.getIn().getBody(ProvideAndRegisterDocumentSetRequestType.class)); - new ProvideAndRegisterDocumentSetRequestValidator().validate(message, XDR.Interactions.ITI_41); + ProvideAndRegisterDocumentSetRequestValidator.getInstance().validate(message, XDR.Interactions.ITI_41); }; private static final Processor ITI_41_RESPONSE_VALIDATOR = exchange -> { @@ -126,7 +126,7 @@ public abstract class XdsCamelValidators { return; } var message = new EbXMLRegistryResponse30(exchange.getIn().getBody(RegistryResponseType.class)); - new RegistryResponseValidator().validate(message, ITI_41); + RegistryResponseValidator.getInstance().validate(message, ITI_41); }; private static final Processor ITI_42_REQUEST_VALIDATOR = exchange -> { @@ -134,7 +134,7 @@ public abstract class XdsCamelValidators { return; } var message = new EbXMLSubmitObjectsRequest30(exchange.getIn().getBody(SubmitObjectsRequest.class)); - new SubmitObjectsRequestValidator().validate(message, ITI_42); + SubmitObjectsRequestValidator.getInstance().validate(message, ITI_42); }; private static final Processor ITI_42_RESPONSE_VALIDATOR = exchange -> { @@ -142,7 +142,7 @@ public abstract class XdsCamelValidators { return; } var message = new EbXMLRegistryResponse30(exchange.getIn().getBody(RegistryResponseType.class)); - new RegistryResponseValidator().validate(message, ITI_42); + RegistryResponseValidator.getInstance().validate(message, ITI_42); }; private static final Processor ITI_43_REQUEST_VALIDATOR = exchange -> { @@ -150,7 +150,7 @@ public abstract class XdsCamelValidators { return; } var message = new EbXMLNonconstructiveDocumentSetRequest30<>(exchange.getIn().getBody(RetrieveDocumentSetRequestType.class)); - new NonconstructiveDocumentSetRequestValidator().validate(message, ITI_43); + NonconstructiveDocumentSetRequestValidator.getInstance().validate(message, ITI_43); }; private static final Processor ITI_43_RESPONSE_VALIDATOR = exchange -> { @@ -158,7 +158,7 @@ public abstract class XdsCamelValidators { return; } var message = new EbXMLRetrieveDocumentSetResponse30(exchange.getIn().getBody(RetrieveDocumentSetResponseType.class)); - new RetrieveDocumentSetResponseValidator().validate(message, ITI_43); + RetrieveDocumentSetResponseValidator.getInstance().validate(message, ITI_43); }; private static final Processor ITI_51_REQUEST_VALIDATOR = exchange -> { @@ -166,7 +166,7 @@ public abstract class XdsCamelValidators { return; } var message = new EbXMLAdhocQueryRequest30(exchange.getIn().getBody(AdhocQueryRequest.class)); - new AdhocQueryRequestValidator().validate(message, ITI_51); + AdhocQueryRequestValidator.getInstance().validate(message, ITI_51); }; private static final Processor ITI_51_RESPONSE_VALIDATOR = exchange -> { @@ -174,7 +174,7 @@ public abstract class XdsCamelValidators { return; } var message = new EbXMLQueryResponse30(exchange.getIn().getBody(AdhocQueryResponse.class)); - new QueryResponseValidator().validate(message, ITI_51); + QueryResponseValidator.getInstance().validate(message, ITI_51); }; private static final Processor ITI_57_REQUEST_VALIDATOR = exchange -> { @@ -182,7 +182,7 @@ public abstract class XdsCamelValidators { return; } var message = new EbXMLSubmitObjectsRequest30(exchange.getIn().getBody(SubmitObjectsRequest.class)); - new SubmitObjectsRequestValidator().validate(message, ITI_57); + SubmitObjectsRequestValidator.getInstance().validate(message, ITI_57); }; private static final Processor ITI_57_RESPONSE_VALIDATOR = exchange -> { @@ -190,7 +190,7 @@ public abstract class XdsCamelValidators { return; } var message = new EbXMLRegistryResponse30(exchange.getIn().getBody(RegistryResponseType.class)); - new RegistryResponseValidator().validate(message, ITI_57); + RegistryResponseValidator.getInstance().validate(message, ITI_57); }; private static final Processor ITI_61_REQUEST_VALIDATOR = exchange -> { @@ -198,7 +198,7 @@ public abstract class XdsCamelValidators { return; } var message = new EbXMLSubmitObjectsRequest30(exchange.getIn().getBody(SubmitObjectsRequest.class)); - new SubmitObjectsRequestValidator().validate(message, ITI_61); + SubmitObjectsRequestValidator.getInstance().validate(message, ITI_61); }; private static final Processor ITI_61_RESPONSE_VALIDATOR = exchange -> { @@ -206,7 +206,7 @@ public abstract class XdsCamelValidators { return; } var message = new EbXMLRegistryResponse30(exchange.getIn().getBody(RegistryResponseType.class)); - new RegistryResponseValidator().validate(message, ITI_61); + RegistryResponseValidator.getInstance().validate(message, ITI_61); }; private static final Processor ITI_62_REQUEST_VALIDATOR = exchange -> { @@ -214,7 +214,7 @@ public abstract class XdsCamelValidators { return; } var message = new EbXMLRemoveMetadataRequest30(exchange.getIn().getBody(RemoveObjectsRequest.class)); - new RemoveMetadataRequestValidator().validate(message, ITI_62); + RemoveMetadataRequestValidator.getInstance().validate(message, ITI_62); }; private static final Processor ITI_62_RESPONSE_VALIDATOR = exchange -> { @@ -222,7 +222,7 @@ public abstract class XdsCamelValidators { return; } var message = new EbXMLRegistryResponse30(exchange.getIn().getBody(RegistryResponseType.class)); - new RegistryResponseValidator().validate(message, ITI_62); + RegistryResponseValidator.getInstance().validate(message, ITI_62); }; private static final Processor ITI_63_REQUEST_VALIDATOR = exchange -> { @@ -230,7 +230,7 @@ public abstract class XdsCamelValidators { return; } var message = new EbXMLAdhocQueryRequest30(exchange.getIn().getBody(AdhocQueryRequest.class)); - new AdhocQueryRequestValidator().validate(message, ITI_63); + AdhocQueryRequestValidator.getInstance().validate(message, ITI_63); }; private static final Processor ITI_63_RESPONSE_VALIDATOR = exchange -> { @@ -238,7 +238,7 @@ public abstract class XdsCamelValidators { return; } var message = new EbXMLQueryResponse30(exchange.getIn().getBody(AdhocQueryResponse.class)); - new QueryResponseValidator().validate(message, ITI_63); + QueryResponseValidator.getInstance().validate(message, ITI_63); }; private static final Processor ITI_80_REQUEST_VALIDATOR = exchange -> { @@ -246,7 +246,7 @@ public abstract class XdsCamelValidators { return; } var message = new EbXMLProvideAndRegisterDocumentSetRequest30(exchange.getIn().getBody(ProvideAndRegisterDocumentSetRequestType.class)); - new ProvideAndRegisterDocumentSetRequestValidator().validate(message, ITI_80); + ProvideAndRegisterDocumentSetRequestValidator.getInstance().validate(message, ITI_80); }; private static final Processor ITI_80_RESPONSE_VALIDATOR = exchange -> { @@ -254,7 +254,7 @@ public abstract class XdsCamelValidators { return; } var message = new EbXMLRegistryResponse30(exchange.getIn().getBody(RegistryResponseType.class)); - new RegistryResponseValidator().validate(message, ITI_80); + RegistryResponseValidator.getInstance().validate(message, ITI_80); }; private static final Processor ITI_86_REQUEST_VALIDATOR = exchange -> { @@ -262,7 +262,7 @@ public abstract class XdsCamelValidators { return; } var message = new EbXMLNonconstructiveDocumentSetRequest30<>(exchange.getIn().getBody(RemoveDocumentsRequestType.class)); - new NonconstructiveDocumentSetRequestValidator().validate(message, ITI_86); + NonconstructiveDocumentSetRequestValidator.getInstance().validate(message, ITI_86); }; private static final Processor ITI_86_RESPONSE_VALIDATOR = exchange -> { @@ -270,7 +270,7 @@ public abstract class XdsCamelValidators { return; } var message = new EbXMLRegistryResponse30(exchange.getIn().getBody(RegistryResponseType.class)); - new RegistryResponseValidator().validate(message, ITI_86); + RegistryResponseValidator.getInstance().validate(message, ITI_86); }; private static final Processor ITI_92_REQUEST_VALIDATOR = exchange -> { @@ -278,7 +278,7 @@ public abstract class XdsCamelValidators { return; } var message = new EbXMLSubmitObjectsRequest30(exchange.getIn().getBody(SubmitObjectsRequest.class)); - new SubmitObjectsRequestValidator().validate(message, RMU.Interactions.ITI_92); + SubmitObjectsRequestValidator.getInstance().validate(message, RMU.Interactions.ITI_92); }; private static final Processor ITI_92_RESPONSE_VALIDATOR = exchange -> { @@ -286,7 +286,7 @@ public abstract class XdsCamelValidators { return; } var message = new EbXMLRegistryResponse30(exchange.getIn().getBody(RegistryResponseType.class)); - new RegistryResponseValidator().validate(message, RMU.Interactions.ITI_92); + RegistryResponseValidator.getInstance().validate(message, RMU.Interactions.ITI_92); }; /** @@ -504,7 +504,7 @@ public static Processor iti92ResponseValidator() { return; } var message = new EbXMLRetrieveImagingDocumentSetRequest30(exchange.getIn().getBody(RetrieveImagingDocumentSetRequestType.class)); - new RetrieveImagingDocumentSetRequestValidator().validate(message, RAD_69); + RetrieveImagingDocumentSetRequestValidator.getInstance().validate(message, RAD_69); }; private static final Processor RAD_69_RESPONSE_VALIDATOR = exchange -> { @@ -512,7 +512,7 @@ public static Processor iti92ResponseValidator() { return; } var message = new EbXMLRetrieveDocumentSetResponse30(exchange.getIn().getBody(RetrieveDocumentSetResponseType.class)); - new RetrieveDocumentSetResponseValidator().validate(message, RAD_69); + RetrieveDocumentSetResponseValidator.getInstance().validate(message, RAD_69); }; private static final Processor RAD_75_REQUEST_VALIDATOR = exchange -> { @@ -520,7 +520,7 @@ public static Processor iti92ResponseValidator() { return; } var message = new EbXMLRetrieveImagingDocumentSetRequest30(exchange.getIn().getBody(RetrieveImagingDocumentSetRequestType.class)); - new RetrieveImagingDocumentSetRequestValidator().validate(message, RAD_75); + RetrieveImagingDocumentSetRequestValidator.getInstance().validate(message, RAD_75); }; private static final Processor RAD_75_RESPONSE_VALIDATOR = exchange -> { @@ -528,7 +528,7 @@ public static Processor iti92ResponseValidator() { return; } var message = new EbXMLRetrieveDocumentSetResponse30(exchange.getIn().getBody(RetrieveDocumentSetResponseType.class)); - new RetrieveDocumentSetResponseValidator().validate(message, RAD_75); + RetrieveDocumentSetResponseValidator.getInstance().validate(message, RAD_75); }; /** @@ -564,7 +564,7 @@ public static Processor rad75ResponseValidator() { return; } var message = new EbXMLAdhocQueryRequest30(exchange.getIn().getBody(AdhocQueryRequest.class)); - new AdhocQueryRequestValidator().validate(message, PHARM_1); + AdhocQueryRequestValidator.getInstance().validate(message, PHARM_1); }; private static final Processor PHARM_1_RESPONSE_VALIDATOR = exchange -> { @@ -572,7 +572,7 @@ public static Processor rad75ResponseValidator() { return; } var message = new EbXMLQueryResponse30(exchange.getIn().getBody(AdhocQueryResponse.class)); - new QueryResponseValidator().validate(message, PHARM_1); + QueryResponseValidator.getInstance().validate(message, PHARM_1); }; /** diff --git a/platform-camel/ihe/xds/src/main/java/org/openehealth/ipf/platform/camel/ihe/xds/XdsRegistryRequestService.java b/platform-camel/ihe/xds/src/main/java/org/openehealth/ipf/platform/camel/ihe/xds/XdsRegistryRequestService.java index d6ddbe114d..bab9a3ae3d 100644 --- a/platform-camel/ihe/xds/src/main/java/org/openehealth/ipf/platform/camel/ihe/xds/XdsRegistryRequestService.java +++ b/platform-camel/ihe/xds/src/main/java/org/openehealth/ipf/platform/camel/ihe/xds/XdsRegistryRequestService.java @@ -55,7 +55,6 @@ protected RegistryResponseType processRequest(T body) { /** * Define the ErrorCode used to indicate a error in the metadata (typically a client fault). * IHE profiles do not have one common error code to indicate the error. - * * If the default {@link ErrorCode} can not be used, override this method to use a different code. * * @return {@link ErrorCode#REGISTRY_METADATA_ERROR}. diff --git a/platform-camel/ihe/xds/src/main/java/org/openehealth/ipf/platform/camel/ihe/xds/XdsSubmissionProducer.java b/platform-camel/ihe/xds/src/main/java/org/openehealth/ipf/platform/camel/ihe/xds/XdsSubmissionProducer.java index 7af21fdabd..57a4f18d64 100644 --- a/platform-camel/ihe/xds/src/main/java/org/openehealth/ipf/platform/camel/ihe/xds/XdsSubmissionProducer.java +++ b/platform-camel/ihe/xds/src/main/java/org/openehealth/ipf/platform/camel/ihe/xds/XdsSubmissionProducer.java @@ -69,8 +69,6 @@ protected static void injectTargetHomeCommunityId(Object client, SubmitObjectsRe homeCommunityIdElement.setTextContent(targetHomeCommunityId); var blockElement = document.createElementNS(TARGET_HCID_NS, TARGET_HCID_BLOCK_LOCAL_PART); - //blockElement.setAttributeNS(SOAPConstants.URI_NS_SOAP_1_2_ENVELOPE, "role", "urn:ihe:iti:xd:id"); - //blockElement.setAttributeNS(SOAPConstants.URI_NS_SOAP_1_2_ENVELOPE, "relay", "true"); blockElement.appendChild(homeCommunityIdElement); var bindingProvider = (BindingProvider) client; diff --git a/platform-camel/ihe/xds/src/main/java/org/openehealth/ipf/platform/camel/ihe/xds/core/converters/EbXML30Converters.java b/platform-camel/ihe/xds/src/main/java/org/openehealth/ipf/platform/camel/ihe/xds/core/converters/EbXML30Converters.java index bc58c1e32e..0676d83e02 100644 --- a/platform-camel/ihe/xds/src/main/java/org/openehealth/ipf/platform/camel/ihe/xds/core/converters/EbXML30Converters.java +++ b/platform-camel/ihe/xds/src/main/java/org/openehealth/ipf/platform/camel/ihe/xds/core/converters/EbXML30Converters.java @@ -44,8 +44,18 @@ */ @Converter(generateLoader = true) public class EbXML30Converters { + private final static EbXMLFactory30 factory = new EbXMLFactory30(); - + private final static ProvideAndRegisterDocumentSetTransformer provideAndRegisterDocumentSetTransformer = new ProvideAndRegisterDocumentSetTransformer(factory); + private final static RegisterDocumentSetTransformer registerDocumentSetTransformer = new RegisterDocumentSetTransformer(factory); + private final static ResponseTransformer responseTransformer = new ResponseTransformer(factory); + private final static QueryRegistryTransformer queryRegistryTransformer = new QueryRegistryTransformer(factory); + private final static QueryResponseTransformer queryResponseTransformer = new QueryResponseTransformer(factory); + private final static RetrieveDocumentSetRequestTransformer retrieveDocumentSetRequestTransformer = new RetrieveDocumentSetRequestTransformer(factory); + private final static RemoveDocumentsRequestTransformer removeDocumentsRequestTransformer = new RemoveDocumentsRequestTransformer(factory); + private final static RetrieveDocumentSetResponseTransformer retrieveDocumentSetResponseTransformer = new RetrieveDocumentSetResponseTransformer(factory); + private final static RetrieveImagingDocumentSetRequestTransformer retrieveImagingDocumentSetRequestTransformer = new RetrieveImagingDocumentSetRequestTransformer(factory); + private final static RemoveMetadataRequestTransformer removeMetadataRequestTransformer = new RemoveMetadataRequestTransformer(); /** * Standard Camel converter for the Provide and Register Document Set request. * @param in @@ -54,8 +64,7 @@ public class EbXML30Converters { */ @Converter public static ProvideAndRegisterDocumentSetRequestType convert(ProvideAndRegisterDocumentSet in) { - var transformer = new ProvideAndRegisterDocumentSetTransformer(factory); - return (ProvideAndRegisterDocumentSetRequestType) transformer.toEbXML(in).getInternal(); + return provideAndRegisterDocumentSetTransformer.toEbXML(in).getInternal(); } /** @@ -66,8 +75,7 @@ public static ProvideAndRegisterDocumentSetRequestType convert(ProvideAndRegiste */ @Converter public static ProvideAndRegisterDocumentSet convert(ProvideAndRegisterDocumentSetRequestType in) { - var transformer = new ProvideAndRegisterDocumentSetTransformer(factory); - return transformer.fromEbXML(new EbXMLProvideAndRegisterDocumentSetRequest30(in)); + return provideAndRegisterDocumentSetTransformer.fromEbXML(new EbXMLProvideAndRegisterDocumentSetRequest30(in)); } /** @@ -78,8 +86,7 @@ public static ProvideAndRegisterDocumentSet convert(ProvideAndRegisterDocumentSe */ @Converter public static SubmitObjectsRequest convert(RegisterDocumentSet in) { - var transformer = new RegisterDocumentSetTransformer(factory); - return (SubmitObjectsRequest) transformer.toEbXML(in).getInternal(); + return registerDocumentSetTransformer.toEbXML(in).getInternal(); } /** @@ -90,8 +97,7 @@ public static SubmitObjectsRequest convert(RegisterDocumentSet in) { */ @Converter public static RegisterDocumentSet convert(SubmitObjectsRequest in) { - var transformer = new RegisterDocumentSetTransformer(factory); - return transformer.fromEbXML(new EbXMLSubmitObjectsRequest30(in)); + return registerDocumentSetTransformer.fromEbXML(new EbXMLSubmitObjectsRequest30(in)); } /** @@ -102,8 +108,7 @@ public static RegisterDocumentSet convert(SubmitObjectsRequest in) { */ @Converter public static RegistryResponseType convert(Response in) { - var transformer = new ResponseTransformer(factory); - return (RegistryResponseType) transformer.toEbXML(in).getInternal(); + return responseTransformer.toEbXML(in).getInternal(); } /** @@ -114,8 +119,7 @@ public static RegistryResponseType convert(Response in) { */ @Converter public static Response convert(RegistryResponseType in) { - var transformer = new ResponseTransformer(factory); - return transformer.fromEbXML(new EbXMLRegistryResponse30(in)); + return responseTransformer.fromEbXML(new EbXMLRegistryResponse30(in)); } /** @@ -126,8 +130,7 @@ public static Response convert(RegistryResponseType in) { */ @Converter public static AdhocQueryRequest convert(QueryRegistry in) { - var transformer = new QueryRegistryTransformer(); - return (AdhocQueryRequest)transformer.toEbXML(in).getInternal(); + return queryRegistryTransformer.toEbXML(in).getInternal(); } /** @@ -138,8 +141,7 @@ public static AdhocQueryRequest convert(QueryRegistry in) { */ @Converter public static QueryRegistry convert(AdhocQueryRequest in) { - var transformer = new QueryRegistryTransformer(); - return transformer.fromEbXML(new EbXMLAdhocQueryRequest30(in)); + return queryRegistryTransformer.fromEbXML(new EbXMLAdhocQueryRequest30(in)); } /** @@ -150,8 +152,7 @@ public static QueryRegistry convert(AdhocQueryRequest in) { */ @Converter public static AdhocQueryResponse convert(QueryResponse in) { - var transformer = new QueryResponseTransformer(factory); - return (AdhocQueryResponse) transformer.toEbXML(in).getInternal(); + return queryResponseTransformer.toEbXML(in).getInternal(); } /** @@ -162,8 +163,7 @@ public static AdhocQueryResponse convert(QueryResponse in) { */ @Converter public static QueryResponse convertToQueryResponse(AdhocQueryResponse in) { - var transformer = new QueryResponseTransformer(factory); - return transformer.fromEbXML(new EbXMLQueryResponse30(in)); + return queryResponseTransformer.fromEbXML(new EbXMLQueryResponse30(in)); } /** @@ -174,8 +174,7 @@ public static QueryResponse convertToQueryResponse(AdhocQueryResponse in) { */ @Converter public static RetrieveDocumentSetRequestType convert(RetrieveDocumentSet in) { - var transformer = new RetrieveDocumentSetRequestTransformer(factory); - return (RetrieveDocumentSetRequestType) transformer.toEbXML(in).getInternal(); + return retrieveDocumentSetRequestTransformer.toEbXML(in).getInternal(); } /** @@ -186,8 +185,7 @@ public static RetrieveDocumentSetRequestType convert(RetrieveDocumentSet in) { */ @Converter public static RetrieveDocumentSet convert(RetrieveDocumentSetRequestType in) { - var transformer = new RetrieveDocumentSetRequestTransformer(factory); - return transformer.fromEbXML(new EbXMLNonconstructiveDocumentSetRequest30<>(in)); + return retrieveDocumentSetRequestTransformer.fromEbXML(new EbXMLNonconstructiveDocumentSetRequest30<>(in)); } /** @@ -198,8 +196,7 @@ public static RetrieveDocumentSet convert(RetrieveDocumentSetRequestType in) { */ @Converter public static RemoveDocumentsRequestType convert(RemoveDocuments in) { - var transformer = new RemoveDocumentsRequestTransformer(factory); - return (RemoveDocumentsRequestType) transformer.toEbXML(in).getInternal(); + return removeDocumentsRequestTransformer.toEbXML(in).getInternal(); } /** @@ -210,8 +207,7 @@ public static RemoveDocumentsRequestType convert(RemoveDocuments in) { */ @Converter public static RemoveDocuments convert(RemoveDocumentsRequestType in) { - var transformer = new RemoveDocumentsRequestTransformer(factory); - return transformer.fromEbXML(new EbXMLNonconstructiveDocumentSetRequest30<>(in)); + return removeDocumentsRequestTransformer.fromEbXML(new EbXMLNonconstructiveDocumentSetRequest30<>(in)); } /** @@ -222,8 +218,7 @@ public static RemoveDocuments convert(RemoveDocumentsRequestType in) { */ @Converter public static RetrieveDocumentSetResponseType convert(RetrievedDocumentSet in) { - var transformer = new RetrieveDocumentSetResponseTransformer(factory); - return (RetrieveDocumentSetResponseType) transformer.toEbXML(in).getInternal(); + return retrieveDocumentSetResponseTransformer.toEbXML(in).getInternal(); } /** @@ -234,8 +229,7 @@ public static RetrieveDocumentSetResponseType convert(RetrievedDocumentSet in) { */ @Converter public static RetrievedDocumentSet convert(RetrieveDocumentSetResponseType in) { - var transformer = new RetrieveDocumentSetResponseTransformer(factory); - return transformer.fromEbXML(new EbXMLRetrieveDocumentSetResponse30(in)); + return retrieveDocumentSetResponseTransformer.fromEbXML(new EbXMLRetrieveDocumentSetResponse30(in)); } /** @@ -245,8 +239,7 @@ public static RetrievedDocumentSet convert(RetrieveDocumentSetResponseType in) { */ @Converter public static RetrieveImagingDocumentSetRequestType convert(RetrieveImagingDocumentSet in) { - var transformer = new RetrieveImagingDocumentSetRequestTransformer(factory); - return (RetrieveImagingDocumentSetRequestType) transformer.toEbXML(in).getInternal(); + return retrieveImagingDocumentSetRequestTransformer.toEbXML(in).getInternal(); } /** @@ -256,8 +249,7 @@ public static RetrieveImagingDocumentSetRequestType convert(RetrieveImagingDocum */ @Converter public static RetrieveImagingDocumentSet convert(RetrieveImagingDocumentSetRequestType in) { - var transformer = new RetrieveImagingDocumentSetRequestTransformer(factory); - return transformer.fromEbXML(new EbXMLRetrieveImagingDocumentSetRequest30(in)); + return retrieveImagingDocumentSetRequestTransformer.fromEbXML(new EbXMLRetrieveImagingDocumentSetRequest30(in)); } /** @@ -267,8 +259,7 @@ public static RetrieveImagingDocumentSet convert(RetrieveImagingDocumentSetReque */ @Converter public static RemoveObjectsRequest convert(RemoveMetadata in) { - var transformer = new RemoveMetadataRequestTransformer(); - return (RemoveObjectsRequest) transformer.toEbXML(in).getInternal(); + return removeMetadataRequestTransformer.toEbXML(in).getInternal(); } /** @@ -278,8 +269,7 @@ public static RemoveObjectsRequest convert(RemoveMetadata in) { */ @Converter public static RemoveMetadata convert(RemoveObjectsRequest in) { - var transformer = new RemoveMetadataRequestTransformer(); - return transformer.fromEbXML(new EbXMLRemoveMetadataRequest30(in)); + return removeMetadataRequestTransformer.fromEbXML(new EbXMLRemoveMetadataRequest30(in)); } } diff --git a/platform-camel/ihe/xds/src/main/java/org/openehealth/ipf/platform/camel/ihe/xds/core/converters/XdsRenderingUtils.java b/platform-camel/ihe/xds/src/main/java/org/openehealth/ipf/platform/camel/ihe/xds/core/converters/XdsRenderingUtils.java index bc56f166dd..6d8c85f066 100644 --- a/platform-camel/ihe/xds/src/main/java/org/openehealth/ipf/platform/camel/ihe/xds/core/converters/XdsRenderingUtils.java +++ b/platform-camel/ihe/xds/src/main/java/org/openehealth/ipf/platform/camel/ihe/xds/core/converters/XdsRenderingUtils.java @@ -147,7 +147,7 @@ public static String render(Exchange exchange) { * XML representation of the XDS object contained in the given Camel exchange. */ public static String render(Exchange exchange, @ClosureParams(value = SimpleType.class, options = { "org.apache.camel.Exchange"}) - Closure closure) { + Closure closure) { return doRender(exchange, closure.call(exchange)); } diff --git a/platform-camel/ihe/xds/src/test/java/org/openehealth/ipf/platform/camel/ihe/xds/iti42/CxfEndpointTest.java b/platform-camel/ihe/xds/src/test/java/org/openehealth/ipf/platform/camel/ihe/xds/iti42/CxfEndpointTest.java index f90f38b1b6..ea7fa408ac 100644 --- a/platform-camel/ihe/xds/src/test/java/org/openehealth/ipf/platform/camel/ihe/xds/iti42/CxfEndpointTest.java +++ b/platform-camel/ihe/xds/src/test/java/org/openehealth/ipf/platform/camel/ihe/xds/iti42/CxfEndpointTest.java @@ -137,10 +137,10 @@ public static class MyIti42 implements Iti42PortType { new ResponseTransformer(factory); private final SubmitObjectsRequestValidator reqValidator = - new SubmitObjectsRequestValidator(); + SubmitObjectsRequestValidator.getInstance(); private final RegistryResponseValidator respValidator = - new RegistryResponseValidator(); + RegistryResponseValidator.getInstance(); @Override public RegistryResponseType documentRegistryRegisterDocumentSetB(SubmitObjectsRequest rawReq) { diff --git a/src/site/changes.xml b/src/site/changes.xml index 957cca42fd..b396c25e8d 100644 --- a/src/site/changes.xml +++ b/src/site/changes.xml @@ -60,6 +60,9 @@ Support JSON representation of the HPD DSMLv2 data model + + Added a couple of XDS query models for Subscriptions. Internally, made all ebxml transformer classes static + Possibility to add HTTP headers in FHIR requests