PACS System 0.1.0
PACS DICOM system library
Loading...
Searching...
No Matches
kcenon::pacs::services::sop_class_registry Class Reference

#include <sop_class_registry.h>

Collaboration diagram for kcenon::pacs::services::sop_class_registry:
Collaboration graph

Public Member Functions

bool is_supported (std::string_view uid) const
 Check if a SOP Class UID is supported.
 
const sop_class_infoget_info (std::string_view uid) const
 Get information about a SOP Class.
 
std::vector< std::string > get_by_category (sop_class_category category) const
 Get all SOP Classes in a category.
 
std::vector< std::string > get_by_modality (modality_type modality, bool include_retired=true) const
 Get all storage SOP Classes for a modality.
 
std::vector< std::string > get_all_storage_classes (bool include_retired=true) const
 Get all storage SOP Classes.
 
std::vector< std::string > get_all () const
 Get all registered SOP Class UIDs.
 
bool register_sop_class (const sop_class_info &info)
 Register a new SOP Class.
 

Static Public Member Functions

static sop_class_registryinstance ()
 Get the singleton instance.
 
static std::string_view modality_to_string (modality_type modality) noexcept
 Get the modality string for a modality type.
 
static modality_type parse_modality (std::string_view modality) noexcept
 Parse a modality string to enum.
 

Private Member Functions

 sop_class_registry ()
 
 ~sop_class_registry ()=default
 
 sop_class_registry (const sop_class_registry &)=delete
 
sop_class_registryoperator= (const sop_class_registry &)=delete
 
 sop_class_registry (sop_class_registry &&)=delete
 
sop_class_registryoperator= (sop_class_registry &&)=delete
 
void register_standard_sop_classes ()
 
void register_us_sop_classes ()
 
void register_xa_sop_classes ()
 
void register_dx_sop_classes ()
 
void register_ct_sop_classes ()
 
void register_mr_sop_classes ()
 
void register_pet_sop_classes ()
 
void register_nm_sop_classes ()
 
void register_rt_sop_classes ()
 
void register_seg_sop_classes ()
 
void register_sr_sop_classes ()
 
void register_print_sop_classes ()
 
void register_ups_sop_classes ()
 
void register_wsi_sop_classes ()
 
void register_ophthalmic_sop_classes ()
 
void register_parametric_map_sop_classes ()
 
void register_waveform_sop_classes ()
 
void register_other_sop_classes ()
 

Private Attributes

std::unordered_map< std::string, sop_class_inforegistry_
 

Detailed Description

Definition at line 115 of file sop_class_registry.h.

Constructor & Destructor Documentation

◆ sop_class_registry() [1/3]

kcenon::pacs::services::sop_class_registry::sop_class_registry ( )
private

◆ ~sop_class_registry()

kcenon::pacs::services::sop_class_registry::~sop_class_registry ( )
privatedefault

◆ sop_class_registry() [2/3]

kcenon::pacs::services::sop_class_registry::sop_class_registry ( const sop_class_registry & )
privatedelete

◆ sop_class_registry() [3/3]

kcenon::pacs::services::sop_class_registry::sop_class_registry ( sop_class_registry && )
privatedelete

Member Function Documentation

◆ get_all()

std::vector< std::string > kcenon::pacs::services::sop_class_registry::get_all ( ) const
nodiscard

Get all registered SOP Class UIDs.

Returns
Vector of all SOP Class UIDs
Examples
/home/runner/work/pacs_system/pacs_system/include/kcenon/pacs/services/sop_class_registry.h.

Definition at line 94 of file sop_class_registry.cpp.

94 {
95 std::vector<std::string> result;
96 result.reserve(registry_.size());
97 for (const auto& [uid, info] : registry_) {
98 result.push_back(uid);
99 }
100 return result;
101}
std::unordered_map< std::string, sop_class_info > registry_
std::string_view uid

References registry_, and uid.

◆ get_all_storage_classes()

std::vector< std::string > kcenon::pacs::services::sop_class_registry::get_all_storage_classes ( bool include_retired = true) const
nodiscard

Get all storage SOP Classes.

Parameters
include_retiredInclude retired SOP classes
Returns
Vector of Storage SOP Class UIDs
Examples
/home/runner/work/pacs_system/pacs_system/include/kcenon/pacs/services/sop_class_registry.h.

Definition at line 83 of file sop_class_registry.cpp.

83 {
84 std::vector<std::string> result;
85 for (const auto& [uid, info] : registry_) {
86 if (info.category == sop_class_category::storage &&
87 (include_retired || !info.is_retired)) {
88 result.push_back(uid);
89 }
90 }
91 return result;
92}

References registry_, kcenon::pacs::services::storage, and uid.

◆ get_by_category()

std::vector< std::string > kcenon::pacs::services::sop_class_registry::get_by_category ( sop_class_category category) const
nodiscard

Get all SOP Classes in a category.

Parameters
categoryThe category to filter by
Returns
Vector of SOP Class UIDs
Examples
/home/runner/work/pacs_system/pacs_system/include/kcenon/pacs/services/sop_class_registry.h.

Definition at line 59 of file sop_class_registry.cpp.

59 {
60 std::vector<std::string> result;
61 for (const auto& [uid, info] : registry_) {
62 if (info.category == category) {
63 result.push_back(uid);
64 }
65 }
66 return result;
67}

References registry_, and uid.

◆ get_by_modality()

std::vector< std::string > kcenon::pacs::services::sop_class_registry::get_by_modality ( modality_type modality,
bool include_retired = true ) const
nodiscard

Get all storage SOP Classes for a modality.

Parameters
modalityThe modality type
include_retiredInclude retired SOP classes
Returns
Vector of SOP Class UIDs
Examples
/home/runner/work/pacs_system/pacs_system/include/kcenon/pacs/services/sop_class_registry.h.

Definition at line 70 of file sop_class_registry.cpp.

70 {
71 std::vector<std::string> result;
72 for (const auto& [uid, info] : registry_) {
73 if (info.category == sop_class_category::storage &&
74 info.modality == modality &&
75 (include_retired || !info.is_retired)) {
76 result.push_back(uid);
77 }
78 }
79 return result;
80}

References registry_, kcenon::pacs::services::storage, and uid.

◆ get_info()

const sop_class_info * kcenon::pacs::services::sop_class_registry::get_info ( std::string_view uid) const
nodiscard

Get information about a SOP Class.

Parameters
uidThe SOP Class UID
Returns
Pointer to info, or nullptr if not found
Examples
/home/runner/work/pacs_system/pacs_system/include/kcenon/pacs/services/sop_class_registry.h.

Definition at line 50 of file sop_class_registry.cpp.

