Skip to content

v0.7.0

Compare
Choose a tag to compare
@Enet4 Enet4 released this 25 Apr 11:57
· 278 commits to master since this release

DICOM-rs 0.7.0

Today a major edition of DICOM-rs is released. Version 0.7.0 encompasses a new array of changes to correct existing quirks in the API and make way for grater capabilities. It is also not without new features, improvements and a few bug fixes.

Changes

  • [core,dictionary-builder] Data element dictionary entries now provide a VirtualVr instead of a specific value representation (#478)
  • [core] DICOM date/time value types were revamped to optionally include the time zone offset, affecting function signatures around it (#453 @jmlaka)
  • [encoding] SpecificCharacterSet is now an opaque struct type instead of an enum (#489)
  • [encoding] Monochrome reinterpretation for pixel data readers was relaxed to no longer require converting monochrome1 to monochrome2 (#498)
  • [encoding] PixelDataObject trait now has method photometric_interpretation (#497)
  • [ul] Pdu is now aware of user identity negotiation variables (#402 @nicholasrussell)
  • [ul] Pdu::short_description now returns an impl Display (#488)
  • [parser] Parser IntoTokens trait was expanded to support options, namely whether to discard sequence lengths (#456)
  • [object] Missing type parameter in FileMetaTable::set_transfer_syntax was added to conform with TransferSyntax type parameters (#485)
  • [pixeldata] openjp2 is no longer added by default when using dicom-pixeldata. Users interested in JPEG 2000 need to enable either openjp2 or openjpeg-sys (#449)
  • Updated snafu to 0.8 (#450)
  • Removed contents which were already deprecated in previous versions (#458)

New

  • [ul] Add Promiscuous mode in server association options (#500 @nickamzol)
  • [parser] add ::new_with_ts functions (#494)
  • [object] New functionality for mutating an object's element values at an arbitrary attribute (#471 @naterichman)
  • [object] Add method for changing an object's character set (#456 @thomas-tribus)
  • [object] Baseline capability for private element look-up and insertion is now available (#508 @naterichman)
  • [storescp] Update CLI app arguments to include promiscuous mode (#510)

Fixes

  • [parser] Correct VR interpretation dependent on Pixel Representation (#462 @thomas-tribus)
  • [findscu] Fix nonconforming status matching in response objects (#481)
  • [ul] Fix docs in ClientAssociation (#484)

Enhancements

  • [dictionary-std] Update dictionary entries (#509)
  • [ts-registry] Fix pixel sample rearrangement in RLE lossless (#496)
  • [ts-registry] Improved JPEG encoding attribute hinting (#497)
  • [ts-registry] Bump jpeg2k to 0.7 (#502, #506)
  • [pixeldata] Add lookups into shared/per frame functional groups (#437 @naterichman)
  • [pixeldata] Trim \0 characters from photometric interpretation (#451 @dougyau)
  • [pixeldata] Update gdcm-rs to 0.6 (#468)
  • [pixeldata,toimage,fromimage] Update image lib (#491 @leonz)
  • [json] Allow arbitrary element order for JsonDataElement (#459 @feliwir)
  • [json] Allow null for string values (#464 @feliwir)
  • [json] Skip bulk data URI when deserializing JSON (#472 @feliwir)
  • [parent] Re-export more Cargo features from pixeldata (#469)
  • [storescp] Handle Pdu::AbortRQ (#474 @jennydaman)
  • [storescp] Improve storescp to handle multiple p-data values (#487)

Miscellaneous

  • [ts-registry] Bump jpeg2k dependency (#502)
  • [json] Update base64 to 0.22 (#467)
  • [dump] Remove term_size in favor of terminal_size (#466)
  • [storescp] Replace hard-coded UIDs in transfer.rs with dicom_dictionary_std::uids::- (#475 @jennydaman)
  • [dictionary-builder] update heck to 0.5 (#495)
  • Code cleanup (beta toolchain checks) (#482)
  • Bump eyre from 0.6.9 to 0.6.12 (#492)
  • Maintenance lint fixes (#505)
  • Dependency updates (#507)

πŸ“¦ Updated crates

Starting from this release, all crates with breaking changes will have their version set to the project version. For instance, rather than bumping dicom-pixeldata from 0.2.2 to 0.3.0, it will be set to 0.7.0.
This is to reduce the confusion of certain crates in the ecosystem appearing to be outdated when they are not, as well as to better clarify which versions are expected to be compatible with which crate in the ecosystem.

  • dicom-core 0.7.0
  • dicom-dictionary-std 0.7.0
  • dicom-encoding 0.7.0
  • dicom-parser 0.7.0
  • dicom-transfer-syntax-registry 0.7.0
  • dicom-ul 0.7.0
  • dicom-scpproxy 0.7.0
  • dicom-object 0.7.0
  • dicom-dump 0.7.0
  • dicom-json 0.7.0
  • dicom-pixeldata 0.7.0
  • dicom-echoscu 0.7.0
  • dicom-storescu 0.7.0
  • dicom-storescp 0.7.0
  • dicom-findscu 0.7.0
  • dicom-toimage 0.7.0
  • dicom-fromimage 0.7.0
  • dicom-dictionary-builder 0.7.0
  • dicom 0.7.0

πŸ™ Thanks

Acknowledging that DICOM-rs can only grow at this pace with the active collaboration from the community, it is worth highlighting that version 0.7.0 had the highest number of new contributors in a DICOM-rs release yet.

Thank you all!

Full Changelog: v0.6.3...v0.7.0