dicom_ul/
lib.rs

1//! This crates contains the types and methods needed to interact
2//! with DICOM nodes through the upper layer protocol.
3//!
4//! This crate can be used as a base
5//! for finite-state machines and higher-level helpers,
6//! enabling the creation of concrete service class users (SCUs)
7//! and service class providers (SCPs).
8//!
9//! - The [`address`] module
10//!   provides an abstraction for working with compound addresses
11//!   referring to application entities in a network.
12//! - The [`pdu`] module
13//!   provides data structures representing _protocol data units_,
14//!   which are passed around as part of the DICOM network communication support.
15//! - The [`association`] module
16//!   comprises abstractions for establishing and negotiating associations
17//!   between application entities,
18//!   via the upper layer protocol by TCP.
19//!
20//! ## Features
21//! * `async`: Enables a fully async implementation of the upper layer protocol.
22//!   See [`ClientAssociationOptions`] and [`ServerAssociationOptions`] for details
23
24pub mod address;
25pub mod association;
26pub mod pdu;
27
28/// The current implementation class UID generically referring to DICOM-rs.
29///
30/// Automatically generated as per the standard, part 5, section B.2.
31///
32/// This UID may change in future versions,
33/// even between patch versions.
34pub const IMPLEMENTATION_CLASS_UID: &str = "2.25.214312761802046835989399652652980912193";
35
36/// The current implementation version name generically referring to DICOM-rs.
37///
38/// This name may change in future versions,
39/// even between patch versions.
40pub const IMPLEMENTATION_VERSION_NAME: &str = "DICOM-rs 0.9.0";
41
42// re-exports
43
44pub use address::{AeAddr, FullAeAddr};
45pub use association::client::{ClientAssociation, ClientAssociationOptions};
46pub use association::server::{ServerAssociation, ServerAssociationOptions};
47pub use pdu::read_pdu;
48pub use pdu::write_pdu;
49pub use pdu::Pdu;