|
PACS System 0.1.0
PACS DICOM system library
|
Namespaces | |
| namespace | compression |
| namespace | simd |
Classes | |
| struct | character_set_info |
| Information about a DICOM character set. More... | |
| class | explicit_vr_big_endian_codec |
| Encoder/decoder for Explicit VR Big Endian transfer syntax. More... | |
| class | explicit_vr_codec |
| Encoder/decoder for Explicit VR Little Endian transfer syntax. More... | |
| class | implicit_vr_codec |
| Encoder/decoder for Implicit VR Little Endian transfer syntax. More... | |
| struct | specific_character_set |
| Parsed representation of a multi-valued Specific Character Set. More... | |
| struct | text_segment |
| A text segment with its associated character set. More... | |
| class | transfer_syntax |
| Represents a DICOM Transfer Syntax. More... | |
| struct | vr_info |
| Metadata structure containing comprehensive VR properties. More... | |
Enumerations | |
| enum class | byte_order { little_endian , big_endian } |
| Byte ordering for DICOM data encoding. More... | |
| enum class | vr_encoding { implicit , explicit_vr } |
| Value Representation encoding mode. More... | |
| enum class | vr_type : uint16_t { AE = 0x4145 , AS = 0x4153 , CS = 0x4353 , DA = 0x4441 , DS = 0x4453 , DT = 0x4454 , IS = 0x4953 , LO = 0x4C4F , LT = 0x4C54 , PN = 0x504E , SH = 0x5348 , ST = 0x5354 , TM = 0x544D , UC = 0x5543 , UI = 0x5549 , UR = 0x5552 , UT = 0x5554 , FL = 0x464C , FD = 0x4644 , SL = 0x534C , SS = 0x5353 , UL = 0x554C , US = 0x5553 , OB = 0x4F42 , OD = 0x4F44 , OF = 0x4F46 , OL = 0x4F4C , OV = 0x4F56 , OW = 0x4F57 , UN = 0x554E , AT = 0x4154 , SQ = 0x5351 , SV = 0x5356 , UV = 0x5556 } |
| DICOM Value Representation (VR) types. More... | |
Functions | |
| std::string | get_decoded_string (const core::dicom_dataset &ds, core::dicom_tag tag, std::string_view default_value="") |
| Get a string value from dataset, decoded to UTF-8. | |
| void | set_encoded_string (core::dicom_dataset &ds, core::dicom_tag tag, vr_type vr, std::string_view utf8_value) |
| Set a string value in dataset, encoding from UTF-8. | |
Single Value Byte Swapping | |
| constexpr uint16_t | byte_swap16 (uint16_t value) noexcept |
| Swaps bytes in a 16-bit value. | |
| constexpr uint32_t | byte_swap32 (uint32_t value) noexcept |
| Swaps bytes in a 32-bit value. | |
| constexpr uint64_t | byte_swap64 (uint64_t value) noexcept |
| Swaps bytes in a 64-bit value. | |
Big Endian Read/Write Functions | |
| constexpr uint16_t | read_be16 (const uint8_t *data) noexcept |
| Reads a 16-bit value from big-endian bytes. | |
| constexpr uint32_t | read_be32 (const uint8_t *data) noexcept |
| Reads a 32-bit value from big-endian bytes. | |
| constexpr uint64_t | read_be64 (const uint8_t *data) noexcept |
| Reads a 64-bit value from big-endian bytes. | |
| void | write_be16 (std::vector< uint8_t > &buffer, uint16_t value) |
| Writes a 16-bit value in big-endian byte order. | |
| void | write_be32 (std::vector< uint8_t > &buffer, uint32_t value) |
| Writes a 32-bit value in big-endian byte order. | |
| void | write_be64 (std::vector< uint8_t > &buffer, uint64_t value) |
| Writes a 64-bit value in big-endian byte order. | |
Bulk Byte Swapping for VR Types | |
| std::vector< uint8_t > | swap_ow_bytes (std::span< const uint8_t > data) |
| Swaps bytes in-place for OW (Other Word) data. | |
| std::vector< uint8_t > | swap_ol_bytes (std::span< const uint8_t > data) |
| Swaps bytes in-place for OL (Other Long) data. | |
| std::vector< uint8_t > | swap_of_bytes (std::span< const uint8_t > data) |
| Swaps bytes in-place for OF (Other Float) data. | |
| std::vector< uint8_t > | swap_od_bytes (std::span< const uint8_t > data) |
| Swaps bytes in-place for OD (Other Double) data. | |
| std::vector< uint8_t > | swap_at_bytes (std::span< const uint8_t > data) |
| Swaps bytes for AT (Attribute Tag) data. | |
Numeric Value Byte Swapping | |
| std::vector< uint8_t > | swap_us_bytes (std::span< const uint8_t > data) |
| Swaps bytes for US (Unsigned Short) value in raw data. | |
| std::vector< uint8_t > | swap_ss_bytes (std::span< const uint8_t > data) |
| Swaps bytes for SS (Signed Short) value in raw data. | |
| std::vector< uint8_t > | swap_ul_bytes (std::span< const uint8_t > data) |
| Swaps bytes for UL (Unsigned Long) value in raw data. | |
| std::vector< uint8_t > | swap_sl_bytes (std::span< const uint8_t > data) |
| Swaps bytes for SL (Signed Long) value in raw data. | |
| std::vector< uint8_t > | swap_fl_bytes (std::span< const uint8_t > data) |
| Swaps bytes for FL (Float) value in raw data. | |
| std::vector< uint8_t > | swap_fd_bytes (std::span< const uint8_t > data) |
| Swaps bytes for FD (Double) value in raw data. | |
Character Set Registry | |
| const character_set_info * | find_character_set (std::string_view defined_term) noexcept |
| Look up character set info by DICOM Defined Term. | |
| const character_set_info * | find_character_set_by_ir (int iso_ir_number) noexcept |
| Look up character set info by ISO-IR number. | |
| const character_set_info & | default_character_set () noexcept |
| Get the default character set (ISO-IR 6, ASCII). | |
| std::vector< const character_set_info * > | all_character_sets () noexcept |
| Get all registered character sets. | |
Specific Character Set Parsing | |
| specific_character_set | parse_specific_character_set (std::string_view value) |
| Parse a Specific Character Set (0008,0005) value. | |
ISO 2022 Escape Sequence Detection | |
| std::vector< text_segment > | split_by_escape_sequences (std::string_view text, const specific_character_set &scs) |
| Split a string into segments by ISO 2022 escape sequences. | |
String Decoding | |
| std::string | decode_to_utf8 (std::string_view text, const specific_character_set &scs) |
| Decode a DICOM string to UTF-8 using the given character set. | |
| std::string | convert_to_utf8 (std::string_view text, const character_set_info &charset) |
| Decode a single segment from a specific encoding to UTF-8. | |
| std::string | decode_person_name (std::string_view pn_value, const specific_character_set &scs) |
| Decode a Person Name (PN) value to UTF-8. | |
| std::string | encode_from_utf8 (std::string_view utf8_text, const specific_character_set &scs) |
| Encode a UTF-8 string to the target character set encoding. | |
| std::string | convert_from_utf8 (std::string_view utf8_text, const character_set_info &charset) |
| Encode a single UTF-8 segment to a specific character set. | |
Registry Functions | |
| std::optional< transfer_syntax > | find_transfer_syntax (std::string_view uid) |
| Looks up a Transfer Syntax by its UID. | |
| std::vector< transfer_syntax > | supported_transfer_syntaxes () |
| Returns a list of all supported Transfer Syntaxes. | |
| std::vector< transfer_syntax > | all_transfer_syntaxes () |
| Returns a list of all known Transfer Syntaxes. | |
VR Information Lookup | |
| const vr_info & | get_vr_info (vr_type vr) |
| Retrieves comprehensive metadata for a VR type. | |
Value Validation Functions | |
| bool | validate_value (vr_type vr, std::span< const uint8_t > data) |
| Validates binary data against VR encoding rules. | |
| bool | validate_string (vr_type vr, std::string_view value) |
| Validates a string value against VR encoding rules. | |
Padding Utilities | |
| std::vector< uint8_t > | pad_to_even (vr_type vr, std::span< const uint8_t > data) |
| Pads data to even length as required by DICOM. | |
| std::string | trim_padding (vr_type vr, std::string_view value) |
| Removes trailing padding characters from a string value. | |
Character Set Validation | |
| bool | is_valid_charset (vr_type vr, std::string_view value) |
| Validates that a string uses only allowed characters for its VR. | |
String Conversion Functions | |
| constexpr std::string_view | to_string (vr_type vr) noexcept |
| Converts a vr_type to its two-character string representation. | |
| constexpr std::optional< vr_type > | from_string (std::string_view str) noexcept |
| Parses a two-character string to a vr_type. | |
VR Category Classification Functions | |
| constexpr bool | is_string_vr (vr_type vr) noexcept |
| Checks if a VR is a string type. | |
| constexpr bool | is_binary_vr (vr_type vr) noexcept |
| Checks if a VR is a binary/raw byte type. | |
| constexpr bool | is_numeric_vr (vr_type vr) noexcept |
| Checks if a VR is a numeric type. | |
| constexpr bool | has_explicit_32bit_length (vr_type vr) noexcept |
| Checks if a VR requires 32-bit length field in Explicit VR encoding. | |
Additional VR Utility Functions | |
| constexpr std::size_t | fixed_length (vr_type vr) noexcept |
| Gets the fixed size of a VR if applicable. | |
| constexpr bool | is_fixed_length (vr_type vr) noexcept |
| Checks if a VR has a fixed length. | |
| constexpr char | padding_char (vr_type vr) noexcept |
| Gets the padding character for a VR. | |
|
strong |
Byte ordering for DICOM data encoding.
DICOM supports both little-endian and big-endian byte ordering. Little-endian is the most common and is used by default in DICOM.
| Enumerator | |
|---|---|
| little_endian | Least significant byte first (most common) |
| big_endian | Most significant byte first (legacy, rarely used) |
Definition at line 22 of file byte_order.h.
|
strong |
Value Representation encoding mode.
Determines whether VR (Value Representation) is explicitly encoded in the data stream or implicitly determined from the tag.
| Enumerator | |
|---|---|
| implicit | VR determined from data dictionary lookup. |
| explicit_vr | VR explicitly encoded in the data stream. |
Definition at line 33 of file byte_order.h.
|
strong |
DICOM Value Representation (VR) types.
Value Representation specifies the data type and format of the data element value. Each VR is encoded as two ASCII characters (e.g., "PN" for Person Name). The enum values are the uint16_t representation of these two ASCII characters.
Definition at line 29 of file vr_type.h.
|
nodiscardnoexcept |
Get all registered character sets.
Definition at line 436 of file character_set.cpp.
|
nodiscard |
Returns a list of all known Transfer Syntaxes.
Definition at line 394 of file transfer_syntax.cpp.
|
nodiscardconstexprnoexcept |
Swaps bytes in a 16-bit value.
| value | The value to swap |
Example: 0x1234 -> 0x3412
Definition at line 40 of file byte_swap.h.
|
nodiscardconstexprnoexcept |
Swaps bytes in a 32-bit value.
| value | The value to swap |
Example: 0x12345678 -> 0x78563412
Definition at line 51 of file byte_swap.h.
|
nodiscardconstexprnoexcept |
Swaps bytes in a 64-bit value.
| value | The value to swap |
Example: 0x123456789ABCDEF0 -> 0xF0DEBC9A78563412
Definition at line 65 of file byte_swap.h.
|
nodiscard |
Encode a single UTF-8 segment to a specific character set.
| utf8_text | The UTF-8 encoded source string |
| charset | The target character set |
Definition at line 684 of file character_set.cpp.
References kcenon::pacs::encoding::character_set_info::encoding_name.
Referenced by encode_from_utf8().

