]> Creatis software - gdcm.git/blobdiff - TODO
* Preparation of writing a gdcmHeader iterator: generalisation of gdcmTagKey
[gdcm.git] / TODO
diff --git a/TODO b/TODO
index 5ca3f531ee1babd33810d7b7d861cc353bc9ee7b..4673dc1063c90d5278d3adcf3dd985b463d3a451 100644 (file)
--- a/TODO
+++ b/TODO
@@ -1,12 +1,35 @@
-* The declarations commented out and starting with "TODO Swig" (try
-  grep "TODO Swig" *.h) needed to be temporarily removed for swig to
-  proceed correctly (in fact problems appears at loading of _gdcm.[so/dll]).
-  So, simply uncomment the declaration once you provided the definition of
-  the method...
-* As stated by the first lines of Test/ExceptionAndPython/README, it looks
-  like we can move back to the exceptions and remove the errno stuff from
-  src/gdcm* !
-* adapt python/gdcmPython/Makefile to automake/autoconf tools
+-----------------------------------------------------------------------------
+Use namespace gdcm:
+  Problem: using enum with name like 'Unknow' on .Net, or LP on cygwin 
+           causes problems.
+  Question: when introducing the namespace, should we remove the gdcm
+            prefix from classes or keep it ?
+-----------------------------------------------------------------------------
+Convert the C-like IO to C++ IO:
+  Goal: remove all the C-oriented IO references like FILE*, fread...
+        with the C++ fstream notation. Provide overload of operators
+        << and >> for any gdcm class using file IO.
+  Question: the underlying jpeg libraries (written in C) use the FILE*
+        notation. Is there a way to still use fstream in gdcm, and 
+        build or pass the proper FILE* to jpeg libs ?
+  References:
+        binary IO are available at
+        http://www.angelfire.com/country/aldev0/cpphowto/cpp_BinaryFileIO.html
+-----------------------------------------------------------------------------
+* Clean up src/gdcmValEntry.[h|cxx] from VoidArea
+* vtk/vtkGdcmHeader.cxx: if speed becomes a concern some changes can
+  be made at the cost of memory consumption (refer to header of 
+  vtk/vtkGdcmHeader.cxx)
+* Add a GetVersion() global function.
+* gdcmElValSet::SetElValueLengthByNumber IMNSHO should be trashed.
+  It's only purpose is a onliner substitute to calling GetElValueByNumber
+  and then SetLength. This only obfuscates the caller code more than
+  clarifying it.
+  Besides the definition of gdcmElValSet::SetElValueLengthByNumber itself
+  it quite poor since it is a almost exact copy of
+  gdcmElValSet::GetElValueByNumber except for the returned code.
+  gdcmHeader::SetPubElValLengthByNumber (which is based on 
+  gdcmElValSet::SetElValueLengthByNumber) is used nowhere...
 * Fix the bug in Test/bug1.cxx (see first comment line): Win32 only.
 * All (or at least many of) the methods of gdcmHeader whose only arguments
   are an ElValue* (e.g.  FindLength, FindVR, LoadElementValue...) can
 * GetPubElValByNumber doit faire la difference entre chaine vide 
   et chaine pas touve''. Eventuellement raiser une exception ?
 * gdcmHeader::LoadElements only loads the element whose length is
-  below the specified size. When accessing the value of such a element
+  below the specified size. When accessing the value of such an element
   the content is unfound ! Find a decent way of loading the value on
   explicit demand.
-* fournir une method qui ne fait que lire les elements passes en arguments
+* JPR: fournir une method qui ne fait que lire les elements passes en arguments
   sous forme d'une liste.
-* gdcmHeader::CheckSwap() dans le cas ACR pas propre, degager tout de suite 
-  si on a deduit que c'en est pas...
+* JPR: gdcmHeader::CheckSwap() dans le cas ACR pas propre, degager tout de
+  suite si on a deduit que c'en est pas...
+* python /usr/lib/python2.2/site-packages/DaVaW/demo/dvwDcmReader.py
+  and load image /home/frog/cvs/DCMlib/Data/CT-MONO2-16-ankle.dcm
+  will yield wrong coloring scheme as opposed to 
+  affim filein=/home/frog/cvs/DCMlib/Data/CT-MONO2-16-ankle.dcm
+* gdcmFile should implement the following:
+   gdcmFile WriteDicom;
+   WriteDicom.SetFileName("MyDicomFile.dcm");
+   string * AllTags = gdcmHeader.GetDcmTagNames();
+   WriteDicom.SetDcmTag(AllTags[5], "253");
+   WriteDicom.SetDcmTag("Patient Name", "bozo");
+   WriteDicom.SetDcmTag("Patient Name", "bozo");
+   WriteDicom.SetImageData(Image);
+   WriteDicom.Write();
+
+   Anonymize(ostream& output) {
+      a = gdcmFile("toto1");
+      a.SetPubValueByName("Patient Name", "");
+      a.SetPubValueByName("Date", "");
+      a.SetPubValueByName("Study Date", "");
+      a.write(output);
+   }
+