Version 1.0.0

This is a major release, with major changes, including backwards-incompatible changes.

Warning

We urge you to review the Transition Guide if you have previously used a pydicom version less than 1.0.

Changelog

Major changes

  • full Python 3 compatibility - one code base for both Python 2 and Python 3
  • package name and import name now match – use import pydicom rather than import dicom.
  • added image_data_handlers:
    • optional GDCM support for reading files with compressed pixel data (#18)
    • optional Pillow and jpeg_ls support for reading some compressed pixel data files
    • support for decompressing a compressed dataset in-place
  • DICOM dictionary updated to 2017c
  • cleaned up DICOM dictionary code, old non-DICOM-keyword code removed

Other enhancements

  • added util/fixer.py callbacks available to fix non DICOM-compliant values before exceptions thrown
  • added context management methods to Dataset
  • added misc.is_dicom() function to check for DICOM file format
  • added date/time converters (#143)
  • added option to attempt other VRs if translate fails (#197)
  • added heuristics to read files that have no preamble or file meta information
  • support for multi-valued DA, DT, TM data elements (#212)
  • DataElement: added keyword and is_retired properties
  • datadict: added dictionary_is_retired()
  • datadict: added ability to add custom DICOM dictionary items via add_dict_entry() and add_dict_entries()
  • added some support for pickle
  • added support for VRs OD, OL and UC
  • added support for Thai, Japanese and Chinese encodings (#346, #353)
  • added support for slicing to Dataset
  • add/update TransferSyntaxUID when writing standard
  • renamed UID package to uid (conforms to Python standard)
  • added property uid.is_private
  • added definitions for storage SOP Class UIDs (#172)
  • added possibility to read only specific tags (#95)
  • added missing meta elements when writing DICOM file
  • added encaps generator functions to access compressed frames
  • read_file changed to dcmread, write_file to dcmwrite for greater clarity. Previous names still available for backwards compatibility.

Infrastructure

Fixes

  • correctly handle PlanarConfiguration==0 (#151)
  • updated uid generation to ensure uniqueness (#125)
  • handle missing patient data in show_dicomdir
  • assume default transfer syntax if none in file meta (#258)
  • fixed reading/writing of empty tags and tags with bad VR
  • fixed reading AE elements with leading or trailing spaces
  • fixed handling of ambiguous VR elements
  • fixed handling for several error conditions
  • fixed Latin5 (Turkish) character set handling
  • a lot of other small fixes...