33class access_control_manager;
38class oauth2_middleware;
52class remote_node_manager;
152 std::shared_ptr<security::access_control_manager> manager);
158 void set_database(std::shared_ptr<storage::index_database> database);
170 void set_node_manager(std::shared_ptr<client::remote_node_manager> manager);
195 std::shared_ptr<auth::oauth2_middleware> middleware);
226 [[nodiscard]]
bool is_running() const noexcept;
240 [[nodiscard]] std::uint16_t
port() const noexcept;
REST API server for PACS administration and monitoring.
rest_server & operator=(rest_server &&other) noexcept
void start_async()
Start the server (non-blocking)
void set_routing_manager(std::shared_ptr< client::routing_manager > manager)
Set routing manager for auto-forwarding rules.
void set_oauth2_middleware(std::shared_ptr< auth::oauth2_middleware > middleware)
Set OAuth 2.0 middleware for DICOMweb endpoint authorization.
void set_node_manager(std::shared_ptr< client::remote_node_manager > manager)
Set remote node manager for remote PACS node management.
rest_server()
Construct REST server with default configuration.
void set_health_checker(std::shared_ptr< monitoring::health_checker > checker)
Set health checker for /api/v1/system/status endpoint.
bool is_running() const noexcept
Check if server is currently running.
void set_access_control_manager(std::shared_ptr< security::access_control_manager > manager)
Set access control manager for security.
void set_dicom_server(std::shared_ptr< network::dicom_server > server)
Set DICOM server for live association management.
void set_job_manager(std::shared_ptr< client::job_manager > manager)
Set job manager for async DICOM operations.
const rest_server_config & config() const noexcept
Get current configuration.
rest_server(rest_server &&other) noexcept
Movable.
void wait()
Wait for server to stop.
rest_server & operator=(const rest_server &)=delete
void stop()
Stop the server.
void set_config(const rest_server_config &config)
Update configuration (requires restart to apply)
rest_server(const rest_server &)=delete
Non-copyable.
void start()
Start the server (blocking)
void set_file_storage(std::shared_ptr< storage::file_storage > storage)
Set file storage for DICOM instance persistence (STOW-RS)
void set_database(std::shared_ptr< storage::index_database > database)
Set index database for patient/study/series endpoints.
~rest_server()
Destructor - stops server if running.
void set_metrics_provider(std::shared_ptr< monitoring::pacs_metrics > metrics)
Set metrics provider for /api/v1/system/metrics endpoint.
std::uint16_t port() const noexcept
Get the actual port the server is listening on.
std::unique_ptr< impl > impl_
Configuration for REST API server.
Implementation details for rest_server.
Configuration options for the REST server.