X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src%2FgdcmHeaderHelper.h;h=7a0b01cca12153e519dadfc8e7ce3996214ead0e;hb=2ad968707c3eea27dff9d8dd5f4caf9f7b6c4d6e;hp=a0fc9494c60ff33e3b7245db1de8713051d0605e;hpb=5f5eda4e34ec5f7975adcb1c3fbc4064f918db98;p=gdcm.git diff --git a/src/gdcmHeaderHelper.h b/src/gdcmHeaderHelper.h index a0fc9494..7a0b01cc 100644 --- a/src/gdcmHeaderHelper.h +++ b/src/gdcmHeaderHelper.h @@ -1,38 +1,74 @@ -// $Header: /cvs/public/gdcm/src/Attic/gdcmHeaderHelper.h,v 1.2 2003/09/09 08:46:32 malaterre Exp $ - +// gdcmHeaderHelper.h +//----------------------------------------------------------------------------- #ifndef GDCMHEADERHELPER_H #define GDCMHEADERHELPER_H #include "gdcmHeader.h" -#include -#include -#include - 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 *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 - * ... -*/ +//----------------------------------------------------------------------------- +/* + * 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(); - gdcmHeaderHelper::gdcmHeaderHelper(const char *filename, bool exception_on_error = false); + gdcmHeaderHelper(); + gdcmHeaderHelper(const char *filename, + bool exception_on_error = false, + bool enable_sequences = false, + bool ignore_shadow = false); int GetPixelSize(); std::string GetPixelType(); @@ -41,17 +77,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(); @@ -60,25 +103,24 @@ 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 */ 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(); @@ -92,7 +134,7 @@ private: bool FileNameOrdering(); std::list CoherentGdcmFileList; - }; +//----------------------------------------------------------------------------- #endif