1 2004-03-26 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
2 * src/gdcmUtil.[cxx|h] split in two. Additional file gdcmDebug.[cxx|h]
3 now contains all the Debug related code.
4 * minor clean-up of includes in src/*.cxx
6 2004-03-24 Jean-Pierre Roux
7 * FIX a lot of little surface modifications to be doxygen 1.3.6 compliant
9 2004-03-23 Jean-Pierre Roux
10 * FIX Now gdcmFile::SwapZone doesn't seg faults any longer for
11 big endian made volumes
12 * ENH Now gdcmParser constructor and destructor are protected to forbid
13 end user to instanciate class gdcmParser
14 (only gdcmHeader and gdcmDicomDir are meaningfull)
16 2004-03-22 Benoit Regrain
17 * FIX : src/gdcmDicomDir.cxx : make windows compilable
18 * FIX : gdcmPython/gdcm.i : change gdcmStudy to gdcmDicomDirStudy and
19 gdcmSerie to gdcmDicomDirSerie
21 2004-03-19 Jean-Pierre Roux
22 * ENH Now the tree-like structure describing a DICOMDIR comming from
23 an already existing DICOMDIR file is consistent with
24 the home-made tree-like structure build ex-nihilo
25 or build from the files held (recursively) in a Directory
26 functions gdcmDicomDir::CheckBoundaries()
27 gdcmObject::SetBoundaries() added
29 2004-03-17 Jean-Pierre Roux
30 * REM (Eric Boix bug) : removal of meaningless
31 gdcmDicomDirImage::NewImage function.
32 * FIX now file names and directory name are written properly in the
34 * FIX now gdcmDicomDir constructor may be call without any trick
37 2004-03-16 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
38 * FIX (JPR bug) : src/gdcmDicomDirImage.cxx added missing definition
39 of gdcmDicomDirImage::NewImage as empty function.
41 2004-02-28 Jean-Pierre Roux
43 * ENH add gdcmDicomDir:NewPatient
44 add gdcmDicomDirPatient:NewStudy
45 add gdcmDicomDirStudy:NewSerie
46 add gdcmDicomDirSerie:NewImage
47 to allow making gdcDicomDir object.
48 * ADD PrintDicomDir executable that uses gdcmDicomDir tree-like structure
49 (as opposite to the gdcmHeader chained list)
51 2004-02-11 Benoit Regrain
52 * FIX : memory leaks and the set of ArgDelete methods in gdcmDicomDir
53 when using from python
55 2004-02-10 Benoit Regrain
56 * FIX : bug fix in the gdcmDirList for the recursivity in directories
57 * FIX : in gdcmDicomDir when the directory is empty
58 * ENH : add callback and methods to get the progression of dicomDir
61 2004-02-06 Jean-Pierre Roux
62 * ENH : - now gdcmDicomDir::CreateDicomDir() returns also the meta elements
63 - GDCM_META added to gdcmDicomDirType
64 - class gdcmMeta created
65 * ENH : - A brief summary is now displayed at the beginning of
66 'testDicomDir' to help disaster magnitude estimation
67 * REM : Now useless Test/explDICOMDIR.cxx
69 2004-02-05 Benoit Regrain
70 * ENH : add methods in gdcmObject to get the hash table or the list of
72 * FIX : wrapping python for ListPatient, ListStudy, ListSerie, ListImage
73 * FIX : wrapping python for TagHeaderEntryHT
75 2004-02-04 Benoit Regrain
76 * FIX : even length for some strings when writting the dicom dir
77 * FIX : sort the images in the dicom dir
78 * FIX : Bug fix for python use of dicom dir
81 2004-02-04 Jean-Pierre Roux
82 * FIX : Final solution (?) for icone embedded images
83 * FIX : dicomVR.dic Overlay group is not *only* 6000, but 60xxx
84 (see http://medical.nema.org/dicom/2003/03_06PU.PDF)
85 add groups 6002, 6004, 6006, to allow 'clean' parsing of
86 gdcmData/gdcm-MR-SIEMENS-16.acr1
87 * ENH add gdcmData/checkWriteExplicit.sh gdcmData/checkWriteImplicit.sh
88 to make full checking easier
90 2004-02-04 Benoit Regrain
91 * FIX : WriteEntries : coding style & logic in parameters
92 * FIX : Set the elements to create the DicomDir in a dictionary file
94 2004-02-03 Benoit Regrain
95 * gdcmDirList : to parse a hard drive directory in recursive (or not)
96 * gdcmDicomDir : add the load of directory
97 * Bug fix and print add-on
99 2004-02-03 Jean-Pierre Roux
100 * ENH gdcmParser : allows "DICM" files, with NO group '0002'
101 * FIX handling 'non string elements' unsecure area (LUT, overlays, etc)
102 * FIX Dicts/dicomV3.dic : Add a few missing 'group length' Elements
103 * FIX gdcmParser.cxx : 'group length' elements are now considered
104 as integers, even for shadow groups, when file is Implicit VR
106 2004-02-02 Jean-Pierre Roux
107 * FIX : gdcmWrite : equal_range() for multimap doesn't return a 'second'
109 of the last synonym :-(
110 * FIX : gdcmWrite::WriteBase : method stops if Pixels not yet Read (except
112 * ENH gdcmData/checkWrite.sh :modif for full check of Explicit VR writting
113 * FIX taking into account the possible 7fe0,0010 multiplicity
114 * FIX add GRPixel,NumPixel,countGrPixel (gdcmParser protected members)
115 to allow removal of references to 7fe0,0010, to deal with
116 ACR-NEMA images, when 0028,0200 is meaningfull
118 2004-01-31 Jean-Pierre Roux
119 * FIX gdcmParser::WriteEntries : when a VR is tagged as 'Unknown'
120 no longer writes 'Un' on disk
121 * FIX SQ elements with actual length are now dealt with corectly
122 * FIX gdcmFile::WriteBase make the difference, for color images, between
123 the length (for Palette expanded images)
124 and Raw Length (non expanded image + Palette)
125 * FIX Dicts/dicomV3.dic : removal of 'CTX' (context dependant) VR
126 (that broke Write). Replaced by UL.
127 Aware user will reload the field if he
128 thinks it's necesssary
130 2004-01-30 Jean-Pierre Roux
131 * gdcmParser::CheckSwap() now defaults the filetype to ACR
132 when 'dirty Acr' is found, to be compliant with the new
133 IsReadable() methods.
135 * gdcmHeaderHelper :add Pixel Type 'FD', for dealing with 'double' images.
136 (no DOUBLE images in kosher DICOM,
137 but so usefull for people that miss them ;-)
139 * add Test/testDicomDir.cxx, Test/makeDicomDir.cxx , Test/explDICOMDIR.cxx
140 DICOMDIR related utilities (not checked as Windoze compliant)
142 2004-01-28 Jean-Pierre Roux
143 * upgrade GdcmHeaderEntry Print Method for DICOMDIR
145 2004-01-27 Jean-Pierre Roux
146 * gdcmParser constructor has a new boolean param,'ignore_shadow',
147 to allow skipping the shadow elements, to save memory space.
148 The TRUE value for this param has to be used
149 with a FALSE value for the 'enable_sequence' param.
150 ('public elements' may be embedded in 'shadow Sequences')
151 * gdcmHeader methods now deal with 'embedded icones images' in the header
152 (even when an 'icone image sequence' is announced by the
153 element (0x0088,0x0200), but there is NO icone at all ...
155 * gdcmHeader sometimes Image Location value doesn't follow
156 the supposed processor endianity (see gdcmData/cr172241.dcm).
159 * gdcmHeader add the method
160 IterHT GetHeaderEntrySameNumber(grPixel,numPixel);
161 to get *all* the Header Entries with the same tag.
162 GetHeaderEntrySameName is probabely *useless*
163 (no meaning : Name is *not* an identifier within the Dictionnary)
165 2004-01-26 Benoit Regrain
166 * Bug fix in the print of hexadecimal representations. Remove long fields
167 in the print and add a third level of print to print them
169 2004-01-23 Benoit Regrain
170 * Bug fix on field having a VR = 'UI'. Assume that is a string field
171 * Bug fix on test suite after remove the strip made on not string fields
172 * Split the IsReadable method between gdcmParser which test that the file
173 is dicom and gdcmHeader which test that it's an image file
175 2004-01-22 Benoit Regrain
176 * DicomDir : clean code, add methods, set variables in protected or private
177 * gdcmUtil : bug fix for the clean string method
179 2004-01-19 Benoit Regrain
180 * Add the use of shadow dictionaries
181 * bug fix and coding style
183 2004-01-19 Benoit Regrain
184 * src/gdcmFile.cxx : bug fix concerning the close of file
185 * src/gdcmParser.[h|cxx] : remove obvious Pub informations
186 * Add the update of header entries using the shadow library
188 2004-01-19 Benoit Regrain
189 * removal of file gdcmHeader2.cxx
190 * split class gdcmHeader into gdcmParser and gdcmHeader, with gdcmHeader
191 inheriting from gdcmParser. This split is to prepare the integration
193 * bug fix under python
195 2004-01-16 Jean-Pierre Roux
196 * REM removal of class gdcmHeaderEntrySet
197 * REM removal of files gdcmHeaderEntrySet.cxx, gdcmHeaderEntrySet.h
198 * ADD add file gdcmHeader2.cxx
199 * ADD add method gdcmHeader::SetPrintLevel (for PrintHeader)
201 2004-01-15 Benoit Regrain
202 * src/gdcmDicSet.[h|cxx] : add virtual entries to have a reference of
203 entries created while parsing the header. Thus, they will be destroyed
204 when the gdcmDictSet will be destroyed
205 * src/gdcmHeader.cxx, gdcmHeaderEntrySet.cxx : uses virtual entries of
208 2004-01-15 Benoit Regrain
209 * vtk/vtkGdcmReader.cxx : bug fix : before, with python only, the program
210 made a fatal error because of the memory release at the end of program.
211 The problem was in vtkGdcmReader::ExecuteData where we were allocate
212 some memory and vtk seems to have some problems with that.
213 * src/gdcmHeaderEntrySet.cxx : bug fix for std lib and cout
215 2004-01-14 Benoit Regrain
216 * src/gdcmHeaderEntry.[h|cxx] : gdcmElValue -> gdcmHeaderEntry
217 * src/gdcmHeaderEntrySet.[h|cxx] : gdcmElValSet -> gdcmHeaderEntrySet
218 * src/*.[h|cxx] : make changes due to class name changes
219 * gdcmPython/demo/*.py : bug fix due to method names
221 2004-01-13 Benoit Regrain
222 * src/*.[h|cxx] : coding style
223 * vtk/*.[h|cxx] : coding style
225 2004-01-13 Benoit Regrain
226 * gdcmPython/testSuite.py : test the readable flag of file for tests
227 * src/gdcmDict.cxx, gdcmElValSet.cxx : bug fix under windows for prints.
228 It's lied to the stl compilation by MSVC (windows, always windows...)
229 * src/gdcmIdo.h, gdcmHeaderIdo.cxx : remove the Ido unused files
231 2004-01-12 Benoit Regrain
232 * src/*.h : add comments
233 * src/gdcmDictSet.h : set the method BuildDictPath in public
234 * src/gdcmTS.cxx, gdcmVR.cxx : use now a dictionnary file other than to be
235 directly setted in the source code
236 * Dicts/dicomTS.dic, dicomVR.dic : 2 new dictionnary files loaded by
239 2004-01-09 Benoit Regrain
240 * gdcmPython/gdcmVersion.py : add a gdcmVERSION variable information
241 * setup.py : use a reference to gdcmVERSION
243 2004-01-07 Benoit Regrain
244 * Modification to compile with the distutils.
247 2003-12-10 Benoit Regrain
248 * gdcmHeader is now aggregating gdcmFile, and not derived into. Thus, we
249 can use a gdcmHeaderHelper to load datas
250 * gdcmPython/testSuite.py : make the testSuite compliant with modifications
251 made in the source code
253 2003-12-10 Benoit Regrain
254 * Update Windows projects and .cvsignore files
256 2003-11-12 Jean-Pierre Roux
257 * ENH gdcmHeader constructor has one more parameter (default value : false)
258 that allows the user to 'go inside' the SeQuences only
260 gdcmElValSet:Print takes it into account
262 2003-11-12 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
263 * ENH: Update gdcmPython/CMakeLists
264 * FIX: (gdcmHeaderHelper) GetRescale and GetSlope
265 * FIX: (gdcmElValSet) char 'tag' was overiding private members (VC++)
267 2003-11-10 Jean-Pierre Roux
268 * FIX : gdcmHeader::LoadElements is now based
269 on the ListTag listElem member,
270 not longer on the TagElValueHT tagHt member
271 * ENH : PrintPubElVal shows (temporarily) both results,
272 with the tagHt member and the listElem member.
273 (it's easier to 'see' the problems when using Printheader)
275 * FIX : old private member LgrElem is now splitted into
276 ReadLength : Length actually found on disk (updated only
277 if bug fixing is necessary), for internal
279 UsableLength : Updated by FixFoundLength, to fix a bug
280 or to allow Parser going on.
281 Will allow to re-write a kosher header when a SeQuence
282 with a length (not 0000) is found
283 Warning : gdcmFile::Write still uses the TagHt (not ListElem)
284 because gdcmElValSet::Add does not update ListElem
287 2003-11-07 Jean-Pierre Roux
288 * FIX misstyping in Transfert Syntax name table
289 * ENH gdcmHeader::FixFoundLength now allow to 'go inside' tge SeQuences
290 when they have an actual length (not 0000 nor FFFFF)
291 (Nobody should care of it, but DICOMDIR explorers)
293 2003-11-06 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
294 * ENH: vtkgdcmViewer now works with LUT dicom (OT-PAL-face ...)
296 2003-11-05 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
297 * ENH: vtkGdcmReader now supports LUT !
298 (vtkgdcmViewer for now is not able to use them though)
300 2003-11-05 Jean-Pierre Roux
301 * in testSuite.py : new files names for checking the package
302 * FIX : Forgot to commit gdcmFile::GetImageDataSizeRaw();
303 that returns the pixel area size to the *aware* (vtk) user
304 that DOESN'T want to turn the PALETTE COLOR image into an RGB image
306 2003-11-05 Benoit Regrain
307 * in testSuite.py : Modify the rules for checking the paths
308 : Explicit error messages
309 * in __init__.py : Related modif
311 2003-11-03 Jean-Pierre Roux
312 * add gdcmHeaderHelper::GetNumberOfScalarComponentsRaw()
313 to be used by aware (vtk) users that want to manage
314 LUT (and no to turn the PALETTE image into an RGB pixels one)
315 * GetPixelType now returns 8U for 24 Bits images
316 (vtkGdcmReader compliant)
318 2003-10-31 Jean-Pierre Roux
319 * Removal of *all* gdcmData images and add them again
320 in order to loose the 'history' of un-anonymised images
322 2003-10-31 Jean-Pierre Roux
323 * RMV : removal of useless jBitsInJsample.h
324 for both 8 and 12 Bits JPEG Lossy Libraries
326 2003-10-31 Jean-Pierre Roux
327 * ENH : Add the functions gdcmFile::GetImageDataRaw
328 gdcmFile::GetImageDataIntoVectorRaw
329 that act as GetImageData and GetImageDataIntoVector
330 except the making of an RGB Plane from Gray Plane + LUT
331 Intended to aware (vtk) users who know how to manage
334 GetLUTRGBA return a R,G,B,A LUT if any
335 lgrTotaleRaw gives the 'Raw' length
336 GetImageDataRaw returns the gray Plane
337 * FIX : no more dirty trick for 'Segmented xxx Palette Color Lookup' images
338 (They stay Grey, just like with other Dicom viewers :-(
340 2003-10-30 Jean-Pierre Roux
341 * FIX : a VC++ intended syntax modif broke the 12/12 Bytes expanding
343 2003-10-29 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
344 * ENH: Can be used like this '$vtkgdcmViewer *.dcm' with *.dcm
345 being coherents dicom files.
347 2003-10-29 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
348 * FIX: DOH ! Forgot about windo$e users, they couldn't read lossless jpeg,
350 * ENH: Turn it into DOS file type to match libgdcmijpeg8.dsp file type
351 * ENH: Two steps is necessary to please VC++ compiler...
352 * FIX: DOH ! libgdcmijpg8 -> libgdcmljpeg
353 * ENH: Add include dir to medcon lib
354 * FIX: only one function is being exported for now !
355 You should use GLOBAL(return type) see ljpg/jpeg.h for more info
357 2003-10-29 Jean-Pierre Roux
358 * adding gdcmHeader::GetLUTRGBA
359 returns a 4 * 256 Bytes Reg/Green/Blue/Alpha vtk compliant LUT
360 --> Mathieu, the modif u're waiting for is not yet committed
361 * removal of now useless GetLUTRed,GetLUTGreen,GetLUTBlue,GetLUTRGB
363 2003-10-27 Jean-Pierre Roux
364 * adding some xmedcon breaker files (courtesy of Loïc Boussel)
365 00191113.dcm DermaColorLossLess.dcm
366 MxTwinLossLess.dcm RadBWLossLess.dcm
367 * ENH: For version prior to vtkImageViewer2 -r 1.19
368 * FIX: avoid pb with xmedcon-breaker CT McTwin Elscint images
370 2003-10-27 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
371 * Removal of ido stuff in CMakeLists.txt
373 2003-10-24 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
374 * ENH: vtkGdcmReader.cxx can now read multiframe dicom
375 * FIX: remove a call to ->Modified ... see comments
376 * FIX: vtkgdcmViewer.cxx was writting ASCII file...this is so slooooooow !
378 2003-10-23 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
379 * FIX: Problem with path for libvtkgdcmPython
380 * ENH: Try adding a search script for python site-package
381 * RMV: Remove some file from medcon lib that are not necessary
382 * FIX: gdcm/Makefile.am fix for generating ljpg medcon
383 * ENH: CMakeLists.txt now generate 'pygdcm.so' instead of 'libpygdcm.so'
384 * FIX: More pragma disable fro VC++,
385 I don't think I break something as it is also disable in VTK/ITK.
386 But it fasten debug compilation time.
388 2003-10-23 Jean-Pierre Roux
389 * gdcm now deals with 16 Bits Run Length Encoded images
390 (they are compressed as 2 planes images,
391 one for the high Bytes, the other for low Bytes)
393 2003-10-22 Jean-Pierre Roux
394 * Now CheckRead takes into account :
395 - the bugged 'Leonardo' Siemens images
396 - the XA images, sent thru the burning VPRO station
397 * add I9000001.dcm, a GE dlx XA image, thru the VEPRO burning station
400 2003-10-22 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
401 * FIX: When copying a Makefile.am to CMakeLists.txt
402 one should remove the '\'
404 2003-10-22 Jean-Pierre Roux
405 * in gdcmData adding a bugged 'Leonardo' Siemens image
406 (wrong lengths in header)
407 OK with gdcm, KO with the other viewers :-)
408 * add a GE dlx XA image, thru the VEPRO burning station
411 2003-10-21 Jean-Pierre Roux
412 * in gdcmData add the checkvtkgdcmViewer.sh shell script
413 for a brutal checking of vtkgdcmViewer compliance
415 2003-10-21 Jean-Pierre Roux
416 * add the files for 'xmedcon' Jpeg Lossless library
417 * call of 'xmedcom' Jpeg Lossles libray (instead of the old LibIDO one)
419 2003-10-21 Jean-Pierre Roux
420 * 'Compacted Files' (12 Bits Allocate, 12 Bits Stored) are now dealt with
422 2003-10-21 Jean-Pierre Roux
423 * garbage Siemens 'Leonardo' images dealt with
424 (the patch is easy to remove)
425 * cosmetic changes to avoid warnings
427 2003-10-20 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
428 * ENH: vtkgdcmViewer now autoscale color/window level on start-up,
429 no need to press 'r' now.
431 2003-10-20 Jean-Pierre Roux
432 * upgrade of checkRead.sh checkWrite.sh according
433 to new Jpeg Lossless decompressor
434 * add US.3405.1.dcm, a genuine RGB medical file ...
435 * add gdcm-ACR-LibIDO.acr, unnormalized Rectangular LibIDO format image
436 * add CLIP0001-Sequoia-U11.dcm, US 'Clip', from SEQUOIA machine,
438 2003-10-15 Jean-Pierre Roux
439 * general anonymisation in gdcmData
440 * adding the 'color files' from
441 http://www.leadtools.com/SDK/Medical/DICOM/ltdc19.htm
442 * adding some well knowed bugged-header images
443 * adding checkRead.sk, checkReadColor.sh, checkWrite.sh,
444 waiting for their inclusion in Python testsuite
446 2003-10-15 Jean-Pierre Roux
447 * gdcmHeader::gdcmHeader(const char *InFilename, bool exception_on_error)
448 no longer seg faults when file is not found
450 2003-10-14 Jean-Pierre Roux
451 * Emprovement of reading for Dicom encapsulated Jpeg LossLess MultiFrame images
453 2003-10-14 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
454 * TODO: *.in file to genereate a UseGDCM later
456 2003-10-14 Jean-Pierre Roux
457 * Some supposed-to-be Dicom Images have no preamble.
458 OpenFile takes it into account
459 * Jpeg LossLess 24 Bits images doesn't break any longer gdcm
460 * Missing elements added in dicomV3.dic
461 (just to be affraid : have a look at
462 ftp://medical.nema.org/medical/dicom/2003/01v03dif/01v03_06.pdf
463 and do it again next year ;->
465 2003-10-13 Jean-Pierre Roux
466 * According to PS 3.3-2003 C.11.1.1.2 p 619, when each pixel of
467 a PALETTE COLOR is stored on 2 Bytes, theese 2 Bytes must be equal.
468 But there are NOT. It's fixed !
470 2003-10-13 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
471 * FIX: "jpeglib.h" was not found on VC++
472 * FIX: vtkgdcm was not being installed
474 2003-10-10 Jean-Pierre Roux
475 * ENH : OpenFile closes the file if it *really* doesn't look like
476 an ACR-NEMA / DICOM one.
477 * FIX : testWrite no longer writes an empty file if the source file
479 * ENH : One more JPEG LossLess type "JPEG Baseline (Process 14)"
482 2003-10-10 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
483 * FIX: CMake generate now documentation
484 * ENH: out of source doc build !
485 * ENH: Generate both user and dev documentation
486 * ENH: Should work on windows too
487 * ENH: Only one doxygen config.in file is needed
488 * FIX: make install should be ok now on ùnix plateform
489 * FIX: PATH to dictionary was wrong (missing /)
490 * ENH: OpenFile, return true if the file looks like an ACR or DICOM file
492 2003-10-09 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
493 * vtkGdcmReader is now able to read rgb dicom file.
494 * src/gdcmHeaderHelper : GetNumberOfScalarComponents()
495 * added a gdcmViewer to vtk test, use mouse to control
496 window level & window width
498 2003-10-09 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
499 * CMake-ification of gdcm, we have now two build system
500 * FIX: on cygwin Wsock32 doesn't exist
501 * FIX: force jpeg dir to the local one (gdcm/src/jpeg)
503 2003-10-06 Emanuel Ollart
504 * FIX : compilation process wad broken.
505 Changed gdcmViewer_sources to vtkgdcmViewer_sources
507 2003-10-06 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
508 * change gdcmViewer -> vtkgdcmViewer
509 * change GetXSpacing and GetYSpacing "%f\\%" is parsed backward
511 2003-10-06 Jean-Pierre Roux
512 * FIX :A few nasty patches to allow the reading of a lot of nasty images
513 ( e.g : well known GE images with a wrong elem length,
514 : Philips MRI Images with a wrong Huffman table)
515 * still to be done : allow the reading of bugged LEONARDO Siemens images
517 2003-10-03 Jean-Pierre Roux
518 * Odd length strings are padded with '\0' (not with spaces,
519 to remain compliant with already defined strings,
520 like Transfert Syntax UID and others)
522 2003-10-03 Jean-Pierre Roux
523 * ENH :gdcmHeaderHelper::GetNumberOfScalarComponents() added,
524 to allow displaying RGB images (not only by affim ;-)
526 2003-10-03 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
527 * vtkGdcmReader is now able to read rgb dicom file.
528 * src/gdcmHeaderHelper : GetNumberOfScalarComponents()
530 2003-10-03 Jean-Pierre Roux
531 * A few nasty patches to allow the reading of a lot of nasty images
532 ( e.g : well known GE images with a wrong elem length,
533 : Philips MRI Images with a wrong Huffman table)
534 * still to be done : allow the reading of bugged LEONARDO Siemens images
536 2003-10-03 Jean-Pierre Roux
537 * One more JPEG LossLess type "JPEG Baseline (Process 14)" is now decoded.
539 2003-10-03 Jean-Pierre Roux
540 * gdcmHeaderHelper::GetNumberOfScalarComponents() added,
541 to allow displaying RGB images (not only by affim ;-)
543 2003-10-03 Jean-Pierre Roux
544 * gdcmFile::GetImageDataIntoVector now
545 - deals with MultiFrames MultiFragments Run Length Encoded files
546 - deals with YcBcR (YBR_FULL) files
547 - deals with YBR_YBR_FULL_422 files (they work as RBG files ?!?)
548 WARNING : nothing was checked for YBR_PARTIAL_422, YBR_ICT, YBR_RCT files.
551 2003-10-02 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
552 * src/*.cxx removed pragma thingies to src/gdcmCommon.h
553 Two reasons: - clear things
554 - third parties acces gdcm through header files, so won't
555 suffer anymore VC++ complains
557 2003-09-30 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
558 * add argv[1] in testvtkGdcmReader.cxx
561 2003-09-24 Jean-Pierre Roux
562 * The lines are now eigthy characters long.for
563 gdcmHeader.cxx gdcmHeaderHelper.cxx gdcmParse.cxx
565 2003-09-22 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
566 * src/gdcmUtil.[cxx|h] : change the _CreateCleanString return value from
567 char* to std::string. Thus, the use of strdup becomes useless. (see
568 previous commis of Malaterre)
569 * src/gdcmElValSet.cxx : reuse commented call to _CreateCleanString like
570 before the last Malaterre's commit.
572 2003-09-19 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
573 * This commit should fix the Debug building under VC++, the problem
574 was mainly a mixture of debug and release lib being loaded at startup.
575 * I also remove a depency to a specific C function: strdup. Because I had
576 to force the link to msvcrtd (whereas strdup is in libc).
578 2003-09-16 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
579 * "gdcm::Unfound" string changed to a constant variable (GDCM_UNFOUND)
580 located in the gdcmCommon.h file. All use of reference of tha has been
581 changed to now use the variable GDCM_UNFOUND.
583 2003-09-16 Eric Boix <Eric.Boix@creatis.insa-lyon.fr> with JPR
585 - gdcmPython/testSuite.py adapted to the JPR updated Dicts/dicomV3.dic
586 Dicom dictionary. The test suite can now be run again. Note:
587 I'm note very happy with the " (RET)" changes. I believe this
588 RETAINED comment should be dropped when parsing the dictionary.
591 - AUTHORS updated and now in alphabetical order
592 * Makefile.am now exports gdcm.dsw for Windoze users.
594 2003-09-11 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
595 * cygwin complains about missing std:: in subdir Test/
597 2003-09-10 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
598 * remove some methods that are now in gdcmHeaderHelper
600 2003-09-10 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
601 * vtkGdcmReader set spacing and origin correctly
603 2003-09-09 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
604 * Fix a few delete/delete[] mismatch
606 2003-09-08 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
607 * src/gdcmHeaderHelper.[h cxx]: added new class that provide an
608 interpretation to data given by gdcmHeader. For instance there are
609 heuristics to get informations (look at different places).
610 * it also include a specific class: gdcmSerieHeaderHelper devoted to
611 sorting DICOM images based on different strategies.
612 * modified Makefiles accordingly.
614 2003-09-05 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
615 * src/*.cxx : added pragma disable 4786/4251 to get rid of ~4300 warning
616 when building in debug mode
617 * vtk/win32/vtkgdcm.dsp : change /MT -> /MD and /MTd -> /MDd to match
618 src/win32/gdcmdll.dsp
619 * vtk/win32/vtkgdcm.dsp : added /nodefaultlib "mscvrt" for debug mode
621 2003-08-29 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
622 * Corrected a leak in vtkGdcmREader.cxx, the pSource was find thanks to valgrind.
624 2003-07-29 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
625 * src/win32/libgdcmjpeg12.dsp was not dos format
626 * src/win32/libgdcmjpeg12.dsp : libgdcmijpeg12_EXPORTS -> LIBGDCMIJPEG12_EXPORTS
627 * src/win32/gdcmdll.dsp: + /I "..\jpeg\libijg12"
629 2003-07-29 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
630 * src/gdcmHeader.h : add std:: prefix for stl elements... like others in
632 * src/gdcmFile.cxx : bug fix in affectation type
633 * src/jpeg/libijpeg12/jmorecfg12.h : export for windows modified... like
634 in src/jpeg/libijpeg8/jmorecfg8.h (JPR : copy/paste exists !!!)
635 * Modifs of MVSC projects to compile them. Not concerning 2 identic
636 symbols... future problem ?
638 2003-07-29 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
639 * src/win32/libgdcmijpeg12.dsp was missing
640 * modified gdcm.dsw accordingly
642 2003-07-28 Mathieu Malaterre <Mathieu.Malaterre@creatis.insa-lyon.fr>
643 * src/gdcmHeader.cxx : misplaced return 0.; for ACR/NEMA
645 2003-07-24 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
646 * src/jpeg/libijg12/.cvsignore, jconfig.* : ommited files while last
647 commit of JPR (before his hollidays to facilitate our work).
648 * setup.py : bug fix in code. Modifications made while the last commit
649 of JPR. The code hasn't been tested before the commit... it's so
650 useless to make that (for best programmer that is JPR) !!!
652 2003-07-08 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
653 * tagged the current version as Version0_3 (i.e. version 0.3)
655 2003-07-08 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
656 * vtk/testvtkGdcmReader.cxx : remove a symbol that is unused
657 * src/jpeg/libijg8/jmorecfg.h : adding export symbol for windows
658 * *.dsp : modifications to use new libgdcmijpeg8 library
659 * setup.py : bug fix on VTKPATH variable
660 * PACKAGER : adding all concerning windows
662 2003-07-07 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
663 * src/gdcmElValSet.cxx, gdcmFile.cxx: JPR bug fix, removal of
665 * TODO, vtk/vtkGdcmReader.cxx: upcoming fixes comments.
666 * gdcmPython/testSuite.py: JPR bug fix, brutal erasement of
667 test suite reported error.
668 * PACKAGER file added (describes what a packager must do when
669 packaging a new release).
670 * MANIFEST.in, now declares jconfig.linux and jconfig.vc
671 * configure.in: upgraded version number to 0.3.0
672 * fixing build of rpm (through rpm -ta):
673 - Doc/Makefile.am exports proper doxygen files
674 - src/jpeg/libijg8/Makefile.am exports the include files.
676 2003-07-07 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
677 * vtk/vtkGdcmReader.cxx : bug fix when loading only 1 file.
678 * src/gdcmHeader.h : formatting code
680 2003-07-07 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
681 * vtk/vtkGdcmReader.[cxx|h] : bug fix when loading only one file.
682 We were obtaining error message from vtk. Now, creation of file list
683 is made in an internal list to prevent this problem.
684 Bug fix when output is empty.
685 Bug fix in update of progress value. Previous commit for this was a bad
687 * vtk/vtkGdcmReader.h : adding comments for InternalFileNaleList variable
689 2003-07-04 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
690 * src/gdcmHeader.h : added method to get the file name
691 * vtk/vtkGdcmReader.[cxx|h] : bug fix concerning loading of bad dicom
692 files. Added method to remove all files on the input
693 Added FIXME comment concerning the bad parsing of header made by
694 ExecuteInformation method (in ExecuteData method)
696 2003-07-03 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
697 * vtk/Makefile.am: vtkGdcmReader.h should now be cleany installed
698 when using make instal.
699 * src/gdcmFile.cxx : bug fix under Window after JPR commit
700 RQ : the JPR doesn't appear in the ChangeLog... normal for him
702 2003-07-03 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
703 * setup.py : adding include dir of jpeg lib to compile all sources
704 * */Win32/*.dsp : JPR fix for windows compilation
706 2003-07-02 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
707 * src/jpeg/libijg8/jconfig.* : JPR bug fix : now compile on both
709 * src/gdcmJpeg.cxx : JPR bug fix : erroneous include
710 * src/win32/gdcmdll.dsp : JPR fix for windows compilation
712 2003-07-02 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
713 * setup.py is again effective on un*x (takes into account the
714 addon of the jpeg library)
715 * Doc/DoxyDevelInstal.txt added (developper's raw documentation)
716 * Doc/Doxy* updated (includes above enhancements)
717 * INSTALL now points to web documentation
719 2003-07-01 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
720 * src/gdcmHeader.h doesn't make unnecessary reference to
722 * gdcmPython/Makefile.am now avoids calling the wrappers for the
724 * src/gdcm*.[cxx|h] :
725 - to allow compilation with gcc 3.x
726 -- clean up of STL usage (added explicit usage of std::)
727 -- small fixes on exceptions.
728 Note: linking not tested !
729 - clean of doxygen comments to avoid warnings at documentation
731 * vtk/vtkGdcmReader.cxx: g++ warning message clean up (platform
732 dependent convertion).
734 2003-06-20 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
735 * Clean up of previous JPR garbage commit (not even commented in the
737 - Test/Makefile.am removed the reference to unexisting testTS.cxx
738 - moved all jpeg related files from src to src/jpeg/libijg8, with
739 addition/modification of Makefile.am and configure.in.
740 - the testSuite is still brain damage (not guilty).
742 2003-06-02 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
743 * WrapVTK.py : modifications to get correctly vtk source files to
745 * vtk/vtkGdcmReader.cxx : modification for an already existing name
746 (FileName -> Filename)
748 2003-06-11 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
749 * vtk/vtkGdcmReader.[cxx/h]:
750 - UpdateProgress method should now be effective
751 - removed the limitation on having only images loaded (as opposed
753 - when building a stack of images/volume, a lesser number of
754 gdcmHeader and gdcmFile instances should be used (hopefully
755 accelerating things).
756 - when building a stack of images/volumes, files which are not
757 loadable (wrong path-filename, wrong permissions on existing file,
758 or file not parsable by gdcm) are replaced with a black image
759 in the stack (for the caller to notice the problem).
761 2003-06-03 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
762 * vtk/vtkGdcmReader.cxx: hopefully corrected Z extent.
764 2003-06-02 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
765 * vtk/vtkGdcmReader[cxx|h] : makes correct code to remove conflicts
766 between standard library (std) and vtk library (problems are found
767 under Windows... thanks Windows !)
769 2003-05-30 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
770 * vtk/vtkGdcmReader[cxx|h] should now be volume aware (read ready for
772 * gdcmPython/demo/vtkGdcmReader.py: commented lines for volume test
774 2003-05-29 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
775 * vtk/vtkGdcmReader[cxx|h] preparation addons for loading volumes.
777 2003-05-28 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
778 * When compiling with distutils (see setup.py) the C++ compiler is
779 called with different flags than the default ones (with automake).
780 In order to fix all those warning, I compiled gdcm with the command
781 make 'CXXFLAGS=-Wall -Wstrict-prototypes -D__STDC_LIMIT_MACROS'
782 and went for warning fixes:
783 - src/gdcmHeader.cxx, Test/dcm2acr.cxx, pourFindTaggs.cxx cleaned
784 up from unused variables.
785 - vtk/vtkGdcmReader.cxx: potential bug fix.
786 * src/gdcmHeader.h: Doxygen warning cleanup
788 2003-05-27 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
790 - typemaps correction to take into account the systematic replacement
791 of "using namespace std" with std:: prefix e.g. std::list,
792 std::string... (cf changes of 2003-05-21).
793 - gdcmGlob global variable of type gdcmGlobal (defined in
794 src/gdcmUtil.cxx and declared in gdcmPython/gdcm.i) is now
795 exported to Python a as cvar.
796 * gdcmPython/__init__.py now defines two functions GetPubDictTagNames()
797 and GetPubDictTagNamesByCategory() as a replacement for deprecated
798 gdcmDictSet.GetPubDictTagNames() and
799 gdcmDictSet.GetPubDictTagNamesByCategory() class functions (i.e.
801 * gdcmPython/demo/printGroupedPublicDict.py is operational again,
802 with the above changes.
804 2003-05-22 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
805 * setup.py, manifest.in : bug fix under linux
807 2003-05-22 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
808 * Modification of setup.py to compile vtk part too. Then, we have 2
809 wrappers which must work with same distutils. For that, we have a
810 generic distutils in distusiltsWrapping.py ; with :
811 - build_extWrap class to wrap generically all extensions,
812 - ExtensionWrap base class for all wrapping extension that contains
814 - Wrapper interface which wrap sources
815 + In WrapSwig.py we have extension and wrapper for Swig
816 + In WrapVTK.py we have extension and wrapper for VTK
817 * MANIFEST.in : modifications to consider vtk directory and new python
818 files for compilation
820 2003-05-21 Eric Boix <Eric.Boix@creatis.insa-lyon.fr> with Benoit Regrain
821 * Added python wrappers of vtkGdcmReader vtk class (see the
822 source in vtk/vtkGdcmReader.cxx) :
823 - vtk/Makefile.am now builds a library
824 - gdcmPython/Makefile.am now builds vtkgdcmPython a second import
825 python library (as opposed to _gdcm.so wich are the python
826 wrappers of gdcm). vtkgdcmPython.so uses the vtk python wrappers
827 (vtkWrapPython and vtkWrapPythonInit utility) to build vtkgdcmPython
829 - configure.in has an additional flag --enable-vtk that needs
830 to be set to enable compilation of vtk related code, that is:
831 + vtk/vtkGdcmReader.so and
832 + vtk/testvtkGdcmReader C++ demo of vtk wrappers of gdcm)
833 + gdcmPython/vtkgdcmPython.so (see above)
834 - gdcmPython/demo/vtkGdcmDemo.py corrected (some images cannot
835 be read when compressed or when HighBit + 1 != BitsStored),
836 - gdcmPython/demo/vtkGdcmReader.py added. This demo illustrates
837 the usage of the python wrapper of vtkGdcmReader vtk class.
838 * vtk/vtkGdcmReader.cxx: bug fixed (thanks to Benoit Regrain).
839 * src/*.[h] all occurences of stl classes are now prefixed with
840 std::, and all occurences of "using namespace std;" where removed.
841 This is to avoid pollution of global namespace in included files.
842 Apparently vtk does not avoid this pitfall: when using both
843 gdcm and vtk (as in vtk/vtkGdcmReader.cxx) this ended up in a
844 collision of various stl members (principally cout...).
845 * gdcmPython/testSuite.py now cleanly removes temprory generated
847 * gdcmPython/gdcm.i now declares a typemap for std::string (to
848 comply with above changes)
850 2003-05-12 Eric Boix <Eric.Boix@creatis.insa-lyon.fr> with JPR
851 * src/gdcmHeader>[h/cxx] added gdcmHeader::GetPixelSize()
852 * vtk/vtkGdcmReader.cxx now properly inports the image in the
853 vtk data structure (an image Flip was required).
854 * vtk/testvtkGdcmReader.cxx refers to gdcmData subdir instead of Data.
855 * cosmetic changes in documentation.
857 2003-05-7 Eric Boix <Eric.Boix@creatis.insa-lyon.fr> with JPR
858 * src/gdcmHeader.cxx: the constructor no longer exits when an
859 unexisting file is given as argument.
860 * The subdirectory Data (containing all the images used for the
861 test suite) is not part of this repository anymore. A new module
862 containing those images is now available at
863 :pserver:xxx@cvs.creatis.insa-lyon.fr:2402/cvs/public
864 with the name gdcmData.
865 All the python scripts (including the package initialisation file
866 gdcmPython/__init__.py) were adapated to take this change into
867 account (basically GDCM_DATA_PATH is now GDCM_TEST_DATA_PATH).
869 2003-05-5 Eric Boix <Eric.Boix@creatis.insa-lyon.fr> with JPR
870 * vtk subdir added. Contains vtkGdcmReader.[cxx|h] a vtk class
871 inherinting from vtkImageReader and testvtkGdcmReader.cxx a small
872 demo of the usage of this class.
873 Compilation of this vtk part is only done when using the --enable-vtk
874 at configure (or autogen.sh) stage.
876 2003-04-16 Eric Boix <Eric.Boix@creatis.insa-lyon.fr> with JPR
877 * More memory link related corrections and documentation fixes.
879 - maximum info is obtained with a command of the form:
880 valgrind --leak-check=yes --leak-resolution=high --num-callers=40
881 --show-reachable=yes PrintHeader
882 - the remaining reachable blocks seem to come from the STL
883 allocation scheme through the usage of map and list. It looks
884 like this memory cannot be freed but it is not a memory leak
885 (in fact further invocation to the STL would recollect the
886 unused memory allthough it cannot explicitely be freed).
887 * gdcmPython/demo/vtkGdcmDemo.py added: this is a small demo
888 of displaying an image parsed with gdcm and displayed with VTK.
889 Note: some images don't seem to work e.g.
890 python vtkGdcmDemo.py ../../Data/US-RGB-8-esopecho.dcm
891 * src/gdcmHeader.x: dicom_vr and Dicts are not class members anymore.
892 Allthough this weakens the semantics, it is a ditch attempt to
893 make gdcm more thread friendly.
895 2003-04-15 Eric Boix <Eric.Boix@creatis.insa-lyon.fr> with JPR
896 * Memory link hunt (by using valgrind through the command
897 valgrind --show-reachable=yes --leak-check=yes PrintHeader).
898 - added src/gdcmVR.cxx gdcmVR.h that objectify the previous
899 gdcmHeader::_dicom_vr.
900 - gdcmHeader::InitVRDict transfered as gdcmVR::gdcmVR().
901 - gdcmHeader::dicom_vr is now of type gdcmVR* as opposed to
903 - gdcmGlobal global object contained class added (see src/gdcmUtil.x)
905 2003-04-9 Eric Boix <Eric.Boix@creatis.insa-lyon.fr> with JPR
906 * src/Makefile.am now exports all the necessary include files at
910 * UpdateGroupLength replaced by new one
913 * UpdateGroupLength re-written using H-Table
914 (named UpdateGroupLengthNew untill checks are over)
916 2003-04-7 Eric Boix <Eric.Boix@creatis.insa-lyon.fr> with JPR
917 * Data/im_00001 renamed to gdcm-MR-PHILIPS-16-Multi-Seq.dcm
918 * gdcmPython/testSuite.py now include a test of gdcmFile::Write.
920 - gdcmHeader::GetPubElValSet removed.
921 - gdcmElValSet::WriteDcm, WriteAcr, WriteExplVR, revamped to
922 UpdateGroupLength, WriteElements, Write.
923 - gdcmHeader::FileType moved to gdcmCommon.h. The enum FileType
924 doesn't contain TrueDicom anymore since ExplicitVR and ImplicitVR
925 carried the same semantics.
926 - src/gdcmHeaderIdo.cxx changed accordingly.
927 - gdcmFile::WriteBase now regroups all the codes from previous
928 versions of WriteDcm, WriteDcmImplVR, and WriteACR.
929 - enum FileType moved to gdcmCommon.h
930 * src/gdcmHeader.cxx AddDefault trashed
932 * getimageDataSize now calls gdcmGetXSize
933 * Test/*.cxx changed to agree with above changes
935 2003-03-31 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
936 * src/gdcmHeader.h: LoadElements() is not a public method anymore
937 (to avoid double call by end user).
938 * Test/*.cxx LoadElements() doesn't need to be called explicitely
939 by end user, since gdcmHeader::gdcmHeader now handles it.
941 2003-03-29 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
942 * gdcm/Doc many doxygen changes:
943 - Doxyfile now has two different versions, DoxyfileUsers that generates
944 the html.users end users oriented documentation and
945 DoxyfileDeveloppers that generates the html.developper developper
946 oriented documentation.
947 - README changed accordingly
948 - requirement.txt removed (old design info moved to TODO).
949 - Additional files DoxyInstallation.txt, DoxyIntroduction.txt,
950 DoxyMainPage.txt, DoxyPython.txt provide more information.
951 - Note: the website http://www.creatis.insa-lyon.fr/Public/Gdcm/ can now
952 be updated by simply regenerating the docs with doxygen and copying
953 html.developper and html.users to tux:/home/httpd/html/Public/Gdcm
954 * src/gdcmElValSet.cxx: stl <map>.count() can only return 0 or 1. Hence
955 all the tests in the form "if (<map>.count() >1)" were removed.
956 * src/gdcmFile.cxx: cosmetic changes to avoid messages of doxygen about
957 ill-formed documentation sections.
958 * src/gdcmHeader.cxx: ditto
960 2003-03-27 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
961 * setup.py fixed for un*x (needed macro for stdint.h)
962 * Test/test.cxx renamed to PrintHeader.cxx to avoid collision on
963 un*ces with sh-utils test utility.
964 * gdcmPython/demo/test.py renamed to PrintHeader.py
965 * gdcmPython/demo/ReorganiseFiles.py new demo script added.
966 * gdcmPython/win32/gdcmpycomplet.dsp renamed to gdcmpyembedded.dsp.
967 * gdcmPython/win32/gdcmpy.dsp trashed away (brain damaged).
968 * src/gdcm*.cxx JPR's bad inclusion fixed.
970 2003-03-26 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
971 * src/gdcmHeader[h, cxx] gdcmHeader now has an IsReadable predicate.
972 * gdcmPython/demo/test.py changed accordingly.
974 2003-03-25 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
975 * gdcmPython/Makefile.am fixed linking against libstdc++
976 * gdcmPython/_gdcm.so symbolic link to gdcmPython/.libs/pygdcm.so added.
977 * Swig subdir (historical tests of swig version 1.3.17++) removed
978 * Test/testChangeEntete.cxx some lines commented out in order to make
980 * src/gdcmHeader.cxx cleaned up wild JPR's dirty kludge.
981 * src/gdcmElValSet.cxx cleaned up frog's forgotten debug message
983 2003-03-24 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
984 * src/gdcmHeader.cxx gdcmHeader::gdcmHeader now calls LoadElements(),
985 hence the user doesn't need this explicit call.
986 - gdcmPython/testSuite.py, gdcmPython/demo/*.py changed accordingly
987 i.e. LoadElements() call removed.
988 * src/gdcmCommon.h now defines UINT32_MAX (see stdint.h).
989 - src/Makefile.am declares the proper flag for g++.
990 * src/gdcmElValSet.h added gdcmElValSet::GenerateFreeTagKeyInGroup
991 for adding user defined new tags.
992 - src/gdcmHeader.cxx gdcmHeader::NewManualElValToPubDict added.
993 - src/gdcmHeader.cxx gdcmHeader::AddAndDefaultElements now
994 cleanly adds some gdcm added tags (like gdcmXSize, gdcmYSize...)
996 2003-03-17 Fabrice Bellet <Fabrice.Bellet@creatis.insa-lyon.fr>
997 * Makefile.am, acinclude.m4, configure.in, python.m4, Dicts/Makefile.am,
998 Doc/Makefile.am, Test/Makefile.am, gdcmPython/Makefile.am,
999 src/Makefile.am : the project should properly compile and install
1000 with the autotools, included the python wrappers part.
1001 * gdcm.spec.in : added a spec file for RPM packaging.
1003 2003-03-14 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
1004 * src/gdcmUtils.cxx : redifinition of defaults parameters in code
1006 2003-03-12 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
1007 * gdcmPython/__init__.py fix of GDCM_DICT_PATH which was not
1008 to exported to the environement (see gdcmPython/testSuite.py
1010 * src/gdcmElValSet.[cxx/h], gdcmElValue.[cxx/h], gdcmFile.[cxx/h],
1011 gdcmHeader.[cxx/h]: ElValSet class renamed to gdcmElValSet, and
1012 ElValue class renamed to gdcmElValue for obvious consistency reasons.
1013 * src/gdcmElValSet.cxx, src/gdcmUtil.[cxx-h] Tokenize utility function
1014 moved away from gdcmElValSet.cxx to gdcmUtil.cxx.
1016 2003-03-10 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
1017 * gdcmPython/__init__.py doesn't crash anymore when running in
1018 in InstallMode or PreInstallMode but with an environement given
1019 value of GDCM_DICT_PATH.
1020 * src/gdcmDictSet.[cxx/h] coding style.
1022 2003-03-06 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
1023 * src/gdcmHeader.h and gdcmHeader.cxx Coding style + doxigenation.
1024 * src/gdcm.h general comments moved to TODO, and README
1025 * src/gdcm.h should now be seen as a user commodity (including it
1026 should suffice to fully use gdcm). It is nowhere including within
1027 any of the kernel files src/*.cxx and src/*.h.
1029 2003-03-05 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
1030 * src/gdcm.h splitted in gdcmCommon.h, gdcmDict.h, gdcmDictEntry.h,
1031 gdcmDictSet.h, gdcmElValSet.h, gdcmElValue.h, gdcmFile.h,
1033 * src/gdcm*.cxx only include their corresponding include file
1034 (as opposed to gdcm.h)
1035 * gdcmPython/gdcm.i changed accordingly
1036 * Test/Makefile.am corrected and added NEWS, AUTHORS in order for
1037 the autogen.sh generated "make snapshot" command to work.
1038 * autogen.sh removed history related references to crea package.
1040 2003-03-04 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
1041 * distutilsSwigCPlusPlus.py work around some swig portability
1044 2003-03-03 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
1045 * Eventually, python/gdcmPython was renamed to gdcmPython. This
1046 was done in a last ditch attempt to get setup.py _really_
1047 operationnal. The python/gdcmPython layaout add the advantage
1048 of hidding away the python related distutils specific files
1049 (MANIFEST.in, setup.py, distutils*.py...) from the main directory.
1050 Alas, the src directory was out of scope (i.e. it's relative
1051 position to setup.py was ../src) which made things impossible to
1052 handle (see previous version of python/setup.py). Crossing fingers...
1054 2003-02-20 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
1055 * python/setup.py now works on Un*x. (harder than I thougth)
1056 * python/distutilsSwigCPlusPlus.py can now have include files
1057 among the list of sources.
1059 2003-02-20 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
1060 * src/gdcmHeader.cxx : bug fix - opening dicom file in binary !!!
1061 * modifications in MSVC projects
1063 2003-02-19 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
1064 * As stated by the first lines of Test/ExceptionAndPython/README, it
1065 looks like we can move back to original usage of exception within
1066 src/gdcm* and hence remove the errno stuff that was introduced
1067 as a quick and dirty fixture of this problem (added to the TODO).
1068 * Doc/Doxyfile configuration file for Doxygen and corresponding
1069 README file for usage added.
1070 * Test/testWrite.cxx added. This new test comes from a split of
1071 test.cxx that is now reverted to its original purpous i.e.
1072 testing the proper parsing of a Dicom related file.
1073 testWrite.cxx concentrates on testing the IO part of gdcm.
1074 * Test/bug1.cxx (containing a bug on WIn32) added.
1075 * src/gdcm.h, gdcmHeader.cxx, gdcmDictSet.cxx:
1076 - gdcmHeader::GetPubTagNames and gdcmHeader::GetPubTagNamesByCategory
1077 whose purpose is to publish the content of the TagNames of the
1078 Dicom public dictionnary were not accessible without an
1079 instance of class gdcmHeader.
1080 - those methods are now static methods of gdcmDictSet and hence
1081 require no instances at all to be invocated.
1082 - within gdcmDictSet this change required to change some method
1083 to class methods (i.e. are now static) among which SetDictPath
1084 (renamed to BuildDictPath) and LoadDefaultPubDict.
1085 * python/gdcmPython/demo/printGroupedPublicDict.py changed to illustrate
1086 the above changes by calling the new method classes of gdcmDictSet.
1087 * python/gdcmPython/__init__.py now exposes gdcm.gdcmDictSet for
1088 the above to be effective.
1089 * python/gdcmPython: in order to wrap properly the above changes
1090 for Python, swig version now needs to be > 1.3.17.
1091 * python/gdcmPython/Makefile fixed to adapt itself to new
1092 configure/make shema introduced by Johan Montagnat (thanks for the
1093 contribution). Alas this Makefile cannot be turned into a proper
1094 Makefile.am without some heavy changes in the configure.in
1095 (for python dectection).
1096 * python/gdcmPython/gdcm.i: the out typemap map<string, list<string>>*
1097 now avoids publishing the empty entries.
1099 2003-02-13 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
1100 * python/setup.py : bug fix concerning install under windows
1101 ExtraPath reused :-P
1102 * gdcm.dsw : bug fix concerning path for libraries for python !!!
1104 2003-02-13 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
1105 * Dicts/dicomV3.dic : remove double spaces !!!
1106 * src/gdcmElValSet.cxx : bug fix concerning windows compiler
1107 * python/gdcmPython/win32/gdcmpycomplet.dsp : bug fix concerning paths
1110 2003-01-28 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
1111 * src/gdcmHeader.cxx added a post header parsing AddAndDefaultElements
1112 method. Doxygenation.
1113 * src/gdcm.h clean up of JPR spurious comments.
1115 2003-01-17 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
1116 * python/distutilsSwigCPlusPlus.py now properly collects the
1117 shadow classes generated by "swig -c++" (gdcm.py in our case)
1118 when using "python setup.py install".
1119 * python/gdcmPython/__init__.py imports gdcm.py and only manually
1120 reexports the working classes.
1121 * src/gdcmHeader.cxx all the try/catch/throw calls were replaced
1122 by the classical C errno scheme. This is to prevent an obscure
1123 behavior of the python wrappers when importing wxPython.wx prior
1124 to gdcmPython (which ended up in an abort call). An illustration
1125 of this oddity can be found in the Test/ExceptionAndPython
1126 subdir (see the README file). This problem probably due to
1127 an combination of g++ and dynamic loading.
1128 * added Test/ExceptionAndPython (see above)
1130 2003-01-17 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
1131 * Changed the layout of the python part to avoid bloating main
1132 directory with setup.py, distutilsSwigCPlusPlus.py, MANIFEST.in
1133 i.e. the distutils arsenal. All the python related stuff is
1134 again in a python subdir, but the package itself is now in
1136 * setup.py was cleaned up:
1137 - pythonIncludePath removed
1138 - python setup.py bdist target is now functional.
1139 * gdcmPython/__init__.py doesn't export FileName any more (to avoid
1140 collision with other packages). gdcmPython/demo/*.py changed
1143 2003-01-15 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
1144 * python subdir moved to gdcmPython (preparation of distutils packaging).
1145 * gdcmPython/setup.py and distutilsSwigCPlusPlus.py added. The
1146 distutils installer is operational.
1147 * - gdcmPython/__init__.py now properly loads the swig generated
1148 shadow classes (from gdcm.py).
1149 - gdcmPython/demo/*.py changed to import the package gdcmPython
1150 instead of gdcmPython/demo/load.py.
1151 - gdcmPython/testSuite.py changed to import the package gdcmPython.
1153 2002-12-16 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
1154 * src/gdcm.h, src/gdcmHeader.cxx: added GetPubTagNames() resp.
1155 GetPubTagNamesByCategory() to gdcmHeader that return a list of the
1156 entries within the associated public Dicom dictionary resp. the same
1157 information but sorted by the fourth field (PAT, IMG, DIR) of the
1159 - Dicts/dicomV3.dic Entries which had and unspecified fourth field
1160 are now in the "???" group.
1161 - python/gdcm.i changed accordingly,
1162 - python/demo/printGroupedPublicDict.py added, that gives an example
1163 of the above new functionalities in Python.
1165 2002-12-11 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
1166 * src/gdcm.h, gdcmHeader.cxx:
1167 - historic references to glib's g_malloc and g_free (#defined)
1168 were definitively removed.
1169 - gdcm.h: cosmetic changes (part of comments moved to Doc/requirements)
1170 * src/gdcmElValSet.cxx:
1171 - GetElement(guint32, guint32) renamed to GetElementByNumber.
1172 - GetElValue(guint32, guint32) renamed to GetElValueByNumber.
1173 - GetElValue(string) renamed to GetElValueByName.
1174 - Added GetElementByName(string).
1175 * src/gdcmHeader.cxx: added
1176 - GetPubElValRepByNumber(guint16, guint16)
1177 - GetPubElValRepByName(string)
1178 - GetShaElValRepByNumber(guint16, guint16)
1179 - GetShaElValRepByName(string)
1180 - GetShaElValByNumber(guint16, guint16)
1181 - GetShaElValRepByName(string)
1182 - GetElValRepByNumber(guint16, guint16)
1183 - GetElValRepByName(string)
1184 - GetElValByNumber(guint16, guint16)
1185 - GetElValRepByName(string)
1186 * Doc/requirements.txt added.
1188 2002-12-9 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
1189 * Test/Makefile building now depends on the one of libgdcm.so
1190 * src/gdcmHeader.cxx and gdcm.h are now OB (undefined length encoded
1191 pixel data) aware which enables finding the address (offset) of
1192 the pixel data of JPEG encoded DICOM files. This leaves only a single
1193 file in the testSuite whose pixel data address (offset) is unknown.
1194 * python/testSuite.py changed accordingly.
1196 2002-12-6 Christophe Odet + Hugues Benoit-Cattin + Eric.Boix
1197 * VC++ has some strong limitations when working with the STL, as stated
1198 in http://support.microsoft.com/support/kb/articles/Q168/9/58.ASP :
1199 "Also note that some STL containers (map, set, queue, list, deque)
1200 cannot be exported. [...]
1201 Some STL classes contain nested classes. These classes can not
1203 This is caused by a designed limitation that once a template
1204 class is instantiated, it can not be re-instantiated and
1206 Since our usage of map<> is ubiquitous in gdcm, this "designed
1207 limitation" of VC++ is a pitfall.
1208 Hence the Python wrappers of gdcm cannot be incrementally linked
1209 against the c++ dynamic library. The dirty but only workaround is
1210 to forget about incremental link of dynamic libraries and to generate
1211 the Python wrappers library with the inclusions of the underlying C++
1213 The following modifications concern this matter on Win32/VC++:
1214 - wrapping python correct with standalone wrapped dll (don't use separate
1215 dll under windows !!!!)
1216 - python21_d debug mode enabled (ask Frog how to use it :-)
1217 - NO problem with having an STL member of class for example string in C++
1218 WITH THE RESTRICTION OF FORGETING ABOUT INCREMENTAL LINK.
1219 - Python test of dcmlib in Python is ok under windows on a large set
1221 * removed glib references
1222 * typedef's inserted in gdcm.i for correct swig type management
1224 2002-11-27 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
1225 * python/demo/*.py load.py extracted from test.py. Added explore.py
1226 that only displays required tags and testAll.py that parses all
1227 the files of the testsuite without using unittest.
1228 * python/testSuite.py other additional test on new files added.
1229 * Data/* new test files added accordingly to the testSuite.
1230 * src/gdcmHeader.cxx avoid overwriting of the dictionary when
1231 the vr in the file differs from the one of the dictionary.
1233 2002-11-20 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
1234 * src/gdcm.h and gdcmHeader.cxx gdcm no longer loads all the elements
1235 values, but limits itself to values which are below a user specified
1236 size (by default 1024 bytes).
1237 * python/gdcm.i : elements not loaded (because their size is above the
1238 user specified treshold) are exported with their TagKey as key of the
1239 python dictionary. This enables the testsuite to make some checks
1240 on the unloaded elements (since we have their offset and size).
1241 * python/testSuite.py
1242 - now tests for the existence and proper value of the pixel data
1243 - two new examples added.
1244 * Data/gdcm-MR-SIEMENS-16.acr[12] added.
1246 2002-11-18 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
1247 * src/gdcm.h and gdcmHeader.cxx are now "Big Endian transfer syntax"
1248 aware. See the strategy comments in gdcmHeader::FindeLength().
1249 * Test/test.cxx now accepts a filename as first argument.
1250 * Data/US-PAL-8-10x-echo.dcm and US-RGB-8-epicard.dcm added.
1251 * python/testSuite.py changed to integrate test on above files.
1253 2002-11-15 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
1254 * Dicts/dicomV3.dic removed all the trailing (RET) when the
1255 the vr was also RET.
1256 * python/testSuite.py more tests added.
1258 2002-11-14 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
1259 * python/testSuite.py unittest test suite added (uses Data)
1260 * Data/* dcm and acr files for the test suite.
1261 * glib dependance removed from un*x version. We now use ISO C99
1262 7.18 Integer types (see stdint.h)
1263 - python/Makefile, src/Makefile src/gdcm.h
1264 * src/ when an explicit vr (like dicom files) suddenly poped an
1265 implicit element we use to mark the underlying DictEntry of the
1266 concerned ElValue with "Implicit". This strategy was damageable
1267 too the public or provite dictionaries, since some of their vr
1268 would be changed. Since Header::FindLength heavily relies on the
1269 detection by Header::FindVR of falsely explicit elements, I
1270 added an extra ImplicitVr member to ElValue (boolean).
1271 The rest of the changes we the necessary adaptations.
1273 2002-11-12 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
1274 * src/gdcmHeader::FindLength bug fix when trapping falsely explicit
1276 * src/gdcmHeader::FindVR: hard way fix of falsely explicit vr files.
1278 2002-11-8 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
1279 * Adaptation for porting to VC++:
1281 o forced to use std namespace (for string to be known)
1282 o all class use __declspec export style on WIN32
1283 - src/gdcmUtil.cxx new Exit method that wraps the exit call
1284 (in stdlib.h on Win32 but in std:: for gcc)
1285 * src/gdcmDictSet::SetDictPath adds a trailing / to environement
1286 variable GDCM_DICT_PATH.
1287 * src/gdcmHeader.cxx verbose comments made discrete.
1289 2002-11-7 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
1290 * python/gdcm.i: added a typemap that converts a C++ hashing table
1291 to native Python dictionary.
1292 * python/demo/test.py:
1293 - now uses the native dictionary for exploration of gdcmHeader.
1294 - takes an optional filename argument (the file to parse).
1295 * src/gdcm.h and gdcmHeader.cxx: gdcmHeader now has an accessor on
1296 PubElVals hashing table.
1297 * Dicts/dicomV3.dic removed error prone trailing spaces.
1299 2002-11-6 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
1300 * Python wrapping process moved away from src/Makefile to
1301 newly created python/Makefile (as well as gdcm.i)
1302 * python/demo/test.py (that mirrors Test/test.cxx) is effective.
1303 * src/gdcmHeader::FindLength only looks for current vr when necessary.
1304 * src/gdcmDictSet.cxx: the dictionnaries directory path is now imported
1305 from the environement variable GDCM_DICT_PATH (when existing).
1306 * src/gdcmDict::GetTag bug fix.
1308 2002-10-31 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
1309 * Straightforward temporary fixes for swig to build the python wrappers.
1310 src/Makefile now has a python working entry [by working we mean
1311 that we can import de shadow classes without errors].
1313 2002-10-29 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
1314 * hashtest.cxx removed (since allready in Test)
1315 * src/gdcmlib.h renamed to src/gdcm.h
1316 * src/dcm.i renamed to src/gdcm.i
1317 * src/Makefile prepared for python wrapping
1319 2002-10-29 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
1320 * src/gdcmHeader.cxx :
1321 - Parsing of header is now separated from loading of element values
1322 (see gdcmHeader::LoadElements).
1323 - general clean up of hopefully all file access (creation of
1324 ReadInt16 and ReadInt32)
1326 2002-10-22 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
1327 * src/gdcmHeader.cxx :
1328 - RecupLgr renamed to FindLength and cut off with new IsAnInteger
1330 - SetLgrElem renamed to SetLength
1331 - GetLgrElem renamed to GetLength
1332 - ~gdcmHeader() made virtual to pesky warning messages at compile.
1333 * src/gdcmElValSet.cxx fixed both GetElValue methods
1334 * Dicts/dicomV3.dic falacious entry [7fe0 0010 OT PXL Pixel Data]
1335 due to IdoDude was cleaned out.
1337 2002-10-21 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
1338 * src/gdcmHeader.cxx RecupLgr split in FindVR and RecupLgr. FindVR
1339 concentrates on finding the value representation (when it exists).
1340 RecupLgr now only finds the element value length, and it avoids
1341 returning the unecessary skL (skipped length).
1342 Also, offsetCourant was simply removed (with taille_fich) since
1343 it was redundant with the File position internals (by using
1344 ftell and fseek). This also made skL (see above in RecupLgr) usage
1346 * src/gdcmHeaderIdo.cxx src/gdcmIdo.h added. Those files concentrate
1347 on the libido specificities which are handled through class
1349 * Test/implicit_vr.dcm dicom v3 in implicit value representation
1352 2002-10-17 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
1353 * Truckload of changes. Parsing of header is barely functional
1354 (see Test/test) with the standard dictionary (see Dicts/dicomV3.dic).
1356 2002-10-10 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
1357 * src/gdcmHeader.cxx many addons of low level methods
1359 2002-10-07 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
1360 * src/gdcmHeader now contains_IdDcmCheckSwap, _IdDcmRecupLgr,
1361 and _IdDcmSWAP_LONG.
1363 2002-09-12 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
1364 * This corresponds to all the changes decided at the meeting of
1365 May 23 2002. Needless to say we are running late...