From f4892ec9d3eb59aea9dccb19358b0e9d4fe9cff4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 9 Jan 2024 11:59:38 +0000 Subject: [PATCH 1/3] Update dependency nl.jqno.equalsverifier:equalsverifier to v3.15.6 --- app/build.gradle | 2 +- etor/build.gradle | 2 +- shared/build.gradle | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index d351bb88e..18fa8b8f8 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -28,7 +28,7 @@ dependencies { testImplementation 'org.apache.groovy:groovy:4.0.17' testImplementation 'org.spockframework:spock-core:2.3-groovy-4.0' testImplementation 'com.openpojo:openpojo:0.9.1' - testImplementation 'nl.jqno.equalsverifier:equalsverifier:3.15.5' + testImplementation 'nl.jqno.equalsverifier:equalsverifier:3.15.6' } jacocoTestCoverageVerification { diff --git a/etor/build.gradle b/etor/build.gradle index 988dfe971..c4b835cd4 100644 --- a/etor/build.gradle +++ b/etor/build.gradle @@ -19,7 +19,7 @@ dependencies { testImplementation 'org.apache.groovy:groovy:4.0.17' testImplementation 'org.spockframework:spock-core:2.3-groovy-4.0' testImplementation 'com.openpojo:openpojo:0.9.1' - testImplementation 'nl.jqno.equalsverifier:equalsverifier:3.15.5' + testImplementation 'nl.jqno.equalsverifier:equalsverifier:3.15.6' } jacocoTestCoverageVerification { diff --git a/shared/build.gradle b/shared/build.gradle index 4768e6637..7e5e2a948 100644 --- a/shared/build.gradle +++ b/shared/build.gradle @@ -51,7 +51,7 @@ dependencies { testFixturesImplementation 'org.apache.groovy:groovy:4.0.17' testImplementation 'org.spockframework:spock-core:2.3-groovy-4.0' testFixturesImplementation 'com.openpojo:openpojo:0.9.1' - testFixturesImplementation 'nl.jqno.equalsverifier:equalsverifier:3.15.5' + testFixturesImplementation 'nl.jqno.equalsverifier:equalsverifier:3.15.6' // dotenv-java implementation 'io.github.cdimascio:dotenv-java:3.0.0' From 1d412ccc99c91134d31fcfcce378b3fd0462ca19 Mon Sep 17 00:00:00 2001 From: Jeff Crichlake <jcrichlake@gmail.com> Date: Tue, 9 Jan 2024 10:59:28 -0500 Subject: [PATCH 2/3] Adding wrapper class --- .../etor/EtorDomainRegistration.java | 6 +++--- .../etor/operationoutcomes/FhirMetadata.java | 6 ++++++ .../operationoutcomes/HapiFhirMetadata.java | 17 +++++++++++++++++ .../etor/orders/OrderConverter.java | 4 ++-- .../external/hapi/HapiOrderConverter.java | 6 ++++-- .../etor/EtorDomainRegistrationTest.groovy | 5 +++-- 6 files changed, 35 insertions(+), 9 deletions(-) create mode 100644 etor/src/main/java/gov/hhs/cdc/trustedintermediary/etor/operationoutcomes/FhirMetadata.java create mode 100644 etor/src/main/java/gov/hhs/cdc/trustedintermediary/etor/operationoutcomes/HapiFhirMetadata.java diff --git a/etor/src/main/java/gov/hhs/cdc/trustedintermediary/etor/EtorDomainRegistration.java b/etor/src/main/java/gov/hhs/cdc/trustedintermediary/etor/EtorDomainRegistration.java index 3b925ac4b..5158fbd0f 100644 --- a/etor/src/main/java/gov/hhs/cdc/trustedintermediary/etor/EtorDomainRegistration.java +++ b/etor/src/main/java/gov/hhs/cdc/trustedintermediary/etor/EtorDomainRegistration.java @@ -15,6 +15,7 @@ import gov.hhs.cdc.trustedintermediary.etor.metadata.PartnerMetadataException; import gov.hhs.cdc.trustedintermediary.etor.metadata.PartnerMetadataOrchestrator; import gov.hhs.cdc.trustedintermediary.etor.metadata.PartnerMetadataStorage; +import gov.hhs.cdc.trustedintermediary.etor.operationoutcomes.FhirMetadata; import gov.hhs.cdc.trustedintermediary.etor.orders.Order; import gov.hhs.cdc.trustedintermediary.etor.orders.OrderController; import gov.hhs.cdc.trustedintermediary.etor.orders.OrderConverter; @@ -44,7 +45,6 @@ import java.util.Optional; import java.util.function.Function; import javax.inject.Inject; -import org.hl7.fhir.r4.model.OperationOutcome; /** * The domain connector for the ETOR domain. It connects it with the larger trusted intermediary. It @@ -181,11 +181,11 @@ DomainResponse handleMetadata(DomainRequest request) { 404, "Metadata not found for ID: " + metadataId); } - OperationOutcome responseObject = + FhirMetadata<?> responseObject = orderConverter.extractPublicMetadataToOperationOutcome(metadata.get()); return domainResponseHelper.constructOkResponseFromString( - fhir.encodeResourceToJson(responseObject)); + fhir.encodeResourceToJson(responseObject.getUnderlyingOutcome())); } catch (PartnerMetadataException e) { String errorMessage = "Unable to retrieve requested metadata"; logger.logError(errorMessage, e); diff --git a/etor/src/main/java/gov/hhs/cdc/trustedintermediary/etor/operationoutcomes/FhirMetadata.java b/etor/src/main/java/gov/hhs/cdc/trustedintermediary/etor/operationoutcomes/FhirMetadata.java new file mode 100644 index 000000000..3c22cfb07 --- /dev/null +++ b/etor/src/main/java/gov/hhs/cdc/trustedintermediary/etor/operationoutcomes/FhirMetadata.java @@ -0,0 +1,6 @@ +package gov.hhs.cdc.trustedintermediary.etor.operationoutcomes; + +public interface FhirMetadata<T> { + + T getUnderlyingOutcome(); +} diff --git a/etor/src/main/java/gov/hhs/cdc/trustedintermediary/etor/operationoutcomes/HapiFhirMetadata.java b/etor/src/main/java/gov/hhs/cdc/trustedintermediary/etor/operationoutcomes/HapiFhirMetadata.java new file mode 100644 index 000000000..57c6ea6d7 --- /dev/null +++ b/etor/src/main/java/gov/hhs/cdc/trustedintermediary/etor/operationoutcomes/HapiFhirMetadata.java @@ -0,0 +1,17 @@ +package gov.hhs.cdc.trustedintermediary.etor.operationoutcomes; + +import org.hl7.fhir.r4.model.OperationOutcome; + +public class HapiFhirMetadata implements FhirMetadata<OperationOutcome> { + + private final OperationOutcome innerOutcome; + + public HapiFhirMetadata(OperationOutcome outcome) { + this.innerOutcome = outcome; + } + + @Override + public OperationOutcome getUnderlyingOutcome() { + return innerOutcome; + } +} diff --git a/etor/src/main/java/gov/hhs/cdc/trustedintermediary/etor/orders/OrderConverter.java b/etor/src/main/java/gov/hhs/cdc/trustedintermediary/etor/orders/OrderConverter.java index 5e738417d..0f754cf38 100644 --- a/etor/src/main/java/gov/hhs/cdc/trustedintermediary/etor/orders/OrderConverter.java +++ b/etor/src/main/java/gov/hhs/cdc/trustedintermediary/etor/orders/OrderConverter.java @@ -2,7 +2,7 @@ import gov.hhs.cdc.trustedintermediary.etor.demographics.Demographics; import gov.hhs.cdc.trustedintermediary.etor.metadata.PartnerMetadata; -import org.hl7.fhir.r4.model.OperationOutcome; +import gov.hhs.cdc.trustedintermediary.etor.operationoutcomes.FhirMetadata; /** Interface for converting things to orders and things in orders. */ public interface OrderConverter { @@ -12,5 +12,5 @@ public interface OrderConverter { Order<?> addContactSectionToPatientResource(Order<?> order); - OperationOutcome extractPublicMetadataToOperationOutcome(PartnerMetadata metadata); + FhirMetadata<?> extractPublicMetadataToOperationOutcome(PartnerMetadata metadata); } diff --git a/etor/src/main/java/gov/hhs/cdc/trustedintermediary/external/hapi/HapiOrderConverter.java b/etor/src/main/java/gov/hhs/cdc/trustedintermediary/external/hapi/HapiOrderConverter.java index 6681bc732..6c189da2b 100644 --- a/etor/src/main/java/gov/hhs/cdc/trustedintermediary/external/hapi/HapiOrderConverter.java +++ b/etor/src/main/java/gov/hhs/cdc/trustedintermediary/external/hapi/HapiOrderConverter.java @@ -2,6 +2,8 @@ import gov.hhs.cdc.trustedintermediary.etor.demographics.Demographics; import gov.hhs.cdc.trustedintermediary.etor.metadata.PartnerMetadata; +import gov.hhs.cdc.trustedintermediary.etor.operationoutcomes.FhirMetadata; +import gov.hhs.cdc.trustedintermediary.etor.operationoutcomes.HapiFhirMetadata; import gov.hhs.cdc.trustedintermediary.etor.orders.Order; import gov.hhs.cdc.trustedintermediary.etor.orders.OrderConverter; import gov.hhs.cdc.trustedintermediary.wrappers.Logger; @@ -204,7 +206,7 @@ private Provenance createProvenanceResource(Date orderDate) { } @Override - public OperationOutcome extractPublicMetadataToOperationOutcome(PartnerMetadata metadata) { + public FhirMetadata<?> extractPublicMetadataToOperationOutcome(PartnerMetadata metadata) { var operation = new OperationOutcome(); operation.setId(metadata.receivedSubmissionId()); @@ -219,7 +221,7 @@ public OperationOutcome extractPublicMetadataToOperationOutcome(PartnerMetadata "order ingestion", metadata.timeReceived().toString())); operation.getIssue().add(createInformationIssueComponent("payload hash", metadata.hash())); - return operation; + return new HapiFhirMetadata(operation); } protected OperationOutcome.OperationOutcomeIssueComponent createInformationIssueComponent( diff --git a/etor/src/test/groovy/gov/hhs/cdc/trustedintermediary/etor/EtorDomainRegistrationTest.groovy b/etor/src/test/groovy/gov/hhs/cdc/trustedintermediary/etor/EtorDomainRegistrationTest.groovy index 84cc5f66f..1c8369ee9 100644 --- a/etor/src/test/groovy/gov/hhs/cdc/trustedintermediary/etor/EtorDomainRegistrationTest.groovy +++ b/etor/src/test/groovy/gov/hhs/cdc/trustedintermediary/etor/EtorDomainRegistrationTest.groovy @@ -14,6 +14,7 @@ import gov.hhs.cdc.trustedintermediary.etor.demographics.PatientDemographicsResp import gov.hhs.cdc.trustedintermediary.etor.metadata.PartnerMetadata import gov.hhs.cdc.trustedintermediary.etor.metadata.PartnerMetadataException import gov.hhs.cdc.trustedintermediary.etor.metadata.PartnerMetadataOrchestrator +import gov.hhs.cdc.trustedintermediary.etor.operationoutcomes.FhirMetadata import gov.hhs.cdc.trustedintermediary.etor.orders.Order import gov.hhs.cdc.trustedintermediary.etor.orders.OrderController import gov.hhs.cdc.trustedintermediary.etor.orders.OrderConverter @@ -331,11 +332,11 @@ class EtorDomainRegistrationTest extends Specification { TestApplicationContext.register(DomainResponseHelper, mockResponseHelper) def mockOrderConverter = Mock(OrderConverter) - mockOrderConverter.extractPublicMetadataToOperationOutcome(_ as PartnerMetadata) >> Mock(OperationOutcome) + mockOrderConverter.extractPublicMetadataToOperationOutcome(_ as PartnerMetadata) >> Mock(FhirMetadata) TestApplicationContext.register(OrderConverter, mockOrderConverter) def mockFhir = Mock(HapiFhir) - mockFhir.encodeResourceToJson(_ as OperationOutcome) >> "" + mockFhir.encodeResourceToJson(_) >> "" TestApplicationContext.register(HapiFhir, mockFhir) TestApplicationContext.injectRegisteredImplementations() From 269dd5c5f13fb40aedcf4ea758036147fb7b8e49 Mon Sep 17 00:00:00 2001 From: Jeff Crichlake <jcrichlake@gmail.com> Date: Tue, 9 Jan 2024 11:20:57 -0500 Subject: [PATCH 3/3] Adding java docs --- .../etor/operationoutcomes/FhirMetadata.java | 6 ++++++ .../etor/operationoutcomes/HapiFhirMetadata.java | 1 + 2 files changed, 7 insertions(+) diff --git a/etor/src/main/java/gov/hhs/cdc/trustedintermediary/etor/operationoutcomes/FhirMetadata.java b/etor/src/main/java/gov/hhs/cdc/trustedintermediary/etor/operationoutcomes/FhirMetadata.java index 3c22cfb07..ebe3fb0e6 100644 --- a/etor/src/main/java/gov/hhs/cdc/trustedintermediary/etor/operationoutcomes/FhirMetadata.java +++ b/etor/src/main/java/gov/hhs/cdc/trustedintermediary/etor/operationoutcomes/FhirMetadata.java @@ -1,5 +1,11 @@ package gov.hhs.cdc.trustedintermediary.etor.operationoutcomes; +/** + * Wrapper interface for our public facing metadata. Wraps an operation outcomes object to be + * returned to our ReST API + * + * @param <T> + */ public interface FhirMetadata<T> { T getUnderlyingOutcome(); diff --git a/etor/src/main/java/gov/hhs/cdc/trustedintermediary/etor/operationoutcomes/HapiFhirMetadata.java b/etor/src/main/java/gov/hhs/cdc/trustedintermediary/etor/operationoutcomes/HapiFhirMetadata.java index 57c6ea6d7..bf9fdf356 100644 --- a/etor/src/main/java/gov/hhs/cdc/trustedintermediary/etor/operationoutcomes/HapiFhirMetadata.java +++ b/etor/src/main/java/gov/hhs/cdc/trustedintermediary/etor/operationoutcomes/HapiFhirMetadata.java @@ -2,6 +2,7 @@ import org.hl7.fhir.r4.model.OperationOutcome; +/** Implementation of our wrapper for public facing metadata. Returns an operation outcomes */ public class HapiFhirMetadata implements FhirMetadata<OperationOutcome> { private final OperationOutcome innerOutcome;