Memodifikasi Sumber Daya dengan operasi PATCH - AWS HealthLake

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Memodifikasi Sumber Daya dengan operasi PATCH

AWS HealthLake sekarang mendukung operasi PATCH untuk sumber daya FHIR, memungkinkan Anda untuk memodifikasi sumber daya dengan menargetkan elemen tertentu untuk menambah, mengganti, atau menghapus tanpa memperbarui seluruh sumber daya. Operasi ini sangat berguna untuk klien jarak jauh atau mereka yang memiliki bandwidth terbatas yang ingin mengurangi penggunaan jaringan. Operasi ini sangat berguna ketika Anda perlu:

  • Buat pembaruan yang ditargetkan ke sumber daya besar

  • Mengurangi penggunaan bandwidth jaringan

  • Lakukan modifikasi atom pada elemen sumber daya tertentu

  • Minimalkan risiko menimpa perubahan bersamaan

Penggunaan

Operasi PATCH dapat dipanggil pada sumber daya FHIR menggunakan metode PATCH HTTP:

Operasi yang Didukung

PATCH [base]/[resource-type]/[id]{?_format=[mime-type]}

Operasi PATCH yang Didukung

HealthLake mendukung operasi JSON Patch berikut menurut RFC 6902:

Operasi Deskripsi
add Tambahkan nilai baru ke sumber daya
remove Hapus nilai dari sumber daya
replace Ganti nilai yang ada di sumber daya
move Secara fungsional identik dengan operasi “hapus” di lokasi “dari”, segera diikuti oleh operasi “tambah” di lokasi target dengan nilai yang baru saja dihapus
copy Salin nilai di lokasi tertentu ke lokasi target
test Uji bahwa nilai di lokasi target sama dengan nilai yang ditentukan

Header Permintaan

Header Wajib Deskripsi
Content-Type Ya Harus application/json-patch+json
If-Match Tidak Pembaruan bersyarat khusus versi menggunakan ETag

Contoh

Permintaan PATCH dengan Beberapa Operasi

PATCH [base]/Patient/example Content-Type: application/json-patch+json If-Match: W/"1" [ { "op": "replace", "path": "/name/0/family", "value": "Smith" }, { "op": "add", "path": "/telecom/-", "value": { "system": "phone", "value": "************", "use": "home" } }, { "op": "remove", "path": "/address/0" }, { "op": "move", "from": "/name/0/family", "path": "/name/1/family" }, { "op": "test", "path": "/gender", "value": "male" }, { "op": "copy", "from": "/name/0", "path": "/name/1" } ]
Permintaan PATCH dengan Operasi Tunggal

PATCH [base]/Patient/example Content-Type: application/json-patch+json [ { "op": "replace", "path": "/active", "value": false } ]
Contoh Respons

Operasi mengembalikan sumber daya yang diperbarui dengan informasi versi baru:

HTTP/1.1 200 OK Content-Type: application/fhir+json ETag: W/"2" Last-Modified: Mon, 05 May 2025 10:10:10 GMT { "resourceType": "Patient", "id": "example", "active": true, "name": [ { "family": "Smith", "given": ["John"] } ], "telecom": [ { "system": "phone", "value": "************", "use": "home" } ], "meta": { "versionId": "2", "lastUpdated": "2025-05-05T10:10:10Z" } }

Sintaks Jalur Patch JSON

Parameter jalur menggunakan sintaks JSON Pointer (RFC 6901):

Contoh Jalur Deskripsi
/name/0/family Elemen keluarga nama depan
/telecom/- Tambahkan ke array telekomunikasi
/active Elemen aktif tingkat akar
/address/0/line/1 Baris kedua dari alamat pertama

Perilaku

Operasi PATCH:

  1. Memvalidasi sintaks JSON Patch menurut RFC 6902 dan RFC 6901

  2. Menerapkan operasi secara atom - semua operasi berhasil atau semuanya gagal

  3. Memperbarui ID versi sumber daya dan membuat entri riwayat baru

  4. Mempertahankan sumber daya asli dalam sejarah sebelum menerapkan perubahan

  5. Memvalidasi kendala sumber daya FHIR setelah menerapkan tambalan

  6. Mendukung pembaruan bersyarat menggunakan header If-Match dengan ETag

Penanganan Kesalahan

Operasi menangani kondisi kesalahan berikut:

  • 400 Permintaan Buruk: Sintaks tambalan tidak valid (permintaan tidak sesuai atau Patch JSON yang salah)

  • 404 Tidak Ditemukan: Sumber daya tidak ditemukan (ID tertentu tidak ada)

  • 409 Konflik: Konflik versi (pembaruan bersamaan atau ID versi tidak saat ini disediakan)

  • 422 Entitas yang Tidak Dapat Diproses: Operasi tambalan tidak dapat diterapkan ke elemen sumber daya yang ditentukan

Peringatan

  • Hanya jenis application/json-patch+json konten yang didukung

  • Operasi PATCH bersyarat menggunakan kondisi pencarian tidak didukung

Untuk informasi selengkapnya tentang operasi PATCH, lihat dokumentasi PATCH FHIR R4.