50 {
51 auto it = registry_.find(std::string(uid));
52 if (it != registry_.end()) {
53 return &it->second;
54 }
55 return nullptr;
56}

References registry_, and uid.

Referenced by kcenon::pacs::services::get_sop_class_name(), kcenon::pacs::services::get_storage_modality(), and kcenon::pacs::services::is_storage_sop_class().

Here is the caller graph for this function:

◆ instance()

sop_class_registry & kcenon::pacs::services::sop_class_registry::instance ( )
staticnodiscard

Get the singleton instance.

Examples
/home/runner/work/pacs_system/pacs_system/include/kcenon/pacs/services/sop_class_registry.h.

Definition at line 33 of file sop_class_registry.cpp.

33 {
34 static sop_class_registry instance;
35 return instance;
36}
static sop_class_registry & instance()
Get the singleton instance.

References instance().

Referenced by kcenon::pacs::services::get_sop_class_name(), kcenon::pacs::services::get_storage_modality(), instance(), and kcenon::pacs::services::is_storage_sop_class().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ is_supported()

bool kcenon::pacs::services::sop_class_registry::is_supported ( std::string_view uid) const
nodiscard

Check if a SOP Class UID is supported.

Parameters
uidThe SOP Class UID to check
Returns
true if the SOP Class is registered
Examples
/home/runner/work/pacs_system/pacs_system/include/kcenon/pacs/services/sop_class_registry.h.

Definition at line 46 of file sop_class_registry.cpp.

46 {
47 return registry_.find(std::string(uid)) != registry_.end();
48}

References registry_, and uid.

◆ modality_to_string()

std::string_view kcenon::pacs::services::sop_class_registry::modality_to_string ( modality_type modality)
staticnodiscardnoexcept

Get the modality string for a modality type.

Parameters
modalityThe modality type
Returns
DICOM modality code (e.g., "US", "CT", "MR")
Examples
/home/runner/work/pacs_system/pacs_system/include/kcenon/pacs/services/sop_class_registry.h.

Definition at line 115 of file sop_class_registry.cpp.

115 {
116 switch (modality) {
117 case modality_type::ct: return "CT";
118 case modality_type::mr: return "MR";
119 case modality_type::us: return "US";
120 case modality_type::xa: return "XA";
121 case modality_type::xrf: return "RF";
122 case modality_type::cr: return "CR";
123 case modality_type::dx: return "DX";
124 case modality_type::mg: return "MG";
125 case modality_type::nm: return "NM";
126 case modality_type::pet: return "PT";
127 case modality_type::rt: return "RT";
128 case modality_type::sc: return "SC";
129 case modality_type::sr: return "SR";
130 case modality_type::seg: return "SEG";
131 case modality_type::sm: return "SM";
132 case modality_type::op: return "OP";
133 case modality_type::pmap: return "RWV";
134 case modality_type::other: return "OT";
135 }
136 return "OT";
137}
@ op
Ophthalmic Photography / Tomography.
@ pet
Positron Emission Tomography.
@ xrf
X-Ray Radiofluoroscopic.
@ sm
Slide Microscopy (Whole Slide Imaging)

References kcenon::pacs::services::cr, kcenon::pacs::services::ct, kcenon::pacs::services::dx, kcenon::pacs::services::mg, kcenon::pacs::services::mr, kcenon::pacs::services::nm, kcenon::pacs::services::op, kcenon::pacs::services::other, kcenon::pacs::services::pet, kcenon::pacs::services::pmap, kcenon::pacs::services::rt, kcenon::pacs::services::sc, kcenon::pacs::services::seg, kcenon::pacs::services::sm, kcenon::pacs::services::sr, kcenon::pacs::services::us, kcenon::pacs::services::xa, and kcenon::pacs::services::xrf.

◆ operator=() [1/2]

sop_class_registry & kcenon::pacs::services::sop_class_registry::operator= ( const sop_class_registry & )
privatedelete

◆ operator=() [2/2]

sop_class_registry & kcenon::pacs::services::sop_class_registry::operator= ( sop_class_registry && )
privatedelete

◆ parse_modality()

modality_type kcenon::pacs::services::sop_class_registry::parse_modality ( std::string_view modality)
staticnodiscardnoexcept

Parse a modality string to enum.

Parameters
modalityThe DICOM modality code
Returns
The modality type, or modality_type::other if unknown
Examples
/home/runner/work/pacs_system/pacs_system/include/kcenon/pacs/services/sop_class_registry.h.

Definition at line 139 of file sop_class_registry.cpp.

139 {
140 if (modality == "CT") return modality_type::ct;
141 if (modality == "MR") return modality_type::mr;
142 if (modality == "US") return modality_type::us;
143 if (modality == "XA") return modality_type::xa;
144 if (modality == "RF" || modality == "XRF") return modality_type::xrf;
145 if (modality == "CR") return modality_type::cr;
146 if (modality == "DX") return modality_type::dx;
147 if (modality == "MG") return modality_type::mg;
148 if (modality == "NM") return modality_type::nm;
149 if (modality == "PT" || modality == "PET") return modality_type::pet;
150 // RT modalities: RTPLAN, RTDOSE, RTSTRUCT, RTIMAGE, RTRECORD
151 if (modality == "RT" || modality == "RTPLAN" || modality == "RTDOSE" ||
152 modality == "RTSTRUCT" || modality == "RTIMAGE" || modality == "RTRECORD") {
153 return modality_type::rt;
154 }
155 if (modality == "SC") return modality_type::sc;
156 if (modality == "SR") return modality_type::sr;
157 if (modality == "SEG") return modality_type::seg;
158 if (modality == "SM") return modality_type::sm;
159 if (modality == "OP" || modality == "OPT") return modality_type::op;
160 if (modality == "RWV" || modality == "PMAP") return modality_type::pmap;
162}

References kcenon::pacs::services::cr, kcenon::pacs::services::ct, kcenon::pacs::services::dx, kcenon::pacs::services::mg, kcenon::pacs::services::mr, kcenon::pacs::services::nm, kcenon::pacs::services::op, kcenon::pacs::services::other, kcenon::pacs::services::pet, kcenon::pacs::services::pmap, kcenon::pacs::services::rt, kcenon::pacs::services::sc, kcenon::pacs::services::seg, kcenon::pacs::services::sm, kcenon::pacs::services::sr, kcenon::pacs::services::us, kcenon::pacs::services::xa, and kcenon::pacs::services::xrf.

◆ register_ct_sop_classes()

void kcenon::pacs::services::sop_class_registry::register_ct_sop_classes ( )
private
Examples
/home/runner/work/pacs_system/pacs_system/include/kcenon/pacs/services/sop_class_registry.h.

