def conditional_delete_resource(
service_account_json, base_url, project_id, cloud_region, dataset_id, fhir_store_id
):
"""Deletes FHIR resources that match a search query."""
url = "{}/projects/{}/locations/{}".format(base_url, project_id, cloud_region)
# The search query in this request deletes all Observations
# with a status of 'cancelled'.
resource_path = "{}/datasets/{}/fhirStores/{}/fhir/Observation".format(
url, dataset_id, fhir_store_id
)
# The search query is passed in as a query string parameter.
params = {"status": "cancelled"}
# Make an authenticated API request
session = get_session(service_account_json)
response = session.delete(resource_path, params=params)
print(response.url)
if response.status_code != 404: # Don't consider missing to be error
response.raise_for_status()
print("Conditionally deleted all Observations with status='cancelled'.")
return response