Skip to content

Latest commit

 

History

History
635 lines (369 loc) · 22.9 KB

CHANGELOG.md

File metadata and controls

635 lines (369 loc) · 22.9 KB

CHANGELOG

v1.16.0 (2025-01-22)

Chores

  • Update .gitattributes for merge strategies and diff management (#184, 8fef781)

Continuous Integration

  • Update CI workflow and add JUnit test reporting (#192, 8ccc0c0)

  • CI/CD - Simplified GitHub Actions workflow to focus on main branch - Added JUnit test result summary reporting - Enhanced test job error handling

  • Development Tools - Updated pytest configuration for improved test reporting and caching - Refined linting configuration - Added new development task to clean cache and coverage files

Features

  • Add Test Data classes to download from github releases (#194, 3385682)

A collection of tools for working with medical imaging data.

Options: -q, --quiet Suppress all logging except errors, overrides verbosity options. -v, --verbose
  Increase verbosity of logging, overrides environment variable. (0-3: ERROR, WARNING, INFO, DEBUG).
  --version Show the version and exit. -h, --help Show this message and exit.

Commands: dicomsort Sorts DICOM files into directories based on their tags. find-dicoms A tool to
  find DICOM files. ```

versus using `med-imagetools[test]` ``` ❯ pixi run -e dev imgtools --help Usage: imgtools [OPTIONS]
  COMMAND [ARGS]...

Commands: dicomsort Sorts DICOM files into directories based on their tags. find-dicoms A tool to
  find DICOM files. testdata Download test data from the latest GitHub release.

  • New Features - Added GitHub release management functionality for medical imaging test data.

    • Introduced new classes for handling GitHub releases and assets. - Implemented methods for downloading and extracting test datasets. - Enhanced command-line interface with a new command for downloading test datasets based on availability. - Expanded platform support in project configuration.
  • Documentation - Updated README with improved layout and badge presentation. - Enhanced project configuration in pyproject.toml and pixi.toml.

  • Tests - Added comprehensive test suite for GitHub release data management. - Created fixtures and test methods to validate release retrieval and extraction. - Enhanced test coverage with additional scenarios for error handling.

Refactoring

  • Enhance modules classes; StructureSet, PET, Dose, with factory methods (#185, 093eab0)

Walkthrough

This pull request introduces significant refactoring across multiple modules in the image tools library, focusing on DICOM reading and processing functions. The changes centralize image reading functionality into a new read_image utility function in the utils.py module, rename several method signatures to use a more generic from_dicom approach, and improve the handling of DICOM metadata across different image types like Dose, PET, and StructureSet. The modifications aim to standardize the DICOM reading process and enhance code modularity.

Changes

| File | Changes | |------|---------| | src/imgtools/io/loaders/old_loaders.py | - Updated read_dicom_rtstruct with optional roi_name_pattern parameter
- Modified method calls for StructureSet, Dose, and PET object creation | | src/imgtools/modules/dose.py | - Removed local read_image function
- Renamed from_dicom_rtdose to from_dicom
- Imported read_image from .utils | | src/imgtools/modules/pet.py | - Removed local read_image function
- Renamed from_dicom_pet to from_dicom
- Imported read_image from .utils | | src/imgtools/modules/segmentation.py | - Added new from_dicom class method
- Added from_dicom_seg alias method | | src/imgtools/modules/structureset.py | - Added from_dicom method as alias for from_dicom_rtstruct
- Reintroduced roi_names and has_roi methods
- Renamed _extract_metadata to utilize new RTSTRUCTMetadata type | | src/imgtools/modules/utils.py | - Added new read_image utility function for DICOM series reading |

  • Refactor find-dicom logic + docstring formatting, closes #149 (#186, da363d6)

  • Documentation - Improved docstring formatting for better readability in DICOM-related utility functions - Enhanced parameter descriptions in documentation

  • Chores - Reformatted code for improved readability - Slight modifications to code structure without changing core functionality

  • Remove unused imports for future re-introduction (#188, cf5cbd0)

v1.15.0 (2025-01-17)

Features

  • Refactor io module, introduce new abstract base writer (#181, e04008d)

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

v1.14.0 (2025-01-17)

Features

v1.13.0 (2025-01-16)

Features

  • Refactor utility modules, add patternresolver, formt (#170, dcc5aad)

Introduce image utilities and a new PatternResolver class, along with updated dependencies and configuration adjustments. This enhances the project's capabilities for handling image processing and pattern resolution.

Release Notes

  • New Features - Added PatternResolver for parsing and resolving filename patterns. - Enhanced ImageGeometry with a spacing attribute. - Introduced a new method to extract ROI names from DICOM files.

  • Improvements - Updated dependency specifications for numpy, pandas, and rich. - Improved code formatting across multiple files. - Expanded linting coverage for additional Python files. - Enhanced error handling and flexibility in ROI extraction from DICOM files.

  • Documentation - Improved docstrings and code comments for better readability.

  • Chores - Updated CI/CD workflow to support additional branches. - Reformatted configuration files for consistency. - Removed unused import from the io module. - Deleted the common.py file, removing obsolete functionality.

v1.12.0 (2025-01-15)

Features

  • Improve structureset and crawl modules, Refactor tests and improve dataset handling (#165, 5333a80)

v1.11.2 (2025-01-15)

Bug Fixes

  • Replaced capturing regex terms with non capturing in datagraph (#162, 3237b21)

v1.11.1 (2025-01-11)

Bug Fixes

When output_size was not provided to resample function, the size was determined based on the spacing but was floored. This would sometimes incorrectly shrink the image size. Changed to use np.round instead.

Additionally, added the output_size argument to the resample call in the resize function. The output size is already available in the function as new_size, so it doesn't make sense to recalculate it in the resample function.

Summary by CodeRabbit

  • Bug Fixes - Improved image resampling and resizing functions with more precise rounding and type handling. - Enhanced parameter validation to ensure consistent integer conversion.

v1.11.0 (2025-01-02)

Features

Co-authored-by: Joshua Siraj joshua.siraj@ryerson.ca

Refactoring

  • Improve logging, logic, and type annotations (#151, ef4d0e7)

  • New Features - Enhanced logging flexibility with new parameters for specifying logger names. - Improved progress reporting in the folder crawling process with descriptive progress bars.

  • Bug Fixes - Updated error handling for invalid file actions and DICOM tag checks for clearer user feedback.

  • Documentation - Improved docstring clarity and formatting across multiple functions.

  • Refactor - Streamlined configuration files for testing and linting processes. - Restructured class and function definitions for better readability and maintainability.

  • Style - Consistent formatting applied to function signatures and docstrings.

  • Modules/datagraph.py (#153, 41a7c88)

v1.10.1 (2024-12-03)

Bug Fixes

  • Update .gitignore to exclude SQLite and database files (95a2179)

v1.10.0 (2024-12-03)

Features

  • Begin indexing database, update find-dicoms cli, add cli documentation (#148, 48598e7)

Release Notes

  • New Features - Enhanced find_dicoms function to support limiting results and filtering by search input.

  • Documentation - Updated installation instructions and expanded "Getting Started" section in the README. - Improved navigation structure in documentation, adding new entries for CLI reference.

  • Bug Fixes - Streamlined error handling and logging for various functions, ensuring clearer outputs and improved functionality.

  • Chores - Updated dependencies and configuration files for better management and performance.

v1.9.4 (2024-11-29)

Bug Fixes

  • Configure Git credentials for GitHub Actions and update documentation deployment step (adf4e04)

  • Update GitHub Actions workflow for concurrency and permissions; (45cddb4)

v1.9.3 (2024-11-29)

Bug Fixes

  • Improve logging maintainability and temporarily remove json logging configuration (#146, afdcc98)

Refactor logging code for improved maintainability by temporarily removing JSON logging functionality.

Update the .gitignore to exclude .dcm and .sqlite files.

Introduce an environment variable for debug logging and set the default log level based on this variable.

Summary by CodeRabbit

  • New Features - Introduced a new LoggingManager class for structured logging management. - Added support for JSON logging configuration (currently commented out). - Added a new environment variable for logging level configuration in development. - New entries in .gitignore to ignore .dcm and .sqlite files. - Enhanced CI/CD pipeline with new jobs for building and publishing documentation.

  • Improvements - Enhanced logging control by utilizing environment variables for log levels. - Updated logging directory structure and default log filename for better organization. - Improved management of logging levels based on verbosity settings.

  • Bug Fixes - Improved handling of logging level discrepancies with user-specified settings.

  • Documentation - Updated docstrings and comments for clarity on new logging setup and features.

v1.9.2 (2024-11-22)

Bug Fixes

  • Pipeline entry no longer needs to manually configure loglevel (66f8119)

Chores

  • deps: Update med-imagetools to version 1.9.1 and update sha256 checksum (ab77c58)

Refactoring

  • logging: Simplify logger configuration and enhance environment variable handling (c1f624b)

v1.9.1 (2024-11-22)

Bug Fixes

  • Downstream bug where datagraph.py was missing from wheel due to data* being ignored in .gitignore (2dbb245)

Documentation

v1.9.0 (2024-11-22)

Features

  • Dicom-finder cli tool, and improve documentation (#142, 2981baa)
  • docs: add mkdocs-include-markdown plugin for Markdown file inclusion

  • docs: add tag helpers documentation for DICOM utilities

  • docs: add documentation for finding DICOM files

  • Update src/imgtools/cli/dicomfind.py

  • feat: add regex filtering and improved logging for dicom_finder function

  • chore: exclude CLI files from coverage reporting

v1.8.2 (2024-11-21)

Bug Fixes

  • Update README with new CLI point and reorganize, and formatting (96c6ab6)

v1.8.1 (2024-11-21)

Bug Fixes

v1.8.0 (2024-11-21)

Features

  • Add dicomsorting cli entry (d435f93)

v1.7.0 (2024-11-19)

Features

  • Implement logging and some standards for ruff config (#134, 7c31019)
  • feat(logging): add structlog integration with custom processors and example logger

  • chore: remove star imports

  • feat(lint): update ruff configuration to include new linting rules and extend exclusions

  • refactor: update pixi.lock and pixi.toml for ruff command structure and remove unused betapipeline entry

  • refactor(logging): standardize string quotes and improve logger configuration handling

  • feat(logging): integrate structured logging and enhance debug information in AutoPipeline and StructureSet

  • fix: #134 (comment)

  • fix: #134 (comment)

  • fix: #134 (comment)

  • refactor(logging): streamline logging configuration and ensure log directory creation

  • chore: add log files to .gitignore to prevent tracking of generated logs

  • fix: Update src/imgtools/logging/init.py

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

  • fix: #134 (comment)

  • chore: update .gitignore to include log files in imgtools directory

  • feat(datagraph): integrate logging for edge table processing and visualization

  • feat(ops): add timing for graph formation and update DataGraph initialization

  • chore: rename workflow from Test to CI-CD and restrict push triggers to main branch

  • feat(crawl): integrate logging for folder crawling and data saving processes

  • fix(structureset): enhance logging for ROI point retrieval errors

  • fix(autopipeline): update logger level to use environment variable for flexibility

  • fix(logging): streamline error handling for log directory creation

  • fix: #134 (comment)

  • refactor(logging): enhance logging configuration and streamline JSON setup

  • chore(pixi.lock): add license_family field for clarity

  • refactor(logging): enhance LoggingManager with valid log levels and improve JSON logging setup

  • refactor(logging): enhance documentation and improve LoggingManager configuration options

  • refactor(logging): validate log level assignment before setting self.level

  • feat(logging): add mypy and type-checking support; refactor logging manager and improve error handling

  • refactor(logging): remove unused Optional import from typing


v1.6.0 (2024-11-15)

Features

  • feat: started port to pixi

  • feat: updated test suite for pixi and started refactor of cicd

  • build: added coverage to gha

  • fix: explicitly direct location of package code and update pixi in pipeline

  • fix: added linux to pixi

  • chore: update GitHub Actions workflow for improved deployment process

  • chore: clean up GitHub Actions workflow by removing commented-out jobs and updating dependencies

  • chore: update GitHub Actions workflow to deploy from both main and devel branches, and refresh dependencies in pixi.lock

  • chore(sem-ver): 1.6.0-rc.1

  • fix: update version_toml path in pyproject.toml for semantic release

  • chore(sem-ver): 1.6.0-rc.2

  • chore: remove requirements.txt file and poetry.lock

  • chore: update authors and maintainers in pyproject.toml, and add version in init.py

  • chore: remove setup.py file as part of project restructuring

  • chore: update pixi.lock and add ruff configuration for linting

  • chore: fix some recommendations from coderabbit


Co-authored-by: semantic-release

v1.5.8 (2024-10-25)

Bug Fixes

  • datagraph: Iteration through edge_types wasnt updated for seg (#131, e7cca2a)
  • fix(datagraph): update edge_types to 8 and handle new edge type for SEG->CT/MR mapping in final dataframe processing

  • fix(pyproject): update attrs version constraint to allow all 23.x versions and above

v1.5.7 (2024-10-23)

Bug Fixes

  • Ci-cd - add id in release for pypi step (7abd175)

v1.5.6 (2024-10-23)

Bug Fixes

  • Update ci to release to pypi (a92a41f)

v1.5.5 (2024-10-23)

Bug Fixes

  • Remove deprecated pydicom.dicomdir.DicomDir variable type option (#130, 56ef37e)
  • fix: remove deprecated pydicom.dicomdir.DicomDir variable type option

  • style: removed Union since dicom_data can only be a FileDataset

  • refactor: remove Union import for linting

  • Update ci to use semver bot (98e3bd0)

Chores

  • #126 update docstring for StructureSetToSegmentation (reopen) (#128, 272078c)
  • chore: bump artifact action version

  • refactor: update StructureSetToSegmentation docstring and remove unused dev group in pyproject.toml

  • chore: fix download action in workflow to use correct artifact version

  • chore: correct instantiation reference and update parameter description in StructureSetToSegmentation docstring

  • chore: enhance StructureSetToSegmentation docstring to support None as a roi_names option for loading all ROIs

v1.5.4 (2024-06-12)

Bug Fixes

v1.5.3 (2024-06-10)

Bug Fixes

v1.5.2 (2024-05-29)

Bug Fixes

  • Upload latest version to pypi (1debad3)

v1.5.1 (2024-05-29)

Bug Fixes

v1.5.0 (2024-05-29)

Features

v1.1.0 (2024-05-29)

Bug Fixes

  • Add codecov badge (f43d042)

  • Explicit module to track for code coverage (f15d45d)

Chores

Features

  • feat: semantic release

  • fix: if statement issue

v1.0.3 (2022-10-14)