X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src%2FgdcmHeaderHelper.h;h=7a0b01cca12153e519dadfc8e7ce3996214ead0e;hb=2ad968707c3eea27dff9d8dd5f4caf9f7b6c4d6e;hp=06455a49d9cd88856c1c20c5c878a67acd1ebe1b;hpb=f8e5982fc2d53058d72b5c96e8f4f53faf9a37d7;p=gdcm.git diff --git a/src/gdcmHeaderHelper.h b/src/gdcmHeaderHelper.h index 06455a49..7a0b01cc 100644 --- a/src/gdcmHeaderHelper.h +++ b/src/gdcmHeaderHelper.h @@ -1,74 +1,74 @@ -// $Header: /cvs/public/gdcm/src/Attic/gdcmHeaderHelper.h,v 1.4 2003/10/03 14:26:11 jpr Exp $ - +// gdcmHeaderHelper.h +//----------------------------------------------------------------------------- #ifndef GDCMHEADERHELPER_H #define GDCMHEADERHELPER_H #include "gdcmHeader.h" -#include -#include -#include - // 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 - }; +//----------------------------------------------------------------------------- +// 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(); @@ -76,20 +76,25 @@ public: float GetXSpacing(); 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(); @@ -98,26 +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(); @@ -131,7 +134,7 @@ private: bool FileNameOrdering(); std::list CoherentGdcmFileList; - }; +//----------------------------------------------------------------------------- #endif