comparison OrthancServer/Sources/Search/DatabaseLookup.cpp @ 4977:dad71e6da406 more-tags

pre-filtering studies without ModalitiesInStudies first
author Alain Mazy <am@osimis.io>
date Wed, 20 Apr 2022 11:32:31 +0200
parents b7ce2bb6b881
children d0c34145320c
comparison
equal deleted inserted replaced
4976:03632ed1eb67 4977:dad71e6da406
324 } 324 }
325 } 325 }
326 326
327 return false; 327 return false;
328 } 328 }
329
330 bool DatabaseLookup::GetConstraint(const DicomTagConstraint*& constraint, const DicomTag& tag) const
331 {
332 for (size_t i = 0; i < constraints_.size(); i++)
333 {
334 assert(constraints_[i] != NULL);
335 if (constraints_[i]->GetTag() == tag)
336 {
337 constraint = constraints_.at(i);
338 return true;
339 }
340 }
341
342 return false;
343 }
344
345
346 void DatabaseLookup::RemoveConstraint(const DicomTag& tag)
347 {
348 for (size_t i = 0; i < constraints_.size(); i++)
349 {
350 assert(constraints_[i] != NULL);
351 if (constraints_[i]->GetTag() == tag)
352 {
353 delete constraints_[i];
354 constraints_.erase(constraints_.begin() + i);
355 }
356 }
357 }
358
359 DatabaseLookup* DatabaseLookup::Clone() const
360 {
361 std::unique_ptr<DatabaseLookup> clone(new DatabaseLookup());
362
363 for (size_t i = 0; i < constraints_.size(); i++)
364 {
365 clone->AddConstraint(*(new DicomTagConstraint(*constraints_[i])));
366 }
367
368 return clone.release();
369 }
329 } 370 }