Definition at line 389 of file sop_class_registry.cpp.

389 {
390 // CT Image Storage
391 registry_.emplace(
392 "1.2.840.10008.5.1.4.1.1.2",
393 sop_class_info{
394 "1.2.840.10008.5.1.4.1.1.2",
395 "CT Image Storage",
398 false,
399 false
400 }
401 );
402
403 // Enhanced CT Image Storage
404 registry_.emplace(
405 "1.2.840.10008.5.1.4.1.1.2.1",
406 sop_class_info{
407 "1.2.840.10008.5.1.4.1.1.2.1",
408 "Enhanced CT Image Storage",
411 false,
412 true
413 }
414 );
415
416 // CT For Processing Image Storage (multi-energy/spectral CT)
417 registry_.emplace(
418 "1.2.840.10008.5.1.4.1.1.2.2",
419 sop_class_info{
420 "1.2.840.10008.5.1.4.1.1.2.2",
421 "CT For Processing Image Storage",
424 false,
425 false
426 }
427 );
428}

References kcenon::pacs::services::ct, registry_, and kcenon::pacs::services::storage.

Referenced by register_standard_sop_classes().

Here is the caller graph for this function:

◆ register_dx_sop_classes()

void kcenon::pacs::services::sop_class_registry::register_dx_sop_classes ( )
private
Examples
/home/runner/work/pacs_system/pacs_system/include/kcenon/pacs/services/sop_class_registry.h.

Definition at line 309 of file sop_class_registry.cpp.

309 {
310 // Digital X-Ray Image Storage - For Presentation
311 registry_.emplace(
313 sop_class_info{
315 "Digital X-Ray Image Storage - For Presentation",
318 false,
319 false
320 }
321 );
322
323 // Digital X-Ray Image Storage - For Processing
324 registry_.emplace(
326 sop_class_info{
328 "Digital X-Ray Image Storage - For Processing",
331 false,
332 false
333 }
334 );
335
336 // Digital Mammography X-Ray Image Storage - For Presentation
337 registry_.emplace(
339 sop_class_info{
341 "Digital Mammography X-Ray Image Storage - For Presentation",
344 false,
345 false
346 }
347 );
348
349 // Digital Mammography X-Ray Image Storage - For Processing
350 registry_.emplace(
352 sop_class_info{
354 "Digital Mammography X-Ray Image Storage - For Processing",
357 false,
358 false
359 }
360 );
361
362 // Digital Intra-Oral X-Ray Image Storage - For Presentation
363 registry_.emplace(
365 sop_class_info{
367 "Digital Intra-Oral X-Ray Image Storage - For Presentation",
369 modality_type::dx, // Intra-oral uses DX modality
370 false,
371 false
372 }
373 );
374
375 // Digital Intra-Oral X-Ray Image Storage - For Processing
376 registry_.emplace(
378 sop_class_info{
380 "Digital Intra-Oral X-Ray Image Storage - For Processing",
382 modality_type::dx, // Intra-oral uses DX modality
383 false,
384 false
385 }
386 );
387}
constexpr std::string_view dx_image_storage_for_processing_uid
Digital X-Ray Image Storage - For Processing SOP Class UID Used for raw detector data requiring addit...
Definition dx_storage.h:49
constexpr std::string_view dx_image_storage_for_presentation_uid
Digital X-Ray Image Storage - For Presentation SOP Class UID Used for images ready for display and cl...
Definition dx_storage.h:44
constexpr std::string_view intraoral_image_storage_for_processing_uid
Digital Intra-Oral X-Ray Image Storage - For Processing.
Definition dx_storage.h:75
constexpr std::string_view mammography_image_storage_for_processing_uid
Digital Mammography X-Ray Image Storage - For Processing.
Definition dx_storage.h:62
constexpr std::string_view intraoral_image_storage_for_presentation_uid
Digital Intra-Oral X-Ray Image Storage - For Presentation.
Definition dx_storage.h:71
constexpr std::string_view mammography_image_storage_for_presentation_uid
Digital Mammography X-Ray Image Storage - For Presentation.
Definition dx_storage.h:58

References kcenon::pacs::services::dx, kcenon::pacs::services::sop_classes::dx_image_storage_for_presentation_uid, kcenon::pacs::services::sop_classes::dx_image_storage_for_processing_uid, kcenon::pacs::services::sop_classes::intraoral_image_storage_for_presentation_uid, kcenon::pacs::services::sop_classes::intraoral_image_storage_for_processing_uid, kcenon::pacs::services::sop_classes::mammography_image_storage_for_presentation_uid, kcenon::pacs::services::sop_classes::mammography_image_storage_for_processing_uid, kcenon::pacs::services::mg, registry_, and kcenon::pacs::services::storage.

Referenced by register_standard_sop_classes().

Here is the caller graph for this function:

◆ register_mr_sop_classes()

void kcenon::pacs::services::sop_class_registry::register_mr_sop_classes ( )
private
Examples
/home/runner/work/pacs_system/pacs_system/include/kcenon/pacs/services/sop_class_registry.h.

Definition at line 430 of file sop_class_registry.cpp.

430 {
431 // MR Image Storage
432 registry_.emplace(
433 "1.2.840.10008.5.1.4.1.1.4",
434 sop_class_info{
435 "1.2.840.10008.5.1.4.1.1.4",
436 "MR Image Storage",
439 false,
440 false
441 }
442 );
443
444 // Enhanced MR Image Storage
445 registry_.emplace(
446 "1.2.840.10008.5.1.4.1.1.4.1",
447 sop_class_info{
448 "1.2.840.10008.5.1.4.1.1.4.1",
449 "Enhanced MR Image Storage",
452 false,
453 true
454 }
455 );
456}

References kcenon::pacs::services::mr, registry_, and kcenon::pacs::services::storage.

Referenced by register_standard_sop_classes().

Here is the caller graph for this function:

◆ register_nm_sop_classes()

void kcenon::pacs::services::sop_class_registry::register_nm_sop_classes ( )
private
Examples
/home/runner/work/pacs_system/pacs_system/include/kcenon/pacs/services/sop_class_registry.h.

Definition at line 499 of file sop_class_registry.cpp.

499 {
500 // NM Image Storage
501 registry_.emplace(
503 sop_class_info{
505 "NM Image Storage",
508 false,
509 true // supports multiframe (SPECT, dynamic, gated)
510 }
511 );
512
513 // NM Image Storage (Retired)
514 registry_.emplace(
516 sop_class_info{
518 "NM Image Storage (Retired)",
521 true, // retired
522 true // supports multiframe
523 }
524 );
525}
constexpr std::string_view nm_image_storage_retired_uid
Nuclear Medicine Image Storage (Retired) - for legacy systems.
Definition nm_storage.h:46
constexpr std::string_view nm_image_storage_uid
Nuclear Medicine Image Storage SOP Class UID.
Definition nm_storage.h:37

