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

Namespaces

namespace  ophthalmic_tags
 
namespace  parametric_map_tags
 
namespace  sr_template
 Common SR Template IDs (TID)
 
namespace  wsi_tags
 

Classes

struct  dx_sop_class_info
 Information about a DX Storage SOP Class. More...
 
struct  mg_acquisition_params
 Mammography acquisition parameters structure. More...
 
struct  mg_sop_class_info
 Information about a Mammography Storage SOP Class. More...
 
struct  nm_energy_window_info
 Energy window information for NM acquisition. More...
 
struct  nm_sop_class_info
 Information about a NM Storage SOP Class. More...
 
struct  parametric_map_sop_class_info
 Information about the Parametric Map Storage SOP Class. More...
 
struct  pet_sop_class_info
 Information about a PET Storage SOP Class. More...
 
struct  rt_sop_class_info
 Information about an RT Storage SOP Class. More...
 
struct  seg_sop_class_info
 Information about a SEG Storage SOP Class. More...
 
struct  segment_color
 Standard segment colors for common anatomical structures. More...
 
struct  sr_sop_class_info
 Information about an SR Storage SOP Class. More...
 
struct  us_sop_class_info
 Information about an US Storage SOP Class. More...
 
struct  waveform_sop_class_info
 Information about a Waveform Storage SOP Class. More...
 
struct  xa_calibration_data
 XA calibration data for quantitative analysis. More...
 
struct  xa_positioner_angles
 Positioner angle information. More...
 
struct  xa_sop_class_info
 Information about an XA/XRF Storage SOP Class. More...
 

Enumerations

enum class  dx_photometric_interpretation { monochrome1 , monochrome2 }
 Supported photometric interpretations for DX images. More...
 
enum class  dx_image_type { for_presentation , for_processing }
 DX image purpose classification. More...
 
enum class  dx_view_position {
  ap , pa , lateral , oblique ,
  other
}
 Common radiographic view positions for DX images. More...
 
enum class  dx_detector_type { direct , indirect , storage , film }
 DX detector technology types. More...
 
enum class  dx_body_part {
  chest , abdomen , pelvis , spine ,
  skull , hand , foot , knee ,
  elbow , shoulder , hip , wrist ,
  ankle , extremity , breast , other
}
 Common body parts for DX imaging. More...
 
enum class  breast_laterality { left , right , bilateral , unknown }
 Breast laterality enumeration. More...
 
enum class  mg_view_position {
  cc , mlo , ml , lm ,
  xccl , xccm , fb , sio ,
  iso , cv , at , spot ,
  mag , spot_mag , rl , rm ,
  rs , ri , tangen , implant ,
  id , other
}
 Mammography-specific view positions. More...
 
enum class  mg_image_type { for_presentation , for_processing }
 Mammography image purpose classification. More...
 
enum class  cad_processing_status {
  not_processed , processed_no_findings , processed_findings , processing_failed ,
  pending
}
 CAD (Computer-Aided Detection) processing status. More...
 
enum class  nm_photometric_interpretation { monochrome2 , palette_color }
 Supported photometric interpretations for NM images. More...
 
enum class  nm_type_of_data {
  static_image , dynamic , gated , whole_body ,
  recon_tomo , recon_gated_tomo , tomo , gated_tomo
}
 NM image type (Type of Data) More...
 
enum class  nm_detector_geometry {
  planar , ring , partial_ring , curved ,
  cylindrical
}
 NM detector geometry type. More...
 
enum class  nm_collimator_type {
  parallel , fan_beam , cone_beam , pinhole ,
  diverging , converging , none
}
 NM collimator type. More...
 
enum class  nm_radioisotope {
  tc99m , i131 , i123 , tl201 ,
  ga67 , in111 , f18 , other
}
 Common radioisotopes used in NM imaging. More...
 
enum class  nm_rotation_direction { cw , cc }
 NM rotation direction for SPECT. More...
 
enum class  nm_scan_arc { arc_180 , arc_360 }
 NM scan arc for SPECT. More...
 
enum class  nm_whole_body_technique { single_pass , multi_pass , stepping }
 Patient orientation for whole body scan. More...
 
enum class  pixel_value_representation { float32 , float64 }
 Pixel value representation for parametric map data. More...
 
enum class  pet_photometric_interpretation { monochrome2 }
 Supported photometric interpretations for PET images. More...
 
enum class  pet_image_type { original , derived , primary , secondary }
 PET image type indicating the nature of the image. More...
 
enum class  pet_series_type { static_image , dynamic , gated , whole_body }
 PET series type code. More...
 
enum class  pet_attenuation_correction { none , measured , calculated , ct_based }
 Attenuation correction method. More...
 
enum class  pet_scatter_correction { none , single_scatter , convolution , model_based }
 Scatter correction method. More...
 
enum class  pet_reconstruction_type {
  fbp , osem , mlem , tof_osem ,
  psf_osem , other
}
 PET reconstruction algorithm type. More...
 
enum class  pet_units {
  cnts , bqml , gml , suv_bw ,
  suv_lbm , suv_bsa , percent_id_gram , other
}
 PET units type (Units attribute 0054,1001) More...
 
enum class  pet_radiotracer {
  fdg , naf , flt , fdopa ,
  ammonia , rubidium , gallium_dotatate , psma ,
  other
}
 Common PET radiotracers. More...
 
enum class  rt_plan_intent {
  curative , palliative , prophylactic , verification ,
  machine_qa , research , service
}
 RT Plan Intent. More...
 
enum class  rt_plan_geometry { patient , treatment_device }
 RT Plan Geometry. More...
 
enum class  rt_dose_type { physical , effective , error }
 RT Dose Type. More...
 
enum class  rt_dose_summation_type {
  plan , multi_plan , fraction , beam ,
  brachy , fraction_session , beam_session , brachy_session ,
  control_point , record
}
 RT Dose Summation Type. More...
 
enum class  rt_dose_units { gy , relative }
 RT Dose Units. More...
 
enum class  rt_roi_interpreted_type {
  external , ptv , ctv , gtv ,
  organ , avoidance , treated_volume , irrad_volume ,
  bolus , brachy_channel , brachy_accessory , brachy_src_appl ,
  brachy_chnl_shld , support , fixation , dose_region ,
  contrast_agent , cavity , marker , registration ,
  isocenter , control_point
}
 RT ROI Interpreted Type. More...
 
enum class  rt_roi_generation_algorithm { automatic , semiautomatic , manual }
 RT ROI Generation Algorithm. More...
 
enum class  rt_beam_type { static_beam , dynamic }
 RT Beam Type. More...
 
enum class  rt_radiation_type {
  photon , electron , neutron , proton ,
  ion
}
 RT Radiation Type. More...
 
enum class  rt_treatment_delivery_type {
  treatment , open_portfilm , trmt_portfilm , continuation ,
  setup
}
 RT Treatment Delivery Type. More...
 
enum class  rt_image_plane {
  axial , localizer , drr , portal ,
  fluence
}
 RT Image Type values (as used in Image Type attribute) More...
 
enum class  segmentation_type { binary , fractional }
 Segmentation type (0062,0001) More...
 
enum class  segmentation_fractional_type { probability , occupancy }
 Segmentation fractional type (0062,0010) More...
 
enum class  segment_algorithm_type { automatic , semiautomatic , manual }
 Segment algorithm type (0062,0008) More...
 
enum class  segment_category {
  tissue , anatomical_structure , physical_object , morphologically_abnormal ,
  function , spatial , body_substance
}
 Common anatomical property categories (CID 7150) More...
 
enum class  sr_document_type {
  basic_text , enhanced , comprehensive , comprehensive_3d ,
  extensible , key_object_selection , cad , dose_report ,
  procedure_log , other
}
 SR Document type classification. More...
 
enum class  sr_value_type {
  text , code , num , datetime ,
  date , time , uidref , pname ,
  composite , image , waveform , scoord ,
  scoord3d , tcoord , container , table ,
  unknown
}
 SR Content Item Value Type (0040,A040) More...
 
enum class  sr_relationship_type {
  contains , has_obs_context , has_acq_context , has_concept_mod ,
  has_properties , inferred_from , selected_from , unknown
}
 SR Content Item Relationship Type (0040,A010) More...
 
enum class  sr_completion_flag { partial , complete }
 SR Completion Flag (0040,A491) More...
 
enum class  sr_verification_flag { unverified , verified }
 SR Verification Flag (0040,A493) More...
 
enum class  us_photometric_interpretation {
  monochrome1 , monochrome2 , palette_color , rgb ,
  ybr_full , ybr_full_422
}
 Supported photometric interpretations for US images. More...
 
enum class  us_region_spatial_format : uint16_t {
  none = 0x0000 , two_d = 0x0001 , m_mode = 0x0002 , spectral = 0x0003 ,
  wave_form = 0x0004 , graphics = 0x0005
}
 US Region spatial format. More...
 
enum class  us_region_data_type : uint16_t {
  tissue = 0x0001 , blood = 0x0002 , color_flow = 0x0003 , elastography = 0x0004 ,
  b_mode = 0x0005
}
 US Region data type. More...
 
enum class  waveform_type {
  ecg_12lead , ecg_general , ecg_ambulatory , hemodynamic ,
  cardiac_ep , audio_basic , audio_general , arterial_pulse ,
  respiratory , respiratory_multi , eeg_routine , emg ,
  eog , eeg_sleep , body_position , presentation_state ,
  annotation , unknown
}
 Waveform type classification. More...
 
enum class  xa_photometric_interpretation { monochrome1 , monochrome2 }
 Supported photometric interpretations for XA/XRF images. More...
 
enum class  xa_positioner_motion { stationary , dynamic }
 Positioner motion type. More...
 
enum class  xa_frame_rate : uint16_t { fps_7_5 = 8 , fps_15 = 15 , fps_30 = 30 }
 Common XA frame rates in frames per second. More...
 

Functions

std::vector< std::string > get_ct_storage_sop_classes ()
 Get all CT Storage SOP Class UIDs.
 
bool is_ct_storage_sop_class (std::string_view uid) noexcept
 Check if a SOP Class UID is a CT Storage SOP Class.
 
bool is_valid_ct_photometric (std::string_view value) noexcept
 Check if photometric interpretation is valid for CT.
 
std::vector< std::string > get_dx_transfer_syntaxes ()
 Get recommended transfer syntaxes for DX images.
 
std::string_view to_string (dx_photometric_interpretation interp) noexcept
 Convert photometric interpretation enum to DICOM string.
 
dx_photometric_interpretation parse_dx_photometric_interpretation (std::string_view value) noexcept
 Parse DICOM photometric interpretation string for DX.
 
bool is_valid_dx_photometric (std::string_view value) noexcept
 Check if photometric interpretation is valid for DX.
 
std::string_view to_string (dx_image_type type) noexcept
 Convert DX image type to string.
 
std::string_view to_string (dx_view_position position) noexcept
 Convert view position enum to DICOM string.
 
dx_view_position parse_view_position (std::string_view value) noexcept
 Parse DICOM view position string.
 
std::string_view to_string (dx_detector_type type) noexcept
 Convert detector type enum to DICOM string.
 
dx_detector_type parse_detector_type (std::string_view value) noexcept
 Parse DICOM detector type string.
 
std::vector< std::string > get_dx_storage_sop_classes (bool include_mammography=true, bool include_intraoral=true)
 Get all DX Storage SOP Class UIDs.
 
const dx_sop_class_infoget_dx_sop_class_info (std::string_view uid) noexcept
 Get information about a specific DX SOP Class.
 
bool is_dx_storage_sop_class (std::string_view uid) noexcept
 Check if a SOP Class UID is a DX Storage SOP Class.
 
bool is_dx_for_processing_sop_class (std::string_view uid) noexcept
 Check if a SOP Class UID is a For Processing SOP Class.
 
bool is_dx_for_presentation_sop_class (std::string_view uid) noexcept
 Check if a SOP Class UID is a For Presentation SOP Class.
 
bool is_mammography_sop_class (std::string_view uid) noexcept
 Check if a SOP Class UID is a mammography SOP Class.
 
std::string_view to_string (dx_body_part part) noexcept
 Convert body part enum to DICOM string.
 
dx_body_part parse_body_part (std::string_view value) noexcept
 Parse DICOM body part examined string.
 
std::string_view to_string (breast_laterality laterality) noexcept
 Convert breast laterality enum to DICOM string.
 
breast_laterality parse_breast_laterality (std::string_view value) noexcept
 Parse DICOM laterality string to enum.
 
bool is_valid_breast_laterality (std::string_view value) noexcept
 Check if a laterality value is valid for mammography.
 
std::string_view to_string (mg_view_position position) noexcept
 Convert mammography view position enum to DICOM string.
 
mg_view_position parse_mg_view_position (std::string_view value) noexcept
 Parse DICOM view position string to mammography view enum.
 
bool is_screening_view (mg_view_position position) noexcept
 Check if a view position is a standard screening view.
 
bool is_magnification_view (mg_view_position position) noexcept
 Check if a view position requires magnification.
 
bool is_spot_compression_view (mg_view_position position) noexcept
 Check if a view position involves spot compression.
 
std::vector< std::string_view > get_valid_mg_view_positions () noexcept
 Get all valid mammography view position strings.
 
bool is_valid_compression_force (double force_n) noexcept
 Validate compression force value.
 
std::pair< double, double > get_typical_compression_force_range () noexcept
 Get typical compression force range.
 
bool is_valid_compressed_breast_thickness (double thickness_mm) noexcept
 Validate compressed breast thickness.
 
std::string_view to_string (mg_image_type type) noexcept
 Convert mammography image type to string.
 
std::string_view to_string (cad_processing_status status) noexcept
 Convert CAD processing status to display string.
 
std::vector< std::string > get_mg_storage_sop_classes (bool include_tomosynthesis=true)
 Get all Mammography Storage SOP Class UIDs.
 
const mg_sop_class_infoget_mg_sop_class_info (std::string_view uid) noexcept
 Get information about a specific Mammography SOP Class.
 
bool is_mg_storage_sop_class (std::string_view uid) noexcept
 Check if a SOP Class UID is a Mammography Storage SOP Class.
 
bool is_breast_tomosynthesis_sop_class (std::string_view uid) noexcept
 Check if a SOP Class UID is a breast tomosynthesis SOP Class.
 
bool is_mg_for_processing_sop_class (std::string_view uid) noexcept
 Check if a SOP Class UID is a For Processing mammography SOP Class.
 
bool is_mg_for_presentation_sop_class (std::string_view uid) noexcept
 Check if a SOP Class UID is a For Presentation mammography SOP Class.
 
std::vector< std::string > get_mg_transfer_syntaxes ()
 Get recommended transfer syntaxes for mammography images.
 
bool is_valid_laterality_view_combination (breast_laterality laterality, mg_view_position view) noexcept
 Check if laterality and view position are consistent.
 
std::vector< std::pair< breast_laterality, mg_view_position > > get_standard_screening_views () noexcept
 Get standard four-view screening exam views.
 
std::string create_mg_image_type (bool is_original, bool is_primary, mg_image_type type)
 Create DICOM-compliant image type value for mammography.
 
std::vector< std::string > get_mr_storage_sop_classes ()
 Get all MR Storage SOP Class UIDs.
 
bool is_mr_storage_sop_class (std::string_view uid) noexcept
 Check if a SOP Class UID is an MR Storage SOP Class.
 
bool is_valid_mr_photometric (std::string_view value) noexcept
 Check if photometric interpretation is valid for MR.
 
std::vector< std::string > get_nm_transfer_syntaxes ()
 Get recommended transfer syntaxes for NM images.
 
std::string_view to_string (nm_photometric_interpretation interp) noexcept
 Convert photometric interpretation enum to DICOM string.
 
nm_photometric_interpretation parse_nm_photometric_interpretation (std::string_view value) noexcept
 Parse DICOM photometric interpretation string.
 
bool is_valid_nm_photometric (std::string_view value) noexcept
 Check if photometric interpretation is valid for NM.
 
std::vector< std::string > get_nm_storage_sop_classes (bool include_retired=true)
 Get all NM Storage SOP Class UIDs.
 
const nm_sop_class_infoget_nm_sop_class_info (std::string_view uid) noexcept
 Get information about a specific NM SOP Class.
 
bool is_nm_storage_sop_class (std::string_view uid) noexcept
 Check if a SOP Class UID is a NM Storage SOP Class.
 
bool is_nm_multiframe_sop_class (std::string_view uid) noexcept
 Check if a SOP Class UID supports multi-frame.
 
std::string_view to_string (nm_type_of_data type) noexcept
 Convert NM type of data to DICOM string.
 
nm_type_of_data parse_nm_type_of_data (std::string_view value) noexcept
 Parse NM type of data from DICOM string.
 
std::string_view to_string (nm_collimator_type collimator) noexcept
 Convert collimator type to DICOM string.
 
nm_collimator_type parse_nm_collimator_type (std::string_view value) noexcept
 Parse collimator type from DICOM string.
 
std::string_view to_string (nm_radioisotope isotope) noexcept
 Get radioisotope name string.
 
double get_primary_energy_kev (nm_radioisotope isotope) noexcept
 Get primary photopeak energy for radioisotope.
 
std::string_view to_string (nm_whole_body_technique technique) noexcept
 Convert whole body technique to string.
 
std::vector< std::string > get_ophthalmic_storage_sop_classes ()
 Get all Ophthalmic Storage SOP Class UIDs.
 
bool is_ophthalmic_storage_sop_class (std::string_view uid) noexcept
 Check if a SOP Class UID is an Ophthalmic Storage SOP Class.
 
bool is_valid_ophthalmic_photometric (std::string_view value) noexcept
 Check if photometric interpretation is valid for ophthalmic imaging.
 
std::vector< std::string > get_parametric_map_transfer_syntaxes ()
 Get recommended transfer syntaxes for Parametric Map objects.
 
uint16_t get_bits_allocated (pixel_value_representation repr) noexcept
 Get bits allocated for a pixel value representation.
 
pixel_value_representation parse_pixel_value_representation (uint16_t bits_allocated) noexcept
 Parse pixel value representation from BitsAllocated value.
 
bool is_valid_parametric_map_bits_allocated (uint16_t bits_allocated) noexcept
 Check if a BitsAllocated value is valid for parametric maps.
 
std::vector< std::string > get_parametric_map_storage_sop_classes ()
 Get all Parametric Map Storage SOP Class UIDs.
 
const parametric_map_sop_class_infoget_parametric_map_sop_class_info (std::string_view uid) noexcept
 Get information about the Parametric Map SOP Class.
 
bool is_parametric_map_storage_sop_class (std::string_view uid) noexcept
 Check if a SOP Class UID is Parametric Map Storage.
 
bool is_valid_parametric_map_photometric (std::string_view value) noexcept
 Check if photometric interpretation is valid for parametric maps.
 
std::vector< std::string > get_pet_transfer_syntaxes ()
 Get recommended transfer syntaxes for PET images.
 
std::string_view to_string (pet_photometric_interpretation interp) noexcept
 Convert photometric interpretation enum to DICOM string.
 
pet_photometric_interpretation parse_pet_photometric_interpretation (std::string_view value) noexcept
 Parse DICOM photometric interpretation string.
 
bool is_valid_pet_photometric (std::string_view value) noexcept
 Check if photometric interpretation is valid for PET.
 
std::vector< std::string > get_pet_storage_sop_classes (bool include_retired=true)
 Get all PET Storage SOP Class UIDs.
 
const pet_sop_class_infoget_pet_sop_class_info (std::string_view uid) noexcept
 Get information about a specific PET SOP Class.
 
bool is_pet_storage_sop_class (std::string_view uid) noexcept
 Check if a SOP Class UID is a PET Storage SOP Class.
 
bool is_enhanced_pet_sop_class (std::string_view uid) noexcept
 Check if a SOP Class UID is an Enhanced PET Storage SOP Class.
 
std::string_view to_string (pet_reconstruction_type recon) noexcept
 Convert PET reconstruction type to string.
 
pet_reconstruction_type parse_pet_reconstruction_type (std::string_view value) noexcept
 Parse PET reconstruction type from string.
 
std::string_view to_string (pet_units units) noexcept
 Convert PET units to DICOM string.
 
pet_units parse_pet_units (std::string_view value) noexcept
 Parse PET units from DICOM string.
 
std::string_view to_string (pet_radiotracer tracer) noexcept
 Get radiotracer name string.
 
std::vector< std::string > get_rt_transfer_syntaxes ()
 Get recommended transfer syntaxes for RT objects.
 
std::vector< std::string > get_rt_storage_sop_classes (bool include_retired=true)
 Get all RT Storage SOP Class UIDs.
 
const rt_sop_class_infoget_rt_sop_class_info (std::string_view uid) noexcept
 Get information about a specific RT SOP Class.
 
bool is_rt_storage_sop_class (std::string_view uid) noexcept
 Check if a SOP Class UID is an RT Storage SOP Class.
 
bool is_rt_plan_sop_class (std::string_view uid) noexcept
 Check if a SOP Class UID is an RT Plan type.
 
bool rt_sop_class_has_pixel_data (std::string_view uid) noexcept
 Check if a SOP Class UID contains pixel data.
 
std::string_view to_string (rt_plan_intent intent) noexcept
 Convert RT plan intent to DICOM string.
 
rt_plan_intent parse_rt_plan_intent (std::string_view value) noexcept
 Parse RT plan intent from DICOM string.
 
std::string_view to_string (rt_plan_geometry geometry) noexcept
 Convert RT plan geometry to DICOM string.
 
rt_plan_geometry parse_rt_plan_geometry (std::string_view value) noexcept
 Parse RT plan geometry from DICOM string.
 
std::string_view to_string (rt_dose_type type) noexcept
 Convert RT dose type to DICOM string.
 
rt_dose_type parse_rt_dose_type (std::string_view value) noexcept
 Parse RT dose type from DICOM string.
 
std::string_view to_string (rt_dose_summation_type type) noexcept
 Convert RT dose summation type to DICOM string.
 
rt_dose_summation_type parse_rt_dose_summation_type (std::string_view value) noexcept
 Parse RT dose summation type from DICOM string.
 
std::string_view to_string (rt_dose_units units) noexcept
 Convert RT dose units to DICOM string.
 
rt_dose_units parse_rt_dose_units (std::string_view value) noexcept
 Parse RT dose units from DICOM string.
 
std::string_view to_string (rt_roi_interpreted_type type) noexcept
 Convert RT ROI interpreted type to DICOM string.
 
rt_roi_interpreted_type parse_rt_roi_interpreted_type (std::string_view value) noexcept
 Parse RT ROI interpreted type from DICOM string.
 
std::string_view to_string (rt_roi_generation_algorithm algorithm) noexcept
 Convert RT ROI generation algorithm to DICOM string.
 
rt_roi_generation_algorithm parse_rt_roi_generation_algorithm (std::string_view value) noexcept
 Parse RT ROI generation algorithm from DICOM string.
 
std::string_view to_string (rt_beam_type type) noexcept
 Convert RT beam type to DICOM string.
 
rt_beam_type parse_rt_beam_type (std::string_view value) noexcept
 Parse RT beam type from DICOM string.
 
std::string_view to_string (rt_radiation_type type) noexcept
 Convert RT radiation type to DICOM string.
 
rt_radiation_type parse_rt_radiation_type (std::string_view value) noexcept
 Parse RT radiation type from DICOM string.
 
std::string_view to_string (rt_treatment_delivery_type type) noexcept
 Convert RT treatment delivery type to DICOM string.
 
rt_treatment_delivery_type parse_rt_treatment_delivery_type (std::string_view value) noexcept
 Parse RT treatment delivery type from DICOM string.
 
std::string_view to_string (rt_image_plane plane) noexcept
 Convert RT image plane to DICOM string.
 
rt_image_plane parse_rt_image_plane (std::string_view value) noexcept
 Parse RT image plane from DICOM string.
 
std::vector< std::string > get_seg_transfer_syntaxes ()
 Get recommended transfer syntaxes for SEG objects.
 
std::string_view to_string (segmentation_type type) noexcept
 Convert segmentation type to DICOM string.
 
segmentation_type parse_segmentation_type (std::string_view value) noexcept
 Parse segmentation type from DICOM string.
 
bool is_valid_segmentation_type (std::string_view value) noexcept
 Check if segmentation type string is valid.
 
std::string_view to_string (segmentation_fractional_type type) noexcept
 Convert segmentation fractional type to DICOM string.
 
segmentation_fractional_type parse_segmentation_fractional_type (std::string_view value) noexcept
 Parse segmentation fractional type from DICOM string.
 
std::string_view to_string (segment_algorithm_type type) noexcept
 Convert segment algorithm type to DICOM string.
 
segment_algorithm_type parse_segment_algorithm_type (std::string_view value) noexcept
 Parse segment algorithm type from DICOM string.
 
bool is_valid_segment_algorithm_type (std::string_view value) noexcept
 Check if segment algorithm type string is valid.
 
segment_color get_recommended_segment_color (std::string_view segment_label) noexcept
 Get recommended color for common segment types.
 
std::vector< std::string > get_seg_storage_sop_classes (bool include_surface=true)
 Get all SEG Storage SOP Class UIDs.
 
const seg_sop_class_infoget_seg_sop_class_info (std::string_view uid) noexcept
 Get information about a specific SEG SOP Class.
 
bool is_seg_storage_sop_class (std::string_view uid) noexcept
 Check if a SOP Class UID is a SEG Storage SOP Class.
 
bool is_surface_segmentation_sop_class (std::string_view uid) noexcept
 Check if a SOP Class UID is Surface Segmentation.
 
std::string_view get_segment_category_code (segment_category category) noexcept
 Get SNOMED CT code for segment category.
 
std::string_view get_segment_category_meaning (segment_category category) noexcept
 Get code meaning for segment category.
 
std::vector< std::string > get_sr_transfer_syntaxes ()
 Get recommended transfer syntaxes for SR objects.
 
sr_document_type get_sr_document_type (std::string_view uid) noexcept
 Get SR document type for a SOP Class UID.
 
std::string_view to_string (sr_document_type type) noexcept
 Get human-readable name for SR document type.
 
std::string_view to_string (sr_value_type type) noexcept
 Convert SR value type to DICOM string.
 
sr_value_type parse_sr_value_type (std::string_view value) noexcept
 Parse SR value type from DICOM string.
 
bool is_valid_sr_value_type (std::string_view value) noexcept
 Check if SR value type string is valid.
 
std::string_view to_string (sr_relationship_type type) noexcept
 Convert SR relationship type to DICOM string.
 
sr_relationship_type parse_sr_relationship_type (std::string_view value) noexcept
 Parse SR relationship type from DICOM string.
 
std::string_view to_string (sr_completion_flag flag) noexcept
 Convert SR completion flag to DICOM string.
 
sr_completion_flag parse_sr_completion_flag (std::string_view value) noexcept
 Parse SR completion flag from DICOM string.
 
std::string_view to_string (sr_verification_flag flag) noexcept
 Convert SR verification flag to DICOM string.
 
sr_verification_flag parse_sr_verification_flag (std::string_view value) noexcept
 Parse SR verification flag from DICOM string.
 
std::vector< std::string > get_sr_storage_sop_classes (bool include_cad=true, bool include_dose=true)
 Get all SR Storage SOP Class UIDs.
 
const sr_sop_class_infoget_sr_sop_class_info (std::string_view uid) noexcept
 Get information about a specific SR SOP Class.
 
bool is_sr_storage_sop_class (std::string_view uid) noexcept
 Check if a SOP Class UID is an SR Storage SOP Class.
 
bool is_cad_sr_storage_sop_class (std::string_view uid) noexcept
 Check if a SOP Class UID is a CAD SR Storage SOP Class.
 
bool is_dose_sr_storage_sop_class (std::string_view uid) noexcept
 Check if a SOP Class UID is a Dose Report SR Storage SOP Class.
 
bool sr_supports_spatial_coords (std::string_view uid) noexcept
 Check if an SR SOP Class supports spatial coordinates.
 
std::string_view get_recommended_sr_template (std::string_view uid) noexcept
 Get recommended template ID for an SR SOP Class.
 
std::vector< std::string > get_us_transfer_syntaxes ()
 Get recommended transfer syntaxes for US images.
 
std::string_view to_string (us_photometric_interpretation interp) noexcept
 Convert photometric interpretation enum to DICOM string.
 
us_photometric_interpretation parse_photometric_interpretation (std::string_view value) noexcept
 Parse DICOM photometric interpretation string.
 
bool is_valid_us_photometric (std::string_view value) noexcept
 Check if photometric interpretation is valid for US.
 
std::vector< std::string > get_us_storage_sop_classes (bool include_retired=true)
 Get all US Storage SOP Class UIDs.
 
const us_sop_class_infoget_us_sop_class_info (std::string_view uid) noexcept
 Get information about a specific US SOP Class.
 
bool is_us_storage_sop_class (std::string_view uid) noexcept
 Check if a SOP Class UID is a US Storage SOP Class.
 
bool is_us_multiframe_sop_class (std::string_view uid) noexcept
 Check if a SOP Class UID is a multi-frame US Storage SOP Class.
 
waveform_type get_waveform_type (std::string_view uid) noexcept
 Get waveform type from SOP Class UID.
 
std::string_view to_string (waveform_type type) noexcept
 Get human-readable name for waveform type.
 
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.
 
const waveform_sop_class_infoget_waveform_sop_class_info (std::string_view uid) noexcept
 Get information about a specific Waveform SOP Class.
 
bool is_waveform_storage_sop_class (std::string_view uid) noexcept
 Check if a SOP Class UID is a Waveform Storage SOP Class.
 
bool is_waveform_presentation_state_sop_class (std::string_view uid) noexcept
 Check if a SOP Class UID is a Waveform Presentation State SOP Class.
 
bool is_waveform_annotation_sop_class (std::string_view uid) noexcept
 Check if a SOP Class UID is a Waveform Annotation SOP Class.
 
std::vector< std::string > get_waveform_transfer_syntaxes ()
 Get recommended transfer syntaxes for waveform objects.
 
std::vector< std::string > get_wsi_storage_sop_classes ()
 Get all WSI Storage SOP Class UIDs.
 
bool is_wsi_storage_sop_class (std::string_view uid) noexcept
 Check if a SOP Class UID is a WSI Storage SOP Class.
 
bool is_valid_wsi_photometric (std::string_view value) noexcept
 Check if photometric interpretation is valid for WSI.
 
std::vector< std::string > get_xa_transfer_syntaxes ()
 Get recommended transfer syntaxes for XA images.
 
std::string_view to_string (xa_photometric_interpretation interp) noexcept
 Convert photometric interpretation enum to DICOM string.
 
xa_photometric_interpretation parse_xa_photometric_interpretation (std::string_view value) noexcept
 Parse DICOM photometric interpretation string for XA.
 
bool is_valid_xa_photometric (std::string_view value) noexcept
 Check if photometric interpretation is valid for XA.
 
std::vector< std::string > get_xa_storage_sop_classes (bool include_3d=true)
 Get all XA/XRF Storage SOP Class UIDs.
 
const xa_sop_class_infoget_xa_sop_class_info (std::string_view uid) noexcept
 Get information about a specific XA SOP Class.
 
bool is_xa_storage_sop_class (std::string_view uid) noexcept
 Check if a SOP Class UID is an XA/XRF Storage SOP Class.
 
bool is_xa_multiframe_sop_class (std::string_view uid) noexcept
 Check if a SOP Class UID is a multi-frame XA Storage SOP Class.
 
bool is_enhanced_xa_sop_class (std::string_view uid) noexcept
 Check if a SOP Class UID is an enhanced XA SOP Class.
 
bool is_xa_3d_sop_class (std::string_view uid) noexcept
 Check if a SOP Class UID is a 3D XA SOP Class.
 
std::string_view to_string (xa_positioner_motion motion) noexcept
 Convert positioner motion enum to DICOM string.
 
constexpr uint16_t get_default_xa_cine_rate () noexcept
 Get typical cine rate for cardiac XA.
 
constexpr size_t get_max_xa_frame_count () noexcept
 Get maximum recommended frame count for XA acquisitions.
 

Variables

constexpr std::string_view ct_image_storage_uid
 CT Image Storage SOP Class UID.
 
constexpr std::string_view enhanced_ct_image_storage_uid
 Enhanced CT Image Storage SOP Class UID.
 
constexpr std::string_view ct_for_processing_image_storage_uid
 CT For Processing Image Storage SOP Class UID Multi-energy/spectral CT basis material decomposition images.
 
constexpr std::string_view mr_image_storage_uid
 MR Image Storage SOP Class UID.
 
constexpr std::string_view enhanced_mr_image_storage_uid
 Enhanced MR Image Storage SOP Class UID.
 
constexpr std::string_view ophthalmic_photo_8bit_storage_uid
 Ophthalmic Photography 8 Bit Image Storage.
 
