From cff38b49914e81567c188b97a9167146d81cdaf0 Mon Sep 17 00:00:00 2001 From: Shreeja jobin Date: Wed, 5 Feb 2025 16:07:01 +0530 Subject: [PATCH] feat : add bundle session id for validate endpoint --- .../service/http/hub/prime/api/FhirController.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/hub-prime/src/main/java/org/techbd/service/http/hub/prime/api/FhirController.java b/hub-prime/src/main/java/org/techbd/service/http/hub/prime/api/FhirController.java index 83d32eb507..2e39d2c808 100644 --- a/hub-prime/src/main/java/org/techbd/service/http/hub/prime/api/FhirController.java +++ b/hub-prime/src/main/java/org/techbd/service/http/hub/prime/api/FhirController.java @@ -295,11 +295,12 @@ public Object validateBundle( LOG.info("FHIRController:Bundle Validate :: Getting shinny Urls from config - Before: "); final var igPackages = appConfig.getIgPackages(); final var igVersion = appConfig.getIgVersion(); + final var interactionId = InteractionsFilter.getActiveRequestEnc(request).requestId() + .toString(); final var sessionBuilder = engine.session() .withSessionId(UUID.randomUUID().toString()) .onDevice(Device.createDefault()) - .withInteractionId(InteractionsFilter.getActiveRequestEnc(request).requestId() - .toString()) + .withInteractionId(interactionId) .withPayloads(List.of(payload)) // .withTracer(tracer) .withFhirProfileUrl(fhirProfileUrl) @@ -317,7 +318,8 @@ public Object validateBundle( + appConfig.getOperationOutcomeHelpUrl(), "validationResults", session.getValidationResults(), "device", - session.getDevice())); + session.getDevice(), + "bundleSessionId", interactionId)); final var result = Map.of("OperationOutcome", opOutcome); if (uaValidationStrategyJson != null) { opOutcome.put("uaValidationStrategy", @@ -335,6 +337,7 @@ public Object validateBundle( LOG.error("FHIRController: Bundle Validate:: Validation failed", e); return Map.of( "resourceType", "OperationOutcome", + "bundleSessionId", interactionId, "error", "Validation failed: " + e.getMessage()); } finally { // Ensure the session is cleared to avoid memory leaks