|
PACS System 0.1.0
PACS DICOM system library
|
#include <mpps_scp.h>


Public Member Functions | |
| mpps_scp (std::shared_ptr< di::ILogger > logger=nullptr) | |
| Construct MPPS SCP with optional logger. | |
| ~mpps_scp () override=default | |
| void | set_create_handler (mpps_create_handler handler) |
| Set the N-CREATE handler function. | |
| void | set_set_handler (mpps_set_handler handler) |
| Set the N-SET handler function. | |
| std::vector< std::string > | supported_sop_classes () const override |
| Get supported SOP Class UIDs. | |
| 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 (N-CREATE-RQ or N-SET-RQ) | |
| std::string_view | service_name () const noexcept override |
| Get the service name. | |
| size_t | creates_processed () const noexcept |
| Get total number of N-CREATE requests processed. | |
| size_t | sets_processed () const noexcept |
| Get total number of N-SET requests processed. | |
| size_t | mpps_completed () const noexcept |
| Get number of MPPS completed successfully. | |
| size_t | mpps_discontinued () const noexcept |
| Get number of MPPS discontinued. | |
| void | reset_statistics () noexcept |
| Reset statistics counters. | |
Public Member Functions inherited from kcenon::pacs::services::scp_service | |
| scp_service (std::shared_ptr< di::ILogger > logger=nullptr) | |
| Construct SCP service with optional logger. | |
| virtual | ~scp_service ()=default |
| scp_service (const scp_service &)=delete | |
| scp_service & | operator= (const scp_service &)=delete |
| scp_service (scp_service &&)=default | |
| scp_service & | operator= (scp_service &&)=default |
| void | set_logger (std::shared_ptr< di::ILogger > logger) |
| Set the logger instance. | |
| const std::shared_ptr< di::ILogger > & | logger () const noexcept |
| Get the current logger instance. | |
| bool | supports_sop_class (std::string_view sop_class_uid) const |
| Check if this service supports a specific SOP Class. | |
Private Member Functions | |
| network::Result< std::monostate > | handle_n_create (network::association &assoc, uint8_t context_id, const network::dimse::dimse_message &request) |
| Handle N-CREATE request. | |
| network::Result< std::monostate > | handle_n_set (network::association &assoc, uint8_t context_id, const network::dimse::dimse_message &request) |
| Handle N-SET request. | |
| network::Result< std::monostate > | send_n_create_response (network::association &assoc, uint8_t context_id, uint16_t message_id, const std::string &sop_instance_uid, network::dimse::status_code status) |
| Send N-CREATE response. | |
| network::Result< std::monostate > | send_n_set_response (network::association &assoc, uint8_t context_id, uint16_t message_id, const std::string &sop_instance_uid, network::dimse::status_code status) |
| Send N-SET response. | |
Private Attributes | |
| mpps_create_handler | create_handler_ |
| mpps_set_handler | set_handler_ |
| std::atomic< size_t > | creates_processed_ {0} |
| std::atomic< size_t > | sets_processed_ {0} |
| std::atomic< size_t > | mpps_completed_ {0} |
| std::atomic< size_t > | mpps_discontinued_ {0} |
Additional Inherited Members | |
Protected Attributes inherited from kcenon::pacs::services::scp_service | |
| std::shared_ptr< di::ILogger > | logger_ |
| Logger instance for service logging. | |
Definition at line 231 of file mpps_scp.h.
|
explicit |
Construct MPPS SCP with optional logger.
| logger | Logger instance for service logging (nullptr uses null_logger) |
Definition at line 23 of file mpps_scp.cpp.
|
overridedefault |
|
nodiscardnoexcept |
Get total number of N-CREATE requests processed.
Definition at line 77 of file mpps_scp.cpp.
References creates_processed_.
|
nodiscardoverridevirtual |
Handle an incoming DIMSE message (N-CREATE-RQ or N-SET-RQ)
Processes N-CREATE and N-SET requests for MPPS management.
| assoc | The association on which the message was received |
| context_id | The presentation context ID for the message |
| request | The incoming N-CREATE-RQ or N-SET-RQ message |
Implements kcenon::pacs::services::scp_service.
Definition at line 46 of file mpps_scp.cpp.
References kcenon::pacs::network::dimse::dimse_message::command(), handle_n_create(), handle_n_set(), kcenon::pacs::error_codes::mpps_unexpected_command, kcenon::pacs::pacs_void_error(), and kcenon::pacs::services::to_string().

|
nodiscardprivate |
Handle N-CREATE request.
Creates a new MPPS instance with IN PROGRESS status.
| assoc | The association |
| context_id | The presentation context ID |
| request | The N-CREATE-RQ message |
Definition at line 104 of file mpps_scp.cpp.
References kcenon::pacs::network::dimse::dimse_message::affected_sop_class_uid(), kcenon::pacs::network::dimse::dimse_message::affected_sop_instance_uid(), create_handler_, creates_processed_, kcenon::pacs::services::mpps_instance::data, kcenon::pacs::network::dimse::dimse_message::dataset(), kcenon::pacs::network::dimse::dimse_message::has_dataset(), kcenon::pacs::services::in_progress, kcenon::pacs::network::dimse::dimse_message::message_id(), kcenon::pacs::error_codes::mpps_handler_not_set, kcenon::pacs::services::mpps_sop_class_uid, kcenon::pacs::pacs_void_error(), kcenon::pacs::services::parse_mpps_status(), kcenon::pacs::services::mpps_tags::performed_procedure_step_status, kcenon::pacs::services::mpps_tags::performed_station_ae_title, send_n_create_response(), kcenon::pacs::services::mpps_instance::sop_instance_uid, kcenon::pacs::services::mpps_instance::station_ae, and kcenon::pacs::services::mpps_instance::status.
Referenced by handle_message().