|
nodiscard |
Decode a single segment from a specific encoding to UTF-8.
| text | The raw bytes in the source encoding |
| charset | The character set of the source bytes |
Uses ICU (ucnv_convert) for encoding conversion. Falls back to raw bytes if conversion fails.
Definition at line 589 of file character_set.cpp.
References kcenon::pacs::encoding::character_set_info::encoding_name.
Referenced by decode_to_utf8().

|
nodiscard |
Decode a Person Name (PN) value to UTF-8.
| pn_value | The raw PN value (may contain '=' component group separators) |
| scs | The Specific Character Set configuration |
PN values have up to three component groups separated by '=':
Each component group is decoded independently.
Definition at line 641 of file character_set.cpp.
References decode_to_utf8().

|
nodiscard |
Decode a DICOM string to UTF-8 using the given character set.
| text | The raw DICOM string bytes |
| scs | The Specific Character Set configuration |
This is the main entry point for character set conversion. It:
If conversion fails for any segment, the raw bytes are passed through.
Definition at line 606 of file character_set.cpp.
References convert_to_utf8(), kcenon::pacs::encoding::specific_character_set::default_set, kcenon::pacs::encoding::specific_character_set::is_utf8(), split_by_escape_sequences(), and kcenon::pacs::encoding::specific_character_set::uses_extensions().
Referenced by decode_person_name(), and get_decoded_string().


