23#include <kcenon/common/patterns/result.h>
30#ifdef PACS_WITH_DATABASE_SYSTEM
63class measurement_repository
64 :
public base_repository<measurement_record, std::string> {
77 using base_repository::
count;
89 [[nodiscard]] auto
find_by_pk(int64_t pk) -> result_type;
106 [[nodiscard]] auto
search(const measurement_query& query)
115 [[nodiscard]] auto
count(const measurement_query& query) ->
Result<
size_t>;
122 [[nodiscard]] auto map_row_to_entity(const database_row& row) const
123 -> measurement_record override;
125 [[nodiscard]] auto entity_to_row(const measurement_record& entity) const
126 -> std::map<std::
string, database_value> override;
128 [[nodiscard]] auto get_pk(const measurement_record& entity) const
129 -> std::
string override;
131 [[nodiscard]] auto has_pk(const measurement_record& entity) const
134 [[nodiscard]] auto select_columns() const
135 -> std::vector<std::
string> override;
138 [[nodiscard]] auto parse_timestamp(const std::
string& str) const
139 -> std::chrono::system_clock::time_point;
141 [[nodiscard]] auto format_timestamp(
142 std::chrono::system_clock::time_point tp) const -> std::
string;
157using VoidResult = kcenon::common::VoidResult;
179 [[nodiscard]] auto
find_by_id(std::string_view measurement_id) const
181 [[nodiscard]] auto
find_by_pk(int64_t pk) const
183 [[nodiscard]] auto
find_by_instance(std::string_view sop_instance_uid) const
187 [[nodiscard]] auto
remove(std::string_view measurement_id) -> VoidResult;
188 [[nodiscard]] auto
exists(std::string_view measurement_id) const ->
bool;
189 [[nodiscard]] auto
count() const ->
size_t;
191 [[nodiscard]] auto
is_valid() const noexcept ->
bool;
Generic base repository for CRUD operations.
Repository for measurement persistence (legacy SQLite interface)
measurement_repository(sqlite3 *db)
auto find_by_pk(int64_t pk) const -> std::optional< measurement_record >
auto find_by_id(std::string_view measurement_id) const -> std::optional< measurement_record >
measurement_repository(measurement_repository &&) noexcept
auto find_by_instance(std::string_view sop_instance_uid) const -> std::vector< measurement_record >
auto remove(std::string_view measurement_id) -> VoidResult
auto is_valid() const noexcept -> bool
auto operator=(const measurement_repository &) -> measurement_repository &=delete
auto search(const measurement_query &query) const -> std::vector< measurement_record >
auto save(const measurement_record &record) -> VoidResult
auto count() const -> size_t
auto parse_row(void *stmt) const -> measurement_record
auto exists(std::string_view measurement_id) const -> bool
measurement_repository(const measurement_repository &)=delete
~measurement_repository()
Measurement record data structures for database operations.
kcenon::common::Result< T > Result
Result type alias for operations returning a value.
Measurement record from the database.