16#include <kcenon/common/patterns/result.h>
24#ifdef PACS_WITH_DATABASE_SYSTEM
30class ups_repository :
public base_repository<ups_workitem, int64_t> {
32 explicit ups_repository(std::shared_ptr<pacs_database_adapter> db);
45 std::string_view new_state,
46 std::string_view transaction_uid = "")
49 -> std::optional<ups_workitem>;
51 ->
Result<std::vector<ups_workitem>>;
57 [[nodiscard]] auto
subscribe_ups(const ups_subscription& subscription)
60 std::string_view workitem_uid = "")
63 ->
Result<std::vector<ups_subscription>>;
65 ->
Result<std::vector<std::
string>>;
68 [[nodiscard]] auto map_row_to_entity(const database_row& row) const
69 -> ups_workitem override;
70 [[nodiscard]] auto entity_to_row(const ups_workitem& entity) const
71 -> std::map<std::
string, database_value> override;
72 [[nodiscard]] auto get_pk(const ups_workitem& entity) const
74 [[nodiscard]] auto has_pk(const ups_workitem& entity) const
76 [[nodiscard]] auto select_columns() const -> std::vector<std::
string> override;
82 -> std::chrono::system_clock::time_point;
83 [[nodiscard]] auto format_timestamp(
84 std::chrono::system_clock::time_point tp) const -> std::
string;
98using VoidResult = kcenon::common::VoidResult;
115 std::string_view new_state,
116 std::string_view transaction_uid = "")
130 std::string_view workitem_uid = "")
135 ->
Result<std::vector<std::
string>>;
142 -> std::chrono::system_clock::time_point;
Generic base repository for CRUD operations.
auto get_ups_subscriptions(std::string_view subscriber_ae) const -> Result< std::vector< ups_subscription > >
auto delete_ups_workitem(std::string_view workitem_uid) -> VoidResult
auto operator=(const ups_repository &) -> ups_repository &=delete
auto create_ups_workitem(const ups_workitem &workitem) -> Result< int64_t >
ups_repository(const ups_repository &)=delete
auto ups_workitem_count() const -> Result< size_t >
auto subscribe_ups(const ups_subscription &subscription) -> Result< int64_t >
static auto to_like_pattern(std::string_view pattern) -> std::string
auto change_ups_state(std::string_view workitem_uid, std::string_view new_state, std::string_view transaction_uid="") -> VoidResult
auto unsubscribe_ups(std::string_view subscriber_ae, std::string_view workitem_uid="") -> VoidResult
static auto parse_timestamp(const std::string &str) -> std::chrono::system_clock::time_point
ups_repository(sqlite3 *db)
auto parse_ups_workitem_row(void *stmt) const -> ups_workitem
auto get_ups_subscribers(std::string_view workitem_uid) const -> Result< std::vector< std::string > >
auto find_ups_workitem(std::string_view workitem_uid) const -> std::optional< ups_workitem >
auto update_ups_workitem(const ups_workitem &workitem) -> VoidResult
auto search_ups_workitems(const ups_workitem_query &query) const -> Result< std::vector< ups_workitem > >
kcenon::common::Result< T > Result
Result type alias for operations returning a value.
UPS subscription record from the database.
UPS workitem record from the database.
Unified Procedure Step (UPS) workitem data structures.