Source code for core.migrations.0002_audiotranscript_clinicaldata_clinicalreport

# Generated by Django 4.2.7 on 2025-10-07 12:18

from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
import uuid


[docs] class Migration(migrations.Migration): dependencies = [ ("core", "0001_initial"), ] operations = [ migrations.CreateModel( name="AudioTranscript", fields=[ ( "id", models.BigAutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ( "transcript_id", models.UUIDField(default=uuid.uuid4, editable=False, unique=True), ), ( "audio_file", models.FileField(blank=True, null=True, upload_to="audio/"), ), ( "audio_duration", models.FloatField( blank=True, null=True, verbose_name="Durata (secondi)" ), ), ( "transcript_text", models.TextField(blank=True, verbose_name="Testo trascritto"), ), ( "confidence_score", models.FloatField( blank=True, null=True, verbose_name="Score di confidenza" ), ), ( "language", models.CharField( default="it-IT", max_length=10, verbose_name="Lingua" ), ), ( "status", models.CharField( choices=[ ("pending", "In attesa"), ("transcribing", "Trascrizione in corso"), ("completed", "Completato"), ("error", "Errore"), ], default="pending", max_length=20, ), ), ( "error_message", models.TextField(blank=True, verbose_name="Messaggio di errore"), ), ("created_at", models.DateTimeField(auto_now_add=True)), ("updated_at", models.DateTimeField(auto_now=True)), ( "transcription_completed_at", models.DateTimeField(blank=True, null=True), ), ( "encounter", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name="transcripts", to="core.encounter", ), ), ], options={ "verbose_name": "Trascrizione Audio", "verbose_name_plural": "Trascrizioni Audio", "ordering": ["-created_at"], }, ), migrations.CreateModel( name="ClinicalData", fields=[ ( "id", models.BigAutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("patient_name", models.CharField(blank=True, max_length=200)), ("patient_age", models.IntegerField(blank=True, null=True)), ("patient_gender", models.CharField(blank=True, max_length=10)), ( "chief_complaint", models.TextField(blank=True, verbose_name="Motivo accesso"), ), ( "history_present_illness", models.TextField( blank=True, verbose_name="Anamnesi patologia remota" ), ), ( "past_medical_history", models.JSONField( blank=True, default=list, verbose_name="Anamnesi patologica remota", ), ), ( "medications", models.JSONField(blank=True, default=list, verbose_name="Farmaci"), ), ( "allergies", models.JSONField(blank=True, default=list, verbose_name="Allergie"), ), ( "vital_signs", models.JSONField( blank=True, default=dict, verbose_name="Parametri vitali" ), ), ( "physical_examination", models.JSONField( blank=True, default=dict, verbose_name="Esame obiettivo" ), ), ( "assessment", models.TextField(blank=True, verbose_name="Valutazione"), ), ( "diagnosis", models.JSONField(blank=True, default=list, verbose_name="Diagnosi"), ), ( "treatment_plan", models.TextField(blank=True, verbose_name="Piano terapeutico"), ), ("confidence_score", models.FloatField(blank=True, null=True)), ("extracted_at", models.DateTimeField(auto_now_add=True)), ("validated", models.BooleanField(default=False)), ( "transcript", models.OneToOneField( on_delete=django.db.models.deletion.CASCADE, related_name="clinical_data", to="core.audiotranscript", ), ), ( "validated_by", models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL, ), ), ], options={ "verbose_name": "Dati Clinici", "verbose_name_plural": "Dati Clinici", }, ), migrations.CreateModel( name="ClinicalReport", fields=[ ( "id", models.BigAutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ( "report_id", models.UUIDField(default=uuid.uuid4, editable=False, unique=True), ), ( "template_type", models.CharField( choices=[ ("emergency", "Pronto Soccorso"), ("consultation", "Consulenza"), ("admission", "Ricovero"), ], default="emergency", max_length=20, ), ), ( "report_content", models.JSONField( default=dict, verbose_name="Contenuto strutturato" ), ), ( "pdf_file", models.FileField(blank=True, null=True, upload_to="reports/"), ), ("is_finalized", models.BooleanField(default=False)), ("finalized_at", models.DateTimeField(blank=True, null=True)), ("created_at", models.DateTimeField(auto_now_add=True)), ("updated_at", models.DateTimeField(auto_now=True)), ( "clinical_data", models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to="core.clinicaldata", ), ), ( "encounter", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name="reports", to="core.encounter", ), ), ( "finalized_by", models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL, ), ), ], options={ "verbose_name": "Report Clinico", "verbose_name_plural": "Report Clinici", "ordering": ["-created_at"], }, ), ]