Class overview
This library contains numerous python class for you to use and a few extension to those classes, for common use cases. This files describes the various classes and their use cases.
Library
This module contains most useful functions for manipulation of dicom objects.
Dicom Factory
DicomFactory - Abstract class made for constructing dicom datasets and series.
Blueprint - Class representing a blueprint for a dataset and is made op of VirtualElements. A blueprint can instantiated to a dataset or a SeriesHeader from another Dicom dataset, through a Dicom factory.
SeriesHeader - Class representing a partially instantiated dicom dataset. Can be instantiated through the factory to a Series of Dicom images, when given some image data, not on the dicom format.
VirtualElements
VirtualElement is base abstract class representing a tag in a blueprint. A Virtual element produces a Data Element shared among the entire series from an input dicom series. Exampel: Patient ID.
StaticElement - Represent an data element with static value.
CopyElement - Represent a data element, that will be copied from the handed dataset.
AttrElement - Reads an attribute from the Factory and copies it. Often useful when restriction are applied to the tag.
DiscardElement - Element will be discarded from dataset.
SeriesElement - Produces a method which will produce a DataElement when called. The value is shared between datasets in the same series
InstancedVirtualElements
An instanced virtual elements is a virtual element that is different for each image in the series. Example: InstanceNumber
InstanceEnvironment - dataclass for environment at dicom series production
FunctionalElement - An element that uses a injected function to calculate the value of Data Element.
InstanceCopyElement - An element that copies all values from a header dicom series to a produced dicom series, indexed by instance number.
NIFTI
NiftiGrinder - Grinder for converting dicom to nifti
NiftiFactory - Factory for converting Nifti-image to dicom
Numpy Factory
NumpyFactory - DicomFactory specialized in numpy arrays
NumpyCaller - CallElement created to handle numpy arrays.
Lazy Datasets
LazyDataset - Dataset on the file system, Can be used as a normal dataset, while miniscule memory footprint until used i.e. it’s lazy.
Image Tree
ImageTreeInterface - Interface for creating a tree to store Dicom images. Each subclass must specify how they add images.
SeriesTree - Contains images from the same series. Throws Error on duplication or when attempting to add images from another series
StudyTree - Contains images from the same study. Creates SeriesTrees to store images.
PatientTree - Contains images Belonging to the same patient. Creates StudyTrees to store images.
DicomTree - Contains PatientTree, Create PatientTree when a new patient is encountered.
IdentityMapping - A mapping of UIDs, useful for anonymizing.
Server
This module contains classes for building an medical image processing pipeline.
Grinders
Grinder - Abstract base class for converting a collection of datasets into a more usable format
IdentityGrinder - Returns the AbstractInput
ListGrinder - Returns a build-in list of Datasets
DicomTreeGrinder - Returns a DicomTree of the Datasets
TagGrinder - Extracts a list of tag of a pivot dataset.
ManyGrinder - A grinder that combines multiple grinders
NumpyGrinder - Convert a Dicom series to numpy volume
Input
AbstractInput - An ImageTreeInterface abstract class build for containing all the images of an input to a pipeline.
DynamicInput - An AbstractInput, that can take multiple series in single input.
HistoricAbstractInput - An AbstractInput which sends a C_move upon being instantiated. I.E when the pipeline receives data about the patient for the first time.
Maintenance
MaintenanceThread - Thread doing maintenance on the pipeline
Nodes
AbstractPipeline - Base class for constructing an image class.
AbstractThreadedPipeline - AbstractPipeline, but spawns a thread for storing images and always returns successful storage.
AbstractQueuedPipeline - AbstractPipeline, but commits work to a queue, instead of processing it. Useful when process require resources, that cannot be easily shared such as large neural networks, or when ordering of processing matter.
Output
PipelineOutput - Base class for defining an output to a pipeline.
NoOutput - PipelineOutput for indicating the pipeline produces no output
DicomOutput - PipelineOutput for sending dicom image using the dimse protocol
FileOutput - PipelineOutput for saving to the file system. Uses ImageTreeInterface’s save method.
PipelineTree
InputContainer - A glorified dict with additional data
PatientContainer - An ImageTreeInterface that manages all Abstract input.
PipelineTree - An ImageTreeInterface that manages all PatientContainers.