From c6ea4cdb885233025c0950b08062432fe1252e2f Mon Sep 17 00:00:00 2001 From: Dmytro Rud Date: Fri, 5 Jul 2024 08:26:18 +0200 Subject: [PATCH] fulfill a TODO --- .../mag/mhd/iti67/Iti67RequestUpdateConverter.java | 14 ++++++++++++-- .../ti/i4mi/mag/mhd/iti67/Iti67RouteBuilder.java | 14 ++++++++++---- .../i4mi/mag/mhd/Iti57RequestTranslatorTest.java | 2 +- src/test/resources/update-request-1.json | 2 +- 4 files changed, 24 insertions(+), 8 deletions(-) diff --git a/src/main/java/ch/bfh/ti/i4mi/mag/mhd/iti67/Iti67RequestUpdateConverter.java b/src/main/java/ch/bfh/ti/i4mi/mag/mhd/iti67/Iti67RequestUpdateConverter.java index 37a86368..b5223acd 100644 --- a/src/main/java/ch/bfh/ti/i4mi/mag/mhd/iti67/Iti67RequestUpdateConverter.java +++ b/src/main/java/ch/bfh/ti/i4mi/mag/mhd/iti67/Iti67RequestUpdateConverter.java @@ -19,6 +19,7 @@ import java.util.HashMap; import java.util.UUID; +import ch.bfh.ti.i4mi.mag.Config; import ch.bfh.ti.i4mi.mag.MagConstants; import org.apache.camel.Body; import org.hl7.fhir.r4.model.*; @@ -30,6 +31,8 @@ import ch.bfh.ti.i4mi.mag.mhd.iti65.Iti65RequestConverter; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; /** * ITI-67 DocumentReference Update request converter @@ -38,8 +41,16 @@ * */ @Slf4j +@Component public class Iti67RequestUpdateConverter extends Iti65RequestConverter { + private final Config config; + + @Autowired + public Iti67RequestUpdateConverter(Config config) { + this.config = config; + } + /** * ITI-67 Response to ITI-57 request converter * @@ -56,8 +67,7 @@ public SubmitObjectsRequest convertDocumentReferenceToDocumentEntry(@Body Docume if (source != null && source.getValue() instanceof Identifier) { submissionSet.setSourceId(noPrefix(((Identifier) source.getValue()).getValue())); } else { - // todo: use Config.getDocumentSourceId - submissionSet.setSourceId("2.16.756.5.30.1.190.0.0.12.2.101.32"); + submissionSet.setSourceId(noPrefix(config.getDocumentSourceId())); } Extension designationType = diff --git a/src/main/java/ch/bfh/ti/i4mi/mag/mhd/iti67/Iti67RouteBuilder.java b/src/main/java/ch/bfh/ti/i4mi/mag/mhd/iti67/Iti67RouteBuilder.java index 290fadf6..2fe5305e 100644 --- a/src/main/java/ch/bfh/ti/i4mi/mag/mhd/iti67/Iti67RouteBuilder.java +++ b/src/main/java/ch/bfh/ti/i4mi/mag/mhd/iti67/Iti67RouteBuilder.java @@ -20,10 +20,11 @@ import org.apache.camel.builder.PredicateBuilder; import org.apache.camel.builder.RouteBuilder; +import org.hl7.fhir.r4.model.DocumentReference; import org.openehealth.ipf.commons.ihe.fhir.Constants; import org.openehealth.ipf.commons.ihe.xds.core.responses.QueryResponse; import org.openehealth.ipf.commons.ihe.xds.core.responses.Response; -import org.openehealth.ipf.commons.ihe.xds.core.stub.ebrs30.rs.RegistryRequestType; +import org.openehealth.ipf.commons.ihe.xds.core.stub.ebrs30.lcm.SubmitObjectsRequest; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.stereotype.Component; @@ -42,11 +43,13 @@ class Iti67RouteBuilder extends RouteBuilder { private final Config config; + private final Iti67RequestUpdateConverter iti67RequestUpdateConverter; - public Iti67RouteBuilder(final Config config) { + public Iti67RouteBuilder(final Config config, Iti67RequestUpdateConverter iti67RequestUpdateConverter) { super(); log.debug("Iti67RouteBuilder initialized"); this.config = config; + this.iti67RequestUpdateConverter = iti67RequestUpdateConverter; } @Override @@ -92,8 +95,11 @@ public void configure() throws Exception { .process(translateToFhir(new Iti67ResponseConverter(config) , QueryResponse.class)) .endChoice() .when(PredicateBuilder.and(header("FhirHttpUri").isNotNull(),header("FhirHttpMethod").isEqualTo("PUT"))) - .bean(Iti67RequestUpdateConverter.class) - .convertBodyTo(RegistryRequestType.class) + .process(exchange -> { + DocumentReference documentReference = exchange.getIn().getMandatoryBody(DocumentReference.class); + SubmitObjectsRequest submitObjectsRequest = iti67RequestUpdateConverter.convertDocumentReferenceToDocumentEntry(documentReference); + exchange.getMessage().setBody(submitObjectsRequest); + }) .to(endpoint57) .process(translateToFhir(new Iti67FromIti57ResponseConverter(config), Response.class)) .endChoice() diff --git a/src/test/java/ch/bfh/ti/i4mi/mag/mhd/Iti57RequestTranslatorTest.java b/src/test/java/ch/bfh/ti/i4mi/mag/mhd/Iti57RequestTranslatorTest.java index ae627906..5c6cc690 100644 --- a/src/test/java/ch/bfh/ti/i4mi/mag/mhd/Iti57RequestTranslatorTest.java +++ b/src/test/java/ch/bfh/ti/i4mi/mag/mhd/Iti57RequestTranslatorTest.java @@ -25,7 +25,7 @@ public static void beforeAll() { PatientReferenceCreator patientReferenceCreator = new PatientReferenceCreator(); patientReferenceCreator.setConfig(config); patientReferenceCreator.setSchemeMapper(schemeMapper); - iti67RequestUpdateConverter = new Iti67RequestUpdateConverter(); + iti67RequestUpdateConverter = new Iti67RequestUpdateConverter(config); iti67RequestUpdateConverter.setConfig(config); iti67RequestUpdateConverter.setSchemeMapper(schemeMapper); iti67RequestUpdateConverter.setPatientRefCreator(patientReferenceCreator); diff --git a/src/test/resources/update-request-1.json b/src/test/resources/update-request-1.json index 882bd1fb..f291f2a6 100644 --- a/src/test/resources/update-request-1.json +++ b/src/test/resources/update-request-1.json @@ -84,7 +84,7 @@ "coding": [ { "system": "https://profiles.ihe.net/ITI/MHD/CodeSystem/DocumentIdentifierTypes", - "code": "logicalId" + "code": "logicalID" } ] }