constexpr std::string_view ophthalmic_photo_16bit_storage_uid
 Ophthalmic Photography 16 Bit Image Storage.
 
constexpr std::string_view ophthalmic_tomography_storage_uid
 Ophthalmic Tomography Image Storage (OCT)
 
constexpr std::string_view wide_field_ophthalmic_photo_storage_uid
 Wide Field Ophthalmic Photography SOP Class Storage.
 
constexpr std::string_view ophthalmic_oct_bscan_analysis_storage_uid
 Ophthalmic Optical Coherence Tomography B-scan Volume Analysis Storage.
 
constexpr std::string_view parametric_map_storage_uid
 Parametric Map Storage SOP Class UID.
 
constexpr std::string_view wsi_image_storage_uid
 VL Whole Slide Microscopy Image Storage SOP Class UID.
 
Primary DX SOP Classes
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 clinical review.
 
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 additional processing.
 
Digital Mammography X-Ray SOP Classes
constexpr std::string_view mammography_image_storage_for_presentation_uid
 Digital Mammography X-Ray Image Storage - For Presentation.
 
constexpr std::string_view mammography_image_storage_for_processing_uid
 Digital Mammography X-Ray Image Storage - For Processing.
 
constexpr std::string_view mg_image_storage_for_presentation_uid
 Digital Mammography X-Ray Image Storage - For Presentation SOP Class UID.
 
constexpr std::string_view mg_image_storage_for_processing_uid
 Digital Mammography X-Ray Image Storage - For Processing SOP Class UID.
 
constexpr std::string_view breast_tomosynthesis_image_storage_uid
 Breast Tomosynthesis Image Storage SOP Class UID.
 
constexpr std::string_view breast_projection_image_storage_for_presentation_uid
 Breast Projection X-Ray Image Storage - For Presentation SOP Class UID.
 
constexpr std::string_view breast_projection_image_storage_for_processing_uid
 Breast Projection X-Ray Image Storage - For Processing SOP Class UID.
 
Digital Intra-Oral X-Ray SOP Classes
constexpr std::string_view intraoral_image_storage_for_presentation_uid
 Digital Intra-Oral X-Ray Image Storage - For Presentation.
 
constexpr std::string_view intraoral_image_storage_for_processing_uid
 Digital Intra-Oral X-Ray Image Storage - For Processing.
 
Primary NM SOP Classes
constexpr std::string_view nm_image_storage_uid
 Nuclear Medicine Image Storage SOP Class UID.
 
Retired NM SOP Classes (Legacy Support)
constexpr std::string_view nm_image_storage_retired_uid
 Nuclear Medicine Image Storage (Retired) - for legacy systems.
 
Primary PET SOP Classes
constexpr std::string_view pet_image_storage_uid
 PET Image Storage SOP Class UID.
 
constexpr std::string_view enhanced_pet_image_storage_uid
 Enhanced PET Image Storage SOP Class UID.
 
constexpr std::string_view legacy_converted_enhanced_pet_image_storage_uid
 Legacy Converted Enhanced PET Image Storage SOP Class UID.
 
Primary RT SOP Classes
constexpr std::string_view rt_plan_storage_uid
 RT Plan Storage SOP Class UID.
 
constexpr std::string_view rt_dose_storage_uid
 RT Dose 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.
 
constexpr std::string_view rt_beams_treatment_record_storage_uid
 RT Beams Treatment Record 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 rt_ion_plan_storage_uid
 RT Ion Plan Storage SOP Class UID.
 
constexpr std::string_view rt_ion_beams_treatment_record_storage_uid
 RT Ion Beams Treatment Record Storage SOP Class UID.
 
Primary SEG SOP Classes
constexpr std::string_view segmentation_storage_uid
 Segmentation Storage SOP Class UID.
 
constexpr std::string_view surface_segmentation_storage_uid
 Surface Segmentation Storage SOP Class UID.
 
constexpr std::string_view heightmap_segmentation_storage_uid
 Heightmap Segmentation Storage SOP Class UID (Supplement 240)
 
constexpr std::string_view label_map_segmentation_storage_uid
 Label Map Segmentation Storage SOP Class UID (Supplement 243)
 
Basic SR SOP Classes
constexpr std::string_view basic_text_sr_storage_uid
 Basic Text SR Storage SOP Class UID.
 
constexpr std::string_view enhanced_sr_storage_uid
 Enhanced SR Storage SOP Class UID.
 
constexpr std::string_view comprehensive_sr_storage_uid
 Comprehensive SR Storage SOP Class UID.
 
constexpr std::string_view comprehensive_3d_sr_storage_uid
 Comprehensive 3D SR Storage SOP Class UID.
 
constexpr std::string_view extensible_sr_storage_uid
 Extensible SR Storage SOP Class UID.
 
Specialized SR SOP Classes
constexpr std::string_view mammography_cad_sr_storage_uid
 Mammography CAD SR Storage SOP Class UID.
 
constexpr std::string_view chest_cad_sr_storage_uid
 Chest CAD SR Storage SOP Class UID.
 
constexpr std::string_view colon_cad_sr_storage_uid
 Colon CAD SR Storage SOP Class UID.
 
constexpr std::string_view xray_radiation_dose_sr_storage_uid
 X-Ray Radiation Dose SR Storage SOP Class UID.
 
constexpr std::string_view radiopharmaceutical_radiation_dose_sr_storage_uid
 Radiopharmaceutical Radiation Dose SR Storage SOP Class UID.
 
constexpr std::string_view acquisition_context_sr_storage_uid
 Acquisition Context SR Storage SOP Class UID.
 
constexpr std::string_view simplified_adult_echo_sr_storage_uid
 Simplified Adult Echo SR Storage SOP Class UID.
 
constexpr std::string_view patient_radiation_dose_sr_storage_uid
 Patient Radiation Dose SR Storage SOP Class UID.
 
constexpr std::string_view planned_imaging_agent_admin_sr_storage_uid
 Planned Imaging Agent Administration SR Storage SOP Class UID.
 
constexpr std::string_view performed_imaging_agent_admin_sr_storage_uid
 Performed Imaging Agent Administration SR Storage SOP Class UID.
 
constexpr std::string_view enhanced_xray_radiation_dose_sr_storage_uid
 Enhanced X-Ray Radiation Dose SR Storage SOP Class UID.
 
Key Object Selection Document
constexpr std::string_view key_object_selection_document_storage_uid
 Key Object Selection Document Storage SOP Class UID.
 
Primary US SOP Classes
constexpr std::string_view us_image_storage_uid
 US Image Storage SOP Class UID (single-frame)
 
constexpr std::string_view us_multiframe_image_storage_uid
 US Multi-frame Image Storage SOP Class UID (cine loops)
 
Retired US SOP Classes (Legacy Support)
constexpr std::string_view us_image_storage_retired_uid
 US Image Storage (Retired) - for legacy systems.
 
constexpr std::string_view us_multiframe_image_storage_retired_uid
 US Multi-frame Image Storage (Retired) - for legacy systems.
 
Base Waveform Storage SOP Classes
constexpr std::string_view twelve_lead_ecg_storage_uid
 12-lead ECG Waveform Storage SOP Class UID
 
constexpr std::string_view general_ecg_storage_uid
 General ECG Waveform Storage SOP Class UID.
 
constexpr std::string_view ambulatory_ecg_storage_uid
 Ambulatory ECG Waveform Storage SOP Class UID.
 
constexpr std::string_view hemodynamic_waveform_storage_uid
 Hemodynamic Waveform Storage SOP Class UID.
 
constexpr std::string_view cardiac_ep_waveform_storage_uid
 Basic Cardiac Electrophysiology Waveform Storage SOP Class UID.
 
constexpr std::string_view basic_voice_audio_storage_uid
 Basic Voice Audio Waveform Storage SOP Class UID.
 
constexpr std::string_view general_audio_waveform_storage_uid
 General Audio Waveform Storage SOP Class UID.
 
constexpr std::string_view arterial_pulse_waveform_storage_uid
 Arterial Pulse Waveform Storage SOP Class UID.
 
constexpr std::string_view respiratory_waveform_storage_uid
 Respiratory Waveform Storage SOP Class UID.
 
constexpr std::string_view multichannel_respiratory_waveform_storage_uid
 Multi-channel Respiratory Waveform Storage SOP Class UID.
 
constexpr std::string_view routine_scalp_eeg_storage_uid
 Routine Scalp Electroencephalogram Waveform Storage SOP Class UID.
 
constexpr std::string_view emg_waveform_storage_uid
 Electromyogram Waveform Storage SOP Class UID.
 
constexpr std::string_view eog_waveform_storage_uid
 Electrooculogram Waveform Storage SOP Class UID.
 
constexpr std::string_view sleep_eeg_storage_uid
 Sleep Electroencephalogram Waveform Storage SOP Class UID.
 
constexpr std::string_view body_position_waveform_storage_uid
 Body Position Waveform Storage SOP Class UID.
 
Waveform Presentation State and Annotation SOP Classes
constexpr std::string_view waveform_presentation_state_storage_uid
 Waveform Presentation State Storage SOP Class UID.
 
constexpr std::string_view waveform_annotation_storage_uid
 Waveform Annotation Storage SOP Class UID.
 
Primary XA/XRF SOP Classes
constexpr std::string_view xa_image_storage_uid
 XA Image Storage SOP Class UID (single/multi-frame)
 
constexpr std::string_view enhanced_xa_image_storage_uid
 Enhanced XA Image Storage SOP Class UID (enhanced IOD)
 
constexpr std::string_view xrf_image_storage_uid
 XRF Image Storage SOP Class UID (X-Ray Radiofluoroscopic)
 
3D Angiographic SOP Classes
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 xray_3d_craniofacial_image_storage_uid
 X-Ray 3D Craniofacial Image Storage SOP Class UID.
 

Enumeration Type Documentation

◆ breast_laterality

Breast laterality enumeration.

Specifies which breast is being imaged. This is a critical attribute for mammography workflow and helps prevent laterality errors in clinical practice.

See also
DICOM Tag (0020,0060) - Laterality
DICOM Tag (0020,0062) - Image Laterality
Enumerator
left 

Left breast (DICOM value: "L")

right 

Right breast (DICOM value: "R")

bilateral 

Both breasts (DICOM value: "B") - used for comparison views.

unknown 

Unknown or unspecified laterality.

Definition at line 80 of file mg_storage.h.

80 {
81 left,
82 right,
83 bilateral,
84 unknown
85};
@ bilateral
Both breasts (DICOM value: "B") - used for comparison views.

◆ cad_processing_status

CAD (Computer-Aided Detection) processing status.

Indicates whether and how CAD analysis has been performed on the image.

Enumerator
not_processed 

CAD has not been run on this image.

processed_no_findings 

CAD completed with no findings.

processed_findings 

CAD completed with findings.

processing_failed 

CAD processing failed.

pending 

CAD processing is pending.

Definition at line 325 of file mg_storage.h.

◆ dx_body_part

Common body parts for DX imaging.

These correspond to standard DICOM Body Part Examined (0018,0015) values.

Enumerator
chest 

CHEST.

abdomen 

ABDOMEN.

pelvis 

PELVIS.

spine 

SPINE.

skull 

SKULL.

hand 

HAND.

foot 

FOOT.

knee 

KNEE.

elbow 

ELBOW.

shoulder 

SHOULDER.

hip 

HIP.

wrist 

WRIST.

ankle 

ANKLE.

extremity 

EXTREMITY (general)

breast 

BREAST (for mammography)

other 

Other/unspecified.

Definition at line 300 of file dx_storage.h.

◆ dx_detector_type

DX detector technology types.

Indicates the type of digital detector used for image acquisition.

Enumerator
direct 

Direct conversion (a-Se based)

indirect 

Indirect conversion (scintillator + photodiode)

storage 

Storage phosphor (CR-like)

film 

Film digitizer (rare for DX)

Definition at line 192 of file dx_storage.h.

192 {
193 direct,
194 indirect,
195 storage,
196 film
197};
@ indirect
Indirect conversion (scintillator + photodiode)

◆ dx_image_type

DX image purpose classification.

Enumerator
for_presentation 

Ready for display and diagnosis.

for_processing 

Raw data requiring further processing.

Definition at line 139 of file dx_storage.h.

139 {
142};
@ for_presentation
Ready for display and diagnosis.
@ for_processing
Raw data requiring further processing.

◆ dx_photometric_interpretation

Supported photometric interpretations for DX images.

DX images are always grayscale. MONOCHROME1 means high values are dark (as on film), while MONOCHROME2 means high values are bright.

Enumerator
monochrome1 

Minimum pixel value = white (inverted)

monochrome2 

Minimum pixel value = black (standard)

Definition at line 105 of file dx_storage.h.

105 {
106 monochrome1,
107 monochrome2
108};

◆ dx_view_position

Common radiographic view positions for DX images.

View position indicates the direction of the X-ray beam relative to the patient and detector.

Enumerator
ap 

Anterior-Posterior.

pa 

Posterior-Anterior.

lateral 

Lateral (left or right)

oblique 

Oblique projection.

other 

Other/unspecified.

Definition at line 161 of file dx_storage.h.

◆ mg_image_type

Mammography image purpose classification.

Mammography images can be either for presentation (display-ready with applied processing) or for processing (raw data requiring additional image processing).

Enumerator
for_presentation 

Ready for display and diagnosis.

for_processing 

Raw data requiring further processing.

Definition at line 304 of file mg_storage.h.

304 {
307};

◆ mg_view_position

Mammography-specific view positions.

Standard mammography views as defined by the ACR (American College of Radiology) and used in DICOM. View position is essential for proper image interpretation and comparison studies.

See also
DICOM Tag (0018,5101) - View Position
ACR BI-RADS Mammography Atlas
Enumerator
cc 

Craniocaudal - standard superior-inferior view.

mlo 

Mediolateral Oblique - angled lateral view (most common)

ml 

Mediolateral - true lateral (medial to lateral)

lm 

Lateromedial - true lateral (lateral to medial)

xccl 

Exaggerated CC Laterally - for lateral breast tissue.

xccm 

Exaggerated CC Medially - for medial breast tissue.

fb 

From Below - inferior to superior view.

sio 

Superolateral to Inferomedial Oblique.

iso 

Inferomedial to Superolateral Oblique.

cv 

Cleavage View - for medial breast tissue.

at 

Axillary Tail - for axillary extension.

spot 

Spot compression view.

mag 

Magnification view.

spot_mag 

Spot compression with magnification.

rl 

Rolled Lateral.

rm 

Rolled Medial.

rs 

Rolled Superior.

ri 

Rolled Inferior.

tangen 

Tangential view.

implant 

Implant displaced view (Eklund technique)

id 

Implant Displaced (alternate code)

other 

Other or unspecified view.

Definition at line 122 of file mg_storage.h.

122 {
123 // Standard screening views
124 cc,
125 mlo,
126
127 // Additional diagnostic views
128 ml,
129 lm,
130 xccl,
131 xccm,
132 fb,
133 sio,
134 iso,
135 cv,
136 at,
137
138 // Spot/magnification views
139 spot,
140 mag,
141 spot_mag,
142 rl,
143 rm,
144 rs,
145 ri,
146
147 // Specialized views
148 tangen,
149 implant,
150 id,
151
152 // Other
153 other
154};
@ lm
Lateromedial - true lateral (lateral to medial)
@ spot_mag
Spot compression with magnification.
@ fb
From Below - inferior to superior view.
@ sio
Superolateral to Inferomedial Oblique.
@ xccl
Exaggerated CC Laterally - for lateral breast tissue.
@ xccm
Exaggerated CC Medially - for medial breast tissue.
@ mlo
Mediolateral Oblique - angled lateral view (most common)
@ at
Axillary Tail - for axillary extension.
@ ml
Mediolateral - true lateral (medial to lateral)
@ implant
Implant displaced view (Eklund technique)
@ id
Implant Displaced (alternate code)
@ cv
Cleavage View - for medial breast tissue.
@ cc
Craniocaudal - standard superior-inferior view.
@ iso
Inferomedial to Superolateral Oblique.

◆ nm_collimator_type

NM collimator type.

Enumerator
parallel 

PARA - Parallel hole.

fan_beam 

FANB - Fan beam.

cone_beam 

CONE - Cone beam.

pinhole 

PINH - Pinhole.

diverging 

DIVG - Diverging.

converging 

CVGB - Converging.

none 

NONE - No collimator.

Definition at line 205 of file nm_storage.h.

◆ nm_detector_geometry

NM detector geometry type.

Enumerator
planar 

Planar detector (2D)

ring 

Ring detector (PET-like)

partial_ring 

Partial ring.

curved 

Curved detector.

cylindrical 

Cylindrical detector.

Definition at line 194 of file nm_storage.h.

◆ nm_photometric_interpretation

Supported photometric interpretations for NM images.

NM images are typically grayscale, representing count or activity values.

Enumerator
monochrome2 

Minimum pixel = black (standard)

palette_color 

Pseudo-color via lookup table (for display)

Definition at line 76 of file nm_storage.h.

76 {
77 monochrome2,
78 palette_color
79};

◆ nm_radioisotope

Common radioisotopes used in NM imaging.

Enumerator
tc99m 

Technetium-99m (140 keV)

i131 

Iodine-131 (364 keV)

i123 

Iodine-123 (159 keV)

tl201 

Thallium-201 (71, 167 keV)

ga67 

Gallium-67 (93, 185, 300 keV)

in111 

Indium-111 (171, 245 keV)

f18 

Fluorine-18 (511 keV - for PET)

other 

Other radioisotope.

Definition at line 245 of file nm_storage.h.

◆ nm_rotation_direction

NM rotation direction for SPECT.

Enumerator
cw 

CW - Clockwise.

cc 

CC - Counter-clockwise.

Definition at line 277 of file nm_storage.h.

277 {
278 cw,
279 cc
280};

◆ nm_scan_arc

NM scan arc for SPECT.

Enumerator
arc_180 

180 degree arc

arc_360 

360 degree arc (full rotation)

Definition at line 285 of file nm_storage.h.

285 {
286 arc_180,
287 arc_360
288};
@ arc_360
360 degree arc (full rotation)

◆ nm_type_of_data

NM image type (Type of Data)

Enumerator
static_image 

STATIC - static planar image.

dynamic 

DYNAMIC - dynamic study (time series)

gated 

GATED - cardiac gated acquisition.

whole_body 

WHOLE BODY - whole body scan.

recon_tomo 

RECON TOMO - reconstructed SPECT.

recon_gated_tomo 

RECON GATED TOMO - reconstructed gated SPECT.

tomo 

TOMO - SPECT raw projection data.

gated_tomo 

GATED TOMO - gated SPECT projections.

Definition at line 162 of file nm_storage.h.

162 {
164 dynamic,
165 gated,
166 whole_body,
167 recon_tomo,
169 tomo,
171};
@ gated
GATED - cardiac gated acquisition.
@ gated_tomo
GATED TOMO - gated SPECT projections.
@ dynamic
DYNAMIC - dynamic study (time series)
@ tomo
TOMO - SPECT raw projection data.
@ recon_tomo
RECON TOMO - reconstructed SPECT.
@ recon_gated_tomo
RECON GATED TOMO - reconstructed gated SPECT.

◆ nm_whole_body_technique

Patient orientation for whole body scan.

Enumerator
single_pass 

1PASS - Single pass

multi_pass 

2PASS - Multiple pass (anterior/posterior)

stepping 

STEP - Stepping acquisition.

Definition at line 293 of file nm_storage.h.

◆ pet_attenuation_correction

Attenuation correction method.

Enumerator
none 

No attenuation correction.

measured 

Measured (transmission scan)

calculated 

Calculated from CT.

ct_based 

CT-based attenuation correction (PET/CT)

Definition at line 181 of file pet_storage.h.

◆ pet_image_type

PET image type indicating the nature of the image.

Enumerator
original 

ORIGINAL - directly acquired.

derived 

DERIVED - post-processed.

primary 

PRIMARY - primary image.

secondary 

SECONDARY - secondary reconstruction.

Definition at line 161 of file pet_storage.h.

161 {
162 original,
163 derived,
164 primary,
165 secondary
166};
@ secondary
SECONDARY - secondary reconstruction.

◆ pet_photometric_interpretation

Supported photometric interpretations for PET images.

PET images are typically grayscale, representing radiotracer uptake values.

Enumerator
monochrome2 

Minimum pixel = black (standard for PET)

Definition at line 75 of file pet_storage.h.

75 {
76 monochrome2
77};

◆ pet_radiotracer

Common PET radiotracers.

Enumerator
fdg 

18F-FDG (Fluorodeoxyglucose)

naf 

18F-NaF (Sodium Fluoride)

flt 

18F-FLT (Fluorothymidine)

fdopa 

18F-FDOPA

ammonia 

13N-Ammonia

rubidium 

82Rb (Rubidium-82)

gallium_dotatate 

68Ga-DOTATATE

psma 

PSMA agents.

other 

Other tracers.

Definition at line 264 of file pet_storage.h.

◆ pet_reconstruction_type

PET reconstruction algorithm type.

Enumerator
fbp 

Filtered Back Projection.

osem 

Ordered Subset Expectation Maximization.

mlem 

Maximum Likelihood Expectation Maximization.

tof_osem 

Time-of-Flight OSEM.

psf_osem 

Point Spread Function OSEM.

other 

Other algorithm.

Definition at line 201 of file pet_storage.h.

201 {
202 fbp,
203 osem,
204 mlem,
205 tof_osem,
206 psf_osem,
207 other
208};
@ osem
Ordered Subset Expectation Maximization.
@ mlem
Maximum Likelihood Expectation Maximization.

◆ pet_scatter_correction

Scatter correction method.

Enumerator
none 

No scatter correction.

single_scatter 

Single scatter simulation.

convolution 

Convolution-subtraction method.

model_based 

Model-based scatter correction.

Definition at line 191 of file pet_storage.h.

191 {
192 none,
196};

◆ pet_series_type

PET series type code.

Enumerator
static_image 

STATIC - static acquisition.

dynamic 

DYNAMIC - dynamic (time series)

gated 

GATED - cardiac/respiratory gated.

whole_body 

WHOLE BODY - whole body scan.

Definition at line 171 of file pet_storage.h.

171 {
173 dynamic,
174 gated,
176};

◆ pet_units

PET units type (Units attribute 0054,1001)

Enumerator
cnts 

Counts.

bqml 

Bq/ml (Becquerels per milliliter)

gml 

g/ml (SUVbw)

suv_bw 

Standardized Uptake Value (body weight)

suv_lbm 

SUV (lean body mass)

suv_bsa 

SUV (body surface area)

percent_id_gram 

Percent injected dose per gram.

other 

Other units.

Definition at line 232 of file pet_storage.h.

232 {
233 cnts,
234 bqml,
235 gml,
236 suv_bw,
237 suv_lbm,
238 suv_bsa,
240 other
241};
@ suv_bw
Standardized Uptake Value (body weight)
@ percent_id_gram
Percent injected dose per gram.
@ bqml
Bq/ml (Becquerels per milliliter)

◆ pixel_value_representation

Pixel value representation for parametric map data.

Defines how the pixel data is encoded in the Parametric Map. Per DICOM PS3.3 C.7.6.16.2.17, parametric maps use float or double.

Enumerator
float32 

32-bit IEEE 754 floating point (BitsAllocated=32)

float64 

64-bit IEEE 754 floating point (BitsAllocated=64)

Definition at line 63 of file parametric_map_storage.h.

63 {
64 float32,
65 float64
66};
@ float32
32-bit IEEE 754 floating point (BitsAllocated=32)
@ float64
64-bit IEEE 754 floating point (BitsAllocated=64)

◆ rt_beam_type

RT Beam Type.

Enumerator
static_beam 

STATIC - Static beam.

dynamic 

DYNAMIC - Dynamic beam (IMRT, VMAT)

Definition at line 360 of file rt_storage.h.

360 {
362 dynamic
363};

◆ rt_dose_summation_type

RT Dose Summation Type.

Enumerator
plan 

PLAN - Single plan dose.

multi_plan 

MULTI_PLAN - Multi-plan sum.

fraction 

FRACTION - Single fraction dose.

beam 

BEAM - Single beam dose.

brachy 

BRACHY - Brachytherapy dose.

fraction_session 

FRACTION_SESSION - Single fraction session dose.

beam_session 

BEAM_SESSION - Single beam session dose.

brachy_session 

BRACHY_SESSION - Brachytherapy session dose.

control_point 

CONTROL_POINT - Single control point dose.

record 

RECORD - Treatment record dose.

Definition at line 234 of file rt_storage.h.

234 {
235 plan,
236 multi_plan,
237 fraction,
238 beam,
239 brachy,
244 record
245};
@ brachy_session
BRACHY_SESSION - Brachytherapy session dose.
@ beam_session
BEAM_SESSION - Single beam session dose.
@ control_point
CONTROL_POINT - Single control point dose.
@ fraction_session
FRACTION_SESSION - Single fraction session dose.

◆ rt_dose_type

RT Dose Type.

Enumerator
physical 

PHYSICAL - Physical dose.

effective 

EFFECTIVE - Effective dose (RBE weighted)

error 

ERROR - Dose error/uncertainty.

Definition at line 211 of file rt_storage.h.

211 {
212 physical,
213 effective,
214 error
215};
@ effective
EFFECTIVE - Effective dose (RBE weighted)

◆ rt_dose_units

RT Dose Units.

Enumerator
gy 

GY - Gray (absorbed dose)

relative 

RELATIVE - Relative dose.

Definition at line 264 of file rt_storage.h.

264 {
265 gy,
266 relative
267};

◆ rt_image_plane

RT Image Type values (as used in Image Type attribute)

Enumerator
axial 

AXIAL - Axial plane.

localizer 

LOCALIZER - Localizer/scout image.

drr 

DRR - Digitally Reconstructed Radiograph.

portal 

PORTAL - Portal image.

fluence 

FLUENCE - Fluence map.

Definition at line 437 of file rt_storage.h.

437 {
438 axial,
439 localizer,
440 drr,
441 portal,
442 fluence
443};
@ drr
DRR - Digitally Reconstructed Radiograph.
@ localizer
LOCALIZER - Localizer/scout image.

◆ rt_plan_geometry

RT Plan Geometry.

Enumerator
patient 

PATIENT - Patient-based plan.

treatment_device 

TREATMENT_DEVICE - Device-based plan.

Definition at line 185 of file rt_storage.h.

185 {
186 patient,
188};
@ treatment_device
TREATMENT_DEVICE - Device-based plan.

◆ rt_plan_intent

RT Plan Intent.

Enumerator
curative 

CURATIVE - Treatment with curative intent.

palliative 

PALLIATIVE - Treatment for symptom relief.

prophylactic 

PROPHYLACTIC - Preventive treatment.

verification 

VERIFICATION - Plan verification.

machine_qa 

MACHINE_QA - Machine quality assurance.

research 

RESEARCH - Research protocol.

service 

SERVICE - Equipment service.

Definition at line 158 of file rt_storage.h.

158 {
159 curative,
160 palliative,
163 machine_qa,
164 research,
165 service
166};
@ curative
CURATIVE - Treatment with curative intent.
@ prophylactic
PROPHYLACTIC - Preventive treatment.
@ machine_qa
MACHINE_QA - Machine quality assurance.
@ palliative
PALLIATIVE - Treatment for symptom relief.
@ verification
Verification Service Class.

◆ rt_radiation_type

RT Radiation Type.

Enumerator
photon 

PHOTON - X-ray photons.

electron 

ELECTRON - Electrons.

neutron 

NEUTRON - Neutrons.

proton 

PROTON - Protons.

ion 

ION - Heavy ions (carbon, etc.)

Definition at line 382 of file rt_storage.h.

◆ rt_roi_generation_algorithm

RT ROI Generation Algorithm.

Enumerator
automatic 

AUTOMATIC - Automated segmentation.

semiautomatic 

SEMIAUTOMATIC - Semi-automated with user input.

manual 

MANUAL - Manual contouring.

Definition at line 332 of file rt_storage.h.

332 {
333 automatic,
335 manual
336};
@ semiautomatic
SEMIAUTOMATIC - Semi-automated with user input.

◆ rt_roi_interpreted_type

RT ROI Interpreted Type.

Enumerator
external 

EXTERNAL - External patient surface.

ptv 

PTV - Planning Target Volume.

ctv 

CTV - Clinical Target Volume.

gtv 

GTV - Gross Tumor Volume.

organ 

ORGAN - Organ at risk.

avoidance 

AVOIDANCE - Avoidance structure.

treated_volume 

TREATED_VOLUME - Treated volume.

irrad_volume 

IRRAD_VOLUME - Irradiated volume.

bolus 

BOLUS - Bolus material.

brachy_channel 

BRACHY_CHANNEL - Brachytherapy channel.

brachy_accessory 

BRACHY_ACCESSORY - Brachytherapy accessory.

brachy_src_appl 

BRACHY_SRC_APPL - Brachytherapy source applicator.

brachy_chnl_shld 

BRACHY_CHNL_SHLD - Brachytherapy channel shield.

support 

SUPPORT - Patient support structure.

fixation 

FIXATION - Patient fixation device.

dose_region 

DOSE_REGION - Dose reference region.

contrast_agent 

CONTRAST_AGENT - Contrast agent region.

cavity 

CAVITY - Cavity structure.

marker 

MARKER - Marker structure.

registration 

REGISTRATION - Registration structure.

isocenter 

ISOCENTER - Isocenter point.

control_point 

CONTROL - Control point marker.

Definition at line 290 of file rt_storage.h.

290 {
291 external,
292 ptv,
293 ctv,
294 gtv,
295 organ,
296 avoidance,
299 bolus,
304 support,
305 fixation,
308 cavity,
309 marker,
311 isocenter,
313};
@ contrast_agent
CONTRAST_AGENT - Contrast agent region.
@ registration
REGISTRATION - Registration structure.
@ dose_region
DOSE_REGION - Dose reference region.
@ brachy_chnl_shld
BRACHY_CHNL_SHLD - Brachytherapy channel shield.
@ brachy_channel
BRACHY_CHANNEL - Brachytherapy channel.
@ brachy_accessory
BRACHY_ACCESSORY - Brachytherapy accessory.
@ brachy_src_appl
BRACHY_SRC_APPL - Brachytherapy source applicator.

◆ rt_treatment_delivery_type

RT Treatment Delivery Type.

Enumerator
treatment 

TREATMENT - Actual treatment.

open_portfilm 

OPEN_PORTFILM - Open field portal image.

trmt_portfilm 

TRMT_PORTFILM - Treatment field portal image.

continuation 

CONTINUATION - Continuation of interrupted treatment.

setup 

SETUP - Setup verification.

Definition at line 407 of file rt_storage.h.

407 {
408 treatment,
412 setup
413};
@ continuation
CONTINUATION - Continuation of interrupted treatment.
@ trmt_portfilm
TRMT_PORTFILM - Treatment field portal image.
@ open_portfilm
OPEN_PORTFILM - Open field portal image.

◆ segment_algorithm_type

Segment algorithm type (0062,0008)

Defines how the segment was created.

Enumerator
automatic 

AUTOMATIC - Fully automated segmentation.

semiautomatic 

SEMIAUTOMATIC - Semi-automated with user input.

manual 

MANUAL - Manual segmentation.

Definition at line 143 of file seg_storage.h.

143 {
144 automatic,
146 manual
147};

◆ segment_category

Common anatomical property categories (CID 7150)

Predefined category codes for segment categorization

Enumerator
tissue 

Tissue type (organ, muscle, etc.)

anatomical_structure 

Named anatomical structure.

physical_object 

Physical object (implant, etc.)

morphologically_abnormal 

Tumor, lesion, etc.

function 

Functional region.

spatial 

Spatial reference.

body_substance 

Body fluid, substance.

Definition at line 251 of file seg_storage.h.

◆ segmentation_fractional_type

Segmentation fractional type (0062,0010)

Defines the meaning of fractional values when Segmentation Type is FRACTIONAL.

Enumerator
probability 

PROBABILITY - Values represent probability (0.0-1.0)

occupancy 

OCCUPANCY - Values represent fractional occupancy.

Definition at line 114 of file seg_storage.h.

114 {
116 occupancy
117};
@ probability
PROBABILITY - Values represent probability (0.0-1.0)
@ occupancy
OCCUPANCY - Values represent fractional occupancy.

◆ segmentation_type

Segmentation type (0062,0001)

Defines whether the segmentation is binary or fractional.

Enumerator
binary 

BINARY - Binary segmentation (0 or 1)

fractional 

FRACTIONAL - Fractional/probabilistic segmentation.

Definition at line 79 of file seg_storage.h.

