]> Creatis software - gdcm.git/blobdiff - Example/AnonymizeDicomDir.cxx
Try to make a more kosher Dicom Header (improve various UID consistebcy)
[gdcm.git] / Example / AnonymizeDicomDir.cxx
index f483ce09ce40a61ad9c730d25c245a1dd04c1a0a..02190c34f61bd63ab2c715f2d5e1533b1a2a6291 100644 (file)
@@ -3,8 +3,8 @@
   Program:   gdcm
   Module:    $RCSfile: AnonymizeDicomDir.cxx,v $
   Language:  C++
-  Date:      $Date: 2005/07/12 14:44:09 $
-  Version:   $Revision: 1.5 $
+  Date:      $Date: 2005/10/18 08:35:43 $
+  Version:   $Revision: 1.8 $
                                                                                 
   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
   l'Image). All rights reserved. See Doc/License.txt or
@@ -22,7 +22,7 @@
 
 #include "gdcmSQItem.h"
 #include "gdcmSeqEntry.h"
-#include "gdcmValEntry.h"
+#include "gdcmDataEntry.h"
 
 #include "gdcmDocument.h"
 #include "gdcmFile.h"
@@ -55,7 +55,7 @@ void AnoNoLoad(gdcm::SQItem *s, std::fstream *fp,
    if ( d == NULL)
       return;
 
-   if ( ! dynamic_cast<gdcm::ValEntry *>(d) )
+   if ( ! dynamic_cast<gdcm::DataEntry *>(d) )
       return;
 
    offset = d->GetOffset();
@@ -86,7 +86,7 @@ int main(int argc, char *argv[])
    // ----- 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;
@@ -95,10 +95,17 @@ int main(int argc, char *argv[])
  
    char *fileName  = am->ArgMgrWantString("filein",usage); 
 
+   // if unused Param we give up
+   if ( am->ArgMgrPrintUnusedLabels() )
+   { 
+      am->ArgMgrUsage(usage);
+      delete am;
+      return 0;
+   }
    delete am;  // --- we don't need Argument Manager any longer ---
 
 
-//   Read the input DICOMDIR
+   //   Read the input DICOMDIR
    gdcm::File *f;
    f = new gdcm::File( );
    f->SetLoadMode(0);
@@ -117,7 +124,7 @@ int main(int argc, char *argv[])
    {
       std::cout << "No Directory Record Sequence (0004,1220) found" <<std::endl;;
       delete f;
-      return 0;         
+      return 0;
    }
    
    gdcm::SeqEntry *s = dynamic_cast<gdcm::SeqEntry *>(e);
@@ -141,13 +148,13 @@ int main(int argc, char *argv[])
    while(tmpSI)
    {
       d = tmpSI->GetDocEntry(0x0004, 0x1430); // Directory Record Type
-      if ( gdcm::ValEntry* valEntry = dynamic_cast<gdcm::ValEntry *>(d) )
+      if ( gdcm::DataEntry *dataEntry = dynamic_cast<gdcm::DataEntry *>(d) )
       {
-         v = valEntry->GetValue();
+         v = dataEntry->GetString();
       }
       else
       {
-         std::cout << "(0004,1430) not a ValEntry ?!?" << std::endl;
+         std::cout << "(0004,1430) not a DataEntry ?!?" << std::endl;
          continue;
       }
 
@@ -170,7 +177,7 @@ int main(int argc, char *argv[])
      // Telephone
       AnoNoLoad(tmpSI, fp, 0x0010, 0x2154, oss.str()); 
 
-    // Aware use will add here more Entries if he wants to rubb them out
+      // Aware use will add here more Entries if he wants to rubb them out
 
       oss << "";
       patientNumber++;