20#include <kcenon/common/patterns/result.h>
27#include <shared_mutex>
110 [[nodiscard]]
auto get_or_create(std::string_view original_uid)
119 [[nodiscard]]
auto get_anonymized(std::string_view original_uid)
const
120 -> std::optional<std::string>;
128 [[nodiscard]]
auto get_original(std::string_view anonymized_uid)
const
129 -> std::optional<std::string>;
142 std::string_view original_uid,
143 std::string_view anonymized_uid
144 ) -> kcenon::common::VoidResult;
155 [[nodiscard]]
auto has_mapping(std::string_view original_uid)
const -> bool;
161 [[nodiscard]]
auto size() const -> std::
size_t;
167 [[nodiscard]] auto
empty() const ->
bool;
183 auto
remove(std::string_view original_uid) ->
bool;
193 [[nodiscard]] auto to_json() const -> std::
string;
200 [[nodiscard]] auto
from_json(std::string_view json)
std::map< std::string, std::string, std::less<> > anon_to_original_
Reverse mapping: anonymized -> original.
auto has_mapping(std::string_view original_uid) const -> bool
Check if an original UID has been mapped.
auto generate_uid() const -> std::string
Generate a new unique UID.
void clear()
Clear all mappings.
std::map< std::string, std::string, std::less<> > original_to_anon_
Forward mapping: original -> anonymized.
auto get_original(std::string_view anonymized_uid) const -> std::optional< std::string >
Get original UID from anonymized UID (reverse lookup)
std::string uid_root_
UID root for generated UIDs (default: pacs_system root)
auto get_anonymized(std::string_view original_uid) const -> std::optional< std::string >
Get existing mapping without creating new one.
void set_uid_root(std::string root)
Set the UID root for generated UIDs.
auto operator=(const uid_mapping &other) -> uid_mapping &
Copy assignment.
auto empty() const -> bool
Check if the mapping is empty.
auto get_uid_root() const -> std::string
Get the current UID root.
auto get_or_create(std::string_view original_uid) -> kcenon::common::Result< std::string >
Get existing mapping or create new one.
std::shared_mutex mutex_
Mutex for thread-safe access.
uid_mapping()=default
Default constructor - creates empty mapping.
~uid_mapping()=default
Default destructor.
auto size() const -> std::size_t
Get the number of mappings.
auto merge(const uid_mapping &other) -> std::size_t
Merge mappings from another uid_mapping.
auto add_mapping(std::string_view original_uid, std::string_view anonymized_uid) -> kcenon::common::VoidResult
Add a specific mapping.
std::atomic< std::uint64_t > uid_counter_
Counter for UID generation.
auto from_json(std::string_view json) -> kcenon::common::VoidResult
Import mappings from JSON format.
@ remove
D - Remove the attribute entirely.