Skip to content

Commit babd290

Browse files
committed
VED-496: Output PRIMARY_SOURCE as a string.
1 parent 7c80a2c commit babd290

File tree

3 files changed

+19
-20
lines changed

3 files changed

+19
-20
lines changed

delta_backend/src/extractor.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -29,17 +29,17 @@ def _get_patient(self):
2929
return next((c for c in contained if isinstance(c, dict) and c.get("resourceType") == "Patient"), "")
3030

3131
def _get_valid_names(self, names, occurrence_time):
32-
32+
3333
official_names = [n for n in names if n.get("use") == "official" and self._is_current_period(n, occurrence_time)]
3434
if official_names:
3535
return official_names[0]
3636

3737
valid_names = [n for n in names if self._is_current_period(n, occurrence_time) and n.get("use") != "old"]
3838
if valid_names:
3939
return valid_names[0]
40-
41-
return names[0]
42-
40+
41+
return names[0]
42+
4343

4444

4545
def _get_person_names(self):
@@ -56,9 +56,9 @@ def _get_person_names(self):
5656

5757
if person_forename and person_surname:
5858
return person_forename, person_surname
59-
59+
6060
return "", ""
61-
61+
6262
def _get_practitioner_names(self):
6363
contained = self.fhir_json_data.get("contained", [])
6464
occurrence_time = self._get_occurance_date_time()
@@ -282,8 +282,8 @@ def extract_valid_address(self):
282282
)
283283

284284
return selected_address.get("postalCode") or self.DEFAULT_POSTCODE
285-
286-
def extract_date_time(self) -> str:
285+
286+
def extract_date_time(self) -> str:
287287
date = self.fhir_json_data.get("occurrenceDateTime","")
288288
if date:
289289
return self._convert_date_to_safe_format(ConversionFieldName.DATE_AND_TIME, date)
@@ -321,7 +321,7 @@ def extract_primary_source(self) -> bool | str:
321321
primary_source = self.fhir_json_data.get("primarySource")
322322

323323
if isinstance(primary_source, bool):
324-
return primary_source
324+
return str(primary_source).upper()
325325
return ""
326326

327327
def extract_vaccination_procedure_code(self) -> str:

delta_backend/tests/test_convert_primary_source.py

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,28 +6,27 @@
66
from common.mappings import ConversionFieldName
77

88
class TestPrimarySourceFlatJson(unittest.TestCase):
9-
9+
1010
def setUp(self):
1111
self.request_json_data = copy.deepcopy(ValuesForTests.json_data)
12-
12+
1313
def _run_primary_source_test(self, expected_result):
1414
"""Helper function to run the test"""
1515
self.converter = Converter(json.dumps(self.request_json_data))
1616
flat_json = self.converter.run_conversion()
1717
self.assertEqual(flat_json.get(ConversionFieldName.PRIMARY_SOURCE), expected_result)
18-
18+
1919
def test_primary_source_true(self):
2020
"""Should return True when primarySource is true"""
2121
self.request_json_data["primarySource"] = True
22-
self._run_primary_source_test(expected_result=True)
22+
self._run_primary_source_test(expected_result="TRUE")
2323

2424
def test_primary_source_false(self):
2525
"""Should return False when primarySource is false"""
2626
self.request_json_data["primarySource"] = False
27-
self._run_primary_source_test(expected_result=False)
28-
27+
self._run_primary_source_test(expected_result="FALSE")
28+
2929
def test_primary_source_missing(self):
3030
"""Should return None when primarySource is missing"""
3131
self.request_json_data.pop("primarySource", None)
3232
self._run_primary_source_test(expected_result="")
33-

delta_backend/tests/utils_for_converter_tests.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -228,7 +228,7 @@ def get_expected_imms(expected_action_flag):
228228
"PERFORMING_PROFESSIONAL_FORENAME": "Florence",
229229
"PERFORMING_PROFESSIONAL_SURNAME": "Nightingale",
230230
"RECORDED_DATE": "20210207",
231-
"PRIMARY_SOURCE": True,
231+
"PRIMARY_SOURCE": "TRUE",
232232
"VACCINATION_PROCEDURE_CODE": "13246814444444",
233233
"VACCINATION_PROCEDURE_TERM": "Test Value string 123456 COVID19 vaccination",
234234
"DOSE_SEQUENCE": "1",
@@ -266,7 +266,7 @@ def get_expected_imms(expected_action_flag):
266266
"PERFORMING_PROFESSIONAL_FORENAME": "Florence",
267267
"PERFORMING_PROFESSIONAL_SURNAME": "Nightingale",
268268
"RECORDED_DATE": "20210207",
269-
"PRIMARY_SOURCE": True,
269+
"PRIMARY_SOURCE": "TRUE",
270270
"VACCINATION_PROCEDURE_CODE": "13246814444444",
271271
"VACCINATION_PROCEDURE_TERM": "Administration of first dose of severe acute respiratory syndrome coronavirus 2 vaccine (procedure)",
272272
"DOSE_SEQUENCE": 1,
@@ -304,7 +304,7 @@ def get_expected_imms(expected_action_flag):
304304
"PERFORMING_PROFESSIONAL_FORENAME": "Florence",
305305
"PERFORMING_PROFESSIONAL_SURNAME": "Nightingale",
306306
"RECORDED_DATE": "20210207",
307-
"PRIMARY_SOURCE": True,
307+
"PRIMARY_SOURCE": "TRUE",
308308
"VACCINATION_PROCEDURE_CODE": "13246814444444",
309309
"VACCINATION_PROCEDURE_TERM": "Test Value string 123456 COVID19 vaccination",
310310
"DOSE_SEQUENCE": "1",
@@ -457,7 +457,7 @@ def get_expected_imms_error_output(expected_action_flag):
457457
"PERFORMING_PROFESSIONAL_FORENAME": "Florence",
458458
"PERFORMING_PROFESSIONAL_SURNAME": "Nightingale",
459459
"RECORDED_DATE": "20210207",
460-
"PRIMARY_SOURCE": True,
460+
"PRIMARY_SOURCE": "TRUE",
461461
"VACCINATION_PROCEDURE_CODE": "13246814444444",
462462
"VACCINATION_PROCEDURE_TERM": "Administration of first dose of severe acute respiratory syndrome coronavirus 2 vaccine (procedure)",
463463
"DOSE_SEQUENCE": 1,

0 commit comments

Comments
 (0)