79 {
80 binary,
82};
@ binary
BINARY - Binary segmentation (0 or 1)
@ fractional
FRACTIONAL - Fractional/probabilistic segmentation.

◆ sr_completion_flag

SR Completion Flag (0040,A491)

Enumerator
partial 

PARTIAL - Document is not complete.

complete 

COMPLETE - Document is complete.

Definition at line 259 of file sr_storage.h.

259 {
260 partial,
261 complete
262};
@ partial
PARTIAL - Document is not complete.

◆ sr_document_type

SR Document type classification.

Categorizes SR documents by their primary purpose.

Enumerator
basic_text 

Basic Text SR - Simple text reports.

enhanced 

Enhanced SR - References to images/waveforms.

comprehensive 

Comprehensive SR - Complex with spatial coords.

comprehensive_3d 

Comprehensive 3D SR - 3D spatial coordinates.

extensible 

Extensible SR - Template-based.

key_object_selection 

Key Object Selection - Image selection.

cad 

CAD SR - Computer-aided detection results.

dose_report 

Dose Report - Radiation dose information.

procedure_log 

Procedure Log - Procedure documentation.

other 

Other specialized SR types.

Definition at line 141 of file sr_storage.h.

141 {
142 basic_text,
143 enhanced,
146 extensible,
147 key_object_selection,
148 cad,
151 other
152};
@ procedure_log
Procedure Log - Procedure documentation.
@ enhanced
Enhanced SR - References to images/waveforms.
@ comprehensive
Comprehensive SR - Complex with spatial coords.
@ comprehensive_3d
Comprehensive 3D SR - 3D spatial coordinates.
@ basic_text
Basic Text SR - Simple text reports.
@ cad
CAD SR - Computer-aided detection results.
@ dose_report
Dose Report - Radiation dose information.

◆ sr_relationship_type

SR Content Item Relationship Type (0040,A010)

Defines the relationship between content items in the SR tree.

Enumerator
contains 

CONTAINS - Parent contains child.

has_obs_context 

HAS OBS CONTEXT - Observation context.

has_acq_context 

HAS ACQ CONTEXT - Acquisition context.

has_concept_mod 

HAS CONCEPT MOD - Concept modifier.

has_properties 

HAS PROPERTIES - Property value.

inferred_from 

INFERRED FROM - Inference source.

selected_from 

SELECTED FROM - Selection source.

unknown 

Unknown relationship.

Definition at line 227 of file sr_storage.h.

227 {
228 contains,
235 unknown
236};
@ inferred_from
INFERRED FROM - Inference source.
@ selected_from
SELECTED FROM - Selection source.
@ has_concept_mod
HAS CONCEPT MOD - Concept modifier.
@ has_obs_context
HAS OBS CONTEXT - Observation context.
@ has_acq_context
HAS ACQ CONTEXT - Acquisition context.

◆ sr_value_type

SR Content Item Value Type (0040,A040)

Defines the type of value contained in a content item.

Enumerator
text 

TEXT - Free text.

code 

CODE - Coded entry.

num 

NUM - Numeric measurement.

datetime 

DATETIME - Date/time value.

date 

DATE - Date value.

time 

TIME - Time value.

uidref 

UIDREF - UID reference.

pname 

PNAME - Person name.

composite 

COMPOSITE - Reference to composite object.

image 

IMAGE - Reference to image.

waveform 

WAVEFORM - Reference to waveform.

scoord 

SCOORD - Spatial coordinates (2D)

scoord3d 

SCOORD3D - Spatial coordinates (3D)

tcoord 

TCOORD - Temporal coordinates.

container 

CONTAINER - Container for other items.

table 

TABLE - Tabular data (Extensible SR)

unknown 

Unknown value type.

Definition at line 177 of file sr_storage.h.

177 {
178 text,
179 code,
180 num,
181 datetime,
182 date,
183 time,
184 uidref,
185 pname,
186 composite,
187 image,
188 waveform,
189 scoord,
190 scoord3d,
191 tcoord,
192 container,
193 table,
194 unknown
195};
@ scoord
SCOORD - Spatial coordinates (2D)
@ container
CONTAINER - Container for other items.
@ waveform
WAVEFORM - Reference to waveform.
@ scoord3d
SCOORD3D - Spatial coordinates (3D)
@ composite
COMPOSITE - Reference to composite object.
std::string_view code

◆ sr_verification_flag

SR Verification Flag (0040,A493)

Enumerator
unverified 

UNVERIFIED - Not verified.

verified 

VERIFIED - Verified by authorized person.

Definition at line 281 of file sr_storage.h.

281 {
282 unverified,
283 verified
284};
@ verified
VERIFIED - Verified by authorized person.

◆ us_photometric_interpretation

Supported photometric interpretations for US images.

Enumerator
monochrome1 

Minimum pixel = white.

monochrome2 

Minimum pixel = black (most common)

palette_color 

Pseudo-color via lookup table.

rgb 

Full color RGB.

ybr_full 

YCbCr full range.

ybr_full_422 

YCbCr 4:2:2 subsampled.

Definition at line 83 of file us_storage.h.

83 {
84 monochrome1,
85 monochrome2,
86 palette_color,
87 rgb,
88 ybr_full,
90};

◆ us_region_data_type

US Region data type.

Defines the type of data in an ultrasound region

Enumerator
tissue 

Tissue characterization.

blood 

Blood/flow.

color_flow 

Color flow Doppler.

elastography 

Tissue stiffness.

b_mode 

B-mode amplitude.

Definition at line 190 of file us_storage.h.

190 : uint16_t {
191 tissue = 0x0001,
192 blood = 0x0002,
193 color_flow = 0x0003,
194 elastography = 0x0004,
195 b_mode = 0x0005
196};

◆ us_region_spatial_format

US Region spatial format.

Defines the spatial organization of ultrasound regions as specified in DICOM PS3.3 Section C.8.5.5

Enumerator
none 

No geometric information.

two_d 

2D format (sector, linear, etc.)

m_mode 

M-mode (time-motion)

spectral 

Spectral Doppler.

wave_form 

Physiological waveform.

graphics 

Graphics overlay.

Definition at line 176 of file us_storage.h.

176 : uint16_t {
177 none = 0x0000,
178 two_d = 0x0001,
179 m_mode = 0x0002,
180 spectral = 0x0003,
181 wave_form = 0x0004,
182 graphics = 0x0005
183};

◆ waveform_type

Waveform type classification.

Enumerator
ecg_12lead 

12-lead ECG

ecg_general 

General ECG.

ecg_ambulatory 

Ambulatory ECG (Holter)

hemodynamic 

Hemodynamic monitoring.

cardiac_ep 

Cardiac electrophysiology.

audio_basic 

Basic voice audio.

audio_general 

General audio.

arterial_pulse 

Arterial pulse waveform.

respiratory 

Single-channel respiratory.

respiratory_multi 

Multi-channel respiratory.

eeg_routine 

Routine scalp EEG.

emg 

Electromyogram.

eog 

Electrooculogram.

eeg_sleep 

Sleep EEG.

body_position 

Body position.

presentation_state 

Waveform Presentation State.

annotation 

Waveform Annotation.

unknown 

Unknown waveform type.

Definition at line 118 of file waveform_storage.h.

118 {
119 ecg_12lead,
123 cardiac_ep,
130 emg,
131 eog,
132 eeg_sleep,
134 presentation_state,
135 annotation,
136 unknown
137};

◆ xa_frame_rate

Common XA frame rates in frames per second.

XA acquisitions typically use specific standardized frame rates for cardiac and vascular imaging.

Enumerator
fps_7_5 

7.5 fps (low dose)

fps_15 

15 fps (standard)

fps_30 

30 fps (high temporal resolution)

Definition at line 243 of file xa_storage.h.

243 : uint16_t {
244 fps_7_5 = 8,
245 fps_15 = 15,
246 fps_30 = 30
247};
@ fps_30
30 fps (high temporal resolution)

◆ xa_photometric_interpretation

Supported photometric interpretations for XA/XRF images.

XA images are grayscale-only. MONOCHROME1 is traditional for XA (minimum pixel = white, like a lightbox view), while MONOCHROME2 is also supported.

Enumerator
monochrome1 

Minimum pixel = white (traditional X-ray view)

monochrome2 

Minimum pixel = black.

Definition at line 99 of file xa_storage.h.

99 {
100 monochrome1,
101 monochrome2
102};

◆ xa_positioner_motion

Positioner motion type.

Describes the type of positioner movement during acquisition.

Enumerator
stationary 

No movement during acquisition.

dynamic 

Positioner moves during acquisition (e.g., rotational)

Definition at line 204 of file xa_storage.h.

204 {
205 stationary,
206 dynamic
207};

Function Documentation

◆ create_mg_image_type()

std::string kcenon::pacs::services::sop_classes::create_mg_image_type ( bool is_original,
bool is_primary,
mg_image_type type )
nodiscard

Create DICOM-compliant image type value for mammography.

Constructs the Image Type (0008,0008) value for mammography images according to DICOM specifications.

Parameters
is_originaltrue if ORIGINAL, false if DERIVED
is_primarytrue if PRIMARY, false if SECONDARY
typeFor Presentation or For Processing
Returns
Properly formatted Image Type value

Definition at line 383 of file mg_storage.cpp.

386 {
387
388 std::string result;
389
390 // Value 1: ORIGINAL or DERIVED
391 result += is_original ? "ORIGINAL" : "DERIVED";
392 result += "\\";
393
394 // Value 2: PRIMARY or SECONDARY
395 result += is_primary ? "PRIMARY" : "SECONDARY";
396 result += "\\";
397
398 // Value 3: Image flavor - empty for mammography typically
399 result += "\\";
400
401 // Value 4: Derived Pixel Contrast - specific for For Presentation/Processing
402 if (type == mg_image_type::for_presentation) {
403 result += "NONE"; // or specific processing type
404 } else {
405 result += ""; // empty for processing images
406 }
407
408 return result;
409}

References for_presentation.

◆ get_bits_allocated()

uint16_t kcenon::pacs::services::sop_classes::get_bits_allocated ( pixel_value_representation repr)
nodiscardnoexcept

Get bits allocated for a pixel value representation.

Parameters
reprThe pixel value representation
Returns
BitsAllocated value (32 or 64)

Definition at line 41 of file parametric_map_storage.cpp.

41 {
42 switch (repr) {
43 case pixel_value_representation::float32:
44 return 32;
45 case pixel_value_representation::float64:
46 return 64;
47 }
48 return 32;
49}

References float32, and float64.

◆ get_ct_storage_sop_classes()

std::vector< std::string > kcenon::pacs::services::sop_classes::get_ct_storage_sop_classes ( )
nodiscard

Get all CT Storage SOP Class UIDs.

Returns
Vector of CT Storage SOP Class UIDs

Definition at line 17 of file ct_storage.cpp.

17 {
18 return {
19 std::string(ct_image_storage_uid),
20 std::string(enhanced_ct_image_storage_uid),
21 std::string(ct_for_processing_image_storage_uid),
22 };
23}

References ct_for_processing_image_storage_uid, ct_image_storage_uid, and enhanced_ct_image_storage_uid.

◆ get_default_xa_cine_rate()

uint16_t kcenon::pacs::services::sop_classes::get_default_xa_cine_rate ( )
nodiscardconstexprnoexcept

Get typical cine rate for cardiac XA.

Returns
Default cine rate in frames per second

Definition at line 253 of file xa_storage.h.

253 {
254 return 15;
255}

◆ get_dx_sop_class_info()

const dx_sop_class_info * kcenon::pacs::services::sop_classes::get_dx_sop_class_info ( std::string_view uid)
nodiscardnoexcept

Get information about a specific DX SOP Class.

Parameters
uidThe SOP Class UID to look up
Returns
Pointer to sop class info, or nullptr if not a DX storage class

Definition at line 277 of file dx_storage.cpp.

277 {
278 auto it = std::find_if(
279 dx_sop_classes.begin(),
280 dx_sop_classes.end(),
281 [uid](const auto& info) { return info.uid == uid; }
282 );
283
284 if (it != dx_sop_classes.end()) {
285 return &(*it);
286 }
287 return nullptr;
288}
std::string_view uid

References uid.

Referenced by is_dx_for_presentation_sop_class(), is_dx_for_processing_sop_class(), is_dx_storage_sop_class(), and is_mammography_sop_class().

Here is the caller graph for this function:

◆ get_dx_storage_sop_classes()

std::vector< std::string > kcenon::pacs::services::sop_classes::get_dx_storage_sop_classes ( bool include_mammography = true,
bool include_intraoral = true )
nodiscard

Get all DX Storage SOP Class UIDs.

Returns all DX-related SOP Class UIDs including general radiography, mammography, and intra-oral imaging.

Parameters
include_mammographyInclude mammography SOP classes (default: true)
include_intraoralInclude intra-oral SOP classes (default: true)
Returns
Vector of DX Storage SOP Class UIDs

Definition at line 253 of file dx_storage.cpp.

254 {
255 std::vector<std::string> result;
256 result.reserve(6);
257
258 for (const auto& info : dx_sop_classes) {
259 // Always include general DX
260 if (!info.is_mammography && !info.is_intraoral) {
261 result.emplace_back(info.uid);
262 }
263 // Include mammography if requested
264 else if (info.is_mammography && include_mammography) {
265 result.emplace_back(info.uid);
266 }
267 // Include intra-oral if requested
268 else if (info.is_intraoral && include_intraoral) {
269 result.emplace_back(info.uid);
270 }
271 }
272
273 return result;
274}

◆ get_dx_transfer_syntaxes()

std::vector< std::string > kcenon::pacs::services::sop_classes::get_dx_transfer_syntaxes ( )
nodiscard

Get recommended transfer syntaxes for DX images.

Returns a prioritized list of transfer syntaxes suitable for digital X-ray image storage. DX images are typically grayscale with high bit depth (12-16 bits).

Returns
Vector of transfer syntax UIDs in priority order

Definition at line 21 of file dx_storage.cpp.

21 {
22 return {
23 // Explicit VR Little Endian (preferred for interoperability)
24 "1.2.840.10008.1.2.1",
25 // Implicit VR Little Endian (universal baseline)
26 "1.2.840.10008.1.2",
27 // HTJ2K Lossless (high-throughput lossless for large DX images)
28 "1.2.840.10008.1.2.4.201",
29 // JPEG Lossless (for diagnostic quality - most important for DX)
30 "1.2.840.10008.1.2.4.70",
31 // JPEG 2000 Lossless (better compression, good for large DX images)
32 "1.2.840.10008.1.2.4.90",
33 // JPEG 2000 Lossy (for archival with acceptable quality loss)
34 "1.2.840.10008.1.2.4.91",
35 // RLE Lossless (simple lossless compression)
36 "1.2.840.10008.1.2.5"
37 };
38}

◆ get_max_xa_frame_count()

size_t kcenon::pacs::services::sop_classes::get_max_xa_frame_count ( )
nodiscardconstexprnoexcept

Get maximum recommended frame count for XA acquisitions.

Large XA acquisitions can have many frames. This returns a reasonable upper limit for memory pre-allocation.

Returns
Maximum expected frame count

Definition at line 265 of file xa_storage.h.

265 {
266 return 2000; // Typical max for long cardiac runs
267}

◆ get_mg_sop_class_info()

const mg_sop_class_info * kcenon::pacs::services::sop_classes::get_mg_sop_class_info ( std::string_view uid)
nodiscardnoexcept

Get information about a specific Mammography SOP Class.

Parameters
uidThe SOP Class UID to look up
Returns
Pointer to sop class info, or nullptr if not a mammography storage class

Definition at line 292 of file mg_storage.cpp.

292 {
293 auto it = std::find_if(mg_sop_classes.begin(), mg_sop_classes.end(),
294 [uid](const mg_sop_class_info& info) {
295 return info.uid == uid;
296 });
297
298 if (it != mg_sop_classes.end()) {
299 return &(*it);
300 }
301 return nullptr;
302}
Information about a Mammography Storage SOP Class.
Definition mg_storage.h:347

References uid.

Referenced by is_breast_tomosynthesis_sop_class(), is_mg_for_presentation_sop_class(), is_mg_for_processing_sop_class(), and is_mg_storage_sop_class().

Here is the caller graph for this function:

◆ get_mg_storage_sop_classes()

std::vector< std::string > kcenon::pacs::services::sop_classes::get_mg_storage_sop_classes ( bool include_tomosynthesis = true)
nodiscard

Get all Mammography Storage SOP Class UIDs.

Returns all mammography-related SOP Class UIDs including standard 2D mammography and breast tomosynthesis.

Parameters
include_tomosynthesisInclude breast tomosynthesis SOP classes (default: true)
Returns
Vector of Mammography Storage SOP Class UIDs

Definition at line 278 of file mg_storage.cpp.

278 {
279 std::vector<std::string> result;
280 result.reserve(mg_sop_classes.size());
281
282 for (const auto& info : mg_sop_classes) {
283 if (!include_tomosynthesis && info.is_tomosynthesis) {
284 continue;
285 }
286 result.emplace_back(info.uid);
287 }
288
289 return result;
290}

◆ get_mg_transfer_syntaxes()

std::vector< std::string > kcenon::pacs::services::sop_classes::get_mg_transfer_syntaxes ( )
nodiscard

Get recommended transfer syntaxes for mammography images.

Returns a prioritized list of transfer syntaxes suitable for mammography image storage. Mammography images typically have very high spatial resolution and benefit from specific compression approaches.

Returns
Vector of transfer syntax UIDs in priority order

Definition at line 327 of file mg_storage.cpp.

327 {
328 return {
329 // HTJ2K Lossless - high-throughput lossless for large mammography images
330 "1.2.840.10008.1.2.4.201",
331 // JPEG 2000 Lossless - excellent for high-resolution mammography
332 "1.2.840.10008.1.2.4.90",
333 // JPEG Lossless - widely supported
334 "1.2.840.10008.1.2.4.70",
335 // JPEG 2000 Lossy - good compression for storage
336 "1.2.840.10008.1.2.4.91",
337 // Explicit VR Little Endian - universal compatibility
338 "1.2.840.10008.1.2.1",
339 // Implicit VR Little Endian - legacy support
340 "1.2.840.10008.1.2"
341 };
342}

◆ get_mr_storage_sop_classes()

std::vector< std::string > kcenon::pacs::services::sop_classes::get_mr_storage_sop_classes ( )
nodiscard

Get all MR Storage SOP Class UIDs.

Returns
Vector of MR Storage SOP Class UIDs

Definition at line 16 of file mr_storage.cpp.

16 {
17 return {
18 std::string(mr_image_storage_uid),
19 std::string(enhanced_mr_image_storage_uid),
20 };
21}

References enhanced_mr_image_storage_uid, and mr_image_storage_uid.

◆ get_nm_sop_class_info()

const nm_sop_class_info * kcenon::pacs::services::sop_classes::get_nm_sop_class_info ( std::string_view uid)
nodiscardnoexcept

Get information about a specific NM SOP Class.

Parameters
uidThe SOP Class UID to look up
Returns
Pointer to SOP class info, or nullptr if not a NM storage class

Definition at line 104 of file nm_storage.cpp.

104 {
105 auto it = std::find_if(
106 nm_sop_classes.begin(),
107 nm_sop_classes.end(),
108 [uid](const auto& info) { return info.uid == uid; }
109 );
110
111 if (it != nm_sop_classes.end()) {
112 return &(*it);
113 }
114 return nullptr;
115}

References uid.

Referenced by is_nm_multiframe_sop_class(), and is_nm_storage_sop_class().

Here is the caller graph for this function:

◆ get_nm_storage_sop_classes()

std::vector< std::string > kcenon::pacs::services::sop_classes::get_nm_storage_sop_classes ( bool include_retired = true)
nodiscard

Get all NM Storage SOP Class UIDs.

Returns both current and retired SOP Class UIDs for comprehensive nuclear medicine storage support.

Parameters
include_retiredInclude retired SOP classes (default: true)
Returns
Vector of NM Storage SOP Class UIDs

Definition at line 90 of file nm_storage.cpp.

90 {
91 std::vector<std::string> result;
92 result.reserve(nm_sop_classes.size());
93
94 for (const auto& info : nm_sop_classes) {
95 if (!info.is_retired || include_retired) {
96 result.emplace_back(info.uid);
97 }
98 }
99
100 return result;
101}

◆ get_nm_transfer_syntaxes()

std::vector< std::string > kcenon::pacs::services::sop_classes::get_nm_transfer_syntaxes ( )
nodiscard

Get recommended transfer syntaxes for NM images.

Returns a prioritized list of transfer syntaxes suitable for nuclear medicine image storage, considering multi-frame support and quantitative accuracy requirements.

Returns
Vector of transfer syntax UIDs in priority order

Definition at line 21 of file nm_storage.cpp.

21 {
22 return {
23 // Explicit VR Little Endian (preferred for interoperability)
24 "1.2.840.10008.1.2.1",
25 // Implicit VR Little Endian (universal baseline)
26 "1.2.840.10008.1.2",
27 // HTJ2K Lossless (high-throughput lossless, preserves count values)
28 "1.2.840.10008.1.2.4.201",
29 // JPEG Lossless (for diagnostic quality - important for quantitative data)
30 "1.2.840.10008.1.2.4.70",
31 // JPEG 2000 Lossless (better compression, preserves count values)
32 "1.2.840.10008.1.2.4.90",
33 // RLE Lossless
34 "1.2.840.10008.1.2.5"
35 };
36}

◆ get_ophthalmic_storage_sop_classes()

std::vector< std::string > kcenon::pacs::services::sop_classes::get_ophthalmic_storage_sop_classes ( )
nodiscard

Get all Ophthalmic Storage SOP Class UIDs.

Returns
Vector of Ophthalmic Storage SOP Class UIDs

Definition at line 16 of file ophthalmic_storage.cpp.

16 {
17 return {
18 std::string(ophthalmic_photo_8bit_storage_uid),
19 std::string(ophthalmic_photo_16bit_storage_uid),
20 std::string(ophthalmic_tomography_storage_uid),
21 std::string(wide_field_ophthalmic_photo_storage_uid),
22 std::string(ophthalmic_oct_bscan_analysis_storage_uid),
23 };
24}

References ophthalmic_oct_bscan_analysis_storage_uid, ophthalmic_photo_16bit_storage_uid, ophthalmic_photo_8bit_storage_uid, ophthalmic_tomography_storage_uid, and wide_field_ophthalmic_photo_storage_uid.

◆ get_parametric_map_sop_class_info()

const parametric_map_sop_class_info * kcenon::pacs::services::sop_classes::get_parametric_map_sop_class_info ( std::string_view uid)
nodiscardnoexcept

Get information about the Parametric Map SOP Class.

Parameters
uidThe SOP Class UID to look up
Returns
Pointer to SOP class info, or nullptr if not a Parametric Map class

Definition at line 87 of file parametric_map_storage.cpp.

87 {
88 if (uid == parametric_map_storage_uid) {
89 return &pmap_sop_classes[0];
90 }
91 return nullptr;
92}

References parametric_map_storage_uid, and uid.

◆ get_parametric_map_storage_sop_classes()

std::vector< std::string > kcenon::pacs::services::sop_classes::get_parametric_map_storage_sop_classes ( )
nodiscard

Get all Parametric Map Storage SOP Class UIDs.

Returns
Vector of Parametric Map Storage SOP Class UIDs

Definition at line 80 of file parametric_map_storage.cpp.

80 {
81 return {
82 std::string(parametric_map_storage_uid)
83 };
84}

References parametric_map_storage_uid.

◆ get_parametric_map_transfer_syntaxes()

std::vector< std::string > kcenon::pacs::services::sop_classes::get_parametric_map_transfer_syntaxes ( )
nodiscard

Get recommended transfer syntaxes for Parametric Map objects.

Returns a prioritized list of transfer syntaxes suitable for parametric map storage. Float pixel data requires uncompressed or lossless transfer syntaxes to preserve quantitative accuracy.

Returns
Vector of transfer syntax UIDs in priority order

Definition at line 22 of file parametric_map_storage.cpp.

22 {
23 return {
24 // Explicit VR Little Endian (preferred for interoperability)
25 "1.2.840.10008.1.2.1",
26 // Implicit VR Little Endian (universal baseline)
27 "1.2.840.10008.1.2",
28 // JPEG 2000 Lossless (preserves float data integrity)
29 "1.2.840.10008.1.2.4.90",
30 // HTJ2K Lossless (high-throughput lossless)
31 "1.2.840.10008.1.2.4.201",
32 // RLE Lossless
33 "1.2.840.10008.1.2.5"
34 };
35}

◆ get_pet_sop_class_info()

const pet_sop_class_info * kcenon::pacs::services::sop_classes::get_pet_sop_class_info ( std::string_view uid)
nodiscardnoexcept

Get information about a specific PET SOP Class.

Parameters
uidThe SOP Class UID to look up
Returns
Pointer to SOP class info, or nullptr if not a PET storage class

Definition at line 110 of file pet_storage.cpp.

110 {
111 auto it = std::find_if(
112 pet_sop_classes.begin(),
113 pet_sop_classes.end(),
114 [uid](const auto& info) { return info.uid == uid; }
115 );
116
117 if (it != pet_sop_classes.end()) {
118 return &(*it);
119 }
120 return nullptr;
121}

References uid.

Referenced by is_enhanced_pet_sop_class(), and is_pet_storage_sop_class().

Here is the caller graph for this function:

◆ get_pet_storage_sop_classes()

std::vector< std::string > kcenon::pacs::services::sop_classes::get_pet_storage_sop_classes ( bool include_retired = true)
nodiscard

Get all PET Storage SOP Class UIDs.

Returns both current and legacy SOP Class UIDs for comprehensive PET storage support.

Parameters
include_retiredInclude retired SOP classes (default: true)
Returns
Vector of PET Storage SOP Class UIDs

Definition at line 96 of file pet_storage.cpp.

96 {
97 std::vector<std::string> result;
98 result.reserve(pet_sop_classes.size());
99
100 for (const auto& info : pet_sop_classes) {
101 if (!info.is_retired || include_retired) {
102 result.emplace_back(info.uid);
103 }
104 }
105
106 return result;
107}

◆ get_pet_transfer_syntaxes()

std::vector< std::string > kcenon::pacs::services::sop_classes::get_pet_transfer_syntaxes ( )
nodiscard

Get recommended transfer syntaxes for PET images.

Returns a prioritized list of transfer syntaxes suitable for PET image storage, considering compression requirements and quantitative accuracy.

Returns
Vector of transfer syntax UIDs in priority order

Definition at line 21 of file pet_storage.cpp.

21 {
22 return {
23 // Explicit VR Little Endian (preferred for interoperability)
24 "1.2.840.10008.1.2.1",
25 // Implicit VR Little Endian (universal baseline)
26 "1.2.840.10008.1.2",
27 // HTJ2K Lossless (high-throughput lossless, preserves quantitative data)
28 "1.2.840.10008.1.2.4.201",
29 // JPEG Lossless (for diagnostic quality - recommended for quantitative data)
30 "1.2.840.10008.1.2.4.70",
31 // JPEG 2000 Lossless (better compression, preserves quantitative values)
32 "1.2.840.10008.1.2.4.90",
33 // RLE Lossless
34 "1.2.840.10008.1.2.5"
35 };
36}

◆ get_primary_energy_kev()

double kcenon::pacs::services::sop_classes::get_primary_energy_kev ( nm_radioisotope isotope)
nodiscardnoexcept

Get primary photopeak energy for radioisotope.

Parameters
isotopeThe radioisotope type
Returns
Primary photopeak energy in keV

Definition at line 255 of file nm_storage.cpp.

255 {
256 switch (isotope) {
257 case nm_radioisotope::tc99m:
258 return 140.0;
259 case nm_radioisotope::i131:
260 return 364.0;
261 case nm_radioisotope::i123:
262 return 159.0;
263 case nm_radioisotope::tl201:
264 return 71.0; // Primary peak (also 167 keV)
265 case nm_radioisotope::ga67:
266 return 93.0; // Primary peak (also 185, 300 keV)
267 case nm_radioisotope::in111:
268 return 171.0; // Primary peak (also 245 keV)
269 case nm_radioisotope::f18:
270 return 511.0; // Annihilation photons
271 case nm_radioisotope::other:
272 return 0.0;
273 }
274 return 0.0;
275}

References f18, ga67, i123, i131, in111, other, tc99m, and tl201.

◆ get_recommended_segment_color()

segment_color kcenon::pacs::services::sop_classes::get_recommended_segment_color ( std::string_view segment_label)
nodiscardnoexcept

Get recommended color for common segment types.

Parameters
segment_labelThe segment label (e.g., "Liver", "Tumor")
Returns
Recommended CIELab color, or default gray if unknown

Definition at line 160 of file seg_storage.cpp.

160 {
161 auto it = standard_colors.find(segment_label);
162 if (it != standard_colors.end()) {
163 return it->second;
164 }
165 // Return default gray for unknown structures
166 return standard_colors.at("Default");
167}

◆ get_recommended_sr_template()

std::string_view kcenon::pacs::services::sop_classes::get_recommended_sr_template ( std::string_view uid)
nodiscardnoexcept

Get recommended template ID for an SR SOP Class.

Parameters
uidThe SR SOP Class UID
Returns
Template ID string, or empty if no specific template recommended

Definition at line 462 of file sr_storage.cpp.

462 {
463 if (uid == mammography_cad_sr_storage_uid) {
464 return sr_template::mammography_cad_report;
465 }
466 if (uid == chest_cad_sr_storage_uid) {
467 return sr_template::chest_cad_report;
468 }
469 if (uid == colon_cad_sr_storage_uid) {
470 return sr_template::colon_cad_report;
471 }
472 if (uid == xray_radiation_dose_sr_storage_uid ||
473 uid == enhanced_xray_radiation_dose_sr_storage_uid) {
474 return sr_template::xray_radiation_dose_report;
475 }
476 if (uid == key_object_selection_document_storage_uid) {
477 return sr_template::key_object_selection;
478 }
479 if (uid == basic_text_sr_storage_uid ||
480 uid == enhanced_sr_storage_uid ||
481 uid == comprehensive_sr_storage_uid) {
482 return sr_template::basic_diagnostic_imaging_report;
483 }
484 return "";
485}

References kcenon::pacs::services::sop_classes::sr_template::basic_diagnostic_imaging_report, basic_text_sr_storage_uid, kcenon::pacs::services::sop_classes::sr_template::chest_cad_report, chest_cad_sr_storage_uid, kcenon::pacs::services::sop_classes::sr_template::colon_cad_report, colon_cad_sr_storage_uid, comprehensive_sr_storage_uid, enhanced_sr_storage_uid, enhanced_xray_radiation_dose_sr_storage_uid, kcenon::pacs::services::sop_classes::sr_template::key_object_selection, key_object_selection_document_storage_uid, kcenon::pacs::services::sop_classes::sr_template::mammography_cad_report, mammography_cad_sr_storage_uid, uid, kcenon::pacs::services::sop_classes::sr_template::xray_radiation_dose_report, and xray_radiation_dose_sr_storage_uid.

◆ get_rt_sop_class_info()

const rt_sop_class_info * kcenon::pacs::services::sop_classes::get_rt_sop_class_info ( std::string_view uid)
nodiscardnoexcept

Get information about a specific RT SOP Class.

Parameters
uidThe SOP Class UID to look up
Returns
Pointer to SOP class info, or nullptr if not an RT storage class

Definition at line 139 of file rt_storage.cpp.

139 {
140 for (size_t i = 0; i < rt_sop_class_count; ++i) {
141 if (rt_sop_classes[i].uid == uid) {
142 return &rt_sop_classes[i];
143 }
144 }
145 return nullptr;
146}

References uid.

Referenced by is_rt_storage_sop_class(), and rt_sop_class_has_pixel_data().

Here is the caller graph for this function:

◆ get_rt_storage_sop_classes()

std::vector< std::string > kcenon::pacs::services::sop_classes::get_rt_storage_sop_classes ( bool include_retired = true)
nodiscard

Get all RT Storage SOP Class UIDs.

Returns all RT Storage SOP Class UIDs for comprehensive radiation therapy support.

Parameters
include_retiredInclude retired SOP classes (default: true)
Returns
Vector of RT Storage SOP Class UIDs

Definition at line 124 of file rt_storage.cpp.

124 {
125 std::vector<std::string> result;
126 result.reserve(rt_sop_class_count);
127
128 for (size_t i = 0; i < rt_sop_class_count; ++i) {
129 const auto& info = rt_sop_classes[i];
130 if (!info.is_retired || include_retired) {
131 result.emplace_back(info.uid);
132 }
133 }
134
135 return result;
136}

◆ get_rt_transfer_syntaxes()

std::vector< std::string > kcenon::pacs::services::sop_classes::get_rt_transfer_syntaxes ( )
nodiscard

