diff --git a/matchbox-engine/src/main/java/org/hl7/fhir/r5/fhirpath/FHIRPathEngine.java b/matchbox-engine/src/main/java/org/hl7/fhir/r5/fhirpath/FHIRPathEngine.java
index 3e6911ad5ee..b7ca34faeb7 100644
--- a/matchbox-engine/src/main/java/org/hl7/fhir/r5/fhirpath/FHIRPathEngine.java
+++ b/matchbox-engine/src/main/java/org/hl7/fhir/r5/fhirpath/FHIRPathEngine.java
@@ -2998,7 +2998,7 @@ private List opMinus(List left, List right, ExpressionNode exp
throw makeExceptionPlural(right.size(), expr, I18nConstants.FHIRPATH_RIGHT_VALUE, "-");
}
// matchbox patch #1655
- if (!right.get(0).isPrimitive() && !((left.get(0).isDateTime() || left.get(0).hasType("Date") || "0".equals(left.get(0).primitiveValue()) || left.get(0).hasType("Quantity")) && right.get(0).hasType("Quantity"))) {
+ if (!right.get(0).isPrimitive() && !((left.get(0).isDateTime() || left.get(0).hasType("date") || left.get(0).hasType("dateTime") || "0".equals(left.get(0).primitiveValue()) || left.get(0).hasType("Quantity")) && right.get(0).hasType("Quantity"))) {
throw makeException(expr, I18nConstants.FHIRPATH_RIGHT_VALUE_WRONG_TYPE, "-", right.get(0).fhirType());
}
@@ -3017,7 +3017,7 @@ private List opMinus(List left, List right, ExpressionNode exp
result.add(qty.copy().setValue(qty.getValue().abs()));
}
// matchbox patch #1655
- } else if ((l.isDateTime() || l.hasType("Date")) && r.hasType("Quantity")) {
+ } else if ((l.isDateTime() || l.hasType("date") || left.get(0).hasType("dateTime")) && r.hasType("Quantity")) {
DateTimeType dl = l instanceof DateTimeType ? (DateTimeType) l : new DateTimeType(l.primitiveValue());
result.add(dateAdd(dl, (Quantity) r, true, expr));
} else {
diff --git a/matchbox-engine/src/test/resources/mapping-language/qrext.json b/matchbox-engine/src/test/resources/mapping-language/qrext.json
index b4182d66402..f11fb838d2e 100644
--- a/matchbox-engine/src/test/resources/mapping-language/qrext.json
+++ b/matchbox-engine/src/test/resources/mapping-language/qrext.json
@@ -23,7 +23,7 @@
},
{
"url": "urn:dateTime",
- "valueDate": "2023-09-25T13:19:13.502Z"
+ "valueDateTime": "2023-09-25T13:19:13.502Z"
}
],
"id": "qrpatientsexeresponse"