19#ifdef PACS_WITH_DATABASE_SYSTEM
26class prefetch_history_repository
27 :
public base_repository<client::prefetch_history, int64_t> {
29 explicit prefetch_history_repository(
30 std::shared_ptr<pacs_database_adapter> db);
32 [[nodiscard]]
auto find_by_patient(
33 std::string_view patient_id,
34 size_t limit = 100) -> list_result_type;
36 [[nodiscard]]
auto find_by_study(std::string_view study_uid)
39 [[nodiscard]]
auto find_by_rule(
40 std::string_view rule_id,
41 size_t limit = 100) -> list_result_type;
43 [[nodiscard]]
auto find_by_status(
44 std::string_view status,
45 size_t limit = 100) -> list_result_type;
47 [[nodiscard]]
auto find_recent(
size_t limit = 100) -> list_result_type;
49 [[nodiscard]]
auto is_study_prefetched(std::string_view study_uid)
52 [[nodiscard]]
auto count_by_status_on_current_date(
53 std::string_view status) -> Result<size_t>;
55 [[nodiscard]]
auto update_status(
57 std::string_view status) -> VoidResult;
59 [[nodiscard]]
auto cleanup_old(std::chrono::hours max_age)
63 [[nodiscard]]
auto map_row_to_entity(
const database_row& row)
const
64 -> client::prefetch_history
override;
66 [[nodiscard]]
auto entity_to_row(
const client::prefetch_history& entity)
const
67 -> std::map<std::string, database_value>
override;
69 [[nodiscard]]
auto get_pk(
const client::prefetch_history& entity)
const
72 [[nodiscard]]
auto has_pk(
const client::prefetch_history& entity)
const
75 [[nodiscard]]
auto select_columns() const
76 -> std::vector<std::
string> override;
79 [[nodiscard]] auto parse_timestamp(const std::
string& str) const
80 -> std::chrono::system_clock::time_point;
82 [[nodiscard]] auto format_timestamp(
83 std::chrono::system_clock::time_point tp) const -> std::
string;
Generic base repository for CRUD operations.
Types and structures for prefetch manager.