16 #include <dcmtk/dcmdata/dcfilefo.h> 17 #include <dcmtk/dcmdata/dcpath.h> 34 for (
auto tagIter = tags.cbegin(); tagIter != tags.cend(); ++tagIter )
47 for (
const auto& path : paths)
62 OFListConstIterator(DcmPathNode*) it = dcmpath->begin();
63 OFListConstIterator(DcmPathNode*) endOfList = dcmpath->end();
64 OFString pathStr; DcmEVR vr; DcmObject* obj;
66 while (it != endOfList)
68 if (((*it) ==
nullptr) || ((*it)->m_obj ==
nullptr))
70 mitkThrow() <<
"Error in DcmPathToTagPath(). Invalid search result";
75 if ((vr == EVR_SQ) || (obj->isLeaf()))
77 result.
AddElement(obj->getTag().getGroup(), obj->getTag().getElement());
79 else if ((vr == EVR_item) || (vr == EVR_dataset))
81 if (result.
Size() > 0)
88 mitkThrow() <<
"Error in DcmPathToTagPath(). DCMTK path is illegal due to toplevel sequence item.";
107 DcmPathProcessor processor;
108 processor.setItemWildcardSupport(
true);
115 OFCondition cond = dfile.loadFile(fileName.c_str());
118 MITK_ERROR <<
"Error when scanning for tags. Cannot open given file. File: " << fileName;
127 cond = processor.findOrCreatePath(dfile.getDataset(), tagPath.c_str());
130 OFList< DcmPath * > findings;
131 processor.getResults(findings);
132 for (
const auto& finding : findings)
134 auto element =
dynamic_cast<DcmElement*
>(finding->back()->m_obj);
137 auto item =
dynamic_cast<DcmItem*
>(finding->back()->m_obj);
140 element = item->getElement(finding->back()->m_itemNo);
147 cond = element->getOFStringArray(value);
156 newCache->AddFrameInfo(info);
171 mitk::DICOMTagCache::Pointer
181 return m_Cache->GetFrameInfoList();
DICOMTagPath & AddElement(unsigned int group, unsigned int element)
Class is used to identify (nested) attributes in a DICOM dataset. In contrast to the class DICOMTag...
std::vector< DICOMTag > DICOMTagList
Representation of a DICOM tag.
PathIndexType AddNode(const NodeInfo &newNode)
static void info(const char *fmt,...)
PathIndexType Size() const
std::vector< std::string > StringList
std::vector< DICOMTagPath > DICOMTagPathList
std::vector< DICOMDatasetAccessingImageFrameInfo::Pointer > DICOMDatasetAccessingImageFrameList
ItemSelectionIndex selection
MITKDICOMREADER_EXPORT std::string DICOMTagPathToDCMTKSearchPath(const DICOMTagPath &tagPath)