Skip to main content

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

  1. Michal Brzus

    github: mbrzus, email: michal-brzus@uiowa.edu

  2. Hans J. Johnson

    github: BRAINSia, email: hans-johnson@uiowa.edu

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dcm_classifier-0.7.0rc4.tar.gz (2.0 MB view details)

Uploaded Source

Built Distribution

dcm_classifier-0.7.0rc4-py3-none-any.whl (70.4 kB view details)

Uploaded Python 3

File details

Details for the file dcm_classifier-0.7.0rc4.tar.gz.

File metadata

  • Download URL: dcm_classifier-0.7.0rc4.tar.gz
  • Upload date:
  • Size: 2.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.10.12

File hashes

Hashes for dcm_classifier-0.7.0rc4.tar.gz
Algorithm Hash digest
SHA256 6b0f75f3e350dce2c40b45cbc07997b329d2d7060f037c101bfc5c26afa0af87
MD5 2f11c4618f1570de1118529b3eac105c
BLAKE2b-256 1954a9b550986855eed3ae0ea3db3e638a75d7cd6b20bb9c6e28eb9c3e42729c

See more details on using hashes here.

File details

Details for the file dcm_classifier-0.7.0rc4-py3-none-any.whl.

File metadata

File hashes

Hashes for dcm_classifier-0.7.0rc4-py3-none-any.whl
Algorithm Hash digest
SHA256 adb7933d94f96ec2f2f8bbff239988bdee205ee628ac18c61b46f868f3af8f5d
MD5 fd4c2fe69dc72ddcc30f0f476156818d
BLAKE2b-256 fbed6a1a612a0a061ca57afe7b0be2ca5beed6b047c40025aeacd8064e22b7a6

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page