]> Creatis software - gdcm.git/blobdiff - Example/exAnonymizeNoLoad.cxx
Unify user interface
[gdcm.git] / Example / exAnonymizeNoLoad.cxx
index 2b55850c560514e1b2ee8b85b22e7c2ca7a7941f..dece2b6a6194ccd010cdd225e50b194acb7883ef 100644 (file)
@@ -3,8 +3,8 @@
   Program:   gdcm
   Module:    $RCSfile: exAnonymizeNoLoad.cxx,v $
   Language:  C++
-  Date:      $Date: 2005/04/26 16:21:55 $
-  Version:   $Revision: 1.3 $
+  Date:      $Date: 2005/07/07 17:31:54 $
+  Version:   $Revision: 1.9 $
                                                                                 
   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
   l'Image). All rights reserved. See Doc/License.txt or
 
 int main(int argc, char *argv[])
 {  
-   gdcm::File *f1;
+   gdcm::File *f;
+    
    gdcm::Debug::DebugOn();
-   std::cout << "------------------------------------------------" << std::endl;
+
    std::cout << "Anonymize a gdcm-readable Dicom image"            << std::endl;
    std::cout << "even if pixels are not gdcm readable (JPEG2000)"  << std::endl;
    std::cout << "Warning : the image is overwritten"               << std::endl;
-   std::cout << "        : to preserve image integrity "
+   std::cout << "        : to preserve image integrity,"
              << " use exAnonymize "                                << std::endl;
+   std::cout << "------------------------------------------------" << std::endl;
  
-   if( argc < 3 )
+   if( argc < 2 )
     {
-    std::cerr << "Usage " << argv[0] << " Source image.dcm  " 
+    std::cerr << "Usage " << argv[0] << " Source Document  " 
               << std::endl;
     return 1;
     }
@@ -47,15 +48,22 @@ int main(int argc, char *argv[])
 //   Read the input image.
 // ============================================================
 
-   std::cout << argv[1] << std::endl;
-
-   f1 = new gdcm::File( fileName );
-   if (!f1->IsReadable()) {
-       std::cerr << "Sorry, " << fileName <<"  not a gdcm-readable "
-           << "DICOM / ACR File"
-                 <<std::endl;
+   f = new gdcm::File( );
+   f->SetLoadMode(NO_SEQ - NO_SHADOW);
+   f->SetFileName( fileName );
+   bool res = f->Load(); 
+
+   // gdcm::File::IsReadable() is no usable here, because we deal with
+   // any kind of gdcm::Readable *document*
+   // not only gdcm::File (as opposed to gdcm::DicomDir)
+   if ( !res ) {
+       std::cout <<std::endl
+           << "Sorry, " << fileName <<"  not a gdcm-readable "
+           << "DICOM / ACR Document"
+           <<std::endl;
+        return 1;
    }
-   std::cout << " ... is readable " << std::endl;
+   std::cout << argv[1] << " is readable " << std::endl;
 
 // ============================================================
 //   No need to load the pixels in memory.
@@ -67,15 +75,21 @@ int main(int argc, char *argv[])
 //  Choose the fields to anonymize.
 // ============================================================
    // Institution name 
-   f1->AddAnonymizeElement(0x0008, 0x0080, "Xanadoo"); 
+   f->AddAnonymizeElement( 0x0008, 0x0080, "Xanadoo" ); 
    // Patient's name 
-   f1->AddAnonymizeElement(0x0010, 0x0010, "Fantomas");   
+   f->AddAnonymizeElement( 0x0010, 0x0010, "Fantomas" );   
    // Patient's ID
-   f1->AddAnonymizeElement( 0x0010, 0x0020,"1515" );   
+   f->AddAnonymizeElement( 0x0010, 0x0020,"1515" );
+   // Patient's Birthdate
+   f->AddAnonymizeElement( 0x0010, 0x0030,"11.11.1111" );
+   // Patient's Adress
+   f->AddAnonymizeElement( 0x0010, 0x1040,"Sing-sing" );
+   // Patient's Mother's Birth Name
+   f->AddAnonymizeElement( 0x0010, 0x1060,"Vampirella" );   
    // Study Instance UID
-   f1->AddAnonymizeElement(0x0020, 0x000d, "9.99.999.9999" );
+   f->AddAnonymizeElement( 0x0020, 0x000d, "9.99.999.9999" );
    // Telephone
-   f1->AddAnonymizeElement(0x0010, 0x2154, "3615" );
+   f->AddAnonymizeElement(0x0010, 0x2154, "3615" );
   // Aware use will add new fields here
 
 
@@ -90,7 +104,7 @@ int main(int argc, char *argv[])
 
 // The gdcm::File remains untouched in memory
 
-   f1->AnonymizeNoLoad();
+   f->AnonymizeNoLoad();
 
 // No need to write the File : modif were done on disc !
 // File was overwritten ...
@@ -100,9 +114,9 @@ int main(int argc, char *argv[])
 // ============================================================
 //   Remove the Anonymize list
 // ============================================================  
-   f1->ClearAnonymizeList();
+   f->ClearAnonymizeList();
     
-   delete f1;
+   delete f;
    return 0;
 }