From a065fc83a26ac8ca906165ace34f6bbe461855fb Mon Sep 17 00:00:00 2001
From: Piotr Gawron <piotr.gawron@uni.lu>
Date: Tue, 1 Dec 2020 13:42:12 +0100
Subject: [PATCH] diagnosis and screening fields moved to custom fields

---
 smash/web/forms/study_subject_forms.py         |  2 --
 .../0190_remove_study_related_fields.py        | 15 ++++++++++++---
 .../web/migrations/0191_auto_20201201_1033.py  | 18 ++++++++++++++++++
 smash/web/models/mail_template.py              |  2 +-
 smash/web/models/study_columns.py              |  9 ---------
 smash/web/models/study_subject.py              | 12 ------------
 smash/web/tests/functions.py                   |  1 -
 7 files changed, 31 insertions(+), 28 deletions(-)

diff --git a/smash/web/forms/study_subject_forms.py b/smash/web/forms/study_subject_forms.py
index 2c1f8b27..2877c70d 100644
--- a/smash/web/forms/study_subject_forms.py
+++ b/smash/web/forms/study_subject_forms.py
@@ -361,7 +361,6 @@ def prepare_study_subject_fields(fields, study):
     prepare_field(fields, study.columns, 'flying_team')
     prepare_field(fields, study.columns, 'comments')
     prepare_field(fields, study.columns, 'referral')
-    prepare_field(fields, study.columns, 'diagnosis')
     prepare_field(fields, study.columns, 'year_of_diagnosis')
     prepare_field(fields, study.columns, 'information_sent')
     prepare_field(fields, study.columns, 'pd_in_family')
@@ -372,7 +371,6 @@ def prepare_study_subject_fields(fields, study):
     prepare_field(fields, study.columns, 'referral_letter')
     prepare_field(fields, study.columns, 'health_partner')
     prepare_field(fields, study.columns, 'health_partner_feedback_agreement')
-    prepare_field(fields, study.columns, 'screening')
     prepare_field(fields, study.columns, 'previously_in_study')
     prepare_field(fields, study.columns, 'voucher_types')
 
diff --git a/smash/web/migrations/0190_remove_study_related_fields.py b/smash/web/migrations/0190_remove_study_related_fields.py
index 7f671664..39c4965a 100644
--- a/smash/web/migrations/0190_remove_study_related_fields.py
+++ b/smash/web/migrations/0190_remove_study_related_fields.py
@@ -13,10 +13,19 @@ def create_custom_fields(apps, schema_editor):
         CustomStudySubjectField = apps.get_model("web", "CustomStudySubjectField")
         # noinspection PyPep8Naming
         CustomStudySubjectValue = apps.get_model("web", "CustomStudySubjectValue")
-        field = CustomStudySubjectField.objects.create(name="MPower ID", type=CUSTOM_FIELD_TYPE_TEXT,
-                                                       study_id=GLOBAL_STUDY_ID, unique=True)
+
+        mpower_field = CustomStudySubjectField.objects.create(name="MPower ID", type=CUSTOM_FIELD_TYPE_TEXT,
+                                                              study_id=GLOBAL_STUDY_ID, unique=True)
+        screening_field = CustomStudySubjectField.objects.create(name="Screening", type=CUSTOM_FIELD_TYPE_TEXT,
+                                                                 study_id=GLOBAL_STUDY_ID)
+        diagnosis_field = CustomStudySubjectField.objects.create(name="Diagnosis", type=CUSTOM_FIELD_TYPE_TEXT,
+                                                                 study_id=GLOBAL_STUDY_ID)
         for subject in StudySubject.objects.all():
-            CustomStudySubjectValue.objects.create(study_subject_field=field, value=subject.mpower_id,
+            CustomStudySubjectValue.objects.create(study_subject_field=mpower_field, value=subject.mpower_id,
+                                                   study_subject=subject)
+            CustomStudySubjectValue.objects.create(study_subject_field=screening_field, value=subject.screening,
+                                                   study_subject=subject)
+            CustomStudySubjectValue.objects.create(study_subject_field=diagnosis_field, value=subject.diagnosis,
                                                    study_subject=subject)
 
 
diff --git a/smash/web/migrations/0191_auto_20201201_1033.py b/smash/web/migrations/0191_auto_20201201_1033.py
index 9971722e..db8b0130 100644
--- a/smash/web/migrations/0191_auto_20201201_1033.py
+++ b/smash/web/migrations/0191_auto_20201201_1033.py
@@ -14,8 +14,26 @@ class Migration(migrations.Migration):
             model_name='studycolumns',
             name='mpower_id',
         ),
