# 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="HistoricalOTConsult", 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")), ( "reasons", models.TextField( blank=True, help_text="List of reasons for referral (e.g., motor skills, sensory processing, self-care)", verbose_name="Reasons for Referral", ), ), ( "top_difficulty_areas", models.TextField( blank=True, help_text="Three main areas of difficulty", verbose_name="Top Difficulty Areas", ), ), ( "developmental_motor_milestones", models.TextField( blank=True, help_text="Motor milestone achievements", verbose_name="Developmental Motor Milestones", ), ), ( "self_help_skills", models.TextField( blank=True, help_text="Self-care and daily living skills assessment", verbose_name="Self-Help Skills", ), ), ( "feeding_participation", models.TextField(blank=True, verbose_name="Feeding Participation"), ), ( "infant_behavior_descriptors", models.TextField( blank=True, help_text="Behavior descriptors during infancy", verbose_name="Infant Behavior Descriptors", ), ), ( "current_behavior_descriptors", models.TextField( blank=True, help_text="Current behavior descriptors", verbose_name="Current Behavior Descriptors", ), ), ( "recommendation", models.CharField( blank=True, choices=[ ("CONTINUE", "Continue Treatment"), ("DISCHARGE", "Discharge"), ("REFER_TO_OTHER", "Refer to Other Service"), ], max_length=20, verbose_name="Recommendation", ), ), ( "recommendation_notes", models.TextField(blank=True, verbose_name="Recommendation Notes"), ), ("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 OT Consultation", "verbose_name_plural": "historical OT Consultations", "ordering": ("-history_date", "-history_id"), "get_latest_by": ("history_date", "history_id"), }, bases=(simple_history.models.HistoricalChanges, models.Model), ), migrations.CreateModel( name="HistoricalOTProgressReport", 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"), ), ( "goals_progress", models.TextField( blank=True, help_text="Progress on each goal", verbose_name="Goals Progress" ), ), ("overall_progress", models.TextField(blank=True, verbose_name="Overall Progress")), ("recommendations", models.TextField(blank=True, verbose_name="Recommendations")), ( "continue_treatment", models.BooleanField(default=True, verbose_name="Continue Treatment"), ), ("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 OT Progress Report", "verbose_name_plural": "historical OT Progress Reports", "ordering": ("-history_date", "-history_id"), "get_latest_by": ("history_date", "history_id"), }, bases=(simple_history.models.HistoricalChanges, models.Model), ), migrations.CreateModel( name="HistoricalOTSession", 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_date", models.DateField(verbose_name="Session Date")), ( "session_type", models.CharField( choices=[ ("CONSULT", "Consultation"), ("INDIVIDUAL", "Individual Session"), ("GROUP", "Group Session"), ("PARENT_TRAINING", "Parent Training"), ], max_length=20, verbose_name="Session Type", ), ), ( "cooperative_level", models.PositiveSmallIntegerField( blank=True, help_text="Cooperative level (1-4 scale)", null=True, verbose_name="Cooperative Level (1-4)", ), ), ( "distraction_tolerance", models.PositiveSmallIntegerField( blank=True, help_text="Distraction tolerance (1-4 scale)", null=True, verbose_name="Distraction Tolerance (1-4)", ), ), ( "activities_checklist", models.TextField( blank=True, help_text="List of activities worked on during session", verbose_name="Activities Checklist", ), ), ("observations", models.TextField(blank=True, verbose_name="Observations")), ( "activities_performed", models.TextField(blank=True, verbose_name="Activities Performed"), ), ("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 OT Session", "verbose_name_plural": "historical OT Sessions", "ordering": ("-history_date", "-history_id"), "get_latest_by": ("history_date", "history_id"), }, bases=(simple_history.models.HistoricalChanges, models.Model), ), migrations.CreateModel( name="OTSession", 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_date", models.DateField(verbose_name="Session Date")), ( "session_type", models.CharField( choices=[ ("CONSULT", "Consultation"), ("INDIVIDUAL", "Individual Session"), ("GROUP", "Group Session"), ("PARENT_TRAINING", "Parent Training"), ], max_length=20, verbose_name="Session Type", ), ), ( "cooperative_level", models.PositiveSmallIntegerField( blank=True, help_text="Cooperative level (1-4 scale)", null=True, verbose_name="Cooperative Level (1-4)", ), ), ( "distraction_tolerance", models.PositiveSmallIntegerField( blank=True, help_text="Distraction tolerance (1-4 scale)", null=True, verbose_name="Distraction Tolerance (1-4)", ), ), ( "activities_checklist", models.TextField( blank=True, help_text="List of activities worked on during session", verbose_name="Activities Checklist", ), ), ("observations", models.TextField(blank=True, verbose_name="Observations")), ( "activities_performed", models.TextField(blank=True, verbose_name="Activities Performed"), ), ("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="ot_sessions", to="appointments.appointment", verbose_name="Appointment", ), ), ( "patient", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name="ot_sessions", to="core.patient", verbose_name="Patient", ), ), ( "provider", models.ForeignKey( null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="ot_sessions_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": "OT Session", "verbose_name_plural": "OT Sessions", "ordering": ["-session_date", "-created_at"], }, ), migrations.CreateModel( name="OTTargetSkill", fields=[ ( "id", models.UUIDField( default=uuid.uuid4, editable=False, primary_key=True, serialize=False, verbose_name="ID", ), ), ("skill_name", models.CharField(max_length=200, verbose_name="Skill Name")), ( "score", models.PositiveSmallIntegerField( help_text="Score from 0 (not achieved) to 10 (fully achieved)", verbose_name="Score (0-10)", ), ), ("notes", models.TextField(blank=True, verbose_name="Notes")), ( "order", models.PositiveIntegerField( default=0, help_text="Order of skills in the list", verbose_name="Order" ), ), ( "session", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name="target_skills", to="ot.otsession", verbose_name="Session", ), ), ], options={ "verbose_name": "OT Target Skill", "verbose_name_plural": "OT Target Skills", "ordering": ["session", "order"], }, ), migrations.CreateModel( name="OTConsult", 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")), ( "reasons", models.TextField( blank=True, help_text="List of reasons for referral (e.g., motor skills, sensory processing, self-care)", verbose_name="Reasons for Referral", ), ), ( "top_difficulty_areas", models.TextField( blank=True, help_text="Three main areas of difficulty", verbose_name="Top Difficulty Areas", ), ), ( "developmental_motor_milestones", models.TextField( blank=True, help_text="Motor milestone achievements", verbose_name="Developmental Motor Milestones", ), ), ( "self_help_skills", models.TextField( blank=True, help_text="Self-care and daily living skills assessment", verbose_name="Self-Help Skills", ), ), ( "feeding_participation", models.TextField(blank=True, verbose_name="Feeding Participation"), ), ( "infant_behavior_descriptors", models.TextField( blank=True, help_text="Behavior descriptors during infancy", verbose_name="Infant Behavior Descriptors", ), ), ( "current_behavior_descriptors", models.TextField( blank=True, help_text="Current behavior descriptors", verbose_name="Current Behavior Descriptors", ), ), ( "recommendation", models.CharField( blank=True, choices=[ ("CONTINUE", "Continue Treatment"), ("DISCHARGE", "Discharge"), ("REFER_TO_OTHER", "Refer to Other Service"), ], max_length=20, verbose_name="Recommendation", ), ), ( "recommendation_notes", models.TextField(blank=True, verbose_name="Recommendation Notes"), ), ( "appointment", models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="ot_consults", to="appointments.appointment", verbose_name="Appointment", ), ), ( "patient", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name="ot_consults", to="core.patient", verbose_name="Patient", ), ), ( "provider", models.ForeignKey( null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="ot_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": "OT Consultation", "verbose_name_plural": "OT Consultations", "ordering": ["-consultation_date", "-created_at"], "indexes": [ models.Index( fields=["patient", "consultation_date"], name="ot_otconsul_patient_176a4c_idx", ), models.Index( fields=["provider", "consultation_date"], name="ot_otconsul_provide_24e400_idx", ), models.Index( fields=["tenant", "consultation_date"], name="ot_otconsul_tenant__430e43_idx", ), ], }, ), migrations.CreateModel( name="OTProgressReport", 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"), ), ( "goals_progress", models.TextField( blank=True, help_text="Progress on each goal", verbose_name="Goals Progress" ), ), ("overall_progress", models.TextField(blank=True, verbose_name="Overall Progress")), ("recommendations", models.TextField(blank=True, verbose_name="Recommendations")), ( "continue_treatment", models.BooleanField(default=True, verbose_name="Continue Treatment"), ), ( "patient", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name="ot_progress_reports", to="core.patient", verbose_name="Patient", ), ), ( "provider", models.ForeignKey( null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="ot_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": "OT Progress Report", "verbose_name_plural": "OT Progress Reports", "ordering": ["-report_date", "-created_at"], "indexes": [ models.Index( fields=["patient", "report_date"], name="ot_otprogre_patient_10afb5_idx" ), models.Index( fields=["tenant", "report_date"], name="ot_otprogre_tenant__09142d_idx" ), ], }, ), migrations.AddIndex( model_name="otsession", index=models.Index( fields=["patient", "session_date"], name="ot_otsessio_patient_a0da9e_idx" ), ), migrations.AddIndex( model_name="otsession", index=models.Index( fields=["provider", "session_date"], name="ot_otsessio_provide_eec6bb_idx" ), ), migrations.AddIndex( model_name="otsession", index=models.Index( fields=["tenant", "session_date"], name="ot_otsessio_tenant__6498b2_idx" ), ), ]