PACS System 0.1.0
PACS DICOM system library
Loading...
Searching...
No Matches
config.h
Go to the documentation of this file.
1
11#ifndef PACS_EXAMPLE_PACS_SERVER_CONFIG_HPP
12#define PACS_EXAMPLE_PACS_SERVER_CONFIG_HPP
13
14#include <chrono>
15#include <cstdint>
16#include <filesystem>
17#include <optional>
18#include <string>
19#include <vector>
20
21namespace kcenon::pacs::example {
22
28 std::string ae_title{"MY_PACS"};
29
31 uint16_t port{11112};
32
34 size_t max_associations{50};
35
37 std::chrono::seconds idle_timeout{60};
38};
39
45 std::filesystem::path directory{"./archive"};
46
48 std::string naming{"hierarchical"};
49
51 std::string duplicate_policy{"reject"};
52};
53
59 std::filesystem::path path{"./pacs.db"};
60
62 bool wal_mode{true};
63};
64
70 std::string level{"info"};
71
73 std::filesystem::path file;
74
76 bool console{true};
77};
78
84 std::vector<std::string> allowed_ae_titles;
85};
86
93
96
99
102
105
122 static auto parse_args(int argc, char* argv[])
123 -> std::optional<pacs_server_config>;
124
128 static void print_help();
129};
130
131} // namespace kcenon::pacs::example
132
133#endif // PACS_EXAMPLE_PACS_SERVER_CONFIG_HPP
Access control configuration.
Definition config.h:82
std::vector< std::string > allowed_ae_titles
Allowed AE titles (empty = accept all)
Definition config.h:84
Database configuration.
Definition config.h:57
bool wal_mode
Enable WAL (Write-Ahead Logging) mode for better concurrency.
Definition config.h:62
std::filesystem::path path
Path to SQLite database file.
Definition config.h:59
Logging configuration.
Definition config.h:68
std::filesystem::path file
Log file path (empty for console only)
Definition config.h:73
std::string level
Log level: "trace", "debug", "info", "warning", "error", "critical".
Definition config.h:70
bool console
Enable console output.
Definition config.h:76
Complete PACS server configuration.
Definition config.h:90
database_config database
Database settings.
Definition config.h:98
logging_config logging
Logging settings.
Definition config.h:101
access_control_config access_control
Access control settings.
Definition config.h:104
static void print_help()
Print help message to stdout.
Definition config.cpp:14
server_network_config server
Server network settings.
Definition config.h:92
storage_config storage
Storage settings.
Definition config.h:95
static auto parse_args(int argc, char *argv[]) -> std::optional< pacs_server_config >
Parse configuration from command line arguments.
Definition config.cpp:18
Server network configuration.
Definition config.h:26
uint16_t port
Port to listen on.
Definition config.h:31
std::chrono::seconds idle_timeout
Idle timeout for associations in seconds (0 = no timeout)
Definition config.h:37
std::string ae_title
Application Entity Title for this server (max 16 chars)
Definition config.h:28
size_t max_associations
Maximum concurrent associations (0 = unlimited)
Definition config.h:34
Storage configuration.
Definition config.h:43
std::filesystem::path directory
Root directory for DICOM file storage.
Definition config.h:45
std::string naming
File naming scheme: "hierarchical" or "flat".
Definition config.h:48