19#ifdef PACS_WITH_DATABASE_SYSTEM
26class sync_conflict_repository
27 :
public base_repository<client::sync_conflict, std::string> {
29 explicit sync_conflict_repository(
30 std::shared_ptr<pacs_database_adapter> db);
32 [[nodiscard]]
auto find_by_study_uid(std::string_view study_uid)
35 [[nodiscard]]
auto find_by_config(std::string_view config_id)
38 [[nodiscard]]
auto find_unresolved() -> list_result_type;
40 [[nodiscard]]
auto resolve(
41 std::string_view study_uid,
42 client::conflict_resolution resolution) -> VoidResult;
44 [[nodiscard]]
auto cleanup_old(std::chrono::hours max_age)
48 [[nodiscard]]
auto map_row_to_entity(
const database_row& row)
const
49 -> client::sync_conflict
override;
51 [[nodiscard]]
auto entity_to_row(
const client::sync_conflict& entity)
const
52 -> std::map<std::string, database_value>
override;
54 [[nodiscard]]
auto get_pk(
const client::sync_conflict& entity)
const
55 -> std::string
override;
57 [[nodiscard]]
auto has_pk(
const client::sync_conflict& entity)
const
60 [[nodiscard]]
auto select_columns() const
61 -> std::vector<std::
string> override;
64 [[nodiscard]] auto parse_timestamp(const std::
string& str) const
65 -> std::chrono::system_clock::time_point;
67 [[nodiscard]] auto format_timestamp(
68 std::chrono::system_clock::time_point tp) const -> std::
string;
Generic base repository for CRUD operations.
Types and structures for bidirectional DICOM synchronization.