62 [[nodiscard]]
auto is_valid() const noexcept ->
bool {
240 std::function<void(
const std::string& patient_id,
243 const std::string& error_message)>;
248 std::function<void(
const std::string& patient_id,
249 const std::string& study_uid,
250 const std::string& error)>;
257 [[nodiscard]]
auto is_valid() const noexcept ->
bool {
263 if (
pacs.is_valid()) {
Prefetch selection criteria.
bool prefer_same_body_part
Prefer same body part as scheduled procedure.
bool prefer_same_modality
Prefer same modality as scheduled procedure.
std::set< std::string > exclude_modalities
Modalities to exclude.
std::chrono::days lookback_period
Lookback period for prior studies (default: 365 days)
std::set< std::string > include_modalities
Modalities to include (empty = all modalities)
std::size_t max_studies_per_patient
Maximum number of prior studies to prefetch per patient.
std::size_t max_series_per_study
Maximum number of prior series to prefetch per study.
std::set< std::string > include_body_parts
Only prefetch studies with specific body parts.
Prefetch result statistics.
std::size_t studies_prefetched
Number of studies prefetched successfully.
std::size_t studies_already_present
Number of studies already present (skipped)
auto is_successful() const noexcept -> bool
Check if the result indicates success (no failures)
std::size_t bytes_downloaded
Total bytes downloaded.
std::chrono::system_clock::time_point timestamp
Time when this result was recorded.
std::size_t series_prefetched
Number of series prefetched successfully.
std::size_t instances_prefetched
Number of instances (images) prefetched.
auto operator+=(const prefetch_result &other) -> prefetch_result &
Combine results from another prefetch operation.
std::chrono::milliseconds duration
Duration of the prefetch operation.
std::size_t studies_failed
Number of studies that failed to prefetch.
std::size_t patients_processed
Number of patients processed.
Configuration for the auto prefetch service.
prefetch_complete_callback on_prefetch_complete
prefetch_criteria criteria
Selection criteria for prior studies.
bool auto_start
Whether to start automatically on construction.
std::function< void(const std::string &patient_id, const prior_study_info &study, bool success, const std::string &error_message)> prefetch_complete_callback
Callback for individual prefetch completion.
std::function< void(const prefetch_result &result)> cycle_complete_callback
Callback for prefetch cycle completion.
bool retry_on_failure
Retry failed prefetches.
error_callback on_prefetch_error
auto is_valid() const noexcept -> bool
Check if configuration is valid.
std::size_t rate_limit_per_minute
Rate limit: maximum prefetches per minute (0 = unlimited)
std::size_t max_retry_attempts
Maximum retry attempts.
std::size_t max_concurrent_prefetches
Maximum concurrent prefetch operations.
std::function< void(const std::string &patient_id, const std::string &study_uid, const std::string &error)> error_callback
Callback for prefetch errors.
cycle_complete_callback on_cycle_complete
bool enabled
Enable/disable the prefetch service.
std::chrono::seconds retry_delay
Delay between retries.
std::vector< remote_pacs_config > remote_pacs
Remote PACS configurations (can prefetch from multiple sources)
std::chrono::seconds prefetch_interval
Interval between prefetch cycles (default: 5 minutes)
std::string patient_name
Patient Name.
std::string body_part_examined
Body Part Examined.
std::size_t number_of_instances
Number of Instances in Study.
std::string study_description
Study Description.
std::string study_instance_uid
Study Instance UID.
std::set< std::string > modalities
Modalities in Study.
std::size_t number_of_series
Number of Series in Study.
std::string patient_id
Patient ID.
std::string accession_number
Accession Number.
std::string study_date
Study Date (YYYYMMDD format)
Remote PACS connection configuration.
std::chrono::seconds connection_timeout
Connection timeout.
uint16_t port
Remote PACS port (default: 11112)
std::string local_ae_title
Our local AE title for association.
auto is_valid() const noexcept -> bool
Check if configuration is valid.
std::string host
Remote PACS hostname or IP address.
std::chrono::seconds association_timeout
Association timeout.
bool use_tls
Enable TLS for secure connections.
std::string ae_title
Remote PACS AE title.