]> Creatis software - gdcm.git/blobdiff - src/gdcmHeaderHelper.h
update the doxygen scripts to -try to (Mmmm?)- allow 'user doc' generation
[gdcm.git] / src / gdcmHeaderHelper.h
index 6fb9e2d478d97d6e745a7e3b1853680b0801cb78..9fdcffbde4ea5e682b0910a58c9bd7f4aff52527 100644 (file)
@@ -1,40 +1,78 @@
-// $Header: /cvs/public/gdcm/src/Attic/gdcmHeaderHelper.h,v 1.1 2003/09/08 16:37:47 malaterre Exp $
-
+// gdcmHeaderHelper.h
+//-----------------------------------------------------------------------------
 #ifndef GDCMHEADERHELPER_H
 #define GDCMHEADERHELPER_H
 
 #include "gdcmHeader.h"
-#include <list>
-#include <string>
-#include <vector>
 
-   enum ModalityType {
-      Unknow,
-      CR,
-      CT,
-      MR,
-      NM,
-      OT,
-      US,
-      XA };
+//-----------------------------------------------------------------------------
+// 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
+};
       
-/**
-  This class is meant to *interprate* data given from gdcmHeader
-  That is to say :
-   * it will help other dev to link against there lib
-   * return value instead of string
-   * will be able to search for data at some other place
-   * return *default value* which is not a gdcmHeader goal
-   * ...
-*/
+//-----------------------------------------------------------------------------
+/*
+ * \defgroup gdcmHeaderHelper
+ * \brief  
+ *
+ * - This class is meant to *interpret* data given from gdcmHeader
+ * - That is to say :
+ *  - it will help other dev to link against there lib
+ *  - return value instead of string
+ *  - will be able to search for data at some other place
+ *  - return *default value* which is not a gdcmHeader goal
+ *  - ...
+ */
 class GDCM_EXPORT gdcmHeaderHelper : public gdcmHeader {
-
 public:
+   gdcmHeaderHelper();
+   gdcmHeaderHelper(const char *filename, 
+              bool  exception_on_error = false, 
+              bool  enable_sequences   = false,
+             bool  ignore_shadow      = false);
 
-   gdcmHeaderHelper::gdcmHeaderHelper();
-   gdcmHeaderHelper::gdcmHeaderHelper(const char *filename, bool exception_on_error = false);
-
-    //Ces fonction releve de l'interpretation des donnĂ©es de gdcmHeader
    int GetPixelSize();
    std::string GetPixelType();
    
@@ -42,17 +80,24 @@ public:
    float GetYSpacing();
    float GetZSpacing();
    
+   // Usefull for rescaling graylevel:
+   float GetRescaleIntercept();
+   float GetRescaleSlope();
+
+   int GetNumberOfScalarComponents();
+   int GetNumberOfScalarComponentsRaw();
+
    std::string GetStudyUID();
    std::string GetSeriesUID();
    std::string GetClassUID();
    std::string GetInstanceUID();
    
-    /**
-    change GetXImagePosition -> GetXOrigin in order not to confused reader
-      -# GetXOrigin can return default value (=0) if it was not ImagePosition
-      -# Image Position is different in dicomV3 <> ACR NEMA -> better use generic
-      name
-    */
+   /**
+    * change GetXImagePosition -> GetXOrigin in order not to confuse reader
+    * -# GetXOrigin can return default value (=0) if it was not ImagePosition
+    * -# Image Position is different in dicomV3 <> ACR NEMA -> better use generic
+    * name
+   */
    float GetXOrigin();
    float GetYOrigin();
    float GetZOrigin();
@@ -61,25 +106,27 @@ public:
    ModalityType GetModality();
    
    void GetImageOrientationPatient( float* iop );
-
 };
 
-/**
-This class should be used for a stack of 2D dicom images.
-For a multiframe dicom image better use directly gdcmHeaderHelper
+//-----------------------------------------------------------------------------
+/*
+ * \defgroup gdcmSerieHeaderHelper
+ * \brief  
+ *
+ * - This class should be used for a stack of 2D dicom images.
+ * - For a multiframe dicom image better use directly gdcmHeaderHelper
 */
 class GDCM_EXPORT gdcmSerieHeaderHelper {
-
 public:
-    gdcmSerieHeaderHelper::gdcmSerieHeaderHelper() {};
-    gdcmSerieHeaderHelper::~gdcmSerieHeaderHelper();
+    gdcmSerieHeaderHelper() {};
+    ~gdcmSerieHeaderHelper();
 
    void AddFileName(std::string filename); //should return bool or throw error ?
    void AddGdcmFile(gdcmHeaderHelper *file);
    void SetDirectory(std::string dir);
    void OrderGdcmFileList();
    
-   gdcmHeaderHelper *GetGdcmHeader()
+   inline gdcmHeaderHelper *GetGdcmHeader()
    {
       //Assume all element in the list have the same global infos
       return CoherentGdcmFileList.front();
@@ -93,7 +140,7 @@ private:
    bool FileNameOrdering();
    
    std::list<gdcmHeaderHelper*> CoherentGdcmFileList;
-
 };
 
+//-----------------------------------------------------------------------------
 #endif