PACS System 0.1.0
PACS DICOM system library
Loading...
Searching...
No Matches
kcenon::pacs::encoding::specific_character_set Struct Reference

Parsed representation of a multi-valued Specific Character Set. More...

#include <character_set.h>

Collaboration diagram for kcenon::pacs::encoding::specific_character_set:
Collaboration graph

Public Member Functions

bool uses_extensions () const noexcept
 Whether this uses ISO 2022 code extensions.
 
bool is_single_byte_only () const noexcept
 Whether this is a single-byte-only configuration.
 
bool is_utf8 () const noexcept
 Check if UTF-8 is the active character set.
 

Public Attributes

const character_set_infodefault_set
 Character set for default (G0) repertoire.
 
std::vector< const character_set_info * > extension_sets
 Additional character sets activated by escape sequences.
 

Detailed Description

Parsed representation of a multi-valued Specific Character Set.

DICOM Specific Character Set (0008,0005) can be multi-valued with backslash separators. The first value is the default character set for G0, and subsequent values define character sets used via ISO 2022 escape sequences.

Example: "\\ISO 2022 IR 149" means:

  • Component 0: empty → ASCII (ISO-IR 6) default
  • Component 1: ISO 2022 IR 149 → Korean

Definition at line 113 of file character_set.h.

Member Function Documentation

◆ is_single_byte_only()

bool kcenon::pacs::encoding::specific_character_set::is_single_byte_only ( ) const
nodiscardnoexcept

Whether this is a single-byte-only configuration.

Definition at line 455 of file character_set.cpp.

455 {
457 return false;
458 }
459 for (const auto* cs : extension_sets) {
460 if (cs && cs->is_multi_byte) {
461 return false;
462 }
463 }
464 return true;
465}
bool is_multi_byte
true if characters can be multi-byte
std::vector< const character_set_info * > extension_sets
Additional character sets activated by escape sequences.
const character_set_info * default_set
Character set for default (G0) repertoire.

References default_set, extension_sets, and kcenon::pacs::encoding::character_set_info::is_multi_byte.

◆ is_utf8()

bool kcenon::pacs::encoding::specific_character_set::is_utf8 ( ) const
nodiscardnoexcept

Check if UTF-8 is the active character set.

Definition at line 467 of file character_set.cpp.

467 {
468 return default_set && default_set->defined_term == "ISO_IR 192";
469}
std::string_view defined_term
DICOM Defined Term (e.g., "ISO 2022 IR 149")

References default_set, and kcenon::pacs::encoding::character_set_info::defined_term.

Referenced by kcenon::pacs::encoding::decode_to_utf8(), and kcenon::pacs::encoding::encode_from_utf8().

Here is the caller graph for this function:

◆ uses_extensions()

bool kcenon::pacs::encoding::specific_character_set::uses_extensions ( ) const
nodiscardnoexcept

Whether this uses ISO 2022 code extensions.

Definition at line 451 of file character_set.cpp.

451 {
452 return !extension_sets.empty();
453}

References extension_sets.

Referenced by kcenon::pacs::encoding::decode_to_utf8(), kcenon::pacs::encoding::encode_from_utf8(), and kcenon::pacs::encoding::split_by_escape_sequences().

Here is the caller graph for this function:

Member Data Documentation

◆ default_set

const character_set_info* kcenon::pacs::encoding::specific_character_set::default_set

◆ extension_sets

std::vector<const character_set_info*> kcenon::pacs::encoding::specific_character_set::extension_sets

Additional character sets activated by escape sequences.

Definition at line 118 of file character_set.h.

Referenced by kcenon::pacs::encoding::encode_from_utf8(), is_single_byte_only(), kcenon::pacs::encoding::parse_specific_character_set(), and uses_extensions().


The documentation for this struct was generated from the following files: