|
PACS System 0.1.0
PACS DICOM system library
|
Storage Commitment Push Model SCU. More...
#include <storage_commitment_scu.h>

Public Types | |
| using | commitment_callback |
| Callback type for commitment results. | |
Public Member Functions | |
| storage_commitment_scu (std::shared_ptr< di::ILogger > logger=nullptr) | |
| ~storage_commitment_scu ()=default | |
| void | set_commitment_callback (commitment_callback cb) |
| Set callback for commitment result notifications. | |
| network::Result< std::monostate > | request_commitment (network::association &assoc, uint8_t context_id, const std::string &transaction_uid, const std::vector< sop_reference > &references) |
| Send N-ACTION request to commit stored instances. | |
| network::Result< commitment_result > | handle_event_report (const network::dimse::dimse_message &event_rq) |
| Handle an N-EVENT-REPORT-RQ received from the SCP. | |
| size_t | requests_sent () const noexcept |
| size_t | event_reports_received () const noexcept |
| void | reset_statistics () noexcept |
Static Private Member Functions | |
| static core::dicom_dataset | build_action_dataset (const std::string &transaction_uid, const std::vector< sop_reference > &references) |
| static commitment_result | parse_event_report_dataset (const core::dicom_dataset &dataset) |
Private Attributes | |
| std::shared_ptr< di::ILogger > | logger_ |
| commitment_callback | callback_ |
| std::atomic< size_t > | requests_sent_ {0} |
| std::atomic< size_t > | event_reports_received_ {0} |
Storage Commitment Push Model SCU.
Sends N-ACTION requests to an SCP to request storage commitment for specified SOP Instances, and handles N-EVENT-REPORT responses with per-instance verification results.
Definition at line 57 of file storage_commitment_scu.h.
Callback type for commitment results.
Invoked when an N-EVENT-REPORT is received with the commitment result.
Definition at line 73 of file storage_commitment_scu.h.
|
explicit |
Definition at line 23 of file storage_commitment_scu.cpp.
|
default |
|
staticnodiscardprivate |
Definition at line 134 of file storage_commitment_scu.cpp.
References kcenon::pacs::core::dicom_dataset::get_or_create_sequence(), kcenon::pacs::core::tags::referenced_sop_class_uid, kcenon::pacs::core::tags::referenced_sop_instance_uid, kcenon::pacs::core::tags::referenced_sop_sequence, kcenon::pacs::core::dicom_dataset::set_string(), kcenon::pacs::core::tags::transaction_uid, and kcenon::pacs::encoding::UI.
Referenced by request_commitment().


|
nodiscardnoexcept |
Definition at line 121 of file storage_commitment_scu.cpp.
References event_reports_received_.
|
nodiscard |
Handle an N-EVENT-REPORT-RQ received from the SCP.
Parses the event dataset to extract per-instance commitment status and invokes the registered callback.
| event_rq | The N-EVENT-REPORT-RQ message |
Definition at line 78 of file storage_commitment_scu.cpp.
References callback_, kcenon::pacs::network::dimse::dimse_message::command(), kcenon::pacs::network::dimse::dimse_message::dataset(), event_reports_received_, kcenon::pacs::network::dimse::dimse_message::has_dataset(), kcenon::pacs::pacs_error(), parse_event_report_dataset(), kcenon::pacs::error_codes::storage_commitment_missing_sequence, kcenon::pacs::error_codes::storage_commitment_unexpected_command, and kcenon::pacs::services::to_string().

|
staticnodiscardprivate |
Definition at line 159 of file storage_commitment_scu.cpp.
References kcenon::pacs::services::commitment_result::failed_references, kcenon::pacs::core::tags::failed_sop_sequence, kcenon::pacs::core::tags::failure_reason, kcenon::pacs::core::dicom_dataset::get_sequence(), kcenon::pacs::core::dicom_dataset::get_string(), kcenon::pacs::services::processing_failure, kcenon::pacs::core::tags::referenced_sop_class_uid, kcenon::pacs::core::tags::referenced_sop_instance_uid, kcenon::pacs::core::tags::referenced_sop_sequence, kcenon::pacs::services::sop_reference::sop_class_uid, kcenon::pacs::services::sop_reference::sop_instance_uid, kcenon::pacs::services::commitment_result::success_references, kcenon::pacs::services::commitment_result::timestamp, kcenon::pacs::core::tags::transaction_uid, and kcenon::pacs::services::commitment_result::transaction_uid.
Referenced by handle_event_report().


|
nodiscard |
Send N-ACTION request to commit stored instances.
Builds and sends an N-ACTION-RQ with the specified Transaction UID and Referenced SOP Sequence to the connected SCP.
| assoc | The established association with the SCP |
| context_id | The presentation context ID for Storage Commitment |
| transaction_uid | Unique identifier for this commitment request |
| references | SOP Instance references to commit |
Definition at line 39 of file storage_commitment_scu.cpp.
References build_action_dataset(), kcenon::pacs::pacs_void_error(), requests_sent_, kcenon::pacs::network::association::send_dimse(), kcenon::pacs::services::storage_commitment_action_type_request, kcenon::pacs::error_codes::storage_commitment_missing_transaction_uid, kcenon::pacs::services::storage_commitment_push_model_sop_class_uid, and kcenon::pacs::services::storage_commitment_push_model_sop_instance_uid.

|
nodiscardnoexcept |
Definition at line 117 of file storage_commitment_scu.cpp.
References requests_sent_.
|
noexcept |
Definition at line 125 of file storage_commitment_scu.cpp.
References event_reports_received_, and requests_sent_.
| void kcenon::pacs::services::storage_commitment_scu::set_commitment_callback | ( | commitment_callback | cb | ) |
Set callback for commitment result notifications.
| cb | The callback function |
Definition at line 31 of file storage_commitment_scu.cpp.
References callback_.
|
private |
Definition at line 146 of file storage_commitment_scu.h.
Referenced by handle_event_report(), and set_commitment_callback().
|
private |
Definition at line 149 of file storage_commitment_scu.h.
Referenced by event_reports_received(), handle_event_report(), and reset_statistics().
|
private |
Definition at line 145 of file storage_commitment_scu.h.
|
private |
Definition at line 148 of file storage_commitment_scu.h.
Referenced by request_commitment(), requests_sent(), and reset_statistics().