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
49class vtkDICOMImageReaderVector;
50class DICOMParser;
51class DICOMAppHelper;
52
53class 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
109
113 int GetWidth();
114
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
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
208protected:
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
244 char* StudyUID;
245 char* StudyID;
247
248 // DICOMFileNames accessor methods for subclasses:
250 const char* GetDICOMFileName(int index);
251private:
252 vtkDICOMImageReader(const vtkDICOMImageReader&) VTK_DELETE_FUNCTION;
253 void operator=(const vtkDICOMImageReader&) VTK_DELETE_FUNCTION;
254
255};
256
257#endif
Reads some DICOM images.
virtual void ExecuteInformation()
const char * GetStudyUID()
Get the study uid for the last image processed.
void SetupOutputInformation(int num_slices)
static vtkDICOMImageReader * New()
Static method for construction.
void SetFileName(const char *fn)
Set the filename for the file to read.
const char * GetStudyID()
Get the Study ID for the last image processed.
vtkDICOMImageReaderVector * DICOMFileNames
DICOMAppHelper * AppHelper
void SetDirectoryName(const char *dn)
Set the directory name for the reader to look in for DICOM files.
float GetGantryAngle()
Get the gantry angle for the last image processed.
int GetHeight()
Returns the image height.
int GetNumberOfComponents()
Get the number of components of the image data for the last image processed.
float * GetImagePositionPatient()
Get the (DICOM) x,y,z coordinates of the first pixel in the image (upper left hand corner) of the las...
virtual const char * GetFileExtensions()
Get the file extensions for this format.
virtual int CanReadFile(const char *fname)
int GetPixelRepresentation()
Get the pixel representation of the last image processed by the DICOMParser.
float GetRescaleOffset()
Get the rescale offset for the pixel data.
virtual const char * GetDescriptiveName()
Return a descriptive name for the file format that might be useful in a GUI.
int GetBitsAllocated()
Get the number of bits allocated for each pixel in the file.
double * GetPixelSpacing()
Returns the pixel spacing (in X, Y, Z).
float GetRescaleSlope()
Get the rescale slope for the pixel data.
int GetWidth()
Returns the image width.
const char * GetDICOMFileName(int index)
float * GetImageOrientationPatient()
Get the (DICOM) directions cosines.
virtual ~vtkDICOMImageReader()
const char * GetTransferSyntaxUID()
Get the transfer syntax UID for the last image processed.
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.
const char * GetPatientName()
Get the patient name for the last image processed.
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.