PACS System 0.1.0
PACS DICOM system library
Loading...
Searching...
No Matches
storage_interface.cpp
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
11
12namespace kcenon::pacs::storage {
13
14// Use common_system's ok() function
15using kcenon::common::ok;
16using kcenon::common::make_error;
17
18// ============================================================================
19// Default Batch Operation Implementations
20// ============================================================================
21
23 const std::vector<core::dicom_dataset>& datasets) -> VoidResult {
24 for (const auto& dataset : datasets) {
25 auto result = store(dataset);
26 if (result.is_err()) {
27 return result;
28 }
29 }
30 return ok();
31}
32
34 const std::vector<std::string>& sop_instance_uids)
36 std::vector<core::dicom_dataset> results;
37 results.reserve(sop_instance_uids.size());
38
39 for (const auto& uid : sop_instance_uids) {
40 auto result = retrieve(uid);
41 if (result.is_ok()) {
42 results.push_back(std::move(result.value()));
43 }
44 // Silently skip missing instances as per interface contract
45 }
46
47 return results;
48}
49
50} // namespace kcenon::pacs::storage
virtual auto retrieve_batch(const std::vector< std::string > &sop_instance_uids) -> Result< std::vector< core::dicom_dataset > >
Retrieve multiple DICOM datasets by their SOP Instance UIDs.
virtual auto store_batch(const std::vector< core::dicom_dataset > &datasets) -> VoidResult
Store multiple DICOM datasets in a single operation.
Abstract storage interface for DICOM persistent storage backends.
std::string_view uid