]> Creatis software - gdcm.git/blobdiff - src/gdcmDicomDir.cxx
Zilch.
[gdcm.git] / src / gdcmDicomDir.cxx
index c24e21989f754ab3d1e562fb221b4904d337cafc..fb566c629744cdda1fbc37418442a2c1e35e7c18 100644 (file)
 #include "gdcmDirList.h"
 #include "gdcmUtil.h"
 #include "gdcmDebug.h"
+#include "gdcmGlobal.h"
 
 //-----------------------------------------------------------------------------
 //  For full DICOMDIR description, see:
 //  PS 3.3-2003, pages 731-750
 //-----------------------------------------------------------------------------
 
+
 // Constructor / Destructor
 
 /**
- * \ingroup gdcmDicomDir
  * \brief Constructor Parses recursively the directory and creates the DicomDir
- *                        or uses an already built DICOMDIR, depending on 'parseDir' value
+ *        or uses an already built DICOMDIR, depending on 'parseDir' value.
  * @param FileName        name 
                       - of the root directory (parseDir = true)
*                      - of the root directory (parseDir = true)
  *                      - of the DICOMDIR       (parseDir = false)
  * @param parseDir boolean
  *                      - true if user passed an entry point 
@@ -74,26 +75,23 @@ gdcmDicomDir::gdcmDicomDir(const char *FileName, bool parseDir,
       if(strlen(FileName)==1 && FileName[0]=='.') { // user passed '.' as Name
                                             // we get current directory name
          char*dummy=(char*) malloc(1000);
-#ifdef _MSC_VER
-         _getcwd(dummy,(size_t)1000);
-#else
          getcwd(dummy,(size_t)1000);
-#endif
          SetFileName(dummy); // will be converted into a string
          free(dummy);        // no longer needed   
       }
 
       if(parseDir)
       {
-         dbg.Verbose(0, "gdcmDicomDir::gdcmDicomDir : Parse directory and create the DicomDir");
-        ParseDirectory();
+         dbg.Verbose(0, "gdcmDicomDir::gdcmDicomDir : Parse directory"
+                        " and create the DicomDir");
+         ParseDirectory();
       }
    }
    else {
       CreateDicomDir();
       CheckBoundaries(); // to maintain consistency between 
                          // home-made gdcmDicomDir 
-                        // and the ones comming from a DICOMDIR file
+                         // and the ones comming from a DICOMDIR file
    } 
 }
 
@@ -315,20 +313,18 @@ bool gdcmDicomDir::Write(std::string fileName)
    fwrite("DICM",4,1,fp1);
    free(filePreamble);        
    UpdateDirectoryRecordSequenceLength();
-   WriteDicomDirEntries(fp1);
+   WriteEntries(fp1);
 
    fclose(fp1);
    return true;
 }
 
 /**
- * \ingroup gdcmParser
- * \brief   writes on disc according to the DICOMDIR format
- *          using the tree-like structure
+ * \brief   Writes in a file using the tree-like structure.
  * @param   _fp already open file pointer
  */
 
-void gdcmDicomDir::WriteDicomDirEntries(FILE *_fp)
+void gdcmDicomDir::WriteEntries(FILE *_fp)
 {   
    // TODO (?) tester les echecs en ecriture 
    //          (apres chaque fwrite, dans le WriteEntry)
@@ -342,28 +338,28 @@ void gdcmDicomDir::WriteDicomDirEntries(FILE *_fp)
    
    ptrMeta= GetDicomDirMeta();
    for(i=ptrMeta->debut();i!=ptrMeta->fin();++i) {
-      WriteEntry(*i,_fp,DICOMDIR);
+      WriteEntry(*i,_fp, ExplicitVR);
    }   
     
    itPatient = GetDicomDirPatients().begin(); 
    while ( itPatient != GetDicomDirPatients().end() ) {
       for(i=(*itPatient)->debut();i!=(*itPatient)->fin();++i) {
-         WriteEntry(*i,_fp,DICOMDIR);
+         WriteEntry(*i,_fp, ExplicitVR);
       }
       itStudy = ((*itPatient)->GetDicomDirStudies()).begin();        
       while (itStudy != (*itPatient)->GetDicomDirStudies().end() ) {   
          for(i=(*itStudy)->debut();i!=(*itStudy)->fin();++i) {
-            WriteEntry(*i,_fp,DICOMDIR);
+            WriteEntry(*i,_fp, ExplicitVR);
          } 
          itSerie = ((*itStudy)->GetDicomDirSeries()).begin();
          while (itSerie != (*itStudy)->GetDicomDirSeries().end() ) {
             for(i=(*itSerie)->debut();i!=(*itSerie)->fin();++i) {
-               WriteEntry(*i,_fp,DICOMDIR);
+               WriteEntry(*i,_fp, ExplicitVR);
             }
             itImage = ((*itSerie)->GetDicomDirImages()).begin();
             while (itImage != (*itSerie)->GetDicomDirImages().end() ) {
                for(i=(*itImage)->debut();i!=(*itImage)->fin();++i) {
-                  WriteEntry(*i,_fp,DICOMDIR);
+                  WriteEntry(*i,_fp, ExplicitVR);
                }
                ++itImage;                  
            }
@@ -450,11 +446,11 @@ void gdcmDicomDir::CheckBoundaries()
             itImage = ((*itSerie)->GetDicomDirImages()).begin();
             while (itImage != (*itSerie)->GetDicomDirImages().end() ) {
                (*itImage)->ResetBoundaries(1);
-               ++itImage;                  
-           }
-           ++itSerie;                                
+               ++itImage;
+       }
+       ++itSerie;
          }
-        ++itStudy;            
+      ++itStudy;
       } 
       ++itPatient;     
    }
@@ -490,9 +486,9 @@ gdcmDicomDirPatient * gdcmDicomDir::NewPatient(void) {
       entry->SetValue(it->value);
 
       if(dictEntry->GetGroup()==0xfffe) 
-        {
-            entry->SetLength(entry->GetValue().length());       
-        }
+      {
+            entry->SetLength(entry->GetValue().length());
+      }
       else if( (dictEntry->GetVR()=="UL") || (dictEntry->GetVR()=="SL") ) 
          {
             entry->SetLength(4);