20#ifndef PACS_SERVICES_WORKLIST_SCP_HPP
21#define PACS_SERVICES_WORKLIST_SCP_HPP
36 "1.2.840.10008.5.1.4.31";
87 const std::string& calling_ae)>;
269 network::association& assoc,
271 const network::dimse::dimse_message& request) override;
278 [[nodiscard]] std::string_view
service_name() const noexcept override;
318 network::association& assoc,
321 const core::dicom_dataset& result);
333 network::association& assoc,
336 network::dimse::status_code status);
const std::shared_ptr< di::ILogger > & logger() const noexcept
Get the current logger instance.
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 (MWL C-FIND-RQ)
size_t items_returned() const noexcept
Get total number of worklist items returned.
void set_max_results(size_t max) noexcept
Set maximum number of results to return.
network::Result< std::monostate > send_final_response(network::association &assoc, uint8_t context_id, uint16_t message_id, network::dimse::status_code status)
Send the final C-FIND response (success or cancel)
void reset_statistics() noexcept
Reset statistics counters.
std::string_view service_name() const noexcept override
Get the service name.
std::atomic< size_t > items_returned_
network::Result< std::monostate > send_pending_response(network::association &assoc, uint8_t context_id, uint16_t message_id, const core::dicom_dataset &result)
Send a pending C-FIND response with matching worklist item.
size_t max_results() const noexcept
Get maximum number of results.
worklist_scp(std::shared_ptr< di::ILogger > logger=nullptr)
Construct Worklist SCP with optional logger.
worklist_handler handler_
std::atomic< size_t > queries_processed_
worklist_cancel_check cancel_check_
size_t queries_processed() const noexcept
Get total number of worklist queries processed.
void set_handler(worklist_handler handler)
Set the worklist handler function.
void set_cancel_check(worklist_cancel_check check)
Set the cancel check function.
~worklist_scp() override=default
std::vector< std::string > supported_sop_classes() const override
Get supported SOP Class UIDs.
std::function< bool()> worklist_cancel_check
Cancel check function type.
std::function< std::vector< core::dicom_dataset >( const core::dicom_dataset &query_keys, const std::string &calling_ae)> worklist_handler
constexpr std::string_view worklist_find_sop_class_uid
Modality Worklist Information Model - FIND SOP Class UID.
Base class for DICOM SCP (Service Class Provider) services.