|
nodiscardnoexcept |
Get the default character set (ISO-IR 6, ASCII).
Definition at line 431 of file character_set.cpp.
Referenced by parse_specific_character_set().

|
nodiscard |
Encode a UTF-8 string to the target character set encoding.
| utf8_text | The UTF-8 encoded source string |
| scs | The Specific Character Set configuration |
This is the reverse of decode_to_utf8(). It converts a UTF-8 string to the encoding specified by the Specific Character Set, inserting ISO 2022 escape sequences as appropriate for CJK text.
If the charset is UTF-8, the input is returned unchanged. If conversion fails, the raw UTF-8 bytes are returned as-is.
Definition at line 700 of file character_set.cpp.
References convert_from_utf8(), kcenon::pacs::encoding::specific_character_set::default_set, kcenon::pacs::encoding::character_set_info::escape_sequence, kcenon::pacs::encoding::specific_character_set::extension_sets, kcenon::pacs::encoding::specific_character_set::is_utf8(), and kcenon::pacs::encoding::specific_character_set::uses_extensions().
Referenced by set_encoded_string().


|
nodiscardnoexcept |
Look up character set info by DICOM Defined Term.
| defined_term | The DICOM Defined Term (e.g., "ISO 2022 IR 149", "ISO_IR 100") |
Supports both forms: "ISO_IR 100" (without code extensions) and "ISO 2022 IR 149" (with code extensions).
Definition at line 421 of file character_set.cpp.
|
nodiscardnoexcept |
Look up character set info by ISO-IR number.
| iso_ir_number | The ISO-IR number (e.g., 149, 87, 100) |
Definition at line 426 of file character_set.cpp.
|
nodiscard |
Looks up a Transfer Syntax by its UID.
Allow registry functions to use private constructor.
| uid | The Transfer Syntax UID to search for |
Definition at line 371 of file transfer_syntax.cpp.
|
nodiscardconstexprnoexcept |
Gets the fixed size of a VR if applicable.
| vr | The VR type to check |
Fixed-length VRs have a predetermined size regardless of value.
Definition at line 260 of file vr_type.h.
References AT, FD, FL, SL, SS, SV, UL, US, UV, and vr.
Referenced by kcenon::pacs::core::dicom_file::decode_explicit_vr_be(), kcenon::pacs::core::dicom_file::encode_explicit_vr_be(), and is_fixed_length().

