Program: gdcm
Module: $RCSfile: gdcmDicomDir.cxx,v $
Language: C++
- Date: $Date: 2006/01/18 10:17:40 $
- Version: $Revision: 1.184 $
+ Date: $Date: 2006/02/16 20:06:13 $
+ Version: $Revision: 1.186 $
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See Doc/License.txt or
#else
# include <unistd.h>
#endif
+
+#if defined(__BORLANDC__)
+ #include <mem.h> // for memset
+#endif
+
// ----------------------------------------------------------------------------
// Note for future developpers
// ----------------------------------------------------------------------------
NewMeta();
}
+#ifndef GDCM_LEGACY_REMOVE
+/**
+ * \brief Constructor Parses recursively the directory and creates the DicomDir
+ * or uses an already built DICOMDIR, depending on 'parseDir' value.
+ * @param fileName name
+ * - of the root directory (parseDir = true)
+ * - of the DICOMDIR (parseDir = false)
+ * @param parseDir boolean
+ * - true if user passed an entry point
+ * and wants to explore recursively the directories
+ * - false if user passed an already built DICOMDIR file
+ * and wants to use it
+ * @deprecated use : new DicomDir() + [ SetLoadMode(lm) + ] SetDirectoryName(name)
+ * or : new DicomDir() + SetFileName(name)
+ */
+DicomDir::DicomDir(std::string const &fileName, bool parseDir ):
+ Document( )
+{
+ // At this step, Document constructor is already executed,
+ // whatever user passed (either a root directory or a DICOMDIR)
+ // and whatever the value of parseDir was.
+ // (nothing is cheked in Document constructor, to avoid overhead)
+
+ ParseDir = parseDir;
+ SetLoadMode (LD_ALL); // concerns only dicom files
+ SetFileName( fileName );
+ Load( );
+}
+#endif
+
/**
* \brief Canonical destructor
*/
}
return DoTheLoadingJob( );
}
+#ifndef GDCM_LEGACY_REMOVE
+/**
+ * \brief Loader. (DEPRECATED : kept not to break the API)
+ * @param fileName file to be open for parsing
+ * @return false if file cannot be open or no swap info was found,
+ * or no tag was found.
+ * @deprecated use SetFileName(n) + Load() instead
+ */
+bool DicomDir::Load(std::string const &fileName )
+{
+ // We should clean out anything that already exists.
+ Initialize(); // sets all private fields to NULL
+
+ SetFileName( fileName );
+ if (!ParseDir)
+ {
+ if ( ! this->Document::Load( ) )
+ return false;
+ }
+ return DoTheLoadingJob( );
+}
+#endif
/**
* \brief Does the Loading Job (internal use only)
const char *cwd = getcwd(buf, 2048);
if( cwd )
{
- SetFileName( buf ); // will be converted into a string
+ SetFileName( buf ); // will be converted into a string
}
else
{
- gdcmErrorMacro( "Path was too long to fit on 2048 bytes" );
+ gdcmErrorMacro( "Path was too long to fit on 2048 bytes" );
}
}
NewMeta();
default:
return;
}
-
+
// FIXME : troubles found when it's a SeqEntry
-
+
// removed all the seems-to-be-useless stuff about Referenced Image Sequence
// to avoid further troubles
// imageElem 0008 1140 "" // Referenced Image Sequence
{
// NULL when we Build Up (ex nihilo) a DICOMDIR
// or when we add the META elems
-
- val = header->GetEntryString(tmpGr, tmpEl);
+ val = header->GetEntryString(tmpGr, tmpEl);
}
else
{
}
if ( val == GDCM_UNFOUND)
- {
+ {
if ( tmpGr == 0x0004 ) // never present in File !
{
switch (tmpEl)