dicom_toolkit 0.2.2
dicom_toolkit: ^0.2.2 copied to clipboard
An advanced medical imaging and DICOM processing library for Flutter.
0.2.2 #
- (feat) expanded DICOM date extraction to 4 tags:
studyDate(0008,0020),seriesDate(0008,0021),acquisitionDate(0008,0022),contentDate(0008,0023) - (feat)
DicomMetadata.bestDate— resolves the most recent valid non-future date among all four date tags; handles DICOM date ranges, leap years, and malformed values - (feat)
DicomMetadata.toothInfo— extracts tooth identification from dental DICOMs via cascade: standard Tooth Number (0018,6032), Tooth Region (0018,6033), then vendor private tags (Planmeca, Carestream, VATECH, Sirona, Dexis, KaVo), with generic fallbacks (ImageComments,AcquisitionProtocolName,AcquisitionContextDescription) - (feat) new
DicomTagIdconstants:seriesDate,acquisitionDate,contentDate,toothNumber,toothRegion - (refactor) Rust
DicomMetadatastruct: 28→32 fields (addedseries_date,acquisition_date,content_date,tooth_info) - (refactor)
dicom_decoder.darttag map updated with new date and tooth tag entries - (docs) README: 28→32 extracted tags table, new Dates and Dental categories,
bestDateusage section - (docs) AGENTS.md: updated field count and tag counts throughout
- (test) 21 new tests: 11
bestDateedge cases, 5 tooth info tests, 5 date field delegation tests - (example) metadata tab: new Dates section (best date + all 4 raw dates), Tooth tile in Acquisition section; viewer overlay uses
bestDate
0.2.1 #
- Removed
dart:ioimport completely. accepting only bytes as input.
0.2.0 #
- From here on, dicom_toolkit was born.
- (BREAKING) package renamed from
flutter_dicomtodicom_toolkit- Update imports to
package:dicom_toolkit/dicom_toolkit.dart DicomController→DicomViewerController;DicomServiceremovedFileDicomLoader→RustDecoder(now implementsDicomDecoder)- Loading is bytes-only on all platforms —
loadFromBytes()only
- Update imports to
- (BREAKING) composable toolkit API replaces monolithic controller
- New:
DicomParser,DicomRenderer,DicomRoi,DicomRuler,DicomExport,DicomWindowPreset - All tools accept dependency injection via abstract interfaces
- New:
- (feat)
DicomTagId— 28 predefined DICOM tag constants + generic lookup viaDicomMetadata.tag() - (feat)
DicomPixelData— sealed class hierarchy,DicomInt16PixelDatafor 16-bit monochrome - (feat)
DicomViewerwidget —interactiveflag to disable built-in gestures for measurement overlays - (feat) rotation — 0°/90°/180°/270° via
rotateClockwise()/rotateCounterClockwise(), included in PNG export - (feat) pixel-spacing-aware
DicomRuler— measures mm distance with fallback to Imager Pixel Spacing (0018,1164) for X-ray - (feat) modality-agnostic
DicomWindowPreset.forImage()— presets adapt to pixel value range, not hardcoded HU - (feat)
DicomExport.toPngBytes()— web-safe PNG export (nodart:io) - (feat)
DicomParser.parseMetadata()— metadata-only parse withskipPixels: true, no GPU needed - (feat) web support — WASM build instructions, cross-origin isolation headers,
serve_debug.py - (feat) example app with measurement tools (ruler + ROI), rotation, presets, color maps, PNG export
- (fix) shader uniform index 8 bound for
u_monochrome1flag - (fix)
RangeError.rangeused inDicomParseResult.frame()instead of.index(compatibility) - (refactor) 28-field Rust
DicomMetadatastruct (addedpixel_spacing) - (refactor)
public_member_api_docsenforced — all public API documented - (refactor)
MedicalScreenremoved — useDicomViewerdirectly - (chore)
analysis_options.yamlstrict lint rules;cargokitexcluded from analysis - (docs) rewritten
README.mdandAGENTS.mdreflecting new architecture - (docs) 175 unit + widget + integration tests, all passing
0.1.0+3 #
- (docs): refine performance benchmarks in README
0.1.0+4 #
- (feat): add
readDicomInfo()— lightweight metadata-only API (no controller, no shaders, no pixels) - (feat): add
DicomFileInfoclass wrappingfilePath,fileName, andDicomMetadata - (feat): expand metadata extraction from 13 to 27 DICOM tags
- Added patient demographics:
studyDescription - Added equipment info:
modality,manufacturer,manufacturerModelName,institutionName - Added identifiers:
studyInstanceUid,seriesInstanceUid,sopInstanceUid - Added acquisition details:
seriesDescription,bodyPartExamined,sliceThickness,instanceNumber
- Added patient demographics:
- (refactor): introduce
get_str_tag,get_float_tag,get_int_taghelpers for cleaner tag extraction - (feat): add 8-bit pixel data support with signedness-aware conversion
- (perf): reorder pixel extraction to try fast byte-chunking first, with transfer-syntax-aware fallback
- (docs): update README with 27-field metadata table,
readDicomInfo()guide, and usage examples
0.1.0+3 #
- (docs): refine performance benchmarks in README
0.1.0+2 #
- (feat): add comprehensive performance benchmarks and metadata defaults
- (feat) add
DicomMetadatadefaults and refactor DICOM processing - (feat): implement
DicomMetadatadefaults and anewconstructor in Rust; refactorprocess_dicom_fileto use them. - Added
Defaultimplementation and anewconstructor forDicomMetadatain Rust. - Refactored
process_dicom_fileto useDicomMetadatadefaults when tags are missing. - (feat): add
newInstanceanddefault_static methods toDicomMetadataandDicomFrameResultDart classes. - Added
newInstanceanddefault_static methods toDicomMetadataandDicomFrameResultDart classes. - (feat): introduce
LibShadersconstant for centralized shader asset path management. - Introduced
LibShadersconstant for centralized shader asset path management. - (refactor): integrate
LibShadersintoDicomController. - Integrated
LibShadersintoDicomControllerfor shader loading. - (fix): update
MedicalScreento support an optionaltitleparameter. - Updated
MedicalScreento support an optionaltitleparameter. - (feat): add
series_performance_test.dartcovering throughput, latency, windowing stress, and lifecycle tests. - (docs): add detailed performance benchmarks and workstation-grade metrics to README.
- (chore): add test series data to
.gitignore.
0.1.0+1 #
- (fix): README images src
0.1.0 #
- Initial release of Flutter-Dicom.
- High-performance Rust core for DICOM parsing and pixel extraction.
- GPU Fragment Shaders for real-time Windowing (Level/Width).
- Support for 16-bit precision and Hounsfield Unit (HU) mapping.
- Built-in
DicomViewerwidget with interactive pan, zoom, and contrast adjustments. - Comprehensive metadata extraction (Patient Name, Modality, Rescale Slope/Intercept, etc.).
- Cross-platform support (Android, iOS, macOS, Windows, Linux).