Skip to content
FerroHEALTHPublic

About

A pure-Rust openEHR Clinical Data Repository: ITS-REST 1.1.0, AQL 1.1, PostgreSQL 18-native storage.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

85 stars

Watchers

1 watching

Forks

Latest commit

 

History

3,800 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
FerroEHR

The openEHR health record server, written in Rust, with every conformance claim measured.

Documentation · Live sandbox · Quick start · Commercial licence

Project
Release CI Containers License: BUSL-1.1 Docs GHCR Image pulls Artifact Hub DOI

Quality and security
OpenSSF Scorecard OpenSSF Best Practices Quality gate Coverage CodeQL Signed releases SLSA Build L3

openEHR conformance
Against the released openEHR specifications
openEHR BASE · released openEHR OPTIONS · released specification · released veredictum · released
Against the development openEHR specifications (master)
openEHR BASE · development openEHR OPTIONS · development specification · development veredictum · development
Compliance
EHDS CRA

What FerroEHR does

FerroEHR stores patient health records. It keeps them in openEHR, an open standard that describes clinical information (a blood pressure, a diagnosis, a discharge letter) independently of any one software product. Every change is kept as a new version, so the full history of a record stays readable and nothing is ever overwritten.

Applications such as an electronic patient record, a nursing app or a research dashboard all read and write through one standard interface. The data does not belong to the application that wrote it: you can replace an application, or add a new one, and the records stay where they are. That ends the usual lock-in, where moving to a new system means a migration project and a loss of history.

Who it is for

  • Hospitals and care providers that want to own their clinical data and choose their applications freely.
  • Software vendors and integrators that build clinical applications and need a standard back end to store and query records.
  • Research groups that need structured, queryable clinical data.

Why you can trust what it claims

Every release is signed and comes with a software bill of materials (the list of every component inside) and SLSA build provenance, so you can check that what you install is what was built here. The source is public, and every feature is in this repository: there is no paid edition with extra functions. The conformance reports link each run, with the openEHR specification as the reference, so you can check a result against the standard yourself.

Part of FerroHEALTH

FerroEHR is one of five FerroHEALTH servers. Each does one job and reaches the others only over published standards: FerroEHR stores the record, FerroBRIDGE translates it to FHIR and the OMOP research model, FerroFED connects records across organisations and borders, FerroPIX matches patient identities, and FerroTERM serves the code systems (the shared lists of medical terms). You can run FerroEHR alone or beside products from other vendors. Sign-in, the audit trail and the web consoles come from three shared libraries: FerroAUTH, FerroAUDIT and FerroUI.

The FerroEHR Viewer dashboard

Quick start

Try it without installing anything in the live sandbox (ferroehr / ferroehr, demo data, reset nightly). To run it yourself you need Docker Compose 2.23.1 or newer:

curl -LO https://github.com/FerroHEALTH/FerroEHR/releases/latest/download/docker-compose.yml
docker compose up

Then create an EHR and query it with AQL (development credentials ferroehr / ferroehr):

curl -u ferroehr:ferroehr -X POST -i http://localhost:8080/ferroehr/rest/openehr/v1/ehr

curl -u ferroehr:ferroehr -H 'Content-Type: application/json' \
  -d '{"q":"SELECT e/ehr_id/value FROM EHR e"}' \
  http://localhost:8080/ferroehr/rest/openehr/v1/query/aql

The API documentation is at http://localhost:8080/ferroehr/rest/swagger-ui (same credentials), and docker compose --profile viewer up adds the viewer on http://localhost:3000.

The quickstart asks FerroPIX, an IHE patient identity source, for the pseudonym an EHR_STATUS subject carries. To keep the subject-to-EHR cross-reference in FerroEHR instead, so a subject is named by its own namespace and identifier and GET /ehr?subject_id=&subject_namespace= finds it, start with one variable:

FERROEHR_EHR_INDEX=local docker compose up

These defaults are for evaluation only. The getting started guide continues from here, and Kubernetes & Helm covers production.

What ships today

Clinical records

Integration

Security and privacy

Operations

Published crates (9)
Crate What it does Version Docs Downloads
openehr-rm The Reference Model: compositions, EHR status, entries, data structures and data types crates.io docs.rs downloads
openehr-base BASE: the foundation and base types, such as identifiers and intervals crates.io docs.rs downloads
openehr-am The Archetype Model in both generations, AOM 1.4 and AOM 2.4 crates.io docs.rs downloads
openehr-adl The ADL engine: parser, AOM2 validity rules, flattener, OPT2 generator and ADL 1.4 to 2 conversion crates.io docs.rs downloads
openehr-its Canonical JSON and XML codecs, the ITS-REST contract, and the OPT 1.4 and AOM2 XML codecs crates.io docs.rs downloads
openehr-sdt The Simplified Formats (WebTemplate, FLAT, STRUCTURED), instance validation and the SMART scope grammar crates.io docs.rs downloads
openehr-query The AQL 1.1 lexer, parser and syntax tree crates.io docs.rs downloads
openehr-term The terminology model and the bundled openEHR terminology crates.io docs.rs downloads
openehr-lang The BMM object model and the ODIN reader crates.io docs.rs downloads

Learn more

Licence

Business Source License 1.1 (LICENSE), with Apache License 2.0 as the Change License four years after each version; the licensing page says when you need a commercial licence from Cadasto B.V.

About

A pure-Rust openEHR Clinical Data Repository: ITS-REST 1.1.0, AQL 1.1, PostgreSQL 18-native storage.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

85 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages