Pathling is a set of tools that make it easier to use FHIR® and clinical terminology within health data analytics. It is built on Apache Spark, and it implements the SQL on FHIR view specification and the Bulk Data Access implementation guide.
FHIR R4 is the dominant standard for exchanging health data. It comes in both JSON or XML formats, and can contain over 140 different types of resources, such as Patient, Observation, Condition, Procedure, and many more.
Pathling is capable of reading all the different types of FHIR resources into a format suitable for data analysis tasks. This makes the following things possible:
- Creating SQL-friendly views from FHIR data
- Transforming data into other formats, such as CSV or Parquet
- Performing terminology queries against coded fields within the FHIR data
See Data in and out and Running queries for more information.
Health data often contains codes from systems such as SNOMED CT, LOINC or ICD. These codes contain a great deal of information about diagnoses, procedures, observations and many other aspects of a patient's clinical record.
It is common to group these codes based upon their properties, relationships to other codes, or membership within a pre-defined set. Pathling can automate the task of calling out to a FHIR terminology server to ask questions about the codes within your data.
Examples of the types of questions that can be answered include:
- Is this SNOMED CT procedure code a type of endoscopy?
- Does this LOINC test result code have an analyte of bilirubin?
- Is this ICD-10 code within the pre-defined list of codes within my cohort definition?
See Terminology functions for more information.
As part of the version 8 release, we took the decision to significantly change the focus and scope of Pathling with the purpose of rebuilding it around the SQL on FHIR specification.
This will mean that the server implementation will be temporarily removed. It will also mean that the scope of FHIRPath functions will be temporarily reduced to the minimal FHIRPath subset defined within the SQL on FHIR Shareable View Definition specification (with the exception of the terminology functions).
We have released this functionality as version 8, and we have spawned three work streams to build upon this new foundation:
- Implementation of a new server focused upon the Bulk Data Access IG and the draft SQL on FHIR server API. This server will not include the aggregate or extract operations.
- Expansion of the scope of the FHIRPath implementation to achieve full or close to full coverage of the FHIRPath spec.
- Implementation of Parquet on FHIR as the new schema for lossless persistence of FHIR data for analytics.
We think that this is the best way to align Pathling to user needs, and also to make sure that the code base is sustainable going forwards.
If you are a current user of the server, aggregate or extract operations, please continue using the v7.x series. We are happy to continue maintaining and accepting contributions to this series as requested by users, but will be focusing our enhancement efforts on v8.
Published Maven artifacts are signed with the following GPG key:
- Key ID:
ED48678D
- Fingerprint:
F814 751C 64B5 F5E7 08A8 C73F C3C6 291F ED48 678D
- User ID:
Pathling Developers <pathling@csiro.au>
The public key is available on keys.openpgp.org.
Pathling is copyright © 2018-2025, Commonwealth Scientific and Industrial Research Organisation (CSIRO) ABN 41 687 119 230. Licensed under the Apache License, version 2.0.
This means that you are free to use, modify and redistribute the software as you wish, even for commercial purposes.
If you use this software in your research, please consider citing our paper, Pathling: analytics on FHIR.
Pathling is experimental software, use it at your own risk! You can get a full description of the current set of known issues here.