19#ifdef PACS_WITH_DATABASE_SYSTEM
51repository_factory::repository_factory(
52 std::shared_ptr<pacs_database_adapter> db)
53 : db_(std::
move(db)) {}
55auto repository_factory::patients() -> std::shared_ptr<patient_repository> {
57 patients_ = std::make_shared<patient_repository>(db_);
62auto repository_factory::studies() -> std::shared_ptr<study_repository> {
64 studies_ = std::make_shared<study_repository>(db_);
69auto repository_factory::series() -> std::shared_ptr<series_repository> {
71 series_ = std::make_shared<series_repository>(db_);
76auto repository_factory::instances() -> std::shared_ptr<instance_repository> {
78 instances_ = std::make_shared<instance_repository>(db_);
83auto repository_factory::mpps() -> std::shared_ptr<mpps_repository> {
85 mpps_ = std::make_shared<mpps_repository>(db_);
90auto repository_factory::worklist() -> std::shared_ptr<worklist_repository> {
92 worklist_ = std::make_shared<worklist_repository>(db_);
97auto repository_factory::ups() -> std::shared_ptr<ups_repository> {
99 ups_ = std::make_shared<ups_repository>(db_);
104auto repository_factory::audit() -> std::shared_ptr<audit_repository> {
106 audit_ = std::make_shared<audit_repository>(db_);
111auto repository_factory::jobs() -> std::shared_ptr<job_repository> {
113 jobs_ = std::make_shared<job_repository>(db_);
118auto repository_factory::annotations()
119 -> std::shared_ptr<annotation_repository> {
121 annotations_ = std::make_shared<annotation_repository>(db_);
126auto repository_factory::routing_rules()
127 -> std::shared_ptr<routing_repository> {
128 if (!routing_rules_) {
129 routing_rules_ = std::make_shared<routing_repository>(db_);
131 return routing_rules_;
134auto repository_factory::nodes() -> std::shared_ptr<node_repository> {
136 nodes_ = std::make_shared<node_repository>(db_);
141auto repository_factory::sync_states() -> std::shared_ptr<sync_repository> {
143 sync_states_ = std::make_shared<sync_repository>(db_);
148auto repository_factory::sync_configs()
149 -> std::shared_ptr<sync_config_repository> {
150 if (!sync_configs_) {
151 sync_configs_ = std::make_shared<sync_config_repository>(db_);
153 return sync_configs_;
156auto repository_factory::sync_conflicts()
157 -> std::shared_ptr<sync_conflict_repository> {
158 if (!sync_conflicts_) {
159 sync_conflicts_ = std::make_shared<sync_conflict_repository>(db_);
161 return sync_conflicts_;
164auto repository_factory::sync_history()
165 -> std::shared_ptr<sync_history_repository> {
166 if (!sync_history_) {
167 sync_history_ = std::make_shared<sync_history_repository>(db_);
169 return sync_history_;
172auto repository_factory::key_images()
173 -> std::shared_ptr<key_image_repository> {
175 key_images_ = std::make_shared<key_image_repository>(db_);
180auto repository_factory::measurements()
181 -> std::shared_ptr<measurement_repository> {
182 if (!measurements_) {
183 measurements_ = std::make_shared<measurement_repository>(db_);
185 return measurements_;
188auto repository_factory::viewer_states()
189 -> std::shared_ptr<viewer_state_repository> {
190 if (!viewer_states_) {
191 viewer_states_ = std::make_shared<viewer_state_repository>(db_);
193 return viewer_states_;
196auto repository_factory::viewer_state_records()
197 -> std::shared_ptr<viewer_state_record_repository> {
198 if (!viewer_state_records_) {
199 viewer_state_records_ =
200 std::make_shared<viewer_state_record_repository>(db_);
202 return viewer_state_records_;
205auto repository_factory::recent_studies()
206 -> std::shared_ptr<recent_study_repository> {
207 if (!recent_studies_) {
208 recent_studies_ = std::make_shared<recent_study_repository>(db_);
210 return recent_studies_;
213auto repository_factory::prefetch_queue()
214 -> std::shared_ptr<prefetch_repository> {
215 if (!prefetch_queue_) {
216 prefetch_queue_ = std::make_shared<prefetch_repository>(db_);
218 return prefetch_queue_;
221auto repository_factory::prefetch_rules()
222 -> std::shared_ptr<prefetch_rule_repository> {
223 if (!prefetch_rules_) {
224 prefetch_rules_ = std::make_shared<prefetch_rule_repository>(db_);
226 return prefetch_rules_;
229auto repository_factory::prefetch_history()
230 -> std::shared_ptr<prefetch_history_repository> {
231 if (!prefetch_history_) {
232 prefetch_history_ = std::make_shared<prefetch_history_repository>(db_);
234 return prefetch_history_;
237auto repository_factory::commitments()
238 -> std::shared_ptr<commitment_repository> {
240 commitments_ = std::make_shared<commitment_repository>(db_);
245auto repository_factory::canonical_repositories() -> canonical_repository_set {
247 .patients = patients(),
248 .studies = studies(),
250 .instances = instances(),
256 .annotations = annotations(),
257 .routing_rules = routing_rules(),
261 .configs = sync_configs(),
262 .conflicts = sync_conflicts(),
263 .history = sync_history(),
265 .key_images = key_images(),
266 .measurements = measurements(),
269 .records = viewer_state_records(),
270 .recent_studies = recent_studies(),
274 .rules = prefetch_rules(),
275 .history = prefetch_history(),
277 .commitments = commitments(),
281auto repository_factory::compatibility_repositories()
282 -> compatibility_repository_set {
284 .sync_states = sync_states(),
285 .viewer_states = viewer_states(),
286 .prefetch_queue = prefetch_queue(),
290auto repository_factory::db() const
291 -> std::shared_ptr<pacs_database_adapter> {
Repository for annotation persistence using base_repository pattern.
Repository for audit log persistence.
Repository for Storage Commitment transaction tracking.
Repository for instance metadata persistence using base_repository pattern.
Repository for job persistence using base_repository pattern.
Repository for key image persistence using base_repository pattern.
Repository for measurement persistence using base_repository pattern.
Repository for MPPS lifecycle persistence using base_repository pattern.
@ move
C-MOVE move request/response.
@ worklist
Modality Worklist Service Class.
@ ups
Unified Procedure Step Service Class.
@ mpps
Modality Performed Procedure Step.
Repository for remote PACS node persistence using base_repository pattern.
Unified database adapter for PACS system.
Repository for patient metadata persistence using base_repository pattern.
Repository for prefetch history records using base_repository pattern.
Repository for prefetch rule and history persistence.
Repository for prefetch rules using base_repository pattern.
Repository for recent study records using base_repository pattern.
Factory for creating repository instances.
Repository for routing rule persistence using base_repository pattern.
Repository for series metadata persistence using base_repository pattern.
Repository for study metadata persistence using base_repository pattern.
Repository for sync config records using base_repository pattern.
Repository for sync conflict records using base_repository pattern.
Repository for sync history records using base_repository pattern.
Repository for sync persistence.
Repository for UPS lifecycle and subscription persistence.
Repository for viewer state records using base_repository pattern.
Repository for viewer state persistence.
Repository for modality worklist persistence using base_repository pattern.