559 lines
19 KiB
Python
559 lines
19 KiB
Python
# Generated by Django 5.2.7 on 2025-11-09 19:45
|
|
|
|
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):
|
|
|
|
dependencies = [
|
|
("appointments", "0003_add_no_show_tracking"),
|
|
("core", "0009_add_consent_expiry_date"),
|
|
("referrals", "0001_initial"),
|
|
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
|
]
|
|
|
|
operations = [
|
|
migrations.CreateModel(
|
|
name="HistoricalReferral",
|
|
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"),
|
|
),
|
|
(
|
|
"referral_type",
|
|
models.CharField(
|
|
choices=[
|
|
("INITIAL_ASSESSMENT", "Initial Assessment"),
|
|
("CONSULTATION", "Consultation"),
|
|
("FOLLOW_UP", "Follow-up"),
|
|
("SECOND_OPINION", "Second Opinion"),
|
|
],
|
|
default="CONSULTATION",
|
|
max_length=30,
|
|
verbose_name="Referral Type",
|
|
),
|
|
),
|
|
(
|
|
"priority",
|
|
models.CharField(
|
|
choices=[
|
|
("ROUTINE", "Routine"),
|
|
("URGENT", "Urgent"),
|
|
("EMERGENCY", "Emergency"),
|
|
],
|
|
default="ROUTINE",
|
|
max_length=15,
|
|
verbose_name="Priority",
|
|
),
|
|
),
|
|
(
|
|
"reason",
|
|
models.TextField(
|
|
help_text="Clinical reason for referring to another department",
|
|
verbose_name="Reason for Referral",
|
|
),
|
|
),
|
|
(
|
|
"clinical_notes",
|
|
models.TextField(
|
|
blank=True,
|
|
help_text="Additional clinical information for receiving clinic",
|
|
verbose_name="Clinical Notes",
|
|
),
|
|
),
|
|
(
|
|
"status",
|
|
models.CharField(
|
|
choices=[
|
|
("PENDING", "Pending"),
|
|
("ACKNOWLEDGED", "Acknowledged"),
|
|
("APPOINTMENT_BOOKED", "Appointment Booked"),
|
|
("COMPLETED", "Completed"),
|
|
("DECLINED", "Declined"),
|
|
("CANCELLED", "Cancelled"),
|
|
],
|
|
default="PENDING",
|
|
max_length=30,
|
|
verbose_name="Status",
|
|
),
|
|
),
|
|
(
|
|
"acknowledged_at",
|
|
models.DateTimeField(blank=True, null=True, verbose_name="Acknowledged At"),
|
|
),
|
|
(
|
|
"appointment_booked_at",
|
|
models.DateTimeField(
|
|
blank=True, null=True, verbose_name="Appointment Booked At"
|
|
),
|
|
),
|
|
(
|
|
"completed_at",
|
|
models.DateTimeField(blank=True, null=True, verbose_name="Completed At"),
|
|
),
|
|
(
|
|
"outcome_notes",
|
|
models.TextField(
|
|
blank=True,
|
|
help_text="Notes about the referral outcome",
|
|
verbose_name="Outcome Notes",
|
|
),
|
|
),
|
|
(
|
|
"declined_at",
|
|
models.DateTimeField(blank=True, null=True, verbose_name="Declined At"),
|
|
),
|
|
("decline_reason", models.TextField(blank=True, verbose_name="Decline Reason")),
|
|
("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
|
|
),
|
|
),
|
|
],
|
|
options={
|
|
"verbose_name": "historical Referral",
|
|
"verbose_name_plural": "historical Referrals",
|
|
"ordering": ("-history_date", "-history_id"),
|
|
"get_latest_by": ("history_date", "history_id"),
|
|
},
|
|
bases=(simple_history.models.HistoricalChanges, models.Model),
|
|
),
|
|
migrations.RemoveField(
|
|
model_name="referralautorule",
|
|
name="target_clinic",
|
|
),
|
|
migrations.RemoveField(
|
|
model_name="referralautorule",
|
|
name="tenant",
|
|
),
|
|
migrations.RemoveField(
|
|
model_name="referralautorule",
|
|
name="trigger_clinic",
|
|
),
|
|
migrations.RemoveIndex(
|
|
model_name="referral",
|
|
name="referrals_r_from_cl_8eeff2_idx",
|
|
),
|
|
migrations.RemoveIndex(
|
|
model_name="referral",
|
|
name="referrals_r_status_72952a_idx",
|
|
),
|
|
migrations.RemoveIndex(
|
|
model_name="referral",
|
|
name="referrals_r_tenant__774b28_idx",
|
|
),
|
|
migrations.RemoveField(
|
|
model_name="referral",
|
|
name="clinical_summary",
|
|
),
|
|
migrations.RemoveField(
|
|
model_name="referral",
|
|
name="external_provider_contact",
|
|
),
|
|
migrations.RemoveField(
|
|
model_name="referral",
|
|
name="external_provider_name",
|
|
),
|
|
migrations.RemoveField(
|
|
model_name="referral",
|
|
name="from_discipline",
|
|
),
|
|
migrations.RemoveField(
|
|
model_name="referral",
|
|
name="from_provider",
|
|
),
|
|
migrations.RemoveField(
|
|
model_name="referral",
|
|
name="notes",
|
|
),
|
|
migrations.RemoveField(
|
|
model_name="referral",
|
|
name="responded_at",
|
|
),
|
|
migrations.RemoveField(
|
|
model_name="referral",
|
|
name="response_notes",
|
|
),
|
|
migrations.RemoveField(
|
|
model_name="referral",
|
|
name="to_discipline",
|
|
),
|
|
migrations.RemoveField(
|
|
model_name="referral",
|
|
name="to_provider",
|
|
),
|
|
migrations.RemoveField(
|
|
model_name="referral",
|
|
name="urgency",
|
|
),
|
|
migrations.AddField(
|
|
model_name="referral",
|
|
name="acknowledged_at",
|
|
field=models.DateTimeField(blank=True, null=True, verbose_name="Acknowledged At"),
|
|
),
|
|
migrations.AddField(
|
|
model_name="referral",
|
|
name="acknowledged_by",
|
|
field=models.ForeignKey(
|
|
blank=True,
|
|
null=True,
|
|
on_delete=django.db.models.deletion.SET_NULL,
|
|
related_name="acknowledged_referrals",
|
|
to=settings.AUTH_USER_MODEL,
|
|
verbose_name="Acknowledged By",
|
|
),
|
|
),
|
|
migrations.AddField(
|
|
model_name="referral",
|
|
name="appointment",
|
|
field=models.ForeignKey(
|
|
blank=True,
|
|
help_text="Appointment booked for this referral",
|
|
null=True,
|
|
on_delete=django.db.models.deletion.SET_NULL,
|
|
related_name="referrals",
|
|
to="appointments.appointment",
|
|
verbose_name="Appointment",
|
|
),
|
|
),
|
|
migrations.AddField(
|
|
model_name="referral",
|
|
name="appointment_booked_at",
|
|
field=models.DateTimeField(blank=True, null=True, verbose_name="Appointment Booked At"),
|
|
),
|
|
migrations.AddField(
|
|
model_name="referral",
|
|
name="appointment_booked_by",
|
|
field=models.ForeignKey(
|
|
blank=True,
|
|
null=True,
|
|
on_delete=django.db.models.deletion.SET_NULL,
|
|
related_name="booked_referral_appointments",
|
|
to=settings.AUTH_USER_MODEL,
|
|
verbose_name="Appointment Booked By",
|
|
),
|
|
),
|
|
migrations.AddField(
|
|
model_name="referral",
|
|
name="clinical_notes",
|
|
field=models.TextField(
|
|
blank=True,
|
|
help_text="Additional clinical information for receiving clinic",
|
|
verbose_name="Clinical Notes",
|
|
),
|
|
),
|
|
migrations.AddField(
|
|
model_name="referral",
|
|
name="decline_reason",
|
|
field=models.TextField(blank=True, verbose_name="Decline Reason"),
|
|
),
|
|
migrations.AddField(
|
|
model_name="referral",
|
|
name="declined_at",
|
|
field=models.DateTimeField(blank=True, null=True, verbose_name="Declined At"),
|
|
),
|
|
migrations.AddField(
|
|
model_name="referral",
|
|
name="declined_by",
|
|
field=models.ForeignKey(
|
|
blank=True,
|
|
null=True,
|
|
on_delete=django.db.models.deletion.SET_NULL,
|
|
related_name="declined_referrals",
|
|
to=settings.AUTH_USER_MODEL,
|
|
verbose_name="Declined By",
|
|
),
|
|
),
|
|
migrations.AddField(
|
|
model_name="referral",
|
|
name="outcome_notes",
|
|
field=models.TextField(
|
|
blank=True,
|
|
help_text="Notes about the referral outcome",
|
|
verbose_name="Outcome Notes",
|
|
),
|
|
),
|
|
migrations.AddField(
|
|
model_name="referral",
|
|
name="priority",
|
|
field=models.CharField(
|
|
choices=[("ROUTINE", "Routine"), ("URGENT", "Urgent"), ("EMERGENCY", "Emergency")],
|
|
default="ROUTINE",
|
|
max_length=15,
|
|
verbose_name="Priority",
|
|
),
|
|
),
|
|
migrations.AddField(
|
|
model_name="referral",
|
|
name="referral_type",
|
|
field=models.CharField(
|
|
choices=[
|
|
("INITIAL_ASSESSMENT", "Initial Assessment"),
|
|
("CONSULTATION", "Consultation"),
|
|
("FOLLOW_UP", "Follow-up"),
|
|
("SECOND_OPINION", "Second Opinion"),
|
|
],
|
|
default="CONSULTATION",
|
|
max_length=30,
|
|
verbose_name="Referral Type",
|
|
),
|
|
),
|
|
migrations.AddField(
|
|
model_name="referral",
|
|
name="referred_by",
|
|
field=models.ForeignKey(
|
|
null=True,
|
|
on_delete=django.db.models.deletion.SET_NULL,
|
|
related_name="made_referrals",
|
|
to=settings.AUTH_USER_MODEL,
|
|
verbose_name="Referred By",
|
|
),
|
|
),
|
|
migrations.AddField(
|
|
model_name="referral",
|
|
name="referred_to",
|
|
field=models.ForeignKey(
|
|
blank=True,
|
|
help_text="Specific therapist if known",
|
|
null=True,
|
|
on_delete=django.db.models.deletion.SET_NULL,
|
|
related_name="received_referrals",
|
|
to=settings.AUTH_USER_MODEL,
|
|
verbose_name="Referred To",
|
|
),
|
|
),
|
|
migrations.AlterField(
|
|
model_name="referral",
|
|
name="from_clinic",
|
|
field=models.ForeignKey(
|
|
on_delete=django.db.models.deletion.CASCADE,
|
|
related_name="outgoing_referrals",
|
|
to="core.clinic",
|
|
verbose_name="From Clinic",
|
|
),
|
|
),
|
|
migrations.AlterField(
|
|
model_name="referral",
|
|
name="reason",
|
|
field=models.TextField(
|
|
help_text="Clinical reason for referring to another department",
|
|
verbose_name="Reason for Referral",
|
|
),
|
|
),
|
|
migrations.AlterField(
|
|
model_name="referral",
|
|
name="status",
|
|
field=models.CharField(
|
|
choices=[
|
|
("PENDING", "Pending"),
|
|
("ACKNOWLEDGED", "Acknowledged"),
|
|
("APPOINTMENT_BOOKED", "Appointment Booked"),
|
|
("COMPLETED", "Completed"),
|
|
("DECLINED", "Declined"),
|
|
("CANCELLED", "Cancelled"),
|
|
],
|
|
default="PENDING",
|
|
max_length=30,
|
|
verbose_name="Status",
|
|
),
|
|
),
|
|
migrations.AlterField(
|
|
model_name="referral",
|
|
name="to_clinic",
|
|
field=models.ForeignKey(
|
|
default=1,
|
|
on_delete=django.db.models.deletion.CASCADE,
|
|
related_name="incoming_referrals",
|
|
to="core.clinic",
|
|
verbose_name="To Clinic",
|
|
),
|
|
preserve_default=False,
|
|
),
|
|
migrations.AddIndex(
|
|
model_name="referral",
|
|
index=models.Index(
|
|
fields=["from_clinic", "status"], name="referrals_r_from_cl_b2b98f_idx"
|
|
),
|
|
),
|
|
migrations.AddIndex(
|
|
model_name="referral",
|
|
index=models.Index(
|
|
fields=["referred_by", "status"], name="referrals_r_referre_408b44_idx"
|
|
),
|
|
),
|
|
migrations.AddIndex(
|
|
model_name="referral",
|
|
index=models.Index(
|
|
fields=["status", "created_at"], name="referrals_r_status_2b2ceb_idx"
|
|
),
|
|
),
|
|
migrations.AddIndex(
|
|
model_name="referral",
|
|
index=models.Index(fields=["tenant", "status"], name="referrals_r_tenant__8d626d_idx"),
|
|
),
|
|
migrations.AddField(
|
|
model_name="historicalreferral",
|
|
name="acknowledged_by",
|
|
field=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="Acknowledged By",
|
|
),
|
|
),
|
|
migrations.AddField(
|
|
model_name="historicalreferral",
|
|
name="appointment",
|
|
field=models.ForeignKey(
|
|
blank=True,
|
|
db_constraint=False,
|
|
help_text="Appointment booked for this referral",
|
|
null=True,
|
|
on_delete=django.db.models.deletion.DO_NOTHING,
|
|
related_name="+",
|
|
to="appointments.appointment",
|
|
verbose_name="Appointment",
|
|
),
|
|
),
|
|
migrations.AddField(
|
|
model_name="historicalreferral",
|
|
name="appointment_booked_by",
|
|
field=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="Appointment Booked By",
|
|
),
|
|
),
|
|
migrations.AddField(
|
|
model_name="historicalreferral",
|
|
name="declined_by",
|
|
field=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="Declined By",
|
|
),
|
|
),
|
|
migrations.AddField(
|
|
model_name="historicalreferral",
|
|
name="from_clinic",
|
|
field=models.ForeignKey(
|
|
blank=True,
|
|
db_constraint=False,
|
|
null=True,
|
|
on_delete=django.db.models.deletion.DO_NOTHING,
|
|
related_name="+",
|
|
to="core.clinic",
|
|
verbose_name="From Clinic",
|
|
),
|
|
),
|
|
migrations.AddField(
|
|
model_name="historicalreferral",
|
|
name="history_user",
|
|
field=models.ForeignKey(
|
|
null=True,
|
|
on_delete=django.db.models.deletion.SET_NULL,
|
|
related_name="+",
|
|
to=settings.AUTH_USER_MODEL,
|
|
),
|
|
),
|
|
migrations.AddField(
|
|
model_name="historicalreferral",
|
|
name="patient",
|
|
field=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",
|
|
),
|
|
),
|
|
migrations.AddField(
|
|
model_name="historicalreferral",
|
|
name="referred_by",
|
|
field=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="Referred By",
|
|
),
|
|
),
|
|
migrations.AddField(
|
|
model_name="historicalreferral",
|
|
name="referred_to",
|
|
field=models.ForeignKey(
|
|
blank=True,
|
|
db_constraint=False,
|
|
help_text="Specific therapist if known",
|
|
null=True,
|
|
on_delete=django.db.models.deletion.DO_NOTHING,
|
|
related_name="+",
|
|
to=settings.AUTH_USER_MODEL,
|
|
verbose_name="Referred To",
|
|
),
|
|
),
|
|
migrations.AddField(
|
|
model_name="historicalreferral",
|
|
name="tenant",
|
|
field=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",
|
|
),
|
|
),
|
|
migrations.AddField(
|
|
model_name="historicalreferral",
|
|
name="to_clinic",
|
|
field=models.ForeignKey(
|
|
blank=True,
|
|
db_constraint=False,
|
|
null=True,
|
|
on_delete=django.db.models.deletion.DO_NOTHING,
|
|
related_name="+",
|
|
to="core.clinic",
|
|
verbose_name="To Clinic",
|
|
),
|
|
),
|
|
migrations.DeleteModel(
|
|
name="ReferralAutoRule",
|
|
),
|
|
]
|