Mercurial > hg > orthanc
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 |