Mercurial > hg > orthanc
comparison OrthancFramework/Sources/DicomParsing/FromDcmtkBridge.cpp @ 4771:9f207131c7f4
added ParsedDicomFile::LookupSubSequence()
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Wed, 25 Aug 2021 17:20:21 +0200 |
parents | 248408d2b336 |
children | 3b78ba359db3 |
comparison
equal
deleted
inserted
replaced
4770:248408d2b336 | 4771:9f207131c7f4 |
---|---|
3160 { | 3160 { |
3161 Visitor visitor(element, mode); | 3161 Visitor visitor(element, mode); |
3162 IDicomPathVisitor::Apply(visitor, dataset, path); | 3162 IDicomPathVisitor::Apply(visitor, dataset, path); |
3163 } | 3163 } |
3164 } | 3164 } |
3165 | |
3166 | |
3167 bool FromDcmtkBridge::LookupSubSequence(DicomMap& target, | |
3168 DcmDataset& dataset, | |
3169 const DicomPath& path, | |
3170 size_t sequenceIndex) | |
3171 { | |
3172 class Visitor : public FromDcmtkBridge::IDicomPathVisitor | |
3173 { | |
3174 private: | |
3175 bool found_; | |
3176 DicomMap& target_; | |
3177 size_t sequenceIndex_; | |
3178 | |
3179 public: | |
3180 Visitor(DicomMap& target, | |
3181 size_t sequenceIndex) : | |
3182 found_(false), | |
3183 target_(target), | |
3184 sequenceIndex_(sequenceIndex) | |
3185 { | |
3186 } | |
3187 | |
3188 virtual void Visit(DcmItem& item, | |
3189 const DicomPath& path) ORTHANC_OVERRIDE | |
3190 { | |
3191 DcmTagKey tag(path.GetFinalTag().GetGroup(), path.GetFinalTag().GetElement()); | |
3192 | |
3193 DcmSequenceOfItems *sequence = NULL; | |
3194 | |
3195 if (item.findAndGetSequence(tag, sequence).good() && | |
3196 sequence != NULL && | |
3197 sequenceIndex_ < sequence->card()) | |
3198 { | |
3199 std::set<DicomTag> ignoreTagLength; | |
3200 ExtractDicomSummary(target_, *sequence->getItem(sequenceIndex_), 0, ignoreTagLength); | |
3201 found_ = true; | |
3202 } | |
3203 } | |
3204 | |
3205 bool HasFound() const | |
3206 { | |
3207 return found_; | |
3208 } | |
3209 }; | |
3210 | |
3211 Visitor visitor(target, sequenceIndex); | |
3212 IDicomPathVisitor::Apply(visitor, dataset, path); | |
3213 return visitor.HasFound(); | |
3214 } | |
3165 } | 3215 } |
3166 | 3216 |
3167 | 3217 |
3168 #include "./FromDcmtkBridge_TransferSyntaxes.impl.h" | 3218 #include "./FromDcmtkBridge_TransferSyntaxes.impl.h" |