|
PACS System 0.1.0
PACS DICOM system library
|

Public Member Functions | |
| void | load_rules_from_repo () |
| void | save_rule_to_repo (const prefetch_rule &rule) |
| bool | is_study_pending (const std::string &study_uid) |
| void | mark_study_pending (const std::string &study_uid) |
| void | mark_study_complete (const std::string &study_uid) |
| bool | is_study_local (std::string_view study_uid) const |
| std::vector< prefetch_rule > | get_matching_rules (prefetch_trigger trigger, const std::string &modality, const std::string &body_part, const std::string &station_ae) |
| void | record_prefetch_history (const std::string &patient_id, const std::string &study_uid, const std::string &rule_id, const std::string &source_node_id, const std::string &job_id, const std::string &status) |
| void | increment_rule_stats (const std::string &rule_id, size_t studies) |
| void | scheduler_loop () |
| void | check_scheduled_rules () |
| void | worklist_monitor_loop () |
| void | query_and_process_worklist () |
Public Attributes | |
| prefetch_manager_config | config |
| prefetch_repositories | repositories |
| std::shared_ptr< storage::prefetch_repository > | compatibility_repo |
| std::shared_ptr< remote_node_manager > | node_manager |
| std::shared_ptr< job_manager > | job_mgr |
| std::shared_ptr< services::worklist_scu > | worklist_scu |
| std::shared_ptr< di::ILogger > | logger |
| std::vector< prefetch_rule > | rules_cache |
| std::shared_mutex | rules_mutex |
| std::thread | scheduler_thread |
| std::atomic< bool > | scheduler_running {false} |
| std::condition_variable | scheduler_cv |
| std::mutex | scheduler_mutex |
| std::thread | worklist_monitor_thread |
| std::atomic< bool > | worklist_monitor_running {false} |
| std::string | worklist_node_id |
| std::condition_variable | worklist_cv |
| std::mutex | worklist_mutex |
| std::unordered_set< std::string > | pending_study_uids |
| std::mutex | pending_mutex |
| std::atomic< size_t > | pending_count {0} |
Definition at line 120 of file prefetch_manager.cpp.
|
inline |
Definition at line 340 of file prefetch_manager.cpp.
References rules_cache, rules_mutex, and kcenon::pacs::client::scheduled_exam.
Referenced by scheduler_loop().

|
inline |
Definition at line 230 of file prefetch_manager.cpp.
References kcenon::pacs::client::body_part, kcenon::pacs::client::modality, rules_cache, rules_mutex, and kcenon::pacs::client::station_ae.
Referenced by kcenon::pacs::client::prefetch_manager::prefetch_priors(), and kcenon::pacs::client::prefetch_manager::process_worklist().

|
inline |
Definition at line 289 of file prefetch_manager.cpp.
References compatibility_repo, repositories, and kcenon::pacs::client::prefetch_repositories::rules.
Referenced by kcenon::pacs::client::prefetch_manager::process_worklist().

|
inline |
Definition at line 216 of file prefetch_manager.cpp.
References compatibility_repo, kcenon::pacs::client::prefetch_repositories::history, and repositories.
Referenced by kcenon::pacs::client::prefetch_manager::prefetch_study().

|
inline |
Definition at line 196 of file prefetch_manager.cpp.
References pending_mutex, and pending_study_uids.
Referenced by kcenon::pacs::client::prefetch_manager::prefetch_study().

|
inline |
Definition at line 160 of file prefetch_manager.cpp.
References compatibility_repo, repositories, kcenon::pacs::client::prefetch_repositories::rules, rules_cache, and rules_mutex.
Referenced by kcenon::pacs::client::prefetch_manager::prefetch_manager(), and kcenon::pacs::client::prefetch_manager::prefetch_manager().

|
inline |
Definition at line 207 of file prefetch_manager.cpp.
References pending_count, pending_mutex, and pending_study_uids.
|
inline |
Definition at line 201 of file prefetch_manager.cpp.
References pending_count, pending_mutex, and pending_study_uids.
Referenced by kcenon::pacs::client::prefetch_manager::prefetch_study().

|
inline |
Definition at line 371 of file prefetch_manager.cpp.
References logger, node_manager, worklist_node_id, and worklist_scu.
Referenced by worklist_monitor_loop().

|
inline |
Definition at line 252 of file prefetch_manager.cpp.
References compatibility_repo, kcenon::pacs::client::prefetch_repositories::history, kcenon::pacs::client::prefetch_history::job_id, kcenon::pacs::client::prefetch_history::patient_id, kcenon::pacs::client::prefetch_history::prefetched_at, repositories, kcenon::pacs::client::prefetch_history::rule_id, kcenon::pacs::client::prefetch_history::source_node_id, kcenon::pacs::client::prefetch_history::status, and kcenon::pacs::client::prefetch_history::study_uid.
Referenced by kcenon::pacs::client::prefetch_manager::prefetch_study().

