Skip to content

Releases: Enet4/dicom-rs

v0.9.0

04 Oct 13:56

Choose a tag to compare

DICOM-rs 0.9.0

DICOM-rs 0.9.0 is here! Rather than being feature-heavy, this version introduces API changes considered necessary in order to bring quality-of-life improvements and open up for more features in the future.

Still, some new offerings are worth highlighting here: reading and writing deflated datasets, adjustments to data set writing for reliability, an improved upper layer protocol stack, and a new DICOM object trait which works for different types of objects.

Changes

  • [core] PersonName can now hold both borrowed and owned strings (#635 @AlexTMjugador)
  • [encoding] Remove PartialEq derive on TransferSyntaxFactory, since it made no sense in the first place (#656)
  • [encoder/ts-registry] Fix submit_ele_transfer_syntax! so that it is usable, and extend Codec with helper functions (#640)
  • [pixeldata] The main pixeldata Error type has been made opaque (#661)
    • Please file an issue if introspection on the kind of error is important to your use case.
  • [ts-registry/object] The dataset adapter API was rewritten to be more dynamic (#438 @naterichman)
  • [ul] association methods presentation_contexts() now also return the abstract syntax of the negotiated presentation context (#687 @pgimeno4d)
  • [object] The DicomObject trait has been revised to offer a usable high-level abstraction over DICOM object implementations (#524)
  • [core] Retrieval of fraction of second from DicomTime has been revised (#666 @pongis)
    • Method fraction no longer exists, instead use fraction_ms and fraction_micro to retrieve the fraction of a second regardless of the underlying precision.
  • [pixeldata] ndarray has been updated to 0.16.1 (#697)
  • [ul] Network applications are no longer bounded by a maximum PDU length of 131072 (#689)
  • [parser] New DataSetWriterOptions lets you choose how to handle the writing of sequences and items with an explicit length (#645 @jmlaka)
    • By default, the behavior is to write all nested dataset sequences and items with an undefined length,
      which is the safest option when manipulating and saving DICOM data sets.
    • With DataSetWriterOptions::NoChange,
      you get the old behavior of writing all lengths as originally defined,
      requiring objects to be updated whenever sequences and items are changed in size.
  • [dictionary-std] update data element and UID dictionaries (#696)
    • Note: dictionary updates may incur breaking changes because some entries may occasionally have their keyword changed, and old retired entries may be removed from the standard altogether.

New

  • [ts-registry/object] Baseline support for reading and writing files in deflate transfer syntaxes, such as Deflated Explicit VR Little Endian (#438 @naterichman)
  • [encoding] Add support for the GBK character set (#682 @momostarsky)
  • [parser] Add option to override per-VR character set usage (#676)
  • [core] Implement FromStr for DicomDate and DicomTime (#666)
  • [ul] Add requestor_max_pdu_length() and acceptor_max_pdu_length() methods to ServerAssociation (#685 @pgimeno4d)

Fixes

  • [pixeldata] Fix cases of bit_allocation 1 for decode_pixel_data (#668 @Cryt1c)
  • [pixeldata] Correct photometric interpretation in transcoding process (#673)
  • [ul] Refactor association establishment and fix possibility of data loss in its process (#677 @naterichman)
  • [ul] Fix mixup in negotiated PDU lengths (#689 @Enet4 @pgimeno4d)
  • [parser] Do not clear length of pixel data fragment item starts (#693)

Enhancements

  • [ts-registry] re-export trait TransferSyntaxIndex from dicom_encoding (#688)
  • [parser/object] Flush writer(s) after writing file meta and dataset (#690 @naterichman)

Miscellaneous

  • [object] Beta compiler lint fix (#670)
  • [pixeldata/ul] Update rstest to 0.26.1 (#697)
  • [object/ul] Update implementation class UID and version name for v0.9.0 (#695)
  • Update Cargo.lock (#699)

πŸ“¦ Updated crates

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

πŸ™ Thanks

As always, here is another word of appreciation to the community of new and veteran contributors who help bring DICOM-rs to new levels. Thanks a million!

The new DICOM-rs contributors in 0.9.0 are:

Future work

This would now be the time to start working on new features. The prospects on this are very good already: TLS support in the DICOM network stack, a new move SCU tool, and more may hopefully become part of 0.9.1.

Full Changelog: v0.8.2...v0.9.0

v0.8.2

27 Jul 11:25

Choose a tag to compare

DICOM-rs 0.8.2

This new revision brings a wide array of backward-compatible contributions. A major release is already in the works as we pave the way for v0.9.0, but until then, version 0.8.2 already offers some interesting features, including a new API to read DICOM data in small parts, and several improvements to pixel data decoding.

New

  • [dump] Add CLI option read_until (#637)
  • [dump] Add odd length reading strategy to dicom-dump (#646 @jmlaka)
  • [parser] Add token peeking to lazy data set reader (#657)
  • [object] Collector API: fetch DICOM data sets and pixel data fragments in parts (#657)
  • [core] Add DicomTime::millisecond (#665)

Fixes

  • [pixeldata] Prevent panic when accessing invalid pixeldata frame (#633 @feliwir)
  • [pixeldata] Fallback to shared groups on missing per frame tag (#632 @TidalPaladin)

Enhancements

  • [pixeldata] Add shortcut transcode paths depending on edge cases (#634)
  • [transfer-syntax-registry] Update charls dependency to version 0.4.2 (#644 @dougyau)
  • [ul] Add "async" feature to documentation at docs.rs (#652)
  • [pixeldata] Support bits_allocated == 1 (#654 @Cryt1c)
  • [pixeldata] Apply VOI LUT when rendering images (#599 @abustany)
  • [ul] Suppress warning when called_ae_title matches AE title from address (#659 @qarmin)
  • [transfer-syntax-registry] Update jpeg2k to 0.10 (#667)

Miscellaneous

  • Multiple Clippy lint fixes (#638 #648 #655)
  • General dependency update (2025-05) (#653)
  • [pixeldata] Use another error variant to report length mismatch of VOI LUT (#660)

πŸ“¦ Updated crates

  • dicom-core 0.8.2
  • dicom-dictionary-std 0.8.1
  • dicom-encoding 0.8.2
  • dicom-parser 0.8.2
  • dicom-transfer-syntax-registry 0.8.2
  • dicom-ul 0.8.2
  • dicom-scpproxy 0.8.2
  • dicom-object 0.8.2
  • dicom-json 0.8.2
  • dicom-dump 0.8.1
  • dicom-pixeldata 0.8.2
  • dicom-toimage 0.8.1
  • dicom-findscu 0.8.2
  • dicom-dictionary-builder 0.8.2
  • dicom 0.8.2

πŸ™ Thanks

@TidalPaladin made their first contribution in #632 and @Cryt1c made their first contribution in #654. Thank you!

Full Changelog: v0.8.1...v0.8.2

v0.8.1

16 Jan 19:42

Choose a tag to compare

DICOM-rs 0.8.1

This is a minor milestone to deliver a significant number of patches and improvements.

Minor changes

  • OpenFileOptions::tranfer_syntax_index is deprecated. Use OpenFileOptions::transfer_syntax_index instead. (#613 @jayvdb)
  • [core] Fetching data from textual primitive values will now also trim null characters (\0) in places where it would previously only trim space characters (#620 @xb284524239)

New

  • [encoding] Additional character set support: Arabic, Greek, Hebrew, Japanese, Thai, Korean (#614 @rforsyth)
  • [ul] ClientAssociation now also returns user variables (#622 @qarmin)

Fixes

  • [pixeldata] Correctly return the first element of the array (#600 @dougyau)
  • [pixeldata] Use the voi function, window and rescale of the decoded frame (#601 @dougyau)
  • [ul] Share underlying buffer from client/server to PDataReader (#606 @naterichman)
  • [findscu] Do not set query retrieve level for worklist (#603 @qarmin)
  • [ul] Add robustness in byte availability to PDU reading (#610)
  • [object] [storescp] Fix typos (#613 @jayvdb)
  • [json] Add support for non-finite float handling in DICOM JSON (#615 @chrisbll971)
  • [storescp] max_pdu_length is now correctly used to apply a maximum PDU length limit (#624 @MikeRomaniuk)
  • [parser] Add robustness to data element token writing (#628)
  • [core] Prevent panic on From<Vec<Fragments>> for PixelFragmentSequence with an empty vector (#629)

Enhancements

  • [parser] Support parsing improperly closed encapsulated pixel data (#607 @jmlaka)
  • [pixeldata] Allow overriding the VoiLutFunction (#598 @feliwir)
  • [findscu] [scpproxy] [storescp] [storescu] Pre-validate max PDU length option (#627)

Miscellaneous

  • [ul] Add test for connect timeout (#596 @naterichman)
  • Clippy lint fixes (2024-12) (#611)
  • Cargo update (2024-12) (#609)
  • [ts-registry] Update jpegxl decoder (#612)
  • Update Implementation class UID & version name to v0.8.1 (#616)

πŸ“¦ Updated crates

  • dicom-core 0.8.1
  • dicom-encoding 0.8.1
  • dicom-parser 0.8.1
  • dicom-transfer-syntax-registry 0.8.1
  • dicom-ul 0.8.1
  • dicom-scpproxy 0.8.1
  • dicom-object 0.8.1
  • dicom-json 0.8.1
  • dicom-pixeldata 0.8.1
  • dicom-storescu 0.8.1
  • dicom-storescp 0.8.1
  • dicom-findscu 0.8.1
  • dicom-dictionary-builder 0.8.1
  • dicom 0.8.1

πŸ™ Thanks

@jayvdb (#613), @rforsyth (#614), @MikeRomaniuk (#624), and @xb284524239 (#620) are new contributors to DICOM-rs. Welcome!

Full Changelog: v0.8.0...v0.8.1

v0.8.0

06 Nov 14:49

Choose a tag to compare

DICOM-rs 0.8.0

This is a major release of DICOM-rs, boasting an ample collection of new capabilities. Highlights are async support for network applications (via Tokio), and support for a bunch of new transfer syntaxes, including the brand new one for JPEG XL!
Images in JPEG-LS, High Throughput JPEG 2000 (HTJ2K), and JPEG XL can now be decoded, and pixel data can be encoded to JPEG-LS and JPEG XL Lossless.

Changes

  • A minimal Rust compiler version policy is now implemented (#587 @qarmin)
    • 1.72.0 is the minimum version supported by all library crates with the default features. Binary crates or additional features may affect compatibility and require a more recent version of the compiler.
  • [ul,storescp,storescu] New async implementation of dicom_ul, with application in tools dicom-storescu and dicom-storescp. (#542 @naterichman)
    • While the association API for synchronous I/O has not changed. there were breaking changes in the isolated PDU reading functions.
  • [encoding] The expected behavior of pixel data decoding for single sample per pixel images was clarified (#593)
  • [dictionary-std] Updated tags and uids (#578,#594)
    • A few tag keywords have changed from the upstream source.

New

  • [ts-registry] Support for JPEG-LS image decoding via CharLS (#534 @dougyau)
  • [ts-registry] High-Throughput JPEG 2000 (HTJ2K) transfer syntaxes with decoding support via OpenJPEG (#499)
  • [ts-registry] JPEG XL transfer syntaxes with native support for decoding via jxl-oxide and encoding via zune-jpegxl (#571)
  • [ts-registry] JPEG-LS pixel data encoder via CharLS (#573)
  • [ul] Add connection timeout (#569,#570 @jmlaka)
  • [object] New method FileDicomObject::update_meta (#572)
  • [pixeldata] Add support for pixel-first planar configuration (#575 @abustany)
  • [fromimage] Add --encapsulate option to encase a file in a DICOM object without converting it to native pixel data (#579)
  • [parser] Add configurable strategy for handling odd length data elements (#567)
  • [object] Constructive operations through the attribute operations API now create nested sequences recursively, so that intermediate sequence elements do not have to be created first (#574)

Fixes

  • [core] Require DICOM times to encode with the given precision even for 0 microseconds (#557)
  • [object] Adjust file meta information group length calculation (#566)
  • [pixeldata] Fix discrepancy between multi and single frame decode_pixel_data in GDCM integration (#562 @thomas-tribus)
  • [pixeldata] Update meta information group length in dicom-transcode output (#572)
  • [ul] Fix issues around dicom_ul::get_client_pdu (#590)
  • [scpproxy] Tweak handling of connection closed event (#590)
  • Fix documentation and dictionary typos found via codespell (#558 @DimitriPapadopoulos)

Enhancements

Miscellaneous

  • [parser] Recover API compatibility (#583)
  • [ul] Rework API (#582,#592)
  • [object,ul] Update implementation class UID and version name (#584,#591)
  • Clippy linting (#580,#586)

πŸ“¦ Updated crates

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

πŸ™ Thanks

A word of thanks to the new DICOM-rs contributors @DimitriPapadopoulos and @abustany.

And one more word of thanks to veteran contributors @naterichman for bringing async network support to the ecosystem, and @dougyau for the integration with CharLS, which enabled JPEG-LS support.

Full Changelog: v0.7.1...v0.8.0

v0.7.1

13 Aug 14:22

Choose a tag to compare

DICOM-rs 0.7.1

This release comes primarily with several bug fixes, but a few new features were added as well.

New

  • [toimage] dicom-toimage now offers basic image conversion in bulk (#518 @PierreBou91)
  • [core] Improved value ergonomics and performance of TryFrom around date/time types (#526)
  • [ul] Add read/write timeout options for ClientAssociation (#530 @naterichman)
  • [findscu] Add --query-file command line argument (#529)
  • [dump] dicom-dump can now output DICOM JSON with --format json (#440 @naterichman)

Fixes

  • [findscu] Fix PData reading for better conformity with Harmony worklist servers (#528 @qarmin)
  • [pixeldata] Fix conditional compilation in tests with RLE encoded images (#525)
  • [pixeldata] Fix error when decoding data without VoiLut with GDCM (#514 @dougyau)
  • [storescu] prefer file's transfer syntax (#520 @PierreBou91)
  • [toimage] Fix error reporting without --fail-first (#539)
  • [parser] Check presence of value byte in Pixel Representation value (#545)
  • [json] Raise a recoverable error when trying to serialize encapsulated pixel data (#546)
  • [parser] Turn illegal item header parse into recoverable error (#548)
  • [pixeldata] Default to None if VOI LUT is not present (#536 @dougyau)
  • [ul] Use only odd presentation context IDs (#552 @naterichman)
  • [ts-registry] simplify JPEG single frame decoding and increase resilience in the JPEG adapter (#535 #549)

Enhancements

  • [object] Infer Media Storage SOP Class UID and Media Storage SOP Instance UID from the SOP Class UID and SOP Instance UID when missing (#541 @chrisbll971)

Miscellaneous

  • General Clippy lint fix (#531)
  • [image] Tweak toimage for usability and accessibility (#532)
  • Dependency updates (#533)

πŸ“¦ Updated crates

  • dicom-core 0.7.1
  • dicom-encoding 0.7.1
  • dicom-parser 0.7.1
  • dicom-transfer-syntax-registry 0.7.1
  • dicom-ul 0.7.1
  • dicom-object 0.7.1
  • dicom-json 0.7.1
  • dicom-dump 0.7.1
  • dicom-pixeldata 0.7.1
  • dicom-storescu 0.7.1
  • dicom-findscu 0.7.1
  • dicom-toimage 0.7.1
  • dicom 0.7.1

πŸ™ Thanks

With version 0.7.1, I thank and welcome @qarmin and @chrisbll971 to the list of contributors to DICOM-rs.

Full Changelog: v0.7.0...v0.7.1

v0.7.0

25 Apr 11:57

Choose a tag to compare

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

v0.6.3

21 Nov 19:36

Choose a tag to compare

DICOM-rs 0.6.3

This patch release intends to fix and mitigate some issues found in the previous version.

One particular concern raised since version 0.6.2 was that the project does not build when targeting Windows platforms unless the Cargo features are adjusted to exclude openjp2.
While fixing this entirely would incur a breaking change too early in the project's release cycle, this patch release will hopefully help guide Windows developers into building all crates in the DICOM-rs ecosystem, until the next major version arrives.

If your building target is any of the Windows platforms (such as x86_64-pc-windows-msvc or x86_64-pc-windows-gnu), you will need to disable the default Cargo features and explicitly add the ones that you may need. The default_windows feature has been added for convenience.

cargo build --release --no-default-features --features=cli,default_windows,backtraces,openjpeg-sys

Fixes

  • [pixeldata] Fix and improve single-frame pixel data decoding via GDCM (#422 @dougyau)
  • [findscu] Add response status check in C-FIND-RSP response data set (#434)

Enhancements

  • [json] Move dicom-test-files to dev dependencies (#435)
  • [dump] Extend no_text_limit option to more textual VRs (#436)

Miscellaneous

  • [transfer-syntax-registry,pixeldata] Adjust features for easier building on Windows (#433)
  • [dump] Update owo-colors to 0.4.0-rc.1 (#441)
  • [core,object] Update dependencies, general maintenance (#442)

πŸ“¦ Updated crates

  • dicom-core 0.6.3
  • dicom-transfer-syntax-registry 0.6.2
  • dicom-object 0.6.3
  • dicom-dump 0.6.2
  • dicom-pixeldata 0.2.2
  • dicom-findscu 0.2.2
  • dicom-json 0.1.1
  • dicom 0.6.3

Full Changelog: v0.6.2...v0.6.3

v0.6.2

31 Oct 10:42

Choose a tag to compare

DICOM-rs 0.6.2

This feature release of DICOM-rs comprises new APIs, a new CLI tool, and support for more transfer syntaxes, plus a few bug fixes.

New

  • [pixeldata] Add transcoder API in dicom_pixeldata::transcode: pick a target transfer syntax to convert a DICOM object (#408)
  • New CLI tool dicom-transcode lets you transcode DICOM files to other transfer syntaxes (#408)
  • [storescu] dicom-storescu will now try to transcode files which are not accepted by the SCP in their original transfer syntax, by decoding the pixel data. If this is unwanted, include the option --never-transcode (#408)
  • Add JPEG 2000 decoding support (#425)
  • Add methods to decode a single frame via the object pixel data decoding API (#421)
  • [toimage] Implement --unwrap option, to extract pixel data from a file without decoding it (#416)
  • [transfer-syntax-registry/pixeldata] Add support for Encapsulated Uncompressed Explicit VR Little Endian (#423)
  • New methods and actions are available for truncating DICOM values (#418)
  • Add DecodedPixelData::to_owned and implement Clone for DecodedPixelData (#419)

Fixes

  • [core] Handle leap second from chrono time types correctly (#428)
  • [ul] Fix SCP transfer syntax negotiation quirk (#417)
  • [object] Update group length when setting transfer syntax (#410)
  • [transfer-syntax-registry] Fix padding skipping in multiframe JPEG decoding (#414)

Enhancements

  • [dictionary-std] Update data element dictionary (#429)
  • [toimage] Add "openexr" image feature by default (#411)
  • [fromimage/transcode] Add implementation class UID/version name override and retain options (#424)

Miscellaneous

  • [encoding] Fix default implementations of PixelDataWriter::encode and PixelDataReader::decode raising an error on missing Number of Frames (#408)
  • [ul] lint fix: unused doc comment (#420)
  • [transfer-syntax-registry] Update jpeg-encoder to v0.6 (#426)
  • Project maintenance (#427)
  • Tweak dicom-transfer-syntax-registry documentation and readme (#430)

πŸ“¦ Updated crates

  • dicom-core 0.6.2
  • dicom-encoding 0.6.1
  • dicom-dictionary-std 0.6.1
  • dicom-ul 0.5.1
  • dicom-transfer-syntax-registry 0.6.1
  • dicom-object 0.6.2
  • dicom-pixeldata 0.2.1
  • dicom-storescp 0.2.2
  • dicom-storescu 0.3.2
  • dicom-toimage 0.2.2
  • dicom-fromimage 0.2.2
  • dicom 0.6.2

πŸ› οΈ New tools

  • dicom-transcode (in dicom-pixeldata)

Full Changelog: v0.6.1...v0.6.2

v0.6.1

26 Aug 10:51

Choose a tag to compare

DICOM-rs 0.6.1

This is a patch release intended to solve a case where the automatic preamble detector would panic when trying to load files which are too small.
Updating the library crates and tools once possible is highly recommended.

Fixes

Miscellaneous

  • Bump rustls-webpki from 0.100.1 to 0.100.2 (#403)
  • Cargo workspace update (#406)

πŸ“¦ Updated crates

  • dicom-object 0.6.1
  • dicom-dump 0.6.1
  • dicom-storescu 0.3.1
  • dicom-findscu 0.2.1
  • dicom-toimage 0.2.1
  • dicom-fromimage 0.2.1
  • dicom-storescp 0.2.1
  • dicom 0.6.1

πŸ™ Acknowledgements

Thank you @DerOrfa for reporting the bug and fixing it in #405.

Full Changelog: dicom-core-v0.6.1...v0.6.1

dicom-core-v0.6.1

30 Jul 08:15

Choose a tag to compare

dicom-core 0.6.1

This patch release brings a fix to the pixel data fragments API, released in 0.6.0 with a bug that could prevent some DICOM readers from reading multi-frame images. Be sure to cargo update when possible.

Fixes

  • Fix basic offset table generation for encapsulated data resulting in an extra offset record (#399 @dougyau)

πŸ“¦ Updated crate

  • dicom-core 0.6.1

πŸ™ Acknowledgement

The new pixel data fragment API was brought to DICOM-rs by @dougyau, who also contributed with this fix.


Full Changelog: v0.6.0...dicom-core-v0.6.1