|
nodiscardconstexprnoexcept |
Parses a two-character string to a vr_type.
| str | The string to parse (must be exactly 2 characters) |
Definition at line 132 of file vr_type.h.
References AE, AS, AT, code, CS, DA, DS, DT, FD, FL, IS, LO, LT, OB, OD, OF, OL, OV, OW, PN, SH, SL, SQ, SS, ST, SV, TM, UC, UI, UL, UN, UR, US, UT, and UV.
Referenced by kcenon::pacs::encoding::explicit_vr_big_endian_codec::decode_element(), kcenon::pacs::encoding::explicit_vr_codec::decode_element(), kcenon::pacs::core::dicom_file::decode_explicit_vr_be(), kcenon::pacs::core::dicom_file::decode_explicit_vr_le(), kcenon::pacs::core::dicom_file::decode_implicit_vr_le(), kcenon::pacs::integration::container_adapter::parse_element_key(), and kcenon::pacs::core::dicom_file::parse_meta_information().

|
nodiscard |
Get a string value from dataset, decoded to UTF-8.
| ds | The DICOM dataset to read from |
| tag | The DICOM tag to look up |
| default_value | Value to return if element not found |
Looks up Specific Character Set (0008,0005) in the dataset and uses it to decode the raw string bytes to UTF-8. If no Specific Character Set is present, ASCII decoding is assumed (raw passthrough).
Definition at line 16 of file dataset_charset.cpp.
References decode_to_utf8(), kcenon::pacs::core::dicom_dataset::get(), kcenon::pacs::core::dicom_dataset::get_string(), parse_specific_character_set(), and kcenon::pacs::core::tags::specific_character_set.

