Program: gdcm
Module: $RCSfile: gdcmHeader.h,v $
Language: C++
- Date: $Date: 2004/06/20 18:08:48 $
- Version: $Revision: 1.74 $
+ Date: $Date: 2004/08/02 16:42:14 $
+ Version: $Revision: 1.86 $
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See Doc/License.txt or
* protected due to Swig limitations for as Has_a dependency between
* gdcmFile and gdcmHeader.
*/
+
+//-----------------------------------------------------------------------------
+// Dicom Part 3.3 Compliant
+enum ModalityType {
+ Unknow,
+ AU, // Voice Audio
+ AS, // Angioscopy
+ BI, // Biomagnetic Imaging
+ CF, // Cinefluorography
+ CP, // Culposcopy
+ CR, // Computed Radiography
+ CS, // Cystoscopy
+ CT, // Computed Tomography
+ DD, // Duplex Dopler
+ DF, // Digital Fluoroscopy
+ DG, // Diaphanography
+ DM, // Digital Microscopy
+ DS, // Digital Substraction Angiography
+ DX, // Digital Radiography
+ ECG, // Echocardiography
+ EPS, // Basic Cardiac EP
+ ES, // Endoscopy
+ FA, // Fluorescein Angiography
+ FS, // Fundoscopy
+ HC, // Hard Copy
+ HD, // Hemodynamic
+ LP, // Laparoscopy
+ LS, // Laser Surface Scan
+ MA, // Magnetic Resonance Angiography
+ MR, // Magnetic Resonance
+ NM, // Nuclear Medicine
+ OT, // Other
+ PT, // Positron Emission Tomography
+ RF, // Radio Fluoroscopy
+ RG, // Radiographic Imaging
+ RTDOSE, // Radiotherapy Dose
+ RTIMAGE, // Radiotherapy Image
+ RTPLAN, // Radiotherapy Plan
+ RTSTRUCT, // Radiotherapy Structure Set
+ SM, // Microscopic Imaging
+ ST, // Single-photon Emission Computed Tomography
+ TG, // Thermography
+ US, // Ultrasound
+ VF, // Videofluorography
+ XA, // X-Ray Angiography
+ XC // Photographic Imaging
+};
+//-----------------------------------------------------------------------------
+
class GDCM_EXPORT gdcmHeader : public gdcmDocument
{
protected:
/// make things easier the parser shall store the proper value in
/// NumPixel to provide a unique access facility. See also the constructor
/// \ref gdcmHeader::gdcmHeader
- guint16 NumPixel;
+ uint16_t NumPixel;
/// \brief In some cases (e.g. for some ACR-NEMA images) the header entry for
/// the group of pixels is *not* found at 0x7fe0. In order to
/// make things easier the parser shall store the proper value in
/// GrPixel to provide a unique access facility. See also the constructor
/// \ref gdcmHeader::gdcmHeader
- guint16 GrPixel;
+ uint16_t GrPixel;
public:
- gdcmHeader(bool exception_on_error = false);
- gdcmHeader(const char *filename,
- bool exception_on_error = false,
- bool enable_sequences = false,
- bool skip_shadow = false);
+ gdcmHeader();
+ gdcmHeader( std::string const & filename );
virtual ~gdcmHeader();
// Standard values and informations contained in the header
- virtual bool IsReadable(void);
+ virtual bool IsReadable();
// Some heuristic based accessors, end user intended
- // (to be moved to gdcmHeaderHelper?)
- int GetXSize(void);
- int GetYSize(void);
- int GetZSize(void);
- int GetBitsStored(void);
- int GetBitsAllocated(void);
- int GetSamplesPerPixel(void);
- int GetPlanarConfiguration(void);
-
- int GetPixelSize(void);
- std::string GetPixelType(void);
- size_t GetPixelOffset(void);
- size_t GetPixelAreaLength(void);
-
- bool HasLUT(void);
- int GetLUTNbits(void);
- unsigned char * GetLUTRGBA(void);
-
- std::string GetTransfertSyntaxName(void);
+ int GetBitsStored();
+ int GetBitsAllocated();
+ int GetSamplesPerPixel();
+ int GetPlanarConfiguration();
+ int GetPixelSize();
+
+ std::string GetPixelType();
+ size_t GetPixelOffset();
+ size_t GetPixelAreaLength();
+
+ //Some image informations needed for third package imaging library
+ int GetXSize();
+ int GetYSize();
+ int GetZSize();
+
+ float GetXSpacing();
+ float GetYSpacing();
+ float GetZSpacing();
+ //void GetSpacing(float &x, float &y, float &z);
+
+ // Useful for rescaling graylevel:
+ float GetRescaleIntercept();
+ float GetRescaleSlope();
+
+ int GetNumberOfScalarComponents();
+ int GetNumberOfScalarComponentsRaw();
+
+ int GetImageNumber();
+ ModalityType GetModality();
+
+ float GetXOrigin();
+ float GetYOrigin();
+ float GetZOrigin();
+ //void GetOrigin(float &x, float &y, float &z);
+
+ bool HasLUT();
+ int GetLUTNbits();
+ unsigned char * GetLUTRGBA();
+
+ std::string GetTransfertSyntaxName();
/// Accessor to \ref gdcmHeader::GrPixel
- guint16 GetGrPixel(void) {return GrPixel;}
+ uint16_t GetGrPixel() { return GrPixel; }
/// Accessor to \ref gdcmHeader::NumPixel
- guint16 GetNumPixel(void) {return NumPixel;}
+ uint16_t GetNumPixel() { return NumPixel; }
/// Read (used in gdcmFile)
- void SetImageDataSize(size_t ExpectedSize);
+ void SetImageDataSize(size_t expectedSize);
+ void Write(FILE* fp, FileType filetype);
+
protected:
- bool anonymizeHeader(void);
-private:
+ bool AnonymizeHeader();
+ void GetImageOrientationPatient( float iop[6] );
+private:
+ friend class gdcmSerieHeader;
};
//-----------------------------------------------------------------------------