Idempotensi dan Konkurensi - AWS HealthLake

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

Idempotensi dan Konkurensi

Kunci Idempotensi

AWS HealthLake mendukung kunci idempotensi untuk POST operasi FHIR, menyediakan mekanisme yang kuat untuk memastikan integritas data selama pembuatan sumber daya. Dengan memasukkan UUID unik sebagai kunci idempotensi di header permintaan, aplikasi perawatan kesehatan dapat menjamin bahwa setiap sumber daya FHIR dibuat tepat sekali, bahkan dalam skenario yang melibatkan ketidakstabilan jaringan atau percobaan ulang otomatis.

Fitur ini sangat penting untuk sistem perawatan kesehatan di mana rekam medis duplikat dapat memiliki konsekuensi serius. Ketika permintaan diterima dengan kunci idempotensi yang sama dengan permintaan sebelumnya, HealthLake akan mengembalikan sumber daya asli alih-alih membuat duplikat. Misalnya, ini dapat terjadi selama loop coba lagi atau karena pipeline permintaan yang berlebihan. Menggunakan kunci idempotensi memungkinkan HealthLake untuk menjaga konsistensi data sambil memberikan pengalaman yang mulus untuk aplikasi klien yang menangani masalah konektivitas intermiten.

Implementasi

POST /<baseURL>/Patient x-amz-fhir-idempotency-key: 123e4567-e89b-12d3-a456-426614174000 { "resourceType": "Patient", "name": [...] }

Skenario Respons

Permintaan Pertama (201 Dibuat)
  • Sumber daya baru berhasil dibuat

  • Respons termasuk ID sumber daya

Permintaan Duplikat (409 Konflik)
  • Kunci idempotensi yang sama terdeteksi

  • Sumber daya asli dikembalikan

  • Tidak ada sumber daya baru yang dibuat

Permintaan Tidak Valid (400 Permintaan Buruk)
  • UUID cacat

  • Kolom wajib hilang

Praktik Terbaik

  • Hasilkan UUID unik untuk setiap pembuatan sumber daya baru

  • Simpan kunci idempotensi untuk coba lagi logika

  • Gunakan format kunci yang konsisten: UUID v4 direkomendasikan

  • Implementasikan dalam aplikasi klien yang menangani pembuatan sumber daya

catatan

Fitur ini sangat berharga untuk sistem perawatan kesehatan yang membutuhkan akurasi data yang ketat dan mencegah duplikat rekam medis.

ETag di AWS HealthLake

AWS HealthLake digunakan ETags untuk kontrol konkurensi optimis dalam sumber daya FHIR, menyediakan mekanisme yang andal untuk mengelola modifikasi bersamaan dan menjaga konsistensi data. An ETag adalah pengidentifikasi unik yang mewakili versi tertentu dari sumber daya, berfungsi sebagai sistem kontrol versi melalui header HTTP. Saat membaca atau memodifikasi sumber daya, aplikasi dapat digunakan ETags untuk mencegah penimpaan yang tidak diinginkan dan memastikan integritas data, terutama dalam skenario dengan potensi pembaruan bersamaan.

Contoh Implementasi

// Initial Read GET /fhir/Patient/123 Response: ETag: W/"1" // Update with If-Match PUT /fhir/Patient/123 If-Match: W/"1" {resource content} // Create with If-None-Match PUT /fhir/Patient/123 If-None-Match: * {resource content} // Succeeds only if resource doesn't exist // Fails with 412 if resource exists

Skenario Respons

Operasi yang Berhasil (200 OK atau 204 Tanpa Konten)
  • ETag cocok dengan versi saat ini

  • Operasi berlangsung sebagaimana dimaksud

Konflik Versi (412 Prasyarat Gagal)
  • ETag tidak cocok dengan versi saat ini

  • Pembaruan ditolak untuk mencegah kehilangan data

Praktik Terbaik

  • Sertakan ETags dalam semua operasi pembaruan dan hapus

  • Menerapkan logika coba lagi untuk menangani konflik versi

  • Gunakan If-None-Match: * untuk create-if-not-exists skenario

  • Selalu verifikasi ETag kesegaran sebelum modifikasi

Sistem kontrol konkurensi ini sangat penting untuk menjaga integritas data perawatan kesehatan, terutama di lingkungan dengan banyak pengguna atau sistem yang mengakses dan memodifikasi sumber daya yang sama.