Conformance and specification pins
The specifications are the authority for every transaction, parameter, status and acknowledgment FerroPIX handles: the IHE ITI Technical Framework (Volumes 1 and 2), the IHE PIXm, PDQm and PMIR implementation guides, HL7 FHIR R4, and the HL7 v2 PIX and PDQ transactions. Where none of them governs a decision, the code says so and names the decision as FerroPIX’s own design.
The specification versions
These are the versions the crates implement. The table is read from the
repository’s pin matrix, docs/VERSIONS.md, when the book is built, so it
cannot disagree with it.
| Item | Version | Transactions |
|---|---|---|
| IHE PIXm | ihe.iti.pixm 3.1.0 | ITI-83 Mobile Patient Identifier Cross-reference Query, ITI-104 Patient Identity Feed FHIR |
| IHE PDQm | ihe.iti.pdqm 3.2.0 | ITI-78 Mobile Patient Demographics Query, ITI-119 Patient Demographics Match |
| IHE PMIR | ihe.iti.pmir 1.6.0 | ITI-93 Mobile Patient Identity Feed, ITI-94 Subscribe to Patient Updates |
| IHE mCSD | ihe.iti.mcsd 4.0.0 | ITI-90, ITI-91 (a feature of ihe-iti) |
| IHE XCPD | ITI Technical Framework Vol 2 Rev 20.1 (2024-12-12), no FHIR package | ITI-55 (a feature of ihe-iti) |
| IHE IUA | ITI Technical Framework Supplement Rev 2.5 (2026-06-18) | ITI-71, ITI-72 (a feature of ihe-iti) |
| Netherlands Generic Functions | fhir.nl.gf 0.3.0 | the functions of nl-generic-functions |
| IHE ITI Technical Framework | Volumes 1 and 2, the revision the move pins | PIX and PDQ: ITI-8, ITI-9, ITI-10, ITI-21 and ITI-22, and ITI-44 to ITI-47 as the TF-2 texts decide, with the actors and options of each |
| HL7 FHIR | R4, 4.0.1 | the resources and the RESTful API PIXm and PDQm are profiled on |
| HL7 v2 | the version each PIX or PDQ transaction names in ITI TF-2 | the HL7 v2 PIX and PDQ transactions, where in scope |
The toolchain
| Item | Pin | Repeated in |
|---|---|---|
| Rust toolchain | 1.99.1 | rust-toolchain.toml |
| Minimum supported Rust version | 1.98 | Cargo.toml [workspace.package] rust-version |
| Edition | 2024 | Cargo.toml [workspace.package] edition, rustfmt.toml |
The minimum supported Rust version is one minor release below the toolchain the repository builds with, the FerroHEALTH family’s rule.
How conformance is held
- Every citation is checked against the vendored text. The
specification texts the crates read are vendored under
docs/specs/at pinned versions, each with aPROVENANCE.md, and theihe-citationscheck in CI holds every IHE section the tree cites to the vendored text of that profile and version. - Each answer is held to its profile. The clients refuse an answer that
departs from the transaction: a PIXm
$ihe-pixanswer is held to itsOperationDefinition, a PDQm search to the Query Patient Resource Response Message profile, an ITI-93 feed message to the PMIR profiles. The crate pages say what each client checks. - An unknown patient is never an outage. A
404reads as “patient unknown” only when itsOperationOutcomecarries anot-foundissue, as PIXm and PDQm define it; every other failure is a typed error. - Each feature builds and tests on its own. CI lints and tests every feature of both crates alone and with its audit feature, as well as all of them together.
There is no conformance statement for the server yet: it is part of the v0.0.3 milestone, which is planned.
The published texts
- IHE ITI Technical Framework: https://profiles.ihe.net/ITI/TF/index.html
- IHE PIXm: https://profiles.ihe.net/ITI/PIXm/
- IHE PDQm: https://profiles.ihe.net/ITI/PDQm/
- IHE PMIR: https://profiles.ihe.net/ITI/PMIR/
- IHE mCSD: https://profiles.ihe.net/ITI/mCSD/
- HL7 FHIR R4: https://hl7.org/fhir/R4/
- The Netherlands Generic Functions implementation guide: https://build.fhir.org/ig/nuts-foundation/nl-generic-functions-ig/