Source code for endoreg_db.models.medical.hardware.endoscopy_processor

from django.db import models


class EndoscopyProcessorManager(models.Manager):
    def get_by_natural_key(self, name):
        return self.get(name=name)


[docs] class EndoscopyProcessor(models.Model): objects = EndoscopyProcessorManager() centers = models.ManyToManyField( "Center", blank=True, related_name="endoscopy_processors", ) name = models.CharField(max_length=255) image_width = models.IntegerField() image_height = models.IntegerField() # image_fps = models.IntegerField() # Roi for endoscope image endoscope_image_x = models.IntegerField() endoscope_image_y = models.IntegerField() endoscope_image_width = models.IntegerField() endoscope_image_height = models.IntegerField() # Roi for examination date examination_date_x = models.IntegerField() examination_date_y = models.IntegerField() examination_date_width = models.IntegerField() examination_date_height = models.IntegerField() # Roi for examination time examination_time_x = models.IntegerField(blank=True, null=True) examination_time_y = models.IntegerField(blank=True, null=True) examination_time_width = models.IntegerField(blank=True, null=True) examination_time_height = models.IntegerField(blank=True, null=True) # Roi for patient first name patient_first_name_x = models.IntegerField() patient_first_name_y = models.IntegerField() patient_first_name_width = models.IntegerField() patient_first_name_height = models.IntegerField() # Roi for patient name patient_last_name_x = models.IntegerField() patient_last_name_y = models.IntegerField() patient_last_name_width = models.IntegerField() patient_last_name_height = models.IntegerField() # Roi for patient dob patient_dob_x = models.IntegerField() patient_dob_y = models.IntegerField() patient_dob_width = models.IntegerField() patient_dob_height = models.IntegerField() # Roi for endoscope type endoscope_type_x = models.IntegerField(blank=True, null=True) endoscope_type_y = models.IntegerField(blank=True, null=True) endoscope_type_width = models.IntegerField(blank=True, null=True) endoscope_type_height = models.IntegerField(blank=True, null=True) # Roi for endoscopy sn endoscope_sn_x = models.IntegerField(blank=True, null=True) endoscope_sn_y = models.IntegerField(blank=True, null=True) endoscope_sn_width = models.IntegerField(blank=True, null=True) endoscope_sn_height = models.IntegerField(blank=True, null=True)
[docs] def natural_key(self): return (self.name,)
[docs] @classmethod def get_by_name(self, name): return self.objects.get(name=name)
def __str__(self): return self.name
[docs] def get_roi_endoscope_image(self): return { "x": self.endoscope_image_x, "y": self.endoscope_image_y, "width": self.endoscope_image_width, "height": self.endoscope_image_height, }
[docs] def get_roi_examination_date(self): return { "x": self.examination_date_x, "y": self.examination_date_y, "width": self.examination_date_width, "height": self.examination_date_height, }
[docs] def get_roi_examination_time(self): return { "x": self.examination_time_x, "y": self.examination_time_y, "width": self.examination_time_width, "height": self.examination_time_height, }
[docs] def get_roi_patient_last_name(self): return { "x": self.patient_last_name_x, "y": self.patient_last_name_y, "width": self.patient_last_name_width, "height": self.patient_last_name_height, }
[docs] def get_roi_patient_first_name(self): return { "x": self.patient_first_name_x, "y": self.patient_first_name_y, "width": self.patient_first_name_width, "height": self.patient_first_name_height, }
[docs] def get_roi_patient_dob(self): return { "x": self.patient_dob_x, "y": self.patient_dob_y, "width": self.patient_dob_width, "height": self.patient_dob_height, }
[docs] def get_roi_endoscope_type(self): return { "x": self.endoscope_type_x, "y": self.endoscope_type_y, "width": self.endoscope_type_width, "height": self.endoscope_type_height, }
[docs] def get_roi_endoscopy_sn(self): return { "x": self.endoscope_sn_x, "y": self.endoscope_sn_y, "width": self.endoscope_sn_width, "height": self.endoscope_sn_height, }
[docs] def get_rois(self): return { "endoscope_image": self.get_roi_endoscope_image(), "examination_date": self.get_roi_examination_date(), "examination_time": self.get_roi_examination_time(), "patient_first_name": self.get_roi_patient_first_name(), "patient_last_name": self.get_roi_patient_last_name(), "patient_dob": self.get_roi_patient_dob(), "endoscope_type": self.get_roi_endoscope_type(), "endoscope_sn": self.get_roi_endoscopy_sn(), }