From c1b145724bfc7329aa5ee977d5ccde685c679cb4 Mon Sep 17 00:00:00 2001 From: Dmytro Rud Date: Thu, 13 Feb 2025 14:28:30 +0100 Subject: [PATCH] more flexible setting of homeCommunityId in XD* consumers --- .../ipf/platform/camel/ihe/xds/XdsAdhocQueryService.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/platform-camel/ihe/xds/src/main/java/org/openehealth/ipf/platform/camel/ihe/xds/XdsAdhocQueryService.java b/platform-camel/ihe/xds/src/main/java/org/openehealth/ipf/platform/camel/ihe/xds/XdsAdhocQueryService.java index d92d7e8028..3521daa89f 100644 --- a/platform-camel/ihe/xds/src/main/java/org/openehealth/ipf/platform/camel/ihe/xds/XdsAdhocQueryService.java +++ b/platform-camel/ihe/xds/src/main/java/org/openehealth/ipf/platform/camel/ihe/xds/XdsAdhocQueryService.java @@ -24,6 +24,7 @@ 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.platform.camel.core.util.Exchanges; +import org.openehealth.ipf.platform.camel.ihe.core.HomeCommunityUtils; import org.openehealth.ipf.platform.camel.ihe.ws.AbstractWebService; import org.openehealth.ipf.platform.camel.ihe.xds.core.converters.EbXML30Converters; @@ -47,10 +48,11 @@ public XdsAdhocQueryService(String homeCommunityId) { @SneakyThrows(InvalidPayloadException.class) protected AdhocQueryResponse processRequest(AdhocQueryRequest body) { - var result = process(body); - var exception = Exchanges.extractException(result); + var exchange = process(body); + var exception = Exchanges.extractException(exchange); if (exception != null) { log.debug("{} service failed", getClass().getSimpleName(), exception); + String homeCommunityId = HomeCommunityUtils.getHomeCommunityId(exchange, this.homeCommunityId); var errorResponse = new QueryResponse( exception, ErrorCode.REGISTRY_ERROR, @@ -59,6 +61,6 @@ protected AdhocQueryResponse processRequest(AdhocQueryRequest body) { errorResponse.getErrors().get(0).setLocation(homeCommunityId); return EbXML30Converters.convert(errorResponse); } - return result.getMessage().getMandatoryBody(AdhocQueryResponse.class); + return exchange.getMessage().getMandatoryBody(AdhocQueryResponse.class); } }