Recent Releases of highdicom

highdicom - v0.26.1

Critical bug fix release

What's Changed

  • Fix tiled segmentation volume origin bug by @CPBridge in https://github.com/ImagingDataCommons/highdicom/pull/368

Full Changelog: https://github.com/ImagingDataCommons/highdicom/compare/v0.26.0...v0.26.1

- Python
Published by CPBridge 10 months ago

highdicom - v0.26.0

New Features

  • Usability improvements for working with volumes and segmentations. Includes new match_orientation method on a Volume, new from_reference_convention parameter to Volume constructors, and new highdicom.spatial.convert_affine_to_convention function, and various docs improvements. By @CPBridge in #367
  • Improve logic to match segmentation frames to source images. Allows users to construct segmentations from Volumes without losing items in the "Derivation Image Sequence". Also allows for segmentations with multiple derivation images per frame (for construction and parsing). By @CPBridge in #361
  • Improvements to spatial calculations, including control over the tolerance parameter used to determine orthogonality, and logging of reasons for determining a set of positions is not a volume. By @CPBridge in #357
  • Add further description of VOLUME pixel origin interpretation and new checks against obvious mistakes by @CPBridge in https://github.com/ImagingDataCommons/highdicom/pull/358
  • Support for the Contributing Equipment Sequence by @CPBridge in #356
  • Add support for creating multiframe images with Extended Offset Tables by @CPBridge in #354

Bug Fixes

  • Fix ability to read from filelikes with a name property, add docs for reading from S3 by @CPBridge in https://github.com/ImagingDataCommons/highdicom/pull/336
  • Allow tiled full images with no dimension index by @CPBridge in https://github.com/ImagingDataCommons/highdicom/pull/339
  • Fix relationship type of geometric purpose by @CPBridge in https://github.com/ImagingDataCommons/highdicom/pull/343
  • Parametric map fixes by @CPBridge in https://github.com/ImagingDataCommons/highdicom/pull/346
  • Fix spacing issue when using downsample factors for pyramid by @CPBridge in https://github.com/ImagingDataCommons/highdicom/pull/349
  • Control numpy output arrays to improve efficiency by @CPBridge in https://github.com/ImagingDataCommons/highdicom/pull/350
  • Allow dimension indices to be in the shared functional groups sequence by @CPBridge in https://github.com/ImagingDataCommons/highdicom/pull/345
  • added conda recipe to installation intructions by @sarthakpati in https://github.com/ImagingDataCommons/highdicom/pull/362
  • Fix parsing TID1500 when template identifiers are missing by @CPBridge in https://github.com/ImagingDataCommons/highdicom/pull/360
  • Simply decode_frame to use pydicom decoder directly by @CPBridge in #353

Tooling

  • Set COVERAGE_CORE to speed up tests on 3.12 by @CPBridge in https://github.com/ImagingDataCommons/highdicom/pull/340

Documentation

  • Quickstart docs improvements by @CPBridge in https://github.com/ImagingDataCommons/highdicom/pull/341

New Contributors

  • @sarthakpati made their first contribution in https://github.com/ImagingDataCommons/highdicom/pull/362

Full Changelog: https://github.com/ImagingDataCommons/highdicom/compare/v0.25.1...v0.26.0

- Python
Published by CPBridge 11 months ago

highdicom - v0.25.1

Patch release with a few bug fixes and documentation updates.

What's Changed

  • Disallow measurement report with no measurement groups by @CPBridge in https://github.com/ImagingDataCommons/highdicom/pull/325
  • Fix spatial transformer from_images docstrings by @CPBridge in https://github.com/ImagingDataCommons/highdicom/pull/326
  • Enforce series description length by @CPBridge in https://github.com/ImagingDataCommons/highdicom/pull/328
  • Correctly format decimal string for spacing between slices by @CPBridge in https://github.com/ImagingDataCommons/highdicom/pull/332
  • add IDC acknowledgments by @fedorov in https://github.com/ImagingDataCommons/highdicom/pull/331
  • Allow reading from bytes objects by @CPBridge in https://github.com/ImagingDataCommons/highdicom/pull/333
  • Add docs section on working with remote filesystems by @CPBridge in https://github.com/ImagingDataCommons/highdicom/pull/334

Full Changelog: https://github.com/ImagingDataCommons/highdicom/compare/v0.25.0...v0.25.1

