Medical Imaging Interaction Toolkit  2018.4.99-18ddd2ed
Medical Imaging Interaction Toolkit
mitk::DICOMGDCMTagScanner Class Reference

Encapsulates the tag scanning process for a set of DICOM files. More...

#include <mitkDICOMGDCMTagScanner.h>

Inheritance diagram for mitk::DICOMGDCMTagScanner:
Collaboration diagram for mitk::DICOMGDCMTagScanner:

Public Member Functions

 mitkClassMacro (DICOMGDCMTagScanner, DICOMTagScanner)
 
Pointer Clone () const
 
void AddTag (const DICOMTag &tag) override
 Add this tag to the scanning process. More...
 
void AddTags (const DICOMTagList &tags) override
 Add a list of tags to the scanning process. More...
 
void AddTagPath (const DICOMTagPath &tag) override
 Add this tag path to the scanning process. More...
 
void AddTagPaths (const DICOMTagPathList &tags) override
 Add a list of tag pathes to the scanning process. More...
 
void SetInputFiles (const StringList &filenames) override
 Define the list of files to scan. This does not ADD to an internal list, but it replaces the whole list of files. More...
 
void Scan () override
 Start the scanning process. Calling Scan() will invalidate previous scans, forgetting all about files and tags from files that have been scanned previously. More...
 
DICOMDatasetAccessingImageFrameList GetFrameInfoList () const override
 Retrieve a result list for file-by-file tag access. More...
 
DICOMTagCache::Pointer GetScanCache () const override
 Retrieve Pointer to the complete cache of the scan. More...
 
virtual DICOMDatasetFinding GetTagValue (DICOMImageFrameInfo *frame, const DICOMTag &tag) const
 Directly retrieve the tag value for a given frame and tag. More...
 
- Public Member Functions inherited from mitk::DICOMTagScanner
 mitkClassMacroItkParent (DICOMTagScanner, itk::Object)
 

Static Public Member Functions

static Pointer New ()
 

Protected Member Functions

 DICOMGDCMTagScanner ()
 
 ~DICOMGDCMTagScanner () override
 
- Protected Member Functions inherited from mitk::DICOMTagScanner
void PushLocale () const
 Remember current locale on stack, activate "C" locale. "C" locale is required for correct parsing of numbers by itk::ImageSeriesReader. More...
 
void PopLocale () const
 Activate last remembered locale from locale stack "C" locale is required for correct parsing of numbers by itk::ImageSeriesReader. More...
 
 DICOMTagScanner ()
 
 ~DICOMTagScanner () override
 

Protected Attributes

std::set< DICOMTagm_ScannedTags
 
StringList m_InputFilenames
 
DICOMGDCMTagCache::Pointer m_Cache
 
std::shared_ptr< gdcm::Scanner > m_GDCMScanner
 

Additional Inherited Members

- Static Protected Member Functions inherited from mitk::DICOMTagScanner
static std::string GetActiveLocale ()
 Return active C locale. More...
 

Detailed Description

Encapsulates the tag scanning process for a set of DICOM files.

Formerly integrated as a part of DICOMITKSeriesGDCMReader, the tag scanning part has been factored out into this DICOMGDCMTagScanner class in order to allow a single scan for multiple reader alternatives. This helps much in the selection process of e.g. DICOMFileReaderSelector.

The class works similar to gdcm::Scanner, just with the MITK set of classes:

  • add a number of DICOM tags that should be read
  • set a list of files that should be scanned for named tags
  • call Scan()
  • retrieve the scan results

When used in a process where multiple classes will access the scan results, care should be taken that all the tags and files of interest are communicated to DICOMGDCMTagScanner before requesting the results!

Remarks
This scanner does only support the scanning for simple value tag. If you need to scann for sequence items or non-top-level elements, this scanner will not be sufficient. See i.a. DICOMDCMTKTagScanner for these cases.

Definition at line 48 of file mitkDICOMGDCMTagScanner.h.

Constructor & Destructor Documentation

◆ DICOMGDCMTagScanner()

mitk::DICOMGDCMTagScanner::DICOMGDCMTagScanner ( )
protected

Definition at line 19 of file mitkDICOMGDCMTagScanner.cpp.

References m_GDCMScanner.

◆ ~DICOMGDCMTagScanner()

mitk::DICOMGDCMTagScanner::~DICOMGDCMTagScanner ( )
overrideprotected

Definition at line 24 of file mitkDICOMGDCMTagScanner.cpp.

Member Function Documentation

◆ AddTag()

void mitk::DICOMGDCMTagScanner::AddTag ( const DICOMTag tag)
overridevirtual

Add this tag to the scanning process.

Implements mitk::DICOMTagScanner.

