-GetPubElValByNumber doit faire la difference entre chaine vide
-et chaine pas touve''. Eventuellement raiser une exception ?
+-----------------------------------------------------------------------------
+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
+-----------------------------------------------------------------------------
+* 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
+ 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();
-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).
-
+ Anonymize(ostream& output) {
+ a = gdcmFile("toto1");
+ a.SetPubValueByName("Patient Name", "");
+ a.SetPubValueByName("Date", "");
+ a.SetPubValueByName("Study Date", "");
+ a.write(output);
+ }
-grep str2num *.c: 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...
-
-gdcmHeader::_IdDcmRecupLgr return type should be long int.