Program: gdcm
Module: $RCSfile: gdcmDicomDir.h,v $
Language: C++
- Date: $Date: 2004/11/02 03:10:32 $
- Version: $Revision: 1.36 $
+ Date: $Date: 2004/12/16 13:46:36 $
+ Version: $Revision: 1.42 $
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See Doc/License.txt or
#ifndef GDCMDICOMDIR_H
#define GDCMDICOMDIR_H
-#include "gdcmCommon.h"
#include "gdcmDocument.h"
-#include "gdcmDicomDirPatient.h"
-#include "gdcmDicomDirMeta.h"
-#include "gdcmDicomDirElement.h"
#include <list>
#include <vector>
namespace gdcm
{
//-----------------------------------------------------------------------------
+class DicomDirPatient;
+class DicomDirMeta;
+class DicomDirElement;
+class DicomDirStudy;
+class DicomDirSerie;
+class DicomDirImage;
+class SQItem;
+
typedef std::list<DicomDirPatient*> ListDicomDirPatient;
typedef std::vector<Document*> VectDocument;
-typedef GDCM_EXPORT void(Method)(void*);
//-----------------------------------------------------------------------------
/**
class GDCM_EXPORT DicomDir: public Document
{
public:
+ typedef void(Method)(void*);
+
DicomDir( std::string const & filename, bool parseDir = false );
DicomDir();
~DicomDir();
/// \brief canonical Printer
- /// \sa SetPrintLevel
void Print(std::ostream &os = std::cout);
/// Informations contained in the parser
/// Parsing
void ParseDirectory();
- void SetStartMethod(Method*, void* = NULL, Method* = NULL);
- void SetStartMethodArgDelete(Method*);
- void SetProgressMethod(Method* ,void* = NULL, Method* = NULL);
- void SetProgressMethodArgDelete(Method*);
- void SetEndMethod(Method*, void* = NULL,Method* = NULL);
- void SetEndMethodArgDelete(Method*);
+ // Note: the DicomDir:: namespace prefix is needed by Swig in the
+ // following method declarations. Refer to gdcmPython/gdcm.i
+ // for the reasons of this unecessary notation at C++ level.
+ void SetStartMethod( DicomDir::Method*,
+ void* = NULL,
+ DicomDir::Method* = NULL );
+ void SetProgressMethod( DicomDir::Method*,
+ void* = NULL,
+ DicomDir::Method* = NULL );
+ void SetEndMethod( DicomDir::Method*,
+ void* = NULL,
+ DicomDir::Method* = NULL );
+ void SetStartMethodArgDelete( DicomDir::Method* );
+ void SetProgressMethodArgDelete( DicomDir::Method* );
+ void SetEndMethodArgDelete( DicomDir::Method* );
/// GetProgress GetProgress
float GetProgress() { return Progress; };
private:
void Initialize();
void CreateDicomDir();
- void AddDicomDirMeta();
- void AddDicomDirPatientToEnd(SQItem* s);
- void AddDicomDirStudyToEnd (SQItem* s);
- void AddDicomDirSerieToEnd (SQItem* s);
- void AddDicomDirImageToEnd (SQItem* s);
+
+ bool AddDicomDirMeta();
+ bool AddDicomDirPatientToEnd(DicomDirPatient* dd);
+ bool AddDicomDirStudyToEnd (DicomDirStudy* dd);
+ bool AddDicomDirSerieToEnd (DicomDirSerie* dd);
+ bool AddDicomDirImageToEnd (DicomDirImage* dd);
void SetElements(std::string const & path, VectDocument const &list);
void SetElement (std::string const & path, DicomDirType type,
Document* header);
+ void MoveSQItem(SQItem* dst,SQItem *src);
static bool HeaderLessThan(Document* header1, Document* header2);