PACS System 0.1.0
PACS DICOM system library
Loading...
Searching...
No Matches
parametric_map_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_PARAMETRIC_MAP_STORAGE_HPP
21#define PACS_SERVICES_SOP_CLASSES_PARAMETRIC_MAP_STORAGE_HPP
22
23#include <cstdint>
24#include <string>
25#include <string_view>
26#include <vector>
27
29
30// =============================================================================
31// Parametric Map Storage SOP Class UIDs
32// =============================================================================
33
35inline constexpr std::string_view parametric_map_storage_uid =
36 "1.2.840.10008.5.1.4.1.1.30";
37
38// =============================================================================
39// Parametric Map Transfer Syntaxes
40// =============================================================================
41
51[[nodiscard]] std::vector<std::string> get_parametric_map_transfer_syntaxes();
52
53// =============================================================================
54// Pixel Value Representation
55// =============================================================================
56
67
73[[nodiscard]] uint16_t get_bits_allocated(pixel_value_representation repr) noexcept;
74
81parse_pixel_value_representation(uint16_t bits_allocated) noexcept;
82
88[[nodiscard]] bool is_valid_parametric_map_bits_allocated(uint16_t bits_allocated) noexcept;
89
90// =============================================================================
91// Parametric Map SOP Class Information
92// =============================================================================
93
98 std::string_view uid;
99 std::string_view name;
100 std::string_view description;
102};
103
108[[nodiscard]] std::vector<std::string> get_parametric_map_storage_sop_classes();
109
115[[nodiscard]] const parametric_map_sop_class_info*
116get_parametric_map_sop_class_info(std::string_view uid) noexcept;
117
123[[nodiscard]] bool is_parametric_map_storage_sop_class(std::string_view uid) noexcept;
124
125// =============================================================================
126// Parametric Map DICOM Tags
127// =============================================================================
128
129namespace parametric_map_tags {
130
132inline constexpr uint32_t real_world_value_mapping_sequence = 0x00409096;
133
135inline constexpr uint32_t real_world_value_intercept = 0x00409224;
136
138inline constexpr uint32_t real_world_value_slope = 0x00409225;
139
141inline constexpr uint32_t real_world_value_first_value_mapped = 0x00409216;
142
144inline constexpr uint32_t real_world_value_last_value_mapped = 0x00409211;
145
147inline constexpr uint32_t measurement_units_code_sequence = 0x004008EA;
148
150inline constexpr uint32_t content_label = 0x00700080;
151
153inline constexpr uint32_t content_description = 0x00700081;
154
156inline constexpr uint32_t content_creator_name = 0x00700084;
157
158} // namespace parametric_map_tags
159
160// =============================================================================
161// Photometric Interpretation Validation
162// =============================================================================
163
172[[nodiscard]] bool is_valid_parametric_map_photometric(std::string_view value) noexcept;
173
174} // namespace kcenon::pacs::services::sop_classes
175
176#endif // PACS_SERVICES_SOP_CLASSES_PARAMETRIC_MAP_STORAGE_HPP
constexpr uint32_t real_world_value_first_value_mapped
Real World Value First Value Mapped (0040,9216)
constexpr uint32_t content_creator_name
Content Creator Name (0070,0084)
constexpr uint32_t real_world_value_last_value_mapped
Real World Value Last Value Mapped (0040,9211)
constexpr uint32_t measurement_units_code_sequence
Measurement Units Code Sequence (0040,08EA)
constexpr uint32_t content_description
Content Description (0070,0081)
constexpr uint32_t real_world_value_slope
Real World Value Slope (0040,9225)
constexpr uint32_t real_world_value_intercept
Real World Value Intercept (0040,9224)
constexpr uint32_t content_label
Content Label (0070,0080)
constexpr uint32_t real_world_value_mapping_sequence
Real World Value Mapping Sequence (0040,9096)
const parametric_map_sop_class_info * get_parametric_map_sop_class_info(std::string_view uid) noexcept
Get information about the Parametric Map SOP Class.
uint16_t get_bits_allocated(pixel_value_representation repr) noexcept
Get bits allocated for a pixel value representation.
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_bits_allocated(uint16_t bits_allocated) noexcept
Check if a BitsAllocated value is valid for parametric maps.
pixel_value_representation parse_pixel_value_representation(uint16_t bits_allocated) noexcept
Parse pixel value representation from BitsAllocated value.
pixel_value_representation
Pixel value representation for parametric map data.
@ float32
32-bit IEEE 754 floating point (BitsAllocated=32)
@ float64
64-bit IEEE 754 floating point (BitsAllocated=64)
constexpr std::string_view parametric_map_storage_uid
Parametric Map Storage SOP Class UID.
std::vector< std::string > get_parametric_map_storage_sop_classes()
Get all Parametric Map Storage SOP Class UIDs.
std::vector< std::string > get_parametric_map_transfer_syntaxes()
Get recommended transfer syntaxes for Parametric Map objects.
bool is_valid_parametric_map_photometric(std::string_view value) noexcept
Check if photometric interpretation is valid for parametric maps.
Information about the Parametric Map Storage SOP Class.
std::string_view uid