# Version 1.2.0

## Changelog

### Changes

- PIL removed as a fallback if Pillow is not available in the pillow pixel data handler (#722)

- `uid.JPEGBaseLineLossy8bit` deprecated and will be removed in v1.3. Use `uid.JPEGBaseline` instead. (#726)

- `uid.JPEGBaseLineLossy12bit` deprecated and will be removed in v1.3. Use `uid.JPEGExtended` instead. (#726)

- `uid.JPEG2000Lossy` deprecated and will be removed in v1.3. Use `uid.JPEG2000` instead. (#726)

- Equality and inequality operator overrides removed from `UID`.

- `config.image_handlers` deprecated and will be removed in v1.3. - use `config.pixel_data_handlers` instead. There is also a change in behavior in that `image_handlers` previously used to only contain the pixel data handlers that had their dependencies met. Now `pixel_data_handlers` contains all handlers no matter whether or not their dependencies are met. To check if a handler is available for use (it has its dependency met) use the handler’s `is_available` method.

- `DeferredDataElement` class deprecated and will be removed in v1.3 (#291)

- The use of NumPyPy with PyPy is no longer supported, use NumPy instead.

### Enhancements

- Updated DICOM dictionary for 2018c edition (#677)

- Added possibility to set byte strings as value for VRs that use only the default character set (#624)

- Functions for encapsulating frames added to `encaps` module (#696)

- Added `Dataset.fix_meta_info()` (#584)

- Added new function for bit packing `pack_bits` for use with BitsAllocated = 1 (#715)

- Added/corrected encoding and decoding of text and person name VRs using character sets with code extensions, added handling of encoding/decoding errors (#716)

- Handle common spelling errors in Specific Character Set values (#695,737)

- Added `uid.JPEGLosslessP14` for UID 1.2.840.10008.1.2.4.57

- Added `uid.JPEG2000MultiComponentLossless` for UID 1.2.840.10008.1.2.4.92

- Added `uid.JPEG2000MultiComponent` for UID 1.2.840.10008.1.2.4.93

- Added full support for Planar Configuration (#713)

- Added support for single frame pixel data where BitsAllocated > 8 and SamplesPerPixel > 1 (#713)

- Small improvement in RLE decoding speed (~10%)

- Added support for non-conformant RLE segment ordering (#729)

### Fixes

- Removed unused `original_string` attribute from the `DataElement` class (#660)

- Improve performance for Python 3 when dealing with compressed multi-frame Pixel Data with pillow and jpeg-ls (#682)

- Fixed handling of private tags in repeater range (#689)

- Fixed Pillow pixel data handler for non-JPEG2k transfer syntax (#663)

- Fixed handling of elements with ambiguous VR (#700, 728)

- Adapted pixel handlers where endianness is explicitly adapted (#704)

- Improve performance of bit unpacking (#715)

- First character set no longer removed (#707)

- Fixed RLE decoded data having the wrong byte order (#729)

- Fixed RLE decoded data having the wrong planar configuration (#729)

- Fixed numpy arrays returned by the pixel data handlers sometimes being read-only. Read-only arrays are still available for uncompressed transfer syntaxes via a keyword argument for the numpy pixel data handler and should help reduce memory consumption if required. (#717)

- Fixed deprecation warning in Python 3.7 (#740)