Get recommended transfer syntaxes for RT objects.

Returns a prioritized list of transfer syntaxes suitable for radiation therapy object storage. RT objects typically don't contain pixel data (except RT Image and RT Dose), so compression is less critical.

Returns
Vector of transfer syntax UIDs in priority order

Definition at line 21 of file rt_storage.cpp.

21 {
22 return {
23 // Explicit VR Little Endian (preferred for interoperability)
24 "1.2.840.10008.1.2.1",
25 // Implicit VR Little Endian (universal baseline)
26 "1.2.840.10008.1.2",
27 // HTJ2K Lossless (high-throughput lossless for dose grids)
28 "1.2.840.10008.1.2.4.201",
29 // JPEG Lossless (for RT Image and RT Dose with pixel data)
30 "1.2.840.10008.1.2.4.70",
31 // JPEG 2000 Lossless (better compression for dose grids)
32 "1.2.840.10008.1.2.4.90",
33 // RLE Lossless
34 "1.2.840.10008.1.2.5"
35 };
36}

◆ get_seg_sop_class_info()

const seg_sop_class_info * kcenon::pacs::services::sop_classes::get_seg_sop_class_info ( std::string_view uid)
nodiscardnoexcept

Get information about a specific SEG SOP Class.

Parameters
uidThe SOP Class UID to look up
Returns
Pointer to SOP class info, or nullptr if not a SEG storage class

Definition at line 222 of file seg_storage.cpp.

222 {
223 auto it = std::find_if(
224 seg_sop_classes.begin(),
225 seg_sop_classes.end(),
226 [uid](const auto& info) { return info.uid == uid; }
227 );
228
229 if (it != seg_sop_classes.end()) {
230 return &(*it);
231 }
232 return nullptr;
233}

References uid.

Referenced by is_seg_storage_sop_class().

Here is the caller graph for this function:

◆ get_seg_storage_sop_classes()

std::vector< std::string > kcenon::pacs::services::sop_classes::get_seg_storage_sop_classes ( bool include_surface = true)
nodiscard

Get all SEG Storage SOP Class UIDs.

Parameters
include_surfaceInclude surface segmentation (default: true)
Returns
Vector of SEG Storage SOP Class UIDs

Definition at line 208 of file seg_storage.cpp.

208 {
209 std::vector<std::string> result;
210 result.reserve(include_surface ? 4 : 3);
211
212 for (const auto& info : seg_sop_classes) {
213 if (!info.is_surface || include_surface) {
214 result.emplace_back(info.uid);
215 }
216 }
217
218 return result;
219}

◆ get_seg_transfer_syntaxes()

std::vector< std::string > kcenon::pacs::services::sop_classes::get_seg_transfer_syntaxes ( )
nodiscard

Get recommended transfer syntaxes for SEG objects.

Returns a prioritized list of transfer syntaxes suitable for segmentation object storage. Binary segmentations benefit from lossless compression.

Returns
Vector of transfer syntax UIDs in priority order

Definition at line 22 of file seg_storage.cpp.

22 {
23 return {
24 // Explicit VR Little Endian (preferred for interoperability)
25 "1.2.840.10008.1.2.1",
26 // Implicit VR Little Endian (universal baseline)
27 "1.2.840.10008.1.2",
28 // HTJ2K Lossless (high-throughput lossless for segmentation data)
29 "1.2.840.10008.1.2.4.201",
30 // JPEG 2000 Lossless (good for binary data)
31 "1.2.840.10008.1.2.4.90",
32 // RLE Lossless (excellent for binary segmentations)
33 "1.2.840.10008.1.2.5",
34 // JPEG Lossless
35 "1.2.840.10008.1.2.4.70"
36 };
37}

◆ get_segment_category_code()

std::string_view kcenon::pacs::services::sop_classes::get_segment_category_code ( segment_category category)
nodiscardnoexcept

Get SNOMED CT code for segment category.

Parameters
categoryThe segment category
Returns
SNOMED CT code string

Definition at line 266 of file seg_storage.cpp.

266 {
267 auto index = static_cast<size_t>(category);
268 if (index < category_codes.size()) {
269 return category_codes[index].code;
270 }
271 return category_codes[0].code; // Default to tissue
272}

◆ get_segment_category_meaning()

std::string_view kcenon::pacs::services::sop_classes::get_segment_category_meaning ( segment_category category)
nodiscardnoexcept

Get code meaning for segment category.

Parameters
categoryThe segment category
Returns
Human-readable category name

Definition at line 274 of file seg_storage.cpp.

274 {
275 auto index = static_cast<size_t>(category);
276 if (index < category_codes.size()) {
277 return category_codes[index].meaning;
278 }
279 return category_codes[0].meaning;
280}

◆ get_sr_document_type()

sr_document_type kcenon::pacs::services::sop_classes::get_sr_document_type ( std::string_view uid)
nodiscardnoexcept

Get SR document type for a SOP Class UID.

Parameters
uidThe SOP Class UID
Returns
The SR document type

Definition at line 36 of file sr_storage.cpp.

36 {
37 if (uid == basic_text_sr_storage_uid) {
38 return sr_document_type::basic_text;
39 }
40 if (uid == enhanced_sr_storage_uid) {
41 return sr_document_type::enhanced;
42 }
43 if (uid == comprehensive_sr_storage_uid) {
44 return sr_document_type::comprehensive;
45 }
46 if (uid == comprehensive_3d_sr_storage_uid) {
47 return sr_document_type::comprehensive_3d;
48 }
49 if (uid == extensible_sr_storage_uid) {
50 return sr_document_type::extensible;
51 }
52 if (uid == key_object_selection_document_storage_uid) {
53 return sr_document_type::key_object_selection;
54 }
55 if (uid == mammography_cad_sr_storage_uid ||
56 uid == chest_cad_sr_storage_uid ||
57 uid == colon_cad_sr_storage_uid) {
58 return sr_document_type::cad;
59 }
60 if (uid == xray_radiation_dose_sr_storage_uid ||
61 uid == radiopharmaceutical_radiation_dose_sr_storage_uid ||
62 uid == patient_radiation_dose_sr_storage_uid ||
63 uid == enhanced_xray_radiation_dose_sr_storage_uid) {
64 return sr_document_type::dose_report;
65 }
66 return sr_document_type::other;
67}

References basic_text, basic_text_sr_storage_uid, cad, chest_cad_sr_storage_uid, colon_cad_sr_storage_uid, comprehensive, comprehensive_3d, comprehensive_3d_sr_storage_uid, comprehensive_sr_storage_uid, dose_report, enhanced, enhanced_sr_storage_uid, enhanced_xray_radiation_dose_sr_storage_uid, extensible, extensible_sr_storage_uid, key_object_selection, key_object_selection_document_storage_uid, mammography_cad_sr_storage_uid, other, patient_radiation_dose_sr_storage_uid, radiopharmaceutical_radiation_dose_sr_storage_uid, uid, and xray_radiation_dose_sr_storage_uid.

Referenced by kcenon::pacs::services::validation::sr_iod_validator::validate().

Here is the caller graph for this function:

◆ get_sr_sop_class_info()

const sr_sop_class_info * kcenon::pacs::services::sop_classes::get_sr_sop_class_info ( std::string_view uid)
nodiscardnoexcept

Get information about a specific SR SOP Class.

Parameters
uidThe SOP Class UID to look up
Returns
Pointer to SOP class info, or nullptr if not an SR storage class

Definition at line 426 of file sr_storage.cpp.

426 {
427 auto it = std::find_if(
428 sr_sop_classes.begin(),
429 sr_sop_classes.end(),
430 [uid](const auto& info) { return info.uid == uid; }
431 );
432
433 if (it != sr_sop_classes.end()) {
434 return &(*it);
435 }
436 return nullptr;
437}

References uid.

Referenced by is_cad_sr_storage_sop_class(), is_dose_sr_storage_sop_class(), is_sr_storage_sop_class(), and sr_supports_spatial_coords().

Here is the caller graph for this function:

◆ get_sr_storage_sop_classes()

std::vector< std::string > kcenon::pacs::services::sop_classes::get_sr_storage_sop_classes ( bool include_cad = true,
bool include_dose = true )
nodiscard

Get all SR Storage SOP Class UIDs.

Parameters
include_cadInclude CAD-specific SR classes (default: true)
include_doseInclude dose report SR classes (default: true)
Returns
Vector of SR Storage SOP Class UIDs

Definition at line 403 of file sr_storage.cpp.

403 {
404 std::vector<std::string> result;
405 result.reserve(sr_sop_classes.size());
406
407 for (const auto& info : sr_sop_classes) {
408 bool include = true;
409
410 if (!include_cad && info.document_type == sr_document_type::cad) {
411 include = false;
412 }
413 if (!include_dose && info.document_type == sr_document_type::dose_report) {
414 include = false;
415 }
416
417 if (include) {
418 result.emplace_back(info.uid);
419 }
420 }
421
422 return result;
423}

References cad, and dose_report.

◆ get_sr_transfer_syntaxes()

std::vector< std::string > kcenon::pacs::services::sop_classes::get_sr_transfer_syntaxes ( )
nodiscard

Get recommended transfer syntaxes for SR objects.

Returns a prioritized list of transfer syntaxes suitable for structured report storage. SR objects are typically small and don't benefit from compression.

Returns
Vector of transfer syntax UIDs in priority order

Definition at line 21 of file sr_storage.cpp.

21 {
22 return {
23 // Explicit VR Little Endian (preferred for interoperability)
24 "1.2.840.10008.1.2.1",
25 // Implicit VR Little Endian (universal baseline)
26 "1.2.840.10008.1.2",
27 // Deflated Explicit VR Little Endian (good for large SRs)
28 "1.2.840.10008.1.2.1.99"
29 };
30}

◆ get_standard_screening_views()

std::vector< std::pair< breast_laterality, mg_view_position > > kcenon::pacs::services::sop_classes::get_standard_screening_views ( )
nodiscardnoexcept

Get standard four-view screening exam views.

Returns the standard four views for screening mammography:

  • Right CC, Left CC, Right MLO, Left MLO
Returns
Vector of (laterality, view) pairs

Definition at line 374 of file mg_storage.cpp.

374 {
375 return {
376 {breast_laterality::right, mg_view_position::cc},
377 {breast_laterality::left, mg_view_position::cc},
378 {breast_laterality::right, mg_view_position::mlo},
379 {breast_laterality::left, mg_view_position::mlo}
380 };
381}

References cc, left, mlo, and right.

◆ get_typical_compression_force_range()

std::pair< double, double > kcenon::pacs::services::sop_classes::get_typical_compression_force_range ( )
nodiscardnoexcept

Get typical compression force range.

Returns
Pair of (minimum, maximum) typical compression force in Newtons

Definition at line 184 of file mg_storage.cpp.

184 {
185 return {50.0, 200.0}; // Newtons
186}

Referenced by kcenon::pacs::services::validation::mg_iod_validator::check_compression_force_range().

Here is the caller graph for this function:

◆ get_us_sop_class_info()

const us_sop_class_info * kcenon::pacs::services::sop_classes::get_us_sop_class_info ( std::string_view uid)
nodiscardnoexcept

Get information about a specific US SOP Class.

Parameters
uidThe SOP Class UID to look up
Returns
Pointer to sop class info, or nullptr if not a US storage class

Definition at line 154 of file us_storage.cpp.

154 {
155 auto it = std::find_if(
156 us_sop_classes.begin(),
157 us_sop_classes.end(),
158 [uid](const auto& info) { return info.uid == uid; }
159 );
160
161 if (it != us_sop_classes.end()) {
162 return &(*it);
163 }
164 return nullptr;
165}

References uid.

Referenced by is_us_multiframe_sop_class(), and is_us_storage_sop_class().

Here is the caller graph for this function:

◆ get_us_storage_sop_classes()

std::vector< std::string > kcenon::pacs::services::sop_classes::get_us_storage_sop_classes ( bool include_retired = true)
nodiscard

Get all US Storage SOP Class UIDs.

Returns both current and retired SOP Class UIDs for comprehensive ultrasound storage support.

Parameters
include_retiredInclude retired SOP classes (default: true)
Returns
Vector of US Storage SOP Class UIDs

Definition at line 140 of file us_storage.cpp.

140 {
141 std::vector<std::string> result;
142 result.reserve(include_retired ? 4 : 2);
143
144 for (const auto& info : us_sop_classes) {
145 if (!info.is_retired || include_retired) {
146 result.emplace_back(info.uid);
147 }
148 }
149
150 return result;
151}

◆ get_us_transfer_syntaxes()

std::vector< std::string > kcenon::pacs::services::sop_classes::get_us_transfer_syntaxes ( )
nodiscard

Get recommended transfer syntaxes for US images.

Returns a prioritized list of transfer syntaxes suitable for ultrasound image storage, considering color support and compression requirements.

Returns
Vector of transfer syntax UIDs in priority order

Definition at line 21 of file us_storage.cpp.

21 {
22 return {
23 // Explicit VR Little Endian (preferred for interoperability)
24 "1.2.840.10008.1.2.1",
25 // Implicit VR Little Endian (universal baseline)
26 "1.2.840.10008.1.2",
27 // JPEG Baseline (lossy, good for color US)
28 "1.2.840.10008.1.2.4.50",
29 // HTJ2K Lossless (high-throughput lossless)
30 "1.2.840.10008.1.2.4.201",
31 // JPEG Lossless (for diagnostic quality)
32 "1.2.840.10008.1.2.4.70",
33 // JPEG 2000 Lossless (better compression)
34 "1.2.840.10008.1.2.4.90",
35 // JPEG 2000 Lossy (for archival)
36 "1.2.840.10008.1.2.4.91",
37 // RLE Lossless
38 "1.2.840.10008.1.2.5"
39 };
40}

◆ get_valid_mg_view_positions()

std::vector< std::string_view > kcenon::pacs::services::sop_classes::get_valid_mg_view_positions ( )
nodiscardnoexcept

Get all valid mammography view position strings.

Returns
Vector of valid DICOM view position codes

Definition at line 166 of file mg_storage.cpp.

166 {
167 return {
168 "CC", "MLO", "ML", "LM", "XCCL", "XCCM", "FB", "SIO", "ISO",
169 "CV", "AT", "SPOT", "MAG", "SPOT MAG", "RL", "RM", "RS", "RI",
170 "TAN", "ID"
171 };
172}

Referenced by kcenon::pacs::services::validation::mg_iod_validator::check_view_position_validity().

Here is the caller graph for this function:

◆ get_waveform_sop_class_info()

const waveform_sop_class_info * kcenon::pacs::services::sop_classes::get_waveform_sop_class_info ( std::string_view uid)
nodiscardnoexcept

Get information about a specific Waveform SOP Class.

Parameters
uidThe SOP Class UID to look up
Returns
Pointer to SOP class info, or nullptr if not a waveform storage class

Definition at line 144 of file waveform_storage.cpp.

144 {
145 auto it = std::find_if(kWaveformRegistry.begin(), kWaveformRegistry.end(),
146 [&uid](const waveform_sop_class_info& info) {
147 return info.uid == uid;
148 });
149 return (it != kWaveformRegistry.end()) ? &(*it) : nullptr;
150}
Information about a Waveform Storage SOP Class.

References uid.

Referenced by is_waveform_storage_sop_class(), and kcenon::pacs::services::sop_class_registry::register_waveform_sop_classes().

Here is the caller graph for this function:

◆ get_waveform_storage_sop_classes()

std::vector< std::string > kcenon::pacs::services::sop_classes::get_waveform_storage_sop_classes ( bool include_presentation_state = true,
bool include_annotation = true )
nodiscard

Get all Waveform Storage SOP Class UIDs.

Parameters
include_presentation_stateInclude presentation state class (default: true)
include_annotationInclude annotation class (default: true)
Returns
Vector of Waveform Storage SOP Class UIDs

Definition at line 125 of file waveform_storage.cpp.

126 {
127 std::vector<std::string> result;
128 result.reserve(kWaveformRegistry.size());
129
130 for (const auto& entry : kWaveformRegistry) {
131 if (entry.type == waveform_type::presentation_state &&
132 !include_presentation_state) {
133 continue;
134 }
135 if (entry.type == waveform_type::annotation && !include_annotation) {
136 continue;
137 }
138 result.emplace_back(entry.uid);
139 }
140 return result;
141}

References annotation, and presentation_state.

Referenced by kcenon::pacs::services::sop_class_registry::register_waveform_sop_classes().

Here is the caller graph for this function:

◆ get_waveform_transfer_syntaxes()

std::vector< std::string > kcenon::pacs::services::sop_classes::get_waveform_transfer_syntaxes ( )
nodiscard

Get recommended transfer syntaxes for waveform objects.

Returns
Vector of transfer syntax UIDs in priority order

Definition at line 21 of file waveform_storage.cpp.

21 {
22 return {
23 // Explicit VR Little Endian (preferred for interoperability)
24 "1.2.840.10008.1.2.1",
25 // Implicit VR Little Endian (universal baseline)
26 "1.2.840.10008.1.2",
27 };
28}

◆ get_waveform_type()

waveform_type kcenon::pacs::services::sop_classes::get_waveform_type ( std::string_view uid)
nodiscardnoexcept

Get waveform type from SOP Class UID.

Parameters
uidThe SOP Class UID
Returns
The waveform type

Definition at line 34 of file waveform_storage.cpp.

34 {
35 if (uid == twelve_lead_ecg_storage_uid) return waveform_type::ecg_12lead;
36 if (uid == general_ecg_storage_uid) return waveform_type::ecg_general;
37 if (uid == ambulatory_ecg_storage_uid) return waveform_type::ecg_ambulatory;
38 if (uid == hemodynamic_waveform_storage_uid) return waveform_type::hemodynamic;
39 if (uid == cardiac_ep_waveform_storage_uid) return waveform_type::cardiac_ep;
40 if (uid == basic_voice_audio_storage_uid) return waveform_type::audio_basic;
41 if (uid == general_audio_waveform_storage_uid) return waveform_type::audio_general;
42 if (uid == arterial_pulse_waveform_storage_uid) return waveform_type::arterial_pulse;
43 if (uid == respiratory_waveform_storage_uid) return waveform_type::respiratory;
44 if (uid == multichannel_respiratory_waveform_storage_uid) return waveform_type::respiratory_multi;
45 if (uid == routine_scalp_eeg_storage_uid) return waveform_type::eeg_routine;
46 if (uid == emg_waveform_storage_uid) return waveform_type::emg;
47 if (uid == eog_waveform_storage_uid) return waveform_type::eog;
48 if (uid == sleep_eeg_storage_uid) return waveform_type::eeg_sleep;
49 if (uid == body_position_waveform_storage_uid) return waveform_type::body_position;
50 if (uid == waveform_presentation_state_storage_uid) return waveform_type::presentation_state;
51 if (uid == waveform_annotation_storage_uid) return waveform_type::annotation;
52 return waveform_type::unknown;
53}

References ambulatory_ecg_storage_uid, annotation, arterial_pulse, arterial_pulse_waveform_storage_uid, audio_basic, audio_general, basic_voice_audio_storage_uid, body_position, body_position_waveform_storage_uid, cardiac_ep, cardiac_ep_waveform_storage_uid, ecg_12lead, ecg_ambulatory, ecg_general, eeg_routine, eeg_sleep, emg, emg_waveform_storage_uid, eog, eog_waveform_storage_uid, general_audio_waveform_storage_uid, general_ecg_storage_uid, hemodynamic, hemodynamic_waveform_storage_uid, multichannel_respiratory_waveform_storage_uid, presentation_state, respiratory, respiratory_multi, respiratory_waveform_storage_uid, routine_scalp_eeg_storage_uid, sleep_eeg_storage_uid, twelve_lead_ecg_storage_uid, uid, unknown, waveform_annotation_storage_uid, and waveform_presentation_state_storage_uid.

◆ get_wsi_storage_sop_classes()

std::vector< std::string > kcenon::pacs::services::sop_classes::get_wsi_storage_sop_classes ( )
nodiscard

Get all WSI Storage SOP Class UIDs.

Returns
Vector of WSI Storage SOP Class UIDs

Definition at line 16 of file wsi_storage.cpp.

16 {
17 return {
18 std::string(wsi_image_storage_uid),
19 };
20}

References wsi_image_storage_uid.

◆ get_xa_sop_class_info()

const xa_sop_class_info * kcenon::pacs::services::sop_classes::get_xa_sop_class_info ( std::string_view uid)
nodiscardnoexcept

Get information about a specific XA SOP Class.

Parameters
uidThe SOP Class UID to look up
Returns
Pointer to sop class info, or nullptr if not an XA storage class

Definition at line 130 of file xa_storage.cpp.

130 {
131 auto it = std::find_if(
132 xa_sop_classes.begin(),
133 xa_sop_classes.end(),
134 [uid](const auto& info) { return info.uid == uid; }
135 );
136
137 if (it != xa_sop_classes.end()) {
138 return &(*it);
139 }
140 return nullptr;
141}

References uid.

Referenced by is_enhanced_xa_sop_class(), is_xa_3d_sop_class(), is_xa_multiframe_sop_class(), and is_xa_storage_sop_class().

Here is the caller graph for this function:

◆ get_xa_storage_sop_classes()

std::vector< std::string > kcenon::pacs::services::sop_classes::get_xa_storage_sop_classes ( bool include_3d = true)
nodiscard

Get all XA/XRF Storage SOP Class UIDs.

Returns all supported X-Ray angiographic SOP Class UIDs including standard, enhanced, and 3D variants.

Parameters
include_3dInclude 3D angiographic SOP classes (default: true)
Returns
Vector of XA Storage SOP Class UIDs

Definition at line 116 of file xa_storage.cpp.

116 {
117 std::vector<std::string> result;
118 result.reserve(include_3d ? 5 : 3);
119
120 for (const auto& info : xa_sop_classes) {
121 if (!info.is_3d || include_3d) {
122 result.emplace_back(info.uid);
123 }
124 }
125
126 return result;
127}

◆ get_xa_transfer_syntaxes()

std::vector< std::string > kcenon::pacs::services::sop_classes::get_xa_transfer_syntaxes ( )
nodiscard

Get recommended transfer syntaxes for XA images.

Returns a prioritized list of transfer syntaxes suitable for X-Ray angiographic image storage. XA images are typically grayscale with high bit depth (8-16 bits).

Returns
Vector of transfer syntax UIDs in priority order

Definition at line 22 of file xa_storage.cpp.

22 {
23 return {
24 // Explicit VR Little Endian (preferred for interoperability)
25 "1.2.840.10008.1.2.1",
26 // Implicit VR Little Endian (universal baseline)
27 "1.2.840.10008.1.2",
28 // HTJ2K Lossless (high-throughput lossless for multi-frame)
29 "1.2.840.10008.1.2.4.201",
30 // JPEG Lossless (for diagnostic quality)
31 "1.2.840.10008.1.2.4.70",
32 // RLE Lossless (for multi-frame)
33 "1.2.840.10008.1.2.5"
34 };
35}

◆ is_breast_tomosynthesis_sop_class()

bool kcenon::pacs::services::sop_classes::is_breast_tomosynthesis_sop_class ( std::string_view uid)
nodiscardnoexcept

Check if a SOP Class UID is a breast tomosynthesis SOP Class.

Parameters
uidThe SOP Class UID to check
Returns
true if this is a breast tomosynthesis storage SOP class

Definition at line 308 of file mg_storage.cpp.

308 {
309 auto info = get_mg_sop_class_info(uid);
310 return info && info->is_tomosynthesis;
311}
const mg_sop_class_info * get_mg_sop_class_info(std::string_view uid) noexcept
Get information about a specific Mammography SOP Class.

References get_mg_sop_class_info(), and uid.

Here is the call graph for this function:

◆ is_cad_sr_storage_sop_class()

bool kcenon::pacs::services::sop_classes::is_cad_sr_storage_sop_class ( std::string_view uid)
nodiscardnoexcept

Check if a SOP Class UID is a CAD SR Storage SOP Class.

Parameters
uidThe SOP Class UID to check
Returns
true if this is a CAD SR storage SOP class

Definition at line 443 of file sr_storage.cpp.

443 {
444 const auto* info = get_sr_sop_class_info(uid);
445 return info != nullptr && info->document_type == sr_document_type::cad;
446}
const sr_sop_class_info * get_sr_sop_class_info(std::string_view uid) noexcept
Get information about a specific SR SOP Class.

References cad, get_sr_sop_class_info(), and uid.

Here is the call graph for this function:

◆ is_ct_storage_sop_class()

bool kcenon::pacs::services::sop_classes::is_ct_storage_sop_class ( std::string_view uid)
nodiscardnoexcept

Check if a SOP Class UID is a CT Storage SOP Class.

Parameters
uidThe SOP Class UID to check
Returns
true if this is a CT storage SOP class

Definition at line 25 of file ct_storage.cpp.

25 {
26 return uid == ct_image_storage_uid ||
29}
constexpr std::string_view ct_image_storage_uid
CT Image Storage SOP Class UID.
Definition ct_storage.h:35
constexpr std::string_view enhanced_ct_image_storage_uid
Enhanced CT Image Storage SOP Class UID.
Definition ct_storage.h:39
constexpr std::string_view ct_for_processing_image_storage_uid
CT For Processing Image Storage SOP Class UID Multi-energy/spectral CT basis material decomposition i...
Definition ct_storage.h:44

References ct_for_processing_image_storage_uid, ct_image_storage_uid, enhanced_ct_image_storage_uid, and uid.

Referenced by kcenon::pacs::services::validation::ct_iod_validator::validate_sop_common_module().

Here is the caller graph for this function:

◆ is_dose_sr_storage_sop_class()

bool kcenon::pacs::services::sop_classes::is_dose_sr_storage_sop_class ( std::string_view uid)
nodiscardnoexcept

Check if a SOP Class UID is a Dose Report SR Storage SOP Class.

Parameters
uidThe SOP Class UID to check
Returns
true if this is a dose report SR storage SOP class

Definition at line 448 of file sr_storage.cpp.

448 {
449 const auto* info = get_sr_sop_class_info(uid);
450 return info != nullptr && info->document_type == sr_document_type::dose_report;
451}

References dose_report, get_sr_sop_class_info(), and uid.

Here is the call graph for this function:

◆ is_dx_for_presentation_sop_class()

bool kcenon::pacs::services::sop_classes::is_dx_for_presentation_sop_class ( std::string_view uid)
nodiscardnoexcept

Check if a SOP Class UID is a For Presentation SOP Class.

For Presentation images are ready for display and clinical review.

Parameters
uidThe SOP Class UID to check
Returns
true if this is a For Presentation DX storage SOP class

Definition at line 299 of file dx_storage.cpp.

299 {
300 const auto* info = get_dx_sop_class_info(uid);
301 return info != nullptr && info->image_type == dx_image_type::for_presentation;
302}
const dx_sop_class_info * get_dx_sop_class_info(std::string_view uid) noexcept
Get information about a specific DX SOP Class.

References for_presentation, get_dx_sop_class_info(), and uid.

Referenced by kcenon::pacs::services::validation::is_for_presentation_dx().

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

◆ is_dx_for_processing_sop_class()

bool kcenon::pacs::services::sop_classes::is_dx_for_processing_sop_class ( std::string_view uid)
nodiscardnoexcept

Check if a SOP Class UID is a For Processing SOP Class.

For Processing images contain raw detector data and typically require additional image processing before display.

Parameters
uidThe SOP Class UID to check
Returns
true if this is a For Processing DX storage SOP class

Definition at line 294 of file dx_storage.cpp.

294 {
295 const auto* info = get_dx_sop_class_info(uid);
296 return info != nullptr && info->image_type == dx_image_type::for_processing;
297}

References for_processing, get_dx_sop_class_info(), and uid.

Referenced by kcenon::pacs::services::validation::is_for_processing_dx().

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

◆ is_dx_storage_sop_class()

bool kcenon::pacs::services::sop_classes::is_dx_storage_sop_class ( std::string_view uid)
nodiscardnoexcept

Check if a SOP Class UID is a DX Storage SOP Class.

Includes general DX, mammography, and intra-oral X-ray classes.

Parameters
uidThe SOP Class UID to check
Returns
true if this is any DX-related storage SOP class

Definition at line 290 of file dx_storage.cpp.

290 {
291 return get_dx_sop_class_info(uid) != nullptr;
292}

References get_dx_sop_class_info(), and uid.

Referenced by kcenon::pacs::services::validation::dx_iod_validator::validate_sop_common_module().

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

◆ is_enhanced_pet_sop_class()

bool kcenon::pacs::services::sop_classes::is_enhanced_pet_sop_class ( std::string_view uid)
nodiscardnoexcept

Check if a SOP Class UID is an Enhanced PET Storage SOP Class.

Parameters
uidThe SOP Class UID to check
Returns
true if this is an enhanced PET storage SOP class

Definition at line 127 of file pet_storage.cpp.

127 {
128 const auto* info = get_pet_sop_class_info(uid);
129 return info != nullptr && info->is_enhanced;
130}
const pet_sop_class_info * get_pet_sop_class_info(std::string_view uid) noexcept
Get information about a specific PET SOP Class.

References get_pet_sop_class_info(), and uid.

Here is the call graph for this function:

◆ is_enhanced_xa_sop_class()

bool kcenon::pacs::services::sop_classes::is_enhanced_xa_sop_class ( std::string_view uid)
nodiscardnoexcept

Check if a SOP Class UID is an enhanced XA SOP Class.

Parameters
uidThe SOP Class UID to check
Returns
true if this is an enhanced XA SOP class

Definition at line 152 of file xa_storage.cpp.

152 {
153 const auto* info = get_xa_sop_class_info(uid);
154 return info != nullptr && info->is_enhanced;
155}
const xa_sop_class_info * get_xa_sop_class_info(std::string_view uid) noexcept
Get information about a specific XA SOP Class.

References get_xa_sop_class_info(), and uid.

Here is the call graph for this function:

◆ is_magnification_view()

bool kcenon::pacs::services::sop_classes::is_magnification_view ( mg_view_position position)
nodiscardnoexcept

Check if a view position requires magnification.

Parameters
positionThe view position to check
Returns
true if this view typically involves magnification

Definition at line 156 of file mg_storage.cpp.

156 {
157 return position == mg_view_position::mag ||
158 position == mg_view_position::spot_mag;
159}

References mag, and spot_mag.

◆ is_mammography_sop_class()

bool kcenon::pacs::services::sop_classes::is_mammography_sop_class ( std::string_view uid)
nodiscardnoexcept

Check if a SOP Class UID is a mammography SOP Class.

Parameters
uidThe SOP Class UID to check
Returns
true if this is a mammography storage SOP class

Definition at line 304 of file dx_storage.cpp.

304 {
305 const auto* info = get_dx_sop_class_info(uid);
306 return info != nullptr && info->is_mammography;
307}

References get_dx_sop_class_info(), and uid.

Here is the call graph for this function:

◆ is_mg_for_presentation_sop_class()

bool kcenon::pacs::services::sop_classes::is_mg_for_presentation_sop_class ( std::string_view uid)
nodiscardnoexcept

Check if a SOP Class UID is a For Presentation mammography SOP Class.

Parameters
uidThe SOP Class UID to check
Returns
true if this is a For Presentation mammography storage SOP class

Definition at line 318 of file mg_storage.cpp.

318 {
319 auto info = get_mg_sop_class_info(uid);
320 return info && info->image_type == mg_image_type::for_presentation;
321}

References for_presentation, get_mg_sop_class_info(), and uid.

Referenced by kcenon::pacs::services::validation::is_for_presentation_mg().

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

◆ is_mg_for_processing_sop_class()

bool kcenon::pacs::services::sop_classes::is_mg_for_processing_sop_class ( std::string_view uid)
nodiscardnoexcept

Check if a SOP Class UID is a For Processing mammography SOP Class.

Parameters
uidThe SOP Class UID to check
Returns
true if this is a For Processing mammography storage SOP class

Definition at line 313 of file mg_storage.cpp.

313 {
314 auto info = get_mg_sop_class_info(uid);
315 return info && info->image_type == mg_image_type::for_processing;
316}

References for_processing, get_mg_sop_class_info(), and uid.

Referenced by kcenon::pacs::services::validation::is_for_processing_mg().

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

◆ is_mg_storage_sop_class()

bool kcenon::pacs::services::sop_classes::is_mg_storage_sop_class ( std::string_view uid)
nodiscardnoexcept

Check if a SOP Class UID is a Mammography Storage SOP Class.

Includes standard mammography and breast tomosynthesis classes.

Parameters
uidThe SOP Class UID to check
Returns
true if this is any mammography-related storage SOP class

Definition at line 304 of file mg_storage.cpp.

304 {
305 return get_mg_sop_class_info(uid) != nullptr;
306}

