|
PACS System 0.1.0
PACS DICOM system library
|
IHE XDS-I.b Imaging Document Source Actor. More...
#include <imaging_document_source.h>

Public Member Functions | |
| imaging_document_source ()=default | |
| imaging_document_source (const imaging_document_source_config &config) | |
| kos_creation_result | create_kos_document (const std::string &study_instance_uid, const std::vector< kos_instance_reference > &references, const std::optional< core::dicom_dataset > &patient_demographics=std::nullopt) const |
| Create a KOS document from a set of DICOM instance references. | |
| xds_document_entry | build_document_entry (const core::dicom_dataset &kos_dataset) const |
| Build XDS document entry metadata from a KOS dataset. | |
| xds_submission_set | build_submission_set (const std::string &patient_id) const |
| Build XDS submission set metadata. | |
| publication_result | publish_document (const core::dicom_dataset &kos_dataset, const xds_document_entry &entry, bool is_imaging=true) const |
| Publish a KOS document to the XDS registry/repository. | |
| void | set_audit_handler (std::shared_ptr< kcenon::pacs::security::atna_service_auditor > auditor) |
| Install an ATNA audit handler for XDS-I.b transactions. | |
| const imaging_document_source_config & | config () const noexcept |
| Get current configuration. | |
| void | set_config (const imaging_document_source_config &config) |
| Set configuration. | |
Private Member Functions | |
| std::string | generate_uid () const |
| Generate a new UID for KOS instances. | |
| void | build_evidence_sequence (core::dicom_dataset &kos_dataset, const std::vector< kos_instance_reference > &references) const |
| Build the Current Requested Procedure Evidence Sequence. | |
Private Attributes | |
| imaging_document_source_config | config_ |
| std::shared_ptr< kcenon::pacs::security::atna_service_auditor > | auditor_ |
IHE XDS-I.b Imaging Document Source Actor.
Creates KOS (Key Object Selection) documents from DICOM studies and provides the interface for publishing them to an XDS Document Registry/Repository via the ITI-41 transaction.
Definition at line 264 of file imaging_document_source.h.
|
default |
|
explicit |
Definition at line 92 of file imaging_document_source.cpp.
|
nodiscard |
Build XDS document entry metadata from a KOS dataset.
Extracts patient and study metadata from the KOS dataset and populates an xds_document_entry structure suitable for registry submission.
| kos_dataset | The KOS dataset to extract metadata from |
Definition at line 186 of file imaging_document_source.cpp.
References kcenon::pacs::services::xds::xds_document_entry::author_person, kcenon::pacs::services::xds::xds_document_entry::class_code, kcenon::pacs::services::xds::xds_document_entry::class_code_display, kcenon::pacs::services::xds::xds_document_entry::class_code_scheme, config_, kcenon::pacs::services::xds::xds_document_entry::creation_time, kcenon::pacs::services::xds::xds_document_entry::entry_uuid, kcenon::pacs::services::xds::imaging_document_source_config::facility_type_code, kcenon::pacs::services::xds::xds_document_entry::facility_type_code, kcenon::pacs::services::xds::imaging_document_source_config::facility_type_code_scheme, kcenon::pacs::services::xds::xds_document_entry::facility_type_code_scheme, kcenon::pacs::services::xds::xds_document_entry::format_code, kcenon::pacs::services::xds::xds_document_entry::format_code_scheme, generate_uid(), kcenon::pacs::core::dicom_dataset::get_string(), kcenon::pacs::services::sop_classes::key_object_selection_document_storage_uid, kcenon::pacs::core::tags::patient_id, kcenon::pacs::services::xds::xds_document_entry::patient_id, kcenon::pacs::services::xds::imaging_document_source_config::practice_setting_code, kcenon::pacs::services::xds::xds_document_entry::practice_setting_code, kcenon::pacs::services::xds::imaging_document_source_config::practice_setting_code_scheme, kcenon::pacs::services::xds::xds_document_entry::practice_setting_code_scheme, kcenon::pacs::core::tags::referring_physician_name, kcenon::pacs::services::xds::xds_document_entry::service_start_time, kcenon::pacs::services::xds::xds_document_entry::service_stop_time, kcenon::pacs::core::tags::sop_instance_uid, kcenon::pacs::services::xds::xds_document_entry::source_patient_id, kcenon::pacs::services::xds::xds_document_entry::title, kcenon::pacs::services::xds::xds_document_entry::type_code, kcenon::pacs::services::xds::xds_document_entry::type_code_display, kcenon::pacs::services::xds::xds_document_entry::type_code_scheme, and kcenon::pacs::services::xds::xds_document_entry::unique_id.

|
private |
Build the Current Requested Procedure Evidence Sequence.
Definition at line 353 of file imaging_document_source.cpp.
References kcenon::pacs::services::xds::kos_tags::current_requested_procedure_evidence_sequence, kcenon::pacs::services::xds::kos_tags::referenced_series_sequence, kcenon::pacs::services::xds::kos_tags::referenced_sop_class_uid, kcenon::pacs::services::xds::kos_tags::referenced_sop_instance_uid, kcenon::pacs::services::xds::kos_tags::referenced_sop_sequence, kcenon::pacs::core::tags::series_instance_uid, kcenon::pacs::core::dicom_dataset::set_string(), and kcenon::pacs::core::tags::study_instance_uid.
Referenced by create_kos_document().


