]> Creatis software - gdcm.git/blobdiff - TODO
* src/gdcmElValSet.cxx, gdcmFile.cxx: JPR bug fix, removal of
[gdcm.git] / TODO
diff --git a/TODO b/TODO
index 42235948c17e1961c6524bd43c7bf5235805d538..4a208ce45e71d7b454f77bb83f35f059fa87a870 100644 (file)
--- a/TODO
+++ b/TODO
@@ -1,22 +1,72 @@
+* Split gdcmHeader through inheritance to create gdcmHeaderHelper
+  that would regroup all the heuristics above a gdcmHeader e.g. the
+  functions GetXsize(), GetXSpacing(), GetXImagePosition()...
+  Those functions are the one using the results of the parsing as
+  done by gdcmHeader to provide the user with heuristics above various
+  values found in the header (the simplest form being to default a value).
+* vtk/vtkGdcmHeader.cxx: if speed becomes a concern some changes can
+  be made a 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...
+* 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* !
+* 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
+  be moved away to ElValue class on condition of transmitting the
+  gdcmHeader.fp attribute. This change should be considered since it
+  would allow those method to avoid artificial calls to ElValue::GetElement(),
+  ElValue::GetVR()...
+* Eat leanding_trailing_whitespace (found in python/gdcmPython/gdcmi) should
+  be used when parsing the dictionary in C++ !
 * Group length is not a unique tag in a file. Hence avoid putting it
   in the element values dictionary without doing something smarter
   (say, instead of storing the length store the group and the length
    so we can related a length to a group).
+* 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 an element
+  the content is unfound ! Find a decent way of loading the value on
+  explicit demand.
+* JPR: fournir une method qui ne fait que lire les elements passes en arguments
+  sous forme d'une liste.
+* 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();
 
-GetPubElValByNumber doit faire la difference entre chaine vide 
-et chaine pas touve''. Eventuellement raiser une exception ?
+   Anonymize(ostream& output) {
+      a = gdcmFile("toto1");
+      a.SetPubValueByName("Patient Name", "");
+      a.SetPubValueByName("Date", "");
+      a.SetPubValueByName("Study Date", "");
+      a.write(output);
+   }
 
-gdcmHeader::ReadNextElement: retarder le stockage en mem des gros elements
- * etablir une taille limite sur les elements a ramener en memoire
-   (parametrisable en public dans la classe)
- * ne pas ramener les elements au dela de ce seuil, mais les flaguer
-   comme a charger plus tard
- * a l'acces (pour le groupe des pixels par exemple) retourner au fichier
-   pour trouver la bonne valeur (GetPixelData).
- * fournir une method qui ne fait que lire les elements passes en arguments
-   sous forme d'une liste.
-
-grep str2num *.cxx: c'est une macro sans doute proprifiable
-
-gdcmHeader::CheckSwap() dans le cas ACR pas propre, degager tout de suite 
-si on a deduit que c'en est pas...