PACS System 0.1.0
PACS DICOM system library
Loading...
Searching...
No Matches
system_endpoints.h
Go to the documentation of this file.
1// BSD 3-Clause License
2// Copyright (c) 2021-2025, 🍀☀🌕🌥 🌊
3// See the LICENSE file in the project root for full license information.
4
18#pragma once
19
20#include <memory>
21
23class health_checker;
24class pacs_metrics;
25} // namespace kcenon::pacs::monitoring
26
28class database_metrics_service;
29} // namespace kcenon::pacs::services::monitoring
30
31namespace kcenon::pacs::security {
32class access_control_manager;
33} // namespace kcenon::pacs::security
34
36class oauth2_middleware;
37} // namespace kcenon::pacs::web::auth
38
39namespace kcenon::pacs::storage {
40class index_database;
41class file_storage;
42} // namespace kcenon::pacs::storage
43
44namespace kcenon::pacs::network {
45class dicom_server;
46} // namespace kcenon::pacs::network
47
48namespace kcenon::pacs::client {
49class remote_node_manager;
50class job_manager;
51class routing_manager;
52} // namespace kcenon::pacs::client
53
54namespace kcenon::pacs::web {
55
56struct rest_server_config;
57
64 const rest_server_config *config{nullptr};
65
67 std::shared_ptr<monitoring::health_checker> health_checker;
68
70 std::shared_ptr<monitoring::pacs_metrics> metrics;
71
73 std::shared_ptr<security::access_control_manager> security_manager;
74
76 std::shared_ptr<storage::index_database> database;
77
79 std::shared_ptr<storage::file_storage> file_storage;
80
82 std::shared_ptr<client::remote_node_manager> node_manager;
83
85 std::shared_ptr<client::job_manager> job_manager;
86
88 std::shared_ptr<client::routing_manager> routing_manager;
89
91 std::shared_ptr<network::dicom_server> dicom_server;
92
94 std::shared_ptr<services::monitoring::database_metrics_service> database_metrics;
95
97 std::shared_ptr<auth::oauth2_middleware> oauth2;
98};
99
100namespace endpoints {
101
102// Internal function - implementation in cpp file
103// Registers system endpoints with the Crow app
104// Called from rest_server.cpp
105
106} // namespace endpoints
107
108} // namespace kcenon::pacs::web
Configuration options for the REST server.
Definition rest_config.h:29
Shared context for REST endpoints.
std::shared_ptr< security::access_control_manager > security_manager
Access control manager for security.
std::shared_ptr< client::remote_node_manager > node_manager
Remote node manager for remote PACS node management.
std::shared_ptr< network::dicom_server > dicom_server
DICOM server for live association management.
std::shared_ptr< client::job_manager > job_manager
Job manager for async DICOM operations.
std::shared_ptr< auth::oauth2_middleware > oauth2
OAuth 2.0 middleware for DICOMweb endpoint authorization.
std::shared_ptr< storage::file_storage > file_storage
File storage for DICOM instance persistence.
const rest_server_config * config
Current server configuration (read-only)
std::shared_ptr< client::routing_manager > routing_manager
Routing manager for auto-forwarding rules.
std::shared_ptr< monitoring::pacs_metrics > metrics
Metrics provider for metrics endpoint.
std::shared_ptr< storage::index_database > database
Index database for patient/study/series data access.
std::shared_ptr< monitoring::health_checker > health_checker
Health checker for status endpoint.
std::shared_ptr< services::monitoring::database_metrics_service > database_metrics
Database metrics service for monitoring.