conditionalPatch method
If a resource is found with the identifier specified in the query parameters, updates part of that resource by applying the operations specified in a JSON Patch document.
Implements the FHIR standard conditional patch interaction, limited to
searching by resource identifier. DSTU2 doesn't define a conditional patch
method, but the server supports it in the same way it supports STU3.
Search term for identifier should be in the pattern
identifier=system|value
or identifier=value
- similar to the search
method on resources with a specific identifier. If the search criteria
identify more than one match, the request returns a 412 Precondition Failed
error. The request body must contain a JSON Patch document, and
the request headers must contain Content-Type: application/json-patch+json
. On success, the response body contains a
JSON-encoded representation of the updated resource, including the
server-assigned version ID. Errors generated by the FHIR store contain 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. For samples that
show how to call conditionalPatch
, see
Conditionally patching a FHIR resource.
request
- The metadata request object.
Request parameters:
parent
- Required. The name of the FHIR store this resource belongs to.
Value must have pattern
^projects/\[^/\]+/locations/\[^/\]+/datasets/\[^/\]+/fhirStores/\[^/\]+$
.
type
- Required. The FHIR resource type to update, such as Patient or
Observation. For a complete list, see the FHIR Resource Index
(DSTU2,
STU3,
R4).
Value must have pattern ^\[^/\]+$
.
$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> conditionalPatch(
HttpBody request,
core.String parent,
core.String type, {
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/' +
core.Uri.encodeFull('$type');
final response_ = await _requester.request(
url_,
'PATCH',
body: body_,
queryParams: queryParams_,
);
return HttpBody.fromJson(response_ as core.Map<core.String, core.dynamic>);
}