diff --git a/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/context/BaseWorkerContext.java b/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/context/BaseWorkerContext.java index 7908ebe1b..e5b80fd8d 100644 --- a/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/context/BaseWorkerContext.java +++ b/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/context/BaseWorkerContext.java @@ -1375,7 +1375,8 @@ public abstract class BaseWorkerContext extends I18nBase implements IWorkerConte if (valueSet != null) { pIn.addParameter().setName("valueSet").setResource(valueSet); } - pIn.addParameter().setName("profile").setResource(expParameters); + + pIn.addParameters(expParameters); return pIn; } @@ -1388,7 +1389,7 @@ public abstract class BaseWorkerContext extends I18nBase implements IWorkerConte if (vsUrl != null) { pIn.addParameter().setName("url").setValue(new CanonicalType(vsUrl)); } - pIn.addParameter().setName("profile").setResource(expParameters); + pIn.addParameters(expParameters); return pIn; } @@ -1548,7 +1549,7 @@ public abstract class BaseWorkerContext extends I18nBase implements IWorkerConte if (expParameters == null) { throw new Error(formatMessage(I18nConstants.NO_EXPANSIONPROFILE_PROVIDED)); } - pin.addParameter().setName("profile").setResource(expParameters); + pin.addParameters(expParameters); if (options.isDisplayWarningMode()) { pin.addParameter("mode","lenient-display-validation"); diff --git a/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/model/Parameters.java b/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/model/Parameters.java index c5b362491..d9ae0ad06 100644 --- a/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/model/Parameters.java +++ b/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/model/Parameters.java @@ -1856,6 +1856,18 @@ public String toString() { getParameter().removeIf(p -> name.equals(p.getName())); } + public void addParameters(Parameters expParameters) { + addParameters(expParameters.getParameter()); + } + + private void addParameters(List parameters) { + for (ParametersParameterComponent p : parameters) { + if (!hasParameter(p.getName())) { + addParameter(p); + } + } + } + // end addition }