]> Creatis software - gdcm.git/blobdiff - Testing/TestMakeDicomDir.cxx
Add IsParsable() method, to avoid confusion with IsReadable()
[gdcm.git] / Testing / TestMakeDicomDir.cxx
index f73b0e49ad2c795537d38235de4ead2aee633c9e..0aa1ecc91b126aeecf313d12bb64841d06bcf97e 100644 (file)
@@ -3,8 +3,8 @@
   Program:   gdcm
   Module:    $RCSfile: TestMakeDicomDir.cxx,v $
   Language:  C++
-  Date:      $Date: 2005/02/02 10:41:10 $
-  Version:   $Revision: 1.1 $
+  Date:      $Date: 2005/10/25 14:52:31 $
+  Version:   $Revision: 1.10 $
                                                                                 
   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
   l'Image). All rights reserved. See Doc/License.txt or
@@ -47,7 +47,7 @@ void EndMethod(void *endMethod)
 
 int TestMakeDicomDir(int argc, char *argv[])
 {
-//   gdcm::Debug::DebugOn();
+   //gdcm::Debug::DebugOn();
    std::string dirName;   
 
    if (argc > 1)
@@ -58,11 +58,19 @@ int TestMakeDicomDir(int argc, char *argv[])
    {
       dirName = GDCM_DATA_ROOT;
    }
+   gdcm::DicomDir *dcmdir;
 
-    // we ask for Directory parsing
-    gdcm::DicomDir *dcmdir = new gdcm::DicomDir(dirName, true);
+   // new style (user is allowed no to load Sequences an/or Shadow Groups)
+   dcmdir = gdcm::DicomDir::New( );
+   // dcmdir->SetLoadMode(gdcm::LD_NOSEQ | gdcm::LD_NOSHADOW);
+   // some images have a wrong length for element 0x0000 of private groups
+   dcmdir->SetLoadMode(gdcm::LD_NOSEQ);
+   dcmdir->SetDirectoryName(dirName);
+   dcmdir->Load( );
 
-   dcmdir->SetStartMethod(StartMethod, (void *) NULL);
+   dcmdir->SetStartMethod(StartMethod);
    dcmdir->SetEndMethod(EndMethod);
    
    if ( !dcmdir->GetFirstPatient() ) 
@@ -70,23 +78,26 @@ int TestMakeDicomDir(int argc, char *argv[])
       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::DicomDir *newDicomDir = gdcm::DicomDir::New();
+   newDicomDir->SetFileName("NewDICOMDIR");
+   newDicomDir->Load();
+
    if( !newDicomDir->IsReadable() )
    {
       std::cout<<"          Written DicomDir 'NewDICOMDIR'"
                <<" is not readable"<<std::endl
                <<"          ...Failed"<<std::endl;
 
-      delete newDicomDir;
+      newDicomDir->Delete();
       return 1;
    }
 
@@ -96,12 +107,11 @@ int TestMakeDicomDir(int argc, char *argv[])
                <<" has no patient"<<std::endl
                <<"          ...Failed"<<std::endl;
 
-      delete newDicomDir;
+      newDicomDir->Delete();
       return(1);
    }
 
    std::cout<<std::flush;
-
-   delete newDicomDir;
+   newDicomDir->Delete();
    return 0;
 }