Patch
Updating a part of your resource
In most Operations in FHIR, you manipulate a resource as a whole (create, update, delete operations). But sometimes you want to update specific data elements in a resource and do not care about the rest. In other words, you need an element/attribute level operation.
With the patch
operation, you can update a part of a resource by sending a declarative description of operations that should be performed on an existing resource. To describe these operations in Aidbox, you can use different notations (methods):
Merge Patch — simple merge semantics (read more in RFC);
JSON Patch — advanced JSON transformation (read more in RFC);
FHIRpath Patch - JSON patch with FHIRpath (since version 2503).
Patch Method
You can specify a patch
method by the content-type
header or by the _method
parameter.
json-patch
json-patch
application/json-patch+json
merge-patch
merge-patch
application/merge-patch+json
fhirpath-patch
fhirpath-patch
-
If the method is not specified, Aidbox will try to guess it by the following algorithm:
if the body contains "Parameters" resourceType, it is
fhirpath-patch
if the payload is an array, it is
json-patch
else
merge-patch
Binary JSON-patch
Since version 2503, It is also possible to encode JSON patches using base64 Binary.data:
Examples
Let's suppose we've created a Patient resource with the id pt-1
Merge Patch
Let's say we want to switch to an active
flag to false and remove telecom
:
JSON Patch
With JSON patch, we can do more sophisticated transformations — change the first given
name, delete the second name
, and change the active
attribute value to true
:
Response:
FHIRpath Patch
The example sets active
to false
:
Last updated
Was this helpful?