20#ifndef PACS_SERVICES_STORAGE_COMMITMENT_SCP_HPP
21#define PACS_SERVICES_STORAGE_COMMITMENT_SCP_HPP
68 std::shared_ptr<storage::storage_interface>
storage,
69 std::shared_ptr<di::ILogger>
logger =
nullptr);
84 [[nodiscard]] std::string_view
service_name() const noexcept override;
101 network::association& assoc,
103 const network::dimse::dimse_message& request);
110 const std::
string& transaction_uid,
118 network::association& assoc,
127 network::association& assoc,
130 network::dimse::status_code status);
137 const core::dicom_dataset& dataset);
const std::shared_ptr< di::ILogger > & logger() const noexcept
Get the current logger instance.
Storage Commitment Push Model SCP.
std::atomic< size_t > instances_failed_
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.
~storage_commitment_scp() override=default
storage_commitment_scp(std::shared_ptr< storage::storage_interface > storage, std::shared_ptr< di::ILogger > logger=nullptr)
Construct Storage Commitment SCP with storage backend.
commitment_result verify_instances(const std::string &transaction_uid, const std::vector< sop_reference > &references)
std::atomic< size_t > actions_processed_
network::Result< std::monostate > handle_n_action(network::association &assoc, uint8_t context_id, const network::dimse::dimse_message &request)
static std::vector< sop_reference > parse_referenced_sop_sequence(const core::dicom_dataset &dataset)
std::shared_ptr< storage::storage_interface > storage_
size_t instances_failed() const noexcept
network::Result< std::monostate > send_n_action_response(network::association &assoc, uint8_t context_id, uint16_t message_id, network::dimse::status_code status)
static core::dicom_dataset build_event_report_dataset(const commitment_result &result)
std::string_view service_name() const noexcept override
Get the service name for logging/debugging.
size_t instances_committed() const noexcept
size_t actions_processed() const noexcept
void reset_statistics() noexcept
std::vector< std::string > supported_sop_classes() const override
Get the list of SOP Class UIDs supported by this service.
std::atomic< size_t > instances_committed_
network::Result< std::monostate > send_event_report(network::association &assoc, uint8_t context_id, const commitment_result &result)
@ storage
Storage Service Class.
Base class for DICOM SCP (Service Class Provider) services.
Data types for DICOM Storage Commitment Push Model Service.
Abstract storage interface for DICOM persistent storage backends.
Result of a Storage Commitment verification.
Reference to a SOP Instance in a commitment request.