|
nodiscardprivate |
Handle N-SET request.
Updates an existing MPPS instance to COMPLETED or DISCONTINUED.
| assoc | The association |
| context_id | The presentation context ID |
| request | The N-SET-RQ message |
Definition at line 189 of file mpps_scp.cpp.
References kcenon::pacs::network::dimse::dimse_message::affected_sop_class_uid(), kcenon::pacs::network::dimse::dimse_message::affected_sop_instance_uid(), kcenon::pacs::network::dimse::dimse_message::command_set(), kcenon::pacs::services::completed, kcenon::pacs::network::dimse::dimse_message::dataset(), kcenon::pacs::services::discontinued, kcenon::pacs::network::dimse::dimse_message::has_dataset(), kcenon::pacs::services::in_progress, kcenon::pacs::network::dimse::dimse_message::message_id(), mpps_completed_, mpps_discontinued_, kcenon::pacs::error_codes::mpps_handler_not_set, kcenon::pacs::services::mpps_sop_class_uid, kcenon::pacs::pacs_void_error(), kcenon::pacs::services::parse_mpps_status(), kcenon::pacs::services::mpps_tags::performed_procedure_step_status, send_n_set_response(), set_handler_, and sets_processed_.
Referenced by handle_message().


|
nodiscardnoexcept |
Get number of MPPS completed successfully.
Definition at line 85 of file mpps_scp.cpp.
References mpps_completed_.
|
nodiscardnoexcept |
Get number of MPPS discontinued.
Definition at line 89 of file mpps_scp.cpp.
References mpps_discontinued_.
|
noexcept |
Reset statistics counters.
Definition at line 93 of file mpps_scp.cpp.
References creates_processed_, mpps_completed_, mpps_discontinued_, and sets_processed_.
|
nodiscardprivate |
Send N-CREATE response.
| assoc | The association |
| context_id | The presentation context ID |
| message_id | The original request message ID |
| sop_instance_uid | The SOP Instance UID |
| status | The response status code |
Definition at line 291 of file mpps_scp.cpp.
References kcenon::pacs::services::mpps_sop_class_uid, and kcenon::pacs::network::association::send_dimse().
Referenced by handle_n_create().


|
nodiscardprivate |
Send N-SET response.
| assoc | The association |
| context_id | The presentation context ID |
| message_id | The original request message ID |
| sop_instance_uid | The SOP Instance UID |
| status | The response status code |
Definition at line 314 of file mpps_scp.cpp.
References kcenon::pacs::services::mpps_sop_class_uid, and kcenon::pacs::network::association::send_dimse().
Referenced by handle_n_set().


|
nodiscardoverridevirtualnoexcept |
Get the service name.
Implements kcenon::pacs::services::scp_service.
Definition at line 69 of file mpps_scp.cpp.
| void kcenon::pacs::services::mpps_scp::set_create_handler | ( | mpps_create_handler | handler | ) |
Set the N-CREATE handler function.
The handler is called for each N-CREATE request to create a new MPPS instance in the database or forward to RIS/HIS.
| handler | The N-CREATE handler function |
Definition at line 30 of file mpps_scp.cpp.
References create_handler_.
| void kcenon::pacs::services::mpps_scp::set_set_handler | ( | mpps_set_handler | handler | ) |
Set the N-SET handler function.
The handler is called for each N-SET request to update an existing MPPS instance with COMPLETED or DISCONTINUED status.
| handler | The N-SET handler function |
Definition at line 34 of file mpps_scp.cpp.
References set_handler_.
|
nodiscardnoexcept |
Get total number of N-SET requests processed.
Definition at line 81 of file mpps_scp.cpp.
References sets_processed_.
|
nodiscardoverridevirtual |
Get supported SOP Class UIDs.
Implements kcenon::pacs::services::scp_service.
Definition at line 42 of file mpps_scp.cpp.
References kcenon::pacs::services::mpps_sop_class_uid.
|
private |
Definition at line 413 of file mpps_scp.h.
Referenced by handle_n_create(), and set_create_handler().
|
private |
Definition at line 416 of file mpps_scp.h.
Referenced by creates_processed(), handle_n_create(), and reset_statistics().
|
private |
Definition at line 418 of file mpps_scp.h.
Referenced by handle_n_set(), mpps_completed(), and reset_statistics().
|
private |
Definition at line 419 of file mpps_scp.h.
Referenced by handle_n_set(), mpps_discontinued(), and reset_statistics().
|
private |
Definition at line 414 of file mpps_scp.h.
Referenced by handle_n_set(), and set_set_handler().
|
private |
Definition at line 417 of file mpps_scp.h.
Referenced by handle_n_set(), reset_statistics(), and sets_processed().