PACS System 0.1.0
PACS DICOM system library
Loading...
Searching...
No Matches
xds_audit_events.cpp File Reference

Implementation of the XDS.b audit event sinks. More...

#include "kcenon/pacs/security/xds_audit_events.h"
#include "kcenon/pacs/security/atna_service_auditor.h"
#include <chrono>
#include <memory>
#include <string>
#include <utility>
#include <vector>
Include dependency graph for xds_audit_events.cpp:

Go to the source code of this file.

Namespaces

namespace  kcenon
 
namespace  kcenon::pacs
 
namespace  kcenon::pacs::security
 

Functions

atna_audit_message kcenon::pacs::security::build_iti41_audit_message (const std::string &audit_source_id, const xds_iti41_event &e, const std::string &local_participant_id)
 
atna_audit_message kcenon::pacs::security::build_iti43_audit_message (const std::string &audit_source_id, const xds_iti43_event &e, const std::string &local_participant_id)
 
atna_audit_message kcenon::pacs::security::build_iti18_audit_message (const std::string &audit_source_id, const xds_iti18_event &e, const std::string &local_participant_id)
 
std::shared_ptr< xds_audit_sink > kcenon::pacs::security::make_null_xds_audit_sink ()
 
std::shared_ptr< xds_audit_sink > kcenon::pacs::security::make_atna_xds_audit_sink (atna_service_auditor &auditor, std::string local_participant_id)
 

Detailed Description

Implementation of the XDS.b audit event sinks.

RFC 3881 / DICOM PS3.15 A.5 / IHE ITI TF-2 event code mapping used here (aligned with the reviewer's Task-2 checklist):

ITI-18 RegistryStoredQuery EventID DCM 110112 Query EventAction E (Execute) EventTypeCode urn:ihe:iti:2007:RegistryStoredQuery (code system "IHETransactions")

ITI-41 Provide and Register Document Set-b (Source-side) EventID DCM 110106 Export EventAction C (Create) EventTypeCode ITI-41 (code system "IHETransactions")

ITI-43 Retrieve Document Set (Consumer-side) EventID DCM 110107 Import EventAction R (Read) EventTypeCode ITI-43 (code system "IHETransactions")

Messages are built by free functions (build_iti18/41/43_audit_message) so the integration tests can assert the exact codes without spinning up a syslog transport. The atna_sink delegates to those builders and routes the result through atna_service_auditor::submit_audit_message so emission stays serialized and the enabled-flag / statistics path is shared with every other audit method (reviewer cross-cut ยง3).

Definition in file xds_audit_events.cpp.

Variable Documentation

◆ auditor_

atna_service_auditor* auditor_
private

Definition at line 290 of file xds_audit_events.cpp.

◆ local_participant_id_

std::string local_participant_id_
private

Definition at line 291 of file xds_audit_events.cpp.