dicom_toolkit 0.2.0
dicom_toolkit: ^0.2.0 copied to clipboard
An advanced medical imaging and DICOM processing library for Flutter.
0.2.0 #
- (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).