X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;ds=sidebyside;f=Example%2FMakeDicomDir.cxx;h=5cf73764724fa4490e850ab7c8545068d14b79b0;hb=910e35c51c25f53b00f7d1a126ae51a71474d0ab;hp=9f9ac06b58da7e0deef42d9ae36af37d731b4a70;hpb=bbfa3cf89fc2ede7c43259e945f021044b56069f;p=gdcm.git diff --git a/Example/MakeDicomDir.cxx b/Example/MakeDicomDir.cxx index 9f9ac06b..5cf73764 100644 --- a/Example/MakeDicomDir.cxx +++ b/Example/MakeDicomDir.cxx @@ -3,8 +3,8 @@ Program: gdcm Module: $RCSfile: MakeDicomDir.cxx,v $ Language: C++ - Date: $Date: 2005/02/02 14:26:30 $ - Version: $Revision: 1.1 $ + Date: $Date: 2005/04/14 15:15:15 $ + Version: $Revision: 1.2 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -19,6 +19,7 @@ #include "gdcmDicomDir.h" #include "gdcmDicomDirPatient.h" #include "gdcmDirList.h" +#include "gdcmDebug.h" #include @@ -45,29 +46,70 @@ void EndMethod(void *toto) { int main(int argc, char *argv[]) { - gdcm::DicomDir *dcmdir; + //gdcm::Debug::DebugOn(); std::string dirName; if (argc > 1) + { dirName = argv[1]; + } else + { dirName = GDCM_DATA_ROOT; + } - dcmdir = new gdcm::DicomDir(dirName, true); // we ask for Directory parsing + gdcm::DicomDir *dcmdir; + // we ask for Directory parsing + + // Old style (still available) : + // dcmdir = new gdcm::DicomDir(dirName, true); + + // 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->Load(dirName); dcmdir->SetStartMethod(StartMethod, (void *) NULL); dcmdir->SetEndMethod(EndMethod); - if ( !dcmdir->GetFirstEntry() ) + if ( !dcmdir->GetFirstPatient() ) { - std::cout << "makeDicomDir: no patient list present. Exiting." + std::cout << "makeDicomDir: no patient found. Exiting." << std::endl; + + delete dcmdir; return 1; } + // Create the corresponding DicomDir dcmdir->WriteDicomDir("NewDICOMDIR"); + delete dcmdir; + + // Read from disc the just written DicomDir + gdcm::DicomDir *newDicomDir = new gdcm::DicomDir("NewDICOMDIR"); + if( !newDicomDir->IsReadable() ) + { + std::cout<<" Written DicomDir 'NewDICOMDIR'" + <<" is not readable"<GetFirstPatient() ) + { + std::cout<<" Written DicomDir 'NewDICOMDIR'" + <<" has no patient"<