GDCM Release 2.0
GDCM release 2.0 is a complete ground up rewrite of GDCM 1.x, it's initial goal was simply to provide the same functionalities as GDCM 1.x. GDCM 2.0.x has been superseeded by the 2.2.x branche GDCM Release 2.2.
- Switching from creatis CVS server to sf.net git server
- dashboards are still running
- main platforms supported (little endian):
- debian/gcc 4.2/4.3/4.4
- WinXP/VS Express 2005/2008 & Free VC++ Toolkit 2003
what's new in GDCM 2.x that's not in GDCM 1.x ?
- Basic structures are now exposed (Tag, DataElement, Item, Sequence)
- Better support for DICOM in general (not image oriented anymore)
- Support for private tags (double key lookup), ~8000 elements are supported
- Can read/write an image without the need to decompress it first.
- support for deflated stream !
- gdcm::Scanner a super fast scanner, which scan a directory in search for particular tags
- initial wrapping of library in java and C#
- a threaded vtk reader (for advanced users only)
- a readahead daemon on linux to cache image
- a much better support for Enhanced CT/MR Image Storage (do not support intermixed volumes)
- CSA Header support (SIEMENS)
- Protocol Data Block support (GEMS)
- Part 3 implementation, see the actual XML file
- RLE encoder
- Better J2K/JPEG2000 encoder/decoder
- JPEG-LS encoder/decoder !
- a gdcmanon tool !
- ... and much more, have a look at the class list, or the list of supported files
what's missing from GDCM 1.x ?
- LOAD_MODE disappear, its use was broken anyway:
- some user assumed that LD_NOSHADOW meant that no private tag would be read, while it means only private group when group length is found would not be loaded
- some user assumed that LD_NOSEQ/LD_NOSHADOWSEQ meant that no SQ would be read, while it means that only defined length SQ would not be read
As a more general solution a gdcm::Scanner class was implemented.
what's missing in GDCM 2.x (not in GDCM 1.x) ?
Documentation / Doxygen
See FAQ entry General_questions#Is_there_support.3F
or the parent directory:
First release on the GDCM 2.0 branch
GDCM 2.0.0 will generate files that will be considered invalid with CP-882. Therefore users are urged to switch to GDCM 2.0.1 or svn trunk to solve that issue.
- A fairly large number of files have been modified (~3600 lines of unix diff -u3).
- VTK 4.4 and VTK 5 compilation issue have been solved. VTK CVS (5.2 when it comes out) remains the prefered VTK release.
- RLE image are now properly read again.
- Curve Data are now properly loaded
- Overlay Data are properly loaded and passed as Output #1 in VTK
- Fix gdcm::Directory on Win32
- PALETTE COLOR are now loaded as grayscale image with a gdcm::LookupTable attached. The old behavior of automatically applying the lut has been removed.
- mpeg2, jpegls and expat directory have been remove from the utilities. They are currently not used in the implementation of gdcm 2.0
- Big Endian image, including the GE private SOP are now properly supported.
- YBR_422_FULL in single component grayscale image is now properly handled
- Better Python wrapping for the gdcm::Scanner
- gdcm::Scanner support binary VR
- The remaining troublesome Philips -buggy- images are now dynamically handle and rewritten correctly (dcmtk can read them back).
- (0040,a125) public data element was added (not in PS 3.6 - 2008)
- Better support for looking up a PrivateTag in a dataset
- Better support for CSAHeader
- Fast path for loading raw DICOM image file
- gdcm::StringFilter Support for context dependant data element (Minor API change), those which depend on 0028,0103 (US or SS)
- BUG: YBR and PlanarConfiguration are now properly handled (were merged previously)
- More work on gdcm::Printer to try to print value contained in data field
- Better detection of binary file (when code path was checking for old ACR file)
- Fix bug when printing a gdcm::VM
- Squeeze couple of bytes in gdcm::Fragment / gdcm::BasicOffsetTable
- BUG: Fix incorrect representation for VR::UT
- NEW: Addition of a ImageFormat to the vtkGDCMImageReader to detect YBR, INVERSE_LUMINANCE and LOOKUP TABLE
- vtkGDCMImageReader: support 32bits pixel size image
- vtkGDCMImageReader: always do inplace operation to avoid extra memcpy of image (only an extra line is needed to execute the Y-Flip)
- New filter: vtkImageYBRToRGB
- Better support for spacing computation in Enhance CT & Enhance MR dataset
- Fix ZSpacing computation in gdcm::IPPSorter
- Initial implementation of gdcm::Terminal to support win32 system (console vs vt100-compatible term)
- gdcminfo app is partially implemented
- gdcm::UIDs implementation
- gdcm::Orientation implementation
And a whole bunch of bug fixes !
=> svn merge -r 3013:3387 https://gdcm.svn.sourceforge.net/svnroot/gdcm/trunk
- reimplement gdcm::UIDGenerator internals (API is preserved)
- Fix issues with reading Enhanced MR/CT Image Storage (IOP and IPP): Z-spacing was incorrect, Intercept/Slope were discared.
- Fix issues with writing Enhanced MR/CT Image Storage (IOP and IPP): Image Position (Patient) needs to be duplicate in the Per Frame SQ, Image Orientation (Patient) & Spacing needs to be in the Shared SQ.
- Fix issue with deflate syntax
- Bug fix: vtkImageData::Origin is not Image Position (Patient) when doing VTK-flip
- Big Endian machine are passing 95% of tests now.
- First pass at implementing DICOM Part 3 (accessible from python!)
- Add an example on how to decompress ELSCINT1 / PMSCT_RLE1 DICOM file
- Add an example to check if the file is a valid deflate file (will use alternate implementation of deflate algorithm: puff.c)
- Add option: GDCM_USE_SYSTEM_ZLIB, GDCM_USE_SYSTEM_EXPAT & GDCM_USE_SYSTEM_UUID (md5 lib now depend on the value for GDCM_BUILD_TESTING).
- Can now build debug gdcm/python with release python (default behavior)
- Completely fix issues with shift/scale for both reading and writing. Nightly check is done at bit level to verify no floating point error occured.
- Somewhat better install scheme when host & target are the same (detect python install path and install in proper site-package).
GDCM 2.0.5 patch 1
- Fixed missing header file in package.
- Introduce the gdcm::PythonFilter (draft)
- Fix compilation issue with mingw32 compiler on win32
- Fix padding issue for UI
- Add support for multiframes J2K
- Initial support for writing compressed lossless JPEG & reversible J2K
- vtkGDCMImageWriter would use the same UID for both Series and Study (fixed).
- New: vtkGDCMPolyDataReader for reading ContourData from RTSTRUCT objects
- BUG: gdcm::Global would initialize Dicts & Defs too late resulting in trashed structure at read time when called from multiple threads at the same time.
- BUG: Could not parse some PAPYRUS 3.0 file
- BUG: would write Rescale Slope/Intercept for no-grayscale image
- ENH: renormalize Direction Cosines when needed.
- BUG: Fix seg fault when Pixel Representation was missing
- BUG: Would not rewrite correctly some invalid Philips images. See also CheckBigEndianBug dev tool.
- ENH: Adding debian configure files to generate proper debian package (duplicate effort outside cmake for now).
- ENH: Adding 3 news executable: gdcmorthoplanes, gdcm2vtk and gdcmscene
- ENH: gdcmviewer has now an angle widget, contour widget and balloon rep (just for fun).
- BUG: vtkGDCMThreadedImageReader better support for ProgressEvent and multi threads.
GDCM 2.0.7 (2008/08/04)
- BUG: vtkGDCMThreadedImageReader2 reimplementation of vtkGDCMThreadedImageReader to completely support ProgressEvent from python
- BUG: Implementation Class UID was incorrect (fixed!)
- ENH: gdcmdump --pdb added. One can now print the compressed Protocol Data Block from GEMS
- ENH: new features : J2K/LJPEG/RLE encoder ! Tests check compression result using 3rd party library (namely: Kakadu and dcmtk)
- ENH: Support broken JP2 encoded files
- ENH: Reactivate --color for gdcmdump (on VT100 compatible terminal, eg most shell on *NIX, RXVT on win32)
- ENH: Properly handle spacing for multiframe US images
- ENH: a massive effort in getting Part 3 - 2008 more complete (still not there yet, unfortunately)
- ENH: Initial implementation of Part 3 support (only root level element are inspected)
- ENH: Not finding Part3.xml is not an error anymore (make GDCM completely rellocatable).
- ENH: CSAHeader is now user friendly (individual access to single element possible)
- ENH: add support for yet-another-broken-dicom-file: MR_ELSCINT1_00e1_1042_SQ_feff_00e0_Item.dcm
- ENH: Add a SetStream interface to the reader/writer to allow custom handling of the std::[io]stream
- ENH: Generating a FileMetaInformation from file with missing FMI is now more robust
- ENH: Initial support for 32bits floating point image: MRSpectroscopyStorage
- ENH: More work on the gdcm::PythonFilter, should be useable
- ENH: vtkGDCMPolyDataReader has now it's vtkMedicalImageProperties member
- ENH: Initial support for viz of 16bits PALETTE in VTK (see the 16bits lut class)
- ENH: Fix viz of image where RGB would be store in R + G + B individual planes
GDCM 2.0.8 (2008/08/16)
- ENH: Fix infinite dependencie problem in cmake 2.6 and above
- BUG: RGB J2K were not supported
- BUG: RGB RLE were not compressed correctly
- BUG: Multiframe with Rescale Slope/Intercept would lead to crash when rewriting them as 2D single slice.
- BUG: vtkGDCMImageReader would not support multiframes with odd number of Rows (lead to crash).
- ENH: when reading improper DICOM file where jpeg is grayscale, make sure that DICOM header is consistant with jpeg info (only exception).
- BUG: When writing undefined length SQ, from implicit dataset to explicit dataset, properly encode it.
- ENH: remove extra space (replace with \0) for VR=UI element.
- ENH: Added PVRG JPEG library
- BUG: Image Orientation (Patient) was not properly read in most cases
- ENH: add more private elements
- BUG: do not write JFIF header in JPEG compressed stream
- NEW: new filter: gdcm::ImageApplyLookupTable
- BUG: fix the dict printer (gdcmdump --xml-dict)
- ENH: new option Anonymizer::RemoveGroupLength
- ENH: Add support for py2exe (frozen) python application
- BUG: Fix Filename::GetExtension() when multiple dots in filename
- ENH: new class gdcm::PDBHeader/gdcm::PDBElement to access individual element from a GEMS Protocol Data Block
- ENH: gdcmimg now support converting pgm & jpeg file to DICOM based on information found in raster format
- ENH: cleanup generation of PDF documentation
- BUG: Fix rle2img in some case
GDCM 2.0.9 (2008/09/26)
- ENH: JPEG-LS: Decoder/Encoder (See GDCM_USE_JPEGLS). WARNING: this is not production ready and thus did not make it into this release, use dev branch instead.
- BUG: vtkLookupTable16 would not support 16bits LUT
- NEW: PVRG codec to support broken JPEG files (See GDCM_USE_PVRG). WARNING PVRG code has been reported to be buggy on Win32 system.
- NEW: Add support for GEMS_Ultrasound_ImageGroup_001 (6003,xx10)/(6003,xx11) SmallPreview (loaded as Icon)
- FIX: Fix PlanarConfiguration=1 and multiframes images (RLE)
- FIX: Fix PlanarConfiguration=1 and JPEG compression
- FIX: Writing 16bits lut would lead to seg fault.
- FIX: Could not read single slice (2D) RLE frames split into multiple fragments
- NEW: new executable gdcmtar to split multiframe into single frames DICOM files.
- NEW: new options in gdcmconv: --split / --planar-configuration / --apply-lut / --ignore-errors
- NEW: new option in gdcmdump: --ignore-errors
- ENH: gdcmimg support much more input files (rle, pgm, jpeg, j2k)
- FIX: Seg fault when Part3.xml would not be found / Improve gdcm::Global API
- ENH: improve API for FilenameGenerator/System
- BUG: Fix bug in SmartPointer implementation
- ENH: Can now pack/unpack 12bits data
- ENH: Add support for SIEMENS CSA dict (now loaded by default) + Improve API
- ENH: a couple more private attributes
- ENH: Properly print VR::DS as ASCII now (would be truncated to 6digits previously)
- ENH: Fix name to 'Grassroots' (consistent)
- ENH: Tons of doxygen fix + python documentation working now.
- FIX: mutliframes J2K completely fixed now
- FIX: do not perform color space conversion when conversion should be lossless
GDCM 2.0.10 (2008/11/18)
- BUG: Fix handling of odd length J2K encapsulated
- NEW: C# wrapping working ! See Configuring and Building With VS .NET 2008 (Include C sharp wrapping). Thank you Mark !
- NEW: Better ITK integration: backward compatible ! You'll need ITK 3.10.0, then set ITK_USE_SYSTEM_GDCM:ON (GDCM_USE_ITK is now completely deprecated).
- ENH: Initial support for libpoppler (a pdf lib on *nix system).
- ENH: gdcmconv now support lossy j2k (rate, quality, number-resolution, irreversible)
- ENH: gdcmconv new options: convert to explicit, implicit, use-dict, with-private-dict, compress-icon, remove-group-length !
- ENH: gdcmconv you can switch "photometric-interpretation"
- ENH: gdcmdump/gdcmconv advanced user option: --ignore-errors
- ENH: gdcmconv option: root-uid (or GDCM_ROOT_UID env var)
- ENH: gdcmimg: new options: series-uid/study-uid
- ENH: advanced user: can now used system ljpeg or system openjpeg
- BUG: Fix a couple of issues on Big Endian system. Thank you Joel !
- BUG: GetSequenceOfItems() would not properly return all SQ, instead a new prefered API was added: GetValueAsSQ().
- ENH: new filter: FileExplicitFilter
- ENH: Compressed IconImage (non standard) / RGB IconImage are now supported
- BUG: Better lossless support, no color space transform happen Color Space Transformations
- ENH: JPEGLS now support with cygwin (not yet with MFC compiler, so not part of the release).
- ENH: gdcmviewer: new getopt options
- ENH: vtkGDCMImageReader: now reads all overlays stored in DICOM (not just the first one)
- Tons of bug fixes !
- 354 commits
- 14947 lines changed (diff -x .svn -r -u gdcm-2-0-9 gdcm-2-0-10 | wc)
GDCM 2.0.11 aka 'Mayfly' (2009/05/19)
- --deflated mode added.
- --jpegls mode added.
- --jpeg lossy mode added.
- --asn1 mode added.
- more SIEMENS CSA structure printing (CSADataInfo: INTERFILE)
- all input: get file timestamp to build the date time from it
- jpegls file handling (.jls)
- --sop-class-uid option added
- export to PNM
- directory handling
- search also on file meta info element
- --recursive option added
- --md5sum option added
- --check-compression option added
- more getopt options (--modality, --argb, --palette-color)
- can export to binary vtk file
- input .jpg file are properly marked as lossy in the output DICOM file
- MAJOR: gdcmpdf tool added. See gdcmpdf
- MAJOR: gdcmanon tool added. See gdcmanon
- MAJOR: JPEG-LS implementation: replace (broken) UBC implementation with the one from CharLS
- MAJOR: Fake SWIG/C# wrapping of the vtkgdcm class, with a possibity to talk to the C#/Activiz layer
- Java wrapping working
- gdcm::Anonymizer : PS 3.15 / E.1 implementation
- Rearchitecture the ImageChangeTransferSyntax for more flexibility (works on gdcm::Pixmap and not gdcm::Image)
- better handling of deprecated PhotometricInterpreation: ARGB
- More private elements
- MAJOR: correctly reread gdcm 1.x invalid VL for Undefined Length Sequence.
- MAJOR: Handling of large Value Length in Explicit when coded on 16bits (=> VR:UN)
- MAJOR: Properly decompress lossy file into lossless format and inserting proper marker in the DICOM dataset to preserve lossy-ness aspect
- MAJOR: Properly detect Enhanced Multiframe Image Storage file with more than on Image Orientation (Patient)
- gdcm::Rescaler now internally operates on double (instead of float)
- gdcm::Scanner improved API
- gdcm::Sorter can now pass user sort function, using multiple stable_sort to order file
- Better handling of DICOMDIR
- Handle lossy 12bits jpeg
- Better spacing computation in gdcm::IPPSorter (will return 2.2 instead of 2.19999, depending on the ZTolerance)
- Insert Spacing for SC image storage as nominal scanned pixel spacing
- Read 3004,000c for RTDoseStorage file
- gettimeofday update on Win32
- FormatDateTime/ParseDateTime were buggy
- FilenameGenerator avoid buffer overrun
- gdcm::Orientation can now specify the ObliquityThresholdCosineValue
- Fix Part3.xml
GDCM 2.0.12 (2009/06/12)
- gdcmgendir added (see gdcm.DICOMDIRGenerator)
- gdcm.Anonymizer / logging capabilities
- Bug, see issue here. Patient ID / Patient Name can not be made Empty.
- new command line option: --dumb : --remove / --empty / --replace
- new command line option: --recursive
- New filter: gdcm.FileDerivation, to handle DERIVED DICOM mechanism
- JPEG-LS: lossy mode added (see 'allowed-error')
- Properly reject DICOMDIR input file (only Explicit TS)
- More command line options (study, series, root, jpeg, j2k, jpegls, rle)
- Properly find the UUID lib on MacOSX
- replace all abort into assert(0)
- Properly handle space within array of VR:DS elements
- gdcm.jar / vtkgdcm.jar properly load the internal shared lib (JNI glue layer).
- C# / mono: gdcm.dll / vtkgdcm.dll links to the shared lib using a config map.
- Can now specify the Series / Study UID in vtkGDCMImageWriter
old links used to be:
GDCM 2.0.13 (2009/10/25)
- Report when command line is bogus (more info when openssl is not configured)
- Report new syntax does not require -i / -o
- initial work toward converting Enhanced Image Storage to the older Image Storage
- Add support for meta image (mhd,mha)
- New Examples:
- QImage (Qt 4) image import sample ConvertToQImage.cxx
- C# example: RescaleImage.cs
- Python example: PrivateDict.py, ScanDirectory.py
- can now find system PVRG
- publicly define GDCM_USE_JPEGLS now that it is stable
- Completely remove GDCM_USE_ITK; and instead define GDCM_USE_ITK_I_UNDERSTAND_WHAT_I_AM_DOING for dashboard regression testing
- Introduce deprcqtion mechanism (compile time mechanism): GDCM_LEGACY_REMOVE / GDCM_LEGACY_SILENT
- Greatly simplify the interface of gdcm libraries. No transitive linking is done for the gdcm libs (ref: SET_TARGET_PROPERTIES LINK_INTERFACE_LIBRARIES "")
- compilation works with gcc 4.4 now
- A lot of new private DICOM attributes
- Update to latest CharLS (JPEG-LS library)
- Update C99/stdint.h for Win64
- Generate KWStyle output
- Generate a global copyright file produced by parsing all directories
- documentation: update man page for gdcm2vtk/gdcmanon/gdcmconv/gdcmdump/gdcmgendir/gdcminfo/gdcmpdf/gdcmraw/gdcmscanner/gdcmtar/gdcmviewer
- expose gdcm::Rescaler API in C#
- Update gdcm python documentation
- Remove IMMEDIATE from CMakeLists.txt file
- Fix finding of system uuid lib on MacOSX
- fix finding of C# compiler
- Fix java test
- Handle buggy mediastorage strings (invalid trailing spaces)
- fix MediaStorage::GetModality for all modalities
- Completely remove support for Virtual Big Endian Implicit transfer syntax
- fix gdcm::VR / gdcm::VM for all possible cases
- gdcm::Writer remove leak (ostream)
- gdcm::Anonymizer fix segfault when anonymizinrg empty strings
- remove leak in gdcm::JPEGBITSCodec
- StringFilter::ToString accepts private tags; FromString works now for all dicom attributes
- A lot of bugs for itk::GDCMImageIO were fixed
- vtkGDCMPolyDataReader: handle empty contour
- fix compilation of gdcm wrapping in Java
- BUG (from bug tracker):
- 2871486 gdcm 2.0.12: tags position/orientation not written Closed Invalid
- 2865100 CharLS 1.0 beta is out ! Closed Fixed
- 2864426 GetSpacingValue for TG18-QC for MG Closed Fixed
- 2862213 Fix VM::GetLength & VR::GetSize Closed Fixed
- 2862093 StringFilter::ToStringPair does not handle private tags Closed Fixed
- 2860660 C# wrapper image error Closed Invalid
- 2860503 C# wrapper image error Closed Invalid
- 2860122 C# wrapper image error Closed Invalid
- 2855785 gdcmanon sometimes segfaults for empty tags Closed Fixed
- 2840881 Some warnings when compiling on MSVC9 Closed Fixed
- 2832065 Get rid of GetSequenceOfItems(), replace by GetValueAsSQ Closed Fixed
- Dump encapsulated PDF info
- BUG (from bug tracker):
- 2889560 gdcm::Version member function implementation to CXX file Closed Fixed
- 2889346 gdcminfo print PDF info Closed Fixed
GDCM 2.0.15 (2010/07/09)
Here is a summary of the changes for GDCM 2.0.15. Full ChangeLog can be found here
- Add recursive+continue mode in gdcmanon
- Properly handle defined length
- do not recompute spacing
- Support new poppler lib.
- Support CMake 2.8.x
- Update to DICOM 2009 Standard
- CMake/ExportConfiguration/CMakeLists.txt: support install tree and export build tree using new CMake 2.6 API
- Support clang compiler
- Initial work on OpenJPEG v2
- Initial work on KAKADU codec
- Better support for RTIonPlanStorage
- Add "1.2.392.200036.9184.108.40.206", // Fuji Private CR Image Storage
- Improved CMake support, allowing the user to specify the required version number, by doing find_package(GDCM 2.0.15 EXACT REQUIRED) http://sourceforge.net/tracker/?func=detail&atid=739587&aid=2980558&group_id=137895
- A new gdcm::Reader member function: ReadSelectedTags(selectedTags). http://sourceforge.net/tracker/?func=detail&aid=2915659&group_id=137895&atid=739590
- NEW Example:
- Examples/Cxx/ChangeSequenceUltrasound.cxx: add simple example for SQ manip
- Examples/Csharp/SimplePrintPatientName.cs: add simple example
- Utilities/VTK/Examples/Cxx/reslicesphere.cxx: add example from ML vtkusers
- Examples/Cxx/ExtractEncryptedContent.cxx: Simple example to extrat a sub dataelement from a SQ
- Examples/Cxx/DumpToSQLITE3.cxx: add example gdcm.Scanner to SQLITE3
- Utilities/VTK/Examples/Cxx/gdcmreslice.cxx: Display DICOM with proper Image Orientation (Patient)
- Examples/Cxx/ReadAndDumpDICOMDIR.cxx: Adding example From Tom
- Utilities/VTK/Examples/Cxx/gdcmrtion.cxx: Much cooler interface to RT Ion
- Fix FindOpenSSL.cmake (support 32bits and 64bits)
- Fix FindDCMTK.cmake
- Fix compilation of gdcmCodeString.cxx on Win32 with shared libs
- restore single bit image support
- PNM: do not write signed data in pnm file
- It is illegal to produce DICOMDIR with missing PatientID
- Examples/Python/ConvertNumpy.py: BUG: ConvertNumpy.py. Thanks to Paulo Henrique Junqueira Amorim for patch
- Source/Common/gdcmCryptographicMessageSyntax.cxx: COMP: Fix compilation on fedora. Apply patch suggested by Mario Ceresa
- gdcmanon --dumb --replace would not work when tag contains letter, eg: --replace 8,103e,ANON. Thanks to Bartosz Wiklak for report.
- BUG (from bug tracker):
- BUG: 2895067 gdcmsharpglue is not working for Win32 installer.
- BUG: 2901256 CodeString related link error (LNK2005) in gdcmDSED.
- BUG: 2941638 segFault in TestImageReader.
- BUG: 2901832 Setting LoadIconImage to false causes exception
- BUG: 2970185 gdcmanon does not recursively search in SQ.
- BUG: 2993493 Need to use gdcmPixmapWriter instead.
- BUG: 2997673 add root directory to gdcm.DICOMDIRGenerator
- BUG: 3009661 working to getting better perf
- BUG: 2995495 Fix
- BUG: 2980558 Fix
- BUG: 2995463 Fixed
- BUG: 2992397 compilation.
- BUG: 2992180 Fix it
- BUG: 2933869 Fix it
- BUG: 2912092 Fix issue when SQ element is not loaded as SQ element (Explicit/UN or Implicit/DefinedLength)
- BUG: 2915851 Fix the . handling
- BUG: 2914702 J2K/JPEG family cannot handle Planar Conf=1. In this case always revert to Planar Conf=0 before computing md5sum.
- BUG: 2914675 COMP: Avoided a warning, "VTK_MAJOR_VERSION is not defined"
- BUG: 2914380 BUG: Fixed assert in Filename::ToUnixSlashes()
- BUG: 2913256 Thanks to Niels for bug report. Properly handle rounding of even length when number of bytes returned by GetBufferLength is an even length (common case in RGB file).
- BUG: Fixed copy-and-paste bug in TestMediaStorage, according to https://sourceforge.net/tracker/?func=detail&atid=739587&aid=2913284&group_id=137895
- BUG: Fixed RLECodec::Code buffer overrun RLEHeader::Offset, according to http://sourceforge.net/tracker/?func=detail&atid=739587&aid=2913222&group_id=137895
- BUG: 2906713 Use shell script for first pass (some error got reported) by script, will fix in second pass
- BUG: 2911432 Make gdcm::Scanner behave like gdcm::Anonymizer
- BUG: 2911319 Fix lossless is not lossless on the famous 10bits, 1024 max image: D_CLUNIE_RG3_JPLY.dcm.
- BUG: 2900500 + BUG: 2907529 This is a large commit, hopefully this is ok now.
- BUG: Improved gdcm::Exception, applying proposed change 1 to 5, and 7, from http://sourceforge.net/tracker/?func=detail&aid=2906150&group_id=137895&atid=739587
- BUG: 2900448 Rescale/Slope was not symmetric. It was missing PET and Enhanced SC storage type. Thanks to Mark for report
- BUG: 2901181 This commit revert the order of the spacing. As per DICOM spec it is Y\X and not X\Y. Thanks to Paulo Henrique Junqueira Amorim for providing dataset to reproduce the issue.
- BUG: 2900591 Remove all poorly written function and replace by safer gdcm::Attribute (PixmapReader::ReadUSFromTag/PixmapReader::ReadISFromTag/PixmapReader::ReadSSFromTag).
GDCM 2.0.16 (2010/08/18)
Here is a summary of the changes for GDCM 2.0.16. Full ChangeLog can be found 
- Can now use vtkDICOMImageReader as input reader for DICOM (advanced users)
- ParaView plugin added ! (See CMake option: GDCM_USE_PARAVIEW)
- Add support for OpenJPEG v2
- update private dicts: with STENTOR Att and S2000 Atts (siemens)
- Fix compilation of vtk-python module
- regression: gdcm2vtk did not support 12bits data anymore
- Fix compilation with VTK 4.2
- MAJOR: Fix YBR_FULL_422 support
- gdcmconv does not add new attributes (unless requested)
- gdcmconv: clean up PrivateInformationCreatorUID / PrivateInformation tag
- BUG: 3030751 Fix DictEntry::GetKeyword() does not work
- BUG: 3032015 Fix issue with large stack comsumption.
- BUG: 3036142 Apply patch from Niels D. Thanks. Also move SortFunctor in empty namespace to avoid any further issue.
- BUG: 3043121 Finish up implementation of DICOM using openjpeg v2
- BUG: 3042605 compression / decompression to jpeg loose PI
- BUG: 3039334 Do not assume that pointer (VTK) can hold the entire image.
- BUG: 3036775 Add documentation to avoid this kind of mistake in the future.
- BUG: 3035308 More cleanup. Make sure all check_include_file actualy use GDCM_ namespace for consistancy. remove some old stuff
- fixed a bug building as a Universal Binary on Mac OS X. Remove assumption that the build machine's endianness is the same as the target machine's endianness.
- BUG: 3030729 Fix pre-processor warnings caused by gdcmConfigure.h
GDCM 2.0.17 (2011/01/25)
See here GDCM Release 2.0.17
GDCM 2.0.18 (2011/06/29)
See here GDCM Release 2.0.18
GDCM 2.0.19 (2011/12/30)
See here GDCM Release 2.0.19