From b8d89d253e6c5854a364ff2dcd10e8b2de77dd4e Mon Sep 17 00:00:00 2001 From: Grahame Grieve Date: Sat, 19 Aug 2023 09:04:19 +1000 Subject: [PATCH] fix cross-version extensions URLs where possible --- .../java/org/hl7/fhir/r5/utils/XVerExtensionManager.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/utils/XVerExtensionManager.java b/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/utils/XVerExtensionManager.java index 6c5b94e3f..72f7b1a61 100644 --- a/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/utils/XVerExtensionManager.java +++ b/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/utils/XVerExtensionManager.java @@ -83,6 +83,7 @@ public class XVerExtensionManager { String verSource = url.substring(20, 23); String verTarget = VersionUtilities.getMajMin(context.getVersion()); String e = url.substring(54); + String r = e.contains(".") ? e.substring(0, e.indexOf(".")) : e; JsonObject root = lists.get(verSource); JsonObject path = root.getJsonObject(e); if (path == null) { @@ -91,7 +92,11 @@ public class XVerExtensionManager { StructureDefinition sd = new StructureDefinition(); sd.setUserData(XVER_EXT_MARKER, "true"); - sd.setWebPath(PackageHacker.fixPackageUrl("https://hl7.org/fhir/versions.html#extensions")); + if (context.getResourceNamesAsSet().contains(r)) { + sd.setWebPath(Utilities.pathURL(context.getSpecUrl(), r.toLowerCase()+"-definitions.html#"+e)); + } else { + sd.setWebPath(PackageHacker.fixPackageUrl("https://hl7.org/fhir/versions.html#extensions")); + } sd.setUrl(url); sd.setVersion(context.getVersion()); sd.setFhirVersion(FHIRVersion.fromCode(context.getVersion()));