+        migrations.RemoveField(
+            model_name='studycolumns',
+            name='diagnosis',
+        ),
+        migrations.RemoveField(
+            model_name='studycolumns',
+            name='screening',
+        ),
+
+        
         migrations.RemoveField(
             model_name='studysubject',
             name='mpower_id',
         ),
+        migrations.RemoveField(
+            model_name='studysubject',
+            name='diagnosis',
+        ),
+        migrations.RemoveField(
+            model_name='studysubject',
+            name='screening',
+        ),
     ]
diff --git a/smash/web/models/mail_template.py b/smash/web/models/mail_template.py
index d9c0640b..753245da 100644
--- a/smash/web/models/mail_template.py
+++ b/smash/web/models/mail_template.py
@@ -341,7 +341,7 @@ class MailTemplate(models.Model):
                 "##S_DIAGNOSIS_YEAR##": str(study_subject.year_of_diagnosis),
                 "##S_DATE_ADDED##": date_to_str(study_subject.date_added, DATE_FORMAT_SHORT),
                 "##S_DATE_BORN##": date_born,
-                "##S_DIAGNOSIS##": str(study_subject.diagnosis),
+                "##S_DIAGNOSIS##": study_subject.get_custom_field_value('Diagnosis'),
                 "##S_EMAIL##": str(study_subject.subject.email),
                 "##S_SEX##": study_subject.subject.get_sex_display(),
                 "##S_MPOWER_ID##": study_subject.get_custom_field_value('MPower ID'),
diff --git a/smash/web/models/study_columns.py b/smash/web/models/study_columns.py
index eb69d918..137c7065 100644
--- a/smash/web/models/study_columns.py
+++ b/smash/web/models/study_columns.py
@@ -48,10 +48,6 @@ class StudyColumns(models.Model):
         default=True,
         verbose_name='Referred by'
     )
-    diagnosis = models.BooleanField(
-        default=True,
-        verbose_name='Diagnosis'
-    )
     year_of_diagnosis = models.BooleanField(
         default=True,
         verbose_name='Year of diagnosis (YYYY)'
@@ -95,11 +91,6 @@ class StudyColumns(models.Model):
         verbose_name='Agrees to give information to referral'
     )
 
-    screening = models.BooleanField(
-        default=False,
-        verbose_name='Screening'
-    )
-
     previously_in_study = models.BooleanField(
         default=False,
         verbose_name='Previously in PDP study',
diff --git a/smash/web/models/study_subject.py b/smash/web/models/study_subject.py
index 69f07e2e..58150884 100644
--- a/smash/web/models/study_subject.py
+++ b/smash/web/models/study_subject.py
@@ -133,18 +133,6 @@ class StudySubject(models.Model):
         default=False,
     )
 
-    screening = models.CharField(max_length=1024,
-                                 null=True,
-                                 blank=True,
-                                 verbose_name='Screening'
-                                 )
-
-    diagnosis = models.CharField(max_length=1024,
-                                 null=True,
-                                 blank=True,
-                                 verbose_name='Diagnosis'
-                                 )
-
     previously_in_study = models.BooleanField(
         verbose_name='Previously in PDP study',
         default=False,
diff --git a/smash/web/tests/functions.py b/smash/web/tests/functions.py
index 345ae58f..b55439a9 100644
--- a/smash/web/tests/functions.py
+++ b/smash/web/tests/functions.py
@@ -53,7 +53,6 @@ def create_empty_study_columns():
         nd_number=False,
         comments=False,
         referral=False,
-        diagnosis=False,
         year_of_diagnosis=False,
         information_sent=False,
         pd_in_family=False,
-- 
GitLab