from django.db import models class Patient(models.Model): orthanc_id = models.CharField(max_length=255, unique=True) patient_id = models.CharField(max_length=255, null=True, blank=True) patient_name = models.CharField(max_length=255, null=True, blank=True) patient_sex = models.CharField(max_length=10, null=True, blank=True) patient_birth_date = models.CharField(max_length=20, null=True, blank=True) studies = models.JSONField(null=True, blank=True) # Массив ID исследований patient_metadata = models.JSONField(null=True, blank=True) def __str__(self): return self.patient_name or "Unknown Patient" class Series(models.Model): orthanc_id = models.CharField(max_length=255, unique=True) parent_study = models.CharField(max_length=255) patient = models.ForeignKey(Patient, related_name="series", on_delete=models.CASCADE) main_dicom_tags = models.JSONField(null=True, blank=True) status = models.CharField(max_length=50, null=True, blank=True) is_stable = models.BooleanField(default=False) last_update = models.CharField(max_length=50, null=True, blank=True) def __str__(self): return self.main_dicom_tags.get("SeriesDescription", "Unknown Series") class Instance(models.Model): orthanc_id = models.CharField(max_length=255, unique=True) parent_series = models.ForeignKey(Series, related_name="instances", on_delete=models.CASCADE) file_size = models.IntegerField(null=True, blank=True) file_uuid = models.CharField(max_length=255, null=True, blank=True) main_dicom_tags = models.JSONField(null=True, blank=True) index_in_series = models.IntegerField(null=True, blank=True) def __str__(self): return self.main_dicom_tags.get("SOPInstanceUID", "Unknown Instance")