3.1.0#

Changes#

  • DICOM dictionary updated to 2024d.

  • Prefer using pylibjpeg over GDCM when encoding RLE Lossless.

Fixes#

  • Changed logging of missing plugin imports to use logging.DEBUG (#2128).

  • Include all examples module datasets with the package (#2128, #2131).

  • Fixed an invalid VR value in the private data dictionary (#2132).

  • Fixed checking for Bits Stored when converting Float Pixel Data and Double Float Pixel Data using the pixels backend (#2135).

  • Fixed decoding of pixel data for images with Bits Allocated of 1 when frame boundaries are not aligned with byte boundaries (#2134).

  • Fixed a number of issues with decoding pixel data on big endian systems such as s390x (#2147).

  • Fixed being unable to pickle datasets containing LUT descriptor elements such as LUT Descriptor and Red Palette Color LUT Descriptor (#2160).

  • Fixed decompress() and compress() changing the SOP Instance UID when not required (#2171).

  • Make sure the value of multi-valued tags is always returned as an instance of MultiValue.

  • Make sure that no download of examples is attempted on importing examples if the example data is not found locally (#2223).

  • Add mitigation and better error messaging for SWIG errors when using GDCM to decompress datasets with more than 2**31 - 1 bytes (#2227).

  • Use the setting writing_validation_mode also for writing values with VRs supporting only ASCII characters (#2243).

Enhancements#

  • Python 3.12 and 3.13 now supported; limited support for pre-release Python 3.14

  • Added the option to pass a bool ndarray to set_pixel_data() to store with Bits Allocated of 1 using bit-packing (#2141).

  • Added a check to set_pixel_data() to ensure that the pixel data length doesn’t exceed the allowed maximum.

  • Added the Dataset.is_decompressed convenience property for determining whether a dataset uses a compressed transfer syntax or not (#2155).

  • Updated UIDs to version 2024d of the DICOM Standard

  • The following UID constants have been added:

  • Added ability to specify tag numbers in the CLI commands (allows private tags to be specified)

  • Removed exec and eval from tests, CLI, and scripts for improved security (#2193)

  • Added support for up to 16-bit input images to convert_color_space()

  • Added support for YBR_PARTIAL_420 and YBR_PARTIAL_422 to convert_color_space() (#2210)

  • Added support for compressing and decompressing Deflated Image Frame Compression (#2213)

  • Suggest an element keyword when an unknown camel case dataset attribute is used.