Mercurial > hg > orthanc
diff OrthancFramework/Sources/DicomFormat/DicomMap.cpp @ 5036:877bc3b96476
Handle Dicom sequences in ExtraMainDicomTags and save them in the 'MainDicomSequences' metadata
author | Alain Mazy <am@osimis.io> |
---|---|
date | Fri, 24 Jun 2022 15:47:10 +0200 |
parents | 40fd2a485a84 |
children | f8bea9c1c0fc |
line wrap: on
line diff
--- a/OrthancFramework/Sources/DicomFormat/DicomMap.cpp Wed Jun 22 15:37:08 2022 +0200 +++ b/OrthancFramework/Sources/DicomFormat/DicomMap.cpp Fri Jun 24 15:47:10 2022 +0200 @@ -34,7 +34,7 @@ #include "../OrthancException.h" #include "../Toolbox.h" #include "DicomArray.h" - +#include "../DicomParsing/FromDcmtkBridge.h" namespace Orthanc { @@ -612,6 +612,13 @@ } } + void DicomMap::RemoveTags(const std::set<DicomTag>& tags) + { + for (std::set<DicomTag>::const_iterator it = tags.begin(); it != tags.end(); ++it) + { + Remove(*it); + } + } static void SetupFindTemplate(DicomMap& result, const std::map<DicomTag, std::string>& mainDicomTags) @@ -1522,7 +1529,20 @@ return true; } - + + void DicomMap::ExtractSequences(std::set<DicomTag>& sequences, const std::set<DicomTag>& tags) + { + sequences.clear(); + + for (std::set<DicomTag>::const_iterator it = tags.begin(); it != tags.end(); ++it) + { + ValueRepresentation vr = FromDcmtkBridge::LookupValueRepresentation(*it); + if (vr == ValueRepresentation_Sequence) + { + sequences.insert(*it); + } + } + } void DicomMap::Serialize(Json::Value& target) const {