X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src%2FgdcmHeaderHelper.h;h=1540a1293675127992846115416e9ee3da5a4f4d;hb=00e89cde772e18e4f2baab2b01680330af909d59;hp=0c94396c1cafcbebbbb03203add539cf9ecab5b0;hpb=8fb1011e6fca9654c69d4921642f18146c66ca7f;p=gdcm.git diff --git a/src/gdcmHeaderHelper.h b/src/gdcmHeaderHelper.h index 0c94396c..1540a129 100644 --- a/src/gdcmHeaderHelper.h +++ b/src/gdcmHeaderHelper.h @@ -1,142 +1,63 @@ -// $Header: /cvs/public/gdcm/src/Attic/gdcmHeaderHelper.h,v 1.7 2003/11/12 14:06:35 malaterre Exp $ +/*========================================================================= + + Program: gdcm + Module: $RCSfile: gdcmHeaderHelper.h,v $ + Language: C++ + Date: $Date: 2004/09/27 08:39:07 $ + Version: $Revision: 1.21 $ + + Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de + l'Image). All rights reserved. See Doc/License.txt or + http://www.creatis.insa-lyon.fr/Public/Gdcm/License.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ #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 - }; - -/** - 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 - * ... +//----------------------------------------------------------------------------- +/* + * \defgroup gdcmSerieHeader + * \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 gdcmHeaderHelper : public gdcmHeader { - +class GDCM_EXPORT gdcmSerieHeader +{ public: + gdcmSerieHeader(); + ~gdcmSerieHeader(); - gdcmHeaderHelper::gdcmHeaderHelper(); - gdcmHeaderHelper::gdcmHeaderHelper(const char *filename, bool exception_on_error = false); - - int GetPixelSize(); - std::string GetPixelType(); - - 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 - */ - float GetXOrigin(); - float GetYOrigin(); - float GetZOrigin(); - - int GetImageNumber(); - ModalityType GetModality(); + /// \todo should return bool or throw error ? + void AddFileName(std::string const & filename); + void AddGdcmFile(gdcmHeader *file); + void SetDirectory(std::string const & dir); + void OrderGdcmFileList(); - void GetImageOrientationPatient( float* iop ); - + /// \warning Assumes all elements in the list have the same global infos. + /// Assumes the list is not empty. + gdcmHeader* GetGdcmHeader() { return CoherentGdcmFileList.front(); } -}; + typedef std::list GdcmHeaderList; -/** -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(); - - void AddFileName(std::string filename); //should return bool or throw error ? - void AddGdcmFile(gdcmHeaderHelper *file); - void SetDirectory(std::string dir); - void OrderGdcmFileList(); - - gdcmHeaderHelper *GetGdcmHeader() - { - //Assume all element in the list have the same global infos - return CoherentGdcmFileList.front(); - } - - std::list& GetGdcmFileList(); + /// \brief Gets the *coherent* File List + /// @return the *coherent* File List + const GdcmHeaderList& GetGdcmFileList() { return CoherentGdcmFileList; } private: bool ImagePositionPatientOrdering(); bool ImageNumberOrdering(); bool FileNameOrdering(); - std::list CoherentGdcmFileList; - + GdcmHeaderList CoherentGdcmFileList; }; +//----------------------------------------------------------------------------- #endif