17 #ifndef __igstkDICOMImageReader_h
18 #define __igstkDICOMImageReader_h
24 #include "itkImageSeriesReader.h"
25 #include "itkEventObject.h"
26 #include "itkGDCMImageIO.h"
27 #include "itkGDCMSeriesFileNames.h"
33 #define igstkUnsafeGetMacro(name,type) \
34 virtual const type & Get##name () const \
36 igstkLogMacro( CRITICAL, \
37 "igstk::DICOMImageReader::Get" #name " unsafe method called...\n"); \
38 return this->m_##name; \
47 igstkEventMacro( DICOMImageReaderErrorEvent, IGSTKErrorWithStringEvent );
49 DICOMImageReaderErrorEvent );
53 DICOMImageReaderErrorEvent );
55 DICOMImageReaderErrorEvent );
57 DICOMImageReaderErrorEvent );
59 DICOMImageReaderErrorEvent );
63 DICOMImageReaderErrorEvent );
67 DICOMImageReaderErrorEvent );
84 template <
class TImageSpatialObject>
98 typedef std::string DirectoryNameType;
101 void RequestSetDirectory(
const DirectoryNameType & directory );
160 TImageSpatialObject);
184 void PrintSelf( std::ostream& os, itk::Indent indent )
const;
195 void operator=(
const Self&);
198 DirectoryNameType m_ImageDirectoryName;
199 DirectoryNameType m_ImageDirectoryNameToBeSet;
202 igstkDeclareStateMacro( Idle );
203 igstkDeclareStateMacro( ImageDirectoryNameRead );
204 igstkDeclareStateMacro( AttemptingToReadImage );
205 igstkDeclareStateMacro( ImageSeriesFileNamesGenerated );
206 igstkDeclareStateMacro( ImageRead );
209 igstkDeclareInputMacro( ReadImage );
210 igstkDeclareInputMacro( ImageDirectoryNameValid );
211 igstkDeclareInputMacro( ImageReadingSuccess );
212 igstkDeclareInputMacro( ImageSeriesFileNamesGeneratingSuccess );
213 igstkDeclareInputMacro( ResetReader );
214 igstkDeclareInputMacro( GetImage );
217 igstkDeclareInputMacro( ImageReadingError );
218 igstkDeclareInputMacro( ImageDirectoryNameIsEmpty );
219 igstkDeclareInputMacro( ImageDirectoryNameDoesNotExist );
220 igstkDeclareInputMacro( ImageDirectoryNameIsNotDirectory );
221 igstkDeclareInputMacro( ImageDirectoryNameDoesNotHaveEnoughFiles );
222 igstkDeclareInputMacro( ImageSeriesFileNamesGeneratingError );
232 igstkDeclareInputMacro( GetModalityInformation );
233 igstkDeclareInputMacro( GetPatientNameInformation );
236 void SetDirectoryNameProcessing();
240 void ReadDirectoryFileNamesProcessing();
243 void AttemptReadImageProcessing();
247 void ReportInvalidRequestProcessing();
250 void ReportImageDirectoryEmptyErrorProcessing();
253 void ReportImageDirectoryDoesNotExistErrorProcessing();
257 void ReportImageDirectoryDoesNotHaveEnoughFilesErrorProcessing();
261 void ReportImageSeriesFileNamesGeneratingErrorProcessing();
265 void ReportImageSeriesFileNamesGeneratingSuccessProcessing();
268 void ReportImageReadingErrorProcessing();
271 void ReportImageReadingSuccessProcessing();
274 void ReportImageProcessing();
277 void ResetReaderProcessing();
281 void ReportImageDirectoryIsNotDirectoryErrorProcessing();
285 void GetModalityInformationProcessing();
289 void GetPatientNameInformationProcessing();
292 bool m_FileSuccessfullyRead;
301 std::string m_ImageReadingErrorInformation;
306 #ifndef IGSTK_MANUAL_INSTANTIATION
307 #include "igstkDICOMImageReader.txx"
310 #endif // __igstkDICOMImageReader_h
ImageSeriesReaderType::Pointer m_ImageSeriesReader
Internal itkImageSeriesReader.
void RequestGetImage()
Request to get the output image as an event.
Base class for all the IGSTK classes.
void RequestGetModalityInformation()
This function should be used to request modality info.
igstkStandardTemplatedAbstractClassTraitsMacro(ImageReader, Object) public
Macro with standard traits declarations.
bool FileSuccessfullyRead() const
Precondition that should be invoked and verified before attempting to use the values of the methods G...
itk::ImageSeriesReader< ImageType > ImageSeriesReaderType
igstkEventMacro(AuroraTrackerToolEvent, StringEvent)
void PrintSelf(std::ostream &os, itk::Indent indent) const
Print the object information in a stream.
itk::GDCMSeriesFileNames::Pointer m_FileNames
Helper classes for the image series reader.
Superclass::ImageType ImageType
igstkLoadedTemplatedObjectEventMacro(ImageModifiedEvent, IGSTKEvent, TImageSpatialObject)
Event type.
virtual const ImageType * GetITKImage() const
This method MUST be protected n order to prevent unsafe access to the ITK image level.
This class reads DICOM files.
void RequestSetProgressCallback(itk::Command *progressCallback)
igstkUnsafeGetMacro(PatientName, DICOMInformationType)
Unsafe Get Macro for having access to the Patient Name.
void RequestSetAbortCallback(itk::Command *abortCallback)
void RequestReadImage()
This method request image read.
itk::GDCMImageIO::Pointer m_ImageIO
void RequestGetPatientNameInformation()
This function will be used to request patient name info.
#define igstkLoggerMacro()
Macro that defines all the standard elements related to the Logger.
itk::ImageFileReader< ImageType > ImageReaderType
This class is a base class for all image reader classes.
ImageReaderType::Pointer m_ImageFileReader
std::string DICOMInformationType
Type used for returning string values from the DICOM header.