diff --git a/smash/web/importer/csv_tns_subject_import_reader.py b/smash/web/importer/csv_tns_subject_import_reader.py index db6de8549c15c58cdff63551cbdab61187402a55..74ee4b1a90b452707b65943e5f7b22eb2f751a86 100644 --- a/smash/web/importer/csv_tns_subject_import_reader.py +++ b/smash/web/importer/csv_tns_subject_import_reader.py @@ -4,8 +4,8 @@ import logging import codecs from subject_import_reader import SubjectImportReader -from web.models import StudySubject, Subject, Study -from web.models.constants import GLOBAL_STUDY_ID +from ..models import StudySubject, Subject, Study +from ..models.constants import GLOBAL_STUDY_ID CSV_DATE_FORMAT = "%d/%m/%Y" @@ -41,6 +41,15 @@ class TnsCsvSubjectImportReader(SubjectImportReader): 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 == "email": + study_subject.subject.email = self.get_new_value(study_subject.subject.email, column_name, value) + elif column_name == "address": + study_subject.subject.address = self.get_new_value(study_subject.subject.address, column_name, value) + elif column_name == "postal_code": + study_subject.subject.postal_code = self.get_new_value(study_subject.subject.postal_code, column_name, + value) + elif column_name == "city": + study_subject.subject.city = self.get_new_value(study_subject.subject.city, column_name, value) elif column_name == "phonenr": study_subject.subject.phone_number = self.get_new_value(study_subject.subject.phone_number, column_name, value) @@ -86,7 +95,6 @@ class TnsCsvSubjectImportReader(SubjectImportReader): "). Latest value will be used") return datetime.datetime.strptime(new_value, CSV_DATE_FORMAT) + def remove_bom(line): return line[3:] if line.startswith(codecs.BOM_UTF8) else line - - diff --git a/smash/web/tests/data/tns_subjects_import.csv b/smash/web/tests/data/tns_subjects_import.csv index 05a910ed57ca0a3b8a63045afbe18b721e1f8fb3..9ac0e88a74001d63a3f3f4414f135c150f5d0aee 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;John2;Doe2; -cov-444444;John2;Doe2;01/03/1977;691000000;Gregory House3;John2;Doe2;Elsa Doe \ No newline at end of file +donor_id;firstname;lastname;dateofbirth;phonenr;treatingphysician;sig_firstname;sig_lastname;representative;address;postal_code;city;email +cov-000111;John;Doe;01/01/1977;555555;Gregory House;John;Doe;Mario Doe;;;; +cov-222333;John2;Doe2;01/02/1977;621000000;Gregory House2;John2;Doe2;;5, avenue blabla;9940;Belval;john.doe@neverland.lu +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 f81ec8f52c6bfcbc1daa8670d5f5a0922ff479c5..e9d46d49630a802a39e5cf6f0d7847f50a87969f 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 @@ -30,6 +30,11 @@ class TestTnsCsvSubjectReader(TestCase): self.assertEqual("cov-222333", study_subject.screening_number) self.assertEqual("cov-222333", study_subject.nd_number) self.assertEqual("621000000", study_subject.subject.phone_number) + self.assertEqual("john.doe@neverland.lu", study_subject.subject.email) + self.assertEqual("5, avenue blabla", study_subject.subject.address) + self.assertEqual("9940", study_subject.subject.postal_code) + self.assertEqual("Belval", study_subject.subject.city) + self.assertTrue("Gregory House2" in study_subject.comments) self.assertEqual(1, study_subject.subject.date_born.day)