23#ifdef PACS_WITH_DATABASE_SYSTEM
51class recent_study_repository
52 :
public base_repository<recent_study_record, int64_t> {
59 explicit recent_study_repository(std::shared_ptr<pacs_database_adapter> db);
75 [[nodiscard]]
auto record_access(
76 std::string_view user_id,
77 std::string_view study_uid) -> VoidResult;
86 [[nodiscard]]
auto find_by_user(
87 std::string_view user_id,
88 size_t limit = 20) -> list_result_type;
96 [[nodiscard]]
auto clear_for_user(std::string_view user_id) -> VoidResult;
104 [[nodiscard]]
auto count_for_user(std::string_view user_id)
114 [[nodiscard]]
auto was_recently_accessed(
115 std::string_view user_id,
116 std::string_view study_uid) -> Result<bool>;
123 [[nodiscard]]
auto map_row_to_entity(
const database_row& row)
const
124 -> recent_study_record
override;
126 [[nodiscard]]
auto entity_to_row(
const recent_study_record& entity)
const
127 -> std::map<std::string, database_value>
override;
129 [[nodiscard]]
auto get_pk(
const recent_study_record& entity)
const
132 [[nodiscard]]
auto has_pk(
const recent_study_record& entity)
const
135 [[nodiscard]]
auto select_columns() const
136 -> std::vector<std::
string> override;
139 [[nodiscard]] auto parse_timestamp(const std::
string& str) const
140 -> std::chrono::system_clock::time_point;
142 [[nodiscard]] auto format_timestamp(
143 std::chrono::system_clock::time_point tp) const -> std::
string;
Generic base repository for CRUD operations.
Viewer state record data structures for database operations.