References get_mg_sop_class_info(), and uid.

Referenced by kcenon::pacs::services::validation::mg_iod_validator::validate_sop_common_module().

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

◆ is_mr_storage_sop_class()

bool kcenon::pacs::services::sop_classes::is_mr_storage_sop_class ( std::string_view uid)
nodiscardnoexcept

Check if a SOP Class UID is an MR Storage SOP Class.

Parameters
uidThe SOP Class UID to check
Returns
true if this is an MR storage SOP class

Definition at line 23 of file mr_storage.cpp.

23 {
24 return uid == mr_image_storage_uid ||
26}
constexpr std::string_view enhanced_mr_image_storage_uid
Enhanced MR Image Storage SOP Class UID.
Definition mr_storage.h:38
constexpr std::string_view mr_image_storage_uid
MR Image Storage SOP Class UID.
Definition mr_storage.h:34

References enhanced_mr_image_storage_uid, mr_image_storage_uid, and uid.

Referenced by kcenon::pacs::services::validation::mr_iod_validator::validate_sop_common_module().

Here is the caller graph for this function:

◆ is_nm_multiframe_sop_class()

bool kcenon::pacs::services::sop_classes::is_nm_multiframe_sop_class ( std::string_view uid)
nodiscardnoexcept

Check if a SOP Class UID supports multi-frame.

Parameters
uidThe SOP Class UID to check
Returns
true if this SOP class supports multi-frame images

Definition at line 121 of file nm_storage.cpp.

121 {
122 const auto* info = get_nm_sop_class_info(uid);
123 return info != nullptr && info->supports_multiframe;
124}
const nm_sop_class_info * get_nm_sop_class_info(std::string_view uid) noexcept
Get information about a specific NM SOP Class.

References get_nm_sop_class_info(), and uid.

Here is the call graph for this function:

◆ is_nm_storage_sop_class()

bool kcenon::pacs::services::sop_classes::is_nm_storage_sop_class ( std::string_view uid)
nodiscardnoexcept

Check if a SOP Class UID is a NM Storage SOP Class.

Parameters
uidThe SOP Class UID to check
Returns
true if this is any NM storage SOP class (current or retired)

Definition at line 117 of file nm_storage.cpp.

117 {
118 return get_nm_sop_class_info(uid) != nullptr;
119}

References get_nm_sop_class_info(), and uid.

Referenced by kcenon::pacs::services::validation::nm_iod_validator::validate_sop_common_module().

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

◆ is_ophthalmic_storage_sop_class()

bool kcenon::pacs::services::sop_classes::is_ophthalmic_storage_sop_class ( std::string_view uid)
nodiscardnoexcept

Check if a SOP Class UID is an Ophthalmic Storage SOP Class.

Parameters
uidThe SOP Class UID to check
Returns
true if this is an ophthalmic storage SOP class

Definition at line 26 of file ophthalmic_storage.cpp.

26 {
32}
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 ophthalmic_oct_bscan_analysis_storage_uid, ophthalmic_photo_16bit_storage_uid, ophthalmic_photo_8bit_storage_uid, ophthalmic_tomography_storage_uid, uid, and wide_field_ophthalmic_photo_storage_uid.

Referenced by kcenon::pacs::services::validation::ophthalmic_iod_validator::validate_sop_common_module().

Here is the caller graph for this function:

◆ is_parametric_map_storage_sop_class()

bool kcenon::pacs::services::sop_classes::is_parametric_map_storage_sop_class ( std::string_view uid)
nodiscardnoexcept

Check if a SOP Class UID is Parametric Map Storage.

Parameters
uidThe SOP Class UID to check
Returns
true if this is the Parametric Map Storage SOP class

Definition at line 94 of file parametric_map_storage.cpp.

94 {
96}
constexpr std::string_view parametric_map_storage_uid
Parametric Map Storage SOP Class UID.

References parametric_map_storage_uid, and uid.

Referenced by kcenon::pacs::services::validation::parametric_map_iod_validator::quick_check(), and kcenon::pacs::services::validation::parametric_map_iod_validator::validate_sop_common_module().

Here is the caller graph for this function:

◆ is_pet_storage_sop_class()

bool kcenon::pacs::services::sop_classes::is_pet_storage_sop_class ( std::string_view uid)
nodiscardnoexcept

Check if a SOP Class UID is a PET Storage SOP Class.

Parameters
uidThe SOP Class UID to check
Returns
true if this is any PET storage SOP class

Definition at line 123 of file pet_storage.cpp.

123 {
124 return get_pet_sop_class_info(uid) != nullptr;
125}

References get_pet_sop_class_info(), and uid.

Referenced by kcenon::pacs::services::validation::pet_iod_validator::validate_sop_common_module().

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

◆ is_rt_plan_sop_class()

bool kcenon::pacs::services::sop_classes::is_rt_plan_sop_class ( std::string_view uid)
nodiscardnoexcept

Check if a SOP Class UID is an RT Plan type.

Parameters
uidThe SOP Class UID to check
Returns
true if this is RT Plan or RT Ion Plan

Definition at line 152 of file rt_storage.cpp.

152 {
154}
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_plan_storage_uid
RT Plan Storage SOP Class UID.
Definition rt_storage.h:38

References rt_ion_plan_storage_uid, rt_plan_storage_uid, and uid.

Referenced by kcenon::pacs::services::validation::rt_plan_iod_validator::validate_sop_common_module().

Here is the caller graph for this function:

◆ is_rt_storage_sop_class()

bool kcenon::pacs::services::sop_classes::is_rt_storage_sop_class ( std::string_view uid)
nodiscardnoexcept

Check if a SOP Class UID is an RT Storage SOP Class.

Parameters
uidThe SOP Class UID to check
Returns
true if this is any RT storage SOP class

Definition at line 148 of file rt_storage.cpp.

148 {
149 return get_rt_sop_class_info(uid) != nullptr;
150}
const rt_sop_class_info * get_rt_sop_class_info(std::string_view uid) noexcept
Get information about a specific RT SOP Class.

References get_rt_sop_class_info(), and uid.

Here is the call graph for this function:

◆ is_screening_view()

bool kcenon::pacs::services::sop_classes::is_screening_view ( mg_view_position position)
nodiscardnoexcept

Check if a view position is a standard screening view.

Standard screening mammography typically includes CC and MLO views of each breast.

Parameters
positionThe view position to check
Returns
true if this is a standard screening view

Definition at line 152 of file mg_storage.cpp.

152 {
153 return position == mg_view_position::cc || position == mg_view_position::mlo;
154}

References cc, and mlo.

Referenced by kcenon::pacs::services::validation::is_screening_mammogram().

Here is the caller graph for this function:

◆ is_seg_storage_sop_class()

bool kcenon::pacs::services::sop_classes::is_seg_storage_sop_class ( std::string_view uid)
nodiscardnoexcept

Check if a SOP Class UID is a SEG Storage SOP Class.

Parameters
uidThe SOP Class UID to check
Returns
true if this is any SEG storage SOP class

Definition at line 235 of file seg_storage.cpp.

235 {
236 return get_seg_sop_class_info(uid) != nullptr;
237}
const seg_sop_class_info * get_seg_sop_class_info(std::string_view uid) noexcept
Get information about a specific SEG SOP Class.

References get_seg_sop_class_info(), and uid.

Referenced by kcenon::pacs::services::validation::seg_iod_validator::quick_check(), and kcenon::pacs::services::validation::seg_iod_validator::validate_sop_common_module().

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

◆ is_spot_compression_view()

bool kcenon::pacs::services::sop_classes::is_spot_compression_view ( mg_view_position position)
nodiscardnoexcept

Check if a view position involves spot compression.

Parameters
positionThe view position to check
Returns
true if this view involves spot compression

Definition at line 161 of file mg_storage.cpp.

161 {
162 return position == mg_view_position::spot ||
163 position == mg_view_position::spot_mag;
164}

References spot, and spot_mag.

◆ is_sr_storage_sop_class()

bool kcenon::pacs::services::sop_classes::is_sr_storage_sop_class ( std::string_view uid)
nodiscardnoexcept

Check if a SOP Class UID is an SR Storage SOP Class.

Parameters
uidThe SOP Class UID to check
Returns
true if this is any SR storage SOP class

Definition at line 439 of file sr_storage.cpp.

439 {
440 return get_sr_sop_class_info(uid) != nullptr;
441}

References get_sr_sop_class_info(), and uid.

Referenced by kcenon::pacs::services::validation::sr_iod_validator::quick_check(), and kcenon::pacs::services::validation::sr_iod_validator::validate_sop_common_module().

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

◆ is_surface_segmentation_sop_class()

bool kcenon::pacs::services::sop_classes::is_surface_segmentation_sop_class ( std::string_view uid)
nodiscardnoexcept

Check if a SOP Class UID is Surface Segmentation.

Parameters
uidThe SOP Class UID to check
Returns
true if this is Surface Segmentation SOP class

Definition at line 239 of file seg_storage.cpp.

239 {
241}
constexpr std::string_view surface_segmentation_storage_uid
Surface Segmentation Storage SOP Class UID.
Definition seg_storage.h:42

References surface_segmentation_storage_uid, and uid.

◆ is_us_multiframe_sop_class()

bool kcenon::pacs::services::sop_classes::is_us_multiframe_sop_class ( std::string_view uid)
nodiscardnoexcept

Check if a SOP Class UID is a multi-frame US Storage SOP Class.

Parameters
uidThe SOP Class UID to check
Returns
true if this is a multi-frame US storage SOP class

Definition at line 171 of file us_storage.cpp.

171 {
172 const auto* info = get_us_sop_class_info(uid);
173 return info != nullptr && info->supports_multiframe;
174}
const us_sop_class_info * get_us_sop_class_info(std::string_view uid) noexcept
Get information about a specific US SOP Class.

References get_us_sop_class_info(), and uid.

Here is the call graph for this function:

◆ is_us_storage_sop_class()

bool kcenon::pacs::services::sop_classes::is_us_storage_sop_class ( std::string_view uid)
nodiscardnoexcept

Check if a SOP Class UID is a US Storage SOP Class.

Parameters
uidThe SOP Class UID to check
Returns
true if this is any US storage SOP class (current or retired)

Definition at line 167 of file us_storage.cpp.

167 {
168 return get_us_sop_class_info(uid) != nullptr;
169}

References get_us_sop_class_info(), and uid.

Referenced by kcenon::pacs::services::validation::us_iod_validator::validate_sop_common_module().

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

◆ is_valid_breast_laterality()

bool kcenon::pacs::services::sop_classes::is_valid_breast_laterality ( std::string_view value)
nodiscardnoexcept

Check if a laterality value is valid for mammography.

Parameters
valueThe DICOM string value
Returns
true if this is a valid mammography laterality value

Definition at line 62 of file mg_storage.cpp.

62 {
63 return value == "L" || value == "R" || value == "B";
64}

Referenced by kcenon::pacs::services::validation::mg_iod_validator::check_laterality_consistency().

Here is the caller graph for this function:

◆ is_valid_compressed_breast_thickness()

bool kcenon::pacs::services::sop_classes::is_valid_compressed_breast_thickness ( double thickness_mm)
nodiscardnoexcept

Validate compressed breast thickness.

Parameters
thickness_mmCompressed breast thickness in mm
Returns
true if the thickness is within reasonable range

Definition at line 188 of file mg_storage.cpp.

188 {
189 // Typical compressed breast thickness: 20-100 mm
190 // Extended range: 10-150 mm
191 return thickness_mm >= 10.0 && thickness_mm <= 150.0;
192}

Referenced by kcenon::pacs::services::validation::mg_iod_validator::validate_acquisition_dose_module().

Here is the caller graph for this function:

◆ is_valid_compression_force()

bool kcenon::pacs::services::sop_classes::is_valid_compression_force ( double force_n)
nodiscardnoexcept

Validate compression force value.

Typical compression force for mammography is between 50-200 Newtons. Values outside this range may indicate measurement errors or non-standard technique.

Parameters
force_nCompression force in Newtons
Returns
true if the force is within typical mammography range

Definition at line 178 of file mg_storage.cpp.

178 {
179 // Typical mammography compression force: 50-200 N
180 // Extended range to account for variations: 20-300 N
181 return force_n >= 20.0 && force_n <= 300.0;
182}

Referenced by kcenon::pacs::services::validation::mg_iod_validator::check_compression_force_range().

Here is the caller graph for this function:

◆ is_valid_ct_photometric()

bool kcenon::pacs::services::sop_classes::is_valid_ct_photometric ( std::string_view value)
nodiscardnoexcept

Check if photometric interpretation is valid for CT.

CT images are always grayscale (MONOCHROME1 or MONOCHROME2).

Parameters
valueThe photometric interpretation string
Returns
true if valid for CT images

Definition at line 31 of file ct_storage.cpp.

31 {
32 return value == "MONOCHROME1" || value == "MONOCHROME2";
33}

Referenced by kcenon::pacs::services::validation::ct_iod_validator::check_pixel_data_consistency(), and kcenon::pacs::services::validation::ct_processing_iod_validator::check_pixel_data_consistency().

Here is the caller graph for this function:

◆ is_valid_dx_photometric()

bool kcenon::pacs::services::sop_classes::is_valid_dx_photometric ( std::string_view value)
nodiscardnoexcept

Check if photometric interpretation is valid for DX.

Parameters
valueThe DICOM string value
Returns
true if this is a valid DX photometric interpretation

Definition at line 63 of file dx_storage.cpp.

63 {
64 return value == "MONOCHROME1" || value == "MONOCHROME2";
65}

Referenced by kcenon::pacs::services::validation::dx_iod_validator::check_photometric_interpretation().

Here is the caller graph for this function:

◆ is_valid_laterality_view_combination()

bool kcenon::pacs::services::sop_classes::is_valid_laterality_view_combination ( breast_laterality laterality,
mg_view_position view )
nodiscardnoexcept

Check if laterality and view position are consistent.

