15#ifndef PACS_SERVICES_UPS_QUERY_SCP_HPP
16#define PACS_SERVICES_UPS_QUERY_SCP_HPP
31 "1.2.840.10008.5.1.4.34.6.4";
55 const std::string& calling_ae)>;
137 network::association& assoc,
139 const network::dimse::dimse_message& request) override;
141 [[nodiscard]] std::string_view
service_name() const noexcept override;
158 network::association& assoc,
161 const core::dicom_dataset& result);
164 network::association& assoc,
167 network::dimse::status_code status);
const std::shared_ptr< di::ILogger > & logger() const noexcept
Get the current logger instance.
UPS Query SCP service for handling workitem C-FIND requests.
std::string_view service_name() const noexcept override
Get the service name for logging/debugging.
network::Result< std::monostate > send_pending_response(network::association &assoc, uint8_t context_id, uint16_t message_id, const core::dicom_dataset &result)
network::Result< std::monostate > send_final_response(network::association &assoc, uint8_t context_id, uint16_t message_id, network::dimse::status_code status)
~ups_query_scp() override=default
std::atomic< size_t > items_returned_
void set_max_results(size_t max) noexcept
void set_cancel_check(ups_query_cancel_check check)
network::Result< std::monostate > handle_message(network::association &assoc, uint8_t context_id, const network::dimse::dimse_message &request) override
Handle an incoming DIMSE message.
void set_handler(ups_query_handler handler)
size_t queries_processed() const noexcept
ups_query_handler handler_
std::vector< std::string > supported_sop_classes() const override
Get the list of SOP Class UIDs supported by this service.
size_t items_returned() const noexcept
ups_query_cancel_check cancel_check_
size_t max_results() const noexcept
ups_query_scp(std::shared_ptr< di::ILogger > logger=nullptr)
Construct UPS Query SCP with optional logger.
void reset_statistics() noexcept
std::atomic< size_t > queries_processed_
std::function< bool()> ups_query_cancel_check
Cancel check function type for UPS queries.
std::function< std::vector< core::dicom_dataset >( const core::dicom_dataset &query_keys, const std::string &calling_ae)> ups_query_handler
UPS query handler function type.
constexpr std::string_view ups_query_find_sop_class_uid
UPS Query Information Model - FIND SOP Class UID (PS3.4 Table CC.2-1)
Base class for DICOM SCP (Service Class Provider) services.