PACS System 0.1.0
PACS DICOM system library
Loading...
Searching...
No Matches
us_storage.h
Go to the documentation of this file.
1// BSD 3-Clause License
2// Copyright (c) 2021-2025, 🍀☀🌕🌥 🌊
3// See the LICENSE file in the project root for full license information.
4
20#ifndef PACS_SERVICES_SOP_CLASSES_US_STORAGE_HPP
21#define PACS_SERVICES_SOP_CLASSES_US_STORAGE_HPP
22
23#include <array>
24#include <cstdint>
25#include <string>
26#include <string_view>
27#include <vector>
28
30
31// =============================================================================
32// Ultrasound Storage SOP Class UIDs
33// =============================================================================
34
37
39inline constexpr std::string_view us_image_storage_uid =
40 "1.2.840.10008.5.1.4.1.1.6.1";
41
43inline constexpr std::string_view us_multiframe_image_storage_uid =
44 "1.2.840.10008.5.1.4.1.1.6.2";
45
47
50
52inline constexpr std::string_view us_image_storage_retired_uid =
53 "1.2.840.10008.5.1.4.1.1.6";
54
56inline constexpr std::string_view us_multiframe_image_storage_retired_uid =
57 "1.2.840.10008.5.1.4.1.1.3.1";
58
60
61// =============================================================================
62// US-Specific Transfer Syntaxes
63// =============================================================================
64
74[[nodiscard]] std::vector<std::string> get_us_transfer_syntaxes();
75
76// =============================================================================
77// US Photometric Interpretations
78// =============================================================================
79
91
97[[nodiscard]] std::string_view to_string(us_photometric_interpretation interp) noexcept;
98
105parse_photometric_interpretation(std::string_view value) noexcept;
106
112[[nodiscard]] bool is_valid_us_photometric(std::string_view value) noexcept;
113
114// =============================================================================
115// US SOP Class Information
116// =============================================================================
117
122 std::string_view uid;
123 std::string_view name;
124 std::string_view description;
127};
128
138[[nodiscard]] std::vector<std::string>
139get_us_storage_sop_classes(bool include_retired = true);
140
147[[nodiscard]] const us_sop_class_info*
148get_us_sop_class_info(std::string_view uid) noexcept;
149
156[[nodiscard]] bool is_us_storage_sop_class(std::string_view uid) noexcept;
157
164[[nodiscard]] bool is_us_multiframe_sop_class(std::string_view uid) noexcept;
165
166// =============================================================================
167// US Region Information
168// =============================================================================
169
176enum class us_region_spatial_format : uint16_t {
177 none = 0x0000,
178 two_d = 0x0001,
179 m_mode = 0x0002,
180 spectral = 0x0003,
181 wave_form = 0x0004,
182 graphics = 0x0005
183};
184
190enum class us_region_data_type : uint16_t {
191 tissue = 0x0001,
192 blood = 0x0002,
193 color_flow = 0x0003,
194 elastography = 0x0004,
195 b_mode = 0x0005
196};
197
198} // namespace kcenon::pacs::services::sop_classes
199
200#endif // PACS_SERVICES_SOP_CLASSES_US_STORAGE_HPP
us_photometric_interpretation parse_photometric_interpretation(std::string_view value) noexcept
Parse DICOM photometric interpretation string.
@ palette_color
Pseudo-color via lookup table (for display)
const us_sop_class_info * get_us_sop_class_info(std::string_view uid) noexcept
Get information about a specific US 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.
bool is_us_storage_sop_class(std::string_view uid) noexcept
Check if a SOP Class UID is a US Storage SOP Class.
constexpr std::string_view us_image_storage_uid
US Image Storage SOP Class UID (single-frame)
Definition us_storage.h:39
us_region_spatial_format
US Region spatial format.
Definition us_storage.h:176
constexpr std::string_view us_image_storage_retired_uid
US Image Storage (Retired) - for legacy systems.
Definition us_storage.h:52
bool is_valid_us_photometric(std::string_view value) noexcept
Check if photometric interpretation is valid for US.
us_photometric_interpretation
Supported photometric interpretations for US images.
Definition us_storage.h:83
std::vector< std::string > get_us_storage_sop_classes(bool include_retired=true)
Get all US Storage SOP Class UIDs.
@ tissue
Tissue type (organ, muscle, etc.)
us_region_data_type
US Region data type.
Definition us_storage.h:190
constexpr std::string_view us_multiframe_image_storage_uid
US Multi-frame Image Storage SOP Class UID (cine loops)
Definition us_storage.h:43
constexpr std::string_view us_multiframe_image_storage_retired_uid
US Multi-frame Image Storage (Retired) - for legacy systems.
Definition us_storage.h:56
std::string_view to_string(dx_photometric_interpretation interp) noexcept
Convert photometric interpretation enum to DICOM string.
std::vector< std::string > get_us_transfer_syntaxes()
Get recommended transfer syntaxes for US images.
Information about an US Storage SOP Class.
Definition us_storage.h:121
bool is_retired
Whether this SOP class is retired.
Definition us_storage.h:125
std::string_view name
Human-readable name.
Definition us_storage.h:123
std::string_view description
Brief description.
Definition us_storage.h:124
bool supports_multiframe
Whether multi-frame is supported.
Definition us_storage.h:126
std::string_view uid