Retrieves comprehensive metadata for a VR type.
| vr | The VR type to look up |
This function provides all properties needed for encoding/decoding operations, including name, maximum length, padding requirements, and fixed/variable length information.
Definition at line 131 of file vr_info.cpp.
References vr.
Referenced by pad_to_even(), trim_padding(), validate_string(), and validate_value().

|
nodiscardconstexprnoexcept |
Checks if a VR requires 32-bit length field in Explicit VR encoding.
| vr | The VR type to check |
In Explicit VR encoding, these VRs have a 2-byte reserved field followed by a 4-byte length field, instead of a 2-byte length field.
Definition at line 235 of file vr_type.h.
References OB, OD, OF, OL, OV, OW, SQ, SV, UC, UN, UR, UT, UV, and vr.
Referenced by kcenon::pacs::encoding::explicit_vr_big_endian_codec::decode_element(), kcenon::pacs::encoding::explicit_vr_codec::decode_element(), kcenon::pacs::core::dicom_file::decode_explicit_vr_be(), kcenon::pacs::core::dicom_file::decode_explicit_vr_le(), kcenon::pacs::encoding::explicit_vr_big_endian_codec::encode_element(), kcenon::pacs::encoding::explicit_vr_codec::encode_element(), kcenon::pacs::core::dicom_file::encode_explicit_vr_be(), kcenon::pacs::core::dicom_file::encode_explicit_vr_le(), and kcenon::pacs::core::dicom_file::parse_meta_information().

|
nodiscardconstexprnoexcept |
Checks if a VR is a binary/raw byte type.
| vr | The VR type to check |
Binary VRs include OB, OD, OF, OL, OV, OW, and UN.
Definition at line 196 of file vr_type.h.
References OB, OD, OF, OL, OV, OW, UN, and vr.
Referenced by kcenon::pacs::integration::container_adapter::maps_to_binary(), and kcenon::pacs::integration::container_adapter::to_container_value().

|
nodiscardconstexprnoexcept |
Checks if a VR has a fixed length.
| vr | The VR type to check |
Definition at line 280 of file vr_type.h.
References fixed_length(), and vr.

|
nodiscardconstexprnoexcept |
Checks if a VR is a numeric type.
| vr | The VR type to check |
Numeric VRs include FL, FD, SL, SS, SV, UL, US, UV.
Definition at line 214 of file vr_type.h.
References FD, FL, SL, SS, SV, UL, US, UV, and vr.
Referenced by kcenon::pacs::core::dicom_element::as_string(), kcenon::pacs::core::dicom_file::decode_explicit_vr_be(), kcenon::pacs::core::dicom_file::encode_explicit_vr_be(), kcenon::pacs::integration::container_adapter::from_container_value(), kcenon::pacs::integration::container_adapter::maps_to_numeric(), and kcenon::pacs::integration::container_adapter::to_container_value().

