Pydicom

Dicom (Digital Imaging in Medicine) is the bread and butter of medical image datasets, storage and transfer. This is the future home of the Pydicom documentation. If you are a Python developer looking to get started with Dicom and Python, this will be the place to learn and contribute! For now, here are some helpful links, and general plan for some of the code bases in the organization. If you want to come and chat, find our community on Gitter, or post an issue on one of our repos.

Modules

Pydicom

If you want to work with dicom datasets, you should use pydicom. We have started a base of docs here, and see the documentation for you to get started.

Pynetdicom

pynetdicom3 is where you want to start if you want to create Service Class Providers (SCPs) or Service Class Users (SCUs). These are the little servers/processes that echo/store/move/find dicom datasets around. This is the bread and butter of the protocol, and is based on the original pynetdicom. We will soon be consolidating these two so that it is less confusing.

Deid

deid is a simple module and client that can handle coding (replacement of identifiers) with a study alias. See the documentation base for getting started.

Applications

sendit is an example Dockerized web application to recive Dicom images, deidentify using your API (and deid, above), and then send off to different storage locations. This application is under development, and not yet ready for use. See the documentation for details.

dicom-database is a simlpified version of sendit, intended for local management of DICOM. This application is under development.

Containers

We will be developing different dicom applications that are container-based. This means using Docker and Singularity to easily deploy servers (more suited for Docker), and general tools and applications (Singularity is more suited for tools on shared resources).

Getting Started Containers

Dicom-Containers serves equivalent Singularity and Docker containers for working with dicom tools and pydicom. Specifically:

getting-started serves a Docker and Singularity container,each of which is a “quick start” image that you can build to easily start using some basic tools for working with dicom files. Currently, the image installs the Dicom ToolKit, along with miniconda3 installed with pydicom and pynetdicom3.

pydicom-docs is a container that builds sphinx docs, intended for developers of pydicom that want a solution to develop docs that doesn’t require installing additional dependencies.

Dicom Scraper

Dicom Scraper is a tool under development to detect burned-in pixel annotations with ORC, and remove them. Currently, the Dockerized application is using an older version of scipy and python 2*, and this will be updated. The detection is working relatively good and will still need some testing and tweaking.

APIs

Dicom Cookies

As a new person to Dicom, I found it hard to find and programatically download a quick (and maybe fun?) Dicom dataset. Toward this goal, I created a statically served Dicom Cookies dataset. The human readable entrypoint is here, and you can see it being used programatically here.

Coming Soon

We will be creating a set of web application (Dockerized) to be deployed in different cloudy places to work with Dicom. If you are interested in this, please join the effort!