Medical Imaging Interaction Toolkit  2018.4.99-b585543d
Medical Imaging Interaction Toolkit
mitk::DICOMFileReader Class Referenceabstract

Interface for DICOM readers that produce mitk::Images. More...

#include <mitkDICOMFileReader.h>

Inheritance diagram for mitk::DICOMFileReader:
Collaboration diagram for mitk::DICOMFileReader:

Public Types

typedef DICOMImageBlockDescriptor::AdditionalTagsMapType AdditionalTagsMapType
 

Public Member Functions

 mitkClassMacroItkParent (DICOMFileReader, itk::Object)
 
virtual bool CanHandleFile (const std::string &filename)=0
 Indicate whether this reader can handle given file. More...
 
void SetInputFiles (const StringList &filenames)
 This input files. More...
 
const StringListGetInputFiles () const
 This input files. More...
 
virtual void AnalyzeInputFiles ()=0
 Analyze input files. More...
 
unsigned int GetNumberOfOutputs () const
 Number of outputs, only meaningful after calling AnalyzeInputFiles() More...
 
const DICOMImageBlockDescriptorGetOutput (unsigned int index) const
 Individual outputs, only meaningful after calling AnalyzeInputFiles(). More...
 
virtual bool LoadImages ()=0
 
virtual DICOMTagPathList GetTagsOfInterest () const =0
 
virtual void SetTagCache (const DICOMTagCache::Pointer &)=0
 A way to provide external knowledge about files and tag values is appreciated. More...
 
void SetConfigurationLabel (const std::string &)
 Short label/name to describe this reader. More...
 
std::string GetConfigurationLabel () const
 Short label/name to describe this reader. More...
 
void SetConfigurationDescription (const std::string &)
 One-sentence description of the reader's loading "strategy". More...
 
std::string GetConfigurationDescription () const
 One-sentence description of the reader's loading "strategy". More...
 
void PrintConfiguration (std::ostream &os) const
 Print configuration description to given stream, for human reader. More...
 
void PrintOutputs (std::ostream &os, bool filenameDetails=false) const
 Print output description to given stream, for human reader. More...
 
virtual bool operator== (const DICOMFileReader &other) const =0
 
virtual void SetAdditionalTagsOfInterest (const AdditionalTagsMapType &tagList)
 Set a list of DICOMTagPaths that specifiy all DICOM-Tags that will be copied into the property of the mitk::Image. More...
 
virtual void SetTagLookupTableToPropertyFunctor (mitk::DICOMImageBlockDescriptor::TagLookupTableToPropertyFunctor functor)
 Set a functor that defines how the slice-specific tag-values are stored in a Property. More...
 

Static Public Member Functions

static bool IsDICOM (const std::string &filename)
 Test whether a file is DICOM at all. More...
 

Protected Member Functions

 DICOMFileReader ()
 
 ~DICOMFileReader () override
 
 DICOMFileReader (const DICOMFileReader &other)
 
DICOMFileReaderoperator= (const DICOMFileReader &other)
 
void ClearOutputs ()
 
void SetNumberOfOutputs (unsigned int numberOfOutputs)
 
void SetOutput (unsigned int index, const DICOMImageBlockDescriptor &output)
 
DICOMImageBlockDescriptorInternalGetOutput (unsigned int index)
 non-const access to the DICOMImageBlockDescriptor More...
 
virtual void InternalPrintConfiguration (std::ostream &os) const =0
 Configuration description for human reader, to be implemented by sub-classes. More...
 
virtual AdditionalTagsMapType GetAdditionalTagsOfInterest () const
 
mitk::DICOMImageBlockDescriptor::TagLookupTableToPropertyFunctor GetTagLookupTableToPropertyFunctor () const
 

Detailed Description

Interface for DICOM readers that produce mitk::Images.

As described in The DICOMReader Module, this class structures the reader's part in the process of analyzing a set of DICOM files and selecting the most appropriate reader.

The overall loading process is as follows:

  • Define input files: a list of absolute filenames
  • Analyze the potential output: see what can be made of the input files, describe with DICOMImageBlockDescriptors
  • Load pixel data: an application will usually analyze files using multiple readers and only load with a single reader

Sub-classes are required to implement a number of methods that reflect above structure. See mitk::DICOMITKSeriesGDCMReader for an example.

