Skip to main content

Crate fhir_diff

Crate fhir_diff 

Source
Expand description

Semantic diff of FHIR packages and profiles.

Each package’s StructureDefinitions are converted to FHIR Schema (octofhir-fhirschema) and every profile is merged over its base chain into an effective element tree; two versions of a profile are compared on those trees and every change is classified as breaking, warning or info (diff::RULES). Packages come from a folder or from the package registry through octofhir-canonical-manager.

Re-exports§

pub use diff::Change;
pub use diff::Filter;
pub use diff::ProfileDiff;
pub use diff::Report;
pub use diff::Severity;
pub use diff::Status;
pub use diff::diff;
pub use model::Node;
pub use model::Pool;
pub use model::Profile;
pub use package::Definition;
pub use package::Loaded;
pub use package::Package;
pub use package::load;

Modules§

diff
Changes between two versions of a package, profile by profile and element by element, each classified by what it does to existing data and implementations.
model
The effective element tree of a profile: its FHIR Schema merged over every schema it is based on, down to the core type. Two versions of a profile are compared on these trees, so a change inherited from a base profile counts as much as one the profile makes itself.
package
FHIR packages as the diff reads them: a folder (an unpacked package, or its package subfolder) or name@version, installed from the package registry into the local package store when it is not there yet.
report
The report in Markdown (for people), JSON (for tools) and SARIF 2.1.0 (for code scanning in CI).