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

Public Member Functions | |
| mpps_scu (std::shared_ptr< di::ILogger > logger=nullptr) | |
| Construct MPPS SCU with default configuration. | |
| mpps_scu (const mpps_scu_config &config, std::shared_ptr< di::ILogger > logger=nullptr) | |
| Construct MPPS SCU with custom configuration. | |
| ~mpps_scu ()=default | |
| mpps_scu (const mpps_scu &)=delete | |
| mpps_scu & | operator= (const mpps_scu &)=delete |
| mpps_scu (mpps_scu &&)=delete | |
| mpps_scu & | operator= (mpps_scu &&)=delete |
| network::Result< mpps_result > | create (network::association &assoc, const mpps_create_data &data) |
| Create a new MPPS instance (N-CREATE) | |
| network::Result< mpps_result > | set (network::association &assoc, const mpps_set_data &data) |
| Update an existing MPPS instance (N-SET) | |
| network::Result< mpps_result > | complete (network::association &assoc, std::string_view mpps_uid, const std::vector< performed_series_info > &performed_series) |
| Complete an MPPS instance (convenience method) | |
| network::Result< mpps_result > | discontinue (network::association &assoc, std::string_view mpps_uid, std::string_view reason="") |
| Discontinue an MPPS instance (convenience method) | |
| size_t | creates_performed () const noexcept |
| Get the number of N-CREATE operations performed. | |
| size_t | sets_performed () const noexcept |
| Get the number of N-SET operations performed. | |
| void | reset_statistics () noexcept |
| Reset statistics counters to zero. | |
Private Member Functions | |
| core::dicom_dataset | build_create_dataset (const mpps_create_data &data) const |
| Build DICOM dataset for N-CREATE request. | |
| core::dicom_dataset | build_set_dataset (const mpps_set_data &data) const |
| Build DICOM dataset for N-SET request. | |
| std::string | generate_mpps_uid () const |
| Generate a unique MPPS SOP Instance UID. | |
| std::string | get_current_date () const |
| Get current date in DICOM DA format (YYYYMMDD) | |
| std::string | get_current_time () const |
| Get current time in DICOM TM format (HHMMSS) | |
| uint16_t | next_message_id () noexcept |
| Get the next message ID for DIMSE operations. | |
Private Attributes | |
| std::shared_ptr< di::ILogger > | logger_ |
| Logger instance. | |
| mpps_scu_config | config_ |
| Configuration. | |
| std::atomic< uint16_t > | message_id_counter_ {1} |
| Message ID counter. | |
| std::atomic< size_t > | creates_performed_ {0} |
| Statistics: N-CREATE operations performed. | |
| std::atomic< size_t > | sets_performed_ {0} |
| Statistics: N-SET operations performed. | |
Definition at line 254 of file mpps_scu.h.
|
explicit |
Construct MPPS SCU with default configuration.
| logger | Logger instance for service logging (nullptr uses null_logger) |
Definition at line 86 of file mpps_scu.cpp.
|
explicit |
Construct MPPS SCU with custom configuration.
| config | Configuration options |
| logger | Logger instance for service logging (nullptr uses null_logger) |
Definition at line 89 of file mpps_scu.cpp.
|
default |
|
delete |
|
delete |
|
nodiscardprivate |
Build DICOM dataset for N-CREATE request.
Definition at line 350 of file mpps_scu.cpp.
References kcenon::pacs::core::tags::accession_number, kcenon::pacs::services::mpps_create_data::accession_number, get_current_date(), get_current_time(), kcenon::pacs::core::tags::modality, kcenon::pacs::services::mpps_create_data::modality, kcenon::pacs::services::mpps_create_data::operator_name, kcenon::pacs::services::mpps_tags::operators_name, kcenon::pacs::core::tags::patient_birth_date, kcenon::pacs::services::mpps_create_data::patient_birth_date, kcenon::pacs::core::tags::patient_id, kcenon::pacs::services::mpps_create_data::patient_id, kcenon::pacs::core::tags::patient_name, kcenon::pacs::services::mpps_create_data::patient_name, kcenon::pacs::core::tags::patient_sex, kcenon::pacs::services::mpps_create_data::patient_sex, kcenon::pacs::services::mpps_tags::performed_procedure_step_description, kcenon::pacs::services::mpps_tags::performed_procedure_step_id, kcenon::pacs::services::mpps_tags::performed_procedure_step_start_date, kcenon::pacs::services::mpps_tags::performed_procedure_step_start_time, kcenon::pacs::services::mpps_tags::performed_procedure_step_status, kcenon::pacs::services::mpps_tags::performed_station_ae_title, kcenon::pacs::services::mpps_tags::performed_station_name, kcenon::pacs::services::mpps_create_data::performing_physician, kcenon::pacs::services::mpps_tags::performing_physicians_name, kcenon::pacs::services::mpps_create_data::procedure_description, kcenon::pacs::services::mpps_create_data::procedure_step_start_date, kcenon::pacs::services::mpps_create_data::procedure_step_start_time, kcenon::pacs::services::mpps_create_data::scheduled_procedure_step_id, kcenon::pacs::services::mpps_create_data::station_ae_title, kcenon::pacs::services::mpps_create_data::station_name, kcenon::pacs::core::tags::study_instance_uid, and kcenon::pacs::services::mpps_create_data::study_instance_uid.
Referenced by create().


