]> Creatis software - gdcm.git/blobdiff - src/gdcmDocEntrySet.cxx
ENH: Untangle the transfer syntax from the Document. The Document can only read a...
[gdcm.git] / src / gdcmDocEntrySet.cxx
index 395491db1d25639679191c9f983486a8c8736452..14dea485877a3be263f870a12bb5eefa28490225 100644 (file)
@@ -3,8 +3,8 @@
   Program:   gdcm
   Module:    $RCSfile: gdcmDocEntrySet.cxx,v $
   Language:  C++
-  Date:      $Date: 2005/01/07 08:50:13 $
-  Version:   $Revision: 1.33 $
+  Date:      $Date: 2005/01/08 15:03:59 $
+  Version:   $Revision: 1.41 $
                                                                                 
   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
   l'Image). All rights reserved. See Doc/License.txt or
@@ -27,8 +27,6 @@
 #include "gdcmValEntry.h"
 #include "gdcmBinEntry.h"
 
-#include <assert.h>
-
 namespace gdcm 
 {
 
@@ -38,18 +36,18 @@ namespace gdcm
 
 /**
  * \brief   Request a new virtual dict entry to the dict set
- * @param   group     group  number of the underlying DictEntry
+ * @param   group group  number of the underlying DictEntry
  * @param   elem  element number of the underlying DictEntry
- * @param   vr     VR of the underlying DictEntry
- * @param   fourth owner group
+ * @param   vr    VR (Value Representation) of the underlying DictEntry
+ * @param   vm    VM (Value Multiplicity) of the underlying DictEntry
  * @param   name   english name
  */
 DictEntry* DocEntrySet::NewVirtualDictEntry( uint16_t group,uint16_t elem,
                                              TagName const & vr,
-                                             TagName const & fourth,
+                                             TagName const & vm,
                                              TagName const & name )
 {
-   return Global::GetDicts()->NewVirtualDictEntry(group,elem,vr,fourth,name);
+   return Global::GetDicts()->NewVirtualDictEntry(group,elem,vr,vm,name);
 }
 
 //-----------------------------------------------------------------------------
@@ -62,17 +60,16 @@ DictEntry* DocEntrySet::NewVirtualDictEntry( uint16_t group,uint16_t elem,
  * @param   elem  element number of the new Entry
  * @param   vr     VR of the new Entry 
  */
-ValEntry *DocEntrySet::NewValEntryByNumber(uint16_t group,uint16_t elem,
-                                           TagName const & vr) 
+ValEntry *DocEntrySet::NewValEntry(uint16_t group,uint16_t elem,
+                                   TagName const & vr) 
 {
-   DictEntry *dictEntry = GetDictEntryByNumber(group, elem, vr);
-   assert(dictEntry);
+   DictEntry *dictEntry = GetDictEntry(group, elem, vr);
+   gdcmAssertMacro(dictEntry);
 
    ValEntry *newEntry = new ValEntry(dictEntry);
    if (!newEntry) 
    {
-      dbg.Verbose(1, "Document::NewValEntryByNumber",
-                  "failed to allocate ValEntry");
+      gdcmVerboseMacro( "Failed to allocate ValEntry");
       return 0;
    }
    return newEntry;
@@ -87,17 +84,16 @@ ValEntry *DocEntrySet::NewValEntryByNumber(uint16_t group,uint16_t elem,
  * @param   elem  element number of the new Entry
  * @param   vr     VR of the new Entry 
  */
-BinEntry *DocEntrySet::NewBinEntryByNumber(uint16_t group,uint16_t elem,
-                                           TagName const & vr) 
+BinEntry *DocEntrySet::NewBinEntry(uint16_t group,uint16_t elem,
+                                   TagName const & vr) 
 {
-   DictEntry *dictEntry = GetDictEntryByNumber(group, elem, vr);
-   assert(dictEntry);
+   DictEntry *dictEntry = GetDictEntry(group, elem, vr);
+   gdcmAssertMacro(dictEntry);
 
    BinEntry *newEntry = new BinEntry(dictEntry);
    if (!newEntry) 
    {
-      dbg.Verbose(1, "Document::NewBinEntryByNumber",
-                  "failed to allocate BinEntry");
+      gdcmVerboseMacro( "Failed to allocate BinEntry");
       return 0;
    }
    return newEntry;
@@ -110,16 +106,15 @@ BinEntry *DocEntrySet::NewBinEntryByNumber(uint16_t group,uint16_t elem,
  * @param   group group   number of the new Entry
  * @param   elem  element number of the new Entry
  */
-SeqEntry* DocEntrySet::NewSeqEntryByNumber(uint16_t group,uint16_t elem) 
+SeqEntry* DocEntrySet::NewSeqEntry(uint16_t group,uint16_t elem) 
 {
-   DictEntry *dictEntry = GetDictEntryByNumber(group, elem, "SQ");
-   assert(dictEntry);
+   DictEntry *dictEntry = GetDictEntry(group, elem, "SQ");
+   gdcmAssertMacro(dictEntry);
 
    SeqEntry *newEntry = new SeqEntry( dictEntry );
    if (!newEntry)
    {
-      dbg.Verbose(1, "Document::NewSeqEntryByNumber",
-                  "failed to allocate SeqEntry");
+      gdcmVerboseMacro( "Failed to allocate SeqEntry");
       return 0;
    }
    return newEntry;
@@ -134,43 +129,51 @@ SeqEntry* DocEntrySet::NewSeqEntryByNumber(uint16_t group,uint16_t elem)
  * @param   elem element number of the searched DictEntry
  * @return  Corresponding DictEntry when it exists, NULL otherwise.
  */
-DictEntry *DocEntrySet::GetDictEntryByNumber(uint16_t group,uint16_t elem) 
+DictEntry *DocEntrySet::GetDictEntry(uint16_t group,uint16_t elem) 
 {
    DictEntry *found = 0;
    Dict *pubDict = Global::GetDicts()->GetDefaultPubDict();
    if (!pubDict) 
    {
-      dbg.Verbose(0, "Document::GetDictEntry",
-                     "we SHOULD have a default dictionary");
+      gdcmVerboseMacro( "We SHOULD have a default dictionary");
    }
    else
    {
-      found = pubDict->GetDictEntryByNumber(group, elem);  
+      found = pubDict->GetDictEntry(group, elem);  
    }
    return found;
 }
 
-DictEntry *DocEntrySet::GetDictEntryByNumber(uint16_t group, uint16_t elem,
+DictEntry *DocEntrySet::GetDictEntry(uint16_t group, uint16_t elem,
                                              TagName const & vr)
 {
-   DictEntry *dictEntry = GetDictEntryByNumber(group,elem);
+   DictEntry *dictEntry = GetDictEntry(group,elem);
    DictEntry *goodEntry = dictEntry;
-   std::string goodVR=vr;
+   std::string goodVR = vr;
 
-   if (elem==0x0000)
-      goodVR="UL";
+   if (elem == 0x0000) goodVR="UL";
 
-   if (goodEntry)
-      if (goodEntry->GetVR() != goodVR && goodVR!=GDCM_UNKNOWN)
-         goodEntry=NULL;
+   if ( goodEntry )
+   {
+      if ( goodVR != goodEntry->GetVR()
+        && goodVR != GDCM_UNKNOWN )
+      {
+         goodEntry = NULL;
+      }
+   }
 
    // Create a new virtual DictEntry if necessary
    if (!goodEntry)
    {
       if (dictEntry)
-         goodEntry = NewVirtualDictEntry(group, elem, goodVR,"FIXME",dictEntry->GetName());
+      {
+         goodEntry = NewVirtualDictEntry(group, elem, goodVR, "FIXME", 
+                                         dictEntry->GetName() );
+      }
       else
+      {
          goodEntry = NewVirtualDictEntry(group, elem, goodVR);
+      }
    }
 
    return goodEntry;