Skip to content

Commit 7496b3b

Browse files
committed
tidy up
1 parent cf907eb commit 7496b3b

4 files changed

Lines changed: 33 additions & 10 deletions

File tree

delta_backend/src/extractor.py

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -28,20 +28,17 @@ def _get_patient(self):
2828
contained = self.fhir_json_data.get("contained", [])
2929
return next((c for c in contained if isinstance(c, dict) and c.get("resourceType") == "Patient"), "")
3030

31-
def _get_valid_names(self, names, occurrence_time, resource_type="Patient"):
32-
33-
def has_required_fields(name):
34-
return "given" in name and "family" in name if resource_type == "Patient" else True
31+
def _get_valid_names(self, names, occurrence_time):
3532

3633
official_names = [n for n in names if n.get("use") == "official" and self._is_current_period(n, occurrence_time)]
3734
if official_names:
38-
filtered_official_names = [n for n in official_names if has_required_fields(n)]
39-
return filtered_official_names[0]
35+
return official_names[0]
4036

4137
valid_names = [n for n in names if self._is_current_period(n, occurrence_time) and n.get("use") != "old"]
42-
filtered_valid_names = [n for n in valid_names if has_required_fields(n)]
38+
if valid_names:
39+
return valid_names[0]
4340

44-
return filtered_valid_names[0] if filtered_valid_names else names[0]
41+
return names[0]
4542

4643

4744

@@ -53,7 +50,7 @@ def _get_person_names(self):
5350
if not names:
5451
return "", ""
5552

56-
selected_name = self._get_valid_names(names, occurrence_time, resource_type="Patient")
53+
selected_name = self._get_valid_names(names, occurrence_time)
5754
person_forename = " ".join(selected_name.get("given", []))
5855
person_surname = selected_name.get("family", "")
5956

@@ -74,7 +71,7 @@ def _get_practitioner_names(self):
7471
if not valid_practitioner_names:
7572
return "", ""
7673

77-
selected_practitioner_name = self._get_valid_names(valid_practitioner_names, occurrence_time, resource_type="Practitioner")
74+
selected_practitioner_name = self._get_valid_names(valid_practitioner_names, occurrence_time)
7875
performing_professional_forename = " ".join(selected_practitioner_name.get("given", []))
7976
performing_professional_surname = selected_practitioner_name.get("family", "")
8077

delta_backend/tests/sample_data/fhir_sample.json

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,18 @@
6262
"end" : "2026-01-01"
6363
}
6464
},
65+
{
66+
"use": "official",
67+
"text": "hello pat2",
68+
"family": "test12",
69+
"given": [
70+
"test13", "test14", "test15"
71+
],
72+
"period": {
73+
"start" : "2000-01-01",
74+
"end" : "2026-01-01"
75+
}
76+
},
6577
{
6678
"use": "old",
6779
"text": "hello pat3",

delta_backend/tests/test_convert_person_forename.py

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

88
class TestPersonForenmeToFlatJson(unittest.TestCase):
9+
""""
10+
Test cases for converting person forename to flat JSON format.
11+
## 1. If there is only one name use that one, else
12+
## 2. Select first name where Use=official with period covering vaccination date, else
13+
## 3. select instance where current name with use!=old at vaccination date
14+
## 4. Fallback to first available name instance
15+
"""
916

1017
def setUp(self):
1118
self.request_json_data = copy.deepcopy(ValuesForTests.json_data)

delta_backend/tests/test_convert_person_surname.py

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

88
class TestPersonSurnameToFlatJson(unittest.TestCase):
9+
""""
10+
Test cases for converting person surname to flat JSON format.
11+
## 1. If there is only one name use that one, else
12+
## 2. Select first name where Use=official with period covering vaccination date, else
13+
## 3. select instance where current name with use!=old at vaccination date
14+
## 4. Fallback to first available name instance
15+
"""
916

1017
def setUp(self):
1118
self.request_json_data = copy.deepcopy(ValuesForTests.json_data)

0 commit comments

Comments
 (0)