FHIR

Page tree

Introduction

This page lists known open source implementations of the FHIR specification. For a list of running servers, see Publicly Available FHIR Servers for testing

Reference Libraries

  • JAVA: https://github.com/jamesagnew/hapi-fhir - James Agnew / University Health Network
    • Object Models, Parsers, Client + Server Framework, FHIR Validator, & Utilities. The FHIR specification is built with this Java code.
    • Open-source Java library for quickly creating FHIR Servers and Clients
    • Geared towards adding FHIR capability to existing applications (e.g. it's not a database, it's a library for quickly bolting FHIR on to your own database, or connecting to other FHIR servers as a client)
    • Supports all resource types, most operations, and both xml and json encodings
    • "Tinder" code generator (Maven plugin) creates model objects and clients from Profiles and Conformance statements
  • JAVA: https://github.com/sg-victorchai/fhir4java-agents- Victor Chai (Singapore)
    • Open-source Java based FHIR server, geared toward enterprise grade deployment.
    • It supports native AI agent integration through universal MCP tools (discover, query and mutate), see youtube demo
    • It supports custom resources for use cases where there is no FHIR standard resource available
    • It provides set of Skills to define custom resources, define FHIR profiles etc
    • It supports publish/subscribe notification and support SSE and Webhook delivery, and support FHIR subscription resources
    • It is equipped with BDD to do full end-to-end functional tests
    • It supports deployment to local Docker environment for development, and production AWS Cloud Environment deployment where all the AWS services are configured as private and integrated through VPC endpoint.
  • Python 
    There is no single reference implementation for Python. 
    • client-py - a flexible Python client for FHIR servers supporting the SMART on FHIR protocol.
      • Object Model, Client and Utilities
      • Open-source Python library for quickly creating FHIR applications
      • Supports R4, STU3, and DSTU2, all resource types, json encodings, some validation
      • *fhirclient*, a flexible Python client for FHIR servers supporting the SMART on FHIR protocol
      • data model classes that handle (de)serialization and allow to work with FHIR data in a Pythonic way
      • *fhir-parser* application to build custom resources
      • Demo Flask App
    • fhir-py - async FHIR client for python3. 
    • fhir-py-types
      • CLI for generating dict-based types for FHIR from StructureDefinitions. It is designed to be used with fhir-py 
    • fhir.resources - Powered by pydantic python classes with built-in data validation.
      • Open-source Python library implements FHIR Specification in python, each resource represents a python class.
      • Available for R4, STU3, and DSTU2 currently.
    • fhirpath-py – a Python implementation of FHIRPath
    • fhirstarter - ASGI FHIR API framework
    • Zato - Open-source, Python-based interoperability and integration platform
      • FHIR version-agnostic
      • Supports dozens of other technologies, data formats and serialization methods
      • Security (incl. OAuth), clustering and HA
  • Swift https://github.com/apple/FHIRModels

    • Native Swift representation of FHIR resources, elements and data types

    • Separate targets for DSTU2, STU3, R4, R4B, R5 and latest build versions

    • Enforced non-nullability of mandatory parameters, enums to support value[ x] types

    • Date/Time parsing, validation and conversion

    • Swift `Codable` and `Sendable`

    • Swift-SMART: a full client implementation of the FHIR specification for building apps: https://github.com/smart-on-fhir/Swift-SMART

  • PHP - PHP FHIR
  • Java - IBM FHIR Server: http://github.com/ibm/fhir
  • Dart/Flutter: - Grey Faulkenberry / Children's Hospital of Philadelphia
    • Open-source Dart/Flutter library for creating mobile FHIR applications
    • Github repository with source code for all packages
    • Pub.dev Packages - all packages available for free download and inclusion in all Dart/Flutter projects
    • fhir - Github/Pub.dev
      • base package supports R4, Stu3, Dstu2 and R5 (Preview #3)
      • json encodings/decodings
      • yaml encodings/decodings
      • most validation
      • all packages below also support all of these versions
    • fhir_auth - Github/Pub.dev
      • Autentication using SMART on FHIR
      • Also allows authentication with Google, Google Identity Platform and Azure
      • Authentication for AWS Health Lake coming soon
    • fhir_at_rest - Github/Pub.dev
      • Helper classes to simplify RESTful requests to FHIR servers
    • fhir_bulk - Github/Pub.dev
      • Package for uploading/downloading FHIR bulk files (.ndjson)
      • Also works with .zip (and gzip.tar)
    • fhir_db - Github/Pub.dev
      • For storing information securely on a mobile device
      • Build using a locally embedded NoSQL DB on top of SQLite
      • Allows encryption with AES-256 or Salsa20
    • fhir_uscore - Github/Pub.dev
      • Collection of the above packages
      • Trimmed down to conform to USCore IG
      • Only available in R4 currently
  • Flutter - UI add-on SDK to Grey Faulkenberry's Dart/Flutter packages
  • Java - SmartEhr / SmartServer implementations of "EHR Launch" embedded SMART on FHIR apps
    • Extensive tutorial and walkthrough (also see series parts 2, 3, 4)
    • Full code under MIT License: GitHub
    • Standalone app (no external web server required) or embed into any web framework
    • Minimal dependency (none beyond gson)
  • Android - https://github.com/google/android-fhir
    • The Android FHIR SDK is a Kotlin library for building offline-capable, mobile-first healthcare applications using FHIR resources on Android.
    • Working closely with the WHO and FHIR Clinical Guidelines groups
    • FHIR Engine - Search, sync, data access
    • SDC implementation
    • CQL (Library/$evaluate, PlanDefinition/$apply)
  • Clojure - Blaze FHIR Server: https://samply.github.io/blaze/
  • Kotlin Multiplatform - https://github.com/google/kotlin-fhir
    • FHIR data models on Kotlin Mulitplatform for Android, iOS and web development
    • A gradle build plugin to generate clean and modern Kotlin classes from FHIR structure definitions
    • Only essential Kotlin Multiplatform dependencies - no bloat
    • Supports JSON (and other formats supported by kotlinx serialization such as protocol buffers), no XML or Turtle support
    • Supports multiple FHIR versions (R4, R4B and R5 as of Jan 2025)

JavaScript

There is no single reference implementation for JavaScript.


  • Web Application Frameworks (Node):
    • Clinical Meteor - Opensource web application framework using the Meteor build tool (developed at MIT).  Includes an ecosystem of ~200 packages, with one package for each FHIR resource type, containing isomorphic hand-crafted DSTU2 schemas using SimpleSchema and UI components with a handlebars type syntax.  Relies on the Data Distribution Protocol for FHIR-over-websockets data subscriptions and optimistic UI.  Requires the Atmosphere package manager (Meteor/websockets specific).   Somewhat deprecated after 80+ prototypes, after successfully refactoring MeteorOnFHIR into the NodeOnFHIR project.  Clinical Meteor is something of a scrapyard of Node+FHIR projects.  

    • NodeOnFHIR - Successor to the Clinical Meteor and MeteorOnFHIR projects.  Modern Node based web stack, supporting Javascript, ECMAscript, CoffeeScript, TypesSript and other languages that compile to a JVM.  Supports Cordova and Electron build pipelines for distribution on iOS, Android, and other mobie devices.  Includes support for major FHIR libraries found on NPM, including `fhir-kit-client` and `fhirclient`.  Supports an express based FHIR server; as well as React based FHIR UI components.  

      • Example Plugin - NodeOnFHIR is built with a WordPress style plugin architecture.  The example plugin demonstrates basic page routing, config files, UI components, etc.
      • Covid19 On FHIR - SMART on FHIR data mining utility for query an FHIR server for COVID19 related data.
      • Vault Server (Freemium) - Express based FHIR Server for the NodeOnFHIR web application framework.
      • fhir-starter - NPM package for building React based FHIR components.  Material UI design dependencies.  No Meteor/Atmosphere dependencies.

Other Open source Implementations

  • FHIRBase - open source relational storage for FHIR with document API based on PostgreSQL. FHIRBase is an attempt to take the best parts of Relational & Document Databases for persistence of FHIR resources. FHIRBase stores resources relationally and gives you the power of SQL for querying & aggregating. At the same time FHIRBase provides a set of SQL procedures & views to persist and retrieve resources as a json documents in one hop.
  • the FHIR build tool itself is open source and includes various definitional and reasoning tools. See [2].
  • [4] - DSTU-2 FHIR entities compatible with .Net Core
  • Synthea - Synthetic patient simulation that generates longitudinal FHIR (R4, STU3, and DSTU2) records suitable for software development, integration, testing, demoing. Over 60 diseases with reasonable comorbidities and treatments. Supports Patient, Condition, Encounter, Observation, DiagnosticReport, Immunization, AllergyIntolerance, MedicationRequest, Procedure, ImagingStudy, Organization, Practitioner, Claim, ExplanationOfBenefit.
  • No labels

6 Comments

  1. Virginia Lorenzi

    Is this needed or is it covered in the FHIR specification itself?

    1. Lloyd McKenzie

      The FHIR specification points to this page actually.  The list of available open source implementations is dynamic and isn't appropriate to embed in the formal specification

  2. Virginia Lorenzi

    OK - I just like not having to worry about going to the wiki unless directed there by the spec - less confusing - one less place to check because it feels likes it in the spec then,

  3. Grey Faulkenberry

    Are there requirements to have a library listed here? I'm developing one for Flutter/Dart, and it's not completed yet, but I wanted to now if there are specifications it would have to meet to be listed here. 

    1. Lloyd McKenzie

      Just be an open-source licensed implementation of FHIR...

  4. Nikola Tanjga

    Where is the code available for https://valentiatech.snochillies.com/?

    The Link for Patients First NZ Terminology Server is down. I couldn't find anything with classical search engines. - the endpoint is now https://terminz.azurewebsites.net/fhir

    Btw.: I think you could add GitHub - IHTSDO/snowstorm: Scalable SNOMED CT Terminology Server using Elasticsearch here.

Morty Proxy This is a proxified and sanitized view of the page, visit original site.