Release Notes
0.5.2 [2026-02-13]
Enhancements:
- Added automated release notes generation using Claude Code in CI pipeline
Maintenance:
- Migrated from
poetrytouvfor dependency management - Updated
pyproject.tomlandpre-commit-config.yamlto new standard - Simplified Dockerfile
- Updated manifest source URL from blob-specific path to repository root
Documentation:
- Fixed broken Flywheel documentation URL in
docs/usages.mdfromdocs.flywheel.io/user/compute/gears/user_gear_rules/todocs.flywheel.io/user/workflow/gear-based/user_gear_rules/ - Expanded historical release notes coverage from version
0.5.0back to0.1.0
0.5.1 [2025-07-14]
Fixes:
- Fixed handling of list-type DICOM tag values in 4D detection by converting to tuples before creating sets
- Improved code style by simplifying conditional check in
check_0_bytefunction
Maintenance:
- Updated CI configuration to use
.dockerinstead of.podmanfor test execution - Updated
gitto2.50.1-r0andjqto1.8.0-r0in Docker image to address vulnerabilities - Optimized Dockerfile to reduce image layer duplication and consolidated
apkcommands - Uninstalled
setuptoolsin production Docker image to reduce attack surface - Added
flywheeluser to production Docker image for non-root execution - Added linter suppression comments for non-top-level imports from
fw-gear-dicom-splitter
Documentation:
- Improved link formatting in
CONTRIBUTING.md,README.md,docs/details.md, anddocs/faq.md
0.5.0 [2025-04-03]
Enhancements:
- Replaced
check_dciodvfyconfig option withcheck_dicom_validatorto usedicom-validatortool for DICOM compliance checking - Added
dicom_standardconfig option to specify DICOM standard version fordicom-validator(default:current)
Fixes:
- Enhanced pixel data validation to detect unparseable pixel arrays
Maintenance:
- Removed
dicom3toolsdependency and associated build stages fromDockerfile - Updated
fw-gear-dicom-splitterdependency constraint from^2to>=2.1.0 - Upgraded base image
pythonversion from3.12.6to3.13.1 - Removed
curlinstallation from dev stage inDockerfile
Documentation:
- Updated documentation to reflect migration from
dciodvfytodicom-validator - Fixed broken Flywheel documentation URL in
docs/usages.md
Breaking Changes:
- Removed
check_dciodvfyconfig option - replaced bycheck_dicom_validator - Removed
dicom3toolscitation frommanifest.json
0.4.14 [2024-10-04]
Enhancements:
- Added
fail_on_critical_errorconfig option to mark job as failed when critical errors (i.e. corrupted pixel data) are encountered - Added
skip_when_4Dconfig option to skipslice_consistencyandbed_movingtests when gear identifies DICOM as 4D
Maintenance:
- Migrated base image from
gcc:11.2.0-bullseyetoflywheel/python:3.11-alpine - Updated
pythonfrom3.9to3.11 - Migrated from
flywheel-gear-toolkittofw-gearlibrary - Updated CI configuration to use
flywheel-io/tools/etc/qa-cireference - Updated pre-commit hooks to use
ruffinstead ofblackandisort - Added multi-stage Dockerfile with separate
devandprodtargets - Added
uvfor faster dependency installation - Updated dependency
fw-gear-splittertofw-gear-dicom-splitter
Documentation:
- Restructured documentation with new
mkdocssite including Overview, Details, Examples, Usages and Workflows, FAQ, and Release Notes - Moved JSON schema examples from
examples/directory to documentation - Updated README to link to new documentation site
- Added API reference documentation using
mkdocstrings
0.4.13 [2024-02-23]
Enhancements:
- Added
show-jobflag to manifest configuration for improved job visibility
Maintenance:
- Updated
fw-gear-splitterfrom^1.7.0to^1.7.1
0.4.12 [2024-02-15]
Fixes:
- Fixed
dciodvfycommand parsing to properly handle shell operators by usingshell=Trueinsubprocess.Popen
0.4.11 [2024-02-13]
Maintenance:
- Updated
fw-gear-splitterdependency from^1.5.2to^1.7.0 - Specified
amd64architecture in Dockerfile base image - Updated
blackfrom^20.8b1to^21.0 - Updated
mypyfrom^0.790to^1.0
0.4.10 [2024-01-12]
Enhancements:
- Added new
check_dciodvfyrule to validate DICOM compliance using thedciodvfybinary - Improved
dciodvfyerror reporting to show which slices are affected by each error type - Added de-identification validation example JSON schema demonstrating how to verify certain DICOM tags are not present
Fixes:
- Fixed metadata storage format by renaming
descriptionfield todatain rule reports to align with QC namespace standards - Improved handling of invalid CS values in DICOM headers through updated
fw-filedependency - Improved handling of invalid DS/IS values in DICOM headers through updated
fw-filedependency
Maintenance:
- Migrated CI configuration from
flywheel-io/tools/etc/qa-citoflywheel-io/scientific-solutions/etc/sse-qa-ci - Updated
.pre-commit-config.yamlhooks to use new QA-CI configuration - Migrated from
poetryto directpipinstallation inDockerfile - Updated
pythonversion constraint to>=3.8,<4inpyproject.toml - Updated
fw-gear-splitterdependency from^1.3to^1.5.2 - Removed
pandasandjsonschemaas direct dependencies (now transitive) - Updated Docker entrypoint to use
pythondirectly instead ofpoetry run - Added
requirements.txtandREADME.mdto.dockerignoreinclude list - Set pytest coverage threshold to 95% in CI configuration
- Updated repository source URL to
flywheel-io/scientific-solutions/gears/dicom-qc
Documentation:
- Updated README to reflect
datafield instead ofdescriptionin QC output - Added documentation for
check_dciodvfyrule - Expanded JSON schema validation examples with detailed explanation of how validation works with
file.infometadata - Added example demonstrating how to use
"not"and"anyOf"keys to validate absence of specific DICOM tags
0.4.9 [2022-08-24]
Maintenance:
- Changed suite classification from
AEQCtoCuration
0.4.8 [2022-08-24]
Enhancements:
- Changed gear suite designation from
CurationtoAEQC
0.4.7 [2022-08-23]
Fixes:
- Fixed state comparison to use
PASSinstead ofpassedin zero-byte file check (fw_gear_dicom_qc/main.py:76) - Updated test assertions to use
PASSstate consistently in test suite
Maintenance:
- Removed
.dvcdirectory and configuration files from version control - Added
.dvcto.gitignoreto prevent future tracking - Fixed JSON formatting in
basic-only-dicom-dicom-array.jsonexample file
Breaking Changes:
- Changed
validation-schemainput from optional to required in manifest
0.4.6 [2022-07-01]
Fixes:
- Fixed trailing comma in empty JSON schema file
0.4.5 [2022-07-01]
Enhancements:
- Made
validation-schemainput optional with automatic fallback to empty schema when not provided
Fixes:
- Fixed QC state values to use uppercase format (
PASS/FAILinstead ofpassed/failed/na) - Fixed metadata update to use
context.metadata.add_qc_result()instead of deprecatedadd_qc_info() - Fixed file tag handling to use
context.metadata.add_file_tags()
Maintenance:
- Updated
fw-gear-splitterdependency from^1.2.3to^1.3 - Added
.dockerignorefile to optimize Docker build context - Removed
na_rule()helper function, now usingpass_rule()for non-applicable cases - Removed unused
pathlib.Pathimport frommain.py - Refactored
create_metadata()toupdate_metadata()with simplified interface
0.4.4 [2022-05-12]
Maintenance:
- Updated splitter dependency with bug fix
- Removed
dvcandgcsfsdevelopment dependencies
0.4.3 [2022-04-27]
Fixes:
- Fixed UTF-8 decode errors when processing
dciodvfyoutput by adding error replacement handling
0.4.2 [2022-03-16]
Fixes:
- Fixed handling of single DICOM file validation to properly initialize
DICOMCollectionwith the file path - Corrected order of validation operations to check for 0-byte files before processing DICOM collection
- Fixed logic to properly exit when single DICOM file fails 0-byte check
Maintenance:
- Added parametrized test coverage for both zipfile and single file paths in
test_run()
0.4.1 [2022-02-24]
Fixes:
- Fixed modality extraction by correctly accessing
file_["object"]in metadata creation - Fixed duplicate tag addition by checking if tag already exists before appending
0.4.0 [2022-02-14]
Enhancements:
- Added
dciodvfy(DICOM IOD Verify) binary fromdicom3toolsfor DICOM compliance verification - Added new
check_dciodvfyconfiguration option to enable/disable DICOM compliance verification (defaultTrue)
Maintenance:
- Updated
pythonversion constraint from^3.8to>=3.8,<3.11 - Updated
fw-gear-splitterfrom^1.0to^1.2.3 - Added
SAFETY_EXTRA="--ignore 44715"to.envconfiguration - Migrated
Dockerfileto multi-stage build withgcc:11.2.0-bullseyefor buildingdicom3tools - Updated base image reference from
flywheel/python-gdcm:master.3a9476betoflywheel/python-gdcm:main.bcc9ef6b - Updated
.gitlab-ci.ymlto pin specific commit SHA and restructuredPUBLISH_POETRYvariable to job-level scope
Documentation:
- Added citation for
dicom3toolslibrary inmanifest.json - Updated
README.mdto document newcheck_dciodvfyconfiguration option
Breaking Changes:
- Changed license from
MITtoBSD-3-Clause
0.3.0 [2021-11-09]
Enhancements:
- Changed slice location calculation to only use
ImageOrientationPatientandImagePositionPatient(removed fallback toSliceLocationtag) - Added rounding tolerance on slice locations for more reliable consistency checking
Fixes:
- Improved slice consistency check accuracy by standardizing on calculated slice locations
Maintenance:
- Migrated CI pipeline to
flywheel-io/tools/etc/qa-ciframework - Updated pre-commit hooks to use
qa-cirepository hooks - Switched base Docker image to
flywheel/python-gdcm:master.3a9476be - Removed manual
gdcmbuild process fromDockerfile - Removed
add_gdcm.shscript (now handled by base image) - Removed
.python-versionfile - Updated
pythonversion constraint from~3.8to^3.8inpyproject.toml - Added
.envfile with pytest coverage requirement set to 90%
Documentation:
- Reformatted all markdown files to comply with line length limits
- Improved markdown structure and consistency in
README.md,CONTRIBUTING.md, andexamples/README.md - Added missing docstrings to main functions and classes
- Improved inline documentation formatting and readability
0.2.3 [2021-06-16]
Fixes:
- Fixed
split_dicom()function call signature incheck_embedded_localizer()by removing obsolete file path parameter
0.2.2 [2021-06-03]
Fixes:
- Fixed DICOM reading by adding
force=Trueparameter toDICOMCollectionto ensure DICOMs are read even when validation issues are encountered
Maintenance:
- Updated
.gitlab-ci.ymlto referencemainbranch instead ofmasterfor CI templates
0.2.1 [2021-05-26]
Fixes:
- Made
check_0_bytea mandatory default rule required for integrity of other tests - Fixed formatting of zero-byte file error messages in
check_0_byterule
Maintenance:
- Removed
check_0_byteconfiguration option from gear manifest as it is now always enabled
0.2.0 [2021-05-24]
Enhancements:
- Added
tagconfiguration option to specify tag added to input file upon run completion - Improved logging to include removed files in
check_0_byte, 0-byte files, and unique inconsistent slice intervals - Enhanced 0-byte file handling to report files instead of removing them from collection
Fixes:
- Fixed handling of empty JSON schemas in validation
- Fixed typo in logging message for missing
ImagePositionPatientslices - Fixed extraction and processing of DICOM files from zip archives to properly handle 0-byte files
- Fixed single DICOM file processing to check for 0-byte files before creating collection
Documentation:
- Updated configuration documentation to use backtick formatting for boolean values
- Added
tagconfiguration option to README
0.1.1 [2021-04-09]
Maintenance:
- Added newline at end of
manifest.jsonfile
0.1.0 [2021-04-09]
Enhancements:
- Added DICOM quality control validation gear with configurable rule-based checking
- Added
jsonschemavalidation for DICOM headers with custom schema support - Added zero-byte file detection rule
- Added series consistency validation (checks for unique
SeriesInstanceUID) - Added instance number uniqueness validation
- Added embedded localizer detection using splitter algorithm
- Added bed movement detection via
ImagePositionPatientanalysis - Added slice consistency validation using
SliceLocationor calculated fromImageOrientationPatientandImagePositionPatient
Documentation:
- Added comprehensive README with rule descriptions and usage examples
- Added CONTRIBUTING guide with
poetryandpre-commitsetup instructions - Added example
jsonschematemplates for DICOM header validation - Added MIT license
Maintenance:
- Added
poetryfor dependency management - Added
pre-commithooks for code quality (isort,black,pytest, manifest validation) - Added GitLab CI configuration using shared
poetry-pre-committemplate - Added
python3.8.0runtime - Added
flywheel-gear-toolkit,fw-gear-splitter,pandas, andjsonschemadependencies - Added
dvcfor test data versioning with Google Cloud Storage backend - Added comprehensive test suite with
pytest - Added
Dockerfilewith GDCM library compilation for DICOM processing