Abstract base class for DICOM SCP services.
More...
#include <scp_service.h>
Abstract base class for DICOM SCP services.
Provides a common interface for all SCP service implementations. Each derived class handles specific SOP Classes and their corresponding DIMSE operations.
- Example: Usage
public:
std::vector<std::string> supported_sop_classes() const override {
return {"1.2.840.10008.1.1"};
}
};
DICOM Association management class.
Abstract base class for DICOM SCP services.
Verification SCP service for handling C-ECHO requests.
Definition at line 53 of file scp_service.h.
◆ scp_service() [1/3]
| kcenon::pacs::services::scp_service::scp_service |
( |
std::shared_ptr< di::ILogger > | logger = nullptr | ) |
|
|
inlineexplicit |
Construct SCP service with optional logger.
- Parameters
-
| logger | Logger instance for service logging (nullptr uses null_logger) |
Definition at line 64 of file scp_service.h.
const std::shared_ptr< di::ILogger > & logger() const noexcept
Get the current logger instance.
std::shared_ptr< di::ILogger > logger_
Logger instance for service logging.
std::shared_ptr< ILogger > null_logger()
Get a shared null logger instance.
◆ ~scp_service()
| virtual kcenon::pacs::services::scp_service::~scp_service |
( |
| ) |
|
|
virtualdefault |
◆ scp_service() [2/3]
| kcenon::pacs::services::scp_service::scp_service |
( |
const scp_service & | | ) |
|
|
delete |
◆ scp_service() [3/3]
| kcenon::pacs::services::scp_service::scp_service |
( |
scp_service && | | ) |
|
|
default |
◆ handle_message()
Handle an incoming DIMSE message.
Processes the request and sends appropriate response(s) via the association.
- Parameters
-
| assoc | The association on which the message was received |
| context_id | The presentation context ID for the message |
| request | The incoming DIMSE request message |
- Returns
- Success or error result
Implemented in kcenon::pacs::services::mpps_scp, kcenon::pacs::services::n_get_scp, kcenon::pacs::services::print_scp, kcenon::pacs::services::query_scp, kcenon::pacs::services::retrieve_scp, kcenon::pacs::services::storage_commitment_scp, kcenon::pacs::services::storage_scp, kcenon::pacs::services::ups_push_scp, kcenon::pacs::services::ups_query_scp, kcenon::pacs::services::ups_watch_scp, kcenon::pacs::services::verification_scp, and kcenon::pacs::services::worklist_scp.
◆ logger()
| const std::shared_ptr< di::ILogger > & kcenon::pacs::services::scp_service::logger |
( |
| ) |
const |
|
inlinenodiscardnoexcept |
◆ operator=() [1/2]
◆ operator=() [2/2]
◆ service_name()
| virtual std::string_view kcenon::pacs::services::scp_service::service_name |
( |
| ) |
const |
|
nodiscardpure virtualnoexcept |
Get the service name for logging/debugging.
- Returns
- Human-readable service name
Implemented in kcenon::pacs::services::mpps_scp, kcenon::pacs::services::n_get_scp, kcenon::pacs::services::print_scp, kcenon::pacs::services::query_scp, kcenon::pacs::services::retrieve_scp, kcenon::pacs::services::storage_commitment_scp, kcenon::pacs::services::storage_scp, kcenon::pacs::services::ups_push_scp, kcenon::pacs::services::ups_query_scp, kcenon::pacs::services::ups_watch_scp, kcenon::pacs::services::verification_scp, and kcenon::pacs::services::worklist_scp.
◆ set_logger()
| void kcenon::pacs::services::scp_service::set_logger |
( |
std::shared_ptr< di::ILogger > | logger | ) |
|
|
inline |
◆ supported_sop_classes()
| virtual std::vector< std::string > kcenon::pacs::services::scp_service::supported_sop_classes |
( |
| ) |
const |
|
nodiscardpure virtual |
Get the list of SOP Class UIDs supported by this service.
- Returns
- Vector of SOP Class UIDs that this service can handle
Implemented in kcenon::pacs::services::mpps_scp, kcenon::pacs::services::n_get_scp, kcenon::pacs::services::print_scp, kcenon::pacs::services::query_scp, kcenon::pacs::services::retrieve_scp, kcenon::pacs::services::storage_commitment_scp, kcenon::pacs::services::storage_scp, kcenon::pacs::services::ups_push_scp, kcenon::pacs::services::ups_query_scp, kcenon::pacs::services::ups_watch_scp, kcenon::pacs::services::verification_scp, and kcenon::pacs::services::worklist_scp.
Referenced by supports_sop_class().
◆ supports_sop_class()
| bool kcenon::pacs::services::scp_service::supports_sop_class |
( |
std::string_view | sop_class_uid | ) |
const |
|
inlinenodiscard |
Check if this service supports a specific SOP Class.
- Parameters
-
| sop_class_uid | The SOP Class UID to check |
- Returns
- true if the SOP Class is supported
Definition at line 140 of file scp_service.h.
140 {
142 for (
const auto&
uid : classes) {
143 if (
uid == sop_class_uid) {
144 return true;
145 }
146 }
147 return false;
148 }
virtual std::vector< std::string > supported_sop_classes() const =0
Get the list of SOP Class UIDs supported by this service.
References supported_sop_classes(), and uid.
Referenced by kcenon::pacs::services::n_get_scp::handle_message().
◆ logger_
| std::shared_ptr<di::ILogger> kcenon::pacs::services::scp_service::logger_ |
|
protected |
The documentation for this class was generated from the following file: