]> Creatis software - gdcm.git/blob - TODO
now uses all the images of gdcmData. Frog
[gdcm.git] / TODO
1 * Remove enable_sequences and ignore_shadow from gdcmDocument().
2 * Split gdcmHeader through inheritance to create gdcmHeaderHelper
3   that would regroup all the heuristics above a gdcmHeader e.g. the
4   functions GetXsize(), GetXSpacing(), GetXImagePosition()...
5   Those functions are the one using the results of the parsing as
6   done by gdcmHeader to provide the user with heuristics above various
7   values found in the header (the simplest form being to default a value).
8 * vtk/vtkGdcmHeader.cxx: if speed becomes a concern some changes can
9   be made at the cost of memory consumption (refer to header of 
10   vtk/vtkGdcmHeader.cxx)
11 * Add a GetVersion() global function.
12 * gdcmElValSet::SetElValueLengthByNumber IMNSHO should be trashed.
13   It's only purpose is a onliner substitute to calling GetElValueByNumber
14   and then SetLength. This only obfuscates the caller code more than
15   clarifying it.
16   Besides the definition of gdcmElValSet::SetElValueLengthByNumber itself
17   it quite poor since it is a almost exact copy of
18   gdcmElValSet::GetElValueByNumber except for the returned code.
19   gdcmHeader::SetPubElValLengthByNumber (which is based on 
20   gdcmElValSet::SetElValueLengthByNumber) is used nowhere...
21 * The declarations commented out and starting with "TODO Swig" (try
22   grep "TODO Swig" *.h) needed to be temporarily removed for swig to
23   proceed correctly (in fact problems appears at loading of _gdcm.[so/dll]).
24   So, simply uncomment the declaration once you provided the definition of
25   the method...
26 * As stated by the first lines of Test/ExceptionAndPython/README, it looks
27   like we can move back to the exceptions and remove the errno stuff from
28   src/gdcm* !
29 * Fix the bug in Test/bug1.cxx (see first comment line): Win32 only.
30 * All (or at least many of) the methods of gdcmHeader whose only arguments
31   are an ElValue* (e.g.  FindLength, FindVR, LoadElementValue...) can
32   be moved away to ElValue class on condition of transmitting the
33   gdcmHeader.fp attribute. This change should be considered since it
34   would allow those method to avoid artificial calls to ElValue::GetElement(),
35   ElValue::GetVR()...
36 * Eat leanding_trailing_whitespace (found in python/gdcmPython/gdcmi) should
37   be used when parsing the dictionary in C++ !
38 * Group length is not a unique tag in a file. Hence avoid putting it
39   in the element values dictionary without doing something smarter
40   (say, instead of storing the length store the group and the length
41    so we can related a length to a group).
42 * GetPubElValByNumber doit faire la difference entre chaine vide 
43   et chaine pas touve''. Eventuellement raiser une exception ?
44 * gdcmHeader::LoadElements only loads the element whose length is
45   below the specified size. When accessing the value of such an element
46   the content is unfound ! Find a decent way of loading the value on
47   explicit demand.
48 * JPR: fournir une method qui ne fait que lire les elements passes en arguments
49   sous forme d'une liste.
50 * JPR: gdcmHeader::CheckSwap() dans le cas ACR pas propre, degager tout de
51   suite si on a deduit que c'en est pas...
52 * python /usr/lib/python2.2/site-packages/DaVaW/demo/dvwDcmReader.py
53   and load image /home/frog/cvs/DCMlib/Data/CT-MONO2-16-ankle.dcm
54   will yield wrong coloring scheme as opposed to 
55   affim filein=/home/frog/cvs/DCMlib/Data/CT-MONO2-16-ankle.dcm
56 * gdcmFile should implement the following:
57    gdcmFile WriteDicom;
58    WriteDicom.SetFileName("MyDicomFile.dcm");
59    string * AllTags = gdcmHeader.GetDcmTagNames();
60    WriteDicom.SetDcmTag(AllTags[5], "253");
61    WriteDicom.SetDcmTag("Patient Name", "bozo");
62    WriteDicom.SetDcmTag("Patient Name", "bozo");
63    WriteDicom.SetImageData(Image);
64    WriteDicom.Write();
65
66    Anonymize(ostream& output) {
67       a = gdcmFile("toto1");
68       a.SetPubValueByName("Patient Name", "");
69       a.SetPubValueByName("Date", "");
70       a.SetPubValueByName("Study Date", "");
71       a.write(output);
72    }
73
74 * use namespace for gdcm, to avoid problem when using enum with name like
75   'Unknow' on .Net, and LP on cygwin that cause problems