28#ifndef PACS_SERVICES_SOP_CLASSES_XA_STORAGE_HPP
29#define PACS_SERVICES_SOP_CLASSES_XA_STORAGE_HPP
48 "1.2.840.10008.5.1.4.1.1.12.1";
52 "1.2.840.10008.5.1.4.1.1.12.1.1";
56 "1.2.840.10008.5.1.4.1.1.12.2";
65 "1.2.840.10008.5.1.4.1.1.13.1.1";
69 "1.2.840.10008.5.1.4.1.1.13.1.2";
151[[nodiscard]] std::vector<std::string>
230 [[nodiscard]]
bool is_valid() const noexcept;
280 double imager_pixel_spacing[2];
288 [[nodiscard]]
double magnification_factor() const noexcept;
294 [[nodiscard]]
double isocenter_pixel_spacing() const noexcept;
300 [[nodiscard]]
bool is_valid() const noexcept;
std::vector< std::string > get_xa_transfer_syntaxes()
Get recommended transfer syntaxes for XA images.
xa_photometric_interpretation
Supported photometric interpretations for XA/XRF images.
xa_frame_rate
Common XA frame rates in frames per second.
@ fps_15
15 fps (standard)
@ fps_30
30 fps (high temporal resolution)
@ fps_7_5
7.5 fps (low dose)
constexpr std::string_view enhanced_xa_image_storage_uid
Enhanced XA Image Storage SOP Class UID (enhanced IOD)
constexpr uint16_t get_default_xa_cine_rate() noexcept
Get typical cine rate for cardiac XA.
@ monochrome2
Minimum pixel value = black (standard)
@ monochrome1
Minimum pixel value = white (inverted)
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.
std::vector< std::string > get_xa_storage_sop_classes(bool include_3d=true)
Get all XA/XRF Storage SOP Class UIDs.
bool is_enhanced_xa_sop_class(std::string_view uid) noexcept
Check if a SOP Class UID is an enhanced XA SOP Class.
constexpr std::string_view xrf_image_storage_uid
XRF Image Storage SOP Class UID (X-Ray Radiofluoroscopic)
bool is_valid_xa_photometric(std::string_view value) noexcept
Check if photometric interpretation is valid for XA.
constexpr size_t get_max_xa_frame_count() noexcept
Get maximum recommended frame count for XA acquisitions.
constexpr std::string_view xray_3d_craniofacial_image_storage_uid
X-Ray 3D Craniofacial Image Storage SOP Class UID.
constexpr std::string_view xray_3d_angiographic_image_storage_uid
X-Ray 3D Angiographic Image Storage SOP Class UID (3D rotational)
const xa_sop_class_info * get_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.
constexpr std::string_view xa_image_storage_uid
XA Image Storage SOP Class UID (single/multi-frame)
xa_positioner_motion
Positioner motion type.
@ stationary
No movement during acquisition.
xa_photometric_interpretation parse_xa_photometric_interpretation(std::string_view value) noexcept
Parse DICOM photometric interpretation string for XA.
@ dynamic
DYNAMIC - dynamic study (time series)
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(dx_photometric_interpretation interp) noexcept
Convert photometric interpretation enum to DICOM string.
XA calibration data for quantitative analysis.
double distance_source_to_patient
SOD in mm.
double distance_source_to_detector
SID in mm.
Positioner angle information.
bool is_valid() const noexcept
Check if angles are within valid range.
double primary_angle
LAO/RAO angle in degrees.
double secondary_angle
Cranial/Caudal angle in degrees.
Information about an XA/XRF Storage SOP Class.
std::string_view description
Brief description.
std::string_view uid
SOP Class UID.
bool is_3d
Whether this is a 3D acquisition.
bool is_enhanced
Whether this is an enhanced IOD.
bool supports_multiframe
Whether multi-frame is supported.
std::string_view name
Human-readable name.