From bfb5ebcc1a806f7f2e4242e91359c1b46c2975ca Mon Sep 17 00:00:00 2001 From: Piotr Gawron <piotr.gawron@uni.lu> Date: Tue, 14 Apr 2020 14:16:17 +0200 Subject: [PATCH] list of subjects imported using new tns format --- .../web/importer/csv_tns_subject_import_reader.py | 9 +++++++-- smash/web/tests/data/tns_subjects_import.csv | 4 ++-- .../test_tns_csv_subject_import_reader.py | 15 +++++++++++++++ .../importer/test_tns_csv_visit_import_reader.py | 1 - 4 files changed, 24 insertions(+), 5 deletions(-) diff --git a/smash/web/importer/csv_tns_subject_import_reader.py b/smash/web/importer/csv_tns_subject_import_reader.py index 638c798c..862bbb94 100644 --- a/smash/web/importer/csv_tns_subject_import_reader.py +++ b/smash/web/importer/csv_tns_subject_import_reader.py @@ -34,15 +34,18 @@ class TnsCsvSubjectImportReader(SubjectImportReader): def add_data(self, study_subject, column_name, value): # type: (StudySubject, str, str) -> None - if column_name == "firstname": + if column_name == "firstname" or column_name == "sig_firstname": study_subject.subject.first_name = self.get_new_value(study_subject.subject.first_name, column_name, value) - elif column_name == "lastname": + elif column_name == "lastname" or column_name == "sig_lastname": study_subject.subject.last_name = self.get_new_value(study_subject.subject.last_name, column_name, value) elif column_name == "donor_id": study_subject.screening_number = self.get_new_value(study_subject.screening_number, column_name, value) elif column_name == "phonenr": study_subject.subject.phone_number = self.get_new_value(study_subject.subject.phone_number, column_name, value) + elif column_name == "representative": + study_subject.subject.next_of_keen_name = self.get_new_value(study_subject.subject.next_of_keen_name, + column_name, value) elif column_name == "treatingphysician": if value is not None and value != "": value = "Treating physician: " + value @@ -59,6 +62,8 @@ class TnsCsvSubjectImportReader(SubjectImportReader): return new_value if new_value is None or new_value == "": return old_value + if old_value == new_value: + return new_value logger.warn( "Contradicting entries in csv file for column: " + column_name + "(" + new_value + "," + old_value + "). Latest value will be used") diff --git a/smash/web/tests/data/tns_subjects_import.csv b/smash/web/tests/data/tns_subjects_import.csv index 4ae65947..05a910ed 100644 --- a/smash/web/tests/data/tns_subjects_import.csv +++ b/smash/web/tests/data/tns_subjects_import.csv @@ -1,4 +1,4 @@ donor_id;firstname;lastname;dateofbirth;phonenr;treatingphysician;sig_firstname;sig_lastname;representative cov-000111;John;Doe;01/01/1977;555555;Gregory House;John;Doe;Mario Doe -cov-222333;John2;Doe2;01/02/1977;621000000;Gregory House2;John 2;Doe 2; -cov-444444;John2;Doe2;01/03/1977;691000000;Gregory House3;John 3;Doe 3;Elsa Doe \ No newline at end of file +cov-222333;John2;Doe2;01/02/1977;621000000;Gregory House2;John2;Doe2; +cov-444444;John2;Doe2;01/03/1977;691000000;Gregory House3;John2;Doe2;Elsa Doe \ No newline at end of file diff --git a/smash/web/tests/importer/test_tns_csv_subject_import_reader.py b/smash/web/tests/importer/test_tns_csv_subject_import_reader.py index a713f5b1..f81ec8f5 100644 --- a/smash/web/tests/importer/test_tns_csv_subject_import_reader.py +++ b/smash/web/tests/importer/test_tns_csv_subject_import_reader.py @@ -6,12 +6,20 @@ from django.test import TestCase from web.importer import TnsCsvSubjectImportReader from web.tests.functions import get_resource_path +from web.importer import MsgCounterHandler logger = logging.getLogger(__name__) class TestTnsCsvSubjectReader(TestCase): + def setUp(self): + self.warning_counter = MsgCounterHandler() + logging.getLogger('').addHandler(self.warning_counter) + + def tearDown(self): + logging.getLogger('').removeHandler(self.warning_counter) + def test_load_data(self): filename = get_resource_path('tns_subjects_import.csv') study_subjects = TnsCsvSubjectImportReader().load_data(filename) @@ -29,3 +37,10 @@ class TestTnsCsvSubjectReader(TestCase): self.assertEqual(1977, study_subject.subject.date_born.year) self.assertIsNotNone(study_subject.study) + self.assertEqual(0, self.get_warnings_count()) + + def get_warnings_count(self): + if "WARNING" in self.warning_counter.level2count: + return self.warning_counter.level2count["WARNING"] + else: + return 0 diff --git a/smash/web/tests/importer/test_tns_csv_visit_import_reader.py b/smash/web/tests/importer/test_tns_csv_visit_import_reader.py index ae7c1a04..44b62187 100644 --- a/smash/web/tests/importer/test_tns_csv_visit_import_reader.py +++ b/smash/web/tests/importer/test_tns_csv_visit_import_reader.py @@ -132,7 +132,6 @@ class TestTnsCsvSubjectReader(TestCase): self.assertEquals(1, self.get_warnings_count()) - def get_warnings_count(self): if "WARNING" in self.warning_counter.level2count: return self.warning_counter.level2count["WARNING"] -- GitLab