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 +