From 828827d7a2d40345d068958a6e5785fe9ac905bc Mon Sep 17 00:00:00 2001 From: Ivkovic Date: Wed, 10 Jan 2024 09:51:48 -0500 Subject: [PATCH] Fix updating samples in Patient record and migration --- file_system/models.py | 1 + populate_patients_samples.py | 11 +++++++++++ 2 files changed, 12 insertions(+) create mode 100644 populate_patients_samples.py diff --git a/file_system/models.py b/file_system/models.py index 43c835785..089e6b1eb 100644 --- a/file_system/models.py +++ b/file_system/models.py @@ -352,6 +352,7 @@ def create_or_update_patient(self, patient_id, sex, sample): patient = Patient.objects.create(patient_id=patient_id, sex=sex) if sample not in patient.samples: patient.samples.append(sample) + patient.save(do_not_version=True) return patient def save(self, *args, **kwargs): diff --git a/populate_patients_samples.py b/populate_patients_samples.py new file mode 100644 index 000000000..390d662f7 --- /dev/null +++ b/populate_patients_samples.py @@ -0,0 +1,11 @@ +from django.conf import settings +from file_system.models import Patient +from file_system.repository import FileRepository + + +def populate_patient_samples(): + from_lims = FileRepository.filter(file_group=settings.IMPORT_FILE_GROUP, values_metadata="cmoPatientId").all() + for p in Patient.objects.filter(patient_id__in=from_lims).all(): + samples = FileRepository.filter(metadata={"cmoPatientId": p.patient_id}, values_metadata="primaryId").all() + p.samples = list(samples) + p.save()