|
nodiscardconstexprnoexcept |
Checks if a VR is a string type.
| vr | The VR type to check |
String VRs contain character data that may need padding with spaces.
Definition at line 175 of file vr_type.h.
References AE, AS, CS, DA, DS, DT, IS, LO, LT, PN, SH, ST, TM, UC, UI, UR, UT, and vr.
Referenced by kcenon::pacs::core::dicom_element::as_string(), kcenon::pacs::integration::container_adapter::from_container_value(), kcenon::pacs::integration::container_adapter::get_container_type(), kcenon::pacs::integration::container_adapter::maps_to_string(), padding_char(), kcenon::pacs::core::dicom_element::remove_padding(), kcenon::pacs::integration::container_adapter::to_container_value(), validate_string(), and validate_value().

|
nodiscard |
Validates that a string uses only allowed characters for its VR.
| vr | The VR type |
| value | The string to validate |
Character restrictions by VR type:
Definition at line 225 of file vr_info.cpp.
References AE, AS, CS, DA, DS, DT, IS, LO, LT, PN, SH, ST, TM, UC, UI, UR, UT, and vr.
Referenced by validate_string(), and validate_value().

|
nodiscard |
Pads data to even length as required by DICOM.
| vr | The VR type (determines padding character) |
| data | The data to pad |
DICOM requires all data element values to have even length. This function adds the appropriate padding character if needed:
Definition at line 196 of file vr_info.cpp.
References get_vr_info(), and vr.
Referenced by kcenon::pacs::encoding::explicit_vr_big_endian_codec::encode_element(), kcenon::pacs::encoding::explicit_vr_codec::encode_element(), and kcenon::pacs::encoding::implicit_vr_codec::encode_element().


|
nodiscardconstexprnoexcept |
Gets the padding character for a VR.
| vr | The VR type to check |
DICOM requires data elements to have even length. String VRs are padded with space (' ') except for UI which is padded with null ('\0').
Definition at line 292 of file vr_type.h.
References is_string_vr(), UI, and vr.
Referenced by kcenon::pacs::core::dicom_element::apply_padding(), and kcenon::pacs::core::dicom_element::remove_padding().