|
nodiscardprivate |
Build DICOM dataset for N-SET request.
Definition at line 425 of file mpps_scu.cpp.
References kcenon::pacs::services::completed, get_current_date(), get_current_time(), kcenon::pacs::core::tags::modality, kcenon::pacs::services::mpps_tags::operators_name, kcenon::pacs::services::mpps_tags::performed_procedure_step_end_date, kcenon::pacs::services::mpps_tags::performed_procedure_step_end_time, kcenon::pacs::services::mpps_tags::performed_procedure_step_status, kcenon::pacs::services::mpps_set_data::performed_series, kcenon::pacs::services::mpps_tags::performed_series_sequence, kcenon::pacs::services::mpps_tags::performing_physicians_name, kcenon::pacs::services::mpps_set_data::procedure_step_end_date, kcenon::pacs::services::mpps_set_data::procedure_step_end_time, kcenon::pacs::services::mpps_tags::series_description, kcenon::pacs::core::tags::series_instance_uid, kcenon::pacs::services::mpps_set_data::status, and kcenon::pacs::services::to_string().
Referenced by set().


|
nodiscard |
Complete an MPPS instance (convenience method)
Updates the MPPS to COMPLETED status with performed series information. Automatically fills in current date/time for end timestamps.
| assoc | The established association to use |
| mpps_uid | The MPPS SOP Instance UID |
| performed_series | Information about performed series |
Definition at line 299 of file mpps_scu.cpp.
References kcenon::pacs::services::completed, get_current_date(), get_current_time(), kcenon::pacs::services::mpps_set_data::mpps_sop_instance_uid, kcenon::pacs::services::mpps_set_data::performed_series, kcenon::pacs::services::mpps_set_data::procedure_step_end_date, kcenon::pacs::services::mpps_set_data::procedure_step_end_time, set(), and kcenon::pacs::services::mpps_set_data::status.

|
nodiscard |
Create a new MPPS instance (N-CREATE)
Starts a new Modality Performed Procedure Step with IN PROGRESS status. If mpps_sop_instance_uid is empty, a unique UID will be auto-generated.
| assoc | The established association to use |
| data | The MPPS creation data |
Definition at line 98 of file mpps_scu.cpp.
References kcenon::pacs::network::association::accepted_context_id(), kcenon::pacs::error_codes::association_not_established, kcenon::pacs::services::mpps_scu_config::auto_generate_uid, build_create_dataset(), config_, creates_performed_, kcenon::pacs::services::mpps_result::elapsed, kcenon::pacs::services::mpps_result::error_comment, generate_mpps_uid(), kcenon::pacs::network::association::is_established(), kcenon::pacs::services::mpps_result::is_success(), logger_, kcenon::pacs::error_codes::mpps_context_not_accepted, kcenon::pacs::error_codes::mpps_missing_uid, kcenon::pacs::services::mpps_sop_class_uid, kcenon::pacs::services::mpps_create_data::mpps_sop_instance_uid, kcenon::pacs::services::mpps_result::mpps_sop_instance_uid, kcenon::pacs::error_codes::mpps_unexpected_command, next_message_id(), kcenon::pacs::pacs_error(), kcenon::pacs::network::association::receive_dimse(), kcenon::pacs::network::association::send_dimse(), kcenon::pacs::services::mpps_result::status, kcenon::pacs::services::mpps_scu_config::timeout, and kcenon::pacs::services::to_string().
Referenced by operator=().


