diff --git a/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/conformance/profile/ProfileUtilities.java b/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/conformance/profile/ProfileUtilities.java index 554dc8608..6203ef67c 100644 --- a/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/conformance/profile/ProfileUtilities.java +++ b/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/conformance/profile/ProfileUtilities.java @@ -1662,6 +1662,9 @@ public class ProfileUtilities extends TranslatingUtilities { if (isLikelySourceURLReference(url, resourceNames, baseFilenames, localFilenames)) { b.append("]("); b.append(basePath); + if (!Utilities.noString(basePath) && !basePath.endsWith("/")) { + b.append("/"); + } i = i + 1; } else { b.append("]("); @@ -1740,8 +1743,11 @@ public class ProfileUtilities extends TranslatingUtilities { url.startsWith("loinc.html") || url.startsWith("http.html") || url.startsWith("references") || + url.startsWith("license.html") || url.startsWith("narrative.html") || url.startsWith("search.html") || + url.startsWith("security.html") || + url.startsWith("versions.html") || url.startsWith("patient-operation-match.html") || (url.startsWith("extension-") && url.contains(".html")) || url.startsWith("resource-definitions.html"); diff --git a/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/elementmodel/Element.java b/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/elementmodel/Element.java index 9fc7d079d..93f0ce092 100644 --- a/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/elementmodel/Element.java +++ b/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/elementmodel/Element.java @@ -1327,25 +1327,39 @@ public class Element extends Base { super.copyValues(dst); Element dest = (Element) dst; - dest.comments.clear(); - dest.comments.addAll(comments); + if (comments != null) { + dest.comments = new ArrayList<>(); + dest.comments.addAll(comments); + } else { + dest.comments = null; + } dest.value = value; - dest.children.clear(); - dest.children.addAll(children); + if (children != null) { + dest.children = new ArrayList<>(); + dest.children.addAll(children); + } else { + dest.children = null; + } dest.line = line; dest.col = col; dest.xhtml = xhtml; dest.explicitType = explicitType; dest.hasParentForValidator = false; dest.path = path; - dest.messages.clear(); + dest.messages = null; dest.prohibited = prohibited; dest.required = required; - dest.childMap.clear(); + dest.childMap = null; dest.descendentCount = descendentCount; dest.instanceId = instanceId; dest.isNull = isNull; dest.source = source; } + public Base setProperty(String name, Base value) throws FHIRException { + setChildValue(name, value.primitiveValue()); + return this; + } + + } \ No newline at end of file diff --git a/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/utils/FHIRPathEngine.java b/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/utils/FHIRPathEngine.java index 92d42ee66..238a1e87b 100644 --- a/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/utils/FHIRPathEngine.java +++ b/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/utils/FHIRPathEngine.java @@ -3894,7 +3894,10 @@ public class FHIRPathEngine { } private List funcLowBoundary(ExecutionContext context, List focus, ExpressionNode expr) { - if (focus.size() != 1) { + if (focus.size() == 0) { + return makeNull(); + } + if (focus.size() > 1) { throw makeExceptionPlural(focus.size(), expr, I18nConstants.FHIRPATH_FOCUS, "lowBoundary", focus.size()); } int precision = 0; @@ -3929,7 +3932,10 @@ public class FHIRPathEngine { } private List funcHighBoundary(ExecutionContext context, List focus, ExpressionNode expr) { - if (focus.size() != 1) { + if (focus.size() == 0) { + return makeNull(); + } + if (focus.size() > 1) { throw makeExceptionPlural(focus.size(), expr, I18nConstants.FHIRPATH_FOCUS, "highBoundary", focus.size()); } int precision = 0;