Skip to content

Commit a541a9a

Browse files
committed
final review
1 parent 3acd098 commit a541a9a

File tree

2 files changed

+14
-8
lines changed

2 files changed

+14
-8
lines changed

backend/src/parameter_parser.py

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -48,16 +48,17 @@ def process_patient_identifier(identifier_params: ParamContainer) -> str:
4848
raise ParameterException(f"Search parameter {patient_identifier_key} must have one value.")
4949

5050
patient_identifier_parts = patient_identifier.split("|")
51-
if len(patient_identifier_parts) != 2 or not patient_identifier_parts[
52-
0] == patient_identifier_system:
51+
identifier_system = patient_identifier_parts[0]
52+
if len(patient_identifier_parts) != 2 or not identifier_system == patient_identifier_system:
5353
raise ParameterException("patient.identifier must be in the format of "
5454
f"\"{patient_identifier_system}|{{NHS number}}\" "
5555
f"e.g. \"{patient_identifier_system}|9000000009\"")
56-
57-
if not nhs_number_mod11_check(patient_identifier_parts[1]):
56+
57+
nhs_number = patient_identifier_parts[1]
58+
if not nhs_number_mod11_check(nhs_number):
5859
raise ParameterException("Search parameter patient.identifier must be a valid NHS number.")
59-
60-
return patient_identifier.split("|")[1]
60+
61+
return nhs_number
6162

6263

6364
def process_immunization_target(imms_params: ParamContainer) -> list[str]:

backend/tests/test_parameter_parser.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ def test_process_search_params_checks_patient_identifier_format(self):
108108
self.immunization_target_key: ["RSV"],
109109
}
110110
)
111-
self.assertIsNotNone(params)
111+
112112

113113
def test_process_search_params_whitelists_immunization_target(self):
114114
mock_redis_key = "RSV"
@@ -117,14 +117,18 @@ def test_process_search_params_whitelists_immunization_target(self):
117117
process_search_params(
118118
{
119119
self.patient_identifier_key: ["https://fhir.nhs.uk/Id/nhs-number|9000000009"],
120-
self.immunization_target_key: ["not-a-code"],
120+
self.immunization_target_key: ["FLU", "COVID-19", "NOT-A-REAL-VALUE"],
121121
}
122122
)
123123
self.assertEqual(
124124
str(e.exception), f"immunization-target must be one or more of the following: {mock_redis_key}",
125125
f"Unexpected exception message: {str(e.exception)}"
126126
)
127127

128+
129+
def test_process_search_params_immunization_target(self):
130+
mock_redis_key = "RSV"
131+
self.mock_redis_client.hkeys.return_value = [mock_redis_key]
128132
params = process_search_params(
129133
{
130134
self.patient_identifier_key: ["https://fhir.nhs.uk/Id/nhs-number|9000000009"],
@@ -134,6 +138,7 @@ def test_process_search_params_whitelists_immunization_target(self):
134138

135139
self.assertIsNotNone(params)
136140

141+
137142
def test_search_params_date_from_must_be_before_date_to(self):
138143
self.mock_redis_client.hkeys.return_value = ["RSV"]
139144
params = process_search_params(

0 commit comments

Comments
 (0)