Releases: aehrc/pathling
Server v1.2.0
Adds support for the _typeFilter parameter across all bulk export operations, allowing clients to filter exported resources using FHIR search queries as defined in the FHIR Bulk Data Access specification.
New features
_typeFilterparameter for bulk export — System-level, patient-level, and group-level export operations now accept_typeFilterto apply FHIR search query filters to exported resources (e.g._typeFilter=Patient?gender=male). Multiple filters for the same resource type are combined with OR semantics. (#2552)- Type filter UI in admin console — The export form in the admin UI now includes inputs for building
_typeFilterexpressions when initiating an export.
Full Changelog: server-v1.1.1...server-v1.2.0
Server v1.1.1
Moving to v9.4.0 of the Pathling core libraries.
Bug fixes
- Styling problems on the resources page relating to horizontal space
Full Changelog: server-v1.1.0...server-v1.1.1
v9.4.0
Add single-resource FHIRPath evaluation to the library API, enabling evaluation of FHIRPath expressions against individual FHIR resource JSON strings without pre-loading datasets. Includes language bindings for Python and R.
New features
Single-resource FHIRPath evaluation
- Added
evaluateFhirPath()to the Java library API for evaluating FHIRPath expressions against a single FHIR resource JSON string (#2502) - Support for context expressions and user-defined variables (
%varNameresolution) - Added
evaluate_fhirpath()to the Python library - Added
pathling_evaluate_fhirpath()to the R library
Bug fixes
- Register the union operator (
|) in BinaryOperatorType, fixingUnsupportedFhirPathFeatureErrorwhen parsing union expressions
Documentation
- Remove incorrect claim of
&operator support from FHIRPath documentation - Add "Single resource evaluation" section to FHIRPath documentation with examples in Java, Python, R, and Scala
Full Changelog: v9.3.1...v9.4.0
v9.3.1
Minor changes in support of search functionality.
New features
- Build per-resource FHIRPath expressions from union expressions in standard search parameter definitions
- Expand SearchColumnBuilder to handle additional search parameter types: uri, quantity, and number
Bug fixes
- Support string search on HumanName and Address types by recognising them as string-compatible
Full Changelog: v9.3.0...v9.3.1
Server v1.1.0
Adds standard FHIR search parameter support alongside the existing FHIRPath-based search, with a corresponding search interface in the admin UI.
New features
Standard FHIR search parameters
The server now supports searching using the standard search parameters defined in the FHIR specification, in addition to the existing FHIRPath-based search. Both approaches can be combined in a single request.
Supported parameter types: token, string, date, number, quantity, reference, and URI. Supports modifiers including :not, :exact, :below, :above, and :[type] for reference parameters.
Read the docs: Search
Admin UI search
The built-in admin interface now includes a search form for filtering resources using standard search parameters, with the form dynamically updating based on the selected resource type.
Bug fixes
- Support string search on HumanName and Address types by recognising them as string-compatible
Dependencies
- Updated Pathling core libraries to v9.3.1
Full Changelog: server-v1.0.0...server-v1.1.0
v9.3.0
New features
FHIR Search API
This change adds support in the library for parsing FHIR Search queries and converting them into Spark columns.
This will be used to implement expanded search functionality within an upcoming server release.
- Implemented comprehensive FHIR Search API support in the fhirpath module (#1986)
- Added search parameter support for:
- STRING type (with :exact and :not modifiers)
- TOKEN type (with array value support)
- DATE type (with prefix support: eq, ne, gt, ge, lt, le, and Period support)
- NUMBER type
- QUANTITY type (with UCUM normalisation and system|code syntax)
- URI type
- REFERENCE type
Read the docs:
Library API additions
- Added "search to column" APIs for Java, Python and R
- Added "FHIRPath to column" APIs for Java, Python and R
- Added
pathling_filterandpathling_with_columnto R library
FHIRPath enhancements
- Implemented
count()function (#2532) - Implemented
resolve()function for references (#2522) - Implemented
is()function andisoperator for type checking (#2383) - Implemented
as()function andasoperator for type casting (#2383) - Added union operator (
|) support for primitive types (String, Integer, Decimal, Boolean) and complex types (Quantity, Coding, Time, Date, DateTime) (#2398)
Bug fixes
- Fixed preservation of extensions on elements within choice types (#2538)
Dependencies
- Upgraded Apache Spark from 4.0.1 to 4.0.2
- Removed usage of deprecated AgnosticExpressionPathEncoder (#2497)
Infrastructure and tooling
- Initialised OpenSpec spec-driven development workflow system
- Added shared pre-commit formatting hook
- Reformatted all Java source with google-java-format
- Reformatted Python code with ruff
- Applied styler formatting to R code
Full Changelog: v9.2.0...v9.3.0
Server v1.0.0
This is the first release of the redesigned Pathling server—a FHIR R4 analytics server built on Apache Spark that accepts data from multiple sources, stores it in an optimised data warehouse, and exposes powerful query and export capabilities.
Highlights
SQL on FHIR
Full support for the SQL on FHIR specification, replacing the previous $aggregate and $extract operations with a standards-based approach. ViewDefinitionscreated for Pathling will work on any SQL on FHIR compliant system.
$viewdefinition-run– execute ViewDefinitions synchronously for interactive exploration$viewdefinition-export– run views asynchronously and export to NDJSON, CSV, or Parquet
Bulk data operations
$import– load FHIR data from S3, HDFS, or local filesystem in NDJSON or Parquet format$import-pnp– synchronise directly from FHIR servers that support bulk export$export– extract data using the FHIR Bulk Data Access specification (system, patient, and group-level)
CRUD and search
- Full CRUD operations on FHIR resources
- FHIRPath-based search for expressive filtering
Web interface
A built-in administration interface for browsing resources, executing ViewDefinitions, and managing bulk operations. Served directly by the server with no additional deployment required.
Deployment
- Docker:
docker run -p 8080:8080 ghcr.io/aehrc/pathling:1 - Kubernetes: Helm chart supporting single-node and cluster deployments
Documentation
See the server documentation for details on all operations and configuration options.
Read the announcement blog post for more background.
Helm Chart for Server v2.0.0
This release accompanies the new Pathling server (v1.0.0), featuring a ground-up redesign with SQL on FHIR support, a web-based administration interface, and comprehensive bulk data operations.
What's new
- SQL on FHIR support – Execute ViewDefinitions interactively with
$viewdefinition-runor export results at scale with$viewdefinition-export - Bulk data operations – Import data from S3, HDFS or local filesystem; synchronise with remote FHIR servers via
$import-pnp; export using the FHIR Bulk Data Access specification - Web administration interface – Browse resources, execute ViewDefinitions, and manage bulk operations through a built-in React UI
- FHIRPath search – Query resources using FHIRPath expressions instead of standard FHIR search parameters
Chart features
- Startup, liveness and readiness probes via Spring Boot Actuator
- Services for FHIR API, Actuator management, Spark UI, driver and block manager endpoints
- Spark Kubernetes cluster manager support with service account, role and role binding
- Configurable resource requests/limits, volumes, image pull secrets, tolerations, affinity, and security context
- Secret configuration for sensitive values
Installation
helm repo add pathling https://pathling.csiro.au/helm
helm repo update
helm install pathling pathling/pathlingSee the Kubernetes deployment documentation for configuration examples.
Helm Chart for Server Cache v1.0.0
A Varnish-based frontend cache optimised for use with Pathling Server. This chart deploys an intermediate HTTP cache that reduces load on the Pathling server and improves response times for
repeated queries.
Features
- ETag-based revalidation – Caches responses and revalidates with Pathling when clients send
If-None-Matchheaders - Cache-Control aware – Respects
no-cache,no-store, andprivatedirectives, passing these responses through uncached - Gzip compression – Compresses responses to reduce bandwidth
- Configurable backend – Set
PATHLING_HOSTandPATHLING_PORTenvironment variables to point to your Pathling server
Installation
helm repo add pathling https://pathling.csiro.au/helm
helm repo update
helm install pathling-cache pathling/pathling-cacheSee the Caching documentation for configuration details.
v9.2.0
What's changed
ViewDefinition resource support
The encoders module now supports ViewDefinition as a custom resource type from the SQL on FHIR specification. This includes:
- A new
ResourceTypesutility class for resource type validation that supports custom resource types - A HAPI FHIR resource class for ViewDefinition, allowing HAPI to recognise and parse ViewDefinition resources
Write operation details
All data sink write methods (ndjson(), parquet(), delta(), tables()) now return a WriteDetails object containing information about the files that were written. This is useful
for downstream processing and logging.
This change affects both the Java library API and the Python library.
Authentication library
The terminology module now includes the fhir-auth library (1.0.0) for enhanced authentication capabilities when connecting to terminology servers.
Code quality infrastructure
New tooling has been added to enforce consistent code formatting:
- Spotless Maven plugin for automatic Java code formatting with Google Java Format
- Checkstyle Maven plugin for code style checking
- Updated Python packaging to use
pyproject.toml - Added
.lintrconfiguration for R code linting
Dependency updates
- Updated
bulk-exportversion from 1.0.3 to 1.0.4 - Added
fhir-authdependency (1.0.0)
New contributors
- @fhnaumann made their first contribution in #2482
Full changelog: v9.1.0...v9.2.0