References kcenon::pacs::services::nm, kcenon::pacs::services::sop_classes::nm_image_storage_retired_uid, kcenon::pacs::services::sop_classes::nm_image_storage_uid, registry_, and kcenon::pacs::services::storage.

Referenced by register_standard_sop_classes().

Here is the caller graph for this function:

◆ register_ophthalmic_sop_classes()

void kcenon::pacs::services::sop_class_registry::register_ophthalmic_sop_classes ( )
private
Examples
/home/runner/work/pacs_system/pacs_system/include/kcenon/pacs/services/sop_class_registry.h.

Definition at line 1007 of file sop_class_registry.cpp.

1007 {
1008 // Ophthalmic Photography 8 Bit Image Storage
1009 registry_.emplace(
1011 sop_class_info{
1013 "Ophthalmic Photography 8 Bit Image Storage",
1016 false,
1017 false
1018 }
1019 );
1020
1021 // Ophthalmic Photography 16 Bit Image Storage
1022 registry_.emplace(
1024 sop_class_info{
1026 "Ophthalmic Photography 16 Bit Image Storage",
1029 false,
1030 false
1031 }
1032 );
1033
1034 // Ophthalmic Tomography Image Storage (OCT)
1035 registry_.emplace(
1037 sop_class_info{
1039 "Ophthalmic Tomography Image Storage",
1042 false,
1043 true // OCT produces multi-frame B-scan volumes
1044 }
1045 );
1046
1047 // Wide Field Ophthalmic Photography SOP Class Storage
1048 registry_.emplace(
1050 sop_class_info{
1052 "Wide Field Ophthalmic Photography Storage",
1055 false,
1056 false
1057 }
1058 );
1059
1060 // Ophthalmic OCT B-scan Volume Analysis Storage
1061 registry_.emplace(
1063 sop_class_info{
1065 "Ophthalmic OCT B-scan Volume Analysis Storage",
1068 false,
1069 true // B-scan volume analysis is multi-frame
1070 }
1071 );
1072}
constexpr std::string_view ophthalmic_oct_bscan_analysis_storage_uid
Ophthalmic Optical Coherence Tomography B-scan Volume Analysis Storage.
constexpr std::string_view ophthalmic_photo_16bit_storage_uid
Ophthalmic Photography 16 Bit Image Storage.
constexpr std::string_view wide_field_ophthalmic_photo_storage_uid
Wide Field Ophthalmic Photography SOP Class Storage.
constexpr std::string_view ophthalmic_tomography_storage_uid
Ophthalmic Tomography Image Storage (OCT)
constexpr std::string_view ophthalmic_photo_8bit_storage_uid
Ophthalmic Photography 8 Bit Image Storage.

References kcenon::pacs::services::op, kcenon::pacs::services::sop_classes::ophthalmic_oct_bscan_analysis_storage_uid, kcenon::pacs::services::sop_classes::ophthalmic_photo_16bit_storage_uid, kcenon::pacs::services::sop_classes::ophthalmic_photo_8bit_storage_uid, kcenon::pacs::services::sop_classes::ophthalmic_tomography_storage_uid, registry_, kcenon::pacs::services::storage, and kcenon::pacs::services::sop_classes::wide_field_ophthalmic_photo_storage_uid.

Referenced by register_standard_sop_classes().

Here is the caller graph for this function:

◆ register_other_sop_classes()

void kcenon::pacs::services::sop_class_registry::register_other_sop_classes ( )
private
Examples
/home/runner/work/pacs_system/pacs_system/include/kcenon/pacs/services/sop_class_registry.h.

Definition at line 1110 of file sop_class_registry.cpp.

1110 {
1111 // CR Image Storage
1112 registry_.emplace(
1113 "1.2.840.10008.5.1.4.1.1.1",
1114 sop_class_info{
1115 "1.2.840.10008.5.1.4.1.1.1",
1116 "CR Image Storage",
1119 false,
1120 false
1121 }
1122 );
1123
1124 // Note: DX SOP classes are now registered in register_dx_sop_classes()
1125
1126 // Secondary Capture Image Storage
1127 registry_.emplace(
1128 "1.2.840.10008.5.1.4.1.1.7",
1129 sop_class_info{
1130 "1.2.840.10008.5.1.4.1.1.7",
1131 "Secondary Capture Image Storage",
1134 false,
1135 false
1136 }
1137 );
1138
1139 // Verification SOP Class
1140 registry_.emplace(
1141 "1.2.840.10008.1.1",
1142 sop_class_info{
1143 "1.2.840.10008.1.1",
1144 "Verification SOP Class",
1147 false,
1148 false
1149 }
1150 );
1151
1152 // Storage Commitment Push Model SOP Class (PS3.4 Annex J)
1153 registry_.emplace(
1155 sop_class_info{
1157 "Storage Commitment Push Model",
1160 false,
1161 false
1162 }
1163 );
1164}
constexpr std::string_view storage_commitment_push_model_sop_class_uid
Storage Commitment Push Model SOP Class UID (PS3.4 Table J.3-1)
@ storage_commitment
Storage Commitment Push Model Service Class.
@ verification
Verification Service Class.

References kcenon::pacs::services::cr, kcenon::pacs::services::other, registry_, kcenon::pacs::services::sc, kcenon::pacs::services::storage, kcenon::pacs::services::storage_commitment, kcenon::pacs::services::storage_commitment_push_model_sop_class_uid, and kcenon::pacs::services::verification.

Referenced by register_standard_sop_classes().

Here is the caller graph for this function:

◆ register_parametric_map_sop_classes()

void kcenon::pacs::services::sop_class_registry::register_parametric_map_sop_classes ( )
private
Examples
/home/runner/work/pacs_system/pacs_system/include/kcenon/pacs/services/sop_class_registry.h.

Definition at line 1074 of file sop_class_registry.cpp.

1074 {
1075 // Parametric Map Storage
1076 registry_.emplace(
1078 sop_class_info{
1080 "Parametric Map Storage",
1083 false,
1084 true // always multi-frame
1085 }
1086 );
1087}
constexpr std::string_view parametric_map_storage_uid
Parametric Map Storage SOP Class UID.

References kcenon::pacs::services::sop_classes::parametric_map_storage_uid, kcenon::pacs::services::pmap, registry_, and kcenon::pacs::services::storage.

