X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=Testing%2FTestMakeDicomDir.cxx;h=edfecb6607ad94c5d11fcddb9d6c70cf1b665219;hb=5071bc6d73c22304b8b139d040a02eb3e1f33407;hp=861b755348c1ed16ece531dc2009f6afc66c9bde;hpb=bf974e736465fcd9de7ddee123e9d7e3edc03ce6;p=gdcm.git diff --git a/Testing/TestMakeDicomDir.cxx b/Testing/TestMakeDicomDir.cxx index 861b7553..edfecb66 100644 --- a/Testing/TestMakeDicomDir.cxx +++ b/Testing/TestMakeDicomDir.cxx @@ -3,8 +3,8 @@ Program: gdcm Module: $RCSfile: TestMakeDicomDir.cxx,v $ Language: C++ - Date: $Date: 2005/06/02 09:37:50 $ - Version: $Revision: 1.3 $ + Date: $Date: 2007/06/21 14:59:06 $ + Version: $Revision: 1.13 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -19,14 +19,59 @@ #include "gdcmDicomDir.h" #include "gdcmDicomDirPatient.h" #include "gdcmDirList.h" +#include "gdcmCommandManager.h" #include "gdcmDebug.h" // --- -void StartMethod(void *startMethod) +class CommandStart : public GDCM_NAME_SPACE::Command { - (void)startMethod; - std::cout<<"Start parsing"<(GetObject()); + + if(dd) + std::cerr << "Progress parsing (" << dd->GetProgress() << ")" << std::endl; + else + std::cerr << "Progress parsing (NULL)" << std::endl; + } + +protected : + CommandProgress() {} +}; void EndMethod(void *endMethod) { @@ -59,46 +104,53 @@ int TestMakeDicomDir(int argc, char *argv[]) dirName = GDCM_DATA_ROOT; } - gdcm::DicomDir *dcmdir; - - // Old style (still available) - // - // true : we ask for Directory parsing - // dcmdir = new gdcm::DicomDir(dirName, true); + GDCM_NAME_SPACE::DicomDir *dcmdir; // new style (user is allowed no to load Sequences an/or Shadow Groups) - dcmdir = new gdcm::DicomDir( ); - dcmdir->SetParseDir(true); - // dcmdir->SetLoadMode(NO_SEQ | NO_SHADOW); + dcmdir = GDCM_NAME_SPACE::DicomDir::New( ); + + GDCM_NAME_SPACE::Command *cmd; + cmd = CommandStart::New(); + GDCM_NAME_SPACE::CommandManager::SetCommand(dcmdir,GDCM_NAME_SPACE::CMD_STARTPROGRESS,cmd); + cmd->Delete(); + cmd = CommandProgress::New(); + GDCM_NAME_SPACE::CommandManager::SetCommand(dcmdir,GDCM_NAME_SPACE::CMD_PROGRESS,cmd); + cmd->Delete(); + cmd = CommandEnd::New(); + GDCM_NAME_SPACE::CommandManager::SetCommand(dcmdir,GDCM_NAME_SPACE::CMD_ENDPROGRESS,cmd); + cmd->Delete(); + + // dcmdir->SetLoadMode(gdcm::LD_NOSEQ | gdcm::LD_NOSHADOW); // some images have a wrong length for element 0x0000 of private groups - dcmdir->SetLoadMode(NO_SEQ); - dcmdir->Load(dirName); + dcmdir->SetLoadMode(GDCM_NAME_SPACE::LD_NOSEQ); + dcmdir->SetDirectoryName(dirName); + dcmdir->Load(); - dcmdir->SetStartMethod(StartMethod, (void *) NULL); - dcmdir->SetEndMethod(EndMethod); - if ( !dcmdir->GetFirstPatient() ) { std::cout << "makeDicomDir: no patient found. Exiting." << std::endl; - delete dcmdir; + dcmdir->Delete(); return 1; } // Create the corresponding DicomDir - dcmdir->WriteDicomDir("NewDICOMDIR"); - delete dcmdir; + dcmdir->Write("NewDICOMDIR"); + dcmdir->Delete(); // Read from disc the just written DicomDir - gdcm::DicomDir *newDicomDir = new gdcm::DicomDir("NewDICOMDIR"); + GDCM_NAME_SPACE::DicomDir *newDicomDir = GDCM_NAME_SPACE::DicomDir::New(); + newDicomDir->SetFileName("NewDICOMDIR"); + newDicomDir->Load(); + if( !newDicomDir->IsReadable() ) { std::cout<<" Written DicomDir 'NewDICOMDIR'" <<" is not readable"<Delete(); return 1; } @@ -108,11 +160,11 @@ int TestMakeDicomDir(int argc, char *argv[]) <<" has no patient"<Delete(); return(1); } std::cout<Delete(); return 0; }