]> Creatis software - gdcm.git/blob - TODO
*** empty log message ***
[gdcm.git] / TODO
1 -----------------------------------------------------------------------------
2 Proposed Template of an entry in this TODO:
3 (Note: Date is the date of registering of first demand.)
4
5 -------------
6 Description:
7 Date:
8 Attributed:
9 Details:
10 Comments:
11 -------------
12
13
14 -----------------------------------------------------------------------------
15 -----------------------------------------------------------------------------
16 Description: Fix the Python wrappers
17 Date: 2004 Sep 24
18 Attributed: no
19 Details:
20 Comments:
21 -----------------------------------------------------------------------------
22 Description: clean up gdcmFile/gdcmHeader relationship
23 Date: 2004 Sep 24
24 Attributed:
25 Details:
26  * simplify the API for the user (no need to call GetImageData() before
27    calling Write().
28  * avoid memory leaks with with Pixel_Data.
29 Comments:
30 -----------------------------------------------------------------------------
31 Description: remove all autotools references
32 Date: 2004 Sep 24
33 Attributed: no
34 Details:
35 Comments:
36 -----------------------------------------------------------------------------
37 Description: introduce namespace "gdcm"
38 Date: 2004 Jul 30
39 Attributed:
40 Details:
41 Comments:
42   1/ Problem: using enum with name like 'Unknow' on .Net, or LP on cygwin 
43               causes problems.
44   2/ Question: when introducing the namespace, should we remove the gdcm
45               prefix from classes or keep it ?
46 -----------------------------------------------------------------------------
47 Description: complete the doxygen Documentation
48 Date: 2004 Sep 24
49 Attributed:
50 Details:
51 Comments:
52 -----------------------------------------------------------------------------
53 Description: test the private dictionary part.
54 Date: 2004 Sep 24
55 Attributed:
56 Details:
57 Comments:
58  * Frog: where can we obtain such a private/dictionary and the corresponding
59          Dicom file ? Any examples on-line ?
60 -----------------------------------------------------------------------------
61 Description: fix definitively the memory leaks problems.
62 Date: 2004 Sep 24
63 Attributed:
64 Details:
65 Comments:
66 -----------------------------------------------------------------------------
67 Description: test gdcm on a big endian OS.
68 Date: 2004 Sep 24
69 Attributed:
70 Details:
71 Comments:
72 -----------------------------------------------------------------------------
73 Description: More tests !
74 Date: 2004 Sep 24
75 Attributed:
76 Details:
77  * an example of new test could be to clone a Dicom image by 
78    copying gdcmDocEntry one after the other
79 Comments:
80  * look at traversal used in Example/FlatHashTablePrint.cxx
81 -----------------------------------------------------------------------------
82 Description: revoir la gestion des resources, win32 permet d'inclure des
83    fichiers texte (=dicomV3.dic) dans une dll ou quelquechose du genre.
84 Date: 2004 Sep 24
85 Attributed:
86 Details:
87 Comments:
88  * Frog: no comprendo !? De plus est-ce portable ?
89 -----------------------------------------------------------------------------
90 Description: Convert the C-like IO to C++ IO:
91 Date: 2004 Jul 30
92 Attributed:
93 Details:
94    remove all the C-oriented IO references like FILE*, fread...
95    and replace them with the C++ fstream notation.
96    Provide overload of operators << and >> for any gdcm class using file IO.
97 Comments:
98  * Question: the underlying jpeg libraries (written in C) use the FILE*
99    notation. Is there a way to still use fstream in gdcm, and 
100    build or pass the proper FILE* to jpeg libs ?
101  * Binary IO references are available at
102    http://www.angelfire.com/country/aldev0/cpphowto/cpp_BinaryFileIO.html
103 -----------------------------------------------------------------------------
104 Description: generate methods based on VM.
105 Date: 2004 Jul 30
106 Attributed:
107 Details:
108  * cmake should parse le DICOM dictionary to generate methods like
109    gdcm???::SetImagePosition(int, int)
110    {
111      //generated content do not edit
112      ...
113    }
114    gdcm???::SetImageNumber(int)
115    {
116      //generated content do not edit
117      ...
118    }
119 Comments:
120  * Regrain: a dicom dictionary entry name is NOT UNIQUE [this means
121      two tags=(group, element) can share the same name].
122      What should the wrapper do in such a case !?
123  * Frog: what does VM stand for ?
124 -----------------------------------------------------------------------------
125 Description: Add information on supported imagers (constructor/model)
126 Date: 2004 9 7
127 Attributed:
128 Details: in order to promote gdcm make a list (on the web pages)
129          of images successfully parsed based on a constructor/model ordering
130 Comments: * frog: gdcmData only lists pathological images. How to collect
131     the ones gdcm works smoothly with (hopefully gdcmData is a small
132     subset of what we would like).        
133 -----------------------------------------------------------------------------
134 Description: Add a GetVersion() global function.
135 Date: 2003 july 7
136 Attributed:
137 Details: This is to be used for version assertion with gdcmPython
138 Comments:
139 -----------------------------------------------------------------------------
140 -----------------------------------------------------------------------------
141 * vtk/vtkGdcmHeader.cxx: if speed becomes a concern some changes can
142   be made at the cost of memory consumption (refer to header of 
143   vtk/vtkGdcmHeader.cxx)
144 -----------------------------------------------------------------------------
145 * gdcmElValSet::SetElValueLengthByNumber IMNSHO should be trashed.
146   It's only purpose is a onliner substitute to calling GetElValueByNumber
147   and then SetLength. This only obfuscates the caller code more than
148   clarifying it.
149   Besides the definition of gdcmElValSet::SetElValueLengthByNumber itself
150   it quite poor since it is a almost exact copy of
151   gdcmElValSet::GetElValueByNumber except for the returned code.
152   gdcmHeader::SetPubElValLengthByNumber (which is based on 
153   gdcmElValSet::SetElValueLengthByNumber) is used nowhere...
154 -----------------------------------------------------------------------------
155 * Fix the bug in Test/bug1.cxx (see first comment line): Win32 only.
156 -----------------------------------------------------------------------------
157 * All (or at least many of) the methods of gdcmHeader whose only arguments
158   are an ElValue* (e.g.  FindLength, FindVR, LoadElementValue...) can
159   be moved away to ElValue class on condition of transmitting the
160   gdcmHeader.fp attribute. This change should be considered since it
161   would allow those method to avoid artificial calls to ElValue::GetElement(),
162   ElValue::GetVR()...
163 -----------------------------------------------------------------------------
164 * Eat leading_trailing_whitespace (found in python/gdcmPython/gdcmi) should
165   be used when parsing the dictionary in C++ !
166 -----------------------------------------------------------------------------
167 * Group length is not a unique tag in a file. Hence avoid putting it
168   in the element values dictionary without doing something smarter
169   (say, instead of storing the length store the group and the length
170    so we can related a length to a group).
171 -----------------------------------------------------------------------------
172 * GetPubElValByNumber doit faire la difference entre chaine vide 
173   et chaine pas touve''. Eventuellement raiser une exception ?
174 -----------------------------------------------------------------------------
175 * gdcmHeader::LoadElements only loads the element whose length is
176   below the specified size. When accessing the value of such an element
177   the content is unfound ! Find a decent way of loading the value on
178   explicit demand.
179 -----------------------------------------------------------------------------
180 * JPR: fournir une method qui ne fait que lire les elements passes en arguments
181   sous forme d'une liste.
182 -----------------------------------------------------------------------------
183 * JPR: gdcmHeader::CheckSwap() dans le cas ACR pas propre, degager tout de
184   suite si on a deduit que c'en est pas...
185 -----------------------------------------------------------------------------
186 * python /usr/lib/python2.2/site-packages/DaVaW/demo/dvwDcmReader.py
187   and load image /home/frog/cvs/DCMlib/Data/CT-MONO2-16-ankle.dcm
188   will yield wrong coloring scheme as opposed to 
189   affim filein=/home/frog/cvs/DCMlib/Data/CT-MONO2-16-ankle.dcm
190 -----------------------------------------------------------------------------
191 * gdcmFile should implement the following API:
192    gdcmFile WriteDicom;
193    WriteDicom.SetFileName("MyDicomFile.dcm");
194    string * AllTags = gdcmHeader.GetDcmTagNames();
195    WriteDicom.SetDcmTag(AllTags[5], "253");
196    WriteDicom.SetDcmTag("Patient Name", "bozo");
197    WriteDicom.SetDcmTag("Patient Name", "bozo");
198    WriteDicom.SetImageData(Image);
199    WriteDicom.Write();
200
201    Anonymize(ostream& output) {
202       a = gdcmFile("toto1");
203       a.SetPubValueByName("Patient Name", "");
204       a.SetPubValueByName("Date", "");
205       a.SetPubValueByName("Study Date", "");
206       a.write(output);
207    }
208 -----------------------------------------------------------------------------