To help applications in describing different readers to the user, each reader brings a number of methods that describe its configuration/specifics by means of a short label and a (longer) description.

Definition at line 55 of file mitkDICOMFileReader.h.

Member Typedef Documentation

◆ AdditionalTagsMapType

Type specifies additional tags of interest. Key is the tag path of interest. The value is an optional user defined name for the property that should be used to store the tag value(s). Empty value is default and will imply to use the found DICOMTagPath as property name.

Definition at line 108 of file mitkDICOMFileReader.h.

Constructor & Destructor Documentation

◆ DICOMFileReader() [1/2]

mitk::DICOMFileReader::DICOMFileReader ( )
protected

Definition at line 18 of file mitkDICOMFileReader.cpp.

References ~DICOMFileReader().

Referenced by ~DICOMFileReader().

◆ ~DICOMFileReader()

mitk::DICOMFileReader::~DICOMFileReader ( )
overrideprotected

Definition at line 24 of file mitkDICOMFileReader.cpp.

References DICOMFileReader().

Referenced by DICOMFileReader().

◆ DICOMFileReader() [2/2]

mitk::DICOMFileReader::DICOMFileReader ( const DICOMFileReader other)
protected

Definition at line 29 of file mitkDICOMFileReader.cpp.

References operator=().

Member Function Documentation

◆ AnalyzeInputFiles()

◆ CanHandleFile()

virtual bool mitk::DICOMFileReader::CanHandleFile ( const std::string &  filename)
pure virtual

Indicate whether this reader can handle given file.

Implemented in mitk::DICOMITKSeriesGDCMReader, and mitk::DICOMNullFileReader.

◆ ClearOutputs()

void mitk::DICOMFileReader::ClearOutputs ( )
protected

◆ GetAdditionalTagsOfInterest()

◆ GetConfigurationDescription()

std::string mitk::DICOMFileReader::GetConfigurationDescription ( ) const

One-sentence description of the reader's loading "strategy".

Definition at line 79 of file mitkDICOMFileReader.cpp.

References SetInputFiles().

Referenced by mitk::DICOMReaderConfigurator::CreateConfigStringFromReader(), and SetConfigurationDescription().

◆ GetConfigurationLabel()

std::string mitk::DICOMFileReader::GetConfigurationLabel ( ) const

Short label/name to describe this reader.

Definition at line 64 of file mitkDICOMFileReader.cpp.

References SetConfigurationDescription().

Referenced by mitk::DICOMReaderConfigurator::CreateConfigStringFromReader(), and SetConfigurationLabel().

◆ GetInputFiles()

◆ GetNumberOfOutputs()

◆ GetOutput()

const mitk::DICOMImageBlockDescriptor & mitk::DICOMFileReader::GetOutput ( unsigned int  index) const

Individual outputs, only meaningful after calling AnalyzeInputFiles().

Exceptions
std::invalid_argument

Definition at line 164 of file mitkDICOMFileReader.cpp.

References InternalGetOutput().

Referenced by PrintOutputs(), mitk::DICOMFileReaderTestHelper::TestMitkImagesAreLoaded(), and mitk::DICOMFileReaderTestHelper::TestOutputsContainInputs().

◆ GetTagLookupTableToPropertyFunctor()

mitk::DICOMImageBlockDescriptor::TagLookupTableToPropertyFunctor mitk::DICOMFileReader::GetTagLookupTableToPropertyFunctor ( ) const
protected

◆ GetTagsOfInterest()

virtual DICOMTagPathList mitk::DICOMFileReader::GetTagsOfInterest ( ) const
pure virtual

◆ InternalGetOutput()

mitk::DICOMImageBlockDescriptor & mitk::DICOMFileReader::InternalGetOutput ( unsigned int  index)
protected

◆ InternalPrintConfiguration()

virtual void mitk::DICOMFileReader::InternalPrintConfiguration ( std::ostream &  os) const
protectedpure virtual

Configuration description for human reader, to be implemented by sub-classes.

Implemented in mitk::DICOMITKSeriesGDCMReader, and mitk::DICOMNullFileReader.

Referenced by PrintConfiguration().

◆ IsDICOM()

bool mitk::DICOMFileReader::IsDICOM ( const std::string &  filename)
static

Test whether a file is DICOM at all.

Definition at line 195 of file mitkDICOMFileReader.cpp.

