177 std::chrono::system_clock::now()};
180 [[nodiscard]] std::chrono::seconds
uptime() const noexcept {
181 return std::chrono::duration_cast<std::chrono::seconds>(
187 return std::to_string(
major) +
"." + std::to_string(
minor) +
"." +
188 std::to_string(
patch);
219 std::chrono::system_clock::now()};
constexpr std::string_view to_string(health_level level) noexcept
Convert health level to string representation.
health_level
Overall health level indicator.
@ healthy
All components healthy, system fully operational.
@ degraded
Some non-critical components degraded, system operational.
@ unhealthy
Critical components failing, system may not function correctly.
DICOM association statistics.
std::uint32_t active_associations
Number of currently active associations.
std::uint64_t failed_associations
Number of failed associations.
std::uint32_t max_associations
Maximum concurrent associations allowed.
std::uint64_t total_associations
Total associations since server start.
Database connection health information.
std::optional< std::chrono::milliseconds > response_time
Database response time in milliseconds.
std::optional< std::string > error_message
Error message if connection failed.
bool connected
Whether database connection is active.
std::optional< std::chrono::system_clock::time_point > last_connected
Last successful connection timestamp.
std::uint32_t active_connections
Number of active database connections.
Comprehensive health status of the PACS system.
void update_level() noexcept
Calculate overall health level from component status.
storage_status storage
Storage subsystem status.
version_info version
Version and uptime information.
health_level level
Overall health level.
std::optional< std::string > message
Optional human-readable status message.
bool is_operational() const noexcept
Check if the system is at least operational.
database_status database
Database connection status.
std::chrono::system_clock::time_point timestamp
Timestamp of this health check.
bool is_healthy() const noexcept
Check if the system is healthy.
association_metrics associations
DICOM association metrics.
storage_metrics metrics
Storage operation metrics.
DICOM storage operation statistics.
std::uint64_t successful_stores
Successful C-STORE operations.
std::uint64_t total_instances
Total DICOM instances stored.
std::uint64_t total_studies
Total studies in the archive.
std::uint64_t failed_stores
Failed C-STORE operations.
std::uint64_t total_series
Total series in the archive.
Storage subsystem health information.
bool writable
Whether storage is writable.
std::optional< std::string > error_message
Error message if storage check failed.
double usage_percent() const noexcept
Storage usage percentage (0-100)
std::uint64_t used_bytes
Used storage space in bytes.
std::uint64_t available_bytes
Available storage space in bytes.
bool readable
Whether storage is readable.
std::uint64_t total_bytes
Total storage capacity in bytes.
PACS system version information.
std::chrono::system_clock::time_point startup_time
Server startup timestamp.
std::string build_id
Build identifier (e.g., git commit hash)
std::uint16_t major
Major version number.
std::string version_string() const
Get version as string (e.g., "1.0.0")
std::chrono::seconds uptime() const noexcept
Calculate uptime duration.
std::uint16_t patch
Patch version number.
std::uint16_t minor
Minor version number.