13 #ifndef mitkDICOMFileReader_h
14 #define mitkDICOMFileReader_h
16 #include "itkObjectFactory.h"
25 #include <unordered_map>
61 static bool IsDICOM(
const std::string& filename );
87 virtual void SetTagCache(
const DICOMTagCache::Pointer& ) = 0;
101 void PrintOutputs( std::ostream& os,
bool filenameDetails =
false )
const;
159 std::vector<DICOMImageBlockDescriptor> m_Outputs;
161 std::string m_ConfigLabel;
162 std::string m_ConfigDescription;
Interface for DICOM readers that produce mitk::Images.
void SetNumberOfOutputs(unsigned int numberOfOutputs)
DICOMImageBlockDescriptor & InternalGetOutput(unsigned int index)
non-const access to the DICOMImageBlockDescriptor
mitk::DICOMImageBlockDescriptor::TagLookupTableToPropertyFunctor GetTagLookupTableToPropertyFunctor() const
void SetOutput(unsigned int index, const DICOMImageBlockDescriptor &output)
void PrintOutputs(std::ostream &os, bool filenameDetails=false) const
Print output description to given stream, for human reader.
virtual void SetAdditionalTagsOfInterest(const AdditionalTagsMapType &tagList)
Set a list of DICOMTagPaths that specify all DICOM-Tags that will be copied into the property of the ...
virtual void SetTagCache(const DICOMTagCache::Pointer &)=0
A way to provide external knowledge about files and tag values is appreciated.
unsigned int GetNumberOfOutputs() const
Number of outputs, only meaningful after calling AnalyzeInputFiles()
void SetConfigurationLabel(const std::string &)
Short label/name to describe this reader.
~DICOMFileReader() override
const DICOMImageBlockDescriptor & GetOutput(unsigned int index) const
Individual outputs, only meaningful after calling AnalyzeInputFiles().
virtual AdditionalTagsMapType GetAdditionalTagsOfInterest() const
virtual void AnalyzeInputFiles()=0
Analyze input files.
virtual bool CanHandleFile(const std::string &filename)=0
Indicate whether this reader can handle given file.
const StringList & GetInputFiles() const
This input files.
void PrintConfiguration(std::ostream &os) const
Print configuration description to given stream, for human reader.
mitkClassMacroItkParent(DICOMFileReader, itk::Object)
void SetConfigurationDescription(const std::string &)
One-sentence description of the reader's loading "strategy".
DICOMFileReader(const DICOMFileReader &other)
static bool IsDICOM(const std::string &filename)
Test whether a file is DICOM at all.
DICOMImageBlockDescriptor::AdditionalTagsMapType AdditionalTagsMapType
DICOMFileReader & operator=(const DICOMFileReader &other)
virtual bool LoadImages()=0
std::string GetConfigurationLabel() const
Short label/name to describe this reader.
virtual bool operator==(const DICOMFileReader &other) const =0
virtual void SetTagLookupTableToPropertyFunctor(mitk::DICOMImageBlockDescriptor::TagLookupTableToPropertyFunctor functor)
Set a functor that defines how the slice-specific tag-values are stored in a Property.
void SetInputFiles(const StringList &filenames)
This input files.
std::string GetConfigurationDescription() const
One-sentence description of the reader's loading "strategy".
virtual DICOMTagPathList GetTagsOfInterest() const =0
virtual void InternalPrintConfiguration(std::ostream &os) const =0
Configuration description for human reader, to be implemented by sub-classes.
Output descriptor for DICOMFileReader.
std::map< DICOMTagPath, std::string > AdditionalTagsMapType
std::function< mitk::BaseProperty::Pointer(const DICOMCachedValueLookupTable &) > TagLookupTableToPropertyFunctor
Find image slices visible on a given plane.
std::vector< std::string > StringList
std::vector< DICOMTagPath > DICOMTagPathList