diff --git a/engine.fhir/src/main/java/org/opencds/cqf/cql/engine/fhir/model/Dstu3FhirModelResolver.java b/engine.fhir/src/main/java/org/opencds/cqf/cql/engine/fhir/model/Dstu3FhirModelResolver.java
index f2f15dfda..0b6e60f2c 100644
--- a/engine.fhir/src/main/java/org/opencds/cqf/cql/engine/fhir/model/Dstu3FhirModelResolver.java
+++ b/engine.fhir/src/main/java/org/opencds/cqf/cql/engine/fhir/model/Dstu3FhirModelResolver.java
@@ -318,6 +318,10 @@ public Object getContextPath(String contextType, String targetType) {
return "subject";
}
+ if (contextType.equals("Patient") && targetType.equals("Task")) {
+ return "for";
+ }
+
return super.getContextPath(contextType, targetType);
}
}
\ No newline at end of file
diff --git a/engine.fhir/src/main/java/org/opencds/cqf/cql/engine/fhir/model/R4FhirModelResolver.java b/engine.fhir/src/main/java/org/opencds/cqf/cql/engine/fhir/model/R4FhirModelResolver.java
index e547fa3fa..94fa2b2aa 100644
--- a/engine.fhir/src/main/java/org/opencds/cqf/cql/engine/fhir/model/R4FhirModelResolver.java
+++ b/engine.fhir/src/main/java/org/opencds/cqf/cql/engine/fhir/model/R4FhirModelResolver.java
@@ -356,6 +356,10 @@ public Object getContextPath(String contextType, String targetType) {
return "subject";
}
+ if (contextType.equals("Patient") && targetType.equals("Task")) {
+ return "for";
+ }
+
return super.getContextPath(contextType, targetType);
}
}
\ No newline at end of file
diff --git a/engine.fhir/src/test/java/org/opencds/cqf/cql/engine/fhir/model/TestDstu3ModelResolver.java b/engine.fhir/src/test/java/org/opencds/cqf/cql/engine/fhir/model/TestDstu3ModelResolver.java
index c3ccb7a90..a12916163 100644
--- a/engine.fhir/src/test/java/org/opencds/cqf/cql/engine/fhir/model/TestDstu3ModelResolver.java
+++ b/engine.fhir/src/test/java/org/opencds/cqf/cql/engine/fhir/model/TestDstu3ModelResolver.java
@@ -1,5 +1,6 @@
package org.opencds.cqf.cql.engine.fhir.model;
+import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertNotNull;
import static org.testng.Assert.assertNull;
import static org.testng.Assert.assertTrue;
@@ -218,7 +219,7 @@ public void contextPathTests() {
String path = (String) resolver.getContextPath("Patient", "Patient");
assertNotNull(path);
- assertTrue(path.equals("id"));
+ assertEquals(path, "id");
path = (String) resolver.getContextPath(null, "Encounter");
assertNull(path);
@@ -230,22 +231,25 @@ public void contextPathTests() {
path = (String) resolver.getContextPath("Patient", "Condition");
assertNotNull(path);
- assertTrue(path.equals("subject"));
+ assertEquals(path, "subject");
path = (String) resolver.getContextPath("Patient", "Appointment");
assertNotNull(path);
- assertTrue(path.equals("participant.actor"));
+ assertEquals(path, "participant.actor");
path = (String) resolver.getContextPath("Patient", "Account");
assertNotNull(path);
- assertTrue(path.equals("subject"));
+ assertEquals(path, "subject");
path = (String) resolver.getContextPath("Patient", "Encounter");
assertNotNull(path);
- assertTrue(path.equals("subject"));
+ assertEquals(path, "subject");
path = (String) resolver.getContextPath("Patient", "MedicationStatement");
- assertTrue(path.equals("subject"));
+ assertEquals(path, "subject");
+
+ path = (String) resolver.getContextPath("Patient", "Task");
+ assertEquals(path, "for");
// Issue 527 - https://github.com/DBCG/cql_engine/issues/527
path = (String) resolver.getContextPath("Unfiltered", "MedicationStatement");
diff --git a/engine.fhir/src/test/java/org/opencds/cqf/cql/engine/fhir/model/TestR4ModelResolver.java b/engine.fhir/src/test/java/org/opencds/cqf/cql/engine/fhir/model/TestR4ModelResolver.java
index 1c001133e..a085a850b 100644
--- a/engine.fhir/src/test/java/org/opencds/cqf/cql/engine/fhir/model/TestR4ModelResolver.java
+++ b/engine.fhir/src/test/java/org/opencds/cqf/cql/engine/fhir/model/TestR4ModelResolver.java
@@ -2,6 +2,7 @@
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.is;
+import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertNotNull;
import static org.testng.Assert.assertNull;
import static org.testng.Assert.assertTrue;
@@ -291,7 +292,7 @@ public void createInstanceTests() {
@Test
public void contextPathTests() {
- ModelResolver resolver = new Dstu3FhirModelResolver(FhirContext.forCached(FhirVersionEnum.DSTU3));
+ ModelResolver resolver = new R4FhirModelResolver(FhirContext.forCached(FhirVersionEnum.R4));
String path = (String)resolver.getContextPath("Patient", "Patient");
assertNotNull(path);
@@ -307,25 +308,28 @@ public void contextPathTests() {
path = (String)resolver.getContextPath("Patient", "Condition");
assertNotNull(path);
- assertTrue(path.equals("subject"));
+ assertEquals(path, "subject");
path = (String)resolver.getContextPath("Patient", "Appointment");
assertNotNull(path);
- assertTrue(path.equals("participant.actor"));
+ assertEquals(path, "participant.actor");
path = (String)resolver.getContextPath("Patient", "Account");
assertNotNull(path);
- assertTrue(path.equals("subject"));
+ assertEquals(path, "subject");
path = (String)resolver.getContextPath("Patient", "Encounter");
assertNotNull(path);
- assertTrue(path.equals("subject"));
+ assertEquals(path, "subject");
path = (String)resolver.getContextPath("Patient", "ValueSet");
assertNull(path);
path = (String)resolver.getContextPath("Patient", "MedicationStatement");
- assertTrue(path.equals("subject"));
+ assertEquals(path, "subject");
+
+ path = (String)resolver.getContextPath("Patient", "Task");
+ assertEquals(path, "for");
// Issue 527 - https://github.com/DBCG/cql_engine/issues/527
path = (String)resolver.getContextPath("Unfiltered", "MedicationStatement");
diff --git a/engine.jackson/pom.xml b/engine.jackson/pom.xml
index debc0c5d6..6f515a8f2 100644
--- a/engine.jackson/pom.xml
+++ b/engine.jackson/pom.xml
@@ -84,6 +84,16 @@
elm-jackson
test
+
+
+
+
+ xerces
+ xercesImpl
+ 2.12.2
+ provided
+ true
+
@@ -125,6 +135,10 @@
+
+ org.codehaus.mojo
+ animal-sniffer-maven-plugin
+