# Generated by Django 5.2.7 on 2025-10-27 10:50 import django.db.models.deletion import simple_history.models import uuid from django.conf import settings from django.db import migrations, models class Migration(migrations.Migration): initial = True dependencies = [ ("appointments", "0001_initial"), ("core", "0001_initial"), migrations.swappable_dependency(settings.AUTH_USER_MODEL), ] operations = [ migrations.CreateModel( name="HistoricalSLPAssessment", fields=[ ( "id", models.UUIDField( db_index=True, default=uuid.uuid4, editable=False, verbose_name="ID" ), ), ( "created_at", models.DateTimeField(blank=True, editable=False, verbose_name="Created At"), ), ( "updated_at", models.DateTimeField(blank=True, editable=False, verbose_name="Updated At"), ), ( "signed_at", models.DateTimeField(blank=True, null=True, verbose_name="Signed At"), ), ("assessment_date", models.DateField(verbose_name="Assessment Date")), ( "diagnosis_statement", models.TextField(blank=True, verbose_name="Diagnosis Statement"), ), ("case_history", models.TextField(blank=True, verbose_name="Case History")), ("prenatal_history", models.TextField(blank=True, verbose_name="Prenatal History")), ( "perinatal_history", models.TextField(blank=True, verbose_name="Perinatal History"), ), ( "postnatal_history", models.TextField(blank=True, verbose_name="Postnatal History"), ), ( "developmental_history", models.TextField(blank=True, verbose_name="Developmental History"), ), ("medical_status", models.TextField(blank=True, verbose_name="Medical Status")), ( "speech_language_detail", models.TextField( blank=True, help_text="Detailed speech and language assessment", verbose_name="Speech/Language Detail", ), ), ( "gfta3_score", models.CharField( blank=True, help_text="Goldman-Fristoe Test of Articulation-3 score", max_length=100, verbose_name="GFTA-3 Score", ), ), ( "jat_score", models.CharField( blank=True, help_text="Joliet Articulation Test score", max_length=100, verbose_name="JAT Score", ), ), ( "ssi_score", models.CharField( blank=True, help_text="Stuttering Severity Instrument score", max_length=100, verbose_name="SSI Score", ), ), ( "oral_mechanism", models.TextField( blank=True, help_text="Oral mechanism examination findings", verbose_name="Oral Mechanism", ), ), ( "rossetti_domains", models.TextField( blank=True, help_text="Rossetti Infant-Toddler Language Scale domains and age levels", verbose_name="Rossetti Domains", ), ), ( "joint_attention_skills", models.TextField( blank=True, help_text="Joint attention skills assessment (present/absent)", verbose_name="Joint Attention Skills", ), ), ("clinical_summary", models.TextField(blank=True, verbose_name="Clinical Summary")), ("recommendations", models.TextField(blank=True, verbose_name="Recommendations")), ( "frequency_per_week", models.PositiveIntegerField( blank=True, help_text="Recommended frequency (sessions per week)", null=True, verbose_name="Frequency (per week)", ), ), ( "session_duration_minutes", models.PositiveIntegerField( blank=True, null=True, verbose_name="Session Duration (minutes)" ), ), ( "referral_rules", models.TextField( blank=True, help_text="Referral recommendations to other services", verbose_name="Referral Rules", ), ), ("history_id", models.AutoField(primary_key=True, serialize=False)), ("history_date", models.DateTimeField(db_index=True)), ("history_change_reason", models.CharField(max_length=100, null=True)), ( "history_type", models.CharField( choices=[("+", "Created"), ("~", "Changed"), ("-", "Deleted")], max_length=1 ), ), ( "appointment", models.ForeignKey( blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name="+", to="appointments.appointment", verbose_name="Appointment", ), ), ( "history_user", models.ForeignKey( null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="+", to=settings.AUTH_USER_MODEL, ), ), ( "patient", models.ForeignKey( blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name="+", to="core.patient", verbose_name="Patient", ), ), ( "provider", models.ForeignKey( blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name="+", to=settings.AUTH_USER_MODEL, verbose_name="Provider", ), ), ( "signed_by", models.ForeignKey( blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name="+", to=settings.AUTH_USER_MODEL, verbose_name="Signed By", ), ), ( "tenant", models.ForeignKey( blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name="+", to="core.tenant", verbose_name="Tenant", ), ), ], options={ "verbose_name": "historical SLP Assessment", "verbose_name_plural": "historical SLP Assessments", "ordering": ("-history_date", "-history_id"), "get_latest_by": ("history_date", "history_id"), }, bases=(simple_history.models.HistoricalChanges, models.Model), ), migrations.CreateModel( name="HistoricalSLPConsult", fields=[ ( "id", models.UUIDField( db_index=True, default=uuid.uuid4, editable=False, verbose_name="ID" ), ), ( "created_at", models.DateTimeField(blank=True, editable=False, verbose_name="Created At"), ), ( "updated_at", models.DateTimeField(blank=True, editable=False, verbose_name="Updated At"), ), ( "signed_at", models.DateTimeField(blank=True, null=True, verbose_name="Signed At"), ), ("consultation_date", models.DateField(verbose_name="Consultation Date")), ( "consult_variant", models.CharField( choices=[ ("ASD", "Autism Spectrum Disorder"), ("LANGUAGE_DELAY", "Language Delay"), ("FLUENCY", "Fluency Disorder"), ], max_length=20, verbose_name="Consultation Variant", ), ), ("primary_concern", models.TextField(blank=True, verbose_name="Primary Concern")), ( "suspected_areas", models.TextField( blank=True, help_text="List of suspected problem areas", verbose_name="Suspected Areas", ), ), ( "type_of_service", models.CharField( choices=[ ("CONSULT", "Consultation"), ("EVAL", "Evaluation"), ("INTERVENTION", "Intervention"), ("PARENT_TRAINING", "Parent Training"), ], max_length=20, verbose_name="Type of Service", ), ), ( "communication_modes", models.TextField( blank=True, help_text="Communication modes checklist (verbal, gestures, AAC, etc.)", verbose_name="Communication Modes", ), ), ( "screen_time_hours", models.PositiveIntegerField( blank=True, null=True, verbose_name="Screen Time (hours/day)" ), ), ( "variant_questionnaire", models.TextField( blank=True, help_text="Variant-specific questions and answers", verbose_name="Variant Questionnaire", ), ), ( "skills_to_observe", models.TextField( blank=True, help_text="Skills observation matrix", verbose_name="Skills to Observe", ), ), ( "oral_motor_screening", models.TextField( blank=True, help_text="Oral motor screening results", verbose_name="Oral Motor Screening", ), ), ("recommendations", models.TextField(blank=True, verbose_name="Recommendations")), ("history_id", models.AutoField(primary_key=True, serialize=False)), ("history_date", models.DateTimeField(db_index=True)), ("history_change_reason", models.CharField(max_length=100, null=True)), ( "history_type", models.CharField( choices=[("+", "Created"), ("~", "Changed"), ("-", "Deleted")], max_length=1 ), ), ( "appointment", models.ForeignKey( blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name="+", to="appointments.appointment", verbose_name="Appointment", ), ), ( "history_user", models.ForeignKey( null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="+", to=settings.AUTH_USER_MODEL, ), ), ( "patient", models.ForeignKey( blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name="+", to="core.patient", verbose_name="Patient", ), ), ( "provider", models.ForeignKey( blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name="+", to=settings.AUTH_USER_MODEL, verbose_name="Provider", ), ), ( "signed_by", models.ForeignKey( blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name="+", to=settings.AUTH_USER_MODEL, verbose_name="Signed By", ), ), ( "tenant", models.ForeignKey( blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name="+", to="core.tenant", verbose_name="Tenant", ), ), ], options={ "verbose_name": "historical SLP Consultation", "verbose_name_plural": "historical SLP Consultations", "ordering": ("-history_date", "-history_id"), "get_latest_by": ("history_date", "history_id"), }, bases=(simple_history.models.HistoricalChanges, models.Model), ), migrations.CreateModel( name="HistoricalSLPProgressReport", fields=[ ( "id", models.UUIDField( db_index=True, default=uuid.uuid4, editable=False, verbose_name="ID" ), ), ( "created_at", models.DateTimeField(blank=True, editable=False, verbose_name="Created At"), ), ( "updated_at", models.DateTimeField(blank=True, editable=False, verbose_name="Updated At"), ), ( "signed_at", models.DateTimeField(blank=True, null=True, verbose_name="Signed At"), ), ("report_date", models.DateField(verbose_name="Report Date")), ( "sessions_scheduled", models.PositiveIntegerField(default=0, verbose_name="Sessions Scheduled"), ), ( "sessions_attended", models.PositiveIntegerField(default=0, verbose_name="Sessions Attended"), ), ("final_diagnosis", models.TextField(blank=True, verbose_name="Final Diagnosis")), ( "objectives_progress", models.TextField( blank=True, help_text="Progress on each objective with percentage accuracy", verbose_name="Objectives Progress", ), ), ( "plan_details", models.TextField( blank=True, help_text="Plan details (continue/add/fade prompts/generalization)", verbose_name="Plan Details", ), ), ("overall_progress", models.TextField(blank=True, verbose_name="Overall Progress")), ( "participation_level", models.TextField(blank=True, verbose_name="Participation Level"), ), ( "attendance_rate", models.DecimalField( blank=True, decimal_places=2, help_text="Attendance rate percentage", max_digits=5, null=True, verbose_name="Attendance Rate (%)", ), ), ("carryover_level", models.TextField(blank=True, verbose_name="Carryover Level")), ("prognosis", models.TextField(blank=True, verbose_name="Prognosis")), ("recommendations", models.TextField(blank=True, verbose_name="Recommendations")), ( "package_sessions_count", models.PositiveIntegerField( blank=True, help_text="Recommended number of sessions in package", null=True, verbose_name="Package Sessions Count", ), ), ( "reassessment_needed", models.BooleanField(default=False, verbose_name="Reassessment Needed"), ), ("history_id", models.AutoField(primary_key=True, serialize=False)), ("history_date", models.DateTimeField(db_index=True)), ("history_change_reason", models.CharField(max_length=100, null=True)), ( "history_type", models.CharField( choices=[("+", "Created"), ("~", "Changed"), ("-", "Deleted")], max_length=1 ), ), ( "history_user", models.ForeignKey( null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="+", to=settings.AUTH_USER_MODEL, ), ), ( "patient", models.ForeignKey( blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name="+", to="core.patient", verbose_name="Patient", ), ), ( "provider", models.ForeignKey( blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name="+", to=settings.AUTH_USER_MODEL, verbose_name="Provider", ), ), ( "signed_by", models.ForeignKey( blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name="+", to=settings.AUTH_USER_MODEL, verbose_name="Signed By", ), ), ( "tenant", models.ForeignKey( blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name="+", to="core.tenant", verbose_name="Tenant", ), ), ], options={ "verbose_name": "historical SLP Progress Report", "verbose_name_plural": "historical SLP Progress Reports", "ordering": ("-history_date", "-history_id"), "get_latest_by": ("history_date", "history_id"), }, bases=(simple_history.models.HistoricalChanges, models.Model), ), migrations.CreateModel( name="SLPIntervention", fields=[ ( "id", models.UUIDField( default=uuid.uuid4, editable=False, primary_key=True, serialize=False, verbose_name="ID", ), ), ("created_at", models.DateTimeField(auto_now_add=True, verbose_name="Created At")), ("updated_at", models.DateTimeField(auto_now=True, verbose_name="Updated At")), ( "signed_at", models.DateTimeField(blank=True, null=True, verbose_name="Signed At"), ), ("session_number", models.PositiveIntegerField(verbose_name="Session Number")), ("session_date", models.DateField(verbose_name="Session Date")), ("session_time", models.TimeField(verbose_name="Session Time")), ( "intervention_targets_json", models.TextField( blank=True, default="[]", help_text="JSON array of intervention targets with SOAP format", verbose_name="Intervention Targets (JSON)", ), ), ( "appointment", models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="slp_interventions", to="appointments.appointment", verbose_name="Appointment", ), ), ( "patient", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name="slp_interventions", to="core.patient", verbose_name="Patient", ), ), ( "previous_session", models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="next_sessions", to="slp.slpintervention", verbose_name="Previous Session", ), ), ( "provider", models.ForeignKey( null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="slp_interventions_provided", to=settings.AUTH_USER_MODEL, verbose_name="Provider", ), ), ( "signed_by", models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="%(app_label)s_%(class)s_signed", to=settings.AUTH_USER_MODEL, verbose_name="Signed By", ), ), ( "tenant", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name="%(app_label)s_%(class)s_related", to="core.tenant", verbose_name="Tenant", ), ), ], options={ "verbose_name": "SLP Intervention", "verbose_name_plural": "SLP Interventions", "ordering": ["-session_date", "-session_number"], }, ), migrations.CreateModel( name="HistoricalSLPIntervention", fields=[ ( "id", models.UUIDField( db_index=True, default=uuid.uuid4, editable=False, verbose_name="ID" ), ), ( "created_at", models.DateTimeField(blank=True, editable=False, verbose_name="Created At"), ), ( "updated_at", models.DateTimeField(blank=True, editable=False, verbose_name="Updated At"), ), ( "signed_at", models.DateTimeField(blank=True, null=True, verbose_name="Signed At"), ), ("session_number", models.PositiveIntegerField(verbose_name="Session Number")), ("session_date", models.DateField(verbose_name="Session Date")), ("session_time", models.TimeField(verbose_name="Session Time")), ( "intervention_targets_json", models.TextField( blank=True, default="[]", help_text="JSON array of intervention targets with SOAP format", verbose_name="Intervention Targets (JSON)", ), ), ("history_id", models.AutoField(primary_key=True, serialize=False)), ("history_date", models.DateTimeField(db_index=True)), ("history_change_reason", models.CharField(max_length=100, null=True)), ( "history_type", models.CharField( choices=[("+", "Created"), ("~", "Changed"), ("-", "Deleted")], max_length=1 ), ), ( "appointment", models.ForeignKey( blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name="+", to="appointments.appointment", verbose_name="Appointment", ), ), ( "history_user", models.ForeignKey( null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="+", to=settings.AUTH_USER_MODEL, ), ), ( "patient", models.ForeignKey( blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name="+", to="core.patient", verbose_name="Patient", ), ), ( "provider", models.ForeignKey( blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name="+", to=settings.AUTH_USER_MODEL, verbose_name="Provider", ), ), ( "signed_by", models.ForeignKey( blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name="+", to=settings.AUTH_USER_MODEL, verbose_name="Signed By", ), ), ( "tenant", models.ForeignKey( blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name="+", to="core.tenant", verbose_name="Tenant", ), ), ( "previous_session", models.ForeignKey( blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name="+", to="slp.slpintervention", verbose_name="Previous Session", ), ), ], options={ "verbose_name": "historical SLP Intervention", "verbose_name_plural": "historical SLP Interventions", "ordering": ("-history_date", "-history_id"), "get_latest_by": ("history_date", "history_id"), }, bases=(simple_history.models.HistoricalChanges, models.Model), ), migrations.CreateModel( name="SLPProgressReport", fields=[ ( "id", models.UUIDField( default=uuid.uuid4, editable=False, primary_key=True, serialize=False, verbose_name="ID", ), ), ("created_at", models.DateTimeField(auto_now_add=True, verbose_name="Created At")), ("updated_at", models.DateTimeField(auto_now=True, verbose_name="Updated At")), ( "signed_at", models.DateTimeField(blank=True, null=True, verbose_name="Signed At"), ), ("report_date", models.DateField(verbose_name="Report Date")), ( "sessions_scheduled", models.PositiveIntegerField(default=0, verbose_name="Sessions Scheduled"), ), ( "sessions_attended", models.PositiveIntegerField(default=0, verbose_name="Sessions Attended"), ), ("final_diagnosis", models.TextField(blank=True, verbose_name="Final Diagnosis")), ( "objectives_progress", models.TextField( blank=True, help_text="Progress on each objective with percentage accuracy", verbose_name="Objectives Progress", ), ), ( "plan_details", models.TextField( blank=True, help_text="Plan details (continue/add/fade prompts/generalization)", verbose_name="Plan Details", ), ), ("overall_progress", models.TextField(blank=True, verbose_name="Overall Progress")), ( "participation_level", models.TextField(blank=True, verbose_name="Participation Level"), ), ( "attendance_rate", models.DecimalField( blank=True, decimal_places=2, help_text="Attendance rate percentage", max_digits=5, null=True, verbose_name="Attendance Rate (%)", ), ), ("carryover_level", models.TextField(blank=True, verbose_name="Carryover Level")), ("prognosis", models.TextField(blank=True, verbose_name="Prognosis")), ("recommendations", models.TextField(blank=True, verbose_name="Recommendations")), ( "package_sessions_count", models.PositiveIntegerField( blank=True, help_text="Recommended number of sessions in package", null=True, verbose_name="Package Sessions Count", ), ), ( "reassessment_needed", models.BooleanField(default=False, verbose_name="Reassessment Needed"), ), ( "patient", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name="slp_progress_reports", to="core.patient", verbose_name="Patient", ), ), ( "provider", models.ForeignKey( null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="slp_progress_reports_provided", to=settings.AUTH_USER_MODEL, verbose_name="Provider", ), ), ( "signed_by", models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="%(app_label)s_%(class)s_signed", to=settings.AUTH_USER_MODEL, verbose_name="Signed By", ), ), ( "tenant", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name="%(app_label)s_%(class)s_related", to="core.tenant", verbose_name="Tenant", ), ), ], options={ "verbose_name": "SLP Progress Report", "verbose_name_plural": "SLP Progress Reports", "ordering": ["-report_date", "-created_at"], }, ), migrations.CreateModel( name="SLPTarget", fields=[ ( "id", models.UUIDField( default=uuid.uuid4, editable=False, primary_key=True, serialize=False, verbose_name="ID", ), ), ( "target_number", models.PositiveSmallIntegerField( help_text="Target number (1 or 2)", verbose_name="Target Number" ), ), ( "subjective", models.TextField( blank=True, help_text="Subjective observations", verbose_name="Subjective" ), ), ( "objective", models.TextField( blank=True, help_text="Objective measurements and data", verbose_name="Objective", ), ), ( "assessment", models.TextField( blank=True, help_text="Assessment of progress", verbose_name="Assessment" ), ), ( "plan", models.TextField( blank=True, help_text="Plan for next session", verbose_name="Plan" ), ), ( "prompt_strategies", models.TextField( blank=True, help_text="List of prompting strategies used", verbose_name="Prompt Strategies", ), ), ( "intervention", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name="targets", to="slp.slpintervention", verbose_name="Intervention", ), ), ], options={ "verbose_name": "SLP Target", "verbose_name_plural": "SLP Targets", "ordering": ["intervention", "target_number"], }, ), migrations.CreateModel( name="SLPAssessment", fields=[ ( "id", models.UUIDField( default=uuid.uuid4, editable=False, primary_key=True, serialize=False, verbose_name="ID", ), ), ("created_at", models.DateTimeField(auto_now_add=True, verbose_name="Created At")), ("updated_at", models.DateTimeField(auto_now=True, verbose_name="Updated At")), ( "signed_at", models.DateTimeField(blank=True, null=True, verbose_name="Signed At"), ), ("assessment_date", models.DateField(verbose_name="Assessment Date")), ( "diagnosis_statement", models.TextField(blank=True, verbose_name="Diagnosis Statement"), ), ("case_history", models.TextField(blank=True, verbose_name="Case History")), ("prenatal_history", models.TextField(blank=True, verbose_name="Prenatal History")), ( "perinatal_history", models.TextField(blank=True, verbose_name="Perinatal History"), ), ( "postnatal_history", models.TextField(blank=True, verbose_name="Postnatal History"), ), ( "developmental_history", models.TextField(blank=True, verbose_name="Developmental History"), ), ("medical_status", models.TextField(blank=True, verbose_name="Medical Status")), ( "speech_language_detail", models.TextField( blank=True, help_text="Detailed speech and language assessment", verbose_name="Speech/Language Detail", ), ), ( "gfta3_score", models.CharField( blank=True, help_text="Goldman-Fristoe Test of Articulation-3 score", max_length=100, verbose_name="GFTA-3 Score", ), ), ( "jat_score", models.CharField( blank=True, help_text="Joliet Articulation Test score", max_length=100, verbose_name="JAT Score", ), ), ( "ssi_score", models.CharField( blank=True, help_text="Stuttering Severity Instrument score", max_length=100, verbose_name="SSI Score", ), ), ( "oral_mechanism", models.TextField( blank=True, help_text="Oral mechanism examination findings", verbose_name="Oral Mechanism", ), ), ( "rossetti_domains", models.TextField( blank=True, help_text="Rossetti Infant-Toddler Language Scale domains and age levels", verbose_name="Rossetti Domains", ), ), ( "joint_attention_skills", models.TextField( blank=True, help_text="Joint attention skills assessment (present/absent)", verbose_name="Joint Attention Skills", ), ), ("clinical_summary", models.TextField(blank=True, verbose_name="Clinical Summary")), ("recommendations", models.TextField(blank=True, verbose_name="Recommendations")), ( "frequency_per_week", models.PositiveIntegerField( blank=True, help_text="Recommended frequency (sessions per week)", null=True, verbose_name="Frequency (per week)", ), ), ( "session_duration_minutes", models.PositiveIntegerField( blank=True, null=True, verbose_name="Session Duration (minutes)" ), ), ( "referral_rules", models.TextField( blank=True, help_text="Referral recommendations to other services", verbose_name="Referral Rules", ), ), ( "appointment", models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="slp_assessments", to="appointments.appointment", verbose_name="Appointment", ), ), ( "patient", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name="slp_assessments", to="core.patient", verbose_name="Patient", ), ), ( "provider", models.ForeignKey( null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="slp_assessments_provided", to=settings.AUTH_USER_MODEL, verbose_name="Provider", ), ), ( "signed_by", models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="%(app_label)s_%(class)s_signed", to=settings.AUTH_USER_MODEL, verbose_name="Signed By", ), ), ( "tenant", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name="%(app_label)s_%(class)s_related", to="core.tenant", verbose_name="Tenant", ), ), ], options={ "verbose_name": "SLP Assessment", "verbose_name_plural": "SLP Assessments", "ordering": ["-assessment_date", "-created_at"], "indexes": [ models.Index( fields=["patient", "assessment_date"], name="slp_slpasse_patient_9192ae_idx" ), models.Index( fields=["provider", "assessment_date"], name="slp_slpasse_provide_8f248f_idx", ), models.Index( fields=["tenant", "assessment_date"], name="slp_slpasse_tenant__714a73_idx" ), ], }, ), migrations.CreateModel( name="SLPConsult", fields=[ ( "id", models.UUIDField( default=uuid.uuid4, editable=False, primary_key=True, serialize=False, verbose_name="ID", ), ), ("created_at", models.DateTimeField(auto_now_add=True, verbose_name="Created At")), ("updated_at", models.DateTimeField(auto_now=True, verbose_name="Updated At")), ( "signed_at", models.DateTimeField(blank=True, null=True, verbose_name="Signed At"), ), ("consultation_date", models.DateField(verbose_name="Consultation Date")), ( "consult_variant", models.CharField( choices=[ ("ASD", "Autism Spectrum Disorder"), ("LANGUAGE_DELAY", "Language Delay"), ("FLUENCY", "Fluency Disorder"), ], max_length=20, verbose_name="Consultation Variant", ), ), ("primary_concern", models.TextField(blank=True, verbose_name="Primary Concern")), ( "suspected_areas", models.TextField( blank=True, help_text="List of suspected problem areas", verbose_name="Suspected Areas", ), ), ( "type_of_service", models.CharField( choices=[ ("CONSULT", "Consultation"), ("EVAL", "Evaluation"), ("INTERVENTION", "Intervention"), ("PARENT_TRAINING", "Parent Training"), ], max_length=20, verbose_name="Type of Service", ), ), ( "communication_modes", models.TextField( blank=True, help_text="Communication modes checklist (verbal, gestures, AAC, etc.)", verbose_name="Communication Modes", ), ), ( "screen_time_hours", models.PositiveIntegerField( blank=True, null=True, verbose_name="Screen Time (hours/day)" ), ), ( "variant_questionnaire", models.TextField( blank=True, help_text="Variant-specific questions and answers", verbose_name="Variant Questionnaire", ), ), ( "skills_to_observe", models.TextField( blank=True, help_text="Skills observation matrix", verbose_name="Skills to Observe", ), ), ( "oral_motor_screening", models.TextField( blank=True, help_text="Oral motor screening results", verbose_name="Oral Motor Screening", ), ), ("recommendations", models.TextField(blank=True, verbose_name="Recommendations")), ( "appointment", models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="slp_consults", to="appointments.appointment", verbose_name="Appointment", ), ), ( "patient", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name="slp_consults", to="core.patient", verbose_name="Patient", ), ), ( "provider", models.ForeignKey( null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="slp_consults_provided", to=settings.AUTH_USER_MODEL, verbose_name="Provider", ), ), ( "signed_by", models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="%(app_label)s_%(class)s_signed", to=settings.AUTH_USER_MODEL, verbose_name="Signed By", ), ), ( "tenant", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name="%(app_label)s_%(class)s_related", to="core.tenant", verbose_name="Tenant", ), ), ], options={ "verbose_name": "SLP Consultation", "verbose_name_plural": "SLP Consultations", "ordering": ["-consultation_date", "-created_at"], "indexes": [ models.Index( fields=["patient", "consultation_date"], name="slp_slpcons_patient_b4208c_idx", ), models.Index( fields=["provider", "consultation_date"], name="slp_slpcons_provide_c6a43d_idx", ), models.Index(fields=["consult_variant"], name="slp_slpcons_consult_42d58f_idx"), models.Index( fields=["tenant", "consultation_date"], name="slp_slpcons_tenant__7ea989_idx", ), ], }, ), migrations.AddIndex( model_name="slpintervention", index=models.Index( fields=["patient", "session_date"], name="slp_slpinte_patient_d50883_idx" ), ), migrations.AddIndex( model_name="slpintervention", index=models.Index( fields=["provider", "session_date"], name="slp_slpinte_provide_f9d964_idx" ), ), migrations.AddIndex( model_name="slpintervention", index=models.Index(fields=["session_number"], name="slp_slpinte_session_d9281f_idx"), ), migrations.AddIndex( model_name="slpintervention", index=models.Index( fields=["tenant", "session_date"], name="slp_slpinte_tenant__050434_idx" ), ), migrations.AddIndex( model_name="slpprogressreport", index=models.Index( fields=["patient", "report_date"], name="slp_slpprog_patient_dc4316_idx" ), ), migrations.AddIndex( model_name="slpprogressreport", index=models.Index( fields=["provider", "report_date"], name="slp_slpprog_provide_eed43b_idx" ), ), migrations.AddIndex( model_name="slpprogressreport", index=models.Index( fields=["tenant", "report_date"], name="slp_slpprog_tenant__5d2e52_idx" ), ), migrations.AlterUniqueTogether( name="slptarget", unique_together={("intervention", "target_number")}, ), ]