executeBundle method
Executes all the requests in the given Bundle.
Implements the FHIR standard batch/transaction interaction
(DSTU2,
STU3,
R4,
R5). Supports all
interactions within a bundle, except search. This method accepts Bundles
of type batch
and transaction
, processing them according to the batch
processing rules
(DSTU2,
STU3,
R4,
R5) and transaction processing
rules (DSTU2,
STU3,
R4,
R5). The request body must
contain a JSON-encoded FHIR Bundle
resource, and the request headers
must contain Content-Type: application/fhir+json
. For a batch bundle or
a successful transaction, the response body contains a JSON-encoded
representation of a Bundle
resource of type batch-response
or
transaction-response
containing one entry for each entry in the request,
with the outcome of processing the entry. In the case of an error for a
transaction bundle, the response body contains a JSON-encoded
OperationOutcome
resource describing the reason for the error. If the
request cannot be mapped to a valid API method on a FHIR store, a generic
GCP error might be returned instead. This method checks permissions for
each request in the bundle. The executeBundle
permission is required to
call this method, but you must also grant sufficient permissions to
execute the individual requests in the bundle. For example, if the bundle
contains a request to create a FHIR resource, the caller must also have
been granted the healthcare.fhirResources.create
permission. You can use
audit logs to view the permissions for executeBundle
and each request in
the bundle. For more information, see
Viewing Cloud Audit logs.
For samples that show how to call executeBundle
, see
Managing FHIR resources using FHIR bundles.
request
- The metadata request object.
Request parameters:
parent
- Required. Name of the FHIR store in which this bundle will be
executed.
Value must have pattern
^projects/\[^/\]+/locations/\[^/\]+/datasets/\[^/\]+/fhirStores/\[^/\]+$
.
$fields
- Selector specifying which fields to include in a partial
response.
Completes with a HttpBody.
Completes with a commons.ApiRequestError if the API endpoint returned an error.
If the used http.Client
completes with an error when making a REST call,
this method will complete with the same error.
Implementation
async.Future<HttpBody> executeBundle(
HttpBody request,
core.String parent, {
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
if ($fields != null) 'fields': [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/fhir';
final response_ = await _requester.request(
url_,
'POST',
body: body_,
queryParams: queryParams_,
);
return HttpBody.fromJson(response_ as core.Map<core.String, core.dynamic>);
}