Merged
Conversation
Add a single-resource FHIRPath evaluation method to the library API that encodes a FHIR resource JSON string into a one-row Spark Dataset, evaluates a FHIRPath expression, and returns typed results. Includes support for context expressions and user-defined variables. Add Python bindings wrapping the Java method via Py4J, and a new Flask HTTP server (fhirpath-lab-api/) implementing the FHIRPath Lab server protocol with FHIR Parameters input/output, CORS support, and health check endpoint. Includes Dockerfile, Helm chart, GitHub Actions CI workflow, and documentation.
Extract evaluation logic from PathlingContext into SingleInstanceEvaluator in the fhirpath module. Strip synthetic fields (_fid, value_scale, _value_canonicalized, etc.) from complex type results before JSON serialisation. Wire up typed variable support for %varName resolution in expressions.
Strip null-valued keys from complex type result dicts before JSON serialisation in the FHIRPath Lab API, producing cleaner output for types like Quantity and HumanName.
Move null stripping from the Python parameters layer (where it was unreachable) into SingleInstanceEvaluator.sanitiseRow() on the Java side. This ensures Row.json() produces clean JSON before crossing the Java/Python boundary. Remove the dead _strip_nulls function from the Python API server.
The string concatenation operator (&) is not implemented. Updated the + operator description to note it also handles string concatenation.
Add R binding for evaluating FHIRPath expressions against a single FHIR resource JSON string, mirroring the Python evaluate_fhirpath() method. Includes roxygen2 documentation, 7 tests, and a new "Single resource evaluation" section in the FHIRPath documentation with examples in all four languages. Replace Collections.emptyList() with new ArrayList<>() in SingleInstanceEvaluator to fix reflection access errors with sparklyr's invoke() in Java 17+.
Addresses CVE-2024-6839, CVE-2024-6844, and CVE-2024-6866 which were failing the Trivy security scan.
The FHIRPath union operator (|) was fully implemented in UnionOperator but never registered in the operator resolution chain. Parsing | threw UnsupportedFhirPathFeatureError, and the DSL tests that cover it were silently skipped. Adding a UNION enum constant wires the existing implementation into the parser.
The hadoop-aws package was not needed by any Python test (the bulk client test uses a localhost mock server). Its 558 MB transitive dependency (software.amazon.awssdk:bundle) caused Ivy resolution failures when the JAR was absent from the local Maven cache.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.