52 return "ASSOCIATION_ESTABLISHED";
54 return "ASSOCIATION_RELEASED";
64 return "SECURITY_EVENT";
66 return "CONFIGURATION_CHANGE";
68 return "SYSTEM_STARTUP";
70 return "SYSTEM_SHUTDOWN";
90 -> std::optional<audit_event_type> {
91 if (str ==
"ASSOCIATION_ESTABLISHED") {
94 if (str ==
"ASSOCIATION_RELEASED") {
97 if (str ==
"C_STORE") {
100 if (str ==
"C_FIND") {
103 if (str ==
"C_MOVE") {
106 if (str ==
"C_GET") {
109 if (str ==
"SECURITY_EVENT") {
112 if (str ==
"CONFIGURATION_CHANGE") {
115 if (str ==
"SYSTEM_STARTUP") {
118 if (str ==
"SYSTEM_SHUTDOWN") {
121 if (str ==
"USER_LOGIN") {
124 if (str ==
"USER_LOGOUT") {
127 if (str ==
"DATA_ACCESS") {
130 if (str ==
"DATA_EXPORT") {
133 if (str ==
"ERROR") {
210 [[nodiscard]]
auto is_valid() const noexcept ->
bool {
auto parse_audit_event_type(std::string_view str) -> std::optional< audit_event_type >
Parse string to audit_event_type enum.
audit_outcome
Audit log outcome/status.
auto to_string(annotation_type type) -> std::string
Convert annotation_type to string.
audit_event_type
Audit event type enumeration.
@ association_established
Query parameters for audit log search.
std::optional< std::string > user_id
User ID filter (supports wildcards with '*')
size_t limit
Maximum number of results to return (0 = unlimited)
std::optional< std::string > study_uid
Study UID filter (exact match)
std::optional< std::string > date_from
Date range begin (inclusive, format: YYYY-MM-DD or YYYYMMDD)
std::optional< std::string > event_type
Event type filter (exact match)
std::optional< std::string > source_ae
Source AE filter (exact match)
size_t offset
Offset for pagination.
std::optional< std::string > date_to
Date range end (inclusive, format: YYYY-MM-DD or YYYYMMDD)
std::optional< std::string > outcome
Outcome filter (exact match)
auto has_criteria() const noexcept -> bool
Check if any filter criteria is set.
std::optional< std::string > patient_id
Patient ID filter (exact match)
Audit log record from the database.
std::string outcome
Outcome/status of the event.
std::string event_type
Event type.
std::string user_id
User ID or AE Title that initiated the action.
std::string patient_id
Patient ID (if applicable)
std::string details
Additional details in JSON format.
std::string message
Human-readable message.
auto is_valid() const noexcept -> bool
Check if this record has valid data.
std::chrono::system_clock::time_point timestamp
Timestamp of the event.
std::string source_ae
Source AE Title (for DICOM operations)
std::string study_uid
Study Instance UID (if applicable)
std::string target_ae
Target/Called AE Title (for DICOM operations)
std::string source_ip
Source IP address.
int64_t pk
Primary key (auto-generated)