16#include <kcenon/common/patterns/result.h>
24#ifdef PACS_WITH_DATABASE_SYSTEM
30class worklist_repository :
public base_repository<worklist_item, int64_t> {
36 auto operator=(
const worklist_repository&) -> worklist_repository& =
delete;
38 auto operator=(worklist_repository&&) noexcept
39 -> worklist_repository& = default;
44 std::string_view accession_no,
45 std::string_view new_status)
48 ->
Result<std::vector<worklist_item>>;
50 std::string_view accession_no)
51 -> std::optional<worklist_item>;
53 -> std::optional<worklist_item>;
55 std::string_view accession_no)
60 std::chrono::system_clock::time_point before) ->
Result<
size_t>;
66 [[nodiscard]] auto map_row_to_entity(const database_row& row) const
67 -> worklist_item override;
68 [[nodiscard]] auto entity_to_row(const worklist_item& entity) const
69 -> std::map<std::
string, database_value> override;
70 [[nodiscard]] auto get_pk(const worklist_item& entity) const
72 [[nodiscard]] auto has_pk(const worklist_item& entity) const
74 [[nodiscard]] auto select_columns() const -> std::vector<std::
string> override;
80 -> std::chrono::system_clock::time_point;
81 [[nodiscard]] auto format_timestamp(
82 std::chrono::system_clock::time_point tp) const -> std::
string;
96using VoidResult = kcenon::common::VoidResult;
111 std::string_view accession_no,
112 std::string_view new_status)
117 std::string_view accession_no) const
122 std::string_view accession_no)
127 std::chrono::system_clock::time_point before) ->
Result<
size_t>;
137 -> std::chrono::system_clock::time_point;
Generic base repository for CRUD operations.
worklist_repository(sqlite3 *db)
auto cleanup_old_worklist_items(std::chrono::hours age) -> Result< size_t >
auto operator=(const worklist_repository &) -> worklist_repository &=delete
auto update_worklist_status(std::string_view step_id, std::string_view accession_no, std::string_view new_status) -> VoidResult
auto cleanup_worklist_items_before(std::chrono::system_clock::time_point before) -> Result< size_t >
worklist_repository(const worklist_repository &)=delete
auto worklist_count() const -> Result< size_t >
auto find_worklist_by_pk(int64_t pk) const -> std::optional< worklist_item >
auto query_worklist(const worklist_query &query) const -> Result< std::vector< worklist_item > >
static auto parse_timestamp(const std::string &str) -> std::chrono::system_clock::time_point
auto find_worklist_item(std::string_view step_id, std::string_view accession_no) const -> std::optional< worklist_item >
auto parse_worklist_row(void *stmt) const -> worklist_item
auto delete_worklist_item(std::string_view step_id, std::string_view accession_no) -> VoidResult
auto add_worklist_item(const worklist_item &item) -> Result< int64_t >
static auto to_like_pattern(std::string_view pattern) -> std::string
kcenon::common::Result< T > Result
Result type alias for operations returning a value.
Worklist item record from the database.
Modality Worklist (MWL) record data structures.