Skip to main content

ihe_iti/
lib.rs

1// SPDX-FileCopyrightText: Cadasto B.V.
2// SPDX-License-Identifier: BUSL-1.1
3
4//! The IHE IT Infrastructure (ITI) identity profiles a patient index, a
5//! gateway or any other client binds, one feature per profile:
6//!
7//! - `pixm`: Patient Identifier Cross-reference for Mobile, ITI-83.
8//! - `pdqm`: Patient Demographics Query for Mobile, ITI-78 and ITI-119.
9//! - `mcsd`: Mobile Care Services Discovery, ITI-90 and ITI-91.
10//! - `pmir`: Patient Master Identity Registry, ITI-93 and ITI-94.
11//! - `xcpd`: Cross-Community Patient Discovery, ITI-55, the one profile on
12//!   SOAP 1.2 with HL7 v3 and SAML XUA.
13//! - `balp`: the BALP `AuditEvent` of ITI-83, ITI-78, ITI-119, ITI-90,
14//!   ITI-91, ITI-93 and ITI-94 with `pixm`, `pdqm`, `mcsd` or `pmir`.
15//! - `atna`: the DICOM audit message of ITI-55 with `xcpd`, with no FHIR
16//!   model.
17//!
18//! The audit trail the records go to (ATNA ITI-20 and its FHIR Feed) is the
19//! `ihe-atna` crate.
20//!
21//! The PIXm, PDQm, mCSD and PMIR clients authenticate with a credential the
22//! HTTP client carries, or with an access token incorporated in each request
23//! by an authorizer the caller supplies (module `authorizer`, IUA ITI-72).
24//!
25//! A PIXm, PDQm or XCPD exchange names whom it is made for, a user or the
26//! client's own system (`ihe_atna::user`), and its audit record names that
27//! user.
28//!
29//! The profiles are published at <https://profiles.ihe.net/ITI/>. The crate
30//! depends on no application: it is the profiles' transactions as Rust, for
31//! any caller. Its home is FerroHEALTH/FerroPIX, the FerroHEALTH Master
32//! Patient Index, which adds the server sides as features.
33#![doc(test(attr(deny(warnings))))]
34
35#[cfg(any(feature = "pixm", feature = "pdqm", feature = "mcsd", feature = "pmir"))]
36pub mod authorizer;
37#[cfg(feature = "mcsd")]
38pub mod mcsd;
39#[cfg(any(feature = "pixm", feature = "pdqm", feature = "mcsd", feature = "pmir"))]
40pub mod outcome;
41#[cfg(feature = "pdqm")]
42pub mod pdqm;
43#[cfg(feature = "pixm")]
44pub mod pixm;
45#[cfg(feature = "pmir")]
46pub mod pmir;
47#[cfg(any(feature = "pixm", feature = "pdqm", feature = "mcsd", feature = "pmir"))]
48mod search;
49#[cfg(feature = "xcpd")]
50pub mod xcpd;