comparison OrthancFramework/Sources/DicomFormat/DicomMap.cpp @ 4935:acd3f72e2a21 more-tags

split ExpandResource in 2: read from DB and serialize to json. This will allow us to merge requested tags from both the DB and the file system
author Alain Mazy <am@osimis.io>
date Thu, 10 Mar 2022 19:00:43 +0100
parents 312c6f4da888
children 8422e4f99a18
comparison
equal deleted inserted replaced
4934:94a7b681b340 4935:acd3f72e2a21
207 for (std::set<DicomTag>::const_iterator it = tags.begin(); it != tags.end(); it++) 207 for (std::set<DicomTag>::const_iterator it = tags.begin(); it != tags.end(); it++)
208 { 208 {
209 tagsIds.insert(it->Format()); 209 tagsIds.insert(it->Format());
210 } 210 }
211 211
212 std::string signatureText = boost::algorithm::join(tagsIds, "|"); 212 std::string signatureText = boost::algorithm::join(tagsIds, ";");
213 std::string signatureMD5; 213
214 Toolbox::ComputeMD5(signatureMD5, signatureText); 214 return signatureText;
215
216 return signatureMD5;
217 } 215 }
218 216
219 void LoadDefaultMainDicomTags(ResourceType level) 217 void LoadDefaultMainDicomTags(ResourceType level)
220 { 218 {
221 assert(mainDicomTagsByTag_.find(level) == mainDicomTagsByTag_.end()); 219 assert(mainDicomTagsByTag_.find(level) == mainDicomTagsByTag_.end());
420 result.SetValue(it->first, *it->second /* value will be cloned */); 418 result.SetValue(it->first, *it->second /* value will be cloned */);
421 } 419 }
422 } 420 }
423 } 421 }
424 422
423 void DicomMap::ExtractResourceInformation(DicomMap& result, ResourceType level) const
424 {
425 const std::map<DicomTag, std::string>& mainDicomTags = DicomMap::MainDicomTagsConfiguration::GetInstance().GetMainDicomTags(level);
426 ExtractTags(result, content_, mainDicomTags);
427 }
425 428
426 void DicomMap::ExtractPatientInformation(DicomMap& result) const 429 void DicomMap::ExtractPatientInformation(DicomMap& result) const
427 { 430 {
428 const std::map<DicomTag, std::string>& mainDicomTags = DicomMap::MainDicomTagsConfiguration::GetInstance().GetMainDicomTags(ResourceType_Patient); 431 ExtractResourceInformation(result, ResourceType_Patient);
429 ExtractTags(result, content_, mainDicomTags);
430 } 432 }
431 433
432 void DicomMap::ExtractStudyInformation(DicomMap& result) const 434 void DicomMap::ExtractStudyInformation(DicomMap& result) const
433 { 435 {
434 const std::map<DicomTag, std::string>& mainDicomTags = DicomMap::MainDicomTagsConfiguration::GetInstance().GetMainDicomTags(ResourceType_Study); 436 ExtractResourceInformation(result, ResourceType_Study);
435 ExtractTags(result, content_, mainDicomTags);
436 } 437 }
437 438
438 void DicomMap::ExtractSeriesInformation(DicomMap& result) const 439 void DicomMap::ExtractSeriesInformation(DicomMap& result) const
439 { 440 {
440 const std::map<DicomTag, std::string>& mainDicomTags = DicomMap::MainDicomTagsConfiguration::GetInstance().GetMainDicomTags(ResourceType_Series); 441 ExtractResourceInformation(result, ResourceType_Series);
441 ExtractTags(result, content_, mainDicomTags);
442 } 442 }
443 443
444 void DicomMap::ExtractInstanceInformation(DicomMap& result) const 444 void DicomMap::ExtractInstanceInformation(DicomMap& result) const
445 { 445 {
446 const std::map<DicomTag, std::string>& mainDicomTags = DicomMap::MainDicomTagsConfiguration::GetInstance().GetMainDicomTags(ResourceType_Instance); 446 ExtractResourceInformation(result, ResourceType_Instance);
447 ExtractTags(result, content_, mainDicomTags);
448 } 447 }
449 448
450 449
451 DicomMap::~DicomMap() 450 DicomMap::~DicomMap()
452 { 451 {