Skip to content

Commit c82c887

Browse files
committed
Update fhir-versioning-policy-and-history-management.md
1 parent 07351d4 commit c82c887

1 file changed

Lines changed: 30 additions & 4 deletions

File tree

articles/healthcare-apis/fhir/fhir-versioning-policy-and-history-management.md

Lines changed: 30 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ Changing the versioning policy, either at a system level or resource level, won'
7171
> The query parameter _summary=count and _count=0 can be added to _history endpoint to get a count of all versioned resources. This count includes soft deleted resources.
7272
7373
## Metadata-only updates and versioning
74-
If the versioning policy is set to either `versioned` or `version-update`, metadata-only updates (changes to FHIR resources that only affect the metadata) increment the resource version, create a new version, and save the old version as a historical record. If you are making metadata-only changes using PUT or PATCH updates, you can use the query parameter _meta-history for PUT and PATCH updates to configure whether or not the old version is saved as a historical record.
74+
If the versioning policy is set to either `versioned` or `version-update`, metadata-only updates (changes to FHIR resources that only affect the metadata) increment the resource version, create a new version, and save the old version as a historical record. If you are making metadata-only changes using PUT, PATCH, or `$bulk-update`, you can use the query parameter _meta-history for PUT, PATCH, and `$bulk-update` to configure whether or not the old version is saved as a historical record.
7575
- `_meta-history=true` is set by default. By default, the resource version is incremented, a new version is created, and the old version is saved as a historical record. The lastUpdated timestamp is updated to reflect the change.
7676
- `_meta-history=false` The `_meta-history` parameter can be configured to `false`. This means that the resource version is incremented, a new version is created, but the old version is not saved as a historical record. The lastUpdated timestamp is also still updated to reflect the change. This configuration can be used to help reduce data storage when making metadata-only updates.
7777

@@ -130,8 +130,8 @@ To demonstrate the use of the `_meta-history` parameter with PUT, follow this ex
130130
5. This will increment resource version and create a new version 3, but the old version 2 will not be saved as a historical record. To see this, run: `GET <fhir server>/Patient/test-patient/_history`. Two versions should be returned, versions 1 and 3. Please note that `_meta-history=false` query parameter only affects metadata-only changes made using PUT or PATCH. Using the query parameter to make metadata updates along with other non-metadata field value changes will increment the resource version and save the old version as a historical record.
131131

132132

133-
### Example of `_meta-history=false` with PATCH
134-
To demonstrate the use of the `_meta-history` parameter with PATCH, follow this example:
133+
### Example of `_meta-history=false` with PATCH or `$bulk-update`
134+
To demonstrate the use of the `_meta-history` parameter with PATCH or `$bulk-update`, follow this example:
135135

136136
1. Create a resource:
137137
`PUT <fhir server>/Patient/test-patient`
@@ -169,7 +169,7 @@ To demonstrate the use of the `_meta-history` parameter with PATCH, follow this
169169
}
170170
```
171171
3. Run: `GET <fhir server>/Patient/test-patient/_history`. Two versions should be returned, versions 1 and 2.
172-
4. Use PATCH to make a metadata-only update with `_meta-history=false` query parameter. The example uses PATCH to update only the Patient.meta.tag.system value. More information about PATCH [here](rest-api-capabilities.md#patch-and-conditional-patch).
172+
4. Use PATCH or `$bulk-update`to make a metadata-only update with `_meta-history=false` query parameter. The example demonstrates using PATCH or `$bulk-update` to update only the Patient.meta.tag.system value. More information about PATCH [here](rest-api-capabilities.md#patch-and-conditional-patch) and `$bulk-update` [here](fhir-bulk-update.md).
173173

174174
Using PATCH with FHIRPath patch:
175175
`PATCH <fhir server>/Patient/test-patient?_meta-history=false`
@@ -192,6 +192,30 @@ Using PATCH with FHIRPath patch:
192192
]
193193
}
194194
```
195+
If you wanted to bulk update multiple resources, you could use `$bulk-update`. The following example shows how to use `$bulk-update` to update the same metadata field for all Patient resources with `_meta-history=false`:
196+
197+
`PATCH <fhir server>/Patient/$bulk-update?_meta-history=false`
198+
`Accept: application/fhir+json`
199+
`Content-type: application/fhir+json`
200+
`Prefer: respond-async`
201+
202+
```
203+
204+
{
205+
"resourceType": "Parameters",
206+
"parameter": [
207+
{
208+
"name": "operation",
209+
"part": [
210+
{ "name": "type", "valueCode": "upsert" },
211+
{ "name": "path", "valueString": "Patient.meta.tag[0].system" },
212+
{ "name": "value", "valueUri": "test2" }
213+
]
214+
}
215+
]
216+
}
217+
```
218+
195219

196220
Using PATCH with JSON Patch:
197221
`PATCH <fhir server>/Patient/test-patient?_meta-history=false`
@@ -207,6 +231,8 @@ Using PATCH with JSON Patch:
207231
```
208232
5. This will increment resource version and create a new version 3, but the old version 2 will not be saved as a historical record. To see this, run: `GET <fhir server>/Patient/test-patient/_history`. Two versions should be returned, versions 1 and 3. Please note that `_meta-history=false` query parameter only affects metadata-only changes made using PUT or PATCH. Using the query parameter to make metadata updates along with other non-metadata field value changes will increment the resource version and save the old version as a historical record.
209233

234+
235+
210236
## Next steps
211237

212238
In this article, you learned how to purge the history for resources in the FHIR service. For more information about how to disable history and some concepts about history management, see

0 commit comments

Comments
 (0)