Skip to content

Releases: Enet4/dicom-rs

v0.8.0

06 Nov 14:49
Compare
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
Compare
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
Compare
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
Compare
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
Compare
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
Compare
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
Compare
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

DICOM-rs 0.6.0

23 Jul 15:27
Compare
Choose a tag to compare

A new milestone has arrived for DICOM-rs! Version 0.6.0 brings a wide assortment of much needed changes and an interesting array of features! In the spotlight we have a new API for attribute selection and manipulation, a redesigned pixel data adapter API, constants for normative UIDs, DICOM JSON support, an SOP Class dictionary, and many new useful conversions and methods for a better development experience.

Changes

  • Pixel data adapters were moved from encoding to transfer-syntax-registry (#251)
  • [transfer-syntax-registry] Pixel data adapters in transfer syntax registry are now available behind Cargo features (#328)
  • [pixeldata] Specific capabilities have also been feature-gated: image, ndarray, rayon (#238)
  • [dictionary-std] Update tag dictionary from DCMTK, with some breaking changes (#302)
  • [dictionary-builder] The tool was moved to devtools, and now also supports DICOM UID dictionaries (#372)
  • [pixeldata] Require Send + Sync for pixeldata::Error (#323)
  • [core] several changes were made to DicomValue for ergonomics (#353, #376, #390)
    • Type parameter P (in DicomValue and in DataElement) now has a default of Vec<u8>, which is more convenient
    • DicomValue now uses independent sequence types DataSetSequence and PixelFragmentSequence
    • Changed PartialEq implementation of DicomValue between data set items, which now ignores the items' recorded length
    • Fixed the error type returned for some of the conversion methods
  • [parser] LazyDataSetReader::next has been renamed to advance (#342)
  • [object] Error types have been split for more efficiency (#344)
  • [ul] PDU association variants and association types have been changed for more versatility (#345)
  • [core] Some type name changes in the dictionary module were made (#372)
    • Primarily to make room for other kinds of dictionaries
  • [core] Impls PartialEq<[u16; 2]> and PartialEq<(u16, u16)> for Tag were removed (#389)
    • Developers should prefer converting u16 pairs to a Tag first.
  • [ul] Corrected AbortRQServiceProviderReason (#282)

New

  • [core] Extend value retrieval API for encapsulated pixel data (#339)
  • [core] Added a public prelude module for an assortment of types users are likely to import (#391)
  • [core/object] Attribute operations API, to describe operations in data and perform them onto DICOM data sets (#326, #360, #383)
    • Attribute operations include Set, SetIfMissing, Replace, Remove, PushStr, and many more.
    • Attribute selector API enables selecting elements at an arbitrary data set nesting.
  • [object] New value_at method to get values at an arbitrary data set nesting (#394)
  • [pixeldata] New encapsulation module helps build encapsulated pixel data (#312 @dougyau)
  • [core/dictionary] SOP class dictionary (#372, #379)
  • [dictionary] normative UID constant declarations now available in module uids (#372)
  • [storescp] Can now handle C-ECHO requests (#338 @PierreBou91)
  • [core] DataDictionary trait has been extended with new default methods (#357)
    • parse_tag extends DICOM tag parsing capabilities to include a look-up by keyword
  • [core] Extend value API with mutable accessors (items_mut, etc.) (#377)
  • [core] Extend data element API with an update_value method (#377)
  • [object] New command_from_element_iter constructor functions for DICOM objects (#365)
  • [parser] Extend data set reader to support peeking (#342)
  • [encoding] Extend transfer_syntax module and re-export inventory (#359)
    • Submitting new transfer syntaxes has been made easier: no need to add inventory yourself, more re-exports at crate root, and new macros are available (submit_ele_transfer_syntax!)
  • [transfer-syntax-registry] Support for encoding to JPEG baseline (#286 @Almeida-a)

Fixes

  • [ul] Add SopClassExtendedNegotiationSubItem for Pdu (#313 @jmlaka)
  • [core] Clear leading whitespaces from values with VR DS and IS (#335 @lalberge)
  • [pixeldata] Change LUT to discard high bits of pixel data sample inputs (#347)
  • [core] Fix using dicom_value! without smallvec import (#366)
  • [object] Reset length in InMemDicomObject to UNDEFINED after any modification, fixes data set writing errors (#364 @jmlaka)
  • [findscu] Do not override Query/Retrieve Level when specified by the user (#385)
  • [transfer-syntax-registry] Fix RLE decoding in cases where number of samples > 1 (#393)

Enhancements

  • Update inventory to 0.3 (#272)
  • [core] Strings can now be converted directly to DicomValue (#377)
  • [dump] Fix and improve pixel sequence printing in dicom-dump (#340)
  • [object] Detect the presence of a file preamble with ReadPreamble::Auto (#354)
  • Support parsing strings in the form "ggggeeee" to a DICOM Tag (#363)
    • This form is often used in DICOM JSON
  • [dictionary-std] Data element dictionary now recognizes group length tags and private creator tags (#367, #370)
  • [dictionary-std] Update documentation and implementation (#367)
  • [dicom] dicom_dump has been added to the parent crate (#369)
  • [dicom] new extended documentation containing a guided overview of the DICOM-rs library (#369, #386)
  • [dump] further sanitize control characters in value summary (#371)
  • [object] Optimize size of WithMetaError (#374)
  • [echoscu] Improve output in verbose mode (#384)
  • [findscu] Now supports nested attributes in C-FIND query construction (#387)
  • [findscu] Add support for modality worklist information model (#381)

Miscellaneous

  • Update rstest to 0.16 (#327)
  • Update all CLI tools to Clap v4 (#249)
  • [dump] Replace colored with owo-colors (#328)
  • [object] Remove pixeldata module from dicom-object crate (#318)
  • [core] Remove unused util module (#331)
  • [pixeldata] Fix rustc warning at DecodedPixelData::frame_data (#332)
  • Update Cargo.lock files (#341, #358)
  • Clippy lint fix (2023-06) (#355)
  • [core] Remove default Cargo features from chrono (#356)
  • [core] Fix documentation in value module (#375)
  • Update implementation class & version for DICOM-rs 0.6 (#380)
  • Clippy lint fix (2023-07, pre-0.6) (#395)
  • Update itertools to v0.11 (#396)

πŸ“¦ New crates

  • dicom-json 0.1.0

πŸ“¦ Updated crates

  • dicom-core 0.6.0
  • dicom-encoding 0.6.0
  • dicom-dictionary-std 0.6.0
  • dicom-parser 0.6.0
  • dicom-transfer-syntax-registry 0.6.0
  • dicom-ul 0.5.0
  • dicom-scpproxy 0.5.0
  • dicom-object 0.6.0
  • dicom-dump 0.6.0
  • dicom-pixeldata 0.2.0
  • dicom 0.6.0
  • dicom-echoscu 0.3.0
  • dicom-storescu 0.3.0
  • dicom-storescp 0.2.0
  • dicom-findscu 0.2.0
  • dicom-toimage 0.2.0
  • dicom-fromimage 0.2.0
  • dicom-dictionary-builder 0.4.0

πŸ™ New Contributors

A warm thank you to new contributors @dougyau for #312, @lalberge (for #335), @PierreBou91 for #338, and @Almeida-a for #286.

New Website

DICOM-rs has a new website, primarily to serve as a nicer-looking flair to the project with a quick pitch on what it contains and what it can do. More ideas to improve it are on the way! Feel free to reach out on Zulip or discussions to provide feedback on this website. The site's full source code is also available.

Full Changelog: v0.5.4...v0.6.0

dicom-core-v0.5.4

11 Apr 21:18
Compare
Choose a tag to compare

dicom-core 0.5.4

This is a single-crate update to publish a bug fix plus a few minor features and improvements.

New

  • [core] New utility methods are available in DicomValue and DataElement for retrieving pixel data fragments and offset tables. (#339)

Fixes

  • [core] Handle leading whitespace in DS and IS values correctly (#335 @lalberge)

Miscellaneous

  • [core] Remove unused util module (#331)

πŸ“¦ Updated crates

  • dicom-core 0.5.4

v0.5.4

12 Dec 19:47
Compare
Choose a tag to compare

DICOM-rs 0.5.4

A new minor iteration of the DICOM-rs project is here!
Although fewer API extensions are included this time, it comes with bug fixes, efficiency improvements, and various dependency updates, making it highly recommended for users to update once possible.

Changes

  • image and jpeg-decoder have been updated to their latest versions, v0.24.5 and v0.3.0 respectively (#315)
  • [pixeldata] Removed ndarray-stats as a dependency, as it was not really being used internally (#305)

New

  • [core] New methods are available in PrimitiveValue for extending an existing value with more elements. See for example the documentation of PrimitiveValue::extend_str (#304)

Fixes

  • [core] [parser] Fixed flaws in textual value encoding with in-memory time representations (#309)
  • [parser] Elements with the DS or IS value representation are now written as text, even if the primitive value underneath was composed of numbers in binary form (#314)
  • [findscu] Fixed typo affecting presentation context negotiation (#307 @jmlaka)

Enhancements

  • [pixeldata] The stack memory size of error types have been significantly shrunk: GetAttributeError went from 168 bytes down to potentially 64 bytes with backtraces (#317)
  • [pixeldata] Updated gdcm-rs to v0.5.0 (#322)

Miscellaneous

  • Updated CI workflow to no longer use unmaintained actions (#316)
  • Replaced deprecated chrono calls (#310 @jmlaka)
  • [dictionary-builder] [parser] [storescp] [storescu] General Clippy lint fixing (#320)
  • Removed .travis.yml (#321)

πŸ“¦ Updated crates

  • dicom-core 0.5.3
  • dicom-encoding 0.5.3
  • dicom-parser 0.5.3
  • dicom-ul 0.4.4
  • dicom-object 0.5.4
  • dicom-dump 0.5.4
  • dicom-findscu 0.1.1
  • dicom-storescu 0.2.3
  • dicom-storescp 0.1.1
  • dicom-pixeldata 0.1.5
  • dicom-toimage 0.1.3
  • dicom-fromimage 0.1.3
  • dicom 0.5.4
  • dicom-dictionary-builder 0.3.2

Full Changelog: v0.5.3...v0.5.4