Definition at line 41 of file mitkDICOMGDCMTagScanner.cpp.

References mitk::DICOMTag::GetElement(), mitk::DICOMTag::GetGroup(), m_GDCMScanner, and m_ScannedTags.

Referenced by AddTagPath(), AddTagPaths(), and AddTags().

◆ AddTagPath()

void mitk::DICOMGDCMTagScanner::AddTagPath ( const DICOMTagPath tag)
overridevirtual

◆ AddTagPaths()

void mitk::DICOMGDCMTagScanner::AddTagPaths ( const DICOMTagPathList tags)
overridevirtual

Add a list of tag pathes to the scanning process.

Implements mitk::DICOMTagScanner.

Definition at line 70 of file mitkDICOMGDCMTagScanner.cpp.

References AddTag(), and MITK_ERROR.

◆ AddTags()

void mitk::DICOMGDCMTagScanner::AddTags ( const DICOMTagList tags)
overridevirtual

Add a list of tags to the scanning process.

Implements mitk::DICOMTagScanner.

Definition at line 48 of file mitkDICOMGDCMTagScanner.cpp.

References AddTag().

◆ Clone()

Pointer mitk::DICOMGDCMTagScanner::Clone ( ) const

◆ GetFrameInfoList()

mitk::DICOMDatasetAccessingImageFrameList mitk::DICOMGDCMTagScanner::GetFrameInfoList ( ) const
overridevirtual

Retrieve a result list for file-by-file tag access.

Implements mitk::DICOMTagScanner.

Definition at line 110 of file mitkDICOMGDCMTagScanner.cpp.

References m_Cache.

◆ GetScanCache()

mitk::DICOMTagCache::Pointer mitk::DICOMGDCMTagScanner::GetScanCache ( ) const
overridevirtual

Retrieve Pointer to the complete cache of the scan.

Implements mitk::DICOMTagScanner.

Definition at line 105 of file mitkDICOMGDCMTagScanner.cpp.

References m_Cache.

◆ GetTagValue()

mitk::DICOMDatasetFinding mitk::DICOMGDCMTagScanner::GetTagValue ( DICOMImageFrameInfo frame,
const DICOMTag tag 
) const
virtual

Directly retrieve the tag value for a given frame and tag.

Precondition
Scan() must have been called before calling this function.

Definition at line 28 of file mitkDICOMGDCMTagScanner.cpp.

References m_Cache, and mitkThrow.

◆ mitkClassMacro()

mitk::DICOMGDCMTagScanner::mitkClassMacro ( DICOMGDCMTagScanner  ,
DICOMTagScanner   
)

◆ New()

static Pointer mitk::DICOMGDCMTagScanner::New ( )
static

◆ Scan()

void mitk::DICOMGDCMTagScanner::Scan ( )
overridevirtual

Start the scanning process. Calling Scan() will invalidate previous scans, forgetting all about files and tags from files that have been scanned previously.

Implements mitk::DICOMTagScanner.

Definition at line 93 of file mitkDICOMGDCMTagScanner.cpp.

References m_Cache, m_GDCMScanner, m_InputFilenames, m_ScannedTags, and mitk::DICOMGDCMTagCache::New().

◆ SetInputFiles()

void mitk::DICOMGDCMTagScanner::SetInputFiles ( const StringList filenames)
overridevirtual

Define the list of files to scan. This does not ADD to an internal list, but it replaces the whole list of files.

Implements mitk::DICOMTagScanner.

Definition at line 87 of file mitkDICOMGDCMTagScanner.cpp.

References m_InputFilenames.

Member Data Documentation

◆ m_Cache

DICOMGDCMTagCache::Pointer mitk::DICOMGDCMTagScanner::m_Cache
protected

Definition at line 111 of file mitkDICOMGDCMTagScanner.h.

Referenced by GetFrameInfoList(), GetScanCache(), GetTagValue(), and Scan().

◆ m_GDCMScanner

std::shared_ptr<gdcm::Scanner> mitk::DICOMGDCMTagScanner::m_GDCMScanner
protected

Definition at line 112 of file mitkDICOMGDCMTagScanner.h.

Referenced by AddTag(), DICOMGDCMTagScanner(), and Scan().

◆ m_InputFilenames

StringList mitk::DICOMGDCMTagScanner::m_InputFilenames
protected

Definition at line 110 of file mitkDICOMGDCMTagScanner.h.

Referenced by Scan(), and SetInputFiles().

◆ m_ScannedTags

std::set<DICOMTag> mitk::DICOMGDCMTagScanner::m_ScannedTags
protected

Definition at line 109 of file mitkDICOMGDCMTagScanner.h.

Referenced by AddTag(), and Scan().


The documentation for this class was generated from the following files: