From df09ae95f1c4d302a95cf8502ce1d88e7ff0d457 Mon Sep 17 00:00:00 2001 From: Aakash Singh Date: Thu, 23 Nov 2023 18:42:34 +0530 Subject: [PATCH] link existing patient notes to consultations --- ...n.py => 0397_patientnotes_consultation.py} | 2 +- .../migrations/0398_auto_20231123_1812.py | 37 +++++++++++++++++++ 2 files changed, 38 insertions(+), 1 deletion(-) rename care/facility/migrations/{0392_patientnotes_consultation.py => 0397_patientnotes_consultation.py} (91%) create mode 100644 care/facility/migrations/0398_auto_20231123_1812.py diff --git a/care/facility/migrations/0392_patientnotes_consultation.py b/care/facility/migrations/0397_patientnotes_consultation.py similarity index 91% rename from care/facility/migrations/0392_patientnotes_consultation.py rename to care/facility/migrations/0397_patientnotes_consultation.py index 8a99f04da2..e933669651 100644 --- a/care/facility/migrations/0392_patientnotes_consultation.py +++ b/care/facility/migrations/0397_patientnotes_consultation.py @@ -6,7 +6,7 @@ class Migration(migrations.Migration): dependencies = [ - ("facility", "0391_merge_20231016_1845"), + ("facility", "0396_merge_20231122_0240"), ] operations = [ diff --git a/care/facility/migrations/0398_auto_20231123_1812.py b/care/facility/migrations/0398_auto_20231123_1812.py new file mode 100644 index 0000000000..627c607e2a --- /dev/null +++ b/care/facility/migrations/0398_auto_20231123_1812.py @@ -0,0 +1,37 @@ +# Generated by Django 4.2.7 on 2023-11-23 12:42 + +from django.db import migrations, models + + +def link_patient_notes_to_consultation(apps, schema_editor): + PatientConsultation = apps.get_model("facility", "PatientConsultation") + PatientNotes = apps.get_model("facility", "PatientNotes") + + consultations = PatientConsultation.objects.filter( + patient__in=models.Subquery(PatientNotes.objects.values("patient_id")) + ) + + for consultation in consultations: + notes = PatientNotes.objects.order_by("created_date").filter( + patient_id=consultation.patient_id, + created_date__gte=consultation.created_date, + ) + if consultation.discharge_reason: + notes = notes.filter( + created_date__lte=consultation.modified_date, + ) + + notes.update(consultation=consultation) + + +class Migration(migrations.Migration): + dependencies = [ + ("facility", "0397_patientnotes_consultation"), + ] + + operations = [ + migrations.RunPython( + code=link_patient_notes_to_consultation, + reverse_code=migrations.RunPython.noop, + ), + ]