django_dicom.models package¶
Module contents¶
Creates models to represent the various
DICOM entities: Image
, Series
,
Study
, and Patient
(see here
and here for more information).
The relationship between entities in django_dicom:

Subpackages¶
Submodules¶
django_dicom.models.choice_enum module¶
django_dicom.models.dicom_entity module¶
-
class
django_dicom.models.dicom_entity.
DicomEntity
(*args, **kwargs)¶ Bases:
django_extensions.db.models.TimeStampedModel
An abstract model to represent a DICOM entity.
-
FIELD_TO_HEADER
= {}¶
-
NOT_HEADER_FIELD
= {'names': ('created', 'modified'), 'types': (<class 'django.db.models.fields.related.OneToOneField'>, <class 'django.db.models.fields.related.ForeignKey'>, <class 'django.db.models.fields.AutoField'>, <class 'django.db.models.fields.reverse_related.ManyToOneRel'>, <class 'django.db.models.fields.files.FileField'>, <class 'django.db.models.fields.TextField'>)}¶
-
get_header_fields
() → list¶ Returns a list of the derived model’s fields which represent DICOM header information.
- Returns
Fields representing DICOM header information.
- Return type
-
classmethod
get_header_keyword
(field_name: str) → str¶ Returns the pydicom keyword to return the requested field’s value from header data. Relies on the derived model’s FIELD_TO_HEADER class attribute. If no matching key is found, will simply return the field’s name in CamelCase formatting (the formatting of pydicom’s header keywords).
- Returns
pydicom header keyword.
- Return type
-
get_next_by_created
(*, field=<django_extensions.db.fields.CreationDateTimeField: created>, is_next=True, **kwargs)¶
-
get_next_by_modified
(*, field=<django_extensions.db.fields.ModificationDateTimeField: modified>, is_next=True, **kwargs)¶
-
get_previous_by_created
(*, field=<django_extensions.db.fields.CreationDateTimeField: created>, is_next=False, **kwargs)¶
-
get_previous_by_modified
(*, field=<django_extensions.db.fields.ModificationDateTimeField: modified>, is_next=False, **kwargs)¶
-
is_header_field
(field: django.db.models.fields.Field) → bool¶ Returns a boolean indicating whether this field represents DICOM header information or not.
- Parameters
field (models.Field) – The field in question.
- Returns
Whether this field represent DICOM header information or not.
- Return type
-
update_fields_from_header
(header: django_dicom.reader.header_information.HeaderInformation, exclude: list = []) → None¶ Update model fields from header data.
- Parameters
header (HeaderInformation) – DICOM header data.
exclude (list, optional) – Field names to exclude (the default is [], which will not exclude any header fields).
-
django_dicom.models.fields module¶
-
class
django_dicom.models.fields.
ChoiceArrayField
(base_field, size=None, **kwargs)¶ Bases:
django.contrib.postgres.fields.array.ArrayField
A field that allows us to store an array of choices.
Uses Django 1.9’s postgres ArrayField and a MultipleChoiceField for its formfield.
-
formfield
(**kwargs)¶ Return a django.forms.Field instance for this field.
-
django_dicom.models.help_text module¶
django_dicom.models.image module¶
-
class
django_dicom.models.image.
Image
(*args, **kwargs)¶ Bases:
django_dicom.models.dicom_entity.DicomEntity
A model to represent a single DICOM image. This model is meant to be instantiated with the file field set to some .dcm file, and then it is updated automatically by inspection of the file’s header information.
-
exception
DoesNotExist
¶
-
FIELD_TO_HEADER
= {'date': 'InstanceCreationDate', 'number': 'InstanceNumber', 'time': 'InstanceCreationTime', 'uid': 'SOPInstanceUID'}¶
-
exception
MultipleObjectsReturned
¶
-
date
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
dcm
¶ The descriptor for the file attribute on the model instance. Return a FieldFile when accessed so you can write code like:
>>> from myapp.models import MyModel >>> instance = MyModel.objects.get(pk=1) >>> instance.file.size
Assign a file object on assignment so you can do:
>>> with open('/path/to/hello.world', 'r') as f: ... instance.file = File(f)
-
get_absolute_url
() → str¶
-
get_b_value
() → int¶ Returns the b-value for diffusion weighted images (DWI). Currently only SIEMENS tags are supported.
- Returns
Degree of diffusion weighting applied.
- Return type
-
get_data
(as_json: bool = False) → numpy.ndarray¶ Returns the image’s pixel array as a NumPy array or as a JSON-like string if as_json is True.
- Parameters
as_json (bool) – Return the pixel array as a JSON formatted string.
- Returns
Image’s pixel array.
- Return type
-
get_next_by_created
(*, field=<django_extensions.db.fields.CreationDateTimeField: created>, is_next=True, **kwargs)¶
-
get_next_by_date
(*, field=<django.db.models.fields.DateField: date>, is_next=True, **kwargs)¶
-
get_next_by_modified
(*, field=<django_extensions.db.fields.ModificationDateTimeField: modified>, is_next=True, **kwargs)¶
-
get_previous_by_created
(*, field=<django_extensions.db.fields.CreationDateTimeField: created>, is_next=False, **kwargs)¶
-
get_previous_by_date
(*, field=<django.db.models.fields.DateField: date>, is_next=False, **kwargs)¶
-
get_previous_by_modified
(*, field=<django_extensions.db.fields.ModificationDateTimeField: modified>, is_next=False, **kwargs)¶
-
gradient_direction
¶ Returns the gradient direction vector for this image. Currently only SIEMENS tags are supported.
- Returns
This image’s gradient direction.
- Return type
-
header
¶ Caches the created
HeaderInformation
instance to prevent multiple reades.- Returns
The image’s header information.
- Return type
-
id
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
number
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
objects
= <django.db.models.manager.Manager object>¶
-
read_file
(header_only: bool = False) → pydicom.dataset.FileDataset¶ Reads the DICOM image file to memory.
- Parameters
header_only (bool, optional) – Exclude pixel data or not, by default False which will include pixel data.
- Returns
DICOM image file as object.
- Return type
-
read_header
() → django_dicom.reader.header_information.HeaderInformation¶ Reads the header information from the associated DICOM file.
- Returns
Image’s header information.
- Return type
-
series
¶ Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.
In the example:
class Child(Model): parent = ForeignKey(Parent, related_name='children')
Child.parent
is aForwardManyToOneDescriptor
instance.
-
series_id
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
slice_timing
¶ Returns the slice timing vector for this image. Currently only SIEMENS tags are supported.
- Returns
This image’s slice times.
- Return type
-
time
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
uid
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
exception
django_dicom.models.patient module¶
-
class
django_dicom.models.patient.
Patient
(*args, **kwargs)¶ Bases:
django_dicom.models.dicom_entity.DicomEntity
A model to represent DICOM’s patient entity. Holds the corresponding attributes as discovered in created
django_dicom.Image
instances.-
exception
DoesNotExist
¶
-
FIELD_TO_HEADER
= {'date_of_birth': 'PatientBirthDate', 'sex': 'PatientSex', 'uid': 'PatientID'}¶
-
exception
MultipleObjectsReturned
¶
-
NAME_PARTS
= ['given_name', 'family_name', 'middle_name', 'name_prefix', 'name_suffix']¶
-
date_of_birth
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
family_name
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
get_absolute_url
() → str¶
-
get_full_name
() → str¶ Returns the first and last names of the patient.
- Returns
Patient’s first and last names.
- Return type
-
get_next_by_created
(*, field=<django_extensions.db.fields.CreationDateTimeField: created>, is_next=True, **kwargs)¶
-
get_next_by_modified
(*, field=<django_extensions.db.fields.ModificationDateTimeField: modified>, is_next=True, **kwargs)¶
-
get_previous_by_created
(*, field=<django_extensions.db.fields.CreationDateTimeField: created>, is_next=False, **kwargs)¶
-
get_previous_by_modified
(*, field=<django_extensions.db.fields.ModificationDateTimeField: modified>, is_next=False, **kwargs)¶
-
get_sex_display
(*, field=<django.db.models.fields.CharField: sex>)¶
-
given_name
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
id
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
middle_name
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
name_prefix
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
name_suffix
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
objects
= <django.db.models.manager.Manager object>¶
-
series_set
¶ Accessor to the related objects manager on the reverse side of a many-to-one relation.
In the example:
class Child(Model): parent = ForeignKey(Parent, related_name='children')
Parent.children
is aReverseManyToOneDescriptor
instance.Most of the implementation is delegated to a dynamically defined manager class built by
create_forward_many_to_many_manager()
defined below.
-
sex
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
to_jstree
() → list¶ Creates a list of jstree nodes (dictionaries) representing this patient’s series set.
- Returns
This patient’s series set representation for jstree.
- Return type
-
uid
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
update_fields_from_header
(header: django_dicom.reader.header_information.HeaderInformation, exclude: list = []) → None¶ Override
django_dicom.DicomEntity
’sdjango_dicom.DicomEntity.update_fields_from_header()
in order to handle setting the name parts seperately.- Parameters
header (HeaderInformation) – DICOM header data.
exclude (list, optional) – Field names to exclude (the default is [], which will not exclude any header fields).
-
update_patient_name
(header: django_dicom.reader.header_information.HeaderInformation) → None¶ Parses the patient’s name from the DICOM header and updates the instance’s fields.
- Parameters
header (
HeaderInformation
) – A DICOM image’sHeaderInformation
instance.
-
exception
django_dicom.models.series module¶
-
class
django_dicom.models.series.
Series
(*args, **kwargs)¶ Bases:
django_dicom.models.dicom_entity.DicomEntity
A model to represent DICOM’s series entity. Holds the corresponding attributes as discovered in created
django_dicom.Image
instances.-
exception
DoesNotExist
¶
-
FIELD_TO_HEADER
= {'date': 'SeriesDate', 'description': 'SeriesDescription', 'mr_acquisition_type': 'MRAcquisitionType', 'number': 'SeriesNumber', 'time': 'SeriesTime', 'uid': 'SeriesInstanceUID'}¶
-
MR_ACQUISITION_2D
= '2D'¶
-
MR_ACQUISITION_3D
= '3D'¶
-
MR_ACQUISITION_TYPE_CHOICES
= (('2D', '2D'), ('3D', '3D'))¶
-
exception
MultipleObjectsReturned
¶
-
body_part_examined
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
date
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
description
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
device_serial_number
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
echo_time
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
echo_train_length
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
flip_angle
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
get_absolute_url
() → str¶
-
get_data
(as_json: bool = False) → numpy.ndarray¶ Returns a NumPy array with the series data.
- Parameters
as_json (bool) – Return the pixel array as a JSON formatted string.
- Returns
Series pixel array.
- Return type
np.ndarray
-
get_gradient_directions
() → list¶ Returns the gradient directions (B-vectors) for SIEMENS originated DWI DICOM data.
- Returns
B-vectors for the three dimensions.
- Return type
-
get_modality_display
(*, field=<django.db.models.fields.CharField: modality>)¶
-
get_mr_acquisition_type_display
(*, field=<django.db.models.fields.CharField: mr_acquisition_type>)¶
-
get_next_by_created
(*, field=<django_extensions.db.fields.CreationDateTimeField: created>, is_next=True, **kwargs)¶
-
get_next_by_modified
(*, field=<django_extensions.db.fields.ModificationDateTimeField: modified>, is_next=True, **kwargs)¶
-
get_path
() → str¶ Returns the base directory containing the images composing this series.
- Returns
This series’s base directory path.
- Return type
-
get_patient_position_display
(*, field=<django.db.models.fields.CharField: patient_position>)¶
-
get_previous_by_created
(*, field=<django_extensions.db.fields.CreationDateTimeField: created>, is_next=False, **kwargs)¶
-
get_previous_by_modified
(*, field=<django_extensions.db.fields.ModificationDateTimeField: modified>, is_next=False, **kwargs)¶
-
get_scanning_sequence_display
() → list¶ Returns the
ScanningSequence
Enum values corresponding to the scanning_sequence field’s value.- Returns
ScanningSequence
Enum values.- Return type
-
get_sequence_variant_display
() → list¶ Returns the
SequenceVariant
Enum values corresponding to the sequence_variant field’s value.- Returns
SequenceVariant
Enum values.- Return type
-
id
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
image_set
¶ Accessor to the related objects manager on the reverse side of a many-to-one relation.
In the example:
class Child(Model): parent = ForeignKey(Parent, related_name='children')
Parent.children
is aReverseManyToOneDescriptor
instance.Most of the implementation is delegated to a dynamically defined manager class built by
create_forward_many_to_many_manager()
defined below.
-
institution_name
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
inversion_time
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
magnetic_field_strength
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
manufacturer
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
manufacturer_model_name
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
modality
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
mr_acquisition_type
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
number
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
objects
= <django_dicom.models.managers.series.SeriesManager object>¶
-
operators_name
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
patient
¶ Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.
In the example:
class Child(Model): parent = ForeignKey(Parent, related_name='children')
Child.parent
is aForwardManyToOneDescriptor
instance.
-
patient_id
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
patient_position
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
pixel_spacing
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
protocol_name
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
repetition_time
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
scanning_sequence
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
sequence_variant
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
slice_thickness
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
study
¶ Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.
In the example:
class Child(Model): parent = ForeignKey(Parent, related_name='children')
Child.parent
is aForwardManyToOneDescriptor
instance.
-
study_id
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
time
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
to_jstree_node
() → dict¶ Create a jstree node representation of this instance.
- Returns
jstree node dictionary.
- Return type
-
uid
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
exception
django_dicom.models.study module¶
-
class
django_dicom.models.study.
Study
(*args, **kwargs)¶ Bases:
django_dicom.models.dicom_entity.DicomEntity
A model to represent DICOM’s study entity. Holds the corresponding attributes as discovered in created
django_dicom.Image
instances.-
exception
DoesNotExist
¶
-
FIELD_TO_HEADER
= {'date': 'StudyDate', 'description': 'StudyDescription', 'time': 'StudyTime', 'uid': 'StudyInstanceUID'}¶
-
exception
MultipleObjectsReturned
¶
-
date
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
description
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
get_absolute_url
()¶
-
get_next_by_created
(*, field=<django_extensions.db.fields.CreationDateTimeField: created>, is_next=True, **kwargs)¶
-
get_next_by_modified
(*, field=<django_extensions.db.fields.ModificationDateTimeField: modified>, is_next=True, **kwargs)¶
-
get_previous_by_created
(*, field=<django_extensions.db.fields.CreationDateTimeField: created>, is_next=False, **kwargs)¶
-
get_previous_by_modified
(*, field=<django_extensions.db.fields.ModificationDateTimeField: modified>, is_next=False, **kwargs)¶
-
id
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
objects
= <django.db.models.manager.Manager object>¶
-
series_set
¶ Accessor to the related objects manager on the reverse side of a many-to-one relation.
In the example:
class Child(Model): parent = ForeignKey(Parent, related_name='children')
Parent.children
is aReverseManyToOneDescriptor
instance.Most of the implementation is delegated to a dynamically defined manager class built by
create_forward_many_to_many_manager()
defined below.
-
time
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
uid
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
exception