Validates that the laterality and view position make clinical sense (e.g., bilateral laterality shouldn't be used with single-breast views).

Parameters
lateralityThe breast laterality
viewThe view position
Returns
true if the combination is clinically valid

Definition at line 348 of file mg_storage.cpp.

350 {
351
352 // Bilateral laterality should only be used for comparison views
353 // or special study types, not for standard single-breast views
354 if (laterality == breast_laterality::bilateral) {
355 // CV (cleavage view) can legitimately be bilateral
356 if (view == mg_view_position::cv) {
357 return true;
358 }
359 // Most standard views should specify L or R
360 return false;
361 }
362
363 // Unknown laterality with a specific view is problematic
364 if (laterality == breast_laterality::unknown) {
365 // Allow if view is also unspecified
366 return view == mg_view_position::other;
367 }
368
369 // Left or Right with any view is valid
370 return true;
371}

References bilateral, cv, other, and unknown.

Referenced by kcenon::pacs::services::validation::mg_iod_validator::check_view_position_validity().

Here is the caller graph for this function:

◆ is_valid_mr_photometric()

bool kcenon::pacs::services::sop_classes::is_valid_mr_photometric ( std::string_view value)
nodiscardnoexcept

Check if photometric interpretation is valid for MR.

MR images are always grayscale (MONOCHROME1 or MONOCHROME2).

Parameters
valueThe photometric interpretation string
Returns
true if valid for MR images

Definition at line 28 of file mr_storage.cpp.

28 {
29 return value == "MONOCHROME1" || value == "MONOCHROME2";
30}

Referenced by kcenon::pacs::services::validation::mr_iod_validator::check_pixel_data_consistency().

Here is the caller graph for this function:

◆ is_valid_nm_photometric()

bool kcenon::pacs::services::sop_classes::is_valid_nm_photometric ( std::string_view value)
nodiscardnoexcept

Check if photometric interpretation is valid for NM.

Parameters
valueThe DICOM string value
Returns
true if this is a valid NM photometric interpretation

Definition at line 60 of file nm_storage.cpp.

60 {
61 return value == "MONOCHROME2" || value == "PALETTE COLOR";
62}

Referenced by kcenon::pacs::services::validation::nm_iod_validator::check_pixel_data_consistency().

Here is the caller graph for this function:

◆ is_valid_ophthalmic_photometric()

bool kcenon::pacs::services::sop_classes::is_valid_ophthalmic_photometric ( std::string_view value)
nodiscardnoexcept

Check if photometric interpretation is valid for ophthalmic imaging.

Ophthalmic Photography supports RGB (color fundus) and MONOCHROME2 (fluorescein angiography, ICG). OCT supports MONOCHROME2. MONOCHROME1 is also valid for certain ophthalmic applications.

Parameters
valueThe photometric interpretation string
Returns
true if valid for ophthalmic images

Definition at line 34 of file ophthalmic_storage.cpp.

34 {
35 return value == "MONOCHROME1" || value == "MONOCHROME2" ||
36 value == "RGB" || value == "YBR_FULL_422" ||
37 value == "PALETTE COLOR";
38}

Referenced by kcenon::pacs::services::validation::ophthalmic_iod_validator::check_pixel_data_consistency().

Here is the caller graph for this function:

◆ is_valid_parametric_map_bits_allocated()

bool kcenon::pacs::services::sop_classes::is_valid_parametric_map_bits_allocated ( uint16_t bits_allocated)
nodiscardnoexcept

Check if a BitsAllocated value is valid for parametric maps.

Parameters
bits_allocatedThe BitsAllocated value to check
Returns
true if 32 or 64

Definition at line 59 of file parametric_map_storage.cpp.

59 {
60 return bits_allocated == 32 || bits_allocated == 64;
61}

Referenced by kcenon::pacs::services::validation::parametric_map_iod_validator::check_pixel_data_consistency().

Here is the caller graph for this function:

◆ is_valid_parametric_map_photometric()

bool kcenon::pacs::services::sop_classes::is_valid_parametric_map_photometric ( std::string_view value)
nodiscardnoexcept

Check if photometric interpretation is valid for parametric maps.

Parametric Maps use MONOCHROME2 for single-component float/double data.

Parameters
valueThe photometric interpretation string
Returns
true if valid for parametric maps

Definition at line 102 of file parametric_map_storage.cpp.

102 {
103 return value == "MONOCHROME2";
104}

Referenced by kcenon::pacs::services::validation::parametric_map_iod_validator::check_pixel_data_consistency().

Here is the caller graph for this function:

◆ is_valid_pet_photometric()

bool kcenon::pacs::services::sop_classes::is_valid_pet_photometric ( std::string_view value)
nodiscardnoexcept

Check if photometric interpretation is valid for PET.

Parameters
valueThe DICOM string value
Returns
true if this is a valid PET photometric interpretation

Definition at line 56 of file pet_storage.cpp.

56 {
57 return value == "MONOCHROME2";
58}

Referenced by kcenon::pacs::services::validation::pet_iod_validator::check_pixel_data_consistency().

Here is the caller graph for this function:

◆ is_valid_segment_algorithm_type()

bool kcenon::pacs::services::sop_classes::is_valid_segment_algorithm_type ( std::string_view value)
nodiscardnoexcept

Check if segment algorithm type string is valid.

Parameters
valueThe DICOM string value
Returns
true if this is a valid segment algorithm type

Definition at line 113 of file seg_storage.cpp.

113 {
114 return value == "AUTOMATIC" ||
115 value == "SEMIAUTOMATIC" ||
116 value == "MANUAL";
117}

Referenced by kcenon::pacs::services::validation::seg_iod_validator::validate_single_segment().

Here is the caller graph for this function:

◆ is_valid_segmentation_type()

bool kcenon::pacs::services::sop_classes::is_valid_segmentation_type ( std::string_view value)
nodiscardnoexcept

Check if segmentation type string is valid.

Parameters
valueThe DICOM string value
Returns
true if this is a valid segmentation type

Definition at line 60 of file seg_storage.cpp.

60 {
61 return value == "BINARY" || value == "FRACTIONAL";
62}

Referenced by kcenon::pacs::services::validation::seg_iod_validator::check_segmentation_type().

Here is the caller graph for this function:

◆ is_valid_sr_value_type()

bool kcenon::pacs::services::sop_classes::is_valid_sr_value_type ( std::string_view value)
nodiscardnoexcept

Check if SR value type string is valid.

Parameters
valueThe DICOM string value
Returns
true if this is a valid SR value type

Definition at line 150 of file sr_storage.cpp.

150 {
151 return parse_sr_value_type(value) != sr_value_type::unknown;
152}
sr_value_type parse_sr_value_type(std::string_view value) noexcept
Parse SR value type from DICOM string.

References parse_sr_value_type(), and unknown.

Here is the call graph for this function:

◆ is_valid_us_photometric()

bool kcenon::pacs::services::sop_classes::is_valid_us_photometric ( std::string_view value)
nodiscardnoexcept

Check if photometric interpretation is valid for US.

Parameters
valueThe DICOM string value
Returns
true if this is a valid US photometric interpretation

Definition at line 91 of file us_storage.cpp.

91 {
92 return value == "MONOCHROME1" ||
93 value == "MONOCHROME2" ||
94 value == "PALETTE COLOR" ||
95 value == "RGB" ||
96 value == "YBR_FULL" ||
97 value == "YBR_FULL_422";
98}

Referenced by kcenon::pacs::services::validation::us_iod_validator::check_pixel_data_consistency().

Here is the caller graph for this function:

◆ is_valid_wsi_photometric()

bool kcenon::pacs::services::sop_classes::is_valid_wsi_photometric ( std::string_view value)
nodiscardnoexcept

Check if photometric interpretation is valid for WSI.

WSI images support RGB (brightfield), YBR variants (compressed), and MONOCHROME2 (fluorescence single-channel).

Parameters
valueThe photometric interpretation string
Returns
true if valid for WSI images

Definition at line 26 of file wsi_storage.cpp.

26 {
27 return value == "RGB" || value == "YBR_FULL_422" ||
28 value == "YBR_ICT" || value == "YBR_RCT" ||
29 value == "MONOCHROME2";
30}

Referenced by kcenon::pacs::services::validation::wsi_iod_validator::check_pixel_data_consistency().

Here is the caller graph for this function:

◆ is_valid_xa_photometric()

bool kcenon::pacs::services::sop_classes::is_valid_xa_photometric ( std::string_view value)
nodiscardnoexcept

Check if photometric interpretation is valid for XA.

Parameters
valueThe DICOM string value
Returns
true if this is a valid XA photometric interpretation

Definition at line 60 of file xa_storage.cpp.

60 {
61 return value == "MONOCHROME1" || value == "MONOCHROME2";
62}

Referenced by kcenon::pacs::services::validation::xa_iod_validator::check_xa_photometric().

Here is the caller graph for this function:

◆ is_waveform_annotation_sop_class()

bool kcenon::pacs::services::sop_classes::is_waveform_annotation_sop_class ( std::string_view uid)
nodiscardnoexcept

Check if a SOP Class UID is a Waveform Annotation SOP Class.

Parameters
uidThe SOP Class UID to check
Returns
true if this is the waveform annotation SOP class

Definition at line 160 of file waveform_storage.cpp.

160 {
162}
constexpr std::string_view waveform_annotation_storage_uid
Waveform Annotation Storage SOP Class UID.

References uid, and waveform_annotation_storage_uid.

Referenced by kcenon::pacs::services::validation::waveform_ps_iod_validator::quick_check(), kcenon::pacs::services::validation::waveform_ps_iod_validator::validate(), and kcenon::pacs::services::validation::waveform_ps_iod_validator::validate_sop_common_module().

Here is the caller graph for this function:

◆ is_waveform_presentation_state_sop_class()

bool kcenon::pacs::services::sop_classes::is_waveform_presentation_state_sop_class ( std::string_view uid)
nodiscardnoexcept

Check if a SOP Class UID is a Waveform Presentation State SOP Class.

Parameters
uidThe SOP Class UID to check
Returns
true if this is the waveform presentation state SOP class

Definition at line 156 of file waveform_storage.cpp.

156 {
158}
constexpr std::string_view waveform_presentation_state_storage_uid
Waveform Presentation State Storage SOP Class UID.

References uid, and waveform_presentation_state_storage_uid.

Referenced by kcenon::pacs::services::validation::waveform_ps_iod_validator::quick_check(), kcenon::pacs::services::validation::waveform_ps_iod_validator::validate(), and kcenon::pacs::services::validation::waveform_ps_iod_validator::validate_sop_common_module().

Here is the caller graph for this function:

◆ is_waveform_storage_sop_class()

bool kcenon::pacs::services::sop_classes::is_waveform_storage_sop_class ( std::string_view uid)
nodiscardnoexcept

Check if a SOP Class UID is a Waveform Storage SOP Class.

Parameters
uidThe SOP Class UID to check
Returns
true if this is any waveform storage SOP class

Definition at line 152 of file waveform_storage.cpp.

152 {
153 return get_waveform_sop_class_info(uid) != nullptr;
154}
const waveform_sop_class_info * get_waveform_sop_class_info(std::string_view uid) noexcept
Get information about a specific Waveform SOP Class.

References get_waveform_sop_class_info(), and uid.

Here is the call graph for this function:

◆ is_wsi_storage_sop_class()

bool kcenon::pacs::services::sop_classes::is_wsi_storage_sop_class ( std::string_view uid)
nodiscardnoexcept

Check if a SOP Class UID is a WSI Storage SOP Class.

Parameters
uidThe SOP Class UID to check
Returns
true if this is a WSI storage SOP class

Definition at line 22 of file wsi_storage.cpp.

22 {
23 return uid == wsi_image_storage_uid;
24}
constexpr std::string_view wsi_image_storage_uid
VL Whole Slide Microscopy Image Storage SOP Class UID.
Definition wsi_storage.h:35

References uid, and wsi_image_storage_uid.

Referenced by kcenon::pacs::services::validation::wsi_iod_validator::validate_sop_common_module().

Here is the caller graph for this function:

◆ is_xa_3d_sop_class()

bool kcenon::pacs::services::sop_classes::is_xa_3d_sop_class ( std::string_view uid)
nodiscardnoexcept

Check if a SOP Class UID is a 3D XA SOP Class.

Parameters
uidThe SOP Class UID to check
Returns
true if this is a 3D XA storage SOP class

Definition at line 157 of file xa_storage.cpp.

157 {
158 const auto* info = get_xa_sop_class_info(uid);
159 return info != nullptr && info->is_3d;
160}

References get_xa_sop_class_info(), and uid.

Here is the call graph for this function:

◆ is_xa_multiframe_sop_class()

bool kcenon::pacs::services::sop_classes::is_xa_multiframe_sop_class ( std::string_view uid)
nodiscardnoexcept

Check if a SOP Class UID is a multi-frame XA Storage SOP Class.

Parameters
uidThe SOP Class UID to check
Returns
true if this is a multi-frame XA storage SOP class

Definition at line 147 of file xa_storage.cpp.

147 {
148 const auto* info = get_xa_sop_class_info(uid);
149 return info != nullptr && info->supports_multiframe;
150}

References get_xa_sop_class_info(), and uid.

Here is the call graph for this function:

◆ is_xa_storage_sop_class()

bool kcenon::pacs::services::sop_classes::is_xa_storage_sop_class ( std::string_view uid)
nodiscardnoexcept

Check if a SOP Class UID is an XA/XRF Storage SOP Class.

Parameters
uidThe SOP Class UID to check
Returns
true if this is any XA/XRF storage SOP class

Definition at line 143 of file xa_storage.cpp.

143 {
144 return get_xa_sop_class_info(uid) != nullptr;
145}

References get_xa_sop_class_info(), and uid.

Referenced by kcenon::pacs::services::validation::xa_iod_validator::validate_sop_common_module().

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

◆ parse_body_part()

dx_body_part kcenon::pacs::services::sop_classes::parse_body_part ( std::string_view value)
nodiscardnoexcept

Parse DICOM body part examined string.

Parameters
valueThe DICOM string value
Returns
The corresponding enum value, or other if unknown

Definition at line 169 of file dx_storage.cpp.

169 {
170 if (value == "CHEST") return dx_body_part::chest;
171 if (value == "ABDOMEN") return dx_body_part::abdomen;
172 if (value == "PELVIS") return dx_body_part::pelvis;
173 if (value == "SPINE" || value == "CSPINE" || value == "TSPINE" ||
174 value == "LSPINE" || value == "SSPINE") {
175 return dx_body_part::spine;
176 }
177 if (value == "SKULL" || value == "HEAD") return dx_body_part::skull;
178 if (value == "HAND" || value == "FINGER") return dx_body_part::hand;
179 if (value == "FOOT" || value == "TOE") return dx_body_part::foot;
180 if (value == "KNEE") return dx_body_part::knee;
181 if (value == "ELBOW") return dx_body_part::elbow;
182 if (value == "SHOULDER") return dx_body_part::shoulder;
183 if (value == "HIP") return dx_body_part::hip;
184 if (value == "WRIST") return dx_body_part::wrist;
185 if (value == "ANKLE") return dx_body_part::ankle;
186 if (value == "EXTREMITY" || value == "ARM" || value == "LEG") {
187 return dx_body_part::extremity;
188 }
189 if (value == "BREAST") return dx_body_part::breast;
190 return dx_body_part::other;
191}

References abdomen, ankle, breast, chest, elbow, extremity, foot, hand, hip, knee, other, pelvis, shoulder, skull, spine, and wrist.

◆ parse_breast_laterality()

breast_laterality kcenon::pacs::services::sop_classes::parse_breast_laterality ( std::string_view value)
nodiscardnoexcept

Parse DICOM laterality string to enum.

Parameters
valueThe DICOM string value
Returns
The corresponding enum value, or unknown if not recognized

Definition at line 32 of file mg_storage.cpp.

32 {
33 if (value.empty()) {
34 return breast_laterality::unknown;
35 }
36
37 // Handle single character codes
38 if (value.size() == 1) {
39 switch (std::toupper(static_cast<unsigned char>(value[0]))) {
40 case 'L': return breast_laterality::left;
41 case 'R': return breast_laterality::right;
42 case 'B': return breast_laterality::bilateral;
43 }
44 }
45
46 // Handle full words (case-insensitive)
47 std::string lower_value;
48 lower_value.reserve(value.size());
49 for (char c : value) {
50 lower_value += static_cast<char>(std::tolower(static_cast<unsigned char>(c)));
51 }
52
53 if (lower_value == "left") return breast_laterality::left;
54 if (lower_value == "right") return breast_laterality::right;
55 if (lower_value == "bilateral" || lower_value == "both") {
56 return breast_laterality::bilateral;
57 }
58
59 return breast_laterality::unknown;
60}

References bilateral, left, right, and unknown.

Referenced by kcenon::pacs::services::validation::mg_iod_validator::check_view_position_validity().

Here is the caller graph for this function:

◆ parse_detector_type()

dx_detector_type kcenon::pacs::services::sop_classes::parse_detector_type ( std::string_view value)
nodiscardnoexcept

Parse DICOM detector type string.

Parameters
valueThe DICOM string value
Returns
The corresponding enum value

Definition at line 134 of file dx_storage.cpp.

134 {
135 if (value == "DIRECT") return dx_detector_type::direct;
136 if (value == "INDIRECT") return dx_detector_type::indirect;
137 if (value == "STORAGE") return dx_detector_type::storage;
138 if (value == "FILM") return dx_detector_type::film;
139 // Default to direct for modern DR systems
140 return dx_detector_type::direct;
141}

References direct, film, indirect, and storage.

◆ parse_dx_photometric_interpretation()

dx_photometric_interpretation kcenon::pacs::services::sop_classes::parse_dx_photometric_interpretation ( std::string_view value)
nodiscardnoexcept

Parse DICOM photometric interpretation string for DX.

Parameters
valueThe DICOM string value
Returns
The corresponding enum value, or monochrome2 if unknown

Definition at line 55 of file dx_storage.cpp.

55 {
56 if (value == "MONOCHROME1") {
57 return dx_photometric_interpretation::monochrome1;
58 }
59 // Default to MONOCHROME2 for DX
60 return dx_photometric_interpretation::monochrome2;
61}

References monochrome1, and monochrome2.

◆ parse_mg_view_position()

mg_view_position kcenon::pacs::services::sop_classes::parse_mg_view_position ( std::string_view value)
nodiscardnoexcept

Parse DICOM view position string to mammography view enum.

Parameters
valueThe DICOM string value
Returns
The corresponding enum value, or other if not recognized

Definition at line 98 of file mg_storage.cpp.

98 {
99 if (value.empty()) {
100 return mg_view_position::other;
101 }
102
103 // Convert to uppercase for comparison
104 std::string upper_value;
105 upper_value.reserve(value.size());
106 for (char c : value) {
107 upper_value += static_cast<char>(std::toupper(static_cast<unsigned char>(c)));
108 }
109
110 // Standard views
111 if (upper_value == "CC") return mg_view_position::cc;
112 if (upper_value == "MLO") return mg_view_position::mlo;
113 if (upper_value == "ML") return mg_view_position::ml;
114 if (upper_value == "LM") return mg_view_position::lm;
115
116 // Extended CC views
117 if (upper_value == "XCCL") return mg_view_position::xccl;
118 if (upper_value == "XCCM") return mg_view_position::xccm;
119
120 // Other standard views
121 if (upper_value == "FB") return mg_view_position::fb;
122 if (upper_value == "SIO") return mg_view_position::sio;
123 if (upper_value == "ISO") return mg_view_position::iso;
124 if (upper_value == "CV") return mg_view_position::cv;
125 if (upper_value == "AT") return mg_view_position::at;
126
127 // Spot/magnification views
128 if (upper_value == "SPOT") return mg_view_position::spot;
129 if (upper_value == "MAG") return mg_view_position::mag;
130 if (upper_value == "SPOT MAG" || upper_value == "SPOTMAG") {
131 return mg_view_position::spot_mag;
132 }
133
134 // Rolled views
135 if (upper_value == "RL") return mg_view_position::rl;
136 if (upper_value == "RM") return mg_view_position::rm;
137 if (upper_value == "RS") return mg_view_position::rs;
138 if (upper_value == "RI") return mg_view_position::ri;
139
140 // Specialized views
141 if (upper_value == "TAN" || upper_value == "TANGENTIAL") {
142 return mg_view_position::tangen;
143 }
144 if (upper_value == "ID" || upper_value == "IMPLANT DISPLACED" ||
145 upper_value == "IMPLANTDISPLACED") {
146 return mg_view_position::implant;
147 }
148
149 return mg_view_position::other;
150}

References at, cc, cv, fb, implant, iso, lm, mag, ml, mlo, other, ri, rl, rm, rs, sio, spot, spot_mag, tangen, xccl, and xccm.

Referenced by kcenon::pacs::services::validation::mg_iod_validator::check_view_position_validity(), kcenon::pacs::services::validation::is_screening_mammogram(), and kcenon::pacs::services::validation::mg_iod_validator::validate_breast_implant_module().

Here is the caller graph for this function:

◆ parse_nm_collimator_type()

nm_collimator_type kcenon::pacs::services::sop_classes::parse_nm_collimator_type ( std::string_view value)
nodiscardnoexcept

Parse collimator type from DICOM string.

Parameters
valueThe DICOM string value
Returns
The collimator type

Definition at line 204 of file nm_storage.cpp.

204 {
205 if (value == "PARA" || value == "PARALLEL") {
206 return nm_collimator_type::parallel;
207 }
208 if (value == "FANB" || value == "FAN BEAM") {
209 return nm_collimator_type::fan_beam;
210 }
211 if (value == "CONE" || value == "CONE BEAM") {
212 return nm_collimator_type::cone_beam;
213 }
214 if (value == "PINH" || value == "PINHOLE") {
215 return nm_collimator_type::pinhole;
216 }
217 if (value == "DIVG" || value == "DIVERGING") {
218 return nm_collimator_type::diverging;
219 }
220 if (value == "CVGB" || value == "CONVERGING") {
221 return nm_collimator_type::converging;
222 }
223 if (value == "NONE") {
224 return nm_collimator_type::none;
225 }
226 return nm_collimator_type::parallel;
227}

References cone_beam, converging, diverging, fan_beam, none, parallel, and pinhole.

◆ parse_nm_photometric_interpretation()

nm_photometric_interpretation kcenon::pacs::services::sop_classes::parse_nm_photometric_interpretation ( std::string_view value)
nodiscardnoexcept

Parse DICOM photometric interpretation string.

Parameters
valueThe DICOM string value
Returns
The corresponding enum value, or monochrome2 if unknown

Definition at line 53 of file nm_storage.cpp.

53 {
54 if (value == "PALETTE COLOR") {
55 return nm_photometric_interpretation::palette_color;
56 }
57 return nm_photometric_interpretation::monochrome2;
58}

References monochrome2, and palette_color.

◆ parse_nm_type_of_data()

nm_type_of_data kcenon::pacs::services::sop_classes::parse_nm_type_of_data ( std::string_view value)
nodiscardnoexcept

Parse NM type of data from DICOM string.

Parameters
valueThe DICOM string value
Returns
The type of data

Definition at line 152 of file nm_storage.cpp.

152 {
153 if (value == "STATIC") {
154 return nm_type_of_data::static_image;
155 }
156 if (value == "DYNAMIC") {
157 return nm_type_of_data::dynamic;
158 }
159 if (value == "GATED") {
160 return nm_type_of_data::gated;
161 }
162 if (value == "WHOLE BODY") {
163 return nm_type_of_data::whole_body;
164 }
165 if (value == "RECON TOMO") {
166 return nm_type_of_data::recon_tomo;
167 }
168 if (value == "RECON GATED TOMO") {
169 return nm_type_of_data::recon_gated_tomo;
170 }
171 if (value == "TOMO") {
172 return nm_type_of_data::tomo;
173 }
174 if (value == "GATED TOMO") {
175 return nm_type_of_data::gated_tomo;
176 }
177 return nm_type_of_data::static_image;
178}

References dynamic, gated, gated_tomo, recon_gated_tomo, recon_tomo, static_image, tomo, and whole_body.

◆ parse_pet_photometric_interpretation()

pet_photometric_interpretation kcenon::pacs::services::sop_classes::parse_pet_photometric_interpretation ( std::string_view value)
nodiscardnoexcept

Parse DICOM photometric interpretation string.

Parameters
valueThe DICOM string value
Returns
The corresponding enum value, or monochrome2 if unknown

Definition at line 51 of file pet_storage.cpp.

51 {
52 // PET images are always MONOCHROME2
53 return pet_photometric_interpretation::monochrome2;
54}

References monochrome2.

◆ parse_pet_reconstruction_type()

pet_reconstruction_type kcenon::pacs::services::sop_classes::parse_pet_reconstruction_type ( std::string_view value)
nodiscardnoexcept

Parse PET reconstruction type from string.

Parameters
valueThe string value
Returns
The reconstruction type

Definition at line 155 of file pet_storage.cpp.

155 {
156 if (value == "FBP" || value == "FILTERED BACK PROJECTION") {
157 return pet_reconstruction_type::fbp;
158 }
159 if (value == "OSEM" || value == "3D-OSEM") {
160 return pet_reconstruction_type::osem;
161 }
162 if (value == "MLEM") {
163 return pet_reconstruction_type::mlem;
164 }
165 if (value.find("TOF") != std::string_view::npos) {
166 return pet_reconstruction_type::tof_osem;
167 }
168 if (value.find("PSF") != std::string_view::npos) {
169 return pet_reconstruction_type::psf_osem;
170 }
171 return pet_reconstruction_type::other;
172}

References fbp, mlem, osem, other, psf_osem, and tof_osem.

◆ parse_pet_units()

pet_units kcenon::pacs::services::sop_classes::parse_pet_units ( std::string_view value)
nodiscardnoexcept

Parse PET units from DICOM string.

Parameters
valueThe DICOM string value
Returns
The units type

Definition at line 200 of file pet_storage.cpp.

200 {
201 if (value == "CNTS") {
202 return pet_units::cnts;
203 }
204 if (value == "BQML" || value == "BQ/ML") {
205 return pet_units::bqml;
206 }
207 if (value == "GML" || value == "G/ML") {
208 return pet_units::gml;
209 }
210 if (value == "SUV" || value == "SUV_BW") {
211 return pet_units::suv_bw;
212 }
213 if (value == "SUL" || value == "SUV_LBM") {
214 return pet_units::suv_lbm;
215 }
216 if (value == "SUV_BSA") {
217 return pet_units::suv_bsa;
218 }
219 if (value == "%ID/G" || value == "PERCENT_ID_GRAM") {
220 return pet_units::percent_id_gram;
221 }
222 return pet_units::other;
223}

References bqml, cnts, gml, other, percent_id_gram, suv_bsa, suv_bw, and suv_lbm.

◆ parse_photometric_interpretation()

us_photometric_interpretation kcenon::pacs::services::sop_classes::parse_photometric_interpretation ( std::string_view value)
nodiscardnoexcept

Parse DICOM photometric interpretation string.

Parameters
valueThe DICOM string value
Returns
The corresponding enum value, or monochrome2 if unknown

Definition at line 68 of file us_storage.cpp.

68 {
69 if (value == "MONOCHROME1") {
70 return us_photometric_interpretation::monochrome1;
71 }
72 if (value == "MONOCHROME2") {
73 return us_photometric_interpretation::monochrome2;
74 }
75 if (value == "PALETTE COLOR") {
76 return us_photometric_interpretation::palette_color;
77 }
78 if (value == "RGB") {
79 return us_photometric_interpretation::rgb;
80 }
81 if (value == "YBR_FULL") {
82 return us_photometric_interpretation::ybr_full;
83 }
84 if (value == "YBR_FULL_422") {
85 return us_photometric_interpretation::ybr_full_422;
86 }
87 // Default to MONOCHROME2 for unknown values
88 return us_photometric_interpretation::monochrome2;
89}

References monochrome1, monochrome2, palette_color, rgb, ybr_full, and ybr_full_422.

◆ parse_pixel_value_representation()

pixel_value_representation kcenon::pacs::services::sop_classes::parse_pixel_value_representation ( uint16_t bits_allocated)
nodiscardnoexcept

Parse pixel value representation from BitsAllocated value.

Parameters
bits_allocatedThe BitsAllocated value
Returns
The pixel value representation, defaults to float32 for unknown values

Definition at line 52 of file parametric_map_storage.cpp.

52 {
53 if (bits_allocated == 64) {
54 return pixel_value_representation::float64;
55 }
56 return pixel_value_representation::float32;
57}

References float32, and float64.

◆ parse_rt_beam_type()

rt_beam_type kcenon::pacs::services::sop_classes::parse_rt_beam_type ( std::string_view value)
nodiscardnoexcept

Parse RT beam type from DICOM string.

Parameters
valueThe DICOM string value
Returns
The beam type

Definition at line 507 of file rt_storage.cpp.

507 {
508 if (value == "DYNAMIC") {
509 return rt_beam_type::dynamic;
510 }
511 return rt_beam_type::static_beam;
512}

References dynamic, and static_beam.

◆ parse_rt_dose_summation_type()

rt_dose_summation_type kcenon::pacs::services::sop_classes::parse_rt_dose_summation_type ( std::string_view value)
nodiscardnoexcept

Parse RT dose summation type from DICOM string.

Parameters
valueThe DICOM string value
Returns
The dose summation type

Definition at line 287 of file rt_storage.cpp.

287 {
288 if (value == "PLAN") {
289 return rt_dose_summation_type::plan;
290 }
291 if (value == "MULTI_PLAN") {
292 return rt_dose_summation_type::multi_plan;
293 }
294 if (value == "FRACTION") {
295 return rt_dose_summation_type::fraction;
296 }
297 if (value == "BEAM") {
298 return rt_dose_summation_type::beam;
299 }
300 if (value == "BRACHY") {
301 return rt_dose_summation_type::brachy;
302 }
303 if (value == "FRACTION_SESSION") {
304 return rt_dose_summation_type::fraction_session;
305 }
306 if (value == "BEAM_SESSION") {
307 return rt_dose_summation_type::beam_session;
308 }
309 if (value == "BRACHY_SESSION") {
310 return rt_dose_summation_type::brachy_session;
311 }
312 if (value == "CONTROL_POINT") {
313 return rt_dose_summation_type::control_point;
314 }
315 if (value == "RECORD") {
316 return rt_dose_summation_type::record;
317 }
318 return rt_dose_summation_type::plan;
319}

References beam, beam_session, brachy, brachy_session, control_point, fraction, fraction_session, multi_plan, plan, and record.

◆ parse_rt_dose_type()

rt_dose_type kcenon::pacs::services::sop_classes::parse_rt_dose_type ( std::string_view value)
nodiscardnoexcept

Parse RT dose type from DICOM string.

Parameters
valueThe DICOM string value
Returns
The dose type

Definition at line 247 of file rt_storage.cpp.

247 {
248 if (value == "EFFECTIVE") {
249 return rt_dose_type::effective;
250 }
251 if (value == "ERROR") {
252 return rt_dose_type::error;
253 }
254 return rt_dose_type::physical;
255}

References effective, error, and physical.

◆ parse_rt_dose_units()

rt_dose_units kcenon::pacs::services::sop_classes::parse_rt_dose_units ( std::string_view value)
nodiscardnoexcept

Parse RT dose units from DICOM string.

Parameters
valueThe DICOM string value
Returns
The dose units

Definition at line 335 of file rt_storage.cpp.

335 {
336 if (value == "RELATIVE") {
337 return rt_dose_units::relative;
338 }
339 return rt_dose_units::gy;
340}

References gy, and relative.

◆ parse_rt_image_plane()

rt_image_plane kcenon::pacs::services::sop_classes::parse_rt_image_plane ( std::string_view value)
nodiscardnoexcept

Parse RT image plane from DICOM string.

Parameters
valueThe DICOM string value
Returns
The image plane type

Definition at line 613 of file rt_storage.cpp.

613 {
614 if (value == "AXIAL") {
615 return rt_image_plane::axial;
616 }
617 if (value == "LOCALIZER") {
618 return rt_image_plane::localizer;
619 }
620 if (value == "DRR") {
621 return rt_image_plane::drr;
622 }
623 if (value == "PORTAL") {
624 return rt_image_plane::portal;
625 }
626 if (value == "FLUENCE") {
627 return rt_image_plane::fluence;
628 }
629 return rt_image_plane::portal;
630}

References axial, drr, fluence, localizer, and portal.

◆ parse_rt_plan_geometry()

rt_plan_geometry kcenon::pacs::services::sop_classes::parse_rt_plan_geometry ( std::string_view value)
nodiscardnoexcept

Parse RT plan geometry from DICOM string.

Parameters
valueThe DICOM string value
Returns
The plan geometry

Definition at line 224 of file rt_storage.cpp.

224 {
225 if (value == "TREATMENT_DEVICE") {
226 return rt_plan_geometry::treatment_device;
227 }
228 return rt_plan_geometry::patient;
229}

References patient, and treatment_device.

◆ parse_rt_plan_intent()

rt_plan_intent kcenon::pacs::services::sop_classes::parse_rt_plan_intent ( std::string_view value)
nodiscardnoexcept

Parse RT plan intent from DICOM string.

Parameters
valueThe DICOM string value
Returns
The plan intent

Definition at line 185 of file rt_storage.cpp.

185 {
186 if (value == "CURATIVE") {
187 return rt_plan_intent::curative;
188 }
189 if (value == "PALLIATIVE") {
190 return rt_plan_intent::palliative;
191 }
192 if (value == "PROPHYLACTIC") {
193 return rt_plan_intent::prophylactic;
194 }
195 if (value == "VERIFICATION") {
196 return rt_plan_intent::verification;
197 }
198 if (value == "MACHINE_QA") {
199 return rt_plan_intent::machine_qa;
200 }
201 if (value == "RESEARCH") {
202 return rt_plan_intent::research;
203 }
204 if (value == "SERVICE") {
205 return rt_plan_intent::service;
206 }
207 return rt_plan_intent::curative;
208}

References curative, machine_qa, palliative, prophylactic, research, service, and verification.

◆ parse_rt_radiation_type()

rt_radiation_type kcenon::pacs::services::sop_classes::parse_rt_radiation_type ( std::string_view value)
nodiscardnoexcept

Parse RT radiation type from DICOM string.

Parameters
valueThe DICOM string value
Returns
The radiation type

Definition at line 534 of file rt_storage.cpp.

534 {
535 if (value == "PHOTON") {
536 return rt_radiation_type::photon;
537 }
538 if (value == "ELECTRON") {
539 return rt_radiation_type::electron;
540 }
541 if (value == "NEUTRON") {
542 return rt_radiation_type::neutron;
543 }
544 if (value == "PROTON") {
545 return rt_radiation_type::proton;
546 }
547 if (value == "ION") {
548 return rt_radiation_type::ion;
549 }
550 return rt_radiation_type::photon;
551}

References electron, ion, neutron, photon, and proton.

◆ parse_rt_roi_generation_algorithm()

rt_roi_generation_algorithm kcenon::pacs::services::sop_classes::parse_rt_roi_generation_algorithm ( std::string_view value)
nodiscardnoexcept

Parse RT ROI generation algorithm from DICOM string.

Parameters
valueThe DICOM string value
Returns
The generation algorithm

Definition at line 483 of file rt_storage.cpp.

483 {
484 if (value == "AUTOMATIC") {
485 return rt_roi_generation_algorithm::automatic;
486 }
487 if (value == "SEMIAUTOMATIC") {
488 return rt_roi_generation_algorithm::semiautomatic;
489 }
490 return rt_roi_generation_algorithm::manual;
491}

References automatic, manual, and semiautomatic.

◆ parse_rt_roi_interpreted_type()

rt_roi_interpreted_type kcenon::pacs::services::sop_classes::parse_rt_roi_interpreted_type ( std::string_view value)
nodiscardnoexcept

Parse RT ROI interpreted type from DICOM string.

Parameters
valueThe DICOM string value
Returns
The ROI interpreted type

Definition at line 396 of file rt_storage.cpp.

396 {
397 if (value == "EXTERNAL") {
398 return rt_roi_interpreted_type::external;
399 }
400 if (value == "PTV") {
401 return rt_roi_interpreted_type::ptv;
402 }
403 if (value == "CTV") {
404 return rt_roi_interpreted_type::ctv;
405 }
406 if (value == "GTV") {
407 return rt_roi_interpreted_type::gtv;
408 }
409 if (value == "ORGAN") {
410 return rt_roi_interpreted_type::organ;
411 }
412 if (value == "AVOIDANCE") {
413 return rt_roi_interpreted_type::avoidance;
414 }
415 if (value == "TREATED_VOLUME") {
416 return rt_roi_interpreted_type::treated_volume;
417 }
418 if (value == "IRRAD_VOLUME") {
419 return rt_roi_interpreted_type::irrad_volume;
420 }
421 if (value == "BOLUS") {
422 return rt_roi_interpreted_type::bolus;
423 }
424 if (value == "BRACHY_CHANNEL") {
425 return rt_roi_interpreted_type::brachy_channel;
426 }
427 if (value == "BRACHY_ACCESSORY") {
428 return rt_roi_interpreted_type::brachy_accessory;
429 }
430 if (value == "BRACHY_SRC_APPL") {
431 return rt_roi_interpreted_type::brachy_src_appl;
432 }
433 if (value == "BRACHY_CHNL_SHLD") {
434 return rt_roi_interpreted_type::brachy_chnl_shld;
435 }
436 if (value == "SUPPORT") {
437 return rt_roi_interpreted_type::support;
438 }
439 if (value == "FIXATION") {
440 return rt_roi_interpreted_type::fixation;
441 }
442 if (value == "DOSE_REGION") {
443 return rt_roi_interpreted_type::dose_region;
444 }
445 if (value == "CONTRAST_AGENT") {
446 return rt_roi_interpreted_type::contrast_agent;
447 }
448 if (value == "CAVITY") {
449 return rt_roi_interpreted_type::cavity;
450 }
451 if (value == "MARKER") {
452 return rt_roi_interpreted_type::marker;
453 }
454 if (value == "REGISTRATION") {
455 return rt_roi_interpreted_type::registration;
456 }
457 if (value == "ISOCENTER") {
458 return rt_roi_interpreted_type::isocenter;
459 }
460 if (value == "CONTROL") {
461 return rt_roi_interpreted_type::control_point;
462 }
463 return rt_roi_interpreted_type::organ;
464}

References avoidance, bolus, brachy_accessory, brachy_channel, brachy_chnl_shld, brachy_src_appl, cavity, contrast_agent, control_point, ctv, dose_region, external, fixation, gtv, irrad_volume, isocenter, marker, organ, ptv, registration, support, and treated_volume.

◆ parse_rt_treatment_delivery_type()

rt_treatment_delivery_type kcenon::pacs::services::sop_classes::parse_rt_treatment_delivery_type ( std::string_view value)
nodiscardnoexcept

Parse RT treatment delivery type from DICOM string.

Parameters
valueThe DICOM string value
Returns
The treatment delivery type

Definition at line 574 of file rt_storage.cpp.

574 {
575 if (value == "TREATMENT") {
576 return rt_treatment_delivery_type::treatment;
577 }
578 if (value == "OPEN_PORTFILM") {
579 return rt_treatment_delivery_type::open_portfilm;
580 }
581 if (value == "TRMT_PORTFILM") {
582 return rt_treatment_delivery_type::trmt_portfilm;
583 }
584 if (value == "CONTINUATION") {
585 return rt_treatment_delivery_type::continuation;
586 }
587 if (value == "SETUP") {
588 return rt_treatment_delivery_type::setup;
589 }
590 return rt_treatment_delivery_type::treatment;
591}

References continuation, open_portfilm, setup, treatment, and trmt_portfilm.

◆ parse_segment_algorithm_type()

segment_algorithm_type kcenon::pacs::services::sop_classes::parse_segment_algorithm_type ( std::string_view value)
nodiscardnoexcept

Parse segment algorithm type from DICOM string.

Parameters
valueThe DICOM string value
Returns
The segment algorithm type

Definition at line 103 of file seg_storage.cpp.

103 {
104 if (value == "AUTOMATIC") {
105 return segment_algorithm_type::automatic;
106 }
107 if (value == "SEMIAUTOMATIC") {
108 return segment_algorithm_type::semiautomatic;
109 }
110 return segment_algorithm_type::manual;
111}

References automatic, manual, and semiautomatic.

◆ parse_segmentation_fractional_type()

segmentation_fractional_type kcenon::pacs::services::sop_classes::parse_segmentation_fractional_type ( std::string_view value)
nodiscardnoexcept

Parse segmentation fractional type from DICOM string.

Parameters
valueThe DICOM string value
Returns
The segmentation fractional type

Definition at line 79 of file seg_storage.cpp.

79 {
80 if (value == "OCCUPANCY") {
81 return segmentation_fractional_type::occupancy;
82 }
83 return segmentation_fractional_type::probability;
84}

References occupancy, and probability.

◆ parse_segmentation_type()

segmentation_type kcenon::pacs::services::sop_classes::parse_segmentation_type ( std::string_view value)
nodiscardnoexcept

Parse segmentation type from DICOM string.

Parameters
valueThe DICOM string value
Returns
The segmentation type

Definition at line 53 of file seg_storage.cpp.

53 {
54 if (value == "FRACTIONAL") {
55 return segmentation_type::fractional;
56 }
57 return segmentation_type::binary;
58}

References binary, and fractional.

◆ parse_sr_completion_flag()

sr_completion_flag kcenon::pacs::services::sop_classes::parse_sr_completion_flag ( std::string_view value)
nodiscardnoexcept

Parse SR completion flag from DICOM string.

Parameters
valueThe DICOM string value
Returns
The completion flag

Definition at line 205 of file sr_storage.cpp.

205 {
206 if (value == "COMPLETE") {
207 return sr_completion_flag::complete;
208 }
209 return sr_completion_flag::partial;
210}

References complete, and partial.

◆ parse_sr_relationship_type()

sr_relationship_type kcenon::pacs::services::sop_classes::parse_sr_relationship_type ( std::string_view value)
nodiscardnoexcept

Parse SR relationship type from DICOM string.

Parameters
valueThe DICOM string value
Returns
The SR relationship type

Definition at line 180 of file sr_storage.cpp.

180 {
181 if (value == "CONTAINS") return sr_relationship_type::contains;
182 if (value == "HAS OBS CONTEXT") return sr_relationship_type::has_obs_context;
183 if (value == "HAS ACQ CONTEXT") return sr_relationship_type::has_acq_context;
184 if (value == "HAS CONCEPT MOD") return sr_relationship_type::has_concept_mod;
185 if (value == "HAS PROPERTIES") return sr_relationship_type::has_properties;
186 if (value == "INFERRED FROM") return sr_relationship_type::inferred_from;
187 if (value == "SELECTED FROM") return sr_relationship_type::selected_from;
188 return sr_relationship_type::unknown;
189}

References contains, has_acq_context, has_concept_mod, has_obs_context, has_properties, inferred_from, selected_from, and unknown.

◆ parse_sr_value_type()

sr_value_type kcenon::pacs::services::sop_classes::parse_sr_value_type ( std::string_view value)
nodiscardnoexcept

Parse SR value type from DICOM string.

Parameters
valueThe DICOM string value
Returns
The SR value type

Definition at line 130 of file sr_storage.cpp.

130 {
131 if (value == "TEXT") return sr_value_type::text;
132 if (value == "CODE") return sr_value_type::code;
133 if (value == "NUM") return sr_value_type::num;
134 if (value == "DATETIME") return sr_value_type::datetime;
135 if (value == "DATE") return sr_value_type::date;
136 if (value == "TIME") return sr_value_type::time;
137 if (value == "UIDREF") return sr_value_type::uidref;
138 if (value == "PNAME") return sr_value_type::pname;
139 if (value == "COMPOSITE") return sr_value_type::composite;
140 if (value == "IMAGE") return sr_value_type::image;
141 if (value == "WAVEFORM") return sr_value_type::waveform;
142 if (value == "SCOORD") return sr_value_type::scoord;
143 if (value == "SCOORD3D") return sr_value_type::scoord3d;
144 if (value == "TCOORD") return sr_value_type::tcoord;
145 if (value == "CONTAINER") return sr_value_type::container;
146 if (value == "TABLE") return sr_value_type::table;
147 return sr_value_type::unknown;
148}

References code, composite, container, date, datetime, image, num, pname, scoord, scoord3d, table, tcoord, text, time, uidref, unknown, and waveform.

Referenced by is_valid_sr_value_type(), and kcenon::pacs::services::validation::sr_iod_validator::validate_content_item().

Here is the caller graph for this function:

◆ parse_sr_verification_flag()

sr_verification_flag kcenon::pacs::services::sop_classes::parse_sr_verification_flag ( std::string_view value)
nodiscardnoexcept

Parse SR verification flag from DICOM string.

Parameters
valueThe DICOM string value
Returns
The verification flag

Definition at line 222 of file sr_storage.cpp.

222 {
223 if (value == "VERIFIED") {
224 return sr_verification_flag::verified;
225 }
226 return sr_verification_flag::unverified;
227}

References unverified, and verified.

◆ parse_view_position()

dx_view_position kcenon::pacs::services::sop_classes::parse_view_position ( std::string_view value)
nodiscardnoexcept

Parse DICOM view position string.

Parameters
valueThe DICOM string value
Returns
The corresponding enum value, or other if unknown

Definition at line 101 of file dx_storage.cpp.

101 {
102 if (value == "AP") return dx_view_position::ap;
103 if (value == "PA") return dx_view_position::pa;
104 if (value == "LATERAL" || value == "LAT" ||
105 value == "LL" || value == "RL") {
106 return dx_view_position::lateral;
107 }
108 if (value == "OBLIQUE" || value == "OBL" ||
109 value == "LAO" || value == "RAO" ||
110 value == "LPO" || value == "RPO") {
111 return dx_view_position::oblique;
112 }
113 return dx_view_position::other;
114}

References ap, lateral, oblique, other, and pa.

◆ parse_xa_photometric_interpretation()

xa_photometric_interpretation kcenon::pacs::services::sop_classes::parse_xa_photometric_interpretation ( std::string_view value)
nodiscardnoexcept

Parse DICOM photometric interpretation string for XA.

Parameters
valueThe DICOM string value
Returns
The corresponding enum value, or monochrome2 if unknown

Definition at line 52 of file xa_storage.cpp.

52 {
53 if (value == "MONOCHROME1") {
54 return xa_photometric_interpretation::monochrome1;
55 }
56 // Default to MONOCHROME2 for unknown or MONOCHROME2 values
57 return xa_photometric_interpretation::monochrome2;
58}

References monochrome1, and monochrome2.

◆ rt_sop_class_has_pixel_data()

bool kcenon::pacs::services::sop_classes::rt_sop_class_has_pixel_data ( std::string_view uid)
nodiscardnoexcept

Check if a SOP Class UID contains pixel data.

Parameters
uidThe SOP Class UID to check
Returns
true if this RT SOP class contains pixel data

Definition at line 156 of file rt_storage.cpp.

156 {
157 const auto* info = get_rt_sop_class_info(uid);
158 return info != nullptr && info->has_pixel_data;
159}

References get_rt_sop_class_info(), and uid.

Here is the call graph for this function:

◆ sr_supports_spatial_coords()

bool kcenon::pacs::services::sop_classes::sr_supports_spatial_coords ( std::string_view uid)
nodiscardnoexcept

Check if an SR SOP Class supports spatial coordinates.

Parameters
uidThe SOP Class UID to check
Returns
true if the SR can contain SCOORD or SCOORD3D content items

Definition at line 453 of file sr_storage.cpp.

453 {
454 const auto* info = get_sr_sop_class_info(uid);
455 return info != nullptr && info->supports_spatial_coords;
456}

References get_sr_sop_class_info(), and uid.

Here is the call graph for this function:

◆ to_string() [1/41]

std::string_view kcenon::pacs::services::sop_classes::to_string ( breast_laterality laterality)
nodiscardnoexcept

Convert breast laterality enum to DICOM string.

Parameters
lateralityThe breast laterality
Returns
DICOM-compliant string representation ("L", "R", "B", or empty)

Definition at line 22 of file mg_storage.cpp.

22 {
23 switch (laterality) {
24 case breast_laterality::left: return "L";
25 case breast_laterality::right: return "R";
26 case breast_laterality::bilateral: return "B";
27 case breast_laterality::unknown: return "";
28 }
29 return "";
30}

References bilateral, left, right, and unknown.

◆ to_string() [2/41]

std::string_view kcenon::pacs::services::sop_classes::to_string ( cad_processing_status status)
nodiscardnoexcept

Convert CAD processing status to display string.

Parameters
statusThe CAD status
Returns
Human-readable string representation

Definition at line 210 of file mg_storage.cpp.

210 {
211 switch (status) {
212 case cad_processing_status::not_processed:
213 return "NOT PROCESSED";
214 case cad_processing_status::processed_no_findings:
215 return "PROCESSED - NO FINDINGS";
216 case cad_processing_status::processed_findings:
217 return "PROCESSED - FINDINGS";
218 case cad_processing_status::processing_failed:
219 return "PROCESSING FAILED";
220 case cad_processing_status::pending:
221 return "PENDING";
222 }
223 return "";
224}

References not_processed, pending, processed_findings, processed_no_findings, and processing_failed.

◆ to_string() [3/41]

std::string_view kcenon::pacs::services::sop_classes::to_string ( dx_body_part part)
nodiscardnoexcept

Convert body part enum to DICOM string.

Parameters
partThe body part
Returns
DICOM-compliant string representation

Definition at line 147 of file dx_storage.cpp.

147 {
148 switch (part) {
149 case dx_body_part::chest: return "CHEST";
150 case dx_body_part::abdomen: return "ABDOMEN";
151 case dx_body_part::pelvis: return "PELVIS";
152 case dx_body_part::spine: return "SPINE";
153 case dx_body_part::skull: return "SKULL";
154 case dx_body_part::hand: return "HAND";
155 case dx_body_part::foot: return "FOOT";
156 case dx_body_part::knee: return "KNEE";
157 case dx_body_part::elbow: return "ELBOW";
158 case dx_body_part::shoulder: return "SHOULDER";
159 case dx_body_part::hip: return "HIP";
160 case dx_body_part::wrist: return "WRIST";
161 case dx_body_part::ankle: return "ANKLE";
162 case dx_body_part::extremity: return "EXTREMITY";
163 case dx_body_part::breast: return "BREAST";
164 case dx_body_part::other: return "";
165 }
166 return "";
167}

References abdomen, ankle, breast, chest, elbow, extremity, foot, hand, hip, knee, other, pelvis, shoulder, skull, spine, and wrist.

◆ to_string() [4/41]

std::string_view kcenon::pacs::services::sop_classes::to_string ( dx_detector_type type)
nodiscardnoexcept

Convert detector type enum to DICOM string.

Parameters
typeThe detector type
Returns
DICOM-compliant string representation

Definition at line 120 of file dx_storage.cpp.

120 {
121 switch (type) {
122 case dx_detector_type::direct:
123 return "DIRECT";
124 case dx_detector_type::indirect:
125 return "INDIRECT";
126 case dx_detector_type::storage:
127 return "STORAGE";
128 case dx_detector_type::film:
129 return "FILM";
130 }
131 return "DIRECT";
132}

References direct, film, indirect, and storage.

◆ to_string() [5/41]

std::string_view kcenon::pacs::services::sop_classes::to_string ( dx_image_type type)
nodiscardnoexcept

Convert DX image type to string.

Parameters
typeThe image type
Returns
String representation

Definition at line 71 of file dx_storage.cpp.

71 {
72 switch (type) {
73 case dx_image_type::for_presentation:
74 return "FOR PRESENTATION";
75 case dx_image_type::for_processing:
76 return "FOR PROCESSING";
77 }
78 return "FOR PRESENTATION";
79}

References for_presentation, and for_processing.

◆ to_string() [6/41]

std::string_view kcenon::pacs::services::sop_classes::to_string ( dx_photometric_interpretation interp)
nodiscardnoexcept

Convert photometric interpretation enum to DICOM string.

Parameters
interpThe photometric interpretation
Returns
DICOM-compliant string representation

Definition at line 44 of file dx_storage.cpp.

44 {
45 switch (interp) {
46 case dx_photometric_interpretation::monochrome1:
47 return "MONOCHROME1";
48 case dx_photometric_interpretation::monochrome2:
49 return "MONOCHROME2";
50 }
51 return "MONOCHROME2";
52}

References monochrome1, and monochrome2.

◆ to_string() [7/41]

std::string_view kcenon::pacs::services::sop_classes::to_string ( dx_view_position position)
nodiscardnoexcept

Convert view position enum to DICOM string.

Parameters
positionThe view position
Returns
DICOM-compliant string representation

Definition at line 85 of file dx_storage.cpp.

85 {
86 switch (position) {
87 case dx_view_position::ap:
88 return "AP";
89 case dx_view_position::pa:
90 return "PA";
91 case dx_view_position::lateral:
92 return "LATERAL";
93 case dx_view_position::oblique:
94 return "OBLIQUE";
95 case dx_view_position::other:
96 return "";
97 }
98 return "";
99}

References ap, lateral, oblique, other, and pa.

◆ to_string() [8/41]

std::string_view kcenon::pacs::services::sop_classes::to_string ( mg_image_type type)
nodiscardnoexcept

Convert mammography image type to string.

Parameters
typeThe image type
Returns
String representation

Definition at line 198 of file mg_storage.cpp.

198 {
199 switch (type) {
200 case mg_image_type::for_presentation: return "FOR PRESENTATION";
201 case mg_image_type::for_processing: return "FOR PROCESSING";
202 }
203 return "";
204}

References for_presentation, and for_processing.

◆ to_string() [9/41]

std::string_view kcenon::pacs::services::sop_classes::to_string ( mg_view_position position)
nodiscardnoexcept

Convert mammography view position enum to DICOM string.

Parameters
positionThe view position
Returns
DICOM-compliant string representation

Definition at line 70 of file mg_storage.cpp.

70 {
71 switch (position) {
72 case mg_view_position::cc: return "CC";
73 case mg_view_position::mlo: return "MLO";
74 case mg_view_position::ml: return "ML";
75 case mg_view_position::lm: return "LM";
76 case mg_view_position::xccl: return "XCCL";
77 case mg_view_position::xccm: return "XCCM";
78 case mg_view_position::fb: return "FB";
79 case mg_view_position::sio: return "SIO";
80 case mg_view_position::iso: return "ISO";
81 case mg_view_position::cv: return "CV";
82 case mg_view_position::at: return "AT";
83 case mg_view_position::spot: return "SPOT";
84 case mg_view_position::mag: return "MAG";
85 case mg_view_position::spot_mag: return "SPOT MAG";
86 case mg_view_position::rl: return "RL";
87 case mg_view_position::rm: return "RM";
88 case mg_view_position::rs: return "RS";
89 case mg_view_position::ri: return "RI";
90 case mg_view_position::tangen: return "TAN";
91 case mg_view_position::implant: return "ID";
92 case mg_view_position::id: return "ID";
93 case mg_view_position::other: return "";
94 }
95 return "";
96}

References at, cc, cv, fb, id, implant, iso, lm, mag, ml, mlo, other, ri, rl, rm, rs, sio, spot, spot_mag, tangen, xccl, and xccm.

◆ to_string() [10/41]

std::string_view kcenon::pacs::services::sop_classes::to_string ( nm_collimator_type collimator)
nodiscardnoexcept

Convert collimator type to DICOM string.

Parameters
collimatorThe collimator type
Returns
DICOM code string

Definition at line 184 of file nm_storage.cpp.

184 {
185 switch (collimator) {
186 case nm_collimator_type::parallel:
187 return "PARA";
188 case nm_collimator_type::fan_beam:
189 return "FANB";
190 case nm_collimator_type::cone_beam:
191 return "CONE";
192 case nm_collimator_type::pinhole:
193 return "PINH";
194 case nm_collimator_type::diverging:
195 return "DIVG";
196 case nm_collimator_type::converging:
197 return "CVGB";
198 case nm_collimator_type::none:
199 return "NONE";
200 }
201 return "PARA";
202}

References cone_beam, converging, diverging, fan_beam, none, parallel, and pinhole.

◆ to_string() [11/41]

std::string_view kcenon::pacs::services::sop_classes::to_string ( nm_photometric_interpretation interp)
nodiscardnoexcept

Convert photometric interpretation enum to DICOM string.

Parameters
interpThe photometric interpretation
Returns
DICOM-compliant string representation

Definition at line 42 of file nm_storage.cpp.

42 {
43 switch (interp) {
44 case nm_photometric_interpretation::monochrome2:
45 return "MONOCHROME2";
46 case nm_photometric_interpretation::palette_color:
47 return "PALETTE COLOR";
48 }
49 return "MONOCHROME2";
50}

References monochrome2, and palette_color.

◆ to_string() [12/41]

std::string_view kcenon::pacs::services::sop_classes::to_string ( nm_radioisotope isotope)
nodiscardnoexcept

Get radioisotope name string.

Parameters
isotopeThe radioisotope type
Returns
Human-readable name

Definition at line 233 of file nm_storage.cpp.

233 {
234 switch (isotope) {
235 case nm_radioisotope::tc99m:
236 return "Tc-99m";
237 case nm_radioisotope::i131:
238 return "I-131";
239 case nm_radioisotope::i123:
240 return "I-123";
241 case nm_radioisotope::tl201:
242 return "Tl-201";
243 case nm_radioisotope::ga67:
244 return "Ga-67";
245 case nm_radioisotope::in111:
246 return "In-111";
247 case nm_radioisotope::f18:
248 return "F-18";
249 case nm_radioisotope::other:
250 return "Other";
251 }
252 return "Other";
253}

References f18, ga67, i123, i131, in111, other, tc99m, and tl201.

◆ to_string() [13/41]

std::string_view kcenon::pacs::services::sop_classes::to_string ( nm_type_of_data type)
nodiscardnoexcept

Convert NM type of data to DICOM string.

Parameters
typeThe type of data
Returns
DICOM-compliant string representation

Definition at line 130 of file nm_storage.cpp.

130 {
131 switch (type) {
132 case nm_type_of_data::static_image:
133 return "STATIC";
134 case nm_type_of_data::dynamic:
135 return "DYNAMIC";
136 case nm_type_of_data::gated:
137 return "GATED";
138 case nm_type_of_data::whole_body:
139 return "WHOLE BODY";
140 case nm_type_of_data::recon_tomo:
141 return "RECON TOMO";
142 case nm_type_of_data::recon_gated_tomo:
143 return "RECON GATED TOMO";
144 case nm_type_of_data::tomo:
145 return "TOMO";
146 case nm_type_of_data::gated_tomo:
147 return "GATED TOMO";
148 }
149 return "STATIC";
150}

References dynamic, gated, gated_tomo, recon_gated_tomo, recon_tomo, static_image, tomo, and whole_body.

◆ to_string() [14/41]

std::string_view kcenon::pacs::services::sop_classes::to_string ( nm_whole_body_technique technique)
nodiscardnoexcept

Convert whole body technique to string.

Parameters
techniqueThe whole body technique
Returns
DICOM code string

Definition at line 281 of file nm_storage.cpp.

281 {
282 switch (technique) {
283 case nm_whole_body_technique::single_pass:
284 return "1PASS";
285 case nm_whole_body_technique::multi_pass:
286 return "2PASS";
287 case nm_whole_body_technique::stepping:
288 return "STEP";
289 }
290 return "1PASS";
291}

References multi_pass, single_pass, and stepping.

◆ to_string() [15/41]

std::string_view kcenon::pacs::services::sop_classes::to_string ( pet_photometric_interpretation interp)
nodiscardnoexcept

Convert photometric interpretation enum to DICOM string.

Parameters
interpThe photometric interpretation
Returns
DICOM-compliant string representation

Definition at line 42 of file pet_storage.cpp.

42 {
43 switch (interp) {
44 case pet_photometric_interpretation::monochrome2:
45 return "MONOCHROME2";
46 }
47 return "MONOCHROME2";
48}

References monochrome2.

◆ to_string() [16/41]

std::string_view kcenon::pacs::services::sop_classes::to_string ( pet_radiotracer tracer)
nodiscardnoexcept

Get radiotracer name string.

Parameters
tracerThe radiotracer type
Returns
Human-readable name

Definition at line 229 of file pet_storage.cpp.

229 {
230 switch (tracer) {
231 case pet_radiotracer::fdg:
232 return "18F-FDG";
233 case pet_radiotracer::naf:
234 return "18F-NaF";
235 case pet_radiotracer::flt:
236 return "18F-FLT";
237 case pet_radiotracer::fdopa:
238 return "18F-FDOPA";
239 case pet_radiotracer::ammonia:
240 return "13N-Ammonia";
241 case pet_radiotracer::rubidium:
242 return "82Rb";
243 case pet_radiotracer::gallium_dotatate:
244 return "68Ga-DOTATATE";
245 case pet_radiotracer::psma:
246 return "PSMA";
247 case pet_radiotracer::other:
248 return "Other";
249 }
250 return "Other";
251}

References ammonia, fdg, fdopa, flt, gallium_dotatate, naf, other, psma, and rubidium.

◆ to_string() [17/41]

std::string_view kcenon::pacs::services::sop_classes::to_string ( pet_reconstruction_type recon)
nodiscardnoexcept

Convert PET reconstruction type to string.

Parameters
reconThe reconstruction type
Returns
String representation

Definition at line 136 of file pet_storage.cpp.

136 {
137 switch (recon) {
138 case pet_reconstruction_type::fbp:
139 return "FBP";
140 case pet_reconstruction_type::osem:
141 return "OSEM";
142 case pet_reconstruction_type::mlem:
143 return "MLEM";
144 case pet_reconstruction_type::tof_osem:
145 return "TOF-OSEM";
146 case pet_reconstruction_type::psf_osem:
147 return "PSF-OSEM";
148 case pet_reconstruction_type::other:
149 return "OTHER";
150 }
151 return "OTHER";
152}

References fbp, mlem, osem, other, psf_osem, and tof_osem.

◆ to_string() [18/41]

std::string_view kcenon::pacs::services::sop_classes::to_string ( pet_units units)
nodiscardnoexcept

Convert PET units to DICOM string.

Parameters
unitsThe units type
Returns
DICOM-compliant string representation

Definition at line 178 of file pet_storage.cpp.

178 {
179 switch (units) {
180 case pet_units::cnts:
181 return "CNTS";
182 case pet_units::bqml:
183 return "BQML";
184 case pet_units::gml:
185 return "GML";
186 case pet_units::suv_bw:
187 return "SUV";
188 case pet_units::suv_lbm:
189 return "SUL";
190 case pet_units::suv_bsa:
191 return "SUV_BSA";
192 case pet_units::percent_id_gram:
193 return "%ID/G";
194 case pet_units::other:
195 return "OTHER";
196 }
197 return "OTHER";
198}

References bqml, cnts, gml, other, percent_id_gram, suv_bsa, suv_bw, and suv_lbm.

◆ to_string() [19/41]

std::string_view kcenon::pacs::services::sop_classes::to_string ( rt_beam_type type)
nodiscardnoexcept

Convert RT beam type to DICOM string.

Parameters
typeThe beam type
Returns
DICOM-compliant string representation

Definition at line 497 of file rt_storage.cpp.

497 {
498 switch (type) {
499 case rt_beam_type::static_beam:
500 return "STATIC";
501 case rt_beam_type::dynamic:
502 return "DYNAMIC";
503 }
504 return "STATIC";
505}

References dynamic, and static_beam.

◆ to_string() [20/41]

std::string_view kcenon::pacs::services::sop_classes::to_string ( rt_dose_summation_type type)
nodiscardnoexcept

Convert RT dose summation type to DICOM string.

Parameters
typeThe dose summation type
Returns
DICOM-compliant string representation

Definition at line 261 of file rt_storage.cpp.

261 {
262 switch (type) {
263 case rt_dose_summation_type::plan:
264 return "PLAN";
265 case rt_dose_summation_type::multi_plan:
266 return "MULTI_PLAN";
267 case rt_dose_summation_type::fraction:
268 return "FRACTION";
269 case rt_dose_summation_type::beam:
270 return "BEAM";
271 case rt_dose_summation_type::brachy:
272 return "BRACHY";
273 case rt_dose_summation_type::fraction_session:
274 return "FRACTION_SESSION";
275 case rt_dose_summation_type::beam_session:
276 return "BEAM_SESSION";
277 case rt_dose_summation_type::brachy_session:
278 return "BRACHY_SESSION";
279 case rt_dose_summation_type::control_point:
280 return "CONTROL_POINT";
281 case rt_dose_summation_type::record:
282 return "RECORD";
283 }
284 return "PLAN";
285}

References beam, beam_session, brachy, brachy_session, control_point, fraction, fraction_session, multi_plan, plan, and record.

◆ to_string() [21/41]

std::string_view kcenon::pacs::services::sop_classes::to_string ( rt_dose_type type)
nodiscardnoexcept

Convert RT dose type to DICOM string.

Parameters
typeThe dose type
Returns
DICOM-compliant string representation

Definition at line 235 of file rt_storage.cpp.

235 {
236 switch (type) {
237 case rt_dose_type::physical:
238 return "PHYSICAL";
239 case rt_dose_type::effective:
240 return "EFFECTIVE";
241 case rt_dose_type::error:
242 return "ERROR";
243 }
244 return "PHYSICAL";
245}

References effective, error, and physical.

◆ to_string() [22/41]

std::string_view kcenon::pacs::services::sop_classes::to_string ( rt_dose_units units)
nodiscardnoexcept

Convert RT dose units to DICOM string.

Parameters
unitsThe dose units
Returns
DICOM-compliant string representation

Definition at line 325 of file rt_storage.cpp.

325 {
326 switch (units) {
327 case rt_dose_units::gy:
328 return "GY";
329 case rt_dose_units::relative:
330 return "RELATIVE";
331 }
332 return "GY";
333}

References gy, and relative.

◆ to_string() [23/41]

std::string_view kcenon::pacs::services::sop_classes::to_string ( rt_image_plane plane)
nodiscardnoexcept

Convert RT image plane to DICOM string.

Parameters
planeThe image plane type
Returns
DICOM-compliant string representation

Definition at line 597 of file rt_storage.cpp.

597 {
598 switch (plane) {
599 case rt_image_plane::axial:
600 return "AXIAL";
601 case rt_image_plane::localizer:
602 return "LOCALIZER";
603 case rt_image_plane::drr:
604 return "DRR";
605 case rt_image_plane::portal:
606 return "PORTAL";
607 case rt_image_plane::fluence:
608 return "FLUENCE";
609 }
610 return "PORTAL";
611}

References axial, drr, fluence, localizer, and portal.

◆ to_string() [24/41]

std::string_view kcenon::pacs::services::sop_classes::to_string ( rt_plan_geometry geometry)
nodiscardnoexcept

Convert RT plan geometry to DICOM string.

Parameters
geometryThe plan geometry
Returns
DICOM-compliant string representation

Definition at line 214 of file rt_storage.cpp.

214 {
215 switch (geometry) {
216 case rt_plan_geometry::patient:
217 return "PATIENT";
218 case rt_plan_geometry::treatment_device:
219 return "TREATMENT_DEVICE";
220 }
221 return "PATIENT";
222}

References patient, and treatment_device.

◆ to_string() [25/41]

std::string_view kcenon::pacs::services::sop_classes::to_string ( rt_plan_intent intent)
nodiscardnoexcept

Convert RT plan intent to DICOM string.

Parameters
intentThe plan intent
Returns
DICOM-compliant string representation

Definition at line 165 of file rt_storage.cpp.

165 {
166 switch (intent) {
167 case rt_plan_intent::curative:
168 return "CURATIVE";
169 case rt_plan_intent::palliative:
170 return "PALLIATIVE";
171 case rt_plan_intent::prophylactic:
172 return "PROPHYLACTIC";
173 case rt_plan_intent::verification:
174 return "VERIFICATION";
175 case rt_plan_intent::machine_qa:
176 return "MACHINE_QA";
177 case rt_plan_intent::research:
178 return "RESEARCH";
179 case rt_plan_intent::service:
180 return "SERVICE";
181 }
182 return "CURATIVE";
183}

References curative, machine_qa, palliative, prophylactic, research, service, and verification.

◆ to_string() [26/41]

std::string_view kcenon::pacs::services::sop_classes::to_string ( rt_radiation_type type)
nodiscardnoexcept

Convert RT radiation type to DICOM string.

Parameters
typeThe radiation type
Returns
DICOM-compliant string representation

Definition at line 518 of file rt_storage.cpp.

518 {
519 switch (type) {
520 case rt_radiation_type::photon:
521 return "PHOTON";
522 case rt_radiation_type::electron:
523 return "ELECTRON";
524 case rt_radiation_type::neutron:
525 return "NEUTRON";
526 case rt_radiation_type::proton:
527 return "PROTON";
528 case rt_radiation_type::ion:
529 return "ION";
530 }
531 return "PHOTON";
532}

References electron, ion, neutron, photon, and proton.

◆ to_string() [27/41]

std::string_view kcenon::pacs::services::sop_classes::to_string ( rt_roi_generation_algorithm algorithm)
nodiscardnoexcept

Convert RT ROI generation algorithm to DICOM string.

Parameters
algorithmThe generation algorithm
Returns
DICOM-compliant string representation

Definition at line 470 of file rt_storage.cpp.

470 {
471 switch (algorithm) {
472 case rt_roi_generation_algorithm::automatic:
473 return "AUTOMATIC";
474 case rt_roi_generation_algorithm::semiautomatic:
475 return "SEMIAUTOMATIC";
476 case rt_roi_generation_algorithm::manual:
477 return "MANUAL";
478 }
479 return "MANUAL";
480}

References automatic, manual, and semiautomatic.

◆ to_string() [28/41]

std::string_view kcenon::pacs::services::sop_classes::to_string ( rt_roi_interpreted_type type)
nodiscardnoexcept

Convert RT ROI interpreted type to DICOM string.

Parameters
typeThe ROI interpreted type
Returns
DICOM-compliant string representation

Definition at line 346 of file rt_storage.cpp.

346 {
347 switch (type) {
348 case rt_roi_interpreted_type::external:
349 return "EXTERNAL";
350 case rt_roi_interpreted_type::ptv:
351 return "PTV";
352 case rt_roi_interpreted_type::ctv:
353 return "CTV";
354 case rt_roi_interpreted_type::gtv:
355 return "GTV";
356 case rt_roi_interpreted_type::organ:
357 return "ORGAN";
358 case rt_roi_interpreted_type::avoidance:
359 return "AVOIDANCE";
360 case rt_roi_interpreted_type::treated_volume:
361 return "TREATED_VOLUME";
362 case rt_roi_interpreted_type::irrad_volume:
363 return "IRRAD_VOLUME";
364 case rt_roi_interpreted_type::bolus:
365 return "BOLUS";
366 case rt_roi_interpreted_type::brachy_channel:
367 return "BRACHY_CHANNEL";
368 case rt_roi_interpreted_type::brachy_accessory:
369 return "BRACHY_ACCESSORY";
370 case rt_roi_interpreted_type::brachy_src_appl:
371 return "BRACHY_SRC_APPL";
372 case rt_roi_interpreted_type::brachy_chnl_shld:
373 return "BRACHY_CHNL_SHLD";
374 case rt_roi_interpreted_type::support:
375 return "SUPPORT";
376 case rt_roi_interpreted_type::fixation:
377 return "FIXATION";
378 case rt_roi_interpreted_type::dose_region:
379 return "DOSE_REGION";
380 case rt_roi_interpreted_type::contrast_agent:
381 return "CONTRAST_AGENT";
382 case rt_roi_interpreted_type::cavity:
383 return "CAVITY";
384 case rt_roi_interpreted_type::marker:
385 return "MARKER";
386 case rt_roi_interpreted_type::registration:
387 return "REGISTRATION";
388 case rt_roi_interpreted_type::isocenter:
389 return "ISOCENTER";
390 case rt_roi_interpreted_type::control_point:
391 return "CONTROL";
392 }
393 return "ORGAN";
394}

References avoidance, bolus, brachy_accessory, brachy_channel, brachy_chnl_shld, brachy_src_appl, cavity, contrast_agent, control_point, ctv, dose_region, external, fixation, gtv, irrad_volume, isocenter, marker, organ, ptv, registration, support, and treated_volume.

◆ to_string() [29/41]

std::string_view kcenon::pacs::services::sop_classes::to_string ( rt_treatment_delivery_type type)
nodiscardnoexcept

Convert RT treatment delivery type to DICOM string.

Parameters
typeThe treatment delivery type
Returns
DICOM-compliant string representation

Definition at line 557 of file rt_storage.cpp.

557 {
558 switch (type) {
559 case rt_treatment_delivery_type::treatment:
560 return "TREATMENT";
561 case rt_treatment_delivery_type::open_portfilm:
562 return "OPEN_PORTFILM";
563 case rt_treatment_delivery_type::trmt_portfilm:
564 return "TRMT_PORTFILM";
565 case rt_treatment_delivery_type::continuation:
566 return "CONTINUATION";
567 case rt_treatment_delivery_type::setup:
568 return "SETUP";
569 }
570 return "TREATMENT";
571}

References continuation, open_portfilm, setup, treatment, and trmt_portfilm.

◆ to_string() [30/41]

std::string_view kcenon::pacs::services::sop_classes::to_string ( segment_algorithm_type type)
nodiscardnoexcept

Convert segment algorithm type to DICOM string.

Parameters
typeThe segment algorithm type
Returns
DICOM-compliant string representation

Definition at line 90 of file seg_storage.cpp.

90 {
91 switch (type) {
92 case segment_algorithm_type::automatic:
93 return "AUTOMATIC";
94 case segment_algorithm_type::semiautomatic:
95 return "SEMIAUTOMATIC";
96 case segment_algorithm_type::manual:
97 return "MANUAL";
98 }
99 return "MANUAL";
100}

References automatic, manual, and semiautomatic.

◆ to_string() [31/41]

std::string_view kcenon::pacs::services::sop_classes::to_string ( segmentation_fractional_type type)
nodiscardnoexcept

Convert segmentation fractional type to DICOM string.

Parameters
typeThe segmentation fractional type
Returns
DICOM-compliant string representation

Definition at line 68 of file seg_storage.cpp.

68 {
69 switch (type) {
70 case segmentation_fractional_type::probability:
71 return "PROBABILITY";
72 case segmentation_fractional_type::occupancy:
73 return "OCCUPANCY";
74 }
75 return "PROBABILITY";
76}

References occupancy, and probability.

◆ to_string() [32/41]

std::string_view kcenon::pacs::services::sop_classes::to_string ( segmentation_type type)
nodiscardnoexcept

Convert segmentation type to DICOM string.

Parameters
typeThe segmentation type
Returns
DICOM-compliant string representation

Definition at line 43 of file seg_storage.cpp.

43 {
44 switch (type) {
45 case segmentation_type::binary:
46 return "BINARY";
47 case segmentation_type::fractional:
48 return "FRACTIONAL";
49 }
50 return "BINARY";
51}

References binary, and fractional.

◆ to_string() [33/41]

std::string_view kcenon::pacs::services::sop_classes::to_string ( sr_completion_flag flag)
nodiscardnoexcept

Convert SR completion flag to DICOM string.

Parameters
flagThe completion flag
Returns
DICOM-compliant string representation

Definition at line 195 of file sr_storage.cpp.

195 {
196 switch (flag) {
197 case sr_completion_flag::partial:
198 return "PARTIAL";
199 case sr_completion_flag::complete:
200 return "COMPLETE";
201 }
202 return "PARTIAL";
203}

References complete, and partial.

◆ to_string() [34/41]

std::string_view kcenon::pacs::services::sop_classes::to_string ( sr_document_type type)
nodiscardnoexcept

Get human-readable name for SR document type.

Parameters
typeThe SR document type
Returns
Human-readable type name

Definition at line 69 of file sr_storage.cpp.

69 {
70 switch (type) {
71 case sr_document_type::basic_text:
72 return "Basic Text SR";
73 case sr_document_type::enhanced:
74 return "Enhanced SR";
75 case sr_document_type::comprehensive:
76 return "Comprehensive SR";
77 case sr_document_type::comprehensive_3d:
78 return "Comprehensive 3D SR";
79 case sr_document_type::extensible:
80 return "Extensible SR";
81 case sr_document_type::key_object_selection:
82 return "Key Object Selection";
83 case sr_document_type::cad:
84 return "CAD SR";
85 case sr_document_type::dose_report:
86 return "Dose Report SR";
87 case sr_document_type::procedure_log:
88 return "Procedure Log SR";
89 case sr_document_type::other:
90 return "Other SR";
91 }
92 return "Unknown SR";
93}

References basic_text, cad, comprehensive, comprehensive_3d, dose_report, enhanced, extensible, key_object_selection, other, and procedure_log.

◆ to_string() [35/41]

std::string_view kcenon::pacs::services::sop_classes::to_string ( sr_relationship_type type)
nodiscardnoexcept

Convert SR relationship type to DICOM string.

Parameters
typeThe SR relationship type
Returns
DICOM-compliant string representation

Definition at line 158 of file sr_storage.cpp.

158 {
159 switch (type) {
160 case sr_relationship_type::contains:
161 return "CONTAINS";
162 case sr_relationship_type::has_obs_context:
163 return "HAS OBS CONTEXT";
164 case sr_relationship_type::has_acq_context:
165 return "HAS ACQ CONTEXT";
166 case sr_relationship_type::has_concept_mod:
167 return "HAS CONCEPT MOD";
168 case sr_relationship_type::has_properties:
169 return "HAS PROPERTIES";
170 case sr_relationship_type::inferred_from:
171 return "INFERRED FROM";
172 case sr_relationship_type::selected_from:
173 return "SELECTED FROM";
174 case sr_relationship_type::unknown:
175 return "UNKNOWN";
176 }
177 return "UNKNOWN";
178}

References contains, has_acq_context, has_concept_mod, has_obs_context, has_properties, inferred_from, selected_from, and unknown.

◆ to_string() [36/41]

std::string_view kcenon::pacs::services::sop_classes::to_string ( sr_value_type type)
nodiscardnoexcept

Convert SR value type to DICOM string.

Parameters
typeThe SR value type
Returns
DICOM-compliant string representation

Definition at line 122 of file sr_storage.cpp.

122 {
123 auto index = static_cast<size_t>(type);
124 if (index < std::size(value_type_strings)) {
125 return value_type_strings[index];
126 }
127 return "UNKNOWN";
128}

◆ to_string() [37/41]

std::string_view kcenon::pacs::services::sop_classes::to_string ( sr_verification_flag flag)
nodiscardnoexcept

Convert SR verification flag to DICOM string.

Parameters
flagThe verification flag
Returns
DICOM-compliant string representation

Definition at line 212 of file sr_storage.cpp.

212 {
213 switch (flag) {
214 case sr_verification_flag::unverified:
215 return "UNVERIFIED";
216 case sr_verification_flag::verified:
217 return "VERIFIED";
218 }
219 return "UNVERIFIED";
220}

References unverified, and verified.

◆ to_string() [38/41]

std::string_view kcenon::pacs::services::sop_classes::to_string ( us_photometric_interpretation interp)
nodiscardnoexcept

Convert photometric interpretation enum to DICOM string.

Parameters
interpThe photometric interpretation
Returns
DICOM-compliant string representation

Definition at line 59 of file us_storage.cpp.

59 {
60 auto index = static_cast<size_t>(interp);
61 if (index < std::size(photometric_strings)) {
62 return photometric_strings[index];
63 }
64 return "MONOCHROME2";
65}

◆ to_string() [39/41]

std::string_view kcenon::pacs::services::sop_classes::to_string ( waveform_type type)
nodiscardnoexcept

Get human-readable name for waveform type.

Parameters
typeThe waveform type
Returns
Human-readable type name

Definition at line 55 of file waveform_storage.cpp.

55 {
56 switch (type) {
57 case waveform_type::ecg_12lead: return "12-Lead ECG";
58 case waveform_type::ecg_general: return "General ECG";
59 case waveform_type::ecg_ambulatory: return "Ambulatory ECG";
60 case waveform_type::hemodynamic: return "Hemodynamic";
61 case waveform_type::cardiac_ep: return "Cardiac Electrophysiology";
62 case waveform_type::audio_basic: return "Basic Voice Audio";
63 case waveform_type::audio_general: return "General Audio";
64 case waveform_type::arterial_pulse: return "Arterial Pulse";
65 case waveform_type::respiratory: return "Respiratory";
66 case waveform_type::respiratory_multi: return "Multi-channel Respiratory";
67 case waveform_type::eeg_routine: return "Routine Scalp EEG";
68 case waveform_type::emg: return "Electromyogram";
69 case waveform_type::eog: return "Electrooculogram";
70 case waveform_type::eeg_sleep: return "Sleep EEG";
71 case waveform_type::body_position: return "Body Position";
72 case waveform_type::presentation_state: return "Waveform Presentation State";
73 case waveform_type::annotation: return "Waveform Annotation";
74 case waveform_type::unknown: return "Unknown";
75 }
76 return "Unknown";
77}

References annotation, arterial_pulse, audio_basic, audio_general, body_position, cardiac_ep, ecg_12lead, ecg_ambulatory, ecg_general, eeg_routine, eeg_sleep, emg, eog, hemodynamic, presentation_state, respiratory, respiratory_multi, and unknown.

◆ to_string() [40/41]

std::string_view kcenon::pacs::services::sop_classes::to_string ( xa_photometric_interpretation interp)
nodiscardnoexcept

Convert photometric interpretation enum to DICOM string.

Parameters
interpThe photometric interpretation
Returns
DICOM-compliant string representation

Definition at line 41 of file xa_storage.cpp.

41 {
42 switch (interp) {
43 case xa_photometric_interpretation::monochrome1:
44 return "MONOCHROME1";
45 case xa_photometric_interpretation::monochrome2:
46 return "MONOCHROME2";
47 }
48 return "MONOCHROME2";
49}

References monochrome1, and monochrome2.

◆ to_string() [41/41]

std::string_view kcenon::pacs::services::sop_classes::to_string ( xa_positioner_motion motion)
nodiscardnoexcept

Convert positioner motion enum to DICOM string.

Parameters
motionThe positioner motion type
Returns
DICOM-compliant string representation

Definition at line 166 of file xa_storage.cpp.

166 {
167 switch (motion) {
168 case xa_positioner_motion::stationary:
169 return "STATIONARY";
170 case xa_positioner_motion::dynamic:
171 return "DYNAMIC";
172 }
173 return "STATIONARY";
174}

References dynamic, and stationary.

Variable Documentation

◆ acquisition_context_sr_storage_uid

std::string_view kcenon::pacs::services::sop_classes::acquisition_context_sr_storage_uid
inlineconstexpr
Initial value:
=
"1.2.840.10008.5.1.4.1.1.88.71"

Acquisition Context SR Storage SOP Class UID.

Definition at line 83 of file sr_storage.h.

◆ ambulatory_ecg_storage_uid

std::string_view kcenon::pacs::services::sop_classes::ambulatory_ecg_storage_uid
inlineconstexpr
Initial value:
=
"1.2.840.10008.5.1.4.1.1.9.1.3"

Ambulatory ECG Waveform Storage SOP Class UID.

Definition at line 45 of file waveform_storage.h.

Referenced by get_waveform_type().

◆ arterial_pulse_waveform_storage_uid

std::string_view kcenon::pacs::services::sop_classes::arterial_pulse_waveform_storage_uid
inlineconstexpr
Initial value:
=
"1.2.840.10008.5.1.4.1.1.9.5.1"

Arterial Pulse Waveform Storage SOP Class UID.

Definition at line 65 of file waveform_storage.h.

Referenced by get_waveform_type().

◆ basic_text_sr_storage_uid

std::string_view kcenon::pacs::services::sop_classes::basic_text_sr_storage_uid
inlineconstexpr
Initial value:
=
"1.2.840.10008.5.1.4.1.1.88.11"

Basic Text SR Storage SOP Class UID.

Definition at line 38 of file sr_storage.h.

Referenced by get_recommended_sr_template(), get_sr_document_type(), and kcenon::pacs::services::sop_class_registry::register_sr_sop_classes().

◆ basic_voice_audio_storage_uid

std::string_view kcenon::pacs::services::sop_classes::basic_voice_audio_storage_uid
inlineconstexpr
Initial value:
=
"1.2.840.10008.5.1.4.1.1.9.4.1"

Basic Voice Audio Waveform Storage SOP Class UID.

Definition at line 57 of file waveform_storage.h.

Referenced by get_waveform_type().

◆ body_position_waveform_storage_uid

std::string_view kcenon::pacs::services::sop_classes::body_position_waveform_storage_uid
inlineconstexpr
Initial value:
=
"1.2.840.10008.5.1.4.1.1.9.8.1"

Body Position Waveform Storage SOP Class UID.

Definition at line 93 of file waveform_storage.h.

Referenced by get_waveform_type().

◆ breast_projection_image_storage_for_presentation_uid

std::string_view kcenon::pacs::services::sop_classes::breast_projection_image_storage_for_presentation_uid
inlineconstexpr
Initial value:
=
"1.2.840.10008.5.1.4.1.1.13.1.4"

Breast Projection X-Ray Image Storage - For Presentation SOP Class UID.

Definition at line 58 of file mg_storage.h.

◆ breast_projection_image_storage_for_processing_uid

std::string_view kcenon::pacs::services::sop_classes::breast_projection_image_storage_for_processing_uid
inlineconstexpr
Initial value:
=
"1.2.840.10008.5.1.4.1.1.13.1.5"

Breast Projection X-Ray Image Storage - For Processing SOP Class UID.

Definition at line 62 of file mg_storage.h.

◆ breast_tomosynthesis_image_storage_uid

std::string_view kcenon::pacs::services::sop_classes::breast_tomosynthesis_image_storage_uid
inlineconstexpr
Initial value:
=
"1.2.840.10008.5.1.4.1.1.13.1.3"

Breast Tomosynthesis Image Storage SOP Class UID.

Definition at line 54 of file mg_storage.h.

◆ cardiac_ep_waveform_storage_uid

std::string_view kcenon::pacs::services::sop_classes::cardiac_ep_waveform_storage_uid
inlineconstexpr
Initial value:
=
"1.2.840.10008.5.1.4.1.1.9.3.1"

Basic Cardiac Electrophysiology Waveform Storage SOP Class UID.

Definition at line 53 of file waveform_storage.h.

Referenced by get_waveform_type().

◆ chest_cad_sr_storage_uid

std::string_view kcenon::pacs::services::sop_classes::chest_cad_sr_storage_uid
inlineconstexpr
Initial value:
=
"1.2.840.10008.5.1.4.1.1.88.65"

Chest CAD SR Storage SOP Class UID.

Definition at line 67 of file sr_storage.h.

Referenced by get_recommended_sr_template(), get_sr_document_type(), and kcenon::pacs::services::sop_class_registry::register_sr_sop_classes().

◆ colon_cad_sr_storage_uid

std::string_view kcenon::pacs::services::sop_classes::colon_cad_sr_storage_uid
inlineconstexpr
Initial value:
=
"1.2.840.10008.5.1.4.1.1.88.69"

Colon CAD SR Storage SOP Class UID.

Definition at line 71 of file sr_storage.h.

Referenced by get_recommended_sr_template(), get_sr_document_type(), and kcenon::pacs::services::sop_class_registry::register_sr_sop_classes().

◆ comprehensive_3d_sr_storage_uid

std::string_view kcenon::pacs::services::sop_classes::comprehensive_3d_sr_storage_uid
inlineconstexpr
Initial value:
=
"1.2.840.10008.5.1.4.1.1.88.34"

Comprehensive 3D SR Storage SOP Class UID.

Definition at line 50 of file sr_storage.h.

Referenced by get_sr_document_type(), and kcenon::pacs::services::sop_class_registry::register_sr_sop_classes().

◆ comprehensive_sr_storage_uid

std::string_view kcenon::pacs::services::sop_classes::comprehensive_sr_storage_uid
inlineconstexpr
Initial value:
=
"1.2.840.10008.5.1.4.1.1.88.33"

Comprehensive SR Storage SOP Class UID.

Definition at line 46 of file sr_storage.h.

Referenced by get_recommended_sr_template(), get_sr_document_type(), and kcenon::pacs::services::sop_class_registry::register_sr_sop_classes().

◆ ct_for_processing_image_storage_uid

std::string_view kcenon::pacs::services::sop_classes::ct_for_processing_image_storage_uid
inlineconstexpr
Initial value:
=
"1.2.840.10008.5.1.4.1.1.2.2"

CT For Processing Image Storage SOP Class UID Multi-energy/spectral CT basis material decomposition images.

Definition at line 44 of file ct_storage.h.

Referenced by get_ct_storage_sop_classes(), is_ct_storage_sop_class(), kcenon::pacs::services::validation::ct_processing_iod_validator::quick_check(), and kcenon::pacs::services::validation::ct_processing_iod_validator::validate_sop_common_module().

◆ ct_image_storage_uid

std::string_view kcenon::pacs::services::sop_classes::ct_image_storage_uid
inlineconstexpr
Initial value:
=
"1.2.840.10008.5.1.4.1.1.2"

CT Image Storage SOP Class UID.

Definition at line 35 of file ct_storage.h.

Referenced by get_ct_storage_sop_classes(), and is_ct_storage_sop_class().

◆ dx_image_storage_for_presentation_uid

std::string_view kcenon::pacs::services::sop_classes::dx_image_storage_for_presentation_uid
inlineconstexpr
Initial value:
=
"1.2.840.10008.5.1.4.1.1.1.1"

Digital X-Ray Image Storage - For Presentation SOP Class UID Used for images ready for display and clinical review.

Definition at line 44 of file dx_storage.h.

Referenced by kcenon::pacs::services::sop_class_registry::register_dx_sop_classes().

◆ dx_image_storage_for_processing_uid

std::string_view kcenon::pacs::services::sop_classes::dx_image_storage_for_processing_uid
inlineconstexpr
Initial value:
=
"1.2.840.10008.5.1.4.1.1.1.1.1"

Digital X-Ray Image Storage - For Processing SOP Class UID Used for raw detector data requiring additional processing.

Definition at line 49 of file dx_storage.h.

Referenced by kcenon::pacs::services::sop_class_registry::register_dx_sop_classes().

◆ emg_waveform_storage_uid

std::string_view kcenon::pacs::services::sop_classes::emg_waveform_storage_uid
inlineconstexpr
Initial value:
=
"1.2.840.10008.5.1.4.1.1.9.7.2"

Electromyogram Waveform Storage SOP Class UID.

Definition at line 81 of file waveform_storage.h.

Referenced by get_waveform_type().

◆ enhanced_ct_image_storage_uid

std::string_view kcenon::pacs::services::sop_classes::enhanced_ct_image_storage_uid
inlineconstexpr
Initial value:
=
"1.2.840.10008.5.1.4.1.1.2.1"

Enhanced CT Image Storage SOP Class UID.

Definition at line 39 of file ct_storage.h.

Referenced by get_ct_storage_sop_classes(), and is_ct_storage_sop_class().

◆ enhanced_mr_image_storage_uid

std::string_view kcenon::pacs::services::sop_classes::enhanced_mr_image_storage_uid
inlineconstexpr
Initial value:
=
"1.2.840.10008.5.1.4.1.1.4.1"

Enhanced MR Image Storage SOP Class UID.

Definition at line 38 of file mr_storage.h.

Referenced by get_mr_storage_sop_classes(), and is_mr_storage_sop_class().

◆ enhanced_pet_image_storage_uid

std::string_view kcenon::pacs::services::sop_classes::enhanced_pet_image_storage_uid
inlineconstexpr
Initial value:
=
"1.2.840.10008.5.1.4.1.1.130"

Enhanced PET Image Storage SOP Class UID.

Definition at line 41 of file pet_storage.h.

Referenced by kcenon::pacs::services::sop_class_registry::register_pet_sop_classes().

◆ enhanced_sr_storage_uid

std::string_view kcenon::pacs::services::sop_classes::enhanced_sr_storage_uid
inlineconstexpr
Initial value:
=
"1.2.840.10008.5.1.4.1.1.88.22"

Enhanced SR Storage SOP Class UID.

Definition at line 42 of file sr_storage.h.

Referenced by get_recommended_sr_template(), get_sr_document_type(), and kcenon::pacs::services::sop_class_registry::register_sr_sop_classes().

◆ enhanced_xa_image_storage_uid

std::string_view kcenon::pacs::services::sop_classes::enhanced_xa_image_storage_uid
inlineconstexpr
Initial value:
=
"1.2.840.10008.5.1.4.1.1.12.1.1"

Enhanced XA Image Storage SOP Class UID (enhanced IOD)

Definition at line 51 of file xa_storage.h.

Referenced by kcenon::pacs::services::sop_class_registry::register_xa_sop_classes().

◆ enhanced_xray_radiation_dose_sr_storage_uid

std::string_view kcenon::pacs::services::sop_classes::enhanced_xray_radiation_dose_sr_storage_uid
inlineconstexpr
Initial value:
=
"1.2.840.10008.5.1.4.1.1.88.76"

Enhanced X-Ray Radiation Dose SR Storage SOP Class UID.

Definition at line 103 of file sr_storage.h.

Referenced by get_recommended_sr_template(), and get_sr_document_type().

◆ eog_waveform_storage_uid

std::string_view kcenon::pacs::services::sop_classes::eog_waveform_storage_uid
inlineconstexpr
Initial value:
=
"1.2.840.10008.5.1.4.1.1.9.7.3"

Electrooculogram Waveform Storage SOP Class UID.

Definition at line 85 of file waveform_storage.h.

Referenced by get_waveform_type().

◆ extensible_sr_storage_uid

std::string_view kcenon::pacs::services::sop_classes::extensible_sr_storage_uid
inlineconstexpr
Initial value:
=
"1.2.840.10008.5.1.4.1.1.88.35"

Extensible SR Storage SOP Class UID.

Definition at line 54 of file sr_storage.h.

Referenced by get_sr_document_type(), and kcenon::pacs::services::sop_class_registry::register_sr_sop_classes().

◆ general_audio_waveform_storage_uid

std::string_view kcenon::pacs::services::sop_classes::general_audio_waveform_storage_uid
inlineconstexpr
Initial value:
=
"1.2.840.10008.5.1.4.1.1.9.4.2"

General Audio Waveform Storage SOP Class UID.

Definition at line 61 of file waveform_storage.h.

Referenced by get_waveform_type().

◆ general_ecg_storage_uid

std::string_view kcenon::pacs::services::sop_classes::general_ecg_storage_uid
inlineconstexpr
Initial value:
=
"1.2.840.10008.5.1.4.1.1.9.1.2"

General ECG Waveform Storage SOP Class UID.

Definition at line 41 of file waveform_storage.h.

Referenced by get_waveform_type().

◆ heightmap_segmentation_storage_uid

std::string_view kcenon::pacs::services::sop_classes::heightmap_segmentation_storage_uid
inlineconstexpr

◆ hemodynamic_waveform_storage_uid

std::string_view kcenon::pacs::services::sop_classes::hemodynamic_waveform_storage_uid
inlineconstexpr
Initial value:
=
"1.2.840.10008.5.1.4.1.1.9.2.1"

Hemodynamic Waveform Storage SOP Class UID.

Definition at line 49 of file waveform_storage.h.

Referenced by get_waveform_type().

◆ intraoral_image_storage_for_presentation_uid

std::string_view kcenon::pacs::services::sop_classes::intraoral_image_storage_for_presentation_uid
inlineconstexpr
Initial value:
=
"1.2.840.10008.5.1.4.1.1.1.3"

Digital Intra-Oral X-Ray Image Storage - For Presentation.

Definition at line 71 of file dx_storage.h.

Referenced by kcenon::pacs::services::sop_class_registry::register_dx_sop_classes().

◆ intraoral_image_storage_for_processing_uid

std::string_view kcenon::pacs::services::sop_classes::intraoral_image_storage_for_processing_uid
inlineconstexpr
Initial value:
=
"1.2.840.10008.5.1.4.1.1.1.3.1"

Digital Intra-Oral X-Ray Image Storage - For Processing.

Definition at line 75 of file dx_storage.h.

Referenced by kcenon::pacs::services::sop_class_registry::register_dx_sop_classes().

◆ key_object_selection_document_storage_uid

std::string_view kcenon::pacs::services::sop_classes::key_object_selection_document_storage_uid
inlineconstexpr

◆ label_map_segmentation_storage_uid

std::string_view kcenon::pacs::services::sop_classes::label_map_segmentation_storage_uid
inlineconstexpr

◆ legacy_converted_enhanced_pet_image_storage_uid

std::string_view kcenon::pacs::services::sop_classes::legacy_converted_enhanced_pet_image_storage_uid
inlineconstexpr
Initial value:
=
"1.2.840.10008.5.1.4.1.1.128.1"

Legacy Converted Enhanced PET Image Storage SOP Class UID.

Definition at line 45 of file pet_storage.h.

Referenced by kcenon::pacs::services::sop_class_registry::register_pet_sop_classes().

◆ mammography_cad_sr_storage_uid

std::string_view kcenon::pacs::services::sop_classes::mammography_cad_sr_storage_uid
inlineconstexpr
Initial value:
=
"1.2.840.10008.5.1.4.1.1.88.50"

Mammography CAD SR Storage SOP Class UID.

Definition at line 63 of file sr_storage.h.

Referenced by get_recommended_sr_template(), get_sr_document_type(), and kcenon::pacs::services::sop_class_registry::register_sr_sop_classes().

◆ mammography_image_storage_for_presentation_uid

std::string_view kcenon::pacs::services::sop_classes::mammography_image_storage_for_presentation_uid
inlineconstexpr
Initial value:
=
"1.2.840.10008.5.1.4.1.1.1.2"

Digital Mammography X-Ray Image Storage - For Presentation.

Definition at line 58 of file dx_storage.h.

Referenced by kcenon::pacs::services::sop_class_registry::register_dx_sop_classes().

◆ mammography_image_storage_for_processing_uid

std::string_view kcenon::pacs::services::sop_classes::mammography_image_storage_for_processing_uid
inlineconstexpr
Initial value:
=
"1.2.840.10008.5.1.4.1.1.1.2.1"

Digital Mammography X-Ray Image Storage - For Processing.

Definition at line 62 of file dx_storage.h.

Referenced by kcenon::pacs::services::sop_class_registry::register_dx_sop_classes().

◆ mg_image_storage_for_presentation_uid

std::string_view kcenon::pacs::services::sop_classes::mg_image_storage_for_presentation_uid
inlineconstexpr
Initial value:
=
"1.2.840.10008.5.1.4.1.1.1.2"

Digital Mammography X-Ray Image Storage - For Presentation SOP Class UID.

Definition at line 46 of file mg_storage.h.

◆ mg_image_storage_for_processing_uid

std::string_view kcenon::pacs::services::sop_classes::mg_image_storage_for_processing_uid
inlineconstexpr
Initial value:
=
"1.2.840.10008.5.1.4.1.1.1.2.1"

Digital Mammography X-Ray Image Storage - For Processing SOP Class UID.

Definition at line 50 of file mg_storage.h.

◆ mr_image_storage_uid

std::string_view kcenon::pacs::services::sop_classes::mr_image_storage_uid
inlineconstexpr
Initial value:
=
"1.2.840.10008.5.1.4.1.1.4"

MR Image Storage SOP Class UID.

Definition at line 34 of file mr_storage.h.

Referenced by get_mr_storage_sop_classes(), and is_mr_storage_sop_class().

◆ multichannel_respiratory_waveform_storage_uid

std::string_view kcenon::pacs::services::sop_classes::multichannel_respiratory_waveform_storage_uid
inlineconstexpr
Initial value:
=
"1.2.840.10008.5.1.4.1.1.9.6.2"

Multi-channel Respiratory Waveform Storage SOP Class UID.

Definition at line 73 of file waveform_storage.h.

Referenced by get_waveform_type().

◆ nm_image_storage_retired_uid

std::string_view kcenon::pacs::services::sop_classes::nm_image_storage_retired_uid
inlineconstexpr
Initial value:
=
"1.2.840.10008.5.1.4.1.1.5"

Nuclear Medicine Image Storage (Retired) - for legacy systems.

Definition at line 46 of file nm_storage.h.

Referenced by kcenon::pacs::services::sop_class_registry::register_nm_sop_classes().

◆ nm_image_storage_uid

std::string_view kcenon::pacs::services::sop_classes::nm_image_storage_uid
inlineconstexpr
Initial value:
=
"1.2.840.10008.5.1.4.1.1.20"

Nuclear Medicine Image Storage SOP Class UID.

Definition at line 37 of file nm_storage.h.

Referenced by kcenon::pacs::services::sop_class_registry::register_nm_sop_classes().

◆ ophthalmic_oct_bscan_analysis_storage_uid

std::string_view kcenon::pacs::services::sop_classes::ophthalmic_oct_bscan_analysis_storage_uid
inlineconstexpr
Initial value:
=
"1.2.840.10008.5.1.4.1.1.77.1.5.8"

Ophthalmic Optical Coherence Tomography B-scan Volume Analysis Storage.

Definition at line 50 of file ophthalmic_storage.h.

Referenced by get_ophthalmic_storage_sop_classes(), is_ophthalmic_storage_sop_class(), kcenon::pacs::services::sop_class_registry::register_ophthalmic_sop_classes(), and kcenon::pacs::services::validation::ophthalmic_iod_validator::validate_multiframe_module().

◆ ophthalmic_photo_16bit_storage_uid

std::string_view kcenon::pacs::services::sop_classes::ophthalmic_photo_16bit_storage_uid
inlineconstexpr
Initial value:
=
"1.2.840.10008.5.1.4.1.1.77.1.5.2"

Ophthalmic Photography 16 Bit Image Storage.

Definition at line 38 of file ophthalmic_storage.h.

Referenced by get_ophthalmic_storage_sop_classes(), is_ophthalmic_storage_sop_class(), and kcenon::pacs::services::sop_class_registry::register_ophthalmic_sop_classes().

◆ ophthalmic_photo_8bit_storage_uid

std::string_view kcenon::pacs::services::sop_classes::ophthalmic_photo_8bit_storage_uid
inlineconstexpr
Initial value:
=
"1.2.840.10008.5.1.4.1.1.77.1.5.1"

Ophthalmic Photography 8 Bit Image Storage.

Definition at line 34 of file ophthalmic_storage.h.

Referenced by get_ophthalmic_storage_sop_classes(), is_ophthalmic_storage_sop_class(), and kcenon::pacs::services::sop_class_registry::register_ophthalmic_sop_classes().

◆ ophthalmic_tomography_storage_uid

std::string_view kcenon::pacs::services::sop_classes::ophthalmic_tomography_storage_uid
inlineconstexpr

◆ parametric_map_storage_uid

std::string_view kcenon::pacs::services::sop_classes::parametric_map_storage_uid
inlineconstexpr

◆ patient_radiation_dose_sr_storage_uid

std::string_view kcenon::pacs::services::sop_classes::patient_radiation_dose_sr_storage_uid
inlineconstexpr
Initial value:
=
"1.2.840.10008.5.1.4.1.1.88.73"

Patient Radiation Dose SR Storage SOP Class UID.

Definition at line 91 of file sr_storage.h.

Referenced by get_sr_document_type().

◆ performed_imaging_agent_admin_sr_storage_uid

std::string_view kcenon::pacs::services::sop_classes::performed_imaging_agent_admin_sr_storage_uid
inlineconstexpr
Initial value:
=
"1.2.840.10008.5.1.4.1.1.88.75"

Performed Imaging Agent Administration SR Storage SOP Class UID.

Definition at line 99 of file sr_storage.h.

◆ pet_image_storage_uid

std::string_view kcenon::pacs::services::sop_classes::pet_image_storage_uid
inlineconstexpr
Initial value:
=
"1.2.840.10008.5.1.4.1.1.128"

PET Image Storage SOP Class UID.

Definition at line 37 of file pet_storage.h.

Referenced by kcenon::pacs::services::sop_class_registry::register_pet_sop_classes().

◆ planned_imaging_agent_admin_sr_storage_uid

std::string_view kcenon::pacs::services::sop_classes::planned_imaging_agent_admin_sr_storage_uid
inlineconstexpr
Initial value:
=
"1.2.840.10008.5.1.4.1.1.88.74"

Planned Imaging Agent Administration SR Storage SOP Class UID.

Definition at line 95 of file sr_storage.h.

◆ radiopharmaceutical_radiation_dose_sr_storage_uid

std::string_view kcenon::pacs::services::sop_classes::radiopharmaceutical_radiation_dose_sr_storage_uid
inlineconstexpr
Initial value:
=
"1.2.840.10008.5.1.4.1.1.88.68"

Radiopharmaceutical Radiation Dose SR Storage SOP Class UID.

Definition at line 79 of file sr_storage.h.

Referenced by get_sr_document_type().

◆ respiratory_waveform_storage_uid

std::string_view kcenon::pacs::services::sop_classes::respiratory_waveform_storage_uid
inlineconstexpr
Initial value:
=
"1.2.840.10008.5.1.4.1.1.9.6.1"

Respiratory Waveform Storage SOP Class UID.

Definition at line 69 of file waveform_storage.h.

Referenced by get_waveform_type().

◆ routine_scalp_eeg_storage_uid

std::string_view kcenon::pacs::services::sop_classes::routine_scalp_eeg_storage_uid
inlineconstexpr
Initial value:
=
"1.2.840.10008.5.1.4.1.1.9.7.1"

Routine Scalp Electroencephalogram Waveform Storage SOP Class UID.

Definition at line 77 of file waveform_storage.h.

Referenced by get_waveform_type().

◆ rt_beams_treatment_record_storage_uid

std::string_view kcenon::pacs::services::sop_classes::rt_beams_treatment_record_storage_uid
inlineconstexpr
Initial value:
=
"1.2.840.10008.5.1.4.1.1.481.4"

RT Beams Treatment Record Storage SOP Class UID.

Definition at line 54 of file rt_storage.h.

Referenced by kcenon::pacs::services::sop_class_registry::register_rt_sop_classes().

◆ rt_brachy_treatment_record_storage_uid

std::string_view kcenon::pacs::services::sop_classes::rt_brachy_treatment_record_storage_uid
inlineconstexpr
Initial value:
=
"1.2.840.10008.5.1.4.1.1.481.6"

RT Brachy Treatment Record Storage SOP Class UID.

Definition at line 58 of file rt_storage.h.

Referenced by kcenon::pacs::services::sop_class_registry::register_rt_sop_classes().

◆ rt_dose_storage_uid

std::string_view kcenon::pacs::services::sop_classes::rt_dose_storage_uid
inlineconstexpr

◆ rt_image_storage_uid

std::string_view kcenon::pacs::services::sop_classes::rt_image_storage_uid
inlineconstexpr
Initial value:
=
"1.2.840.10008.5.1.4.1.1.481.1"

RT Image Storage SOP Class UID.

Definition at line 50 of file rt_storage.h.

Referenced by kcenon::pacs::services::sop_class_registry::register_rt_sop_classes().

◆ rt_ion_beams_treatment_record_storage_uid

std::string_view kcenon::pacs::services::sop_classes::rt_ion_beams_treatment_record_storage_uid
inlineconstexpr
Initial value:
=
"1.2.840.10008.5.1.4.1.1.481.9"

RT Ion Beams Treatment Record Storage SOP Class UID.

Definition at line 70 of file rt_storage.h.

Referenced by kcenon::pacs::services::sop_class_registry::register_rt_sop_classes().

◆ rt_ion_plan_storage_uid

std::string_view kcenon::pacs::services::sop_classes::rt_ion_plan_storage_uid
inlineconstexpr
Initial value:
=
"1.2.840.10008.5.1.4.1.1.481.8"

RT Ion Plan Storage SOP Class UID.

Definition at line 66 of file rt_storage.h.

Referenced by is_rt_plan_sop_class(), kcenon::pacs::services::sop_class_registry::register_rt_sop_classes(), and kcenon::pacs::services::validation::rt_iod_validator::validate().

◆ rt_plan_storage_uid

std::string_view kcenon::pacs::services::sop_classes::rt_plan_storage_uid
inlineconstexpr
Initial value:
=
"1.2.840.10008.5.1.4.1.1.481.5"

RT Plan Storage SOP Class UID.

Definition at line 38 of file rt_storage.h.

Referenced by is_rt_plan_sop_class(), kcenon::pacs::services::sop_class_registry::register_rt_sop_classes(), and kcenon::pacs::services::validation::rt_iod_validator::validate().

◆ rt_structure_set_storage_uid

std::string_view kcenon::pacs::services::sop_classes::rt_structure_set_storage_uid
inlineconstexpr

◆ rt_treatment_summary_record_storage_uid

std::string_view kcenon::pacs::services::sop_classes::rt_treatment_summary_record_storage_uid
inlineconstexpr
Initial value:
=
"1.2.840.10008.5.1.4.1.1.481.7"

RT Treatment Summary Record Storage SOP Class UID.

Definition at line 62 of file rt_storage.h.

Referenced by kcenon::pacs::services::sop_class_registry::register_rt_sop_classes().

◆ segmentation_storage_uid

std::string_view kcenon::pacs::services::sop_classes::segmentation_storage_uid
inlineconstexpr
Initial value:
=
"1.2.840.10008.5.1.4.1.1.66.4"

Segmentation Storage SOP Class UID.

Definition at line 38 of file seg_storage.h.

Referenced by kcenon::pacs::services::sop_class_registry::register_seg_sop_classes().

◆ simplified_adult_echo_sr_storage_uid

std::string_view kcenon::pacs::services::sop_classes::simplified_adult_echo_sr_storage_uid
inlineconstexpr
Initial value:
=
"1.2.840.10008.5.1.4.1.1.88.72"

Simplified Adult Echo SR Storage SOP Class UID.

Definition at line 87 of file sr_storage.h.

◆ sleep_eeg_storage_uid

std::string_view kcenon::pacs::services::sop_classes::sleep_eeg_storage_uid
inlineconstexpr
Initial value:
=
"1.2.840.10008.5.1.4.1.1.9.7.4"

Sleep Electroencephalogram Waveform Storage SOP Class UID.

Definition at line 89 of file waveform_storage.h.

Referenced by get_waveform_type().

◆ surface_segmentation_storage_uid

std::string_view kcenon::pacs::services::sop_classes::surface_segmentation_storage_uid
inlineconstexpr
Initial value:
=
"1.2.840.10008.5.1.4.1.1.66.5"

Surface Segmentation Storage SOP Class UID.

Definition at line 42 of file seg_storage.h.

Referenced by is_surface_segmentation_sop_class(), and kcenon::pacs::services::sop_class_registry::register_seg_sop_classes().

◆ twelve_lead_ecg_storage_uid

std::string_view kcenon::pacs::services::sop_classes::twelve_lead_ecg_storage_uid
inlineconstexpr
Initial value:
=
"1.2.840.10008.5.1.4.1.1.9.1.1"

12-lead ECG Waveform Storage SOP Class UID

Definition at line 37 of file waveform_storage.h.

Referenced by get_waveform_type().

◆ us_image_storage_retired_uid

std::string_view kcenon::pacs::services::sop_classes::us_image_storage_retired_uid
inlineconstexpr
Initial value:
=
"1.2.840.10008.5.1.4.1.1.6"

US Image Storage (Retired) - for legacy systems.

Definition at line 52 of file us_storage.h.

Referenced by kcenon::pacs::services::sop_class_registry::register_us_sop_classes().

◆ us_image_storage_uid

std::string_view kcenon::pacs::services::sop_classes::us_image_storage_uid
inlineconstexpr

◆ us_multiframe_image_storage_retired_uid

std::string_view kcenon::pacs::services::sop_classes::us_multiframe_image_storage_retired_uid
inlineconstexpr
Initial value:
=
"1.2.840.10008.5.1.4.1.1.3.1"

US Multi-frame Image Storage (Retired) - for legacy systems.

Definition at line 56 of file us_storage.h.

Referenced by kcenon::pacs::services::sop_class_registry::register_us_sop_classes().

◆ us_multiframe_image_storage_uid

std::string_view kcenon::pacs::services::sop_classes::us_multiframe_image_storage_uid
inlineconstexpr
Initial value:
=
"1.2.840.10008.5.1.4.1.1.6.2"

US Multi-frame Image Storage SOP Class UID (cine loops)

Definition at line 43 of file us_storage.h.

Referenced by kcenon::pacs::services::sop_class_registry::register_us_sop_classes(), kcenon::pacs::integration_test::TEST_CASE(), and kcenon::pacs::integration_test::test_data_generator::us_cine().

◆ waveform_annotation_storage_uid

std::string_view kcenon::pacs::services::sop_classes::waveform_annotation_storage_uid
inlineconstexpr
Initial value:
=
"1.2.840.10008.5.1.4.1.1.11.12"

Waveform Annotation Storage SOP Class UID.

Definition at line 106 of file waveform_storage.h.

Referenced by get_waveform_type(), and is_waveform_annotation_sop_class().

◆ waveform_presentation_state_storage_uid

std::string_view kcenon::pacs::services::sop_classes::waveform_presentation_state_storage_uid
inlineconstexpr
Initial value:
=
"1.2.840.10008.5.1.4.1.1.11.11"

Waveform Presentation State Storage SOP Class UID.

Definition at line 102 of file waveform_storage.h.

Referenced by get_waveform_type(), and is_waveform_presentation_state_sop_class().

◆ wide_field_ophthalmic_photo_storage_uid

std::string_view kcenon::pacs::services::sop_classes::wide_field_ophthalmic_photo_storage_uid
inlineconstexpr
Initial value:
=
"1.2.840.10008.5.1.4.1.1.77.1.5.7"

Wide Field Ophthalmic Photography SOP Class Storage.

Definition at line 46 of file ophthalmic_storage.h.

Referenced by get_ophthalmic_storage_sop_classes(), is_ophthalmic_storage_sop_class(), and kcenon::pacs::services::sop_class_registry::register_ophthalmic_sop_classes().

◆ wsi_image_storage_uid

std::string_view kcenon::pacs::services::sop_classes::wsi_image_storage_uid
inlineconstexpr
Initial value:
=
"1.2.840.10008.5.1.4.1.1.77.1.6"

VL Whole Slide Microscopy Image Storage SOP Class UID.

Definition at line 35 of file wsi_storage.h.

Referenced by get_wsi_storage_sop_classes(), is_wsi_storage_sop_class(), and kcenon::pacs::services::sop_class_registry::register_wsi_sop_classes().

◆ xa_image_storage_uid

std::string_view kcenon::pacs::services::sop_classes::xa_image_storage_uid
inlineconstexpr

◆ xray_3d_angiographic_image_storage_uid

std::string_view kcenon::pacs::services::sop_classes::xray_3d_angiographic_image_storage_uid
inlineconstexpr
Initial value:
=
"1.2.840.10008.5.1.4.1.1.13.1.1"

X-Ray 3D Angiographic Image Storage SOP Class UID (3D rotational)

Definition at line 64 of file xa_storage.h.

Referenced by kcenon::pacs::services::sop_class_registry::register_xa_sop_classes().

◆ xray_3d_craniofacial_image_storage_uid

std::string_view kcenon::pacs::services::sop_classes::xray_3d_craniofacial_image_storage_uid
inlineconstexpr
Initial value:
=
"1.2.840.10008.5.1.4.1.1.13.1.2"

X-Ray 3D Craniofacial Image Storage SOP Class UID.

Definition at line 68 of file xa_storage.h.

Referenced by kcenon::pacs::services::sop_class_registry::register_xa_sop_classes().

◆ xray_radiation_dose_sr_storage_uid

std::string_view kcenon::pacs::services::sop_classes::xray_radiation_dose_sr_storage_uid
inlineconstexpr
Initial value:
=
"1.2.840.10008.5.1.4.1.1.88.67"

X-Ray Radiation Dose SR Storage SOP Class UID.

Definition at line 75 of file sr_storage.h.

Referenced by get_recommended_sr_template(), get_sr_document_type(), and kcenon::pacs::services::sop_class_registry::register_sr_sop_classes().

◆ xrf_image_storage_uid

std::string_view kcenon::pacs::services::sop_classes::xrf_image_storage_uid
inlineconstexpr
Initial value:
=
"1.2.840.10008.5.1.4.1.1.12.2"

XRF Image Storage SOP Class UID (X-Ray Radiofluoroscopic)

Definition at line 55 of file xa_storage.h.

Referenced by kcenon::pacs::services::sop_class_registry::register_xa_sop_classes().