Referenced by register_standard_sop_classes().

Here is the caller graph for this function:

◆ register_pet_sop_classes()

void kcenon::pacs::services::sop_class_registry::register_pet_sop_classes ( )
private
Examples
/home/runner/work/pacs_system/pacs_system/include/kcenon/pacs/services/sop_class_registry.h.

Definition at line 458 of file sop_class_registry.cpp.

458 {
459 // PET Image Storage
460 registry_.emplace(
462 sop_class_info{
464 "PET Image Storage",
467 false,
468 false
469 }
470 );
471
472 // Enhanced PET Image Storage
473 registry_.emplace(
475 sop_class_info{
477 "Enhanced PET Image Storage",
480 false,
481 true // supports multiframe
482 }
483 );
484
485 // Legacy Converted Enhanced PET Image Storage
486 registry_.emplace(
488 sop_class_info{
490 "Legacy Converted Enhanced PET Image Storage",
493 false,
494 true // supports multiframe
495 }
496 );
497}
constexpr std::string_view pet_image_storage_uid
PET Image Storage SOP Class UID.
Definition pet_storage.h:37
constexpr std::string_view legacy_converted_enhanced_pet_image_storage_uid
Legacy Converted Enhanced PET Image Storage SOP Class UID.
Definition pet_storage.h:45
constexpr std::string_view enhanced_pet_image_storage_uid
Enhanced PET Image Storage SOP Class UID.
Definition pet_storage.h:41

References kcenon::pacs::services::sop_classes::enhanced_pet_image_storage_uid, kcenon::pacs::services::sop_classes::legacy_converted_enhanced_pet_image_storage_uid, kcenon::pacs::services::pet, kcenon::pacs::services::sop_classes::pet_image_storage_uid, registry_, and kcenon::pacs::services::storage.

Referenced by register_standard_sop_classes().

Here is the caller graph for this function:

◆ register_print_sop_classes()

void kcenon::pacs::services::sop_class_registry::register_print_sop_classes ( )
private
Examples
/home/runner/work/pacs_system/pacs_system/include/kcenon/pacs/services/sop_class_registry.h.

Definition at line 832 of file sop_class_registry.cpp.

832 {
833 // Basic Film Session SOP Class (PS3.4 Annex H)
834 registry_.emplace(
835 "1.2.840.10008.5.1.1.1",
836 sop_class_info{
837 "1.2.840.10008.5.1.1.1",
838 "Basic Film Session",
841 false,
842 false
843 }
844 );
845
846 // Basic Film Box SOP Class
847 registry_.emplace(
848 "1.2.840.10008.5.1.1.2",
849 sop_class_info{
850 "1.2.840.10008.5.1.1.2",
851 "Basic Film Box",
854 false,
855 false
856 }
857 );
858
859 // Basic Grayscale Image Box SOP Class
860 registry_.emplace(
861 "1.2.840.10008.5.1.1.4",
862 sop_class_info{
863 "1.2.840.10008.5.1.1.4",
864 "Basic Grayscale Image Box",
867 false,
868 false
869 }
870 );
871
872 // Basic Color Image Box SOP Class
873 registry_.emplace(
874 "1.2.840.10008.5.1.1.4.1",
875 sop_class_info{
876 "1.2.840.10008.5.1.1.4.1",
877 "Basic Color Image Box",
880 false,
881 false
882 }
883 );
884
885 // Printer SOP Class
886 registry_.emplace(
887 "1.2.840.10008.5.1.1.16",
888 sop_class_info{
889 "1.2.840.10008.5.1.1.16",
890 "Printer",
893 false,
894 false
895 }
896 );
897
898 // Basic Grayscale Print Management Meta SOP Class
899 registry_.emplace(
900 "1.2.840.10008.5.1.1.9",
901 sop_class_info{
902 "1.2.840.10008.5.1.1.9",
903 "Basic Grayscale Print Management Meta",
906 false,
907 false
908 }
909 );
910
911 // Basic Color Print Management Meta SOP Class
912 registry_.emplace(
913 "1.2.840.10008.5.1.1.18",
914 sop_class_info{
915 "1.2.840.10008.5.1.1.18",
916 "Basic Color Print Management Meta",
919 false,
920 false
921 }
922 );
923}
@ print
Print Management Service Class.

References kcenon::pacs::services::other, kcenon::pacs::services::print, and registry_.

Referenced by register_standard_sop_classes().

Here is the caller graph for this function:

◆ register_rt_sop_classes()

void kcenon::pacs::services::sop_class_registry::register_rt_sop_classes ( )
private
Examples
/home/runner/work/pacs_system/pacs_system/include/kcenon/pacs/services/sop_class_registry.h.

Definition at line 527 of file sop_class_registry.cpp.

527 {
528 // RT Plan Storage
529 registry_.emplace(
531 sop_class_info{
533 "RT Plan Storage",
536 false,
537 false // no multiframe
538 }
539 );
540
541 // RT Dose Storage
542 registry_.emplace(
544 sop_class_info{
546 "RT Dose Storage",
549 false,
550 true // supports multiframe (dose grids)
551 }
552 );
553
554 // RT Structure Set Storage
555 registry_.emplace(
557 sop_class_info{
559 "RT Structure Set Storage",
562 false,
563 false // no multiframe
564 }
565 );
566
567 // RT Image Storage
568 registry_.emplace(
570 sop_class_info{
572 "RT Image Storage",
575 false,
576 false // typically single frame
577 }
578 );
579
580 // RT Beams Treatment Record Storage
581 registry_.emplace(
583 sop_class_info{
585 "RT Beams Treatment Record Storage",
588 false,
589 false
590 }
591 );
592
593 // RT Brachy Treatment Record Storage
594 registry_.emplace(
596 sop_class_info{
598 "RT Brachy Treatment Record Storage",
601 false,
602 false
603 }
604 );
605
606 // RT Treatment Summary Record Storage
607 registry_.emplace(
609 sop_class_info{
611 "RT Treatment Summary Record Storage",
614 false,
615 false
616 }
617 );
618
619 // RT Ion Plan Storage
620 registry_.emplace(
622 sop_class_info{
624 "RT Ion Plan Storage",
627 false,
628 false
629 }
630 );
631
632 // RT Ion Beams Treatment Record Storage
633 registry_.emplace(
635 sop_class_info{
637 "RT Ion Beams Treatment Record Storage",
640 false,
641 false
642 }
643 );
644}
constexpr std::string_view rt_structure_set_storage_uid
RT Structure Set Storage SOP Class UID.
Definition rt_storage.h:46
constexpr std::string_view rt_image_storage_uid
RT Image Storage SOP Class UID.
Definition rt_storage.h:50
constexpr std::string_view rt_ion_plan_storage_uid
RT Ion Plan Storage SOP Class UID.
Definition rt_storage.h:66
constexpr std::string_view rt_dose_storage_uid
RT Dose Storage SOP Class UID.
Definition rt_storage.h:42
constexpr std::string_view rt_beams_treatment_record_storage_uid
RT Beams Treatment Record Storage SOP Class UID.
Definition rt_storage.h:54
constexpr std::string_view rt_ion_beams_treatment_record_storage_uid
RT Ion Beams Treatment Record Storage SOP Class UID.
Definition rt_storage.h:70
constexpr std::string_view rt_brachy_treatment_record_storage_uid
RT Brachy Treatment Record Storage SOP Class UID.
Definition rt_storage.h:58
constexpr std::string_view rt_treatment_summary_record_storage_uid
RT Treatment Summary Record Storage SOP Class UID.
Definition rt_storage.h:62
constexpr std::string_view rt_plan_storage_uid
RT Plan Storage SOP Class UID.
Definition rt_storage.h:38

