nl_generic_functions/lib.rs
1// SPDX-FileCopyrightText: Cadasto B.V.
2// SPDX-License-Identifier: BUSL-1.1
3
4//! The Netherlands Generic Functions for data exchange (the Nuts
5//! `nl-generic-functions-ig`, package `fhir.nl.gf` 0.3.0), one feature per
6//! function:
7//!
8//! - `nvi`: GF-Localization through the national index (NVI): which care
9//! providers hold data for a patient, asked on a pseudonymised BSN.
10//! - `mitz`: GF-Consent through Mitz: the closed authorization question,
11//! whether a data holder may make a patient's data available to a data
12//! user, asked on the BSN.
13//! - `lrza`: GF-Addressing through the national address book (LRZa): the
14//! care provider identifier (URA) of an NL-GF `Organization`.
15//! - `nuts-auth`: GF-Authentication on the Nuts profile: a `DPoP`-bound
16//! access token for a Verifiable Presentation of the holder's credentials
17//! (Nuts RFC021), its authorization server held to RFC 8414 on the issuer
18//! rule and metadata location of `ferrohealth-smart`.
19//! - `authorizer`: the authorizer a data user supplies to authenticate each
20//! request to a Generic Function (the IG's GFI-005), with no FHIR model;
21//! `nvi` turns it on.
22//!
23//! The identifier systems the functions share, GF-Identification, are in
24//! the `identification` module, built whenever `nvi`, `lrza` or `mitz` is on.
25//!
26//! The implementation guide is published at
27//! <https://build.fhir.org/ig/nuts-foundation/nl-generic-functions-ig/>. The
28//! crate depends on no application. Its home is FerroHEALTH/FerroPIX, the
29//! FerroHEALTH Master Patient Index, since identification and localization
30//! are a patient index's own functions in the Netherlands.
31#![doc(test(attr(deny(warnings))))]
32
33#[cfg(feature = "authorizer")]
34pub mod authorizer;
35#[cfg(any(feature = "nvi", feature = "lrza", feature = "mitz"))]
36pub mod identification;
37#[cfg(feature = "lrza")]
38pub mod lrza;
39#[cfg(feature = "mitz")]
40pub mod mitz;
41#[cfg(feature = "nuts-auth")]
42pub mod nuts_auth;
43#[cfg(feature = "nvi")]
44pub mod nvi;