This is a consolidation of work from NAMIC efforts primarily at the University of Iowa.
Project description
Introduction
In this work, we developed a robust, easily extensible classification framework that extracts key features from well-characterized DICOM header fields for identifying image modality and acquisition plane. Our tool is crucial for eliminating error-prone human interaction and allowing automatization, increasing imaging applications' reliability and efficiency. We used Random Forrest and Decision Tree algorithms to determine the image modality and orientation. We trained on header meta-data of over 49000 scan volumes from multiple studies and achieved over 99% prediction accuracy on image modality and acquisition plane classification.
This project was supported by several funding sources including:
- UCSF SCOUTS RO1
- NIH-NINDS R01NS114405 and NINDS R01 NS119896
- Botimageai.
Citing
Please reference the manuscript:
Michal Brzus, Cavan J. Riley, Joel Bruss, Aaron Boes, Randall Jones, Hans J. Johnson, "DICOM sequence selection for medical imaging applications," Proc. SPIE 12931, Medical Imaging 2024: Imaging Informatics for Healthcare, Research, and Applications, 12931 (2024)
Instructions
Below are useful commands to start using the tool.
Clone git repo
$ git clone https://github.com/BRAINSia/dcm-classifier.git
Navigate to the cloned repo
$ cd <repo path>
Setup virtual environment
$ python3 -m venv <venv_path> && source <venv_path>/bin/activate
Install required packages
$ pip install -r requirements.txt
Development
$ pip install -r requirements_dev.txt
$ pre-commit install
$ pre-commit run -a
Run the script!
python3 classify_study.py -m models/rf_classifier.onnx -d <path_to_dicom_session>
Testing
pytest
# or to fail on warnings
python3 -Werror::FutureWarning -m pytest
Coverage Analysis
coverage run --concurrency=multiprocessing --parallel-mode -m pytest tests --junitxml=tests/pytest.xml
coverage combine
coverage report --format=text -m |tee tests/pytest-coverage.txt
coverage xml -o tests/coverage.xml
coverage xml -o tests/coverage.xml
Authors
-
Michal Brzus
github: mbrzus, email: michal-brzus@uiowa.edu
-
github: BRAINSia, email: hans-johnson@uiowa.edu
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file dcm_classifier-0.6.0rc5.tar.gz
.
File metadata
- Download URL: dcm_classifier-0.6.0rc5.tar.gz
- Upload date:
- Size: 1.9 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.10.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f37c78821bae623e50f24f946da992f830b002f91bdfa31e8db5a84d9be6e653 |
|
MD5 | 3d557eb0aedd8402c694a62a8a7cdeba |
|
BLAKE2b-256 | 9ab77a03d11e54959964f6662dc7ad3d5255c3d38bf175fab01a08be6a7a0c03 |
File details
Details for the file dcm_classifier-0.6.0rc5-py3-none-any.whl
.
File metadata
- Download URL: dcm_classifier-0.6.0rc5-py3-none-any.whl
- Upload date:
- Size: 38.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.10.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 363f48f835d3b1812d470fab2f7837e8e75853850d89da45ed3118870985298e |
|
MD5 | 7dd500b818ee6eee2898aa9036c08991 |
|
BLAKE2b-256 | 73c2a1b0edee7bcabe74fedc9a59e3d4e5290bfd9820e126401232e7e358e506 |