References registry_, kcenon::pacs::services::rt, kcenon::pacs::services::sop_classes::rt_beams_treatment_record_storage_uid, kcenon::pacs::services::sop_classes::rt_brachy_treatment_record_storage_uid, kcenon::pacs::services::sop_classes::rt_dose_storage_uid, kcenon::pacs::services::sop_classes::rt_image_storage_uid, kcenon::pacs::services::sop_classes::rt_ion_beams_treatment_record_storage_uid, kcenon::pacs::services::sop_classes::rt_ion_plan_storage_uid, kcenon::pacs::services::sop_classes::rt_plan_storage_uid, kcenon::pacs::services::sop_classes::rt_structure_set_storage_uid, kcenon::pacs::services::sop_classes::rt_treatment_summary_record_storage_uid, and kcenon::pacs::services::storage.

Referenced by register_standard_sop_classes().

Here is the caller graph for this function:

◆ register_seg_sop_classes()

void kcenon::pacs::services::sop_class_registry::register_seg_sop_classes ( )
private
Examples
/home/runner/work/pacs_system/pacs_system/include/kcenon/pacs/services/sop_class_registry.h.

Definition at line 646 of file sop_class_registry.cpp.

646 {
647 // Segmentation Storage
648 registry_.emplace(
650 sop_class_info{
652 "Segmentation Storage",
655 false,
656 true // supports multiframe
657 }
658 );
659
660 // Surface Segmentation Storage
661 registry_.emplace(
663 sop_class_info{
665 "Surface Segmentation Storage",
668 false,
669 false
670 }
671 );
672
673 // Heightmap Segmentation Storage (Supplement 240)
674 registry_.emplace(
676 sop_class_info{
678 "Heightmap Segmentation Storage",
681 false,
682 true // supports multiframe (enhanced multi-frame architecture)
683 }
684 );
685
686 // Label Map Segmentation Storage (Supplement 243)
687 registry_.emplace(
689 sop_class_info{
691 "Label Map Segmentation Storage",
694 false,
695 true // supports multiframe (enhanced multi-frame architecture)
696 }
697 );
698}
constexpr std::string_view label_map_segmentation_storage_uid
Label Map Segmentation Storage SOP Class UID (Supplement 243)
Definition seg_storage.h:50
constexpr std::string_view heightmap_segmentation_storage_uid
Heightmap Segmentation Storage SOP Class UID (Supplement 240)
Definition seg_storage.h:46
constexpr std::string_view surface_segmentation_storage_uid
Surface Segmentation Storage SOP Class UID.
Definition seg_storage.h:42
constexpr std::string_view segmentation_storage_uid
Segmentation Storage SOP Class UID.
Definition seg_storage.h:38

References kcenon::pacs::services::sop_classes::heightmap_segmentation_storage_uid, kcenon::pacs::services::sop_classes::label_map_segmentation_storage_uid, registry_, kcenon::pacs::services::seg, kcenon::pacs::services::sop_classes::segmentation_storage_uid, kcenon::pacs::services::storage, and kcenon::pacs::services::sop_classes::surface_segmentation_storage_uid.

Referenced by register_standard_sop_classes().

Here is the caller graph for this function:

◆ register_sop_class()

bool kcenon::pacs::services::sop_class_registry::register_sop_class ( const sop_class_info & info)

Register a new SOP Class.

Used to add custom or new SOP Classes dynamically.

Parameters
infoThe SOP Class information
Returns
true if registration succeeded
Examples
/home/runner/work/pacs_system/pacs_system/include/kcenon/pacs/services/sop_class_registry.h.

Definition at line 103 of file sop_class_registry.cpp.

103 {
104 auto [it, inserted] = registry_.emplace(
105 std::string(info.uid),
106 info
107 );
108 return inserted;
109}

References registry_.

◆ register_sr_sop_classes()

void kcenon::pacs::services::sop_class_registry::register_sr_sop_classes ( )
private
Examples
/home/runner/work/pacs_system/pacs_system/include/kcenon/pacs/services/sop_class_registry.h.

Definition at line 700 of file sop_class_registry.cpp.