|
nodiscard |
Build XDS submission set metadata.
Creates a submission set entry for ITI-41 Provide and Register Document Set-b transaction.
| patient_id | Patient ID for the submission |
Definition at line 227 of file imaging_document_source.cpp.
References config_, kcenon::pacs::services::xds::xds_submission_set::content_type_code, kcenon::pacs::services::xds::xds_submission_set::content_type_code_display, kcenon::pacs::services::xds::xds_submission_set::content_type_code_scheme, generate_uid(), kcenon::pacs::services::xds::xds_submission_set::patient_id, kcenon::pacs::services::xds::xds_submission_set::source_id, kcenon::pacs::services::xds::imaging_document_source_config::source_oid, kcenon::pacs::services::xds::xds_submission_set::submission_time, and kcenon::pacs::services::xds::xds_submission_set::unique_id.

|
nodiscardnoexcept |
Get current configuration.
Definition at line 331 of file imaging_document_source.cpp.
References config_.
Referenced by set_config().

|
nodiscard |
Create a KOS document from a set of DICOM instance references.
Generates a Key Object Selection Document (SOP Class 1.2.840.10008.5.1.4.1.1.88.59) containing references to the specified instances, following TID 2010.
| study_instance_uid | The Study Instance UID |
| references | Vector of instance references to include |
| patient_demographics | Optional patient demographics dataset |
Definition at line 96 of file imaging_document_source.cpp.
References kcenon::pacs::core::tags::accession_number, build_evidence_sequence(), kcenon::pacs::services::xds::kos_tags::code_meaning, kcenon::pacs::services::xds::kos_tags::code_value, kcenon::pacs::services::xds::kos_tags::coding_scheme_designator, kcenon::pacs::services::xds::kos_tags::completion_flag, kcenon::pacs::services::xds::kos_tags::concept_name_code_sequence, kcenon::pacs::core::tags::content_date, kcenon::pacs::services::xds::kos_tags::content_template_sequence, kcenon::pacs::core::tags::content_time, kcenon::pacs::services::xds::kos_creation_result::error_message, generate_uid(), kcenon::pacs::core::tags::instance_number, kcenon::pacs::services::sop_classes::key_object_selection_document_storage_uid, kcenon::pacs::services::xds::kos_creation_result::kos_dataset, kcenon::pacs::services::xds::kos_creation_result::kos_instance_uid, kcenon::pacs::services::xds::kos_tags::mapping_resource, kcenon::pacs::core::tags::modality, kcenon::pacs::core::tags::patient_birth_date, kcenon::pacs::core::tags::patient_id, kcenon::pacs::core::tags::patient_name, kcenon::pacs::core::tags::patient_sex, kcenon::pacs::services::xds::kos_creation_result::reference_count, kcenon::pacs::core::tags::referring_physician_name, kcenon::pacs::core::tags::series_instance_uid, kcenon::pacs::core::tags::series_number, kcenon::pacs::core::dicom_dataset::set_string(), kcenon::pacs::core::tags::sop_class_uid, kcenon::pacs::core::tags::sop_instance_uid, kcenon::pacs::core::tags::study_date, kcenon::pacs::core::tags::study_id, kcenon::pacs::core::tags::study_instance_uid, kcenon::pacs::core::tags::study_time, kcenon::pacs::services::xds::kos_creation_result::success, kcenon::pacs::services::xds::kos_tags::template_identifier, kcenon::pacs::services::xds::kos_tags::value_type, kcenon::pacs::services::xds::kos_tags::verification_flag, and vr.

|
nodiscardprivate |
Generate a new UID for KOS instances.
Definition at line 340 of file imaging_document_source.cpp.
Referenced by build_document_entry(), build_submission_set(), and create_kos_document().

|
nodiscard |
Publish a KOS document to the XDS registry/repository.
Performs the ITI-41 (Provide and Register Document Set-b) transaction to publish the KOS document and its metadata to the configured XDS registry/repository. When an ATNA audit handler is installed, an Export audit event is emitted for both success and failure paths.
| kos_dataset | The KOS dataset to publish |
| entry | The document entry metadata |
| is_imaging | true for RAD-68 (Provide and Register Imaging Document Set), false for ITI-41 (Provide and Register Document Set-b). Controls the transaction code recorded in the ATNA audit. |
Definition at line 273 of file imaging_document_source.cpp.
References kcenon::pacs::security::atna_service_auditor::audit_xds_provide_and_register(), auditor_, config_, kcenon::pacs::services::xds::publication_result::document_entry_uuid, kcenon::pacs::services::xds::xds_document_entry::entry_uuid, kcenon::pacs::services::xds::publication_result::error_message, kcenon::pacs::core::dicom_dataset::get_string(), kcenon::pacs::security::atna_service_auditor::iti_41, kcenon::pacs::core::tags::patient_id, kcenon::pacs::security::atna_service_auditor::rad_68, kcenon::pacs::services::xds::imaging_document_source_config::registry_url, kcenon::pacs::services::xds::imaging_document_source_config::source_oid, kcenon::pacs::core::tags::study_instance_uid, and kcenon::pacs::services::xds::publication_result::success.

| void kcenon::pacs::services::xds::imaging_document_source::set_audit_handler | ( | std::shared_ptr< kcenon::pacs::security::atna_service_auditor > | auditor | ) |
Install an ATNA audit handler for XDS-I.b transactions.
When set, an audit event is emitted for each publish_document() call (ITI-41 or RAD-68) on both success and failure paths. Passing nullptr disables auditing for this source.
| auditor | Shared pointer to an ATNA service auditor |
Definition at line 325 of file imaging_document_source.cpp.
References auditor_.
| void kcenon::pacs::services::xds::imaging_document_source::set_config | ( | const imaging_document_source_config & | config | ) |
|
private |
Definition at line 356 of file imaging_document_source.h.
Referenced by publish_document(), and set_audit_handler().
|
private |
Definition at line 355 of file imaging_document_source.h.
Referenced by build_document_entry(), build_submission_set(), config(), publish_document(), and set_config().