19#ifdef PACS_WITH_DATABASE_SYSTEM
26class prefetch_rule_repository
27 :
public base_repository<client::prefetch_rule, std::string> {
29 explicit prefetch_rule_repository(
30 std::shared_ptr<pacs_database_adapter> db);
32 [[nodiscard]]
auto find_by_rule_id(std::string_view rule_id)
35 [[nodiscard]]
auto find_enabled() -> list_result_type;
37 [[nodiscard]]
auto find_by_trigger(client::prefetch_trigger trigger)
40 [[nodiscard]]
auto enable(std::string_view rule_id) -> VoidResult;
42 [[nodiscard]]
auto disable(std::string_view rule_id) -> VoidResult;
44 [[nodiscard]]
auto increment_triggered(std::string_view rule_id)
47 [[nodiscard]]
auto increment_studies_prefetched(
48 std::string_view rule_id,
49 size_t count = 1) -> VoidResult;
52 [[nodiscard]]
auto map_row_to_entity(
const database_row& row)
const
53 -> client::prefetch_rule
override;
55 [[nodiscard]]
auto entity_to_row(
const client::prefetch_rule& entity)
const
56 -> std::map<std::string, database_value>
override;
58 [[nodiscard]]
auto get_pk(
const client::prefetch_rule& entity)
const
59 -> std::string
override;
61 [[nodiscard]]
auto has_pk(
const client::prefetch_rule& entity)
const
64 [[nodiscard]]
auto select_columns() const
65 -> std::vector<std::
string> override;
68 [[nodiscard]] auto parse_timestamp(const std::
string& str) const
69 -> std::chrono::system_clock::time_point;
71 [[nodiscard]] auto format_timestamp(
72 std::chrono::system_clock::time_point tp) const -> std::
string;
74 [[nodiscard]] static auto serialize_vector(
75 const std::vector<std::
string>& vec) -> std::
string;
77 [[nodiscard]] static auto deserialize_vector(
78 std::string_view json) -> std::vector<std::
string>;
Generic base repository for CRUD operations.
Types and structures for prefetch manager.