MedImages.jl provides a standardized framework for handling 3D and 4D medical imaging data. The metadata structure is loosely based on the BIDS format1.
This project aims to create a unified approach to medical image processing across various modalities including CT, MRI, and PET scans. Currently, ultrasonography support is not included, and we welcome contributors with expertise in this area.
| Feature Category | Status | Description |
|---|---|---|
| Data Structure Design | ✅ | Core data structures for medical imaging standardization |
| Data Loading | ✅ | Support for common medical imaging formats |
| Spatial Transformations | 🚧 | Advanced spatial processing with metadata preservation |
| Persistence Layer | 🚧 | Efficient storage and retrieval mechanisms |
The core architecture manages these key components:
| Component | Includes |
|---|---|
| Voxel data | Multidimensional arrays |
| Spatial metadata |
• Origin coordinates • Orientation information • Spacing/resolution data |
| Image classification |
• Primary type (CT/MRI/PET/label maps) • Subtype (e.g., MRI: ADC/DWI/T2) • Voxel data type (e.g., Float32) |
| Study metadata |
• Acquisition date/time • Patient identifiers • Study/Series UIDs • Study descriptions • Original filenames |
| Display properties |
• Color mappings for labels • Window/level values for CT scans |
| Clinical data |
• Patient demographics • Contrast administration status |
| Additional metadata | Stored in extensible dictionaries |
| Format | Implementation | Status |
|---|---|---|
| NIfTI | via Nifti.jl | ✅ |
| DICOM | via Dicom.jl | ✅ |
| MHA | direct implementation | 🚧 |
Our spatial processing framework preserves metadata while enabling:
- Orientation standardization to a common reference frame (e.g., RAS)
- Spacing/resolution adjustment with appropriate interpolation methods
- Cross-modality resampling for multi-modal registration
- Region-of-interest operations (cropping, dilation) with origin adjustments
| Feature | Description | Status |
|---|---|---|
| HDF5-based storage | Arrays with metadata attributes | ✅ |
| Device-agnostic I/O | Operations for CPU/GPU | 🚧 |
| Format conversion | Exporting to standard medical formats | 🚧 |
This project is under active development. The spatial transformation components present the most significant challenges due to numerous edge cases. We're exploring solutions based on packages like MetaArrays.jl.
| Component | Status | Priority |
|---|---|---|
| Core data structures | ✅ Complete | High |
| Format loading/saving | ✅ Complete | High |
| Spatial transformations | 🚧 In progress | High |
| GPU compatibility | 🚧 In progress | Medium |
| Ultrasonography support | 📋 Planned | Low |
Contributions are welcome! If you have expertise in medical imaging, particularly ultrasonography, or experience with the technical challenges described above, please consider getting involved.
[1] Gorgolewski, K.J., Auer, T., Calhoun, V.D. et al. The brain imaging data structure, a format for organizing and describing outputs of neuroimaging experiments. Sci Data 3, 160044 (2016). https://www.nature.com/articles/sdata201644
