PACS System 0.1.0
PACS DICOM system library
Loading...
Searching...
No Matches
waveform_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_WAVEFORM_STORAGE_HPP
21#define PACS_SERVICES_SOP_CLASSES_WAVEFORM_STORAGE_HPP
22
23#include <string>
24#include <string_view>
25#include <vector>
26
28
29// =============================================================================
30// Waveform Storage SOP Class UIDs
31// =============================================================================
32
35
37inline constexpr std::string_view twelve_lead_ecg_storage_uid =
38 "1.2.840.10008.5.1.4.1.1.9.1.1";
39
41inline constexpr std::string_view general_ecg_storage_uid =
42 "1.2.840.10008.5.1.4.1.1.9.1.2";
43
45inline constexpr std::string_view ambulatory_ecg_storage_uid =
46 "1.2.840.10008.5.1.4.1.1.9.1.3";
47
49inline constexpr std::string_view hemodynamic_waveform_storage_uid =
50 "1.2.840.10008.5.1.4.1.1.9.2.1";
51
53inline constexpr std::string_view cardiac_ep_waveform_storage_uid =
54 "1.2.840.10008.5.1.4.1.1.9.3.1";
55
57inline constexpr std::string_view basic_voice_audio_storage_uid =
58 "1.2.840.10008.5.1.4.1.1.9.4.1";
59
61inline constexpr std::string_view general_audio_waveform_storage_uid =
62 "1.2.840.10008.5.1.4.1.1.9.4.2";
63
65inline constexpr std::string_view arterial_pulse_waveform_storage_uid =
66 "1.2.840.10008.5.1.4.1.1.9.5.1";
67
69inline constexpr std::string_view respiratory_waveform_storage_uid =
70 "1.2.840.10008.5.1.4.1.1.9.6.1";
71
73inline constexpr std::string_view multichannel_respiratory_waveform_storage_uid =
74 "1.2.840.10008.5.1.4.1.1.9.6.2";
75
77inline constexpr std::string_view routine_scalp_eeg_storage_uid =
78 "1.2.840.10008.5.1.4.1.1.9.7.1";
79
81inline constexpr std::string_view emg_waveform_storage_uid =
82 "1.2.840.10008.5.1.4.1.1.9.7.2";
83
85inline constexpr std::string_view eog_waveform_storage_uid =
86 "1.2.840.10008.5.1.4.1.1.9.7.3";
87
89inline constexpr std::string_view sleep_eeg_storage_uid =
90 "1.2.840.10008.5.1.4.1.1.9.7.4";
91
93inline constexpr std::string_view body_position_waveform_storage_uid =
94 "1.2.840.10008.5.1.4.1.1.9.8.1";
95
97
100
102inline constexpr std::string_view waveform_presentation_state_storage_uid =
103 "1.2.840.10008.5.1.4.1.1.11.11";
104
106inline constexpr std::string_view waveform_annotation_storage_uid =
107 "1.2.840.10008.5.1.4.1.1.11.12";
108
110
111// =============================================================================
112// Waveform Type Classification
113// =============================================================================
114
138
144[[nodiscard]] waveform_type get_waveform_type(std::string_view uid) noexcept;
145
151[[nodiscard]] std::string_view to_string(waveform_type type) noexcept;
152
153// =============================================================================
154// Waveform SOP Class Information
155// =============================================================================
156
161 std::string_view uid;
162 std::string_view name;
165};
166
174[[nodiscard]] std::vector<std::string>
175get_waveform_storage_sop_classes(bool include_presentation_state = true,
176 bool include_annotation = true);
177
184[[nodiscard]] const waveform_sop_class_info*
185get_waveform_sop_class_info(std::string_view uid) noexcept;
186
193[[nodiscard]] bool is_waveform_storage_sop_class(std::string_view uid) noexcept;
194
201[[nodiscard]] bool is_waveform_presentation_state_sop_class(std::string_view uid) noexcept;
202
209[[nodiscard]] bool is_waveform_annotation_sop_class(std::string_view uid) noexcept;
210
216[[nodiscard]] std::vector<std::string> get_waveform_transfer_syntaxes();
217
218} // namespace kcenon::pacs::services::sop_classes
219
220#endif // PACS_SERVICES_SOP_CLASSES_WAVEFORM_STORAGE_HPP
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.
const waveform_sop_class_info * get_waveform_sop_class_info(std::string_view uid) noexcept
Get information about a specific Waveform SOP Class.
constexpr std::string_view hemodynamic_waveform_storage_uid
Hemodynamic 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 waveform_annotation_storage_uid
Waveform Annotation Storage SOP Class UID.
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.
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.
waveform_type get_waveform_type(std::string_view uid) noexcept
Get waveform type from SOP Class UID.
constexpr std::string_view cardiac_ep_waveform_storage_uid
Basic Cardiac Electrophysiology 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 respiratory_waveform_storage_uid
Respiratory Waveform Storage SOP Class UID.
constexpr std::string_view twelve_lead_ecg_storage_uid
12-lead ECG Waveform Storage SOP Class UID
constexpr std::string_view sleep_eeg_storage_uid
Sleep Electroencephalogram Waveform Storage SOP Class UID.
constexpr std::string_view eog_waveform_storage_uid
Electrooculogram Waveform Storage SOP Class UID.
constexpr std::string_view waveform_presentation_state_storage_uid
Waveform Presentation State Storage SOP Class UID.
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_annotation_sop_class(std::string_view uid) noexcept
Check if a SOP Class UID is a Waveform Annotation SOP Class.
constexpr std::string_view body_position_waveform_storage_uid
Body Position 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 emg_waveform_storage_uid
Electromyogram Waveform Storage SOP Class UID.
waveform_type
Waveform type classification.
@ presentation_state
Waveform Presentation State.
constexpr std::string_view multichannel_respiratory_waveform_storage_uid
Multi-channel Respiratory Waveform Storage SOP Class UID.
@ unknown
Unknown or unspecified laterality.
constexpr std::string_view routine_scalp_eeg_storage_uid
Routine Scalp Electroencephalogram Waveform Storage SOP Class UID.
std::string_view to_string(dx_photometric_interpretation interp) noexcept
Convert photometric interpretation enum to DICOM string.
std::vector< std::string > get_waveform_transfer_syntaxes()
Get recommended transfer syntaxes for waveform objects.
Information about a Waveform Storage SOP Class.
std::string_view uid