executeBundle method
Executes all the requests in the given Bundle.
Implements the FHIR standard batch/transaction interaction
(DSTU2,
STU3,
R4).
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) and
transaction processing rules
(DSTU2,
STU3,
R4). 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>);
}