PACS System 0.1.0
PACS DICOM system library
Loading...
Searching...
No Matches
kcenon::pacs::security::hipaa_identifiers Namespace Reference

HIPAA Safe Harbor identifiers (18 categories) More...

Functions

auto get_name_tags () -> std::vector< core::dicom_tag >
 Tags containing names.
 
auto get_geographic_tags () -> std::vector< core::dicom_tag >
 Tags containing geographic identifiers.
 
auto get_date_tags () -> std::vector< core::dicom_tag >
 Tags containing dates (except year)
 
auto get_communication_tags () -> std::vector< core::dicom_tag >
 Tags containing communication identifiers.
 
auto get_unique_id_tags () -> std::vector< core::dicom_tag >
 Tags containing unique identifiers.
 
auto get_all_identifier_tags () -> std::vector< core::dicom_tag >
 Get all HIPAA identifier tags.
 

Detailed Description

HIPAA Safe Harbor identifiers (18 categories)

These correspond to the 18 categories of identifiers specified in 45 CFR 164.514(b)(2) for HIPAA Safe Harbor de-identification.

Function Documentation

◆ get_all_identifier_tags()

auto kcenon::pacs::security::hipaa_identifiers::get_all_identifier_tags ( ) -> std::vector<core::dicom_tag>
nodiscard

Get all HIPAA identifier tags.

Definition at line 71 of file tag_action.cpp.

71 {
72 std::vector<dicom_tag> all_tags;
73
74 auto names = get_name_tags();
75 auto geo = get_geographic_tags();
76 auto dates = get_date_tags();
77 auto comm = get_communication_tags();
78 auto ids = get_unique_id_tags();
79
80 all_tags.reserve(names.size() + geo.size() + dates.size() +
81 comm.size() + ids.size());
82
83 all_tags.insert(all_tags.end(), names.begin(), names.end());
84 all_tags.insert(all_tags.end(), geo.begin(), geo.end());
85 all_tags.insert(all_tags.end(), dates.begin(), dates.end());
86 all_tags.insert(all_tags.end(), comm.begin(), comm.end());
87 all_tags.insert(all_tags.end(), ids.begin(), ids.end());
88
89 return all_tags;
90}
auto get_name_tags() -> std::vector< core::dicom_tag >
Tags containing names.
auto get_unique_id_tags() -> std::vector< core::dicom_tag >
Tags containing unique identifiers.
auto get_date_tags() -> std::vector< core::dicom_tag >
Tags containing dates (except year)
auto get_communication_tags() -> std::vector< core::dicom_tag >
Tags containing communication identifiers.
auto get_geographic_tags() -> std::vector< core::dicom_tag >
Tags containing geographic identifiers.

References get_communication_tags(), get_date_tags(), get_geographic_tags(), get_name_tags(), and get_unique_id_tags().

Referenced by kcenon::pacs::security::anonymizer::get_hipaa_identifier_tags().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_communication_tags()

auto kcenon::pacs::security::hipaa_identifiers::get_communication_tags ( ) -> std::vector<core::dicom_tag>
nodiscard

Tags containing communication identifiers.

Definition at line 53 of file tag_action.cpp.

53 {
54 // Phone, fax, email - not typically in standard DICOM tags
55 // These would be in private tags or extended attributes
56 return {};
57}

Referenced by get_all_identifier_tags().

Here is the caller graph for this function:

◆ get_date_tags()

auto kcenon::pacs::security::hipaa_identifiers::get_date_tags ( ) -> std::vector<core::dicom_tag>
nodiscard

Tags containing dates (except year)

Definition at line 39 of file tag_action.cpp.

39 {
40 return {
41 tags::patient_birth_date,
42 tags::study_date,
43 tags::series_date,
44 tags::acquisition_date,
45 tags::content_date,
46 tags::instance_creation_date,
47 tags::scheduled_procedure_step_start_date,
48 tags::scheduled_procedure_step_end_date,
49 tags::performed_procedure_step_start_date
50 };
51}

References kcenon::pacs::core::tags::acquisition_date, kcenon::pacs::core::tags::content_date, kcenon::pacs::core::tags::instance_creation_date, kcenon::pacs::core::tags::patient_birth_date, kcenon::pacs::core::tags::performed_procedure_step_start_date, kcenon::pacs::core::tags::scheduled_procedure_step_end_date, kcenon::pacs::core::tags::scheduled_procedure_step_start_date, kcenon::pacs::core::tags::series_date, and kcenon::pacs::core::tags::study_date.

Referenced by get_all_identifier_tags().

Here is the caller graph for this function:

◆ get_geographic_tags()

auto kcenon::pacs::security::hipaa_identifiers::get_geographic_tags ( ) -> std::vector<core::dicom_tag>
nodiscard

Tags containing geographic identifiers.

Definition at line 30 of file tag_action.cpp.

30 {
31 return {
32 tags::institution_name,
33 tags::institution_address,
34 tags::patient_address,
35 tags::station_name
36 };
37}

References kcenon::pacs::core::tags::institution_address, kcenon::pacs::core::tags::institution_name, kcenon::pacs::core::tags::patient_address, and kcenon::pacs::core::tags::station_name.

Referenced by get_all_identifier_tags().

Here is the caller graph for this function:

◆ get_name_tags()

auto kcenon::pacs::security::hipaa_identifiers::get_name_tags ( ) -> std::vector<core::dicom_tag>
nodiscard

Tags containing names.

Definition at line 19 of file tag_action.cpp.

19 {
20 return {
21 tags::patient_name,
22 tags::referring_physician_name,
23 tags::performing_physician_name,
24 tags::name_of_physicians_reading_study,
25 tags::operators_name,
26 tags::scheduled_performing_physician_name
27 };
28}

References kcenon::pacs::core::tags::name_of_physicians_reading_study, kcenon::pacs::core::tags::operators_name, kcenon::pacs::core::tags::patient_name, kcenon::pacs::core::tags::performing_physician_name, kcenon::pacs::core::tags::referring_physician_name, and kcenon::pacs::core::tags::scheduled_performing_physician_name.

Referenced by get_all_identifier_tags().

Here is the caller graph for this function:

◆ get_unique_id_tags()

auto kcenon::pacs::security::hipaa_identifiers::get_unique_id_tags ( ) -> std::vector<core::dicom_tag>
nodiscard

Tags containing unique identifiers.

Definition at line 59 of file tag_action.cpp.

59 {
60 return {
61 tags::patient_id,
62 tags::issuer_of_patient_id,
63 tags::accession_number,
64 tags::study_id,
65 tags::requested_procedure_id,
66 tags::scheduled_procedure_step_id,
67 tags::performed_procedure_step_id
68 };
69}

References kcenon::pacs::core::tags::accession_number, kcenon::pacs::core::tags::issuer_of_patient_id, kcenon::pacs::core::tags::patient_id, kcenon::pacs::core::tags::performed_procedure_step_id, kcenon::pacs::core::tags::requested_procedure_id, kcenon::pacs::core::tags::scheduled_procedure_step_id, and kcenon::pacs::core::tags::study_id.

Referenced by get_all_identifier_tags().

Here is the caller graph for this function: