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
20pub mod address;
21pub mod association;
22pub mod pdu;
23
24/// The current implementation class UID generically referring to DICOM-rs.
25///
26/// Automatically generated as per the standard, part 5, section B.2.
27///
28/// This UID is subject to changes in future versions.
29pub const IMPLEMENTATION_CLASS_UID: &str = "2.25.130984950029899771041107395941696826170";
30
31/// The current implementation version name generically referring to DICOM-rs.
32///
33/// This names is subject to changes in future versions.
34pub const IMPLEMENTATION_VERSION_NAME: &str = "DICOM-rs 0.6";
35
36// re-exports
37
38pub use address::{AeAddr, FullAeAddr};
39pub use association::client::{ClientAssociation, ClientAssociationOptions};
40pub use association::server::{ServerAssociation, ServerAssociationOptions};
41pub use pdu::reader::read_pdu;
42pub use pdu::writer::write_pdu;
43pub use pdu::Pdu;