PACS System 0.1.0
PACS DICOM system library
Loading...
Searching...
No Matches
kcenon::pacs::client::remote_node Struct Reference

Remote PACS node configuration and status. More...

#include <remote_node.h>

Collaboration diagram for kcenon::pacs::client::remote_node:
Collaboration graph

Public Member Functions

bool supports_query_retrieve () const noexcept
 Check if node supports any query/retrieve operation.
 
bool is_online () const noexcept
 Check if node is currently reachable.
 
bool has_tls () const noexcept
 Check if TLS is enabled for this node.
 
std::string address () const
 Get connection address string (host:port)
 

Public Attributes

std::string node_id
 Unique identifier for this node.
 
std::string name
 Human-readable display name.
 
std::string ae_title
 DICOM Application Entity Title.
 
std::string host
 IP address or hostname.
 
uint16_t port {104}
 DICOM port (default: 104)
 
bool supports_find {true}
 C-FIND support (Query)
 
bool supports_move {true}
 C-MOVE support (Retrieve)
 
bool supports_get {false}
 C-GET support (alternative retrieve)
 
bool supports_store {true}
 C-STORE support (Send)
 
bool supports_worklist {false}
 Modality Worklist support.
 
std::chrono::seconds connection_timeout {30}
 TCP connection timeout.
 
std::chrono::seconds dimse_timeout {60}
 DIMSE operation timeout.
 
size_t max_associations {4}
 Max concurrent associations.
 
std::optional< tls_config > tls
 TLS configuration (if secure)
 
node_status status {node_status::unknown}
 Current connectivity status.
 
std::chrono::system_clock::time_point last_verified
 Last successful verification.
 
std::chrono::system_clock::time_point last_error
 Last error time.
 
std::string last_error_message
 Last error description.
 
int64_t pk {0}
 Primary key (0 if not persisted)
 
std::chrono::system_clock::time_point created_at
 Creation timestamp.
 
std::chrono::system_clock::time_point updated_at
 Last update timestamp.
 

Detailed Description

Remote PACS node configuration and status.

Represents a remote PACS server that can be connected to for DICOM operations. Includes connection parameters, supported services, and runtime status information.

Example:
node.node_id = "external-pacs-1";
node.name = "Hospital PACS";
node.ae_title = "HOSP_PACS";
node.host = "192.168.1.100";
node.port = 104;
Remote PACS node configuration and status.
std::string ae_title
DICOM Application Entity Title.
std::string name
Human-readable display name.
uint16_t port
DICOM port (default: 104)
std::string node_id
Unique identifier for this node.
std::string host
IP address or hostname.

Definition at line 130 of file remote_node.h.

Member Function Documentation

◆ address()

std::string kcenon::pacs::client::remote_node::address ( ) const
inlinenodiscard

Get connection address string (host:port)

Definition at line 210 of file remote_node.h.

210 {
211 return host + ":" + std::to_string(port);
212 }

References host, and port.

◆ has_tls()

bool kcenon::pacs::client::remote_node::has_tls ( ) const
inlinenodiscardnoexcept

Check if TLS is enabled for this node.

Definition at line 203 of file remote_node.h.

203 {
204 return tls.has_value() && tls->is_configured();
205 }
std::optional< tls_config > tls
TLS configuration (if secure)

References tls.

◆ is_online()

bool kcenon::pacs::client::remote_node::is_online ( ) const
inlinenodiscardnoexcept

Check if node is currently reachable.

Definition at line 196 of file remote_node.h.

196 {
197 return status == node_status::online;
198 }
@ online
Node is responding to C-ECHO.
node_status status
Current connectivity status.

References kcenon::pacs::client::online, and status.

◆ supports_query_retrieve()

bool kcenon::pacs::client::remote_node::supports_query_retrieve ( ) const
inlinenodiscardnoexcept

Check if node supports any query/retrieve operation.

Definition at line 189 of file remote_node.h.

189 {
191 }
bool supports_move
C-MOVE support (Retrieve)
bool supports_get
C-GET support (alternative retrieve)
bool supports_find
C-FIND support (Query)

References supports_find, supports_get, and supports_move.

Member Data Documentation

◆ ae_title

std::string kcenon::pacs::client::remote_node::ae_title

◆ connection_timeout

