Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Pinned versions

Every version FerroBRIDGE targets is pinned in one place, docs/VERSIONS.md, and a committed guard (scripts/checks/versions.sh) fails when any file that repeats a pin disagrees with it. This page is the reader’s copy of the specification pins and the reason each one is what it is.

The specification pins

ComponentPinWhy
FHIRconnectv1.0.0the only released version; its two published JSON schemas are vendored and exercised, and FerroBRIDGE adds a strict schema of its own because the published ones reject three of the specification’s own mapping types
FHIRR4 (4.0.1)the only value the FHIRconnect schemas admit for spec.version, and what the published mapping library targets
OMOCLv1.0.0the only released grammar (grammar: OMOCL/v1.0.0); the corpus is pinned by commit, because the git tag v1.0.0 carries files that predate the grammar
OMOP CDMv5.4the only version the published OMOCL files declare
openEHR ITS-REST1.1.0the released REST API a conformant CDR speaks

The FHIRconnect prose says other FHIR releases should work, and nothing tests that claim, so FerroBRIDGE does not make it. A later FHIR release is feature-gated in the model crate and claimed once a mapping corpus proves it.

Terminology operations

The FHIR terminology client speaks CodeSystem/$lookup, ConceptMap/$translate, and ValueSet/$validate-code, and tolerates a server answering R4 or R4B. The terminology server is configured, never assumed. OMOP concept resolution does not go through it at all; it is SQL over the loaded OHDSI vocabulary.

The two model crates

The FHIR model is the fhir-types crate, generated in this repository from the HL7 FHIR packages (R4 4.0.1, R4B 4.3.0, R5 5.0.0, R6 6.0.0-ballot5, THO 7.3.0) and published to crates.io; its version line continues the one the sibling project published up to 0.1.97 before the crate moved here, and the current pin is the fhir-types row of docs/VERSIONS.md. The openEHR model comes from seven published crates, pinned together on their 0.0 minor line (0.0.69 today; the pin matrix is the authority):

CrateUsed for
openehr-basethe RM foundation types, including partial dates
openehr-rmthe RM 1.1.0 model, its canonical JSON codec, the path parser
openehr-itsthe OPT 1.4 codec, the canonical JSON codec, the ITS-REST data types
openehr-sdtthe Web Template builder, the FLAT and STRUCTURED codecs, the composition builder, the RM-instance validation
openehr-querythe AQL 1.1.0 parser and printer
openehr-amthe AOM2 types an ADL 2 template decodes into
openehr-adltest only: compiles the ADL 2 fixtures from their .adls sources

Language and toolchain

The Rust toolchain, edition, resolver, and MSRV are pinned in the matrix and adopted by the workspace when it lands. The documentation toolchain is pinned too: mdbook, mdbook-toc, and mdbook-mermaid all carry an exact version in the matrix and in the composite action that installs them, so this book renders the same way in CI as it does on a laptop.