1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
//! # DICOM-rs library
//!
//! This crate serves as a mother library for
//! building DICOM compliant systems.
//!
//! This library aggregates the key modules
//! that you are likely to require when building software using DICOM-rs.
//! These modules are also available as crates
//! which can be fetched independently,
//! in complement or as an alternative to using the `dicom` crate.
//! When adding a new dependency in the DICOM-rs umbrella,
//! they will generally have the `dicom-` prefix.
//! For instance, the module `object`
//! lives in the crate named [`dicom-object`][1].
//!
//! [1]: https://docs.rs/dicom-object
//!
//! ## Basic
//!
//! - For an idiomatic API to reading and writing DICOM data
//! from files or other sources,
//! see the [`object`] module.
//! - To print human readable summaries of a DICOM object,
//! see the [`dump`] module.
//! - The [`pixeldata`] module helps you convert pixel data
//! into images or multi-dimensional arrays.
//! - The [`core`] crate contains most of the data types
//! that the other crates rely on,
//! including types for DICOM Tags ([`Tag`](dicom_core::Tag)),
//! value representations ([`VR`](dicom_core::VR)),
//! and in-memory representations of [DICOM values](dicom_core::DicomValue),
//! contained in [data elements](dicom_core::DataElement).
//! For convenience, the [`dicom_value!`] macro
//! has been re-exported here as well.
//! - The DICOM standard data dictionary is in [`dictionary_std`],
//! which not only provides a singleton to a standard DICOM tag index
//! that can be queried at run-time,
//! it also provides constants for known tags
//! in the [`tags`][dictionary_std::tags] module.
//! - In the event that you need to get
//! the global registry of known transfer syntaxes,
//! [`transfer_syntax`] a re-export of the `dicom-transfer-syntax-registry` crate.
//! Moreover, [inventory-based transfer syntax registry][ts]
//! is enabled by default
//! (see the link for more information).
//!
//! [ts]: dicom_encoding::transfer_syntax
//!
//! ## Advanced
//!
//! - To write DICOM network application entity software,
//! see the [`ul`] module for PDU reading/writing
//! and a DICOM association API.
//! - If you are writing or declaring your own transfer syntax,
//! you will need to take the [`encoding`] module
//! and build your own [`TransferSyntax`](encoding::TransferSyntax) implementation.
//! - [`parser`] contains the mid-level abstractions for
//! reading and writing DICOM data sets.
//! It might only be truly needed if
//! the `object` API is unfit or too inefficient for a certain task.
//!
//! ## More
//!
//! See the [DICOM-rs project repository][2]
//! for the full list of crates available in the DICOM-rs ecosystem.
//!
//! [2]: https://github.com/Enet4/dicom-rs
pub use dicom_core as core;
pub use dicom_dictionary_std as dictionary_std;
pub use dicom_dump as dump;
pub use dicom_encoding as encoding;
pub use dicom_object as object;
pub use dicom_parser as parser;
pub use dicom_pixeldata as pixeldata;
pub use dicom_transfer_syntax_registry as transfer_syntax;
pub use dicom_ul as ul;
// re-export dicom_value macro
pub use dicom_value;