- Python
Published by CPBridge about 1 year ago

highdicom - v0.25.0

New Features

  • Add getframes and getstored_frames methods by @CPBridge in https://github.com/ImagingDataCommons/highdicom/pull/320

Bug Fixes

  • Critical bug fixes from the 0.24.0 release, including the implementation of the Volume.match_geometry(), Volume.random_permute_spatial_axes() and Volume.random_flip_spatial() methods, and greatly improve test coverage of the volume class by @CPBridge in https://github.com/ImagingDataCommons/highdicom/pull/319
  • Enforce monochrome 2 for input files to legacy conversion by @CPBridge in https://github.com/ImagingDataCommons/highdicom/pull/321

Documentation

  • New sections in the user guide on Images, Volumes, and Pixel Transforms
  • Add channel section to volume user guide by @CPBridge in https://github.com/ImagingDataCommons/highdicom/pull/322

Full Changelog: https://github.com/ImagingDataCommons/highdicom/compare/v0.24.0...v0.25.0

- Python
Published by CPBridge over 1 year ago

highdicom - v0.24.0

This is a significant release with several important new features added to the library. The user guide will be updated soon with explanations of the new functionality.

Features

  • Update internal DICOM standard information to 2024c
  • Add support for the new LABELMAP segmentation type, introduced in DICOM 2024c. Labelmap segmentations store non-overlapping segments as an array in which pixel value indicates membership of a segment. This can be used simply by setting the segmentation_type parameter of the highdicom.seg.Segmentation constructor to "LABELMAP". Parsing of Labelmap segmentations is also supported. By @CPBridge in https://github.com/ImagingDataCommons/highdicom/pull/234
  • Add implementations of pixel transformations in new highdicom.pixels module and elsewhere, including real world value map, modality LUT, VOI LUT, presentation LUT, and Palette Color LUT.
  • Add new general highdicom.Image class for reading frames from general DICOM images, and creating Volumes from general images. Methods on this class allow for reading frames with the above pixel transformations configurably applied.
  • Add new highdicom.Volume class, representing an array of pixels in 3D space by @CPBridge in https://github.com/ImagingDataCommons/highdicom/pull/277
  • Several new functions in highdicom.spatial related to 3D volumes and affine matrices.
  • Automatically set the DimensionOrganizationType attribute of a segmentation to 3D if the conditions are met.
  • Add magic methods to allow segmentation objects to be pickled and unpickled
  • Use pyupgrade to update all type hints to 3.10+ style
  • Add ability to add spatial coordinates to a measurement by @Fedalto in https://github.com/ImagingDataCommons/highdicom/pull/307
  • Add support for python 3.13 by @CPBridge in https://github.com/ImagingDataCommons/highdicom/pull/312

Full Changelog: https://github.com/ImagingDataCommons/highdicom/compare/v0.23.1...v0.24.0

- Python
Published by CPBridge over 1 year ago

highdicom - v0.23.1

Patch release with a few minor bug fixes

Bug Fixes

  • Update docs to reflect python 3.10 dependency by @CPBridge in https://github.com/ImagingDataCommons/highdicom/pull/308
  • Allow searching SRs using LongCodeValue and URNCodeValue. Fix for #309 by @rhaxton in https://github.com/ImagingDataCommons/highdicom/pull/310
  • Fix for BOT construction with pydicom 3, by @CPBridge in https://github.com/ImagingDataCommons/highdicom/pull/314
  • Fix SR if SpacingBetweenSlices is not set, by @Fedalto in https://github.com/ImagingDataCommons/highdicom/pull/315

New Contributors

  • @rhaxton made their first contribution in https://github.com/ImagingDataCommons/highdicom/pull/310

Full Changelog: https://github.com/ImagingDataCommons/highdicom/compare/v0.23.0...v0.23.1

- Python
Published by CPBridge over 1 year ago

highdicom - v0.23.0

Dependencies

  • Highdicom now depends upon pydicom > 3.0.1. #301
  • Highdicom now requires python > 3.10. This was necessitated by a similar move from pydicom. #301
  • Remove references to numpy.float_ to allow working with numpy>2

Tooling/Repo

  • We have adopted the contributor covenant. #271
  • Various style improvements #286 #287 #289 #290 #291 #292
  • We have moved to pyproject.toml metadata. #293
  • Improve automated checks to enforce repo review rules #296