700 {
701 // Basic Text SR Storage
702 registry_.emplace(
704 sop_class_info{
706 "Basic Text SR Storage",
709 false,
710 false
711 }
712 );
713
714 // Enhanced SR Storage
715 registry_.emplace(
717 sop_class_info{
719 "Enhanced SR Storage",
722 false,
723 false
724 }
725 );
726
727 // Comprehensive SR Storage
728 registry_.emplace(
730 sop_class_info{
732 "Comprehensive SR Storage",
735 false,
736 false
737 }
738 );
739
740 // Comprehensive 3D SR Storage
741 registry_.emplace(
743 sop_class_info{
745 "Comprehensive 3D SR Storage",
748 false,
749 false
750 }
751 );
752
753 // Extensible SR Storage
754 registry_.emplace(
756 sop_class_info{
758 "Extensible SR Storage",
761 false,
762 false
763 }
764 );
765
766 // Key Object Selection Document Storage
767 registry_.emplace(
769 sop_class_info{
771 "Key Object Selection Document Storage",
774 false,
775 false
776 }
777 );
778
779 // Mammography CAD SR Storage
780 registry_.emplace(
782 sop_class_info{
784 "Mammography CAD SR Storage",
787 false,
788 false
789 }
790 );
791
792 // Chest CAD SR Storage
793 registry_.emplace(
795 sop_class_info{
797 "Chest CAD SR Storage",
800 false,
801 false
802 }
803 );
804
805 // Colon CAD SR Storage
806 registry_.emplace(
808 sop_class_info{
810 "Colon CAD SR Storage",
813 false,
814 false
815 }
816 );
817
818 // X-Ray Radiation Dose SR Storage
819 registry_.emplace(
821 sop_class_info{
823 "X-Ray Radiation Dose SR Storage",
826 false,
827 false
828 }
829 );
830}
constexpr std::string_view comprehensive_sr_storage_uid
Comprehensive SR Storage SOP Class UID.
Definition sr_storage.h:46
constexpr std::string_view colon_cad_sr_storage_uid
Colon CAD SR Storage SOP Class UID.
Definition sr_storage.h:71
constexpr std::string_view mammography_cad_sr_storage_uid
Mammography CAD SR Storage SOP Class UID.
Definition sr_storage.h:63
constexpr std::string_view basic_text_sr_storage_uid
Basic Text SR Storage SOP Class UID.
Definition sr_storage.h:38
constexpr std::string_view extensible_sr_storage_uid
Extensible SR Storage SOP Class UID.
Definition sr_storage.h:54
constexpr std::string_view enhanced_sr_storage_uid
Enhanced SR Storage SOP Class UID.
Definition sr_storage.h:42
constexpr std::string_view xray_radiation_dose_sr_storage_uid
X-Ray Radiation Dose SR Storage SOP Class UID.
Definition sr_storage.h:75
constexpr std::string_view comprehensive_3d_sr_storage_uid
Comprehensive 3D SR Storage SOP Class UID.
Definition sr_storage.h:50
constexpr std::string_view chest_cad_sr_storage_uid
Chest CAD SR Storage SOP Class UID.
Definition sr_storage.h:67
constexpr std::string_view key_object_selection_document_storage_uid
Key Object Selection Document Storage SOP Class UID.
Definition sr_storage.h:112

References kcenon::pacs::services::sop_classes::basic_text_sr_storage_uid, kcenon::pacs::services::sop_classes::chest_cad_sr_storage_uid, kcenon::pacs::services::sop_classes::colon_cad_sr_storage_uid, kcenon::pacs::services::sop_classes::comprehensive_3d_sr_storage_uid, kcenon::pacs::services::sop_classes::comprehensive_sr_storage_uid, kcenon::pacs::services::sop_classes::enhanced_sr_storage_uid, kcenon::pacs::services::sop_classes::extensible_sr_storage_uid, kcenon::pacs::services::sop_classes::key_object_selection_document_storage_uid, kcenon::pacs::services::sop_classes::mammography_cad_sr_storage_uid, registry_, kcenon::pacs::services::sr, kcenon::pacs::services::storage, and kcenon::pacs::services::sop_classes::xray_radiation_dose_sr_storage_uid.

Referenced by register_standard_sop_classes().

Here is the caller graph for this function:

◆ register_standard_sop_classes()

void kcenon::pacs::services::sop_class_registry::register_standard_sop_classes ( )
private
Examples
/home/runner/work/pacs_system/pacs_system/include/kcenon/pacs/services/sop_class_registry.h.

Definition at line 168 of file sop_class_registry.cpp.

168 {
186}

References register_ct_sop_classes(), register_dx_sop_classes(), register_mr_sop_classes(), register_nm_sop_classes(), register_ophthalmic_sop_classes(), register_other_sop_classes(), register_parametric_map_sop_classes(), register_pet_sop_classes(), register_print_sop_classes(), register_rt_sop_classes(), register_seg_sop_classes(), register_sr_sop_classes(), register_ups_sop_classes(), register_us_sop_classes(), register_waveform_sop_classes(), register_wsi_sop_classes(), and register_xa_sop_classes().

Referenced by sop_class_registry().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ register_ups_sop_classes()

void kcenon::pacs::services::sop_class_registry::register_ups_sop_classes ( )
private
Examples
/home/runner/work/pacs_system/pacs_system/include/kcenon/pacs/services/sop_class_registry.h.

Definition at line 925 of file sop_class_registry.cpp.

925 {
926 // UPS Push SOP Class (PS3.4 Annex CC)
927 registry_.emplace(
928 "1.2.840.10008.5.1.4.34.6.1",
929 sop_class_info{
930 "1.2.840.10008.5.1.4.34.6.1",
931 "Unified Procedure Step - Push SOP Class",
934 false,
935 false
936 }
937 );
938
939 // UPS Watch SOP Class (PS3.4 Annex CC)
940 registry_.emplace(
941 "1.2.840.10008.5.1.4.34.6.2",
942 sop_class_info{
943 "1.2.840.10008.5.1.4.34.6.2",
944 "Unified Procedure Step - Watch SOP Class",
947 false,
948 false
949 }
950 );
951
952 // UPS Pull SOP Class (PS3.4 Annex CC)
953 registry_.emplace(
954 "1.2.840.10008.5.1.4.34.6.3",
955 sop_class_info{
956 "1.2.840.10008.5.1.4.34.6.3",
957 "Unified Procedure Step - Pull SOP Class",
960 false,
961 false
962 }
963 );
964
965 // UPS Event SOP Class (PS3.4 Annex CC)
966 registry_.emplace(
967 "1.2.840.10008.5.1.4.34.6.4",
968 sop_class_info{
969 "1.2.840.10008.5.1.4.34.6.4",
970 "Unified Procedure Step - Event SOP Class",
973 false,
974 false
975 }
976 );
977
978 // UPS Query SOP Class (PS3.4 Annex CC)
979 registry_.emplace(
980 "1.2.840.10008.5.1.4.34.6.5",
981 sop_class_info{
982 "1.2.840.10008.5.1.4.34.6.5",
983 "Unified Procedure Step - Query SOP Class",
986 false,
987 false
988 }
989 );
990}
@ ups
Unified Procedure Step Service Class.

References kcenon::pacs::services::other, registry_, and kcenon::pacs::services::ups.

Referenced by register_standard_sop_classes().

Here is the caller graph for this function:

◆ register_us_sop_classes()

void kcenon::pacs::services::sop_class_registry::register_us_sop_classes ( )
private
Examples
/home/runner/work/pacs_system/pacs_system/include/kcenon/pacs/services/sop_class_registry.h.

Definition at line 188 of file sop_class_registry.cpp.

