From 86fab312c059c921ce53656b0c390f22b3e38d3b Mon Sep 17 00:00:00 2001 From: Dogukan Cavdaroglu Date: Thu, 5 Dec 2024 10:33:19 +0300 Subject: [PATCH] :bug: Handle the base profile url with version suffix in the validation --- .../io/onfhir/api/validation/FHIRResourceValidator.scala | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/onfhir-core/src/main/scala/io/onfhir/api/validation/FHIRResourceValidator.scala b/onfhir-core/src/main/scala/io/onfhir/api/validation/FHIRResourceValidator.scala index e983dbd..74ed6f1 100644 --- a/onfhir-core/src/main/scala/io/onfhir/api/validation/FHIRResourceValidator.scala +++ b/onfhir-core/src/main/scala/io/onfhir/api/validation/FHIRResourceValidator.scala @@ -50,6 +50,15 @@ class FHIRResourceValidator(fhirConfigurationManager: IFhirConfigurationManager) //profiles listed in Resource.meta.profile val profilesClaimedToConform = FHIRUtil.extractProfilesFromBson(resource) + .map(profile => { + // Check if the profile matches the current FHIR version-specific profile URL + if(profile.contentEquals(s"$FHIR_ROOT_URL_FOR_DEFINITIONS/StructureDefinition/$rtype|${fhirConfigurationManager.fhirConfig.fhirVersion}")) { + // If it matches, return the profile URL without the version suffix + s"$FHIR_ROOT_URL_FOR_DEFINITIONS/StructureDefinition/$rtype" + } else + profile + }) + //Supported profiles for resource type in CapabilityStatement.rest.resource.supportedProfiles val supportedProfiles = fhirConfigurationManager.fhirConfig.resourceConfigurations.get(rtype).map(_.supportedProfiles).getOrElse(Set.empty[String]) //Unknow profiles among them