Mercurial > hg > orthanc-databases
comparison Framework/Plugins/IndexUnitTests.h @ 226:a4918d57435c
DatabaseManager doesn't IDatabaseFactory anymore
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Fri, 02 Apr 2021 19:23:36 +0200 |
parents | 94c9908e6aca |
children | e9ba888f371b |
comparison
equal
deleted
inserted
replaced
225:94c9908e6aca | 226:a4918d57435c |
---|---|
180 # error Unsupported database backend | 180 # error Unsupported database backend |
181 #endif | 181 #endif |
182 | 182 |
183 db.SetOutputFactory(new DatabaseBackendAdapterV2::Factory(&context, NULL)); | 183 db.SetOutputFactory(new DatabaseBackendAdapterV2::Factory(&context, NULL)); |
184 | 184 |
185 DatabaseManager manager(db.CreateDatabaseFactory()); | 185 std::unique_ptr<DatabaseManager> manager(IndexBackend::CreateSingleDatabaseManager(db)); |
186 manager.Open(); | |
187 | 186 |
188 std::unique_ptr<IDatabaseBackendOutput> output(db.CreateOutput()); | 187 std::unique_ptr<IDatabaseBackendOutput> output(db.CreateOutput()); |
189 | 188 |
190 std::string s; | 189 std::string s; |
191 ASSERT_TRUE(db.LookupGlobalProperty(s, manager, MISSING_SERVER_IDENTIFIER, Orthanc::GlobalProperty_DatabaseSchemaVersion)); | 190 ASSERT_TRUE(db.LookupGlobalProperty(s, *manager, MISSING_SERVER_IDENTIFIER, Orthanc::GlobalProperty_DatabaseSchemaVersion)); |
192 ASSERT_EQ("6", s); | 191 ASSERT_EQ("6", s); |
193 | 192 |
194 ASSERT_FALSE(db.LookupGlobalProperty(s, manager, MISSING_SERVER_IDENTIFIER, Orthanc::GlobalProperty_AnonymizationSequence)); | 193 ASSERT_FALSE(db.LookupGlobalProperty(s, *manager, MISSING_SERVER_IDENTIFIER, Orthanc::GlobalProperty_AnonymizationSequence)); |
195 db.SetGlobalProperty(manager, MISSING_SERVER_IDENTIFIER, Orthanc::GlobalProperty_AnonymizationSequence, "Hello"); | 194 db.SetGlobalProperty(*manager, MISSING_SERVER_IDENTIFIER, Orthanc::GlobalProperty_AnonymizationSequence, "Hello"); |
196 ASSERT_TRUE(db.LookupGlobalProperty(s, manager, MISSING_SERVER_IDENTIFIER, Orthanc::GlobalProperty_AnonymizationSequence)); | 195 ASSERT_TRUE(db.LookupGlobalProperty(s, *manager, MISSING_SERVER_IDENTIFIER, Orthanc::GlobalProperty_AnonymizationSequence)); |
197 ASSERT_EQ("Hello", s); | 196 ASSERT_EQ("Hello", s); |
198 db.SetGlobalProperty(manager, MISSING_SERVER_IDENTIFIER, Orthanc::GlobalProperty_AnonymizationSequence, "HelloWorld"); | 197 db.SetGlobalProperty(*manager, MISSING_SERVER_IDENTIFIER, Orthanc::GlobalProperty_AnonymizationSequence, "HelloWorld"); |
199 ASSERT_TRUE(db.LookupGlobalProperty(s, manager, MISSING_SERVER_IDENTIFIER, Orthanc::GlobalProperty_AnonymizationSequence)); | 198 ASSERT_TRUE(db.LookupGlobalProperty(s, *manager, MISSING_SERVER_IDENTIFIER, Orthanc::GlobalProperty_AnonymizationSequence)); |
200 ASSERT_EQ("HelloWorld", s); | 199 ASSERT_EQ("HelloWorld", s); |
201 | 200 |
202 int64_t a = db.CreateResource(manager, "study", OrthancPluginResourceType_Study); | 201 int64_t a = db.CreateResource(*manager, "study", OrthancPluginResourceType_Study); |
203 ASSERT_TRUE(db.IsExistingResource(manager, a)); | 202 ASSERT_TRUE(db.IsExistingResource(*manager, a)); |
204 ASSERT_FALSE(db.IsExistingResource(manager, a + 1)); | 203 ASSERT_FALSE(db.IsExistingResource(*manager, a + 1)); |
205 | 204 |
206 int64_t b; | 205 int64_t b; |
207 OrthancPluginResourceType t; | 206 OrthancPluginResourceType t; |
208 ASSERT_FALSE(db.LookupResource(b, t, manager, "world")); | 207 ASSERT_FALSE(db.LookupResource(b, t, *manager, "world")); |
209 ASSERT_TRUE(db.LookupResource(b, t, manager, "study")); | 208 ASSERT_TRUE(db.LookupResource(b, t, *manager, "study")); |
210 ASSERT_EQ(a, b); | 209 ASSERT_EQ(a, b); |
211 ASSERT_EQ(OrthancPluginResourceType_Study, t); | 210 ASSERT_EQ(OrthancPluginResourceType_Study, t); |
212 | 211 |
213 b = db.CreateResource(manager, "series", OrthancPluginResourceType_Series); | 212 b = db.CreateResource(*manager, "series", OrthancPluginResourceType_Series); |
214 ASSERT_NE(a, b); | 213 ASSERT_NE(a, b); |
215 | 214 |
216 ASSERT_EQ("study", db.GetPublicId(manager, a)); | 215 ASSERT_EQ("study", db.GetPublicId(*manager, a)); |
217 ASSERT_EQ("series", db.GetPublicId(manager, b)); | 216 ASSERT_EQ("series", db.GetPublicId(*manager, b)); |
218 ASSERT_EQ(OrthancPluginResourceType_Study, db.GetResourceType(manager, a)); | 217 ASSERT_EQ(OrthancPluginResourceType_Study, db.GetResourceType(*manager, a)); |
219 ASSERT_EQ(OrthancPluginResourceType_Series, db.GetResourceType(manager, b)); | 218 ASSERT_EQ(OrthancPluginResourceType_Series, db.GetResourceType(*manager, b)); |
220 | 219 |
221 db.AttachChild(manager, a, b); | 220 db.AttachChild(*manager, a, b); |
222 | 221 |
223 int64_t c; | 222 int64_t c; |
224 ASSERT_FALSE(db.LookupParent(c, manager, a)); | 223 ASSERT_FALSE(db.LookupParent(c, *manager, a)); |
225 ASSERT_TRUE(db.LookupParent(c, manager, b)); | 224 ASSERT_TRUE(db.LookupParent(c, *manager, b)); |
226 ASSERT_EQ(a, c); | 225 ASSERT_EQ(a, c); |
227 | 226 |
228 c = db.CreateResource(manager, "series2", OrthancPluginResourceType_Series); | 227 c = db.CreateResource(*manager, "series2", OrthancPluginResourceType_Series); |
229 db.AttachChild(manager, a, c); | 228 db.AttachChild(*manager, a, c); |
230 | 229 |
231 ASSERT_EQ(3u, db.GetAllResourcesCount(manager)); | 230 ASSERT_EQ(3u, db.GetAllResourcesCount(*manager)); |
232 ASSERT_EQ(0u, db.GetResourcesCount(manager, OrthancPluginResourceType_Patient)); | 231 ASSERT_EQ(0u, db.GetResourcesCount(*manager, OrthancPluginResourceType_Patient)); |
233 ASSERT_EQ(1u, db.GetResourcesCount(manager, OrthancPluginResourceType_Study)); | 232 ASSERT_EQ(1u, db.GetResourcesCount(*manager, OrthancPluginResourceType_Study)); |
234 ASSERT_EQ(2u, db.GetResourcesCount(manager, OrthancPluginResourceType_Series)); | 233 ASSERT_EQ(2u, db.GetResourcesCount(*manager, OrthancPluginResourceType_Series)); |
235 | 234 |
236 ASSERT_FALSE(db.GetParentPublicId(s, manager, a)); | 235 ASSERT_FALSE(db.GetParentPublicId(s, *manager, a)); |
237 ASSERT_TRUE(db.GetParentPublicId(s, manager, b)); ASSERT_EQ("study", s); | 236 ASSERT_TRUE(db.GetParentPublicId(s, *manager, b)); ASSERT_EQ("study", s); |
238 ASSERT_TRUE(db.GetParentPublicId(s, manager, c)); ASSERT_EQ("study", s); | 237 ASSERT_TRUE(db.GetParentPublicId(s, *manager, c)); ASSERT_EQ("study", s); |
239 | 238 |
240 std::list<std::string> children; | 239 std::list<std::string> children; |
241 db.GetChildren(children, manager, a); | 240 db.GetChildren(children, *manager, a); |
242 ASSERT_EQ(2u, children.size()); | 241 ASSERT_EQ(2u, children.size()); |
243 db.GetChildren(children, manager, b); | 242 db.GetChildren(children, *manager, b); |
244 ASSERT_EQ(0u, children.size()); | 243 ASSERT_EQ(0u, children.size()); |
245 db.GetChildren(children, manager, c); | 244 db.GetChildren(children, *manager, c); |
246 ASSERT_EQ(0u, children.size()); | 245 ASSERT_EQ(0u, children.size()); |
247 | 246 |
248 std::list<std::string> cp; | 247 std::list<std::string> cp; |
249 db.GetChildrenPublicId(cp, manager, a); | 248 db.GetChildrenPublicId(cp, *manager, a); |
250 ASSERT_EQ(2u, cp.size()); | 249 ASSERT_EQ(2u, cp.size()); |
251 ASSERT_TRUE(cp.front() == "series" || cp.front() == "series2"); | 250 ASSERT_TRUE(cp.front() == "series" || cp.front() == "series2"); |
252 ASSERT_TRUE(cp.back() == "series" || cp.back() == "series2"); | 251 ASSERT_TRUE(cp.back() == "series" || cp.back() == "series2"); |
253 ASSERT_NE(cp.front(), cp.back()); | 252 ASSERT_NE(cp.front(), cp.back()); |
254 | 253 |
255 std::list<std::string> pub; | 254 std::list<std::string> pub; |
256 db.GetAllPublicIds(pub, manager, OrthancPluginResourceType_Patient); | 255 db.GetAllPublicIds(pub, *manager, OrthancPluginResourceType_Patient); |
257 ASSERT_EQ(0u, pub.size()); | 256 ASSERT_EQ(0u, pub.size()); |
258 db.GetAllPublicIds(pub, manager, OrthancPluginResourceType_Study); | 257 db.GetAllPublicIds(pub, *manager, OrthancPluginResourceType_Study); |
259 ASSERT_EQ(1u, pub.size()); | 258 ASSERT_EQ(1u, pub.size()); |
260 ASSERT_EQ("study", pub.front()); | 259 ASSERT_EQ("study", pub.front()); |
261 db.GetAllPublicIds(pub, manager, OrthancPluginResourceType_Series); | 260 db.GetAllPublicIds(pub, *manager, OrthancPluginResourceType_Series); |
262 ASSERT_EQ(2u, pub.size()); | 261 ASSERT_EQ(2u, pub.size()); |
263 ASSERT_TRUE(pub.front() == "series" || pub.front() == "series2"); | 262 ASSERT_TRUE(pub.front() == "series" || pub.front() == "series2"); |
264 ASSERT_TRUE(pub.back() == "series" || pub.back() == "series2"); | 263 ASSERT_TRUE(pub.back() == "series" || pub.back() == "series2"); |
265 ASSERT_NE(pub.front(), pub.back()); | 264 ASSERT_NE(pub.front(), pub.back()); |
266 | 265 |
267 std::list<int64_t> ci; | 266 std::list<int64_t> ci; |
268 db.GetChildrenInternalId(ci, manager, a); | 267 db.GetChildrenInternalId(ci, *manager, a); |
269 ASSERT_EQ(2u, ci.size()); | 268 ASSERT_EQ(2u, ci.size()); |
270 ASSERT_TRUE(ci.front() == b || ci.front() == c); | 269 ASSERT_TRUE(ci.front() == b || ci.front() == c); |
271 ASSERT_TRUE(ci.back() == b || ci.back() == c); | 270 ASSERT_TRUE(ci.back() == b || ci.back() == c); |
272 ASSERT_NE(ci.front(), ci.back()); | 271 ASSERT_NE(ci.front(), ci.back()); |
273 | 272 |
274 db.SetMetadata(manager, a, Orthanc::MetadataType_ModifiedFrom, "modified"); | 273 db.SetMetadata(*manager, a, Orthanc::MetadataType_ModifiedFrom, "modified"); |
275 db.SetMetadata(manager, a, Orthanc::MetadataType_LastUpdate, "update2"); | 274 db.SetMetadata(*manager, a, Orthanc::MetadataType_LastUpdate, "update2"); |
276 ASSERT_FALSE(db.LookupMetadata(s, manager, b, Orthanc::MetadataType_LastUpdate)); | 275 ASSERT_FALSE(db.LookupMetadata(s, *manager, b, Orthanc::MetadataType_LastUpdate)); |
277 ASSERT_TRUE(db.LookupMetadata(s, manager, a, Orthanc::MetadataType_LastUpdate)); | 276 ASSERT_TRUE(db.LookupMetadata(s, *manager, a, Orthanc::MetadataType_LastUpdate)); |
278 ASSERT_EQ("update2", s); | 277 ASSERT_EQ("update2", s); |
279 db.SetMetadata(manager, a, Orthanc::MetadataType_LastUpdate, "update"); | 278 db.SetMetadata(*manager, a, Orthanc::MetadataType_LastUpdate, "update"); |
280 ASSERT_TRUE(db.LookupMetadata(s, manager, a, Orthanc::MetadataType_LastUpdate)); | 279 ASSERT_TRUE(db.LookupMetadata(s, *manager, a, Orthanc::MetadataType_LastUpdate)); |
281 ASSERT_EQ("update", s); | 280 ASSERT_EQ("update", s); |
282 | 281 |
283 std::list<int32_t> md; | 282 std::list<int32_t> md; |
284 db.ListAvailableMetadata(md, manager, a); | 283 db.ListAvailableMetadata(md, *manager, a); |
285 ASSERT_EQ(2u, md.size()); | 284 ASSERT_EQ(2u, md.size()); |
286 ASSERT_TRUE(md.front() == Orthanc::MetadataType_ModifiedFrom || md.back() == Orthanc::MetadataType_ModifiedFrom); | 285 ASSERT_TRUE(md.front() == Orthanc::MetadataType_ModifiedFrom || md.back() == Orthanc::MetadataType_ModifiedFrom); |
287 ASSERT_TRUE(md.front() == Orthanc::MetadataType_LastUpdate || md.back() == Orthanc::MetadataType_LastUpdate); | 286 ASSERT_TRUE(md.front() == Orthanc::MetadataType_LastUpdate || md.back() == Orthanc::MetadataType_LastUpdate); |
288 std::string mdd; | 287 std::string mdd; |
289 ASSERT_TRUE(db.LookupMetadata(mdd, manager, a, Orthanc::MetadataType_ModifiedFrom)); | 288 ASSERT_TRUE(db.LookupMetadata(mdd, *manager, a, Orthanc::MetadataType_ModifiedFrom)); |
290 ASSERT_EQ("modified", mdd); | 289 ASSERT_EQ("modified", mdd); |
291 ASSERT_TRUE(db.LookupMetadata(mdd, manager, a, Orthanc::MetadataType_LastUpdate)); | 290 ASSERT_TRUE(db.LookupMetadata(mdd, *manager, a, Orthanc::MetadataType_LastUpdate)); |
292 ASSERT_EQ("update", mdd); | 291 ASSERT_EQ("update", mdd); |
293 | 292 |
294 db.ListAvailableMetadata(md, manager, b); | 293 db.ListAvailableMetadata(md, *manager, b); |
295 ASSERT_EQ(0u, md.size()); | 294 ASSERT_EQ(0u, md.size()); |
296 | 295 |
297 db.DeleteMetadata(manager, a, Orthanc::MetadataType_LastUpdate); | 296 db.DeleteMetadata(*manager, a, Orthanc::MetadataType_LastUpdate); |
298 db.DeleteMetadata(manager, b, Orthanc::MetadataType_LastUpdate); | 297 db.DeleteMetadata(*manager, b, Orthanc::MetadataType_LastUpdate); |
299 ASSERT_FALSE(db.LookupMetadata(s, manager, a, Orthanc::MetadataType_LastUpdate)); | 298 ASSERT_FALSE(db.LookupMetadata(s, *manager, a, Orthanc::MetadataType_LastUpdate)); |
300 | 299 |
301 db.ListAvailableMetadata(md, manager, a); | 300 db.ListAvailableMetadata(md, *manager, a); |
302 ASSERT_EQ(1u, md.size()); | 301 ASSERT_EQ(1u, md.size()); |
303 ASSERT_EQ(Orthanc::MetadataType_ModifiedFrom, md.front()); | 302 ASSERT_EQ(Orthanc::MetadataType_ModifiedFrom, md.front()); |
304 | 303 |
305 ASSERT_EQ(0u, db.GetTotalCompressedSize(manager)); | 304 ASSERT_EQ(0u, db.GetTotalCompressedSize(*manager)); |
306 ASSERT_EQ(0u, db.GetTotalUncompressedSize(manager)); | 305 ASSERT_EQ(0u, db.GetTotalUncompressedSize(*manager)); |
307 | 306 |
308 | 307 |
309 std::list<int32_t> fc; | 308 std::list<int32_t> fc; |
310 | 309 |
311 OrthancPluginAttachment a1; | 310 OrthancPluginAttachment a1; |
324 a2.uncompressedHash = "md5_2"; | 323 a2.uncompressedHash = "md5_2"; |
325 a2.compressionType = Orthanc::CompressionType_None; | 324 a2.compressionType = Orthanc::CompressionType_None; |
326 a2.compressedSize = 4242; | 325 a2.compressedSize = 4242; |
327 a2.compressedHash = "md5_2"; | 326 a2.compressedHash = "md5_2"; |
328 | 327 |
329 db.AddAttachment(manager, a, a1); | 328 db.AddAttachment(*manager, a, a1); |
330 db.ListAvailableAttachments(fc, manager, a); | 329 db.ListAvailableAttachments(fc, *manager, a); |
331 ASSERT_EQ(1u, fc.size()); | 330 ASSERT_EQ(1u, fc.size()); |
332 ASSERT_EQ(Orthanc::FileContentType_Dicom, fc.front()); | 331 ASSERT_EQ(Orthanc::FileContentType_Dicom, fc.front()); |
333 db.AddAttachment(manager, a, a2); | 332 db.AddAttachment(*manager, a, a2); |
334 db.ListAvailableAttachments(fc, manager, a); | 333 db.ListAvailableAttachments(fc, *manager, a); |
335 ASSERT_EQ(2u, fc.size()); | 334 ASSERT_EQ(2u, fc.size()); |
336 ASSERT_FALSE(db.LookupAttachment(*output, manager, b, Orthanc::FileContentType_Dicom)); | 335 ASSERT_FALSE(db.LookupAttachment(*output, *manager, b, Orthanc::FileContentType_Dicom)); |
337 | 336 |
338 ASSERT_EQ(4284u, db.GetTotalCompressedSize(manager)); | 337 ASSERT_EQ(4284u, db.GetTotalCompressedSize(*manager)); |
339 ASSERT_EQ(4284u, db.GetTotalUncompressedSize(manager)); | 338 ASSERT_EQ(4284u, db.GetTotalUncompressedSize(*manager)); |
340 | 339 |
341 expectedAttachment.reset(new OrthancPluginAttachment); | 340 expectedAttachment.reset(new OrthancPluginAttachment); |
342 expectedAttachment->uuid = "uuid1"; | 341 expectedAttachment->uuid = "uuid1"; |
343 expectedAttachment->contentType = Orthanc::FileContentType_Dicom; | 342 expectedAttachment->contentType = Orthanc::FileContentType_Dicom; |
344 expectedAttachment->uncompressedSize = 42; | 343 expectedAttachment->uncompressedSize = 42; |
345 expectedAttachment->uncompressedHash = "md5_1"; | 344 expectedAttachment->uncompressedHash = "md5_1"; |
346 expectedAttachment->compressionType = Orthanc::CompressionType_None; | 345 expectedAttachment->compressionType = Orthanc::CompressionType_None; |
347 expectedAttachment->compressedSize = 42; | 346 expectedAttachment->compressedSize = 42; |
348 expectedAttachment->compressedHash = "md5_1"; | 347 expectedAttachment->compressedHash = "md5_1"; |
349 ASSERT_TRUE(db.LookupAttachment(*output, manager, a, Orthanc::FileContentType_Dicom)); | 348 ASSERT_TRUE(db.LookupAttachment(*output, *manager, a, Orthanc::FileContentType_Dicom)); |
350 | 349 |
351 expectedAttachment.reset(new OrthancPluginAttachment); | 350 expectedAttachment.reset(new OrthancPluginAttachment); |
352 expectedAttachment->uuid = "uuid2"; | 351 expectedAttachment->uuid = "uuid2"; |
353 expectedAttachment->contentType = Orthanc::FileContentType_DicomAsJson; | 352 expectedAttachment->contentType = Orthanc::FileContentType_DicomAsJson; |
354 expectedAttachment->uncompressedSize = 4242; | 353 expectedAttachment->uncompressedSize = 4242; |
355 expectedAttachment->uncompressedHash = "md5_2"; | 354 expectedAttachment->uncompressedHash = "md5_2"; |
356 expectedAttachment->compressionType = Orthanc::CompressionType_None; | 355 expectedAttachment->compressionType = Orthanc::CompressionType_None; |
357 expectedAttachment->compressedSize = 4242; | 356 expectedAttachment->compressedSize = 4242; |
358 expectedAttachment->compressedHash = "md5_2"; | 357 expectedAttachment->compressedHash = "md5_2"; |
359 ASSERT_TRUE(db.LookupAttachment(*output, manager, a, Orthanc::FileContentType_DicomAsJson)); | 358 ASSERT_TRUE(db.LookupAttachment(*output, *manager, a, Orthanc::FileContentType_DicomAsJson)); |
360 | 359 |
361 db.ListAvailableAttachments(fc, manager, b); | 360 db.ListAvailableAttachments(fc, *manager, b); |
362 ASSERT_EQ(0u, fc.size()); | 361 ASSERT_EQ(0u, fc.size()); |
363 db.DeleteAttachment(*output, manager, a, Orthanc::FileContentType_Dicom); | 362 db.DeleteAttachment(*output, *manager, a, Orthanc::FileContentType_Dicom); |
364 db.ListAvailableAttachments(fc, manager, a); | 363 db.ListAvailableAttachments(fc, *manager, a); |
365 ASSERT_EQ(1u, fc.size()); | 364 ASSERT_EQ(1u, fc.size()); |
366 ASSERT_EQ(Orthanc::FileContentType_DicomAsJson, fc.front()); | 365 ASSERT_EQ(Orthanc::FileContentType_DicomAsJson, fc.front()); |
367 db.DeleteAttachment(*output, manager, a, Orthanc::FileContentType_DicomAsJson); | 366 db.DeleteAttachment(*output, *manager, a, Orthanc::FileContentType_DicomAsJson); |
368 db.ListAvailableAttachments(fc, manager, a); | 367 db.ListAvailableAttachments(fc, *manager, a); |
369 ASSERT_EQ(0u, fc.size()); | 368 ASSERT_EQ(0u, fc.size()); |
370 | 369 |
371 | 370 |
372 db.SetIdentifierTag(manager, a, 0x0010, 0x0020, "patient"); | 371 db.SetIdentifierTag(*manager, a, 0x0010, 0x0020, "patient"); |
373 db.SetIdentifierTag(manager, a, 0x0020, 0x000d, "study"); | 372 db.SetIdentifierTag(*manager, a, 0x0020, 0x000d, "study"); |
374 | 373 |
375 expectedDicomTags.clear(); | 374 expectedDicomTags.clear(); |
376 expectedDicomTags.push_back(OrthancPluginDicomTag()); | 375 expectedDicomTags.push_back(OrthancPluginDicomTag()); |
377 expectedDicomTags.push_back(OrthancPluginDicomTag()); | 376 expectedDicomTags.push_back(OrthancPluginDicomTag()); |
378 expectedDicomTags.front().group = 0x0010; | 377 expectedDicomTags.front().group = 0x0010; |
379 expectedDicomTags.front().element = 0x0020; | 378 expectedDicomTags.front().element = 0x0020; |
380 expectedDicomTags.front().value = "patient"; | 379 expectedDicomTags.front().value = "patient"; |
381 expectedDicomTags.back().group = 0x0020; | 380 expectedDicomTags.back().group = 0x0020; |
382 expectedDicomTags.back().element = 0x000d; | 381 expectedDicomTags.back().element = 0x000d; |
383 expectedDicomTags.back().value = "study"; | 382 expectedDicomTags.back().value = "study"; |
384 db.GetMainDicomTags(*output, manager, a); | 383 db.GetMainDicomTags(*output, *manager, a); |
385 | 384 |
386 | 385 |
387 db.LookupIdentifier(ci, manager, OrthancPluginResourceType_Study, 0x0010, 0x0020, | 386 db.LookupIdentifier(ci, *manager, OrthancPluginResourceType_Study, 0x0010, 0x0020, |
388 OrthancPluginIdentifierConstraint_Equal, "patient"); | 387 OrthancPluginIdentifierConstraint_Equal, "patient"); |
389 ASSERT_EQ(1u, ci.size()); | 388 ASSERT_EQ(1u, ci.size()); |
390 ASSERT_EQ(a, ci.front()); | 389 ASSERT_EQ(a, ci.front()); |
391 db.LookupIdentifier(ci, manager, OrthancPluginResourceType_Study, 0x0010, 0x0020, | 390 db.LookupIdentifier(ci, *manager, OrthancPluginResourceType_Study, 0x0010, 0x0020, |
392 OrthancPluginIdentifierConstraint_Equal, "study"); | 391 OrthancPluginIdentifierConstraint_Equal, "study"); |
393 ASSERT_EQ(0u, ci.size()); | 392 ASSERT_EQ(0u, ci.size()); |
394 | 393 |
395 | 394 |
396 OrthancPluginExportedResource exp; | 395 OrthancPluginExportedResource exp; |
401 exp.date = "date"; | 400 exp.date = "date"; |
402 exp.patientId = "patient"; | 401 exp.patientId = "patient"; |
403 exp.studyInstanceUid = "study"; | 402 exp.studyInstanceUid = "study"; |
404 exp.seriesInstanceUid = "series"; | 403 exp.seriesInstanceUid = "series"; |
405 exp.sopInstanceUid = "instance"; | 404 exp.sopInstanceUid = "instance"; |
406 db.LogExportedResource(manager, exp); | 405 db.LogExportedResource(*manager, exp); |
407 | 406 |
408 expectedExported.reset(new OrthancPluginExportedResource()); | 407 expectedExported.reset(new OrthancPluginExportedResource()); |
409 *expectedExported = exp; | 408 *expectedExported = exp; |
410 expectedExported->seq = 1; | 409 expectedExported->seq = 1; |
411 | 410 |
412 bool done; | 411 bool done; |
413 db.GetExportedResources(*output, done, manager, 0, 10); | 412 db.GetExportedResources(*output, done, *manager, 0, 10); |
414 | 413 |
415 | 414 |
416 db.GetAllPublicIds(pub, manager, OrthancPluginResourceType_Patient); ASSERT_EQ(0u, pub.size()); | 415 db.GetAllPublicIds(pub, *manager, OrthancPluginResourceType_Patient); ASSERT_EQ(0u, pub.size()); |
417 db.GetAllPublicIds(pub, manager, OrthancPluginResourceType_Study); ASSERT_EQ(1u, pub.size()); | 416 db.GetAllPublicIds(pub, *manager, OrthancPluginResourceType_Study); ASSERT_EQ(1u, pub.size()); |
418 db.GetAllPublicIds(pub, manager, OrthancPluginResourceType_Series); ASSERT_EQ(2u, pub.size()); | 417 db.GetAllPublicIds(pub, *manager, OrthancPluginResourceType_Series); ASSERT_EQ(2u, pub.size()); |
419 db.GetAllPublicIds(pub, manager, OrthancPluginResourceType_Instance); ASSERT_EQ(0u, pub.size()); | 418 db.GetAllPublicIds(pub, *manager, OrthancPluginResourceType_Instance); ASSERT_EQ(0u, pub.size()); |
420 ASSERT_EQ(3u, db.GetAllResourcesCount(manager)); | 419 ASSERT_EQ(3u, db.GetAllResourcesCount(*manager)); |
421 | 420 |
422 ASSERT_EQ(0u, db.GetUnprotectedPatientsCount(manager)); // No patient was inserted | 421 ASSERT_EQ(0u, db.GetUnprotectedPatientsCount(*manager)); // No patient was inserted |
423 ASSERT_TRUE(db.IsExistingResource(manager, c)); | 422 ASSERT_TRUE(db.IsExistingResource(*manager, c)); |
424 | 423 |
425 { | 424 { |
426 // A transaction is needed here for MySQL, as it was not possible | 425 // A transaction is needed here for MySQL, as it was not possible |
427 // to implement recursive deletion of resources using pure SQL | 426 // to implement recursive deletion of resources using pure SQL |
428 // statements | 427 // statements |
429 manager.StartTransaction(TransactionType_ReadWrite); | 428 manager->StartTransaction(TransactionType_ReadWrite); |
430 db.DeleteResource(*output, manager, c); | 429 db.DeleteResource(*output, *manager, c); |
431 manager.CommitTransaction(); | 430 manager->CommitTransaction(); |
432 } | 431 } |
433 | 432 |
434 ASSERT_FALSE(db.IsExistingResource(manager, c)); | 433 ASSERT_FALSE(db.IsExistingResource(*manager, c)); |
435 ASSERT_TRUE(db.IsExistingResource(manager, a)); | 434 ASSERT_TRUE(db.IsExistingResource(*manager, a)); |
436 ASSERT_TRUE(db.IsExistingResource(manager, b)); | 435 ASSERT_TRUE(db.IsExistingResource(*manager, b)); |
437 ASSERT_EQ(2u, db.GetAllResourcesCount(manager)); | 436 ASSERT_EQ(2u, db.GetAllResourcesCount(*manager)); |
438 db.DeleteResource(*output, manager, a); | 437 db.DeleteResource(*output, *manager, a); |
439 ASSERT_EQ(0u, db.GetAllResourcesCount(manager)); | 438 ASSERT_EQ(0u, db.GetAllResourcesCount(*manager)); |
440 ASSERT_FALSE(db.IsExistingResource(manager, a)); | 439 ASSERT_FALSE(db.IsExistingResource(*manager, a)); |
441 ASSERT_FALSE(db.IsExistingResource(manager, b)); | 440 ASSERT_FALSE(db.IsExistingResource(*manager, b)); |
442 ASSERT_FALSE(db.IsExistingResource(manager, c)); | 441 ASSERT_FALSE(db.IsExistingResource(*manager, c)); |
443 | 442 |
444 ASSERT_EQ(0u, db.GetAllResourcesCount(manager)); | 443 ASSERT_EQ(0u, db.GetAllResourcesCount(*manager)); |
445 ASSERT_EQ(0u, db.GetUnprotectedPatientsCount(manager)); | 444 ASSERT_EQ(0u, db.GetUnprotectedPatientsCount(*manager)); |
446 int64_t p1 = db.CreateResource(manager, "patient1", OrthancPluginResourceType_Patient); | 445 int64_t p1 = db.CreateResource(*manager, "patient1", OrthancPluginResourceType_Patient); |
447 int64_t p2 = db.CreateResource(manager, "patient2", OrthancPluginResourceType_Patient); | 446 int64_t p2 = db.CreateResource(*manager, "patient2", OrthancPluginResourceType_Patient); |
448 int64_t p3 = db.CreateResource(manager, "patient3", OrthancPluginResourceType_Patient); | 447 int64_t p3 = db.CreateResource(*manager, "patient3", OrthancPluginResourceType_Patient); |
449 ASSERT_EQ(3u, db.GetUnprotectedPatientsCount(manager)); | 448 ASSERT_EQ(3u, db.GetUnprotectedPatientsCount(*manager)); |
450 int64_t r; | 449 int64_t r; |
451 ASSERT_TRUE(db.SelectPatientToRecycle(r, manager)); | 450 ASSERT_TRUE(db.SelectPatientToRecycle(r, *manager)); |
452 ASSERT_EQ(p1, r); | 451 ASSERT_EQ(p1, r); |
453 ASSERT_TRUE(db.SelectPatientToRecycle(r, manager, p1)); | 452 ASSERT_TRUE(db.SelectPatientToRecycle(r, *manager, p1)); |
454 ASSERT_EQ(p2, r); | 453 ASSERT_EQ(p2, r); |
455 ASSERT_FALSE(db.IsProtectedPatient(manager, p1)); | 454 ASSERT_FALSE(db.IsProtectedPatient(*manager, p1)); |
456 db.SetProtectedPatient(manager, p1, true); | 455 db.SetProtectedPatient(*manager, p1, true); |
457 ASSERT_TRUE(db.IsProtectedPatient(manager, p1)); | 456 ASSERT_TRUE(db.IsProtectedPatient(*manager, p1)); |
458 ASSERT_TRUE(db.SelectPatientToRecycle(r, manager)); | 457 ASSERT_TRUE(db.SelectPatientToRecycle(r, *manager)); |
459 ASSERT_EQ(p2, r); | 458 ASSERT_EQ(p2, r); |
460 db.SetProtectedPatient(manager, p1, false); | 459 db.SetProtectedPatient(*manager, p1, false); |
461 ASSERT_FALSE(db.IsProtectedPatient(manager, p1)); | 460 ASSERT_FALSE(db.IsProtectedPatient(*manager, p1)); |
462 ASSERT_TRUE(db.SelectPatientToRecycle(r, manager)); | 461 ASSERT_TRUE(db.SelectPatientToRecycle(r, *manager)); |
463 ASSERT_EQ(p2, r); | 462 ASSERT_EQ(p2, r); |
464 db.DeleteResource(*output, manager, p2); | 463 db.DeleteResource(*output, *manager, p2); |
465 ASSERT_TRUE(db.SelectPatientToRecycle(r, manager, p3)); | 464 ASSERT_TRUE(db.SelectPatientToRecycle(r, *manager, p3)); |
466 ASSERT_EQ(p1, r); | 465 ASSERT_EQ(p1, r); |
467 | 466 |
468 manager.Close(); | 467 manager->Close(); |
469 } | 468 } |