22#include <kcenon/common/patterns/result.h>
30#ifdef PACS_WITH_DATABASE_SYSTEM
46class patient_repository :
public base_repository<patient_record, int64_t> {
73 std::string_view patient_name = "",
74 std::string_view birth_date = "",
75 std::string_view sex = "")
93 [[nodiscard]] auto
find_patient(std::string_view patient_id)
94 -> std::optional<patient_record>;
103 -> std::optional<patient_record>;
114 ->
Result<std::vector<patient_record>>;
137 [[nodiscard]] auto map_row_to_entity(const database_row& row) const
138 -> patient_record override;
140 [[nodiscard]] auto entity_to_row(const patient_record& entity) const
141 -> std::map<std::
string, database_value> override;
143 [[nodiscard]] auto get_pk(const patient_record& entity) const
146 [[nodiscard]] auto has_pk(const patient_record& entity) const
149 [[nodiscard]] auto select_columns() const
150 -> std::vector<std::
string> override;
156 [[nodiscard]] auto parse_timestamp(const std::
string& str) const
157 -> std::chrono::system_clock::time_point;
159 [[nodiscard]] auto format_timestamp(
160 std::chrono::system_clock::time_point tp) const -> std::
string;
174using VoidResult = kcenon::common::VoidResult;
190 std::string_view patient_name = "",
191 std::string_view birth_date = "",
192 std::string_view sex = "")
196 [[nodiscard]] auto
find_patient(std::string_view patient_id) const
Generic base repository for CRUD operations.
Repository for patient metadata persistence (legacy SQLite interface)
auto search_patients(const patient_query &query) const -> Result< std::vector< patient_record > >
patient_repository(patient_repository &&) noexcept
auto find_patient_by_pk(int64_t pk) const -> std::optional< patient_record >
patient_repository(const patient_repository &)=delete
patient_repository(sqlite3 *db)
auto upsert_patient(std::string_view patient_id, std::string_view patient_name="", std::string_view birth_date="", std::string_view sex="") -> Result< int64_t >
auto operator=(const patient_repository &) -> patient_repository &=delete
static auto to_like_pattern(std::string_view pattern) -> std::string
auto patient_count() const -> Result< size_t >
auto find_patient(std::string_view patient_id) const -> std::optional< patient_record >
auto parse_patient_row(void *stmt) const -> patient_record
auto delete_patient(std::string_view patient_id) -> VoidResult
kcenon::common::Result< T > Result
Result type alias for operations returning a value.
Patient record data structures for database operations.
Patient record from the database.