Releases: slicebox/dicom-streams
Better logging
This release comes with a new trait in the modular system for building flows, GroupLengthWarnings
, that will let the user know if changes are made to a dicom file with group length attributes, or determinate length sequences/items. This avoids difficult to find bugs in flows where re-encoding and filtering should be included to maintain valid DICOM data.
Bug fix in flow that converts to indeterminate length sequences and items
This release fixes a critical bug that would write only item delimitations, no sequence delimitations in DicomFlows.toIndeterminateLengthSequences
.
Refactoring and simpler validation
In this release we removed the validation flow which provided little functionality, and replaced it with a dedicated flow for validating presentation context. Lot's of code has been removed for a leaner library.
Support for VR TM (Time)
This release adds support to Elements
and Value
for values with VR=TM.
TagPath and TagTree
In previous versions, TagPath
was used to describe both simple non-branching paths to an element such as when iterating through a dataset, or when getting the value of an element, and there was support for using wildcards which corresponds to a tree of paths. For some methods, wildcards were allowed and for others they were not. Since there was no way of telling if a TagPath
was simple or a tree, runtime errors occurred when not used correctly. In this release, TagPath
represents simple tag paths only, and a new class TagTree
supports wildcards. This provides better type safety and a better developer experience. Moreover, TagPath
now has additional subclasses denoting item and sequence delimitations which now gives all elements of a dataset a unique path. These paths can be sorted correctly if necessary.
Better sequence and tag path handling
- Easier to add, remove and update elements in sequences and whole items/sequences
- Get any element based on a tag path
- Tag path parsing and formatting now supports keywords
- All dictionary methods moved to single
Dictionary
class
Robust VR=UN handling
This relase simplifies the handling of elements with VR=UN. Before, a more specific VR was in some circumstances guessed. Now, all elements with VR=UN are treated as a block of binary data. This is more robust.
Bugfix
First release
This is the first release of dicom-streams, a library for fully streaming parsing and processing of DICOM data. It builds upon the project dcm4che-streams which added a streaming API to the dcm4che project, but does not have dependencies to any existing DICOM libraries.