diff --git a/org.hl7.fhir.convertors/src/main/java/org/hl7/fhir/convertors/loaders/loaderR5/R4ToR5Loader.java b/org.hl7.fhir.convertors/src/main/java/org/hl7/fhir/convertors/loaders/loaderR5/R4ToR5Loader.java index 68246d57f..224a8d320 100644 --- a/org.hl7.fhir.convertors/src/main/java/org/hl7/fhir/convertors/loaders/loaderR5/R4ToR5Loader.java +++ b/org.hl7.fhir.convertors/src/main/java/org/hl7/fhir/convertors/loaders/loaderR5/R4ToR5Loader.java @@ -127,7 +127,7 @@ public class R4ToR5Loader extends BaseLoaderR5 implements IContextResourceLoader if (killPrimitives) { throw new FHIRException("Cannot kill primitives when using deferred loading"); } - if (r5 instanceof StructureDefinition && VersionUtilities.isR4BVer(version)) { + if (r5 instanceof StructureDefinition && VersionUtilities.isR4Ver(version)) { r5 = new StructureDefinitionHacker(version).fixSD((StructureDefinition) r5); } if (patchUrls) { diff --git a/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/conformance/StructureDefinitionHacker.java b/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/conformance/StructureDefinitionHacker.java index 9151db05b..5d28c11c6 100644 --- a/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/conformance/StructureDefinitionHacker.java +++ b/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/conformance/StructureDefinitionHacker.java @@ -1,5 +1,6 @@ package org.hl7.fhir.r5.conformance; +import org.hl7.fhir.r5.model.CanonicalType; import org.hl7.fhir.r5.model.ElementDefinition; import org.hl7.fhir.r5.model.ElementDefinition.TypeRefComponent; import org.hl7.fhir.r5.model.Resource; @@ -22,8 +23,25 @@ public class StructureDefinitionHacker { } public Resource fixSD(StructureDefinition sd) { + if (VersionUtilities.isR4Ver(version) && "http://hl7.org/fhir/StructureDefinition/example-composition".equals(sd.getUrl())) { + for (ElementDefinition ed : sd.getSnapshot().getElement()) { + fixDocSecURL(ed); + } for (ElementDefinition ed : sd.getDifferential().getElement()) { + fixDocSecURL(ed); + } + } return sd; } + private void fixDocSecURL(ElementDefinition ed) { + for (TypeRefComponent tr : ed.getType()) { + for (CanonicalType c : tr.getProfile()) { + if ("http://hl7.org/fhir/StructureDefinition/document-section-library".equals(c.getValue())) { + c.setValue("http://hl7.org/fhir/StructureDefinition/example-section-library"); + } + } + } + } + }