@@ -136,52 +136,53 @@ def create_diagnostics_error(value):
136136
137137
138138def form_json (response , _element , identifier , baseurl ):
139- # Elements to include, based on the '_element' parameter
139+
140+ resource = response
141+ self_url = f"{ baseurl } ?identifier={ identifier } "
142+ if _element :
143+ self_url += f"&_elements={ _element } "
144+
140145 if not response :
141146 json = {
142147 "resourceType" : "Bundle" ,
143148 "type" : "searchset" ,
144149 "link" : [
145- {"relation" : "self" , "url" : f"{ baseurl } ?identifier={ identifier } &_elements= { _element } " }
150+ {"relation" : "self" , "url" : f"{ baseurl } ?identifier={ identifier } " }
146151 ],
147152 "entry" : [],
148153 "total" : 0 ,
149154 }
150155 return json
151156
152- # Basic structure for the JSON output
157+ # Full Immunization payload to be returned if only the identifier parameter was provided
158+ if identifier and _element :
159+ __elements = _element .lower ()
160+ element = __elements .split ("," )
161+
162+ resource = {"resourceType" : "Immunization" }
163+
164+ # Add 'id' if specified
165+ if "id" in element :
166+ json ["entry" ][0 ]["resource" ]["id" ] = response ["id" ]
167+
168+ # Add 'meta' if specified
169+ if "meta" in element :
170+ resource ["id" ] = response ["id" ]
171+ resource ["meta" ] = {"versionId" : response ["version" ]}
172+
153173 json = {
154174 "resourceType" : "Bundle" ,
155175 "type" : "searchset" ,
156176 "link" : [{"relation" : "self" , "url" : f"{ baseurl } ?identifier={ identifier } &_elements={ _element } " }],
157177 "entry" : [
158178 {
159179 "fullUrl" : f"https://api.service.nhs.uk/immunisation-fhir-api/Immunization/{ response ['id' ]} " ,
160- "resource" : { "resourceType" : "Immunization" } ,
180+ "resource" : resource ,
161181 }
162182 ],
163183 "total" : 1 ,
164184 }
165185
166- # Full Immunization payload to be returned if only the identifier parameter was provided
167- if identifier and (not _element ):
168- json ["entry" ].append ({
169- "fullUrl" : f"https://api.service.nhs.uk/immunisation-fhir-api/Immunization/{ response .get ('id' )} " ,
170- "resource" : response ,
171- })
172- return json
173-
174- __elements = _element .lower ()
175- element = __elements .split ("," )
176- # Add 'id' if specified
177- if "id" in element :
178- json ["entry" ][0 ]["resource" ]["id" ] = response ["id" ]
179-
180- # Add 'meta' if specified
181- if "meta" in element :
182- json ["entry" ][0 ]["resource" ]["id" ] = response ["id" ]
183- json ["entry" ][0 ]["resource" ]["meta" ] = {"versionId" : response ["version" ]}
184-
185186 return json
186187
187188
0 commit comments