58std::vector<std::string>
60 std::vector<std::string> result;
62 if (info.category == category) {
63 result.push_back(
uid);
69std::vector<std::string>
71 std::vector<std::string> result;
74 info.modality == modality &&
75 (include_retired || !info.is_retired)) {
76 result.push_back(
uid);
82std::vector<std::string>
84 std::vector<std::string> result;
87 (include_retired || !info.is_retired)) {
88 result.push_back(
uid);
95 std::vector<std::string> result;
98 result.push_back(
uid);
105 std::string(info.uid),
151 if (modality ==
"RT" || modality ==
"RTPLAN" || modality ==
"RTDOSE" ||
152 modality ==
"RTSTRUCT" || modality ==
"RTIMAGE" || modality ==
"RTRECORD") {
207 "US Multi-frame Image Storage",
220 "US Image Storage (Retired)",
233 "US Multi-frame Image Storage (Retired)",
248 "X-Ray Angiographic Image Storage",
261 "Enhanced X-Ray Angiographic Image Storage",
274 "X-Ray Radiofluoroscopic Image Storage",
287 "X-Ray 3D Angiographic Image Storage",
300 "X-Ray 3D Craniofacial Image Storage",
315 "Digital X-Ray Image Storage - For Presentation",
328 "Digital X-Ray Image Storage - For Processing",
341 "Digital Mammography X-Ray Image Storage - For Presentation",
354 "Digital Mammography X-Ray Image Storage - For Processing",
367 "Digital Intra-Oral X-Ray Image Storage - For Presentation",
380 "Digital Intra-Oral X-Ray Image Storage - For Processing",
392 "1.2.840.10008.5.1.4.1.1.2",
394 "1.2.840.10008.5.1.4.1.1.2",
405 "1.2.840.10008.5.1.4.1.1.2.1",
407 "1.2.840.10008.5.1.4.1.1.2.1",
408 "Enhanced CT Image Storage",
418 "1.2.840.10008.5.1.4.1.1.2.2",
420 "1.2.840.10008.5.1.4.1.1.2.2",
421 "CT For Processing Image Storage",
433 "1.2.840.10008.5.1.4.1.1.4",
435 "1.2.840.10008.5.1.4.1.1.4",
446 "1.2.840.10008.5.1.4.1.1.4.1",
448 "1.2.840.10008.5.1.4.1.1.4.1",
449 "Enhanced MR Image Storage",
477 "Enhanced PET Image Storage",
490 "Legacy Converted Enhanced PET Image Storage",
518 "NM Image Storage (Retired)",
559 "RT Structure Set Storage",
585 "RT Beams Treatment Record Storage",
598 "RT Brachy Treatment Record Storage",
611 "RT Treatment Summary Record Storage",
624 "RT Ion Plan Storage",
637 "RT Ion Beams Treatment Record Storage",
652 "Segmentation Storage",
665 "Surface Segmentation Storage",
678 "Heightmap Segmentation Storage",
691 "Label Map Segmentation Storage",
706 "Basic Text SR Storage",
719 "Enhanced SR Storage",
732 "Comprehensive SR Storage",
745 "Comprehensive 3D SR Storage",
758 "Extensible SR Storage",
771 "Key Object Selection Document Storage",
784 "Mammography CAD SR Storage",
797 "Chest CAD SR Storage",
810 "Colon CAD SR Storage",
823 "X-Ray Radiation Dose SR Storage",
835 "1.2.840.10008.5.1.1.1",
837 "1.2.840.10008.5.1.1.1",
838 "Basic Film Session",
848 "1.2.840.10008.5.1.1.2",
850 "1.2.840.10008.5.1.1.2",
861 "1.2.840.10008.5.1.1.4",
863 "1.2.840.10008.5.1.1.4",
864 "Basic Grayscale Image Box",
874 "1.2.840.10008.5.1.1.4.1",
876 "1.2.840.10008.5.1.1.4.1",
877 "Basic Color Image Box",
887 "1.2.840.10008.5.1.1.16",
889 "1.2.840.10008.5.1.1.16",
900 "1.2.840.10008.5.1.1.9",
902 "1.2.840.10008.5.1.1.9",
903 "Basic Grayscale Print Management Meta",
913 "1.2.840.10008.5.1.1.18",
915 "1.2.840.10008.5.1.1.18",
916 "Basic Color Print Management Meta",
928 "1.2.840.10008.5.1.4.34.6.1",
930 "1.2.840.10008.5.1.4.34.6.1",
931 "Unified Procedure Step - Push SOP Class",
941 "1.2.840.10008.5.1.4.34.6.2",
943 "1.2.840.10008.5.1.4.34.6.2",
944 "Unified Procedure Step - Watch SOP Class",
954 "1.2.840.10008.5.1.4.34.6.3",
956 "1.2.840.10008.5.1.4.34.6.3",
957 "Unified Procedure Step - Pull SOP Class",
967 "1.2.840.10008.5.1.4.34.6.4",
969 "1.2.840.10008.5.1.4.34.6.4",
970 "Unified Procedure Step - Event SOP Class",
980 "1.2.840.10008.5.1.4.34.6.5",
982 "1.2.840.10008.5.1.4.34.6.5",
983 "Unified Procedure Step - Query SOP Class",
998 "VL Whole Slide Microscopy Image Storage",
1013 "Ophthalmic Photography 8 Bit Image Storage",
1026 "Ophthalmic Photography 16 Bit Image Storage",
1039 "Ophthalmic Tomography Image Storage",
1052 "Wide Field Ophthalmic Photography Storage",
1065 "Ophthalmic OCT B-scan Volume Analysis Storage",
1080 "Parametric Map Storage",
1092 for (
const auto&
uid : waveform_classes) {
1102 wf_info->is_retired,
1113 "1.2.840.10008.5.1.4.1.1.1",
1115 "1.2.840.10008.5.1.4.1.1.1",
1128 "1.2.840.10008.5.1.4.1.1.7",
1130 "1.2.840.10008.5.1.4.1.1.7",
1131 "Secondary Capture Image Storage",
1141 "1.2.840.10008.1.1",
1143 "1.2.840.10008.1.1",
1144 "Verification SOP Class",
1157 "Storage Commitment Push Model",
1178 return info->modality;
1185 if (info !=
nullptr) {
const sop_class_info * get_info(std::string_view uid) const
Get information about a SOP Class.
void register_seg_sop_classes()
std::vector< std::string > get_all_storage_classes(bool include_retired=true) const
Get all storage SOP Classes.
void register_print_sop_classes()
static modality_type parse_modality(std::string_view modality) noexcept
Parse a modality string to enum.
void register_nm_sop_classes()
bool register_sop_class(const sop_class_info &info)
Register a new 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_all() const
Get all registered SOP Class UIDs.
void register_standard_sop_classes()
static std::string_view modality_to_string(modality_type modality) noexcept
Get the modality string for a modality type.
void register_ups_sop_classes()
bool is_supported(std::string_view uid) const
Check if a SOP Class UID is supported.
void register_mr_sop_classes()
void register_dx_sop_classes()
void register_ophthalmic_sop_classes()
void register_rt_sop_classes()
void register_wsi_sop_classes()
void register_pet_sop_classes()
void register_us_sop_classes()
void register_xa_sop_classes()
void register_ct_sop_classes()
void register_sr_sop_classes()
static sop_class_registry & instance()
Get the singleton instance.
std::unordered_map< std::string, sop_class_info > registry_
void register_waveform_sop_classes()
void register_other_sop_classes()
void register_parametric_map_sop_classes()
std::vector< std::string > get_by_modality(modality_type modality, bool include_retired=true) const
Get all storage SOP Classes for a modality.
Digital X-Ray (DX) Image Storage SOP Classes.
constexpr std::string_view comprehensive_sr_storage_uid
Comprehensive SR Storage SOP Class UID.
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...
constexpr std::string_view ophthalmic_oct_bscan_analysis_storage_uid
Ophthalmic Optical Coherence Tomography B-scan Volume Analysis Storage.
constexpr std::string_view colon_cad_sr_storage_uid
Colon CAD SR Storage SOP Class UID.
constexpr std::string_view mammography_cad_sr_storage_uid
Mammography CAD SR Storage SOP Class UID.
constexpr std::string_view rt_structure_set_storage_uid
RT Structure Set Storage SOP Class UID.
constexpr std::string_view rt_image_storage_uid
RT Image Storage SOP Class UID.
const waveform_sop_class_info * get_waveform_sop_class_info(std::string_view uid) noexcept
Get information about a specific Waveform SOP Class.
constexpr std::string_view rt_ion_plan_storage_uid
RT Ion Plan Storage SOP Class UID.
constexpr std::string_view pet_image_storage_uid
PET Image Storage SOP Class UID.
constexpr std::string_view label_map_segmentation_storage_uid
Label Map Segmentation Storage SOP Class UID (Supplement 243)
constexpr std::string_view ophthalmic_photo_16bit_storage_uid
Ophthalmic Photography 16 Bit Image Storage.
constexpr std::string_view rt_dose_storage_uid
RT Dose Storage SOP Class UID.
constexpr std::string_view enhanced_xa_image_storage_uid
Enhanced XA Image Storage SOP Class UID (enhanced IOD)
constexpr std::string_view wsi_image_storage_uid
VL Whole Slide Microscopy Image Storage SOP Class UID.
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.
constexpr std::string_view heightmap_segmentation_storage_uid
Heightmap Segmentation Storage SOP Class UID (Supplement 240)
constexpr std::string_view xrf_image_storage_uid
XRF Image Storage SOP Class UID (X-Ray Radiofluoroscopic)
constexpr std::string_view basic_text_sr_storage_uid
Basic Text SR Storage SOP Class UID.
constexpr std::string_view us_image_storage_uid
US Image Storage SOP Class UID (single-frame)
constexpr std::string_view rt_beams_treatment_record_storage_uid
RT Beams Treatment Record Storage SOP Class UID.
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...
constexpr std::string_view rt_ion_beams_treatment_record_storage_uid
RT Ion Beams Treatment Record Storage SOP Class UID.
constexpr std::string_view xray_3d_craniofacial_image_storage_uid
X-Ray 3D Craniofacial Image Storage SOP Class UID.
constexpr std::string_view wide_field_ophthalmic_photo_storage_uid
Wide Field Ophthalmic Photography SOP Class Storage.
constexpr std::string_view xray_3d_angiographic_image_storage_uid
X-Ray 3D Angiographic Image Storage SOP Class UID (3D rotational)
constexpr std::string_view us_image_storage_retired_uid
US Image Storage (Retired) - for legacy systems.
constexpr std::string_view intraoral_image_storage_for_processing_uid
Digital Intra-Oral X-Ray Image Storage - For Processing.
constexpr std::string_view surface_segmentation_storage_uid
Surface Segmentation Storage SOP Class UID.
constexpr std::string_view mammography_image_storage_for_processing_uid
Digital Mammography X-Ray Image Storage - For Processing.
constexpr std::string_view extensible_sr_storage_uid
Extensible SR Storage SOP Class UID.
constexpr std::string_view nm_image_storage_retired_uid
Nuclear Medicine Image Storage (Retired) - for legacy systems.
constexpr std::string_view legacy_converted_enhanced_pet_image_storage_uid
Legacy Converted Enhanced PET Image Storage SOP Class UID.
constexpr std::string_view enhanced_sr_storage_uid
Enhanced SR Storage SOP Class UID.
constexpr std::string_view intraoral_image_storage_for_presentation_uid
Digital Intra-Oral X-Ray Image Storage - For Presentation.
constexpr std::string_view xray_radiation_dose_sr_storage_uid
X-Ray Radiation Dose SR Storage SOP Class UID.
constexpr std::string_view rt_brachy_treatment_record_storage_uid
RT Brachy Treatment Record Storage SOP Class UID.
constexpr std::string_view rt_treatment_summary_record_storage_uid
RT Treatment Summary Record Storage SOP Class UID.
constexpr std::string_view comprehensive_3d_sr_storage_uid
Comprehensive 3D SR Storage SOP Class UID.
constexpr std::string_view xa_image_storage_uid
XA Image Storage SOP Class UID (single/multi-frame)
constexpr std::string_view segmentation_storage_uid
Segmentation Storage SOP Class UID.
constexpr std::string_view enhanced_pet_image_storage_uid
Enhanced PET Image Storage SOP Class UID.
constexpr std::string_view ophthalmic_tomography_storage_uid
Ophthalmic Tomography Image Storage (OCT)
constexpr std::string_view rt_plan_storage_uid
RT Plan Storage SOP Class UID.
constexpr std::string_view nm_image_storage_uid
Nuclear Medicine Image Storage SOP Class UID.
constexpr std::string_view parametric_map_storage_uid
Parametric Map Storage SOP Class UID.
constexpr std::string_view chest_cad_sr_storage_uid
Chest CAD SR Storage SOP Class UID.
constexpr std::string_view ophthalmic_photo_8bit_storage_uid
Ophthalmic Photography 8 Bit Image Storage.
constexpr std::string_view key_object_selection_document_storage_uid
Key Object Selection Document Storage SOP Class UID.
constexpr std::string_view mammography_image_storage_for_presentation_uid
Digital Mammography X-Ray Image Storage - For Presentation.
constexpr std::string_view us_multiframe_image_storage_uid
US Multi-frame Image Storage SOP Class UID (cine loops)
constexpr std::string_view us_multiframe_image_storage_retired_uid
US Multi-frame Image Storage (Retired) - for legacy systems.
modality_type
Modality type for storage SOP classes.
@ op
Ophthalmic Photography / Tomography.
@ cr
Computed Radiography.
@ pet
Positron Emission Tomography.
@ xrf
X-Ray Radiofluoroscopic.
@ sm
Slide Microscopy (Whole Slide Imaging)
bool is_storage_sop_class(std::string_view uid)
Check if a SOP Class UID is a storage class.
modality_type get_storage_modality(std::string_view uid)
Get the modality for a storage SOP Class.
constexpr std::string_view storage_commitment_push_model_sop_class_uid
Storage Commitment Push Model SOP Class UID (PS3.4 Table J.3-1)
std::string_view get_sop_class_name(std::string_view uid)
Get human-readable name for a SOP Class.
sop_class_category
Category of SOP Class.
@ ups
Unified Procedure Step Service Class.
@ storage_commitment
Storage Commitment Push Model Service Class.
@ storage
Storage Service Class.
@ print
Print Management Service Class.
@ verification
Verification Service Class.
Nuclear Medicine (NM) Image Storage SOP Classes.
Ophthalmic Photography and Tomography Storage SOP Classes.
Parametric Map Storage SOP Class.
Positron Emission Tomography (PET) Image Storage SOP Classes.
Radiation Therapy (RT) Storage SOP Classes.
Segmentation (SEG) Storage SOP Classes.
Central registry for all supported SOP Classes.
Structured Report (SR) Storage SOP Classes.
Data types for DICOM Storage Commitment Push Model Service.
Complete information about a SOP Class.
Ultrasound Image Storage SOP Classes.
VL Whole Slide Microscopy Image Storage SOP Class.
X-Ray Angiographic (XA) Image Storage SOP Classes.