std::chrono::seconds kcenon::pacs::client::remote_node::connection_timeout {30}

◆ created_at

std::chrono::system_clock::time_point kcenon::pacs::client::remote_node::created_at

Creation timestamp.

Definition at line 179 of file remote_node.h.

Referenced by kcenon::pacs::storage::node_repository::parse_row().

◆ dimse_timeout

std::chrono::seconds kcenon::pacs::client::remote_node::dimse_timeout {60}

DIMSE operation timeout.

Definition at line 156 of file remote_node.h.

156{60};

Referenced by kcenon::pacs::storage::node_repository::parse_row(), and kcenon::pacs::client::remote_node_manager::impl::perform_echo().

◆ host

std::string kcenon::pacs::client::remote_node::host

◆ last_error

std::chrono::system_clock::time_point kcenon::pacs::client::remote_node::last_error

Last error time.

Definition at line 171 of file remote_node.h.

Referenced by kcenon::pacs::storage::node_repository::parse_row().

◆ last_error_message

std::string kcenon::pacs::client::remote_node::last_error_message

Last error description.

Definition at line 172 of file remote_node.h.

Referenced by kcenon::pacs::storage::node_repository::parse_row().

◆ last_verified

std::chrono::system_clock::time_point kcenon::pacs::client::remote_node::last_verified

Last successful verification.

Definition at line 170 of file remote_node.h.

Referenced by kcenon::pacs::storage::node_repository::parse_row().

◆ max_associations

size_t kcenon::pacs::client::remote_node::max_associations {4}

Max concurrent associations.

Definition at line 157 of file remote_node.h.

157{4};

Referenced by kcenon::pacs::storage::node_repository::parse_row().

◆ name

std::string kcenon::pacs::client::remote_node::name

Human-readable display name.

Definition at line 136 of file remote_node.h.

Referenced by kcenon::pacs::storage::node_repository::parse_row().

◆ node_id

◆ pk

int64_t kcenon::pacs::client::remote_node::pk {0}

Primary key (0 if not persisted)

Definition at line 178 of file remote_node.h.

178{0};

Referenced by kcenon::pacs::storage::node_repository::parse_row().

◆ port

uint16_t kcenon::pacs::client::remote_node::port {104}

◆ status

node_status kcenon::pacs::client::remote_node::status {node_status::unknown}

Current connectivity status.

Definition at line 169 of file remote_node.h.

@ unknown
Status not yet determined.

Referenced by is_online(), and kcenon::pacs::storage::node_repository::parse_row().

◆ supports_find

bool kcenon::pacs::client::remote_node::supports_find {true}

C-FIND support (Query)

Definition at line 145 of file remote_node.h.

145{true};

Referenced by kcenon::pacs::storage::node_repository::parse_row(), and supports_query_retrieve().

◆ supports_get

bool kcenon::pacs::client::remote_node::supports_get {false}

C-GET support (alternative retrieve)

Definition at line 147 of file remote_node.h.

147{false};

Referenced by kcenon::pacs::storage::node_repository::parse_row(), and supports_query_retrieve().

◆ supports_move

bool kcenon::pacs::client::remote_node::supports_move {true}

C-MOVE support (Retrieve)

Definition at line 146 of file remote_node.h.

146{true};

Referenced by kcenon::pacs::storage::node_repository::parse_row(), and supports_query_retrieve().

◆ supports_store

bool kcenon::pacs::client::remote_node::supports_store {true}

C-STORE support (Send)

Definition at line 148 of file remote_node.h.

148{true};

Referenced by kcenon::pacs::storage::node_repository::parse_row().

◆ supports_worklist

bool kcenon::pacs::client::remote_node::supports_worklist {false}

Modality Worklist support.

Definition at line 149 of file remote_node.h.

149{false};

Referenced by kcenon::pacs::storage::node_repository::parse_row().

◆ tls

std::optional<tls_config> kcenon::pacs::client::remote_node::tls

TLS configuration (if secure)

Definition at line 163 of file remote_node.h.

Referenced by has_tls().

◆ updated_at

std::chrono::system_clock::time_point kcenon::pacs::client::remote_node::updated_at

Last update timestamp.

Definition at line 180 of file remote_node.h.

Referenced by kcenon::pacs::storage::node_repository::parse_row().


The documentation for this struct was generated from the following file: