spydcmtk
Simple PYthon DiCoM Tool Kit
Dicom organisational, querying and conversion toolkit
spydcmtk is a pure Python package built on top of pydicom.
This package extends pydicom with a class structure based upon the Patient-Study-Series-Image hierarchy. In addition, it provides a number of built in routines for common actions when working with dicom files, such as human readable renaming, anonymisation, searching and summarising.
Installation
Using pip:
pip install spydcmtk
DICOM-SEG writing (vti_to_dcm_seg / array_to_DcmSeg) needs the optional highdicom extra:
pip install 'spydcmtk[highdicom]'
Quick start
If you installed via pip then spydcmtk console script will be exposed in your python environment.
Access via:
spydcmtk -h
to see the commandline usage available to you.
If you would like to incorporate spydcmtk into your python project, then import as:
import spydcmtk
listOfStudies = spydcmtk.dcmTK.ListOfDicomStudies.setFromDirectory(MY_DICOM_DIRECTORY)
# Example filtering
dcmStudy = listOfStudies.getStudyByDate('20230429') # Dates in dicom standard string format: YYYYMMDD
dcmSeries = dcmStudy.getSeriesBySeriesNumber(1)
# Example writing new dicom files with anonymisation
dcmStudy.writeToOrganisedFileStructure(tmpDir, anonName='Not A Name')
Configuration
spydcmtk uses a spydcmtk.conf file for configuration.
By default spydcmtk.conf files are search for in the following locations:
- source_code_directory/spydcmtk.conf (file with default settings)
- $HOME/spydcmtk.conf
- $HOME/.spydcmtk.conf
- $HOME/.config/spydcmtk.conf
- Full file path defined at environment variable: "SPYDCMTK_CONF"
- Full path passed as commandline argument to
spydcmtk
Files are read in the above order with each subsequent variable present over writing any previously defined. For information on files found and variables used run:
spydcmtk -INFO
Documentation
Clear documentation of basic features can be seen by running the "spydcmtk -h" command as referenced above. For detailed documentation please see spydcmtk-documentation
Converting PDF or images to DICOM
PDF (requires DCMTK pdf2dcm on PATH):
spydcmtk -pdf2dcm /path/to/report.pdf -i /path/to/reference_dicom -o /path/to/output_dir
import spydcmtk
spydcmtk.dcmTK.pdf2dcm("report.pdf", "reference.dcm", "output_dir")
Image stack (one file or a folder of .jpg/.png/.tif slices):
spydcmtk -image2dcm /path/to/images/ -i /path/to/reference_dicom -o /path/to/output_dir
import spydcmtk
spydcmtk.dcmTK.writeImageStackToDicom(sorted_image_paths, patientMeta, "reference.dcm", "output_dir")
See the DICOM conversion docs for PatientMeta, optional tag overrides, and CLI details.
Release files for spydcmtk 1.2.27
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| spydcmtk-1.2.27.tar.gz | 1.5 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| spydcmtk-1.2.27-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 3.1 MB
Release files / spydcmtk-1.2.27.tar.gz
| Download URL | spydcmtk-1.2.27.tar.gz |
|---|---|
| Size | 1.5 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e8d7290b5b352ea293d3f872c31b31a8b1cbd6d2d693f4b646b0858b2caa0344
|
|
BLAKE2b-256 checksum How to use checksums |
a44dc8057ab78efeb4f61abcc51e26519af65b92ad663cd1b35cac2164429b7e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.3
|
Release files / spydcmtk-1.2.27-py3-none-any.whl
| Download URL | spydcmtk-1.2.27-py3-none-any.whl |
|---|---|
| Size | 1.6 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0421644ee17c910fc2e91a3d42a27687c81b62067e429d66e901d0b0e306a8c1
|
|
BLAKE2b-256 checksum How to use checksums |
62129115362801d7a7602eaf3d5ba52acee8064f76f56275f38bd3a021c1b382
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.3
|