PACS System 0.1.0
PACS DICOM system library
Loading...
Searching...
No Matches
imaging_document_consumer.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_XDS_IMAGING_DOCUMENT_CONSUMER_HPP
21#define PACS_SERVICES_XDS_IMAGING_DOCUMENT_CONSUMER_HPP
22
24
25#include <cstdint>
26#include <optional>
27#include <string>
28#include <vector>
29
31
32// =============================================================================
33// Registry Query Types
34// =============================================================================
35
41 std::string patient_id;
42
44 std::optional<std::string> class_code;
45
47 std::optional<std::string> type_code;
48
50 std::optional<std::string> practice_setting_code;
51
53 std::optional<std::string> creation_time_from;
54
56 std::optional<std::string> creation_time_to;
57
59 std::string status{"Approved"};
60
62 std::string query_id{"urn:uuid:14d4debf-8f97-4251-9a74-a90016b0af0d"};
63};
64
70 std::string unique_id;
71
74
76 std::string entry_uuid;
77
79 std::string patient_id;
80
82 std::string class_code;
83
85 std::string type_code;
86
88 std::string creation_time;
89
91 std::string title;
92
94 std::string mime_type;
95
97 std::string status;
98
100 size_t size{0};
101};
102
108 bool success{false};
109
111 std::vector<document_reference> documents;
112
114 std::string error_message;
115
117 int http_status{0};
118};
119
125 bool success{false};
126
128 std::optional<core::dicom_dataset> document;
129
131 std::vector<std::string> referenced_study_uids;
132 std::vector<std::string> referenced_series_uids;
133 std::vector<std::string> referenced_instance_uids;
134
136 std::string error_message;
137
139 int http_status{0};
140};
141
142// =============================================================================
143// Imaging Document Consumer Configuration
144// =============================================================================
145
151 std::string registry_url;
152
154 std::string repository_url;
155
157 std::string wado_rs_url;
158
160 uint32_t timeout_ms{30000};
161
163 uint32_t max_results{100};
164};
165
166// =============================================================================
167// Imaging Document Consumer
168// =============================================================================
169
206public:
209
220 const registry_query_params& params) const;
221
232 const document_reference& doc_ref) const;
233
244 const core::dicom_dataset& kos_dataset) const;
245
257 [[nodiscard]] std::string build_wado_rs_url(
258 const std::string& study_uid,
259 const std::string& series_uid,
260 const std::string& instance_uid) const;
261
266 [[nodiscard]] const imaging_document_consumer_config& config() const noexcept;
267
273
274private:
276};
277
278} // namespace kcenon::pacs::services::xds
279
280#endif // PACS_SERVICES_XDS_IMAGING_DOCUMENT_CONSUMER_HPP
void set_config(const imaging_document_consumer_config &config)
Set configuration.
const imaging_document_consumer_config & config() const noexcept
Get current configuration.
document_retrieval_result extract_references(const core::dicom_dataset &kos_dataset) const
Extract image references from a KOS dataset.
document_retrieval_result retrieve_document(const document_reference &doc_ref) const
Retrieve a specific document from the XDS repository.
registry_query_result query_registry(const registry_query_params &params) const
Query the XDS registry for imaging documents.
std::string build_wado_rs_url(const std::string &study_uid, const std::string &series_uid, const std::string &instance_uid) const
Build a WADO-RS URL for retrieving a specific instance.
DICOM Dataset - ordered collection of Data Elements.
Document reference returned from a registry query.
std::string repository_unique_id
Repository unique ID (identifies where the document is stored)
std::vector< std::string > referenced_study_uids
Instance references extracted from the KOS.
std::optional< core::dicom_dataset > document
The retrieved KOS dataset.
Configuration for the Imaging Document Consumer actor.
std::string wado_rs_url
WADO-RS base URL for image retrieval (alternative to C-MOVE)
std::string registry_url
XDS Registry endpoint URL for queries (ITI-18)
std::string repository_url
XDS Repository endpoint URL for document retrieval (ITI-43)
Query parameters for XDS registry stored query (ITI-18)
std::optional< std::string > creation_time_from
Optional: Creation time range (from)
std::optional< std::string > class_code
Optional: Document class code filter.
std::string status
Optional: Document availability status.
std::optional< std::string > creation_time_to
Optional: Creation time range (to)
std::optional< std::string > practice_setting_code
Optional: Practice setting code filter.
std::optional< std::string > type_code
Optional: Type code filter.
std::vector< document_reference > documents
Found document references.