|
inline |
Definition at line 182 of file prefetch_manager.cpp.
References compatibility_repo, repositories, and kcenon::pacs::client::prefetch_repositories::rules.
|
inline |
Definition at line 326 of file prefetch_manager.cpp.
References check_scheduled_rules(), scheduler_cv, scheduler_mutex, and scheduler_running.
Referenced by kcenon::pacs::client::prefetch_manager::start_scheduler().


|
inline |
Definition at line 357 of file prefetch_manager.cpp.
References config, query_and_process_worklist(), kcenon::pacs::client::prefetch_manager_config::worklist_check_interval, worklist_cv, worklist_monitor_running, and worklist_mutex.
Referenced by kcenon::pacs::client::prefetch_manager::start_worklist_monitor().


| std::shared_ptr<storage::prefetch_repository> kcenon::pacs::client::prefetch_manager::impl::compatibility_repo |
Definition at line 126 of file prefetch_manager.cpp.
Referenced by kcenon::pacs::client::prefetch_manager::add_rule(), kcenon::pacs::client::prefetch_manager::completed_today(), kcenon::pacs::client::prefetch_manager::failed_today(), increment_rule_stats(), is_study_local(), load_rules_from_repo(), kcenon::pacs::client::prefetch_manager::prefetch_manager(), record_prefetch_history(), kcenon::pacs::client::prefetch_manager::remove_rule(), save_rule_to_repo(), and kcenon::pacs::client::prefetch_manager::update_rule().
| prefetch_manager_config kcenon::pacs::client::prefetch_manager::impl::config |
Definition at line 122 of file prefetch_manager.cpp.
Referenced by kcenon::pacs::client::prefetch_manager::config(), kcenon::pacs::client::prefetch_manager::prefetch_manager(), kcenon::pacs::client::prefetch_manager::prefetch_manager(), kcenon::pacs::client::prefetch_manager::prefetch_study(), kcenon::pacs::client::prefetch_manager::set_config(), and worklist_monitor_loop().
| std::shared_ptr<job_manager> kcenon::pacs::client::prefetch_manager::impl::job_mgr |
Definition at line 128 of file prefetch_manager.cpp.
Referenced by kcenon::pacs::client::prefetch_manager::prefetch_manager(), kcenon::pacs::client::prefetch_manager::prefetch_manager(), kcenon::pacs::client::prefetch_manager::prefetch_patient(), and kcenon::pacs::client::prefetch_manager::prefetch_study().
| std::shared_ptr<di::ILogger> kcenon::pacs::client::prefetch_manager::impl::logger |
Definition at line 130 of file prefetch_manager.cpp.
Referenced by kcenon::pacs::client::prefetch_manager::add_rule(), kcenon::pacs::client::prefetch_manager::prefetch_manager(), kcenon::pacs::client::prefetch_manager::prefetch_manager(), kcenon::pacs::client::prefetch_manager::prefetch_patient(), kcenon::pacs::client::prefetch_manager::prefetch_priors(), kcenon::pacs::client::prefetch_manager::prefetch_study(), kcenon::pacs::client::prefetch_manager::process_worklist(), query_and_process_worklist(), kcenon::pacs::client::prefetch_manager::remove_rule(), kcenon::pacs::client::prefetch_manager::start_scheduler(), kcenon::pacs::client::prefetch_manager::start_worklist_monitor(), kcenon::pacs::client::prefetch_manager::stop_scheduler(), kcenon::pacs::client::prefetch_manager::stop_worklist_monitor(), and kcenon::pacs::client::prefetch_manager::update_rule().
| std::shared_ptr<remote_node_manager> kcenon::pacs::client::prefetch_manager::impl::node_manager |
| std::atomic<size_t> kcenon::pacs::client::prefetch_manager::impl::pending_count {0} |
Definition at line 154 of file prefetch_manager.cpp.
Referenced by mark_study_complete(), mark_study_pending(), and kcenon::pacs::client::prefetch_manager::pending_prefetches().
|
mutable |
Definition at line 151 of file prefetch_manager.cpp.
Referenced by is_study_pending(), mark_study_complete(), and mark_study_pending().
| std::unordered_set<std::string> kcenon::pacs::client::prefetch_manager::impl::pending_study_uids |
Definition at line 150 of file prefetch_manager.cpp.
Referenced by is_study_pending(), mark_study_complete(), and mark_study_pending().
| prefetch_repositories kcenon::pacs::client::prefetch_manager::impl::repositories |
Definition at line 125 of file prefetch_manager.cpp.
Referenced by kcenon::pacs::client::prefetch_manager::add_rule(), kcenon::pacs::client::prefetch_manager::completed_today(), kcenon::pacs::client::prefetch_manager::failed_today(), increment_rule_stats(), is_study_local(), load_rules_from_repo(), kcenon::pacs::client::prefetch_manager::prefetch_manager(), record_prefetch_history(), kcenon::pacs::client::prefetch_manager::remove_rule(), save_rule_to_repo(), and kcenon::pacs::client::prefetch_manager::update_rule().
| std::vector<prefetch_rule> kcenon::pacs::client::prefetch_manager::impl::rules_cache |
Definition at line 133 of file prefetch_manager.cpp.
Referenced by kcenon::pacs::client::prefetch_manager::add_rule(), check_scheduled_rules(), get_matching_rules(), kcenon::pacs::client::prefetch_manager::get_rule(), kcenon::pacs::client::prefetch_manager::list_rules(), load_rules_from_repo(), kcenon::pacs::client::prefetch_manager::remove_rule(), and kcenon::pacs::client::prefetch_manager::update_rule().
|
mutable |
Definition at line 134 of file prefetch_manager.cpp.
Referenced by kcenon::pacs::client::prefetch_manager::add_rule(), check_scheduled_rules(), get_matching_rules(), kcenon::pacs::client::prefetch_manager::get_rule(), kcenon::pacs::client::prefetch_manager::list_rules(), load_rules_from_repo(), kcenon::pacs::client::prefetch_manager::remove_rule(), and kcenon::pacs::client::prefetch_manager::update_rule().
| std::condition_variable kcenon::pacs::client::prefetch_manager::impl::scheduler_cv |
Definition at line 139 of file prefetch_manager.cpp.
Referenced by scheduler_loop(), and kcenon::pacs::client::prefetch_manager::stop_scheduler().
| std::mutex kcenon::pacs::client::prefetch_manager::impl::scheduler_mutex |
Definition at line 140 of file prefetch_manager.cpp.
Referenced by scheduler_loop(), and kcenon::pacs::client::prefetch_manager::stop_scheduler().
| std::atomic<bool> kcenon::pacs::client::prefetch_manager::impl::scheduler_running {false} |
Definition at line 138 of file prefetch_manager.cpp.
Referenced by kcenon::pacs::client::prefetch_manager::is_scheduler_running(), scheduler_loop(), kcenon::pacs::client::prefetch_manager::start_scheduler(), and kcenon::pacs::client::prefetch_manager::stop_scheduler().
| std::thread kcenon::pacs::client::prefetch_manager::impl::scheduler_thread |
Definition at line 137 of file prefetch_manager.cpp.
Referenced by kcenon::pacs::client::prefetch_manager::start_scheduler(), and kcenon::pacs::client::prefetch_manager::stop_scheduler().
| std::condition_variable kcenon::pacs::client::prefetch_manager::impl::worklist_cv |
Definition at line 146 of file prefetch_manager.cpp.
Referenced by kcenon::pacs::client::prefetch_manager::stop_worklist_monitor(), and worklist_monitor_loop().
| std::atomic<bool> kcenon::pacs::client::prefetch_manager::impl::worklist_monitor_running {false} |
Definition at line 144 of file prefetch_manager.cpp.
Referenced by kcenon::pacs::client::prefetch_manager::is_worklist_monitor_running(), kcenon::pacs::client::prefetch_manager::start_worklist_monitor(), kcenon::pacs::client::prefetch_manager::stop_worklist_monitor(), and worklist_monitor_loop().
| std::thread kcenon::pacs::client::prefetch_manager::impl::worklist_monitor_thread |
Definition at line 143 of file prefetch_manager.cpp.
Referenced by kcenon::pacs::client::prefetch_manager::start_worklist_monitor(), and kcenon::pacs::client::prefetch_manager::stop_worklist_monitor().
| std::mutex kcenon::pacs::client::prefetch_manager::impl::worklist_mutex |
Definition at line 147 of file prefetch_manager.cpp.
Referenced by kcenon::pacs::client::prefetch_manager::stop_worklist_monitor(), and worklist_monitor_loop().
| std::string kcenon::pacs::client::prefetch_manager::impl::worklist_node_id |
Definition at line 145 of file prefetch_manager.cpp.
Referenced by query_and_process_worklist(), and kcenon::pacs::client::prefetch_manager::start_worklist_monitor().
| std::shared_ptr<services::worklist_scu> kcenon::pacs::client::prefetch_manager::impl::worklist_scu |
Definition at line 129 of file prefetch_manager.cpp.
Referenced by kcenon::pacs::client::prefetch_manager::prefetch_manager(), kcenon::pacs::client::prefetch_manager::prefetch_manager(), and query_and_process_worklist().