LogoFHIR-FLI

Getting Started

Welcome to the FHIR-FLI Getting Started guide.

Getting Started with FHIR-FLI
FHIR-FLI Logo
#

Welcome to the Getting Started guide for FHIR-FLI. This guide will walk you through setting up and using the FHIR-FLI Dart libraries in your projects.

What is FHIR-FLI?#

FHIR-FLI (Fast Healthcare Interoperability Resources - with Flutter Library Integration) is a set of Dart libraries that enable Flutter developers to easily work with FHIR data. These libraries provide common functionality that is needed for working with FHIR, including serialization/deserialization, making RESTful requests, SMART on FHIR authentication authentication, local secure storage, FHIRPath, FHIR Bulk Data, FHIR Mapping, CQL, and resource validation.

Architecture#

The family is built in three layers:

  1. Model-independent engines - standalone packages with no dependency on any FHIR version: fhir_path (FHIRPath engine), cql (CQL engine), ucum (units of measure), and fhir_node (the reflection contract that lets the engines navigate any FHIR model).
  2. Version cores - fhir_r4, fhir_r5, and fhir_r6 provide the generated resource models for each FHIR version. Every class implements the FhirNode contract, which is how the engines above work across all three versions unchanged.
  3. Companion packages - thin bindings and utilities per version (fhir_r4_path binds the fhir_path engine to R4, fhir_r4_cql binds cql, plus REST, auth, database, bulk data, mapping, and validation packages).

FHIR Version Support#

All packages are available for FHIR R4, R5, and R6. The APIs are identical across versions - just swap the package name:

PackageR4R5R6
Core types fhir_r4 fhir_r5 fhir_r6
REST client fhir_r4_at_rest fhir_r5_at_rest fhir_r6_at_rest
Auth (SMART) fhir_r4_auth fhir_r5_auth fhir_r6_auth
Bulk data fhir_r4_bulk fhir_r5_bulk fhir_r6_bulk
CQL fhir_r4_cql fhir_r5_cql fhir_r6_cql
Database fhir_r4_db fhir_r5_db fhir_r6_db
Mapping fhir_r4_mapping fhir_r5_mapping fhir_r6_mapping
FHIRPath fhir_r4_path fhir_r5_path fhir_r6_path
Validation fhir_r4_validation fhir_r5_validation fhir_r6_validation

The documentation focuses on R4 examples, but all code works identically with R5 and R6 by changing the import.

Here are the official HL7 references for the above functionality#