Skip to main content

ihe_atna/
lib.rs

1// SPDX-FileCopyrightText: Cadasto B.V.
2// SPDX-License-Identifier: BUSL-1.1
3
4//! The IHE audit trail, one feature per layer:
5//!
6//! - `atna`: Audit Trail and Node Authentication, the sending half of ITI-20
7//!   Record Audit Event (ITI TF-2 ยง3.20): the DICOM PS3.15 audit message over
8//!   syslog with TLS, the store-and-forward spool and the forwarder.
9//! - `balp`: the Basic Audit Log Patterns, the FHIR R4 `AuditEvent` an IHE
10//!   FHIR transaction is audited as, sent over ITI-20's ATX: FHIR Feed
11//!   through the same spool and forwarder.
12//!
13//! Module `user` names whom an audited exchange is made for, a user an OAuth
14//! 2.0 access token names, a local user, or the system itself, and compiles
15//! with or without a feature. Module `redact` is the `Debug` rendering of a
16//! value that may name a patient or carry a credential, and `fhir_base` the
17//! URL of an interaction under a FHIR base. Module `escape` (with `atna` or
18//! `balp`) is the escape every value of a written record goes through.
19//!
20//! The syslog sender is shown in the docs of `atna::repository` and a BALP
21//! record sent over the FHIR Feed in those of `atna::feed`, each a compiled
22//! example.
23//!
24//! The profiles are published at <https://profiles.ihe.net/ITI/>. The crate
25//! depends on no application: it is the audit transactions as Rust, for any
26//! caller.
27#![doc(test(attr(deny(warnings))))]
28
29#[cfg(any(feature = "atna", feature = "balp"))]
30pub mod atna;
31#[cfg(feature = "balp")]
32pub mod balp;
33#[cfg(all(feature = "recording", not(feature = "balp")))]
34#[path = "balp/recording_only.rs"]
35pub mod balp;
36#[cfg(any(feature = "atna", feature = "balp"))]
37pub mod escape;
38#[cfg(any(feature = "atna", feature = "balp", feature = "redact"))]
39pub mod fhir_base;
40pub mod redact;
41#[cfg(feature = "retrieve")]
42pub mod retrieve;
43pub mod user;