diff --git a/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/model/ExpressionNode.java b/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/model/ExpressionNode.java index 5330ca00b..65bfd18c6 100644 --- a/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/model/ExpressionNode.java +++ b/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/model/ExpressionNode.java @@ -423,12 +423,18 @@ public class ExpressionNode { } else if (constant instanceof StringType) { b.append("'" + Utilities.escapeJson(constant.primitiveValue()) + "'"); } else if (constant instanceof Quantity) { - Quantity q = (Quantity) constant; + Quantity q = (Quantity) constant; b.append(Utilities.escapeJson(q.getValue().toPlainString())); - b.append(" '"); - b.append(Utilities.escapeJson(q.getUnit())); - b.append("'"); - } else if (constant.primitiveValue() != null) { + if (q.hasUnit() || q.hasCode()) { + b.append(" '"); + if (q.hasUnit()) { + b.append(Utilities.escapeJson(q.getUnit())); + } else { + b.append(Utilities.escapeJson(q.getCode())); + } + b.append("'"); + } + } else if (constant.primitiveValue() != null) { b.append(Utilities.escapeJson(constant.primitiveValue())); } else { b.append(Utilities.escapeJson(constant.toString()));