188 {
189 // US Image Storage
190 registry_.emplace(
192 sop_class_info{
194 "US Image Storage",
197 false,
198 false
199 }
200 );
201
202 // US Multi-frame Image Storage
203 registry_.emplace(
205 sop_class_info{
207 "US Multi-frame Image Storage",
210 false,
211 true
212 }
213 );
214
215 // US Image Storage (Retired)
216 registry_.emplace(
218 sop_class_info{
220 "US Image Storage (Retired)",
223 true,
224 false
225 }
226 );
227
228 // US Multi-frame Image Storage (Retired)
229 registry_.emplace(
231 sop_class_info{
233 "US Multi-frame Image Storage (Retired)",
236 true,
237 true
238 }
239 );
240}
constexpr std::string_view us_image_storage_uid
US Image Storage SOP Class UID (single-frame)
Definition us_storage.h:39
constexpr std::string_view us_image_storage_retired_uid
US Image Storage (Retired) - for legacy systems.
Definition us_storage.h:52
constexpr std::string_view us_multiframe_image_storage_uid
US Multi-frame Image Storage SOP Class UID (cine loops)
Definition us_storage.h:43
constexpr std::string_view us_multiframe_image_storage_retired_uid
US Multi-frame Image Storage (Retired) - for legacy systems.
Definition us_storage.h:56

References registry_, kcenon::pacs::services::storage, kcenon::pacs::services::us, kcenon::pacs::services::sop_classes::us_image_storage_retired_uid, kcenon::pacs::services::sop_classes::us_image_storage_uid, kcenon::pacs::services::sop_classes::us_multiframe_image_storage_retired_uid, and kcenon::pacs::services::sop_classes::us_multiframe_image_storage_uid.

Referenced by register_standard_sop_classes().

Here is the caller graph for this function:

◆ register_waveform_sop_classes()

void kcenon::pacs::services::sop_class_registry::register_waveform_sop_classes ( )
private
Examples
/home/runner/work/pacs_system/pacs_system/include/kcenon/pacs/services/sop_class_registry.h.

Definition at line 1089 of file sop_class_registry.cpp.

1089 {
1090 // Register all waveform storage SOP classes
1091 auto waveform_classes = sop_classes::get_waveform_storage_sop_classes(true, true);
1092 for (const auto& uid : waveform_classes) {
1093 const auto* wf_info = sop_classes::get_waveform_sop_class_info(uid);
1094 if (wf_info) {
1095 registry_.emplace(
1096 uid,
1097 sop_class_info{
1098 wf_info->uid,
1099 wf_info->name,
1102 wf_info->is_retired,
1103 false // waveform objects are not multiframe images
1104 }
1105 );
1106 }
1107 }
1108}
const waveform_sop_class_info * get_waveform_sop_class_info(std::string_view uid) noexcept
Get information about a specific Waveform SOP Class.
std::vector< std::string > get_waveform_storage_sop_classes(bool include_presentation_state=true, bool include_annotation=true)
Get all Waveform Storage SOP Class UIDs.

References kcenon::pacs::services::sop_classes::get_waveform_sop_class_info(), kcenon::pacs::services::sop_classes::get_waveform_storage_sop_classes(), kcenon::pacs::services::other, registry_, kcenon::pacs::services::storage, and uid.

Referenced by register_standard_sop_classes().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ register_wsi_sop_classes()

void kcenon::pacs::services::sop_class_registry::register_wsi_sop_classes ( )
private
Examples
/home/runner/work/pacs_system/pacs_system/include/kcenon/pacs/services/sop_class_registry.h.

Definition at line 992 of file sop_class_registry.cpp.

992 {
993 // VL Whole Slide Microscopy Image Storage
994 registry_.emplace(
996 sop_class_info{
998 "VL Whole Slide Microscopy Image Storage",
1001 false,
1002 true // supports multiframe (tiled images)
1003 }
1004 );
1005}
constexpr std::string_view wsi_image_storage_uid
VL Whole Slide Microscopy Image Storage SOP Class UID.
Definition wsi_storage.h:35

References registry_, kcenon::pacs::services::sm, kcenon::pacs::services::storage, and kcenon::pacs::services::sop_classes::wsi_image_storage_uid.

Referenced by register_standard_sop_classes().

Here is the caller graph for this function:

◆ register_xa_sop_classes()

void kcenon::pacs::services::sop_class_registry::register_xa_sop_classes ( )
private
Examples
/home/runner/work/pacs_system/pacs_system/include/kcenon/pacs/services/sop_class_registry.h.

Definition at line 242 of file sop_class_registry.cpp.

242 {
243 // XA Image Storage
244 registry_.emplace(
246 sop_class_info{
248 "X-Ray Angiographic Image Storage",
251 false,
252 true // supports multiframe
253 }
254 );
255
256 // Enhanced XA Image Storage
257 registry_.emplace(
259 sop_class_info{
261 "Enhanced X-Ray Angiographic Image Storage",
264 false,
265 true
266 }
267 );
268
269 // XRF Image Storage
270 registry_.emplace(
272 sop_class_info{
274 "X-Ray Radiofluoroscopic Image Storage",
277 false,
278 true
279 }
280 );
281
282 // X-Ray 3D Angiographic Image Storage
283 registry_.emplace(
285 sop_class_info{
287 "X-Ray 3D Angiographic Image Storage",
290 false,
291 true
292 }
293 );
294
295 // X-Ray 3D Craniofacial Image Storage
296 registry_.emplace(
298 sop_class_info{
300 "X-Ray 3D Craniofacial Image Storage",
303 false,
304 true
305 }
306 );
307}
constexpr std::string_view enhanced_xa_image_storage_uid
Enhanced XA Image Storage SOP Class UID (enhanced IOD)
Definition xa_storage.h:51
constexpr std::string_view xrf_image_storage_uid
XRF Image Storage SOP Class UID (X-Ray Radiofluoroscopic)
Definition xa_storage.h:55
constexpr std::string_view xray_3d_craniofacial_image_storage_uid
X-Ray 3D Craniofacial Image Storage SOP Class UID.
Definition xa_storage.h:68
constexpr std::string_view xray_3d_angiographic_image_storage_uid
X-Ray 3D Angiographic Image Storage SOP Class UID (3D rotational)
Definition xa_storage.h:64
constexpr std::string_view xa_image_storage_uid
XA Image Storage SOP Class UID (single/multi-frame)
Definition xa_storage.h:47

References kcenon::pacs::services::sop_classes::enhanced_xa_image_storage_uid, registry_, kcenon::pacs::services::storage, kcenon::pacs::services::xa, kcenon::pacs::services::sop_classes::xa_image_storage_uid, kcenon::pacs::services::sop_classes::xray_3d_angiographic_image_storage_uid, kcenon::pacs::services::sop_classes::xray_3d_craniofacial_image_storage_uid, kcenon::pacs::services::xrf, and kcenon::pacs::services::sop_classes::xrf_image_storage_uid.

Referenced by register_standard_sop_classes().

Here is the caller graph for this function:

Member Data Documentation

◆ registry_


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