8 releases (4 breaking)
0.5.1 | Oct 23, 2022 |
---|---|
0.5.0 | Apr 28, 2022 |
0.5.0-rc.2 | Feb 3, 2022 |
0.5.0-rc.1 | Nov 18, 2021 |
0.1.0 | Aug 31, 2019 |
#163 in WebAssembly
1,544 downloads per month
Used in 20 crates
(9 directly)
600KB
14K
SLoC
DICOM-rs transfer-syntax-registry
This sub-project implements a registry of DICOM transfer syntaxes, which can be optionally extended.
An implementation based on inventory
can be used through the Cargo feature
inventory-registry
. inventory
allows for users to register new transfer
syntax implementations in a compile time plugin-like fashion,
but not all environments support it (such as WebAssembly).
lib.rs
:
This crate contains the DICOM transfer syntax registry.
The transfer syntax registry maps a DICOM UID of a transfer syntax into the
respective transfer syntax specifier. In the default implementation, the
container of transfer syntaxes is populated before-main through the
inventory pattern, then making all registerd TSes readily available
through the [TransferSyntaxRegistry
] type.
The default Cargo feature inventory-registry
can be deactivated for
environments which do not support inventory
, with the downside of only
providing the built-in transfer syntaxes.
This registry should not have to be used directly, except when developing higher level APIs, which should learn to negotiate and resolve the expected transfer syntax automatically.
Transfer Syntax descriptors
This crate encompasses the basic DICOM level of conformance:
Implicit VR Little Endian,
Explicit VR Little Endian,
and Explicit VR Big Endian are built-in.
Transfer syntaxes which are not supported,
or which rely on encapsulated pixel data,
are only listed as stubs to be replaced by separate libraries.
The full list is available in the entries
module.
Dependencies
~9MB
~139K SLoC