-// $Header: /cvs/public/gdcm/src/Attic/gdcmHeaderHelper.h,v 1.1 2003/09/08 16:37:47 malaterre Exp $
+/*=========================================================================
+
+ Program: gdcm
+ Module: $RCSfile: gdcmHeaderHelper.h,v $
+ Language: C++
+ Date: $Date: 2004/06/21 21:51:01 $
+ Version: $Revision: 1.18 $
+
+ 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.htm 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 <list>
-#include <string>
-#include <vector>
- enum ModalityType {
- Unknow,
- CR,
- CT,
- MR,
- NM,
- OT,
- US,
- XA };
-
-/**
- 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 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:
-
- 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();
-
- float GetXSpacing();
- float GetYSpacing();
- float GetZSpacing();
-
- 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();
-
- 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();
+ gdcmSerieHeader() {};
+ ~gdcmSerieHeader();
void AddFileName(std::string filename); //should return bool or throw error ?
- void AddGdcmFile(gdcmHeaderHelper *file);
+ void AddGdcmFile(gdcmHeader *file);
void SetDirectory(std::string dir);
void OrderGdcmFileList();
- gdcmHeaderHelper *GetGdcmHeader()
+ inline gdcmHeader *GetGdcmHeader()
{
//Assume all element in the list have the same global infos
return CoherentGdcmFileList.front();
}
- std::list<gdcmHeaderHelper*>& GetGdcmFileList();
+ std::list<gdcmHeader*>& GetGdcmFileList();
private:
bool ImagePositionPatientOrdering();
bool ImageNumberOrdering();
bool FileNameOrdering();
- std::list<gdcmHeaderHelper*> CoherentGdcmFileList;
-
+ std::list<gdcmHeader*> CoherentGdcmFileList;
};
+//-----------------------------------------------------------------------------
#endif