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


Public Member Functions | |
| n_get_scp (std::shared_ptr< di::ILogger > logger=nullptr) | |
| Construct N-GET SCP with optional logger. | |
| ~n_get_scp () override=default | |
| void | set_handler (n_get_handler handler) |
| Set the N-GET handler function. | |
| void | add_supported_sop_class (std::string sop_class_uid) |
| Add a SOP Class UID that this SCP supports. | |
| 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 N-GET-RQ message. | |
| std::string_view | service_name () const noexcept override |
| Get the service name. | |
| size_t | gets_processed () const noexcept |
| Get total number of N-GET requests processed. | |
| 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 > | send_n_get_response (network::association &assoc, uint8_t context_id, uint16_t message_id, const std::string &sop_class_uid, const std::string &sop_instance_uid, network::dimse::status_code status, core::dicom_dataset *dataset=nullptr) |
| Send N-GET response. | |
Private Attributes | |
| n_get_handler | handler_ |
| std::vector< std::string > | supported_sop_classes_ |
| std::atomic< size_t > | gets_processed_ {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 105 of file n_get_scp.h.
|
explicit |
Construct N-GET SCP with optional logger.
| logger | Logger instance (nullptr uses null_logger) |
Definition at line 25 of file n_get_scp.cpp.
|
overridedefault |
| void kcenon::pacs::services::n_get_scp::add_supported_sop_class | ( | std::string | sop_class_uid | ) |
Add a SOP Class UID that this SCP supports.
N-GET can be used with multiple SOP Classes (e.g., MPPS, Printer). By default, no SOP Classes are registered. Call this method to add supported SOP Classes.
| sop_class_uid | The SOP Class UID to support |
Definition at line 36 of file n_get_scp.cpp.
References supported_sop_classes_.
|
nodiscardnoexcept |
Get total number of N-GET requests processed.
Definition at line 131 of file n_get_scp.cpp.
References gets_processed_.
|
nodiscardoverridevirtual |
Handle an incoming N-GET-RQ message.
| assoc | The association on which the message was received |
| context_id | The presentation context ID |
| request | The incoming N-GET-RQ message |
Implements kcenon::pacs::services::scp_service.
Definition at line 48 of file n_get_scp.cpp.
References kcenon::pacs::network::dimse::dimse_message::attribute_identifier_list(), kcenon::pacs::network::dimse::dimse_message::command(), gets_processed_, handler_, kcenon::pacs::services::scp_service::logger_, kcenon::pacs::network::dimse::dimse_message::message_id(), kcenon::pacs::error_codes::n_get_handler_not_set, kcenon::pacs::error_codes::n_get_unexpected_command, kcenon::pacs::pacs_void_error(), kcenon::pacs::network::dimse::dimse_message::requested_sop_class_uid(), kcenon::pacs::network::dimse::dimse_message::requested_sop_instance_uid(), send_n_get_response(), kcenon::pacs::services::scp_service::supports_sop_class(), and kcenon::pacs::services::to_string().

|
noexcept |
Reset statistics counters.
Definition at line 135 of file n_get_scp.cpp.
References gets_processed_.
|
nodiscardprivate |
Send N-GET response.
Definition at line 143 of file n_get_scp.cpp.
References kcenon::pacs::network::association::send_dimse().
Referenced by handle_message().


|
nodiscardoverridevirtualnoexcept |
Get the service name.
Implements kcenon::pacs::services::scp_service.
Definition at line 123 of file n_get_scp.cpp.
| void kcenon::pacs::services::n_get_scp::set_handler | ( | n_get_handler | handler | ) |
Set the N-GET handler function.
The handler is called for each N-GET request to retrieve attributes from a managed SOP Instance.
| handler | The N-GET handler function |
Definition at line 32 of file n_get_scp.cpp.
References handler_.
|
nodiscardoverridevirtual |
Get supported SOP Class UIDs.
Implements kcenon::pacs::services::scp_service.
Definition at line 44 of file n_get_scp.cpp.
References supported_sop_classes_.
|
private |
Definition at line 214 of file n_get_scp.h.
Referenced by gets_processed(), handle_message(), and reset_statistics().
|
private |
Definition at line 211 of file n_get_scp.h.
Referenced by handle_message(), and set_handler().
|
private |
Definition at line 212 of file n_get_scp.h.
Referenced by add_supported_sop_class(), and supported_sop_classes().