Skip to content

Commit 36608f6

Browse files
committed
VED-350: resolve internal server error and remove id, version from full resource
1 parent 597bde9 commit 36608f6

File tree

3 files changed

+15
-11
lines changed

3 files changed

+15
-11
lines changed

backend/src/fhir_repository.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -95,15 +95,16 @@ def get_immunization_by_identifier(
9595
)
9696
if "Items" in response and len(response["Items"]) > 0:
9797
item = response["Items"][0]
98-
resp = dict()
9998
vaccine_type = self._vaccine_type(item["PatientSK"])
10099
if not validate_permissions(imms_vax_type_perms,ApiOperationCode.SEARCH, [vaccine_type]):
101100
raise UnauthorizedVaxError()
102101
resource = json.loads(item["Resource"])
103-
resp = dict(resource)
104-
resp["id"] = resource.get("id")
105-
resp["version"] = int(response["Items"][0]["Version"])
106-
return resp
102+
version = int(response["Items"][0]["Version"])
103+
return {
104+
"resource": resource,
105+
"id": resource.get("id"),
106+
"version": version
107+
}
107108
else:
108109
return None
109110

backend/src/models/utils/generic_utils.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -136,8 +136,6 @@ def create_diagnostics_error(value):
136136

137137

138138
def form_json(response, _element, identifier, baseurl):
139-
140-
resource = response
141139
self_url = f"{baseurl}?identifier={identifier}"
142140
if _element:
143141
self_url += f"&_elements={_element}"
@@ -155,15 +153,18 @@ def form_json(response, _element, identifier, baseurl):
155153
return json
156154

157155
# Full Immunization payload to be returned if only the identifier parameter was provided
158-
if identifier and _element:
156+
if identifier and not _element:
157+
resource = response["resource"]
158+
159+
elif identifier and _element:
159160
__elements = _element.lower()
160161
element = __elements.split(",")
161162

162163
resource = {"resourceType": "Immunization"}
163164

164165
# Add 'id' if specified
165166
if "id" in element:
166-
json["entry"][0]["resource"]["id"] = response["id"]
167+
resource["id"] = response["id"]
167168

168169
# Add 'meta' if specified
169170
if "meta" in element:

backend/tests/test_fhir_repository.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ def test_get_immunization_by_identifier(self):
5353
"""it should find an Immunization by id"""
5454
imms_id = "a-id#an-id"
5555
resource = dict()
56-
resource["Resource"] = {"foo": "bar", "id": "test", "version": 1}
56+
resource["Resource"] = {"foo": "bar", "id": "test"}
5757
self.table.query = MagicMock(
5858
return_value={
5959
"Items": [
@@ -69,7 +69,9 @@ def test_get_immunization_by_identifier(self):
6969
imms = self.repository.get_immunization_by_identifier(imms_id, ["COVID19.CRUDS"])
7070

7171
# Validate the results
72-
self.assertDictEqual(resource["Resource"], imms)
72+
self.assertDictEqual(resource["Resource"], imms["resource"])
73+
self.assertEqual(imms["version"], 1)
74+
self.assertEqual(imms["id"], "test")
7375
# self.table.get_item.assert_called_once_with(Key={"PK": (imms_id)})
7476
self.table.query.assert_called_once_with(
7577
IndexName="IdentifierGSI",

0 commit comments

Comments
 (0)