Skip to content

Commit 35e575b

Browse files
committed
filter in form_json
1 parent 84a2aca commit 35e575b

File tree

3 files changed

+12
-16
lines changed

3 files changed

+12
-16
lines changed

backend/src/fhir_service.py

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -68,16 +68,13 @@ def get_immunization_by_identifier(
6868
identifier_pk, imms_vax_type_perms
6969
)
7070

71-
patient_full_url = f"urn:uuid:{str(uuid4())}"
72-
filtered_response = [Filter.search(imms, patient_full_url) for imms in imms_resp]
73-
74-
if not filtered_response:
71+
if not imms_resp:
7572
base_url = f"{get_service_url()}/Immunization"
76-
response = form_json(filtered_response[0], None, None, base_url)
73+
response = form_json(imms_resp, None, None, base_url)
7774
return response
7875
else:
7976
base_url = f"{get_service_url()}/Immunization"
80-
response = form_json(filtered_response[0], element, identifier, base_url)
77+
response = form_json(imms_resp, element, identifier, base_url)
8178
return response
8279

8380
def get_immunization_by_id(self, imms_id: str, imms_vax_type_perms: list[str]) -> Optional[dict]:

backend/src/models/utils/generic_utils.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,9 @@ def form_json(response, _element, identifier, baseurl):
152152
# Full Immunization payload to be returned if only the identifier parameter was provided
153153
if identifier and not _element:
154154
resource = response["resource"]
155+
resource.pop("contained", None)
156+
if "use" not in response["identifier"][0]:
157+
resource["identifier"][0]["use"] = "official"
155158

156159
elif identifier and _element:
157160
element = {e.strip().lower() for e in _element.split(",") if e.strip()}
@@ -164,7 +167,7 @@ def form_json(response, _element, identifier, baseurl):
164167
# Add 'meta' if specified
165168
if "meta" in element:
166169
resource["id"] = response["id"]
167-
resource["meta"] = {"versionId": response.get("version")}
170+
resource["meta"] = {"versionId": response["version"]}
168171

169172
json["entry"] = [{
170173
"fullUrl": f"https://api.service.nhs.uk/immunisation-fhir-api/Immunization/{response['id']}",

backend/tests/test_fhir_service.py

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -321,11 +321,9 @@ def tearDown(self):
321321
def test_get_immunization_by_identifier(self):
322322
"""it should find an Immunization by id"""
323323
imms = "an-id#an-id"
324-
imms_ids = ["imms-1", "imms-2"]
325-
imms_list = [create_covid_19_immunization_dict(imms_id) for imms_id in imms_ids]
326324
identifier = "test"
327-
element = "id,meta"
328-
self.imms_repo.get_immunization_by_identifier.return_value = deepcopy(imms_list)
325+
element = "id,mEta,DDD"
326+
self.imms_repo.get_immunization_by_identifier.return_value = {}
329327

330328
# When
331329
service_resp = self.fhir_service.get_immunization_by_identifier(imms, "COVID19:search", identifier, element)
@@ -339,17 +337,15 @@ def test_get_immunization_by_identifier(self):
339337
def test_immunization_not_found(self):
340338
"""it should return None if Immunization doesn't exist"""
341339
imms_id = "none"
342-
imms_ids = ["imms-1", "imms-2"]
343-
imms_list = [create_covid_19_immunization_dict(imms_id) for imms_id in imms_ids]
344340
identifier = "test"
345341
element = "id"
346-
self.imms_repo.get_immunization_by_identifier.return_value = deepcopy(imms_list)
342+
self.imms_repo.get_immunization_by_identifier.return_value = None
347343

348344
# When
349-
act_imms = self.fhir_service.get_immunization_by_identifier(imms_id, "COVID19.S", identifier, element)
345+
act_imms = self.fhir_service.get_immunization_by_identifier(imms_id, "COVID19:search", identifier, element)
350346

351347
# Then
352-
self.imms_repo.get_immunization_by_identifier.assert_called_once_with(imms_id, "COVID19.S")
348+
self.imms_repo.get_immunization_by_identifier.assert_called_once_with(imms_id, "COVID19:search")
353349

354350
self.assertEqual(act_imms["entry"], [])
355351

0 commit comments

Comments
 (0)