Release Notes
0.4.0 [2026-06-02]
Enhancements:
- Added optional
dicominput for providing a template DICOM to populate output DICOM tags, replacing the previouspixelmed-based sidecar-only conversion. - Added
force_16_bitconfig option to force output pixel data to 16-bit. - Added
copy_metadata_from_dicomconfig option to copy Flywheel file metadata (modality, classification, info, tags) from a template DICOM to the output DICOM. - Added
find_dicom_in_containerconfig option to automatically search the parent acquisition container for a template DICOM at runtime. - Added
overwrite_source_dicomconfig option to name the output DICOM to match the input template DICOM filename. - Added
allow_no_sidecarconfig option to allow conversion to continue without a DICOM or JSON sidecar, using NIfTI header orientation as a fallback. - Added
tagconfig option to apply a tag to the output DICOM file upon completion. - Added support for OPT and PET modalities in the sidecar conversion method, in addition to the existing MR and CT support.
- Added support for project-level JSON sidecar (
nifti_to_dicom_config.json) as a fallback when no acquisition-level sidecar is found. - Added
MediaStorageSOPClassUIDto output DICOM metadata population. - Replaced
pixelmedJava-based conversion backend withSimpleITK-based (simpleitk) Python conversion infw_gear_nifti_to_dicom/convert.py.
Fixes:
- Fixed
SOPClassUIDvalues for MR (1.2.840.10008.5.1.4.1.1.4) and CT (1.2.840.10008.5.1.4.1.1.2) to use correct non-enhanced DICOM standard UIDs. - Fixed
PatientName,PatientID, andStudyIDfields to respect DICOM VR character limits (PN 64 chars, LO 64 chars, SH 16 chars). - Fixed gear to use NIfTI file modality as fallback when sidecar lacks
Modality, before defaulting to"MR".
Maintenance:
- Migrated from
flywheel-gear-toolkitandfw-core-clienttofw-gearlibrary. - Migrated from
poetrytouvfor dependency management. - Upgraded base Docker image from
flywheel/python:master.9746b723toflywheel/python:3.12-wolfi-buildwith multi-stageDockerfile. - Upgraded
pythonrequirement from^3.9to>=3.12,<4. - Updated dependencies: replaced
flywheel-gear-toolkit,backoff,fw-core-client,fw-file ^1.0.3withfw-gear>=0.3.7,fw-file>=4.2.3,flywheel-sdk>=21.6.1,numpy>=2.4.4,simpleitk>=2.5.3. - Removed
pixelmedJava library and all associated Java runtime dependencies. - Migrated build system from
poetry.core.masonry.apitohatchling. - Updated CI configuration to use
PYVER: "3.12"and newqa-cispec. - Updated pre-commit hooks from legacy
flywheel-lint/isort/blackstack toruff_format,ruff,pytest, and otherqa-cihooks. - Updated
manifest.jsongear classification schema and environment variables to reflect new Docker image anduv-based environment. - Rewrote test suite to use
flywheelSDK mocks, replacingfw-http-testserverfixtures; added integration-styletest_convert.pywith real NIfTI and DICOM test assets.
Documentation:
- Expanded
README.mdwith full gear overview, inputs, config options, outputs, prerequisites, usage workflow, limitations, and a Mermaid workflow diagram. - Updated
CONTRIBUTING.mdto reflectuv-based dependency management and new pre-commit hook list.