]> Creatis software - gdcm.git/blobdiff - src/gdcmDocEntrySet.cxx
BUG: lgr -> len
[gdcm.git] / src / gdcmDocEntrySet.cxx
index 04dc3a1d9e0e7d3d696886a0ceb7e26672b2f5b9..2f0de0e39d730c292ade0fa7c22ee7fdb6c4c0ee 100644 (file)
@@ -3,8 +3,8 @@
   Program:   gdcm
   Module:    $RCSfile: gdcmDocEntrySet.cxx,v $
   Language:  C++
-  Date:      $Date: 2005/02/04 14:49:01 $
-  Version:   $Revision: 1.53 $
+  Date:      $Date: 2005/02/11 15:22:18 $
+  Version:   $Revision: 1.55 $
                                                                                 
   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
   l'Image). All rights reserved. See Doc/License.txt or
@@ -129,7 +129,7 @@ BinEntry *DocEntrySet::GetBinEntry(uint16_t group, uint16_t elem)
    DocEntry *currentEntry = GetDocEntry(group, elem);
    if ( !currentEntry )
    {
-      gdcmVerboseMacro( "No corresponding BinEntry " << std::hex << group <<
+      gdcmWarningMacro( "No corresponding BinEntry " << std::hex << group <<
                          "," << elem);
       return NULL;
    }
@@ -150,7 +150,7 @@ SeqEntry *DocEntrySet::GetSeqEntry(uint16_t group, uint16_t elem)
    DocEntry *currentEntry = GetDocEntry(group, elem);
    if ( !currentEntry )
    {
-      gdcmVerboseMacro( "No corresponding SeqEntry " << std::hex << group <<
+      gdcmWarningMacro( "No corresponding SeqEntry " << std::hex << group <<
                         "," << elem);
       return NULL;
    }
@@ -172,7 +172,7 @@ bool DocEntrySet::SetValEntry(std::string const &content,
    ValEntry *entry = GetValEntry(group, elem);
    if (!entry )
    {
-      gdcmVerboseMacro( "No corresponding ValEntry " << std::hex << group <<
+      gdcmWarningMacro( "No corresponding ValEntry " << std::hex << group <<
                          "," << elem << " element (try promotion first).");
       return false;
    }
@@ -194,7 +194,7 @@ bool DocEntrySet::SetBinEntry(uint8_t *content, int lgth,
    BinEntry *entry = GetBinEntry(group, elem);
    if (!entry )
    {
-      gdcmVerboseMacro( "No corresponding ValEntry " << std::hex << group <<
+      gdcmWarningMacro( "No corresponding ValEntry " << std::hex << group <<
                         "," << elem << " element (try promotion first).");
       return false;
    }
@@ -268,7 +268,7 @@ ValEntry *DocEntrySet::InsertValEntry(std::string const &value,
       {
          if( !RemoveEntry(currentEntry) )
          {
-            gdcmVerboseMacro( "Removal of previous DocEntry failed.");
+            gdcmWarningMacro( "Removal of previous DocEntry failed.");
 
             return NULL;
          }
@@ -282,7 +282,7 @@ ValEntry *DocEntrySet::InsertValEntry(std::string const &value,
 
       if ( !AddEntry(valEntry) )
       {
-         gdcmVerboseMacro("AddEntry failed although this is a creation.");
+         gdcmWarningMacro("AddEntry failed although this is a creation.");
 
          delete valEntry;
          return NULL;
@@ -328,7 +328,7 @@ BinEntry *DocEntrySet::InsertBinEntry(uint8_t *binArea, int lgth,
       {
          if( !RemoveEntry(currentEntry) )
          {
-            gdcmVerboseMacro( "Removal of previous DocEntry failed.");
+            gdcmWarningMacro( "Removal of previous DocEntry failed.");
 
             return NULL;
          }
@@ -342,7 +342,7 @@ BinEntry *DocEntrySet::InsertBinEntry(uint8_t *binArea, int lgth,
 
       if ( !AddEntry(binEntry) )
       {
-         gdcmVerboseMacro( "AddEntry failed allthough this is a creation.");
+         gdcmWarningMacro( "AddEntry failed allthough this is a creation.");
 
          delete binEntry;
          return NULL;
@@ -372,7 +372,7 @@ BinEntry *DocEntrySet::InsertBinEntry(uint8_t *binArea, int lgth,
 }  
 
 /**
- * \brief   Modifies the value of a given Header Entry (Dicom Element)
+ * \brief   Modifies the value of a given Doc Entry (Dicom Element)
  *          when it exists. Creates it when unexistant.
  * @param   group   Group number of the Entry 
  * @param   elem  Element number of the Entry
@@ -382,7 +382,7 @@ BinEntry *DocEntrySet::InsertBinEntry(uint8_t *binArea, int lgth,
 SeqEntry *DocEntrySet::InsertSeqEntry(uint16_t group, uint16_t elem)
 {
    SeqEntry *seqEntry = 0;
-   DocEntry *currentEntry = GetDocEntry( group, elem);
+   DocEntry *currentEntry = GetDocEntry( group, elem );
 
    // Verify the currentEntry
    if( currentEntry )
@@ -391,15 +391,14 @@ SeqEntry *DocEntrySet::InsertSeqEntry(uint16_t group, uint16_t elem)
 
       // Verify the VR
       if( seqEntry )
-         if( seqEntry->GetVR()!="SQ" )
-            seqEntry = NULL;
+         seqEntry = NULL;
 
-      // if currentEntry doesn't correspond to the requested valEntry
+      // if currentEntry doesn't correspond to the requested seqEntry
       if( !seqEntry )
       {
          if (!RemoveEntry(currentEntry))
          {
-            gdcmVerboseMacro( "Removal of previous DocEntry failed.");
+            gdcmWarningMacro( "Removal of previous DocEntry failed.");
 
             return NULL;
          }
@@ -412,14 +411,19 @@ SeqEntry *DocEntrySet::InsertSeqEntry(uint16_t group, uint16_t elem)
 
       if( !AddEntry(seqEntry) )
       {
-         gdcmVerboseMacro( "AddEntry failed allthough this is a creation.");
+         gdcmWarningMacro( "AddEntry failed allthough this is a creation.");
 
          delete seqEntry;
          return NULL;
       }
    }
+
+   // TODO : Find a trick to insert a SequenceDelimitationItem 
+   //       in the SeqEntry, at the end.
    return seqEntry;
 } 
+
+
  
 /**
  * \brief   Checks if a given Dicom Element exists within the H table
@@ -449,7 +453,7 @@ ValEntry *DocEntrySet::NewValEntry(uint16_t group,uint16_t elem,
    ValEntry *newEntry = new ValEntry(dictEntry);
    if (!newEntry) 
    {
-      gdcmVerboseMacro( "Failed to allocate ValEntry");
+      gdcmWarningMacro( "Failed to allocate ValEntry");
       return 0;
    }
    return newEntry;
@@ -473,7 +477,7 @@ BinEntry *DocEntrySet::NewBinEntry(uint16_t group, uint16_t elem,
    BinEntry *newEntry = new BinEntry(dictEntry);
    if (!newEntry) 
    {
-      gdcmVerboseMacro( "Failed to allocate BinEntry");
+      gdcmWarningMacro( "Failed to allocate BinEntry");
       return 0;
    }
    return newEntry;
@@ -494,7 +498,7 @@ SeqEntry* DocEntrySet::NewSeqEntry(uint16_t group, uint16_t elem)
    SeqEntry *newEntry = new SeqEntry( dictEntry );
    if (!newEntry)
    {
-      gdcmVerboseMacro( "Failed to allocate SeqEntry");
+      gdcmWarningMacro( "Failed to allocate SeqEntry");
       return 0;
    }
    return newEntry;
@@ -533,7 +537,7 @@ DictEntry *DocEntrySet::GetDictEntry(uint16_t group,uint16_t elem)
    Dict *pubDict = Global::GetDicts()->GetDefaultPubDict();
    if (!pubDict) 
    {
-      gdcmVerboseMacro( "We SHOULD have a default dictionary");
+      gdcmWarningMacro( "We SHOULD have a default dictionary");
    }
    else
    {