|
PACS System 0.1.0
PACS DICOM system library
|
#include <patient_reconciliation_service.h>

Public Member Functions | |
| patient_reconciliation_service ()=default | |
| bool | add_instance (const core::dicom_dataset &dataset) |
| Add a DICOM instance to the managed store. | |
| reconciliation_result | update_demographics (const demographics_update_request &request) |
| Update patient demographics across all matching instances. | |
| reconciliation_result | merge_patients (const patient_merge_request &request) |
| Merge instances from source patient to target patient. | |
| std::vector< core::dicom_dataset > | find_instances (const std::string &patient_id) const |
| Find all instances for a given patient ID. | |
| size_t | instance_count () const noexcept |
| Get the total number of managed instances. | |
| std::vector< std::string > | get_patient_ids () const |
| Get distinct patient IDs in the store. | |
| const std::vector< reconciliation_audit_record > & | audit_trail () const noexcept |
| Get the audit trail of reconciliation operations. | |
| std::vector< reconciliation_audit_record > | audit_trail_for_patient (const std::string &patient_id) const |
| Get audit records for a specific patient. | |
Private Member Functions | |
| void | apply_demographics (core::dicom_dataset &dataset, const patient_demographics &demographics) const |
| std::string | generate_record_id () const |
Private Attributes | |
| std::vector< core::dicom_dataset > | instances_ |
| std::vector< reconciliation_audit_record > | audit_records_ |
Definition at line 194 of file patient_reconciliation_service.h.
|
default |
| bool kcenon::pacs::services::pir::patient_reconciliation_service::add_instance | ( | const core::dicom_dataset & | dataset | ) |
Add a DICOM instance to the managed store.
| dataset | The DICOM dataset to add |
Definition at line 28 of file patient_reconciliation_service.cpp.
References kcenon::pacs::core::dicom_dataset::get_string(), instances_, kcenon::pacs::core::tags::sop_instance_uid, and uid.

|
private |
Definition at line 212 of file patient_reconciliation_service.cpp.
References kcenon::pacs::core::tags::issuer_of_patient_id, kcenon::pacs::services::pir::patient_demographics::issuer_of_patient_id, kcenon::pacs::core::tags::patient_birth_date, kcenon::pacs::services::pir::patient_demographics::patient_birth_date, kcenon::pacs::core::tags::patient_id, kcenon::pacs::services::pir::patient_demographics::patient_id, kcenon::pacs::core::tags::patient_name, kcenon::pacs::services::pir::patient_demographics::patient_name, kcenon::pacs::core::tags::patient_sex, kcenon::pacs::services::pir::patient_demographics::patient_sex, and kcenon::pacs::core::dicom_dataset::set_string().
Referenced by merge_patients(), and update_demographics().


|
nodiscardnoexcept |
Get the audit trail of reconciliation operations.
Definition at line 189 of file patient_reconciliation_service.cpp.
References audit_records_.
|
nodiscard |
Get audit records for a specific patient.
| patient_id | Patient ID to filter by |
Definition at line 194 of file patient_reconciliation_service.cpp.
References audit_records_.
|
nodiscard |
Find all instances for a given patient ID.
| patient_id | Patient ID to search for |
Definition at line 161 of file patient_reconciliation_service.cpp.
References instances_, and kcenon::pacs::core::tags::patient_id.
|
private |
Definition at line 238 of file patient_reconciliation_service.cpp.
Referenced by merge_patients(), and update_demographics().

|
nodiscard |
Get distinct patient IDs in the store.
Definition at line 177 of file patient_reconciliation_service.cpp.
References instances_, and kcenon::pacs::core::tags::patient_id.
|
nodiscardnoexcept |
Get the total number of managed instances.
Definition at line 173 of file patient_reconciliation_service.cpp.
References instances_.
|
nodiscard |
Merge instances from source patient to target patient.
All instances belonging to the source patient are reassigned to the target patient. The source patient effectively ceases to exist after the merge.
| request | Patient merge request |
Definition at line 91 of file patient_reconciliation_service.cpp.
References apply_demographics(), audit_records_, kcenon::pacs::services::pir::reconciliation_result::error_message, generate_record_id(), instances_, kcenon::pacs::services::pir::reconciliation_audit_record::instances_updated, kcenon::pacs::services::pir::reconciliation_result::instances_updated, kcenon::pacs::services::pir::patient_merge_request::operator_name, kcenon::pacs::services::pir::reconciliation_audit_record::operator_name, kcenon::pacs::core::tags::patient_id, kcenon::pacs::services::pir::patient_merge, kcenon::pacs::services::pir::reconciliation_audit_record::primary_patient_id, kcenon::pacs::services::pir::reconciliation_audit_record::record_id, kcenon::pacs::services::pir::reconciliation_audit_record::secondary_patient_id, kcenon::pacs::services::pir::patient_merge_request::source_patient_id, kcenon::pacs::services::pir::reconciliation_result::studies_affected, kcenon::pacs::core::tags::study_instance_uid, kcenon::pacs::services::pir::reconciliation_audit_record::success, kcenon::pacs::services::pir::reconciliation_result::success, kcenon::pacs::services::pir::patient_merge_request::target_demographics, kcenon::pacs::services::pir::patient_merge_request::target_patient_id, kcenon::pacs::services::pir::reconciliation_audit_record::timestamp, kcenon::pacs::services::pir::reconciliation_audit_record::type, and kcenon::pacs::services::pir::reconciliation_result::type.

|
nodiscard |
Update patient demographics across all matching instances.
Finds all instances with the specified patient ID and updates the patient-level attributes with the new values.
| request | Demographics update request |
Definition at line 40 of file patient_reconciliation_service.cpp.
References apply_demographics(), audit_records_, kcenon::pacs::services::pir::demographics_update, kcenon::pacs::services::pir::reconciliation_result::error_message, generate_record_id(), instances_, kcenon::pacs::services::pir::reconciliation_audit_record::instances_updated, kcenon::pacs::services::pir::reconciliation_result::instances_updated, kcenon::pacs::services::pir::demographics_update_request::operator_name, kcenon::pacs::services::pir::reconciliation_audit_record::operator_name, kcenon::pacs::core::tags::patient_id, kcenon::pacs::services::pir::reconciliation_audit_record::primary_patient_id, kcenon::pacs::services::pir::reconciliation_audit_record::record_id, kcenon::pacs::services::pir::reconciliation_result::studies_affected, kcenon::pacs::core::tags::study_instance_uid, kcenon::pacs::services::pir::reconciliation_audit_record::success, kcenon::pacs::services::pir::reconciliation_result::success, kcenon::pacs::services::pir::demographics_update_request::target_patient_id, kcenon::pacs::services::pir::reconciliation_audit_record::timestamp, kcenon::pacs::services::pir::reconciliation_audit_record::type, kcenon::pacs::services::pir::reconciliation_result::type, and kcenon::pacs::services::pir::demographics_update_request::updated_demographics.

|
private |
Definition at line 277 of file patient_reconciliation_service.h.
Referenced by audit_trail(), audit_trail_for_patient(), merge_patients(), and update_demographics().
|
private |
Definition at line 276 of file patient_reconciliation_service.h.
Referenced by add_instance(), find_instances(), get_patient_ids(), instance_count(), merge_patients(), and update_demographics().