|
nodiscard |
Parse a Specific Character Set (0008,0005) value.
| value | The raw attribute value (e.g., "\\ISO 2022 IR 149") |
Handles multi-valued strings separated by backslash ('\'). Empty first component defaults to ISO-IR 6 (ASCII). Unknown Defined Terms are skipped with a warning.
Definition at line 471 of file character_set.cpp.
References default_character_set(), kcenon::pacs::encoding::specific_character_set::default_set, and kcenon::pacs::encoding::specific_character_set::extension_sets.
Referenced by get_decoded_string(), and set_encoded_string().


|
nodiscardconstexprnoexcept |
Reads a 16-bit value from big-endian bytes.
| data | Pointer to at least 2 bytes |
Definition at line 86 of file byte_swap.h.
Referenced by kcenon::pacs::encoding::explicit_vr_big_endian_codec::decode(), kcenon::pacs::encoding::explicit_vr_big_endian_codec::decode_element(), kcenon::pacs::encoding::compression::jpeg_lossless_codec::impl::decode_frame(), kcenon::pacs::encoding::explicit_vr_big_endian_codec::decode_sequence_item(), and kcenon::pacs::encoding::explicit_vr_big_endian_codec::decode_undefined_length().

|
nodiscardconstexprnoexcept |
Reads a 32-bit value from big-endian bytes.
| data | Pointer to at least 4 bytes |
Definition at line 96 of file byte_swap.h.
Referenced by kcenon::pacs::encoding::explicit_vr_big_endian_codec::decode_element(), kcenon::pacs::encoding::explicit_vr_big_endian_codec::decode_sequence_item(), and kcenon::pacs::encoding::explicit_vr_big_endian_codec::decode_undefined_length().

|
nodiscardconstexprnoexcept |
Reads a 64-bit value from big-endian bytes.
| data | Pointer to at least 8 bytes |
Definition at line 108 of file byte_swap.h.
| void kcenon::pacs::encoding::set_encoded_string | ( | core::dicom_dataset & | ds, |
| core::dicom_tag | tag, | ||
| vr_type | vr, | ||
| std::string_view | utf8_value ) |
Set a string value in dataset, encoding from UTF-8.
| ds | The DICOM dataset to write to |
| tag | The DICOM tag |
| vr | The value representation |
| utf8_value | The UTF-8 encoded string value |
Encodes the UTF-8 input to the encoding specified by Specific Character Set (0008,0005) in the dataset, then stores the result. If no Specific Character Set is present, the value is stored as-is (ASCII assumption).
Definition at line 38 of file dataset_charset.cpp.
References encode_from_utf8(), kcenon::pacs::core::dicom_element::from_string(), kcenon::pacs::core::dicom_dataset::get_string(), kcenon::pacs::core::dicom_dataset::insert(), parse_specific_character_set(), kcenon::pacs::core::tags::specific_character_set, and vr.

|
nodiscard |
Split a string into segments by ISO 2022 escape sequences.
| text | The raw DICOM string bytes |
| scs | The parsed Specific Character Set configuration |
Scans for ESC (0x1B) bytes, matches escape sequences against the configured character sets, and splits the text into segments. Segments between escape sequences inherit the previous character set.
Definition at line 531 of file character_set.cpp.
References kcenon::pacs::encoding::specific_character_set::default_set, and kcenon::pacs::encoding::specific_character_set::uses_extensions().
Referenced by decode_to_utf8().


|
nodiscard |
Returns a list of all supported Transfer Syntaxes.
Definition at line 380 of file transfer_syntax.cpp.
|
inlinenodiscard |
Swaps bytes for AT (Attribute Tag) data.
| data | Span of bytes (must be multiple of 4) |
AT consists of two 16-bit values (group, element), each needing byte swap.
Definition at line 226 of file byte_swap.h.
References swap_ow_bytes().

|
inlinenodiscard |
Swaps bytes for FD (Double) value in raw data.
| data | Span of 8 bytes |
Definition at line 291 of file byte_swap.h.
References swap_od_bytes().

|
inlinenodiscard |
Swaps bytes for FL (Float) value in raw data.
| data | Span of 4 bytes |
Definition at line 281 of file byte_swap.h.
References swap_ol_bytes().

|
inlinenodiscard |
Swaps bytes in-place for OD (Other Double) data.
| data | Span of bytes (must be multiple of 8) |
OD data consists of 64-bit doubles that need individual byte swapping. Uses SIMD optimization (SSE/AVX/NEON) when available.
Definition at line 212 of file byte_swap.h.
References kcenon::pacs::encoding::simd::swap_bytes_64_simd().
Referenced by swap_fd_bytes(), and kcenon::pacs::encoding::explicit_vr_big_endian_codec::to_big_endian().


|
inlinenodiscard |
Swaps bytes in-place for OF (Other Float) data.
| data | Span of bytes (must be multiple of 4) |
OF data consists of 32-bit floats that need individual byte swapping.
Definition at line 199 of file byte_swap.h.
References swap_ol_bytes().

|
inlinenodiscard |
Swaps bytes in-place for OL (Other Long) data.
| data | Span of bytes (must be multiple of 4) |
OL data consists of 32-bit values that need individual byte swapping. Uses SIMD optimization (SSE/AVX/NEON) when available.
Definition at line 185 of file byte_swap.h.
References kcenon::pacs::encoding::simd::swap_bytes_32_simd().
Referenced by swap_fl_bytes(), swap_of_bytes(), swap_sl_bytes(), swap_ul_bytes(), and kcenon::pacs::encoding::explicit_vr_big_endian_codec::to_big_endian().


|
inlinenodiscard |
Swaps bytes in-place for OW (Other Word) data.
| data | Span of bytes (must be even length) |
OW data consists of 16-bit words that need individual byte swapping. Uses SIMD optimization (SSE/AVX/NEON) when available.
Definition at line 170 of file byte_swap.h.
References kcenon::pacs::encoding::simd::swap_bytes_16_simd().
Referenced by swap_at_bytes(), swap_ss_bytes(), swap_us_bytes(), and kcenon::pacs::encoding::explicit_vr_big_endian_codec::to_big_endian().


|
inlinenodiscard |
Swaps bytes for SL (Signed Long) value in raw data.
| data | Span of 4 bytes |
Definition at line 271 of file byte_swap.h.
References swap_ol_bytes().

|
inlinenodiscard |
Swaps bytes for SS (Signed Short) value in raw data.
| data | Span of 2 bytes |
Definition at line 251 of file byte_swap.h.
References swap_ow_bytes().

|
inlinenodiscard |
Swaps bytes for UL (Unsigned Long) value in raw data.
| data | Span of 4 bytes |
Definition at line 261 of file byte_swap.h.
References swap_ol_bytes().

|
inlinenodiscard |
Swaps bytes for US (Unsigned Short) value in raw data.
| data | Span of 2 bytes |
Definition at line 241 of file byte_swap.h.
References swap_ow_bytes().

|
nodiscardconstexprnoexcept |
Converts a vr_type to its two-character string representation.
| vr | The VR type to convert |
Returns "??" for unknown or invalid VR types.
Definition at line 83 of file vr_type.h.
References AE, AS, AT, CS, DA, DS, DT, FD, FL, IS, LO, LT, OB, OD, OF, OL, OV, OW, PN, SH, SL, SQ, SS, ST, SV, TM, UC, UI, UL, UN, UR, US, UT, UV, and vr.
Referenced by kcenon::pacs::core::dicom_file::decode_implicit_vr_le(), kcenon::pacs::encoding::explicit_vr_big_endian_codec::encode_element(), kcenon::pacs::encoding::explicit_vr_codec::encode_element(), kcenon::pacs::core::dicom_file::encode_explicit_vr_be(), kcenon::pacs::core::dicom_file::encode_explicit_vr_le(), and kcenon::pacs::integration::container_adapter::make_element_key().

|
nodiscard |
Removes trailing padding characters from a string value.
| vr | The VR type (determines padding character to remove) |
| value | The value to trim |
Removes:
Definition at line 207 of file vr_info.cpp.
References get_vr_info(), and vr.

|
nodiscard |
Validates a string value against VR encoding rules.
| vr | The VR type for validation |
| value | The string value to validate |
Validates string VRs for:
Definition at line 170 of file vr_info.cpp.
References get_vr_info(), is_string_vr(), is_valid_charset(), and vr.

|
nodiscard |
Validates binary data against VR encoding rules.
| vr | The VR type for validation |
| data | The binary data to validate |
Performs VR-specific validation including:
Definition at line 141 of file vr_info.cpp.
References get_vr_info(), is_string_vr(), is_valid_charset(), and vr.

|
inline |
Writes a 16-bit value in big-endian byte order.
| buffer | Buffer to append to |
| value | The value to write |
Definition at line 124 of file byte_swap.h.
Referenced by kcenon::pacs::encoding::explicit_vr_big_endian_codec::encode_element(), kcenon::pacs::encoding::explicit_vr_big_endian_codec::encode_sequence(), kcenon::pacs::encoding::explicit_vr_big_endian_codec::encode_sequence_item(), kcenon::pacs::encoding::compression::jpeg_lossless_codec::impl::write_dht(), kcenon::pacs::encoding::compression::jpeg_lossless_codec::impl::write_sof3(), and kcenon::pacs::encoding::compression::jpeg_lossless_codec::impl::write_sos().

|
inline |
Writes a 32-bit value in big-endian byte order.
| buffer | Buffer to append to |
| value | The value to write |
Definition at line 134 of file byte_swap.h.
Referenced by kcenon::pacs::encoding::explicit_vr_big_endian_codec::encode_element(), kcenon::pacs::encoding::explicit_vr_big_endian_codec::encode_sequence(), and kcenon::pacs::encoding::explicit_vr_big_endian_codec::encode_sequence_item().

|
inline |
Writes a 64-bit value in big-endian byte order.
| buffer | Buffer to append to |
| value | The value to write |
Definition at line 146 of file byte_swap.h.