11#ifndef PACS_ENCODING_TRANSFER_SYNTAX_HPP
12#define PACS_ENCODING_TRANSFER_SYNTAX_HPP
53 [[nodiscard]] std::string_view
uid()
const noexcept;
59 [[nodiscard]] std::string_view
name()
const noexcept;
94 [[nodiscard]]
bool is_valid()
const noexcept;
214 std::string_view
uid);
Represents a DICOM Transfer Syntax.
vr_encoding vr_type() const noexcept
Returns the VR encoding mode for this Transfer Syntax.
friend std::optional< transfer_syntax > find_transfer_syntax(std::string_view)
Allow registry functions to use private constructor.
static const transfer_syntax explicit_vr_big_endian
Explicit VR Big Endian (1.2.840.10008.1.2.2) - Retired.
static const transfer_syntax jpeg2000_lossy
JPEG 2000 Image Compression (1.2.840.10008.1.2.4.91)
transfer_syntax(std::string_view uid)
Constructs a transfer_syntax from a UID string.
static const transfer_syntax jpegxl_jpeg_recompression
JPEG XL JPEG Recompression (1.2.840.10008.1.2.4.111) - Supplement 232.
std::string_view uid() const noexcept
Returns the Transfer Syntax UID.
static const transfer_syntax htj2k_lossy
HTJ2K (1.2.840.10008.1.2.4.203) - Lossless or Lossy.
byte_order endianness() const noexcept
Returns the byte ordering for this Transfer Syntax.
static const transfer_syntax hevc_main
HEVC/H.265 Main Profile / Level 5.1 (1.2.840.10008.1.2.4.107)
static const transfer_syntax hevc_main10
HEVC/H.265 Main 10 Profile / Level 5.1 (1.2.840.10008.1.2.4.108)
static const transfer_syntax jpegxl_lossless
JPEG XL Lossless (1.2.840.10008.1.2.4.110) - Supplement 232.
static const transfer_syntax frame_deflate
Frame Deflate (1.2.840.10008.1.2.11) - Supplement 244.
friend std::vector< transfer_syntax > supported_transfer_syntaxes()
Returns a list of all supported Transfer Syntaxes.
bool operator!=(const transfer_syntax &other) const noexcept
Compares two Transfer Syntaxes by UID.
static const transfer_syntax jpeg_baseline
JPEG Baseline (Process 1) (1.2.840.10008.1.2.4.50)
std::string_view name() const noexcept
Returns the human-readable name of the Transfer Syntax.
bool operator==(const transfer_syntax &other) const noexcept
Compares two Transfer Syntaxes by UID.
friend std::vector< transfer_syntax > all_transfer_syntaxes()
Returns a list of all known Transfer Syntaxes.
static const transfer_syntax htj2k_lossless
HTJ2K Lossless Only (1.2.840.10008.1.2.4.201)
static const transfer_syntax rle_lossless
RLE Lossless (1.2.840.10008.1.2.5)
bool is_supported() const noexcept
Checks if this Transfer Syntax is currently supported.
static const transfer_syntax explicit_vr_little_endian
Explicit VR Little Endian (1.2.840.10008.1.2.1)
static const transfer_syntax implicit_vr_little_endian
Implicit VR Little Endian (1.2.840.10008.1.2)
static const transfer_syntax jpeg_lossless
JPEG Lossless, Non-Hierarchical (1.2.840.10008.1.2.4.70)
bool is_deflated() const noexcept
Checks if this Transfer Syntax uses deflate compression.
static const transfer_syntax jpegxl_lossy
JPEG XL (1.2.840.10008.1.2.4.112) - Supplement 232.
static const transfer_syntax deflated_explicit_vr_le
Deflated Explicit VR Little Endian (1.2.840.10008.1.2.1.99)
static const transfer_syntax htj2k_rpcl
HTJ2K RPCL (1.2.840.10008.1.2.4.202) - Lossless Only.
bool is_valid() const noexcept
Checks if this is a recognized DICOM Transfer Syntax.
static const transfer_syntax jpeg2000_lossless
JPEG 2000 Image Compression (Lossless Only) (1.2.840.10008.1.2.4.90)
bool is_encapsulated() const noexcept
Checks if this Transfer Syntax uses encapsulated (compressed) format.
std::optional< transfer_syntax > find_transfer_syntax(std::string_view uid)
Looks up a Transfer Syntax by its UID.
std::vector< transfer_syntax > all_transfer_syntaxes()
Returns a list of all known Transfer Syntaxes.
std::vector< transfer_syntax > supported_transfer_syntaxes()
Returns a list of all supported Transfer Syntaxes.
byte_order
Byte ordering for DICOM data encoding.
vr_encoding
Value Representation encoding mode.