-// gdcmDicomDir.h
-//-----------------------------------------------------------------------------
+/*=========================================================================
+
+ Program: gdcm
+ Module: $RCSfile: gdcmDicomDir.h,v $
+ Language: C++
+ Date: $Date: 2004/06/19 23:51:03 $
+ Version: $Revision: 1.22 $
+
+ 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 GDCMDICOMDIR_H
#define GDCMDICOMDIR_H
-#include "gdcmHeader.h"
#include "gdcmCommon.h"
+#include "gdcmDocument.h"
#include "gdcmDicomDirPatient.h"
#include "gdcmDicomDirMeta.h"
#include "gdcmDicomDirElement.h"
//-----------------------------------------------------------------------------
typedef std::list<gdcmDicomDirPatient *> ListDicomDirPatient;
-typedef std::vector<gdcmHeader *> ListHeader;
+typedef std::vector<gdcmDocument *> VectDocument;
typedef GDCM_EXPORT void(gdcmMethod)(void * = NULL);
//-----------------------------------------------------------------------------
-/*
- * \defgroup gdcmDicomDir
+
+/**
+ * \ingroup gdcmDicomDir
* \brief gdcmDicomDir defines an object representing a DICOMDIR in memory.
*
*/
-class GDCM_EXPORT gdcmDicomDir: public gdcmParser
+class GDCM_EXPORT gdcmDicomDir: public gdcmDocument
{
public:
// gdcmDicomDir(ListTag *l,
~gdcmDicomDir(void);
/**
- * \ingroup gdcmParser
+ * \ingroup gdcmDicomDir
* \brief Sets the print level for the Dicom Header
* \note 0 for Light Print; 1 for 'medium' Print, 2 for Heavy
*/
void SetPrintLevel(int level)
{ printLevel = level; };
/**
- * \ingroup gdcmParser
+ * \ingroup gdcmDicomDir
* \brief canonical Printer
* \sa SetPrintLevel
*/
// Informations contained in the parser
virtual bool IsReadable(void);
-/**
- * \ingroup gdcmDicomDir
- * \brief returns a pointer to the gdcmDicomDirMeta for this DICOMDIR.
- */
+
+/// \brief returns a pointer to the gdcmDicomDirMeta for this DICOMDIR.
inline gdcmDicomDirMeta *GetDicomDirMeta()
{return metaElems;};
-/**
- * \ingroup gdcmDicomDir
- * \brief returns the PATIENT chained List for this DICOMDIR.
- */
+
+ /// \brief returns the PATIENT chained List for this DICOMDIR.
inline ListDicomDirPatient &GetDicomDirPatients()
{return patients;};
// Parsing
void ParseDirectory(void);
-
+
void SetStartMethod(gdcmMethod *,void * =NULL,gdcmMethod * =NULL);
void SetStartMethodArgDelete(gdcmMethod *);
void SetProgressMethod(gdcmMethod *,void * =NULL,gdcmMethod * =NULL);
void SetEndMethod(gdcmMethod *,void * =NULL,gdcmMethod * =NULL);
void SetEndMethodArgDelete(gdcmMethod *);
- inline float GetProgress(void) {return(progress);};
- inline void AbortProgress(void){abort=true; };
- inline bool IsAborted(void) {return(abort); };
+/// \brief GetProgress GetProgress
+ inline float GetProgress(void)
+ {return(progress);};
+
+/// \brief AbortProgress AbortProgress
+ inline void AbortProgress(void)
+ {abort=true; };
+
+/// \brief IsAborted IsAborted
+ inline bool IsAborted(void)
+ {return(abort); };
// Adding
+ gdcmDicomDirMeta * NewMeta(void);
gdcmDicomDirPatient * NewPatient(void);
// Write
+ void WriteEntries(FILE *_fp);
bool Write(std::string fileName);
-// Types
+/// Types of the gdcmObject within the gdcmDicomDir
typedef enum
{
GDCM_DICOMDIR_NONE,
void CallEndMethod(void);
private:
+ void Initialize(void);
void CreateDicomDir(void);
- void AddObjectToEnd(gdcmDicomDirType type,
- ListTag::iterator begin,ListTag::iterator end);
- void AddDicomDirMetaToEnd (ListTag::iterator begin,ListTag::iterator end);
- void AddDicomDirPatientToEnd(ListTag::iterator begin,ListTag::iterator end);
- void AddDicomDirStudyToEnd (ListTag::iterator begin,ListTag::iterator end);
- void AddDicomDirSerieToEnd (ListTag::iterator begin,ListTag::iterator end);
- void AddDicomDirImageToEnd (ListTag::iterator begin,ListTag::iterator end);
-
- void SetElements(std::string &path,ListHeader &list);
- void SetElement (std::string &path,gdcmDicomDirType type,gdcmHeader *header);
+// void AddObjectToEnd(gdcmDicomDirType type, gdcmSQItem *s);
+ void AddDicomDirMeta ();
+ void AddDicomDirPatientToEnd(gdcmSQItem *s);
+ void AddDicomDirStudyToEnd (gdcmSQItem *s);
+ void AddDicomDirSerieToEnd (gdcmSQItem *s);
+ void AddDicomDirImageToEnd (gdcmSQItem *s);
+
+ void SetElements(std::string &path, VectDocument &list);
+ void SetElement (std::string &path,gdcmDicomDirType type,
+ gdcmDocument *header);
void UpdateDirectoryRecordSequenceLength(void);
- static bool HeaderLessThan(gdcmHeader *header1,gdcmHeader *header2);
- void WriteDicomDirEntries(FILE *_fp);
+ static bool HeaderLessThan(gdcmDocument *header1,gdcmDocument *header2);
// Variables
-/**
-* \brief pointer on *the* gdcmObject 'DicomDirMeta Elements'
-*/
+
+/// \brief pointer on *the* gdcmObject 'DicomDirMeta Elements'
gdcmDicomDirMeta *metaElems;
-/**
-* \brief chained list of DicomDirPatient (to be exploited recursively)
-*/
+
+/// \brief chained list of DicomDirPatient (to be exploited recursively)
ListDicomDirPatient patients;
+/// pointer to the initialisation method for any progress bar
gdcmMethod *startMethod;
- gdcmMethod *progressMethod;
+/// pointer to the incrementation method for any progress bar
+ gdcmMethod *progressMethod;
+/// pointer to the tremination method for any progress bar
gdcmMethod *endMethod;
+/// pointer to the ??? method for any progress bar
gdcmMethod *startMethodArgDelete;
+/// pointer to the ??? method for any progress bar
gdcmMethod *progressMethodArgDelete;
+/// pointer to the ??? method for any progress bar
gdcmMethod *endMethodArgDelete;
+/// pointer to the ??? for any progress bar
void *startArg;
+/// pointer to the ??? for any progress bar
void *progressArg;
+/// pointer to the ??? for any progress bar
void *endArg;
-
+/// value of the ??? for any progress bar
float progress;
+/// value of the ??? for any progress bar
bool abort;
};