|
nodiscardnoexcept |
Get the number of N-CREATE operations performed.
Definition at line 333 of file mpps_scu.cpp.
References creates_performed_.
|
nodiscard |
Discontinue an MPPS instance (convenience method)
Updates the MPPS to DISCONTINUED status. Automatically fills in current date/time for end timestamps.
| assoc | The established association to use |
| mpps_uid | The MPPS SOP Instance UID |
| reason | Optional discontinuation reason |
Definition at line 314 of file mpps_scu.cpp.
References kcenon::pacs::services::mpps_set_data::discontinuation_reason, kcenon::pacs::services::discontinued, get_current_date(), get_current_time(), kcenon::pacs::services::mpps_set_data::mpps_sop_instance_uid, kcenon::pacs::services::mpps_set_data::procedure_step_end_date, kcenon::pacs::services::mpps_set_data::procedure_step_end_time, set(), and kcenon::pacs::services::mpps_set_data::status.

|
nodiscardprivate |
Generate a unique MPPS SOP Instance UID.
Definition at line 479 of file mpps_scu.cpp.
Referenced by create().

|
nodiscardprivate |
Get current date in DICOM DA format (YYYYMMDD)
Definition at line 491 of file mpps_scu.cpp.
Referenced by build_create_dataset(), build_set_dataset(), complete(), and discontinue().

|
nodiscardprivate |
Get current time in DICOM TM format (HHMMSS)
Definition at line 504 of file mpps_scu.cpp.
Referenced by build_create_dataset(), build_set_dataset(), complete(), and discontinue().

|
nodiscardprivatenoexcept |
Get the next message ID for DIMSE operations.
Definition at line 517 of file mpps_scu.cpp.
References message_id_counter_.
Referenced by create(), and set().

|
noexcept |
Reset statistics counters to zero.
Definition at line 341 of file mpps_scu.cpp.
References creates_performed_, and sets_performed_.
|
nodiscard |
Update an existing MPPS instance (N-SET)
Updates an MPPS instance to COMPLETED or DISCONTINUED status.
| assoc | The established association to use |
| data | The MPPS update data |
Definition at line 197 of file mpps_scu.cpp.
References kcenon::pacs::network::association::accepted_context_id(), kcenon::pacs::error_codes::association_not_established, build_set_dataset(), config_, kcenon::pacs::services::mpps_result::elapsed, kcenon::pacs::services::mpps_result::error_comment, kcenon::pacs::services::in_progress, kcenon::pacs::network::association::is_established(), kcenon::pacs::services::mpps_result::is_success(), logger_, kcenon::pacs::error_codes::mpps_context_not_accepted, kcenon::pacs::error_codes::mpps_invalid_status_transition, kcenon::pacs::error_codes::mpps_missing_uid, kcenon::pacs::services::mpps_sop_class_uid, kcenon::pacs::services::mpps_result::mpps_sop_instance_uid, kcenon::pacs::services::mpps_set_data::mpps_sop_instance_uid, kcenon::pacs::error_codes::mpps_unexpected_command, next_message_id(), kcenon::pacs::pacs_error(), kcenon::pacs::network::association::receive_dimse(), kcenon::pacs::network::association::send_dimse(), sets_performed_, kcenon::pacs::services::mpps_result::status, kcenon::pacs::services::mpps_set_data::status, kcenon::pacs::services::mpps_scu_config::timeout, and kcenon::pacs::services::to_string().
Referenced by complete(), discontinue(), and operator=().


|
nodiscardnoexcept |
Get the number of N-SET operations performed.
Definition at line 337 of file mpps_scu.cpp.
References sets_performed_.
|
private |
|
private |
Statistics: N-CREATE operations performed.
Definition at line 423 of file mpps_scu.h.
Referenced by create(), creates_performed(), and reset_statistics().
|
private |
|
private |
Message ID counter.
Definition at line 420 of file mpps_scu.h.
Referenced by next_message_id().
|
private |
Statistics: N-SET operations performed.
Definition at line 426 of file mpps_scu.h.
Referenced by reset_statistics(), set(), and sets_performed().