1.4.0#

Fixes#

  • Fixed handling of VRs AT and PN in json encoding (#915)

  • Fixed handling of binary values in json encoding (#887)

  • Prevent exception if assigning None to UI element (#894)

  • Fixed print output for numeric multi-value elements (#892)

  • Fixed testing PN values for truthiness (#891)

  • Fixed handling of data too large to written in explicit transfer syntax

  • Fixed handling of known tags with VR UN (#899, #968)

  • Fixed assigning of empty values to data elements (#896)

  • Fixed error in unpickling dataset (#947)

  • Fixed error in pickling modified datasets (#951)

  • Fixed improper conversion of the first value of the LUT Descriptor elements (0028,1101-1103) and (0028,3002) (#942)

  • Fixed handling of ISO IR 159 encoding (#917)

  • Fixed propagation of bulk data handler in Dataset.from_json (#971)

  • Correctly handle DICOMDIR files with records in reverse-hierarchical order (#822)

  • Pixel Data encoded using JPEG2000 and decoded using the Pillow handler no longer returns RGB data when the (0028,0004) Photometric Interpretation is YBR_FULL or YBR_FULL_422. (#263, #273, #826)

  • Avoid possible high memory usage while reading sequences (#994)

  • Fixed generate_pixel_data() not returning all available frames when the Basic Offset Table was empty. This may still occur when multiple fragments per frame are present for non-JPEG transfer syntaxes or where no JPEG EOI/EOC marker is present (#685)

  • Fixed possible incorrect switch to explicit VR in sequence items (#999)

  • Fixed JPEG 2000 (UIDs 1.2.840.10008.1.2.4.90 and 1.2.840.10008.1.2.4.91) pixel data with bit depth range 9-16 not producing the correct values with the Pillow handler (#693)

  • Fixed parsing a DICOMDIR file with no records raising an exception (#1004)

Enhancements#

  • Added support for converting (60xx,3000) Overlay Data to a numpy ndarray using Dataset.overlay_array() (#912)

  • Added support for deferred reading in file-like objects (#932)

  • Tolerate values with multiple and/or incorrect padding bytes (#940)

  • Added support for uncompressed pixel data with (0028,0004) Photometric Interpretation of YBR_FULL_422 to the numpy pixel data handler.

  • Added apply_color_lut() function for applying color palette LUTs (#205)

  • Added apply_modality_lut() function for applying modality LUTs.

  • Added get_palette_files() for retrieving well-known palette color datasets.

  • Raise on end of file errors if config.enforce_valid_values is set (#277)

  • Added user warning, or exception in strict mode, if a DICOMDIR has an unexpected transfer syntax (#848)

  • Handle missing offset tags in DICOMDIR (#981)

  • Added optional handler argument to decompress(). This lets you specify a particular handler, rather than following pydicom’s default order (#537)

  • Added apply_voi_lut() function for applying VOI LUTs or windowing operations.

  • Added support for (7fe0,0008) Float Pixel Data and (7fe0,0009) Double Float Pixel Data to pixel_array (#452)

  • JPEG 2000 (1.2.840.10008.1.2.4.91) transfer syntax is supported for data with bit depth > 8 with the Pillow pixel data handler

  • PixelData.is_undefined_length is now set automatically based on whether the Dataset’s Transfer Syntax is compressed (#1006)

  • Updated DICOM dictionary to 2019e edition (#1013)

  • Added support for new VRs OV, SV, UV (#1016)

  • Code dictionaries and Code class for structured reporting added (alpha release only). See the Structured Reporting tutorial for more information

Changes#

  • get_frame_offsets() now returns whether the Basic Offset Table is empty and a list of the offsets.