23#ifdef PACS_WITH_DATABASE_SYSTEM
56class viewer_state_record_repository
57 :
public base_repository<viewer_state_record, std::string> {
64 explicit viewer_state_record_repository(
65 std::shared_ptr<pacs_database_adapter> db);
77 [[nodiscard]]
auto find_by_study(std::string_view study_uid)
86 [[nodiscard]]
auto find_by_user(std::string_view user_id)
96 [[nodiscard]]
auto find_by_study_and_user(
97 std::string_view study_uid,
98 std::string_view user_id) -> list_result_type;
106 [[nodiscard]]
auto search(
const viewer_state_query& query)
117 [[nodiscard]]
auto map_row_to_entity(
const database_row& row)
const
118 -> viewer_state_record
override;
123 [[nodiscard]]
auto entity_to_row(
const viewer_state_record& entity)
const
124 -> std::map<std::string, database_value>
override;
129 [[nodiscard]]
auto get_pk(
const viewer_state_record& entity)
const
130 -> std::string
override;
135 [[nodiscard]]
auto has_pk(
const viewer_state_record& entity)
const
141 [[nodiscard]]
auto select_columns() const
142 -> std::vector<std::
string> override;
148 [[nodiscard]] auto parse_timestamp(const std::
string& str) const
149 -> std::chrono::system_clock::time_point;
154 [[nodiscard]] auto format_timestamp(
155 std::chrono::system_clock::time_point tp) const -> std::
string;
Generic base repository for CRUD operations.
constexpr std::string_view search
Viewer state record data structures for database operations.