Program: gdcm
Module: $RCSfile: MakeDicomDir.cxx,v $
Language: C++
- Date: $Date: 2005/06/14 09:08:46 $
- Version: $Revision: 1.5 $
+ Date: $Date: 2005/08/30 15:13:05 $
+ Version: $Revision: 1.14 $
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See Doc/License.txt or
#include "gdcmDicomDirPatient.h"
#include "gdcmDirList.h"
#include "gdcmDebug.h"
-
#include "gdcmArgMgr.h"
#include <iostream>
// ---
/**
- * \ingroup Test
* \brief Explores recursively the given directory
* orders the gdcm-readable found Files
* according their Patient/Study/Serie/Image characteristics
int main(int argc, char *argv[])
{
START_USAGE(usage)
- " \n MakeDicomDir :\n",
- " Explores recursively the given directory, makes the relevant DICOMDIR",
- " and writes it as 'NewDICOMDIR'",
- " usage: MakeDicomDir dirname=rootDirectoryName [noshadow] [noseq] [debug] ",
- " noshadow : user doesn't want to load Private groups (odd number)",
- " noseq : user doesn't want to load Sequences ",
- " debug : user wants to run the program in 'debug mode' ",
+ " \n MakeDicomDir :\n ",
+ " Explores recursively the given directory, makes the relevant DICOMDIR ",
+ " and writes it as 'NewDICOMDIR' ",
+ " ",
+ " usage: MakeDicomDir dirname=rootDirectoryName ",
+ " [noshadowseq][noshadow][noseq] [debug] ",
+ " ",
+ " noshadowseq: user doesn't want to load Private Sequences ",
+ " noshadow : user doesn't want to load Private groups (odd number) ",
+ " noseq : user doesn't want to load Sequences ",
+ " debug : user wants to run the program in 'debug mode' ",
FINISH_USAGE
// ----- Initialize Arguments Manager ------
gdcm::ArgMgr *am = new gdcm::ArgMgr(argc, argv);
- if (am->ArgMgrDefined("usage"))
+ if (argc == 1 || am->ArgMgrDefined("usage"))
{
am->ArgMgrUsage(usage); // Display 'usage'
delete am;
char *dirName;
dirName = am->ArgMgrGetString("dirName",(char *)".");
- int loadMode;
- if ( am->ArgMgrDefined("noshadow") && am->ArgMgrDefined("noseq") )
- loadMode = NO_SEQ | NO_SHADOW;
- else if ( am->ArgMgrDefined("noshadow") )
- loadMode = NO_SHADOW;
- else if ( am->ArgMgrDefined("noseq") )
- loadMode = NO_SEQ;
- else
- loadMode = 0;
+ int loadMode = gdcm::LD_ALL;
+ if ( am->ArgMgrDefined("noshadowseq") )
+ loadMode |= gdcm::LD_NOSHADOWSEQ;
+ else
+ {
+ if ( am->ArgMgrDefined("noshadow") )
+ loadMode |= gdcm::LD_NOSHADOW;
+ if ( am->ArgMgrDefined("noseq") )
+ loadMode |= gdcm::LD_NOSEQ;
+ }
if (am->ArgMgrDefined("debug"))
gdcm::Debug::DebugOn();
// we ask for Directory parsing
dcmdir = new gdcm::DicomDir( );
- dcmdir->SetParseDir(true);
- dcmdir->SetStartMethod(StartMethod, (void *) NULL);
+ dcmdir->SetStartMethod(StartMethod);
dcmdir->SetEndMethod(EndMethod);
dcmdir->SetLoadMode(loadMode);
- dcmdir->Load(dirName);
+ dcmdir->SetDirectoryName(dirName);
+ //dcmdir->SetParseDir(true);
+ dcmdir->Load();
// ----- Check the result
delete dcmdir;
// Read from disc the just written DicomDir
- gdcm::DicomDir *newDicomDir = new gdcm::DicomDir("NewDICOMDIR");
+ gdcm::DicomDir *newDicomDir = new gdcm::DicomDir();
+ newDicomDir->SetFileName( "NewDICOMDIR" );
+ newDicomDir->Load();
if( !newDicomDir->IsReadable() )
{
std::cout<<" Written DicomDir 'NewDICOMDIR'"