33#ifndef KCENON_HAS_COMMON_SYSTEM
34#define KCENON_HAS_COMMON_SYSTEM 0
37#if KCENON_HAS_COMMON_SYSTEM
38#include <kcenon/common/patterns/result.h>
44class i_protocol_client;
72#if KCENON_HAS_COMMON_SYSTEM
88 error_info(
int c,
const std::string& msg,
const std::string& mod =
"")
257 [[nodiscard]]
static std::unique_ptr<network::dicom_server>
298 const std::string& host,
300 std::chrono::milliseconds timeout = std::chrono::seconds{30});
332 const tls_config& config);
348 std::shared_ptr<network_system::session::messaging_session> session);
357 std::shared_ptr<network_system::session::secure_session> session);
366 std::shared_ptr<kcenon::network::interfaces::i_session> session);
Simple result type for error handling when common_system is unavailable.
const error_info & error() const
const T & value() const &
bool is_ok() const noexcept
bool is_err() const noexcept
Result(const error_info &err)
Adapter for integrating network_system for DICOM protocol.
static Result< std::monostate > configure_tls(const tls_config &config)
std::function< void(session_ptr, std::error_code)> error_callback
Error callback type.
static std::unique_ptr< network::dicom_server > create_server(const network::server_config &config, const tls_config &tls_cfg={})
Create a DICOM server using network_system.
std::shared_ptr< dicom_session > session_ptr
Session pointer type.
std::function< void(const std::string &)> disconnection_callback
Disconnection callback type.
~network_adapter()=delete
static session_ptr wrap_session(std::shared_ptr< network_system::session::messaging_session > session)
Wrap a network_system session for DICOM communication.
std::function< void(session_ptr)> connection_callback
Connection callback type.
static Result< session_ptr > connect(const connection_config &config)
network_adapter & operator=(const network_adapter &)=delete
network_adapter(const network_adapter &)=delete
kcenon::common::Result< T > Result
Result type alias for PACS operations.
kcenon::common::error_info error_info
Error information type.
kcenon::network::session::messaging_session messaging_session
kcenon::network::session::secure_session secure_session
DICOM Server configuration structures.
Configuration for client connections.
std::string host
Remote host address.
connection_config(std::string h, uint16_t p)
std::chrono::milliseconds timeout
Connection timeout.
tls_config tls
TLS configuration (optional)
connection_config()=default
uint16_t port
Remote port.
Simple error info for fallback when common_system is unavailable.
error_info(int c, const std::string &msg, const std::string &mod="")
error_info(const std::string &msg)
Configuration for TLS/SSL secure transport.
bool enabled
Enable TLS for connections.
enum kcenon::pacs::integration::tls_config::tls_version min_version
bool is_valid() const noexcept
Check if TLS configuration is valid.
std::filesystem::path cert_path
Path to certificate file (PEM format)
tls_version
Minimum TLS version (1.2 recommended for DICOM)
std::filesystem::path ca_path
Path to CA certificate file for verification (optional)
bool verify_peer
Verify peer certificate.
std::filesystem::path key_path
Path to private key file (PEM format)