Referenced by InternalGetOutput(), mitkDICOMPreloadedVolumeTest(), and mitkDICOMTestingSanityTest().

◆ LoadImages()

virtual bool mitk::DICOMFileReader::LoadImages ( )
pure virtual

◆ mitkClassMacroItkParent()

mitk::DICOMFileReader::mitkClassMacroItkParent ( DICOMFileReader  ,
itk::Object   
)

◆ operator=()

mitk::DICOMFileReader & mitk::DICOMFileReader::operator= ( const DICOMFileReader other)
protected

◆ operator==()

virtual bool mitk::DICOMFileReader::operator== ( const DICOMFileReader other) const
pure virtual

◆ PrintConfiguration()

void mitk::DICOMFileReader::PrintConfiguration ( std::ostream &  os) const

Print configuration description to given stream, for human reader.

Definition at line 138 of file mitkDICOMFileReader.cpp.

References InternalPrintConfiguration(), and PrintOutputs().

Referenced by SetOutput().

◆ PrintOutputs()

void mitk::DICOMFileReader::PrintOutputs ( std::ostream &  os,
bool  filenameDetails = false 
) const

Print output description to given stream, for human reader.

Definition at line 148 of file mitkDICOMFileReader.cpp.

References GetOutput(), and mitk::DICOMImageBlockDescriptor::Print().

Referenced by PrintConfiguration(), and mitk::DICOMFileReaderTestHelper::TestOutputsContainInputs().

◆ SetAdditionalTagsOfInterest()

void mitk::DICOMFileReader::SetAdditionalTagsOfInterest ( const AdditionalTagsMapType tagList)
virtual

Set a list of DICOMTagPaths that specifiy all DICOM-Tags that will be copied into the property of the mitk::Image.

This method can be used to specify a list of DICOM-tags that shall be available after the loading. The value in the tagMap is an optional user defined name for the property key that should be used when storing the property). Empty value is default and will imply to use the found DICOMTagPath as property key. By default the content of the DICOM tags will be stored in a StringLookupTable on the mitk::Image. This behaviour can be changed by setting a different TagLookupTableToPropertyFunctor via SetTagLookupTableToPropertyFunctor().

Definition at line 208 of file mitkDICOMFileReader.cpp.

◆ SetConfigurationDescription()

void mitk::DICOMFileReader::SetConfigurationDescription ( const std::string &  desc)

One-sentence description of the reader's loading "strategy".

Definition at line 71 of file mitkDICOMFileReader.cpp.

References GetConfigurationDescription().

Referenced by mitk::ClassicDICOMSeriesReader::ClassicDICOMSeriesReader(), and GetConfigurationLabel().

◆ SetConfigurationLabel()

void mitk::DICOMFileReader::SetConfigurationLabel ( const std::string &  label)

Short label/name to describe this reader.

Definition at line 56 of file mitkDICOMFileReader.cpp.

References GetConfigurationLabel().

Referenced by mitk::ClassicDICOMSeriesReader::ClassicDICOMSeriesReader(), and operator=().

◆ SetInputFiles()

◆ SetNumberOfOutputs()

void mitk::DICOMFileReader::SetNumberOfOutputs ( unsigned int  numberOfOutputs)
protected

◆ SetOutput()

void mitk::DICOMFileReader::SetOutput ( unsigned int  index,
const DICOMImageBlockDescriptor output 
)
protected

◆ SetTagCache()

virtual void mitk::DICOMFileReader::SetTagCache ( const DICOMTagCache::Pointer &  )
pure virtual

A way to provide external knowledge about files and tag values is appreciated.

Implemented in mitk::DICOMITKSeriesGDCMReader, and mitk::DICOMNullFileReader.

◆ SetTagLookupTableToPropertyFunctor()

void mitk::DICOMFileReader::SetTagLookupTableToPropertyFunctor ( mitk::DICOMImageBlockDescriptor::TagLookupTableToPropertyFunctor  functor)
virtual

Set a functor that defines how the slice-specific tag-values are stored in a Property.

This method sets a functor that is given a StringLookupTable that contains the values of one DICOM tag mapped to the slice index. The functor is supposed to store these values in an mitk Property.

By default, the StringLookupTable is stored in a StringLookupTableProperty except if all values are identical. In this case, the unique value is stored only once in a StringProperty.

Definition at line 216 of file mitkDICOMFileReader.cpp.


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