# 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", "0002_initial"), ("core", "0001_initial"), ("nursing", "0001_initial"), migrations.swappable_dependency(settings.AUTH_USER_MODEL), ] operations = [ migrations.CreateModel( name="HistoricalMedicalConsultation", 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")), ("chief_complaint", models.TextField(blank=True, verbose_name="Chief Complaint")), ( "present_illness_history", models.TextField(blank=True, verbose_name="History of Present Illness"), ), ( "past_medical_history", models.TextField(blank=True, verbose_name="Past Medical History"), ), ( "vaccination_status", models.TextField(blank=True, verbose_name="Vaccination Status"), ), ("family_history", models.TextField(blank=True, verbose_name="Family History")), ("social_history", models.TextField(blank=True, verbose_name="Social History")), ( "pregnancy_history", models.TextField(blank=True, verbose_name="Pregnancy History"), ), ("neonatal_history", models.TextField(blank=True, verbose_name="Neonatal History")), ( "developmental_motor_milestones", models.TextField(blank=True, verbose_name="Developmental Motor Milestones"), ), ( "developmental_language_milestones", models.TextField(blank=True, verbose_name="Developmental Language Milestones"), ), ( "developmental_social_milestones", models.TextField(blank=True, verbose_name="Developmental Social Milestones"), ), ( "developmental_cognitive_milestones", models.TextField(blank=True, verbose_name="Developmental Cognitive Milestones"), ), ( "behavioral_symptoms", models.JSONField( blank=True, default=dict, help_text="Behavioral symptoms checklist with yes/no/notes", verbose_name="Behavioral Symptoms", ), ), ( "physical_exam", models.JSONField( blank=True, default=dict, help_text="Structured physical examination findings", verbose_name="Physical Exam", ), ), ("clinical_summary", models.TextField(blank=True, verbose_name="Clinical Summary")), ("recommendations", models.TextField(blank=True, verbose_name="Recommendations")), ("referrals_needed", models.TextField(blank=True, verbose_name="Referrals Needed")), ( "medications", models.JSONField( blank=True, default=list, help_text="List of current medications with compliance and effectiveness", verbose_name="Medications", ), ), ( "lab_orders", models.JSONField( blank=True, default=list, help_text="List of lab tests ordered", verbose_name="Lab Orders", ), ), ( "radiology_orders", models.JSONField( blank=True, default=list, help_text="List of radiology studies ordered", verbose_name="Radiology Orders", ), ), ("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 Medical Consultation", "verbose_name_plural": "historical Medical Consultations", "ordering": ("-history_date", "-history_id"), "get_latest_by": ("history_date", "history_id"), }, bases=(simple_history.models.HistoricalChanges, models.Model), ), migrations.CreateModel( name="MedicalConsultation", 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")), ("chief_complaint", models.TextField(blank=True, verbose_name="Chief Complaint")), ( "present_illness_history", models.TextField(blank=True, verbose_name="History of Present Illness"), ), ( "past_medical_history", models.TextField(blank=True, verbose_name="Past Medical History"), ), ( "vaccination_status", models.TextField(blank=True, verbose_name="Vaccination Status"), ), ("family_history", models.TextField(blank=True, verbose_name="Family History")), ("social_history", models.TextField(blank=True, verbose_name="Social History")), ( "pregnancy_history", models.TextField(blank=True, verbose_name="Pregnancy History"), ), ("neonatal_history", models.TextField(blank=True, verbose_name="Neonatal History")), ( "developmental_motor_milestones", models.TextField(blank=True, verbose_name="Developmental Motor Milestones"), ), ( "developmental_language_milestones", models.TextField(blank=True, verbose_name="Developmental Language Milestones"), ), ( "developmental_social_milestones", models.TextField(blank=True, verbose_name="Developmental Social Milestones"), ), ( "developmental_cognitive_milestones", models.TextField(blank=True, verbose_name="Developmental Cognitive Milestones"), ), ( "behavioral_symptoms", models.JSONField( blank=True, default=dict, help_text="Behavioral symptoms checklist with yes/no/notes", verbose_name="Behavioral Symptoms", ), ), ( "physical_exam", models.JSONField( blank=True, default=dict, help_text="Structured physical examination findings", verbose_name="Physical Exam", ), ), ("clinical_summary", models.TextField(blank=True, verbose_name="Clinical Summary")), ("recommendations", models.TextField(blank=True, verbose_name="Recommendations")), ("referrals_needed", models.TextField(blank=True, verbose_name="Referrals Needed")), ( "medications", models.JSONField( blank=True, default=list, help_text="List of current medications with compliance and effectiveness", verbose_name="Medications", ), ), ( "lab_orders", models.JSONField( blank=True, default=list, help_text="List of lab tests ordered", verbose_name="Lab Orders", ), ), ( "radiology_orders", models.JSONField( blank=True, default=list, help_text="List of radiology studies ordered", verbose_name="Radiology Orders", ), ), ( "appointment", models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="medical_consultations", to="appointments.appointment", verbose_name="Appointment", ), ), ( "patient", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name="medical_consultations", to="core.patient", verbose_name="Patient", ), ), ( "provider", models.ForeignKey( null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="medical_consultations_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": "Medical Consultation", "verbose_name_plural": "Medical Consultations", "ordering": ["-consultation_date", "-created_at"], }, ), migrations.CreateModel( name="HistoricalMedicalFollowUp", 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"), ), ("followup_date", models.DateField(verbose_name="Follow-up Date")), ( "previous_complaints_status", models.JSONField( blank=True, default=dict, help_text="Status of previous complaints: complaint → RESOLVED/STATIC/WORSE", verbose_name="Previous Complaints Status", ), ), ("new_complaints", models.TextField(blank=True, verbose_name="New Complaints")), ("assessment", models.TextField(blank=True, verbose_name="Assessment")), ("recommendations", models.TextField(blank=True, verbose_name="Recommendations")), ( "family_satisfaction", models.CharField( blank=True, choices=[("0", "0%"), ("50", "50%"), ("100", "100%")], max_length=10, verbose_name="Family Satisfaction", ), ), ( "medication_snapshot", models.JSONField( blank=True, default=list, help_text="Snapshot of current medications at time of follow-up", verbose_name="Medication Snapshot", ), ), ("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, ), ), ( "nursing_vitals", models.ForeignKey( blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name="+", to="nursing.nursingencounter", verbose_name="Nursing Vitals", ), ), ( "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_consultation", models.ForeignKey( blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name="+", to="medical.medicalconsultation", verbose_name="Previous Consultation", ), ), ], options={ "verbose_name": "historical Medical Follow-up", "verbose_name_plural": "historical Medical Follow-ups", "ordering": ("-history_date", "-history_id"), "get_latest_by": ("history_date", "history_id"), }, bases=(simple_history.models.HistoricalChanges, models.Model), ), migrations.CreateModel( name="HistoricalConsultationResponse", 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"), ), ( "response_type", models.CharField( choices=[ ("OT", "Occupational Therapy"), ("SLP", "Speech-Language Pathology"), ("ABA", "ABA Therapy"), ("NURSING", "Nursing"), ("OTHER", "Other"), ], max_length=20, verbose_name="Response Type", ), ), ("response_date", models.DateField(verbose_name="Response Date")), ("assessment", models.TextField(verbose_name="Assessment")), ("recommendations", models.TextField(blank=True, verbose_name="Recommendations")), ( "follow_up_needed", models.BooleanField(default=False, verbose_name="Follow-up Needed"), ), ("notes", models.TextField(blank=True, verbose_name="Additional 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 ), ), ( "history_user", models.ForeignKey( null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="+", to=settings.AUTH_USER_MODEL, ), ), ( "responder", 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="Responder", ), ), ( "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", ), ), ( "consultation", models.ForeignKey( blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name="+", to="medical.medicalconsultation", verbose_name="Consultation", ), ), ], options={ "verbose_name": "historical Consultation Response", "verbose_name_plural": "historical Consultation Responses", "ordering": ("-history_date", "-history_id"), "get_latest_by": ("history_date", "history_id"), }, bases=(simple_history.models.HistoricalChanges, models.Model), ), migrations.CreateModel( name="HistoricalConsultationFeedback", 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"), ), ( "feedback_type", models.CharField( choices=[ ("FAMILY", "Family/Caregiver"), ("TEAM", "Interdisciplinary Team"), ("PEER", "Peer Review"), ("SUPERVISOR", "Supervisor"), ], max_length=20, verbose_name="Feedback Type", ), ), ( "submitted_by_name", models.CharField( blank=True, help_text="For family/caregiver feedback", max_length=200, verbose_name="Submitted By Name", ), ), ("feedback_date", models.DateField(verbose_name="Feedback Date")), ( "satisfaction_rating", models.IntegerField( blank=True, choices=[ (1, "Very Dissatisfied"), (2, "Dissatisfied"), (3, "Neutral"), (4, "Satisfied"), (5, "Very Satisfied"), ], null=True, verbose_name="Satisfaction Rating", ), ), ( "communication_rating", models.IntegerField( blank=True, choices=[ (1, "Very Dissatisfied"), (2, "Dissatisfied"), (3, "Neutral"), (4, "Satisfied"), (5, "Very Satisfied"), ], null=True, verbose_name="Communication Rating", ), ), ( "care_quality_rating", models.IntegerField( blank=True, choices=[ (1, "Very Dissatisfied"), (2, "Dissatisfied"), (3, "Neutral"), (4, "Satisfied"), (5, "Very Satisfied"), ], null=True, verbose_name="Care Quality Rating", ), ), ("comments", models.TextField(verbose_name="Comments")), ("concerns", models.TextField(blank=True, verbose_name="Concerns/Issues")), ( "suggestions", models.TextField(blank=True, verbose_name="Suggestions for Improvement"), ), ("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, ), ), ( "submitted_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="Submitted By", ), ), ( "consultation", models.ForeignKey( blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name="+", to="medical.medicalconsultation", verbose_name="Consultation", ), ), ], options={ "verbose_name": "historical Consultation Feedback", "verbose_name_plural": "historical Consultation Feedback", "ordering": ("-history_date", "-history_id"), "get_latest_by": ("history_date", "history_id"), }, bases=(simple_history.models.HistoricalChanges, models.Model), ), migrations.CreateModel( name="ConsultationResponse", 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")), ( "response_type", models.CharField( choices=[ ("OT", "Occupational Therapy"), ("SLP", "Speech-Language Pathology"), ("ABA", "ABA Therapy"), ("NURSING", "Nursing"), ("OTHER", "Other"), ], max_length=20, verbose_name="Response Type", ), ), ("response_date", models.DateField(verbose_name="Response Date")), ("assessment", models.TextField(verbose_name="Assessment")), ("recommendations", models.TextField(blank=True, verbose_name="Recommendations")), ( "follow_up_needed", models.BooleanField(default=False, verbose_name="Follow-up Needed"), ), ("notes", models.TextField(blank=True, verbose_name="Additional Notes")), ( "responder", models.ForeignKey( null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="consultation_responses", to=settings.AUTH_USER_MODEL, verbose_name="Responder", ), ), ( "tenant", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name="%(app_label)s_%(class)s_related", to="core.tenant", verbose_name="Tenant", ), ), ( "consultation", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name="responses", to="medical.medicalconsultation", verbose_name="Consultation", ), ), ], options={ "verbose_name": "Consultation Response", "verbose_name_plural": "Consultation Responses", "ordering": ["-response_date", "-created_at"], }, ), migrations.CreateModel( name="ConsultationFeedback", 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")), ( "feedback_type", models.CharField( choices=[ ("FAMILY", "Family/Caregiver"), ("TEAM", "Interdisciplinary Team"), ("PEER", "Peer Review"), ("SUPERVISOR", "Supervisor"), ], max_length=20, verbose_name="Feedback Type", ), ), ( "submitted_by_name", models.CharField( blank=True, help_text="For family/caregiver feedback", max_length=200, verbose_name="Submitted By Name", ), ), ("feedback_date", models.DateField(verbose_name="Feedback Date")), ( "satisfaction_rating", models.IntegerField( blank=True, choices=[ (1, "Very Dissatisfied"), (2, "Dissatisfied"), (3, "Neutral"), (4, "Satisfied"), (5, "Very Satisfied"), ], null=True, verbose_name="Satisfaction Rating", ), ), ( "communication_rating", models.IntegerField( blank=True, choices=[ (1, "Very Dissatisfied"), (2, "Dissatisfied"), (3, "Neutral"), (4, "Satisfied"), (5, "Very Satisfied"), ], null=True, verbose_name="Communication Rating", ), ), ( "care_quality_rating", models.IntegerField( blank=True, choices=[ (1, "Very Dissatisfied"), (2, "Dissatisfied"), (3, "Neutral"), (4, "Satisfied"), (5, "Very Satisfied"), ], null=True, verbose_name="Care Quality Rating", ), ), ("comments", models.TextField(verbose_name="Comments")), ("concerns", models.TextField(blank=True, verbose_name="Concerns/Issues")), ( "suggestions", models.TextField(blank=True, verbose_name="Suggestions for Improvement"), ), ( "submitted_by", models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="consultation_feedback_submitted", to=settings.AUTH_USER_MODEL, verbose_name="Submitted By", ), ), ( "consultation", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name="feedback", to="medical.medicalconsultation", verbose_name="Consultation", ), ), ], options={ "verbose_name": "Consultation Feedback", "verbose_name_plural": "Consultation Feedback", "ordering": ["-feedback_date", "-created_at"], }, ), migrations.CreateModel( name="MedicalFollowUp", 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"), ), ("followup_date", models.DateField(verbose_name="Follow-up Date")), ( "previous_complaints_status", models.JSONField( blank=True, default=dict, help_text="Status of previous complaints: complaint → RESOLVED/STATIC/WORSE", verbose_name="Previous Complaints Status", ), ), ("new_complaints", models.TextField(blank=True, verbose_name="New Complaints")), ("assessment", models.TextField(blank=True, verbose_name="Assessment")), ("recommendations", models.TextField(blank=True, verbose_name="Recommendations")), ( "family_satisfaction", models.CharField( blank=True, choices=[("0", "0%"), ("50", "50%"), ("100", "100%")], max_length=10, verbose_name="Family Satisfaction", ), ), ( "medication_snapshot", models.JSONField( blank=True, default=list, help_text="Snapshot of current medications at time of follow-up", verbose_name="Medication Snapshot", ), ), ( "appointment", models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="medical_followups", to="appointments.appointment", verbose_name="Appointment", ), ), ( "nursing_vitals", models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="medical_followups", to="nursing.nursingencounter", verbose_name="Nursing Vitals", ), ), ( "patient", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name="medical_followups", to="core.patient", verbose_name="Patient", ), ), ( "previous_consultation", models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="followups", to="medical.medicalconsultation", verbose_name="Previous Consultation", ), ), ( "provider", models.ForeignKey( null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="medical_followups_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": "Medical Follow-up", "verbose_name_plural": "Medical Follow-ups", "ordering": ["-followup_date", "-created_at"], }, ), migrations.CreateModel( name="MedicationPlan", fields=[ ( "id", models.UUIDField( default=uuid.uuid4, editable=False, primary_key=True, serialize=False, verbose_name="ID", ), ), ("drug_name", models.CharField(max_length=200, verbose_name="Drug Name")), ("dose", models.CharField(max_length=100, verbose_name="Dose")), ( "frequency", models.CharField( choices=[ ("DAILY", "Daily"), ("BID", "BID (Twice daily)"), ("TID", "TID (Three times daily)"), ("QID", "QID (Four times daily)"), ("PRN", "PRN (As needed)"), ("OTHER", "Other"), ], max_length=20, verbose_name="Frequency", ), ), ( "frequency_other", models.CharField(blank=True, max_length=100, verbose_name="Frequency (Other)"), ), ( "compliance", models.CharField( blank=True, choices=[("GOOD", "Good"), ("PARTIAL", "Partial"), ("BAD", "Bad")], max_length=20, verbose_name="Compliance", ), ), ("gains", models.TextField(blank=True, verbose_name="Gains/Benefits")), ("side_effects", models.TextField(blank=True, verbose_name="Side Effects")), ("target_behavior", models.TextField(blank=True, verbose_name="Target Behavior")), ("improved", models.BooleanField(default=False, verbose_name="Improved")), ( "consultation", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name="medication_plans_old", to="medical.medicalconsultation", verbose_name="Consultation", ), ), ], options={ "verbose_name": "Medication Plan", "verbose_name_plural": "Medication Plans", "ordering": ["consultation", "drug_name"], }, ), migrations.AddIndex( model_name="medicalconsultation", index=models.Index( fields=["patient", "consultation_date"], name="medical_med_patient_b209dd_idx" ), ), migrations.AddIndex( model_name="medicalconsultation", index=models.Index( fields=["provider", "consultation_date"], name="medical_med_provide_cf3ea9_idx" ), ), migrations.AddIndex( model_name="medicalconsultation", index=models.Index( fields=["tenant", "consultation_date"], name="medical_med_tenant__7f1709_idx" ), ), migrations.AddIndex( model_name="consultationresponse", index=models.Index( fields=["consultation", "response_date"], name="medical_con_consult_b5a2e0_idx" ), ), migrations.AddIndex( model_name="consultationresponse", index=models.Index( fields=["responder", "response_date"], name="medical_con_respond_a20257_idx" ), ), migrations.AddIndex( model_name="consultationfeedback", index=models.Index( fields=["consultation", "feedback_date"], name="medical_con_consult_2393af_idx" ), ), migrations.AddIndex( model_name="consultationfeedback", index=models.Index(fields=["feedback_type"], name="medical_con_feedbac_a26e42_idx"), ), migrations.AddIndex( model_name="medicalfollowup", index=models.Index( fields=["patient", "followup_date"], name="medical_med_patient_0c0ac8_idx" ), ), migrations.AddIndex( model_name="medicalfollowup", index=models.Index( fields=["previous_consultation"], name="medical_med_previou_43b4ca_idx" ), ), migrations.AddIndex( model_name="medicalfollowup", index=models.Index( fields=["provider", "followup_date"], name="medical_med_provide_7f25fe_idx" ), ), migrations.AddIndex( model_name="medicalfollowup", index=models.Index( fields=["tenant", "followup_date"], name="medical_med_tenant__f04ba6_idx" ), ), ]