comparison OrthancServer/DicomFindQuery.cpp @ 1361:94ffb597d297

refactoring of C-Find SCP
author Sebastien Jodogne <s.jodogne@gmail.com>
date Fri, 15 May 2015 17:19:33 +0200
parents 0649c5aef34a
children a1745d9be6e9
comparison
equal deleted inserted replaced
1360:0649c5aef34a 1361:94ffb597d297
308 bool DicomFindQuery::HasMainDicomTagsFilter(ResourceType level) const 308 bool DicomFindQuery::HasMainDicomTagsFilter(ResourceType level) const
309 { 309 {
310 return filteredLevels_.find(level) != filteredLevels_.end(); 310 return filteredLevels_.find(level) != filteredLevels_.end();
311 } 311 }
312 312
313 bool DicomFindQuery::FilterMainDicomTags(const DicomMap& mainTags, 313 bool DicomFindQuery::FilterMainDicomTags(const std::string& resourceId,
314 ResourceType level) const 314 ResourceType level,
315 const DicomMap& mainTags) const
315 { 316 {
316 std::set<DicomTag> tags; 317 std::set<DicomTag> tags;
317 mainTags.GetTags(tags); 318 mainTags.GetTags(tags);
318 319
319 for (std::set<DicomTag>::const_iterator 320 for (std::set<DicomTag>::const_iterator
320 it = tags.begin(); it != tags.end(); ++it) 321 it = tags.begin(); it != tags.end(); ++it)
321 { 322 {
322 Constraints::const_iterator constraint = constraints_.find(*it); 323 Constraints::const_iterator constraint = constraints_.find(*it);
323 if (!constraint->second->Apply(mainTags.GetValue(*it).AsString())) 324 if (constraint != constraints_.end() &&
325 !constraint->second->Apply(mainTags.GetValue(*it).AsString()))
324 { 326 {
325 return false; 327 return false;
326 } 328 }
327 } 329 }
328 330