NIfTI to DICOM file creation with Python
Explore the docs »
View Repo
·
Report Bug
·
Request Feature
DICOM is the international standard used to store, transfer and display medical images in clinical institutions. It is a vast and complicated standard. The NIfTI file format is widely used within medical imaging research because it is a comparatively simple data format, generally stripped of identifiable patient data and with far fewer metadata fields.
Researchers often convert DICOM files to NIfTI files using tools such as dcm2niix. However, the reverse process is much harder.
nii2dcm is designed to convert a NIfTI file (.nii/.nii.gz) into a single-frame DICOM Series in one line, e.g.:
nii2dcm nifti-file.nii.gz dicom-output-directory/ --dicom-type MR
To install and run nii2dcm locally, you have two options:
- pip
- build from source
Create a new Python virtual environment, then:
pip install nii2dcm
Clone this repo:
git clone https://github.com/tomaroberts/nii2dcm.git
Setup a Python virtual environment (recommended):
cd nii2dcm/
python -m venv nii2dcm-venv
source nii2dcm-venv/bin/activate
python -m pip install --upgrade pip
Install dependencies and nii2dcm:
pip install -r requirements.txt
pip install .
Verify installation by displaying nii2dcm help information
nii2dcm -h
nii2dcm is designed to be pointed at a single .nii
or .nii.gz
from which it generates a single-frame DICOM dataset.
It is recommended to specify the output DICOM modality using the -d
or --dicom-type
flag (see examples below).
Without this, a generic DICOM is created without complete imaging modality metadata.
Create an MRI 2D multi-slice DICOM dataset:
nii2dcm nifti-file.nii.gz dicom-output-directory/ -d MR
Create an MRI 3D SVR DICOM dataset:
nii2dcm SVR-output.nii.gz dicom-output-directory/ -d SVR
Create a generic DICOM dataset:
nii2dcm nifti-file.nii.gz dicom-output-directory/
Eventually, nii2dcm will be extended to cover other imaging modalities including CT, Ultrasound, X-Ray, etc.
There are often situations where it can be useful to transfer information from an existing DICOM Study into a new DICOM Series. For example, if you want to store your new DICOM dataset alongside your original DICOM Study.
The -r
or --ref-dicom
flag attempts to transfer common DICOM attributes from a reference DICOM file into the
output DICOM:
nii2dcm nifti-file.nii.gz dicom-output-directory/ -d MR -r reference-dicom-file.dcm
Currently, attributes to transfer are listed here in the DicomMRI class.
This project is in its infancy! Expect bugs 🐛 🐜 🪲
There are many things I would like to test and implement. Raise an Issue if you have ideas or suggestions.
If you would like to create another class of DICOM within nii2dcm, you can use the base
DicomMRI
class or the DicomMRISVR class for inspiration. You
will also need to extend the command line interface to utilise your class, i.e. --dicom-type CT
.
Please raise an Issue if you need developer support.
- SVRTK @ KCL - the original motivation for this project
- Chris Rorden for dcm2niix - inspiration for the reverse process
- NHS Topol Digital Fellowships scheme - for the protected time to work on this
- highdicom - beautiful and extensive Python library for various tasks, including DICOM creation
- SimpleITK - comprehensive software including DICOM reading and writing
Some useful, free image viewing software:
- ITK-Snap - fast, simple interface. Opens NIfTI and DICOM
- MITK Workbench - excellent for viewing multiple image datasets in the same geometric space. Opens NIfTI and DICOM
- 3D Slicer - comprehensive imaging software
- Horos - similar to a hospital clinical information system
The Software has been developed for research purposes only and is not a clinical tool.