Filters¶
Module contents¶
Provides filter classes for the REST API endpoints (for more information see the DRF docs and django-filter’s integration with DRF docs).
Submodules¶
django_dicom.filters.image_filter module¶
Definition of the ImageFilter
class.
-
class
django_dicom.filters.image_filter.
ImageFilter
(data=None, queryset=None, *, request=None, prefix=None)¶ Bases:
django_filters.rest_framework.filterset.FilterSet
Provides filtering functionality for the
ImageViewSet
.Available filters are:
- id: Primary key
- series_uid: Series instance UID (contains)
- series_description: Series description (contains)
- number: Series number (exact)
- created_after_date: Create after date
- created_before_date: Create before date
- created_after_time: Create after time
- created_before_time: Create before time
-
class
Meta
¶ Bases:
object
-
fields
= ('id', 'uid', 'number')¶
-
model
¶ alias of
django_dicom.models.image.Image
-
-
base_filters
= {'created_after_date': <django_filters.filters.DateFilter object>, 'created_after_time': <django_filters.filters.DateFilter object>, 'created_before_date': <django_filters.filters.DateFilter object>, 'created_before_time': <django_filters.filters.DateFilter object>, 'id': <django_filters.filters.NumberFilter object>, 'number': <django_filters.filters.NumberFilter object>, 'sequence_type': <django_filters.filters.MultipleChoiceFilter object>, 'series_description': <django_filters.filters.CharFilter object>, 'series_uid': <django_filters.filters.CharFilter object>, 'uid': <django_filters.filters.CharFilter object>}¶
-
declared_filters
= {'created_after_date': <django_filters.filters.DateFilter object>, 'created_after_time': <django_filters.filters.DateFilter object>, 'created_before_date': <django_filters.filters.DateFilter object>, 'created_before_time': <django_filters.filters.DateFilter object>, 'sequence_type': <django_filters.filters.MultipleChoiceFilter object>, 'series_description': <django_filters.filters.CharFilter object>, 'series_uid': <django_filters.filters.CharFilter object>}¶
django_dicom.filters.patient_filter module¶
Definition of the FilterSet
subclass that will be assigned to the
PatientViewSet
’s
filter_class
attribute
value.
-
class
django_dicom.filters.patient_filter.
PatientFilter
(data=None, queryset=None, *, request=None, prefix=None)¶ Bases:
django_filters.rest_framework.filterset.FilterSet
Provides filtering functionality for the
PatientViewSet
.Available filters are:
- id: Primary key
- uid: Patient UID (contains, icontains, or exact)
- born_after_date: Earliest date of birth
- born_before_date: Latest date of birth
- name_prefix: Any of the existing name_prefix values in the database
- given_name: Given name value (contains, icontains, or exact)
- middle_name: Middle name value (contains, icontains, or exact)
- family_name: Family name value (contains, icontains, or exact)
- name_suffix: Any of the existing name_prefix values in the database
- sex: Any of the sex options defined in the
Sex
Enum
- study__id: Related
Study
ID
-
class
Meta
¶ Bases:
object
-
fields
= ('id', 'uid')¶
-
model
¶ alias of
django_dicom.models.patient.Patient
-
-
base_filters
= {'date_of_birth': <django_filters.filters.DateFromToRangeFilter object>, 'family_name': <django_filters.filters.LookupChoiceFilter object>, 'given_name': <django_filters.filters.LookupChoiceFilter object>, 'id': <django_filters.filters.NumberFilter object>, 'middle_name': <django_filters.filters.LookupChoiceFilter object>, 'name_prefix': <django_filters.filters.AllValuesFilter object>, 'name_suffix': <django_filters.filters.AllValuesFilter object>, 'sex': <django_filters.filters.ChoiceFilter object>, 'study__id': <django_filters.filters.NumberFilter object>, 'uid': <django_filters.filters.LookupChoiceFilter object>}¶
-
declared_filters
= {'date_of_birth': <django_filters.filters.DateFromToRangeFilter object>, 'family_name': <django_filters.filters.LookupChoiceFilter object>, 'given_name': <django_filters.filters.LookupChoiceFilter object>, 'middle_name': <django_filters.filters.LookupChoiceFilter object>, 'name_prefix': <django_filters.filters.AllValuesFilter object>, 'name_suffix': <django_filters.filters.AllValuesFilter object>, 'sex': <django_filters.filters.ChoiceFilter object>, 'study__id': <django_filters.filters.NumberFilter object>, 'uid': <django_filters.filters.LookupChoiceFilter object>}¶
-
filter_by_study
(queryset: django.db.models.query.QuerySet, name: str, value: int) → django.db.models.query.QuerySet¶ Returns all
Patient
instances that haveSeries
instances belonging to theStudy
with the specified value as primary key.Used by
study__id
.Parameters: Returns: Filtered
Patient
instancesReturn type:
django_dicom.filters.series_filter module¶
Definition of the SeriesFilter
class.
-
class
django_dicom.filters.series_filter.
SeriesFilter
(data=None, queryset=None, *, request=None, prefix=None)¶ Bases:
django_filters.rest_framework.filterset.FilterSet
Provides filtering functionality for the
SeriesViewSet
.Available filters are:
- id: Primary key
- uid: Series Instance UID
- patient_id: Related
Patient
instance’s primary key - study_uid: Related
Study
instance’suid
value - study_description: Related
Study
instance’sdescription
value (in-icontains) - modality: Any of the values defined in
Modality
- description: Series description value (contains, icontains, or exact)
- number: Series number value
- protocol_name: Protocol name value (contains)
- scanning_sequence: Any combination of the values defined in
ScanningSequence
- sequence_variant: Any combination of the values defined in
SequenceVariant
- echo_time:
echo_time
value - inversion_time:
inversion_time
value - repetition_time:
repetition_time
value - flip_angle: Any of the existing
flip_angle
in the database - date_after: Exact
date
value - date_before: Create before date
- time_after: Create after time
- time_before: Create before time
- manufacturer: Any of the existing
manufacturer
in the database - manufacturer_model_name: Any of the existing
manufacturer_model_name
in the database - device_serial_number: Any of the existing
device_serial_number
in the database - institution_name: Any of the existing
institution_name
in the database - pulse_sequence_name:
pulse_sequence_name
value (in-icontains) - sequence_name:
sequence_name
value (in-icontains)
-
class
Meta
¶ Bases:
object
-
fields
= ('id', 'uid', 'number', 'patient__id')¶
-
model
¶ alias of
django_dicom.models.series.Series
-
-
base_filters
= {'date': <django_filters.filters.DateRangeFilter object>, 'description': <django_filters.filters.LookupChoiceFilter object>, 'device_serial_number': <django_filters.filters.AllValuesFilter object>, 'echo_time': <django_filters.filters.RangeFilter object>, 'flip_angle': <django_filters.filters.AllValuesFilter object>, 'header_fields': <django_filters.filters.CharFilter object>, 'id': <django_filters.filters.NumberFilter object>, 'institution_name': <django_filters.filters.AllValuesFilter object>, 'inversion_time': <django_filters.filters.RangeFilter object>, 'magnetic_field_strength': <django_filters.filters.AllValuesFilter object>, 'manufacturer': <django_filters.filters.AllValuesFilter object>, 'manufacturer_model_name': <django_filters.filters.AllValuesFilter object>, 'modality': <django_filters.filters.ChoiceFilter object>, 'number': <django_filters.filters.NumberFilter object>, 'patient__id': <django_filters.filters.NumberFilter object>, 'pixel_spacing': <django_filters.filters.RangeFilter object>, 'protocol_name': <django_filters.filters.CharFilter object>, 'pulse_sequence_name': <django_dicom.filters.utils.CharInFilter object>, 'repetition_time': <django_filters.filters.RangeFilter object>, 'scanning_sequence': <django_filters.filters.MultipleChoiceFilter object>, 'sequence_name': <django_dicom.filters.utils.CharInFilter object>, 'sequence_type': <django_filters.filters.MultipleChoiceFilter object>, 'sequence_variant': <django_filters.filters.MultipleChoiceFilter object>, 'slice_thickness': <django_filters.filters.RangeFilter object>, 'study_description': <django_dicom.filters.utils.CharInFilter object>, 'study_uid': <django_filters.filters.CharFilter object>, 'time': <django_filters.filters.TimeRangeFilter object>, 'uid': <django_filters.filters.CharFilter object>}¶
-
declared_filters
= {'date': <django_filters.filters.DateRangeFilter object>, 'description': <django_filters.filters.LookupChoiceFilter object>, 'device_serial_number': <django_filters.filters.AllValuesFilter object>, 'echo_time': <django_filters.filters.RangeFilter object>, 'flip_angle': <django_filters.filters.AllValuesFilter object>, 'header_fields': <django_filters.filters.CharFilter object>, 'institution_name': <django_filters.filters.AllValuesFilter object>, 'inversion_time': <django_filters.filters.RangeFilter object>, 'magnetic_field_strength': <django_filters.filters.AllValuesFilter object>, 'manufacturer': <django_filters.filters.AllValuesFilter object>, 'manufacturer_model_name': <django_filters.filters.AllValuesFilter object>, 'modality': <django_filters.filters.ChoiceFilter object>, 'pixel_spacing': <django_filters.filters.RangeFilter object>, 'protocol_name': <django_filters.filters.CharFilter object>, 'pulse_sequence_name': <django_dicom.filters.utils.CharInFilter object>, 'repetition_time': <django_filters.filters.RangeFilter object>, 'scanning_sequence': <django_filters.filters.MultipleChoiceFilter object>, 'sequence_name': <django_dicom.filters.utils.CharInFilter object>, 'sequence_type': <django_filters.filters.MultipleChoiceFilter object>, 'sequence_variant': <django_filters.filters.MultipleChoiceFilter object>, 'slice_thickness': <django_filters.filters.RangeFilter object>, 'study_description': <django_dicom.filters.utils.CharInFilter object>, 'study_uid': <django_filters.filters.CharFilter object>, 'time': <django_filters.filters.TimeRangeFilter object>}¶
-
django_dicom.filters.series_filter.
filter_array
(queryset: django.db.models.query.QuerySet, field_name: str, value: list)¶ Returns an exact lookup for a PostgreSQL ArrayField.
Parameters:
-
django_dicom.filters.series_filter.
filter_header
(queryset: django.db.models.query.QuerySet, field_name: str, values: str)¶ Returns a desired lookup for a DicomHeader field.
Parameters:
-
django_dicom.filters.series_filter.
filter_in_string
(queryset: django.db.models.query.QuerySet, field_name: str, values: list)¶ Returns a in-icontains mixed lookup with ‘or’ between values for a CharField.
Parameters:
django_dicom.filters.study_filter module¶
Definition of the StudyFilter
class.
-
class
django_dicom.filters.study_filter.
StudyFilter
(data=None, queryset=None, *, request=None, prefix=None)¶ Bases:
django_filters.rest_framework.filterset.FilterSet
Provides filtering functionality for the
StudyViewSet
.Available filters are:
- id: Primary key
- uid: Study instance UID
- description: Study description (contains, icontains, or exact)
- created_after_date: Create after date
- created_before_date: Create before date
- created_after_time: Create after time
- created_before_time: Create before time
-
class
Meta
¶ Bases:
object
-
fields
= ('id',)¶
-
model
¶ alias of
django_dicom.models.study.Study
-
-
base_filters
= {'date': <django_filters.filters.DateFromToRangeFilter object>, 'description': <django_filters.filters.LookupChoiceFilter object>, 'id': <django_filters.filters.NumberFilter object>, 'time_after': <django_filters.filters.TimeFilter object>, 'time_before': <django_filters.filters.TimeFilter object>, 'uid': <django_filters.filters.LookupChoiceFilter object>}¶
-
declared_filters
= {'date': <django_filters.filters.DateFromToRangeFilter object>, 'description': <django_filters.filters.LookupChoiceFilter object>, 'time_after': <django_filters.filters.TimeFilter object>, 'time_before': <django_filters.filters.TimeFilter object>, 'uid': <django_filters.filters.LookupChoiceFilter object>}¶