39#ifdef PACS_WITH_DATABASE_SYSTEM
68class streaming_query_handler {
71 using StreamResult = Result<std::unique_ptr<query_result_stream>>;
78 explicit streaming_query_handler(storage::index_database* db);
83 ~streaming_query_handler() =
default;
86 streaming_query_handler(
const streaming_query_handler&) =
delete;
87 auto operator=(
const streaming_query_handler&) -> streaming_query_handler& =
delete;
90 streaming_query_handler(streaming_query_handler&&) noexcept = default;
91 auto operator=(streaming_query_handler&&) noexcept -> streaming_query_handler& = default;
102 void set_page_size(
size_t size) noexcept;
109 [[nodiscard]] auto page_size() const noexcept ->
size_t;
116 void set_max_results(
size_t max) noexcept;
123 [[nodiscard]] auto max_results() const noexcept ->
size_t;
139 [[nodiscard]] auto create_stream(query_level level,
140 const core::dicom_dataset& query_keys,
141 const std::
string& calling_ae) -> StreamResult;
151 [[nodiscard]] auto resume_stream(const std::
string& cursor_state, query_level level,
152 const core::dicom_dataset& query_keys) -> StreamResult;
167 [[nodiscard]] auto as_query_handler() -> query_handler;
171 storage::index_database* db_;
174 size_t page_size_{100};
177 size_t max_results_{0};
DICOM Dataset - ordered collection of Data Elements.
Streaming query results with pagination support.
DICOM Query SCP service (C-FIND handler)