VTK
vtkDICOMImageReader.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkDICOMImageReader.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
43 #ifndef vtkDICOMImageReader_h
44 #define vtkDICOMImageReader_h
45 
46 #include "vtkIOImageModule.h" // For export macro
47 #include "vtkImageReader2.h"
48 
49 class vtkDICOMImageReaderVector;
50 class DICOMParser;
51 class DICOMAppHelper;
52 
53 class VTKIOIMAGE_EXPORT vtkDICOMImageReader : public vtkImageReader2
54 {
55  public:
57 
63 
67  void PrintSelf(ostream& os, vtkIndent indent);
68 
70 
74  void SetFileName(const char* fn)
75  {
76  delete [] this->DirectoryName;
77  delete [] this->FileName;
78  this->DirectoryName = NULL;
79  this->FileName = NULL;
81  }
83 
93  void SetDirectoryName(const char* dn);
94 
96 
99  vtkGetStringMacro(DirectoryName);
101 
108  double* GetPixelSpacing();
109 
113  int GetWidth();
114 
118  int GetHeight();
119 
126 
133 
138 
145 
151 
155  const char* GetTransferSyntaxUID();
156 
161 
166 
170  const char* GetPatientName();
171 
175  const char* GetStudyUID();
176 
180  const char* GetStudyID();
181 
185  float GetGantryAngle();
186 
187  //
188  // Can I read the file?
189  //
190  virtual int CanReadFile(const char* fname);
191 
192  //
193  // What file extensions are supported?
194  //
195  virtual const char* GetFileExtensions()
196  {
197  return ".dcm";
198  }
199 
203  virtual const char* GetDescriptiveName()
204  {
205  return "DICOM";
206  }
207 
208 protected:
209  //
210  // Setup the volume size
211  //
212  void SetupOutputInformation(int num_slices);
213 
214  virtual void ExecuteInformation();
216 
217  //
218  // Constructor
219  //
221 
222  //
223  // Destructor
224  //
226 
227  //
228  // Instance of the parser used to parse the file.
229  //
230  DICOMParser* Parser;
231 
232  //
233  // Instance of the callbacks that get the data from the file.
234  //
235  DICOMAppHelper* AppHelper;
236 
237  //
238  // vtkDICOMImageReaderVector wants to be a PIMPL and it will be, but not quite yet.
239  //
240  vtkDICOMImageReaderVector* DICOMFileNames;
242 
243  char* PatientName;
244  char* StudyUID;
245  char* StudyID;
247 
248  // DICOMFileNames accessor methods for subclasses:
250  const char* GetDICOMFileName(int index);
251 private:
252  vtkDICOMImageReader(const vtkDICOMImageReader&) VTK_DELETE_FUNCTION;
253  void operator=(const vtkDICOMImageReader&) VTK_DELETE_FUNCTION;
254 
255 };
256 
257 #endif
Reads some DICOM images.
const char * GetTransferSyntaxUID()
Get the transfer syntax UID for the last image processed.
double * GetPixelSpacing()
Returns the pixel spacing (in X, Y, Z).
virtual void ExecuteInformation()
const char * GetStudyID()
Get the Study ID for the last image processed.
void SetupOutputInformation(int num_slices)
void SetFileName(const char *fn)
Set the filename for the file to read.
vtkDICOMImageReaderVector * DICOMFileNames
DICOMAppHelper * AppHelper
void SetDirectoryName(const char *dn)
Set the directory name for the reader to look in for DICOM files.
const char * GetPatientName()
Get the patient name for the last image processed.
virtual const char * GetDescriptiveName()
Return a descriptive name for the file format that might be useful in a GUI.
float GetGantryAngle()
Get the gantry angle for the last image processed.
const char * GetDICOMFileName(int index)
int GetHeight()
Returns the image height.
int GetNumberOfComponents()
Get the number of components of the image data for the last image processed.
float * GetImageOrientationPatient()
Get the (DICOM) directions cosines.
virtual int CanReadFile(const char *fname)
static vtkDICOMImageReader * New()
Static method for construction.
int GetPixelRepresentation()
Get the pixel representation of the last image processed by the DICOMParser.
float * GetImagePositionPatient()
Get the (DICOM) x,y,z coordinates of the first pixel in the image (upper left hand corner) of the las...
float GetRescaleOffset()
Get the rescale offset for the pixel data.
const char * GetStudyUID()
Get the study uid for the last image processed.
virtual const char * GetFileExtensions()
Get the file extensions for this format.
int GetBitsAllocated()
Get the number of bits allocated for each pixel in the file.
float GetRescaleSlope()
Get the rescale slope for the pixel data.
int GetWidth()
Returns the image width.
virtual ~vtkDICOMImageReader()
int GetNumberOfDICOMFileNames()
void PrintSelf(ostream &os, vtkIndent indent)
Prints the ivars.
virtual void ExecuteDataWithInformation(vtkDataObject *out, vtkInformation *outInfo)
This is a convenience method that is implemented in many subclasses instead of RequestData.
general representation of visualization data
Definition: vtkDataObject.h:65
Superclass of binary file readers.
virtual void SetFileName(const char *)
Specify file name for the image file.
a simple class to control print indentation
Definition: vtkIndent.h:40
Store vtkAlgorithm input/output information.
@ index
Definition: vtkX3D.h:246
vtkGetStringMacro(ExtensionsString)
Returns a string listing all available extensions.