Closed
Description
Describe the bug
I am able to generate a care plan using a minimal Plan Definition. When I add a condition
to the plan definition, the app crashes instead with
java.lang.NullPointerException: Attempt to invoke virtual method 'boolean org.hl7.fhir.r4.model.Base.isResource()' on a null object reference
at org.hl7.fhir.r4.utils.FHIRPathEngine.evaluate(FHIRPathEngine.java:525)
at org.hl7.fhir.r4.hapi.fluentpath.FhirPathR4.evaluate(FhirPathR4.java:31)
at org.opencds.cqf.cql.evaluator.plandefinition.r4.PlanDefinitionProcessor.evaluateConditionOrDynamicValue(PlanDefinitionProcessor.java:568)
at org.opencds.cqf.cql.evaluator.plandefinition.r4.PlanDefinitionProcessor.meetsConditions(PlanDefinitionProcessor.java:458)
at org.opencds.cqf.cql.evaluator.plandefinition.r4.PlanDefinitionProcessor.resolveAction(PlanDefinitionProcessor.java:174)
at org.opencds.cqf.cql.evaluator.plandefinition.r4.PlanDefinitionProcessor.resolveActions(PlanDefinitionProcessor.java:161)
at org.opencds.cqf.cql.evaluator.plandefinition.r4.PlanDefinitionProcessor.apply(PlanDefinitionProcessor.java:136)
at com.google.android.fhir.workflow.FhirOperator.generateCarePlan(FhirOperator.kt:241)
at com.example.enginetest.MainActivity$onCreate$1.invokeSuspend(MainActivity.kt:117)
Component
Workflow Library
To Reproduce
See https://github.com/williamito/fhir-engine-test/blob/main/app/src/main/java/com/example/enginetest/MainActivity.kt
It works with
{
"resourceType": "PlanDefinition",
"id": "Test-PlanDefinition",
"status": "active",
"action": [
{
"definitionCanonical": "http://example.org/ActivityDefinition/ADTest"
}
]
}
And crashes with
{
"resourceType": "PlanDefinition",
"id": "Test-PlanDefinitionCondition",
"status": "active",
"action": [
{
"condition": [
{
"kind": "applicability",
"expression": {
"language": "text/fhirpath",
"expression": "true"
}
}
],
"definitionCanonical": "http://example.org/ActivityDefinition/ADTest"
}
]
}
I also tried variations of "language": "text/cql"
and got a similar crash from the CQL libraries complaining about a missing resource.
Expected behavior
Trivial condition
evaluates to true and care plan is generated.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Metadata
Assignees
Type
Projects
Status
Complete