Skip to content

StephenTerry/dicompyler-core

 
 

Repository files navigation

dicompyler-core

Binder pypi travis-ci coveralls Documentation Status Code issues

Core functionality of dicompyler. This package includes:

  • dicomparser: parse DICOM objects in an easy-to-use manner
  • dvh: Pythonic access to dose volume histogram (DVH) data
  • dvhcalc: independent dose volume histogram (DVH) calculation if dose grid and structure data is present

Other information

Dependencies

  • numpy 1.2 or higher
  • pydicom 0.9.9 or higher
    • pydicom 1.0 is preferred and can be installed via pip using: pip install https://github.com/darcymason/pydicom/archive/master.zip
  • matplotlib 1.3.0 or higher (for DVH calculation)
  • six 1.5 or higher
  • Optional:

Basic Usage

from dicompylercore import dicomparser, dvh, dvhcalc
dp = dicomparser.DicomParser("rtss.dcm")

# i.e. Get a dict of structure information
structures = dp.GetStructures()

>>> structures[5]
{'color': array([255, 128, 0]), 'type': 'ORGAN', 'id': 5, 'empty': False, 'name': 'Heart'}

# Access DVH data
rtdose = dicomparser.DicomParser("rtdose.dcm")
heartdvh = dvh.DVH.from_dicom_dvh(rtdose.ds, 5)

>>> heartdvh.describe()
Structure: Heart
DVH Type:  cumulative, abs dose: Gy, abs volume: cm3
Volume:    437.46 cm3
Max Dose:  3.10 Gy
Min Dose:  0.02 Gy
Mean Dose: 0.64 Gy
D100:      0.00 Gy
D98:       0.03 Gy
D95:       0.03 Gy
D2cc:      2.93 Gy

# Calculate a DVH from DICOM RT data
calcdvh = dvhcalc.get_dvh("rtss.dcm", "rtdose.dcm", 5)

>>> calcdvh.max, calcdvh.min, calcdvh.D2cc
(3.0899999999999999, 0.029999999999999999, dvh.DVHValue(2.96, 'Gy'))

Advanced Usage and Examples can be found in Binder: Binder

Credits

This package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template.

About

Core functionality of dicompyler

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 97.7%
  • Makefile 2.3%