Features

  • Further checks on graphic data for SRs #276
  • Additional checks for microscopy bulk annotation coordinate types #281
  • Further improvements in segmentation creation efficiency #285
  • Allow creation of pyramid segmentations with floating point arrays, or with multiple segments #297
  • Add options allowing to infer the subject context from an image #298
  • Use pydicom 3 features to enable additional transfer syntaxes in compression.
  • Add methods to get a list of images used as evidence within an SR #303
  • Add a further_source_images option to the segmentation constructor #304

Fixes

  • Minor fixes for microscopy bulk annotation graphic data #278
  • Remove the JP2 wrapper from JPEG 2000 encoding

Docs

  • Added a gitflow section to the developer guide. #272

- Python
Published by CPBridge over 1 year ago

highdicom - v0.22.0

Probably left this one far too long...

New Features

  • New features for parsing existing Microscopy Bulk Annotations: annread function and annotation_coordinate_type property (#230)
  • Multiprocessing for frame encoding in segmentation construction (#245)
  • A major set of improvements for working with tiled segmentations including ability to pass in total pixel matrices to the segmentation constructor, the ability to create and read TILED_FULL segmentations, and the ability to construct segmentation total pixel matrices from tiled images (#248)
  • New function to create multiresolution segmentation pyramids (#253)

Bug fixes

  • Allow duplicate entries in the ReferencedSeriesSequence of a segmentation image (#229)
  • Remove plane orientation from the shared functional groups in the case of segs using the slide coordinate system (#236), a DICOM compliance issue
  • Exclude incompatible pydicom 2.4.0 in setup.py (#238)
  • Fixes to various value representations (#239)
  • Fix return type of highdicom.seg.DimensionIndexSequence.get_plane_positions_of_image (#240)
  • Correctly account for chrominance subsampling of natively encoded YBR_FULL_422 images in the ImageFileReader (#242)
  • Work around pillow 10.0.0 breaking changes (#244)
  • Specimen description and preparation fixes within microscopy related content items (#246)
  • A number of style improvements (#257 #258 #259 #261 #262 #263 #264 #265 #268)

Performance improvements

  • Significant improvements to segmentation creation efficiency (#227)

Documentation and tests

  • Add codespell tool to check for spelling errors in the docs (#237)
  • Fix documentation links (#250)
  • Fix the readthedoc config (#256)
  • Fix to an incorrectly written frame encoding test (#270)
  • Use latest version of github actions (#266)

New contributors

Thanks to @yarikoptic @thomas-albrecht @elitalien and @DimitriPapadopoulos for their first contributions to highdicom!

- Python
Published by CPBridge over 2 years ago

highdicom - v0.21.1

Bug fixes

  • Correctly deal with LongCodeValue and URNCodeValue in CodedConcept.from_dataset() (#226)
  • Remove an unnecessary table join when fetching segmentation pixel (#224)
  • Fix ImageFileReader's handling of DicomFileLike objects, meaning that you can now read frames from a open file handle or a pydicom.filebase.DicomBytesIO object (an in-memory buffer) (#223).

New contributors

  • Thanks to @RobinFrcd for his first contribution to the library (#223)!

- Python
Published by CPBridge about 3 years ago

highdicom - v0.21.0

New features

  • The implementation of methods for constructing segmentation pixels arrays from a highdicom.seg.Segmentation object (highdicom.seg.Segmentation.get_pixels_by_source_instance(), highdicom.seg.Segmentation.get_pixels_by_source_frame(), and highdicom.seg.Segmentation.get_pixels_by_dimension_index_values()) have been considerably refactored with a general focus on improving the usability for large segmentation objects (https://github.com/ImagingDataCommons/highdicom/pull/208). These changes are compatible with existing code except that in some cases the methods may return numpy arrays with a smaller unsigned integer data type than they previously did. User code should see significant speed-ups without any changes. The new versions have several improvements:
    • Improvements in computational efficiency due to a redesign of the way the frame look-up table is stored under the hood. Now an in-memory sqlite database is used through the Python standard library sqlite3 module. This allows for considerably faster and more flexible querying.
    • Significant improvements in memory efficiency for the case where combine_segments=True. Previously the memory usage scaled as O(n) in the number of segments, now it is constant (O(1)).
    • When combining segments, the methods now automatically determine and return an appropriate unsigned integer datatype to return the smallest array that can represent all segments. This has been observed to reduce both the memory usage and improve speed (largely due to the reducing the need to allocate memory for unnecessarily large numpy arrays)
    • There is a new parameter, dtype, that allows the user to choose the data type of the output array (overriding the automatically determined default).
    • There is a further new boolean parameter skip_overlap_checks, which allows the user to specify that the check for overlapping segments in the case where combine_segments=True is skipped. This makes a significant difference to runtime. If this is done and two segments do overlap, the segment with the highest output segmentation number will be placed into the output array preferentially. The default behaviour matches the previous behaviour in that checks for overlapping segments are performed, and an error is raised if any two segments overlaps.
    • The user guide is updated to the preferred way of accessing pixel data using the above methods.
  • There is now an optional parameter in from_dataset() methods called copy. By default, this parameter is True, meaning that a full deepcopy of the original dataset is made before conversion to the highdicom class, which matches the previous behaviour. This is the "safest" option that prevents potentially unwanted behaviour downstream if the user tries to re-use the original dataset. However if the user chooses to set this parameter to False, then the deepcopy is skipped and the original dataset is updated in place. This can give a very significant speed-up when the segmentation object are large. Additionally this is used in the segread and srread functions to give a significant speed up as it is never necessary to deepcopy the temporary object read from file (https://github.com/ImagingDataCommons/highdicom/pull/207).
  • Added a new function highdicom.sr.srread(), similar to the existing highdicom.seg.segread(), to read a dataset representing a supported Structured Report SOP Class from a file and convert it to the appropriate highdicom class automatically (https://github.com/ImagingDataCommons/highdicom/pull/215).
  • Users may now pass a single-element Sequence to the content parameter of the __init__ methods of Structured Report SOP classes, as alternative to passing a pydicom.Dataset. This is more intuitive for users that have constructed a highdicom.sr.MeasuremenrtReport class and wish to use it as the content of a new Structured Report (https://github.com/ImagingDataCommons/highdicom/pull/216).

Enhancements

  • The library's repository was moved to the ImagingDataCommons organization on GitHub, and all URLs were updated (https://github.com/ImagingDataCommons/highdicom/pull/212).
  • The library's Github Actions now run the tests using Python 3.11 in addition to older versions (https://github.com/ImagingDataCommons/highdicom/pull/217) to ensure that highdicom supports the latest Python version.

Bug fixes

  • A minor tweak to the routine for segmentation construction that avoids creating a copy of large portions of the input array just to find the unique values (https://github.com/ImagingDataCommons/highdicom/pull/221).
  • A bug, resulting in the ReferencedImageSequence of a highdicom.ann.MicroscopyBulkSimpleAnnotations always being empty, was resolved (https://github.com/ImagingDataCommons/highdicom/pull/220).
  • A mistake in the docstrings of the PixelToReferenceTransformer, ReferenceToPixelTransformer, and ImageToReferenceTransformer classes was fixed (https://github.com/ImagingDataCommons/highdicom/pull/209).
  • A bug that resulted in GSPS creation failing when the referenced images have multiple values for WindowWidth, WindowCenter and/or WindowCenterWidthExplanation was fixed (https://github.com/ImagingDataCommons/highdicom/pull/211).

- Python
Published by CPBridge about 3 years ago

highdicom - v0.20.0

v0.20.0

New features

  • Move pylibjpeg and related dependencies (pylibjpeg-libjpeg and pylibjpeg-openjpeg) from requirements to optional requirements. This means that the default installation is compatible with highdicom's MIT license. There are now some transfer syntaxes that are not supported with the default installation. Users can install highdicom with the optional dependencies by specifying highdicom[libjpeg] as their installation target. Update github test runners to support both the cases where the optional requirements are installed and are not installed (https://github.com/herrmannlab/highdicom/pull/201).

Enhancements

  • Add citation file to allow citing the package (https://github.com/herrmannlab/highdicom/pull/204).

Bug fixes

  • Use a deepcopy for CodedConcept.from_dataset() to avoid issues with optional attributes of the sequence getting lost (https://github.com/herrmannlab/highdicom/pull/205).
  • When the omitemptyframes option is used for a Segmentation and an empty segmentation mask is passed (i.e. a mask with all zeros), the constructor will issue a UserWarning and ignore the omitemptyframes option (https://github.com/herrmannlab/highdicom/pull/181).

- Python
Published by CPBridge over 3 years ago

highdicom - 0.19.0

New features

  • Implementation of TID 1601 Image Library Entry (#83)

Enhancements

  • Allow annotations to reference multiple multi-frame images (#193)
  • Remove module level imports of module data to improve test coverage reporting (#196)

Bug fixes

  • Fix namespace of segmentation usage example (#195)

- Python
Published by hackermd almost 4 years ago

highdicom - 0.18.4

Enhancements

  • Improve efficiency of plane position computation (#191)

Bug fixes

  • Fix decoding of graphic data in annotations group (#192)

- Python
Published by hackermd almost 4 years ago

highdicom - 0.18.3

Bug fixes

  • Do exact comparison when checking coordinates of graphics data in constructor of ann.AnnotationGroup (#169)
  • Fix example for use of io.ImageFileReader (#185)

Enhancement

  • Don't fail upon construction of io.ImageFileReader if color image lacks ICC Profile (#189)

- Python
Published by hackermd almost 4 years ago

highdicom - 0.18.2

Enhancements

  • Allow segmentation of images without a frame of reference UID (#183)
  • Allow passing of additional attributes of equipment module (#182)

- Python
Published by hackermd almost 4 years ago

highdicom - 0.18.1

Bug fixes

  • Fix references of source images and inclusion of palette color lut attributes in Advanced Blending Presentation State (#179)

- Python
Published by hackermd almost 4 years ago

highdicom - 0.18.0

New features

  • Implement Softcopy Presentation State IODs (#139)
  • Add method to construct UID from an existing UUID (#176)

Bug fixes

  • Ensure values of data elements with binary VRs are encoded/decoded correctly (#173)

Breaking changes

- Python
Published by hackermd about 4 years ago

highdicom - 0.17.0

Enhancements

  • Support referencing of source images in SR template TID 1501 (#169)

Bug fixes

  • Fix typo in error message (#175)

- Python
Published by hackermd about 4 years ago

highdicom - 0.16.0

New features

  • Implement decoding API for SpecimenDescription and related classes such as SpecimenPreparationStep and friends (#161)

Enhancements

  • Run tests on examples included in docstrings (#165)

Bug fixes

  • Fix computation of tile positions for TILED_FULL images that contain multiple optical paths (#161)

Breaking changes

  • Derive SpecimenPreparationStep from pydicom.Dataset instead of pydicom.Sequence (#161, see section in release notes for further details).

- Python
Published by hackermd about 4 years ago

highdicom - 0.15.3

Enhancements

  • Support pydicom version 2.3.0 (#163)

- Python
Published by hackermd about 4 years ago

highdicom - 0.15.2

Bug fixes

  • Fix computation of plane positions for images with Dimension Organization TILED_FULL and more than one optical path (#158)

- Python
Published by hackermd about 4 years ago

highdicom - 0.15.1

Bug fixes

  • Use correct color space for encoding of frames with JPEG baseline 8-bit transfer syntax (#157)
  • Remove superfluous file meta information attributes (#156)

- Python
Published by hackermd over 4 years ago

highdicom - 0.15.0

Enhancements

  • Warn in case of a malformed person name instead of raising an errors (#154)
  • Simplify description of specimen preparation steps (#153)

Bug fixes

  • Convert color space upon decoding of JPEG compressed color image frames (#152)

Breaking changes

  • Deprecate processing_type parameter of constructor of highdicom.SpecimenPreparationStep (see section in release notes for further details)

- Python
Published by hackermd over 4 years ago

highdicom - 0.14.2

Bug fixes

  • Fix name of utility function parameter (#149)

- Python
Published by hackermd over 4 years ago

highdicom - 0.14.1

Bug fixes

  • Account for non-tiled images with slide-based coordinate system (#146)
  • Fix mapping of image and reference coordinates (#146)

New features

  • Add method to get all graphic data of an annotation group (#147)

Breaking changes

  • Parameters ofhighdicom.spatial.map_pixel_into_coordinate_system changed from coordinate: Sequence[float] to index: Sequence[int]
  • Return value of highdicom.spatial.map_coordinate_into_pixel_matrix changed from Tuple[float, float, float] to Tuple[int, int, int]

For further information on these changes, please refer to the corresponding section in the release notes .

- Python
Published by hackermd over 4 years ago

highdicom - 0.14.0

New features

  • Add support for JPEG-LS encoding/decoding (#142)

- Python
Published by hackermd over 4 years ago

highdicom - 0.13.1

Bug fixes

  • Fix alternative construction of KeyObjectSelectionDocument instances (#134)
  • Fix compliance issues of ParametricMap (#140)

- Python
Published by hackermd over 4 years ago

highdicom - 0.13.0

Enhancements

  • Add support for Finding Category in TID 1501, 1410, and 1411 according to CP 2176 (#138)

Bug fixes

  • Ensure segment pixel data are properly scaled to [0, 255] range when Segmentation Type is FRACTIONAL (#137)

- Python
Published by hackermd over 4 years ago

highdicom - 0.12.1

Bug fixes

  • Fix standard compliance issues of KOS instances (#133)

- Python
Published by hackermd over 4 years ago

highdicom - 0.12.0

New features

  • Implementation of Key Object Selection Document Storage SOP Class (#132)
  • Allow users to specify Content Label (#130)

Enhancements

  • Add Total Pixel Matrix Rows/Columns attributes to Segmentation and Parametric Map objects (#131)
  • Add anatomy attributes to annotations groups
  • Add example for creation of Secondary Capture images
  • Enforce Series Number and Instance Number to be positive integers (#127)

Bug fixes

  • Fix JPEG2000 encoding of frames (#119)
  • Add missing import statements for Structured Report examples and fix typos in documentation (#125)
  • Fix Pixel Spacing in Secondary Capture image (#128)
  • Include API documentation for new packages

- Python
Published by hackermd over 4 years ago

highdicom - 0.11.0

New features

  • Implement Microscopy Bulk Simple Annotations (#114)

Enhancements

  • Use Explicit VR Little Endian transfer syntax by default for all SOP classes (#114)

Bug fixes

  • Use correct attribute in dimension index of segmentation (#116)
  • Allow reference of more than one frame for segmentation source images of planar regions (#118)
  • Prevent inclusion of empty content sequence into SR content items (#121)

- Python
Published by hackermd over 4 years ago

highdicom - 0.10.0

New features

  • Add methods and properties for parsing referenced segments in SR document content (#104)

Improvements

  • Include Image Orientation (Slide) and Total Pixel Matrix Origin Sequence attributes in Segmentation (#102)

Bug fixes

  • Add missing import statement in example code snippet of documentation (#113)
  • Correct value types of Volume Surface content item(s) in SR document content (#112)
  • Fix indentation issue in legacy package (#111)

- Python
Published by hackermd over 4 years ago

highdicom - 0.9.2

Bug fixes

  • Correct code name of Specimen Preparation Step (#108)
  • Correct attribute name of legacy converted images (#105)

Documentation

  • Add example on how to create secondary capture image (#109)

- Python
Published by hackermd over 4 years ago

highdicom - 0.9.1

Bug fixes

  • Allow inclusion of content items without Relationship Type into content sequences defined by Acquisition and Protocol templates (#107)

- Python
Published by hackermd over 4 years ago

highdicom - 0.9.0

New features

  • Implement Parametric Map IOD (#89)
  • Enable construction of highdicom objects from existing pydicom objects (#93) python dataset = pydicom.filereader.dcmread(...) segmentation = hd.seg.Segmentation.from_dataset(dataset)
  • Add properties and methods to classes derived from highdicom.sr.ContentItem and highdicom.sr.Template to facilitate data access python document = hd.sr.ComprehensiveSR(...) measurement_groups = document.content.get_planar_roi_measurements()

Improvements

  • Add unit tests
  • Improve description of parameters in docstrings
  • Add docstrings to enums
  • Add image library entries for SR documents based on TID 1500 (#77)

Bug fixes

  • Fix many mypy errors
  • Record evidence correctly (Current Requested Procedure Evidence Sequence versus Pertinent Other Evidence Sequence)
  • Fix highdicom.sr.RelationshipType
  • Fix default value for Pixel Origin Interpretation
  • Allow Concept Name Code Sequence to be absent
  • Write error traceback to stderr instead of stdout

Major changes

  • Change implementation of highdicom.sr.QualitativeEvaluation (is now derived from highdicom.sr.Template rather than highdicom.sr.ContentItem for consistency with highdicom.sr.Measurement)
  • Make value and unit parameters of highdicom.sr.NumContentItem required (the corresponding attributes are required by the standard)
  • Change fields of highdicom.PatientSexValues to single letters (for consistency with other enums)
  • Add references to Current Requested Procedure Evidence Sequence rather than Pertinent Other Evidence Sequence if instances are referenced in the SR document content tree

- Python
Published by hackermd over 4 years ago

highdicom - 0.8.0

Bug fixes

  • Fix Dimension Organization of Segmentation instances (#92).

Major changes

  • Deprecate Segmentation.add_segments() method (#92). All segments now need to be passed to the constructor method. See more detailed release notes about this issue here.

- Python
Published by hackermd almost 5 years ago

highdicom - 0.7.0

Improvements

  • Improve import logic for subpackages and modules to allow: python import highdicom as hd seg_image = hd.seg.Segmentation(...)
  • Update API documentation to reflect namespaces of public API
  • Add unit tests and increase test coverage

- Python
Published by hackermd about 5 years ago

highdicom - 0.6.0

Improvements

  • Increase test coverage of highdicom.sr.templates and highdicom.sr.content modules
  • Add hyperlinks for context groups (CIDs) and templates (TIDs) to docstrings
  • Add checks to ensure that argument segment_number of highdicom.seg.sop.Segmentation.add_segments method is a positive number
  • Add checks to ensure that segments added to Segmentation instance via highdicom.seg.sop.Segmentation.add_segments are ordered correctly
  • Add checks to prevent Content Sequence in Finding Sites from being empty
  • Make tests stricter by enforcing valid value representation in pydicom
  • Add alternative constructor methods for highdicom.sr.content classes

Bug fixes

  • Make algorithm_identification parameter of highdicom.seg.content.SegmentDescription constructor optional to support manual segmentation
  • Make laterality parameter highdicom.sc.sop.SCImage constructor optional
  • Fix referencing segments in Planar/Volumetric ROI Measurements and Qualitative Evaluations templates
  • Fix Code Value in highdicom.sr.templates.DeviceObserverIdentifyingAttributes
  • Include documentation of highdicom.uid module
  • Fix constructor of highdicom.sr.templates.TimePointContext

- Python
Published by hackermd about 5 years ago

highdicom - 0.5.1

Bug fixes

  • Fix addition of segments to Segmentation image with different plane positions

Improvements

  • Increase unit test coverage

- Python
Published by hackermd over 5 years ago

highdicom - 0.5.0

New features

  • Implement image file reader for efficient frame-level access (highdicom.io.ImageFileReader)
  • Add support for spatial coordinate transformations (highdicom.spatial.ImageToReferenceTransformer and highdicom.spatial.ReferenceToImageTransformer)
  • Add support for color management based on ICC Profiles (highdicom.color.ColorManager)
  • Add utilities for encoding and decoding of frames (highdicom.frame.decode_frame and highdicom.frame.encode_frame)
  • Add new content item geometric_purpose to structured reporting templates (highdicom.sr.templates.PlanarROIMeasurementsAndQualitativeEvaluations and highdicom.sr.templates.VolumetricROIMeasurementsAndQualitativeEvaluations)

Improvements

  • Add more segmentation test datasets
  • Apply stricter flake8 coding style rules

Bug fixes

  • Fix copying of specimen attributes in derived objects (highdicom.base.SOPClass)
  • Fix docstring in structured reporting template (highdicom.sr.templates.Measurement)

- Python
Published by hackermd over 5 years ago

highdicom - 0.4.1

Bug fixes

  • Remove optional Total Pixel Matrix Focal Planes attribute from Segmentation SOP class
  • Fix typing errors reported by newer mypy versions

- Python
Published by hackermd almost 6 years ago

highdicom - 0.4.0

New features

  • Class for creating DICOM UIDs with implementation-specific UID prefix

- Python
Published by hackermd about 6 years ago

highdicom - 0.3.0

Enhancements

  • Check type hints using mypy and enforce stricter typing rules (all functions must be annotated)
  • Check test coverage using coverage and enforce coverage > 75%

Major changes

  • Discontinue support for Python versions < 3.6

- Python
Published by hackermd about 6 years ago

highdicom - 0.2.0

Features

  • Additional SOP classes for SR: EnhancedSR, ComprehensiveSR

Bug fixes

  • Fix typos in documentations

- Python
Published by hackermd over 6 years ago

highdicom - 0.1.0

Initial release

- Python
Published by hackermd over 6 years ago