

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

# Memperbarui sumber daya FHIR
<a name="managing-fhir-resources-update"></a>

`update`Interaksi FHIR membuat versi baru saat ini untuk sumber daya yang ada atau membuat versi awal jika tidak ada sumber daya yang sudah ada untuk yang diberikan`id`. Untuk informasi tambahan, lihat [https://hl7.org/fhir/R4/http.html#update](https://hl7.org/fhir/R4/http.html#update)di dokumentasi **FHIR R4 RESTful API**.

**Untuk memperbarui sumber daya FHIR**  


1. Kumpulkan HealthLake `region` dan `datastoreId` nilai. Untuk informasi selengkapnya, lihat [Mendapatkan properti penyimpanan data](managing-data-stores-describe.md).

1. Tentukan jenis FHIR `Resource` untuk memperbarui dan mengumpulkan `id` nilai terkait. Untuk informasi selengkapnya, lihat [Jenis sumber daya](reference-fhir-resource-types.md). 

1. Buat URL untuk permintaan menggunakan nilai yang dikumpulkan untuk HealthLake `region` dan`datastoreId`. Juga termasuk `Resource` jenis FHIR dan yang terkait`id`. Untuk melihat seluruh jalur URL dalam contoh berikut, gulir ke atas tombol **Salin**.

   ```
   PUT https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Resource/id
   ```

1. Membangun `JSON` badan untuk permintaan, menentukan update data FHIR yang akan dibuat. Untuk tujuan prosedur ini, simpan file sebagai`update-patient.json`.

   ```
   {
       "id": "2de04858-ba65-44c1-8af1-f2fe69a977d9",
       "resourceType": "Patient",
       "active": true,
       "name": [
           {
               "use": "official",
               "family": "Doe",
               "given": [
                   "Jane"
               ]
           },
           {
               "use": "usual",
               "given": [
                   "Jane"
               ]
           }
       ],
       "gender": "female",
       "birthDate": "1985-12-31"
   }
   ```

1. Kirim permintaan . `update`Interaksi FHIR menggunakan `PUT` permintaan dengan [AWS Signature Version 4](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html) atau SMART pada otorisasi FHIR. `curl`Contoh berikut memperbarui sumber `Patient` daya di HealthLake. Untuk melihat seluruh contoh, gulir ke atas tombol **Salin**.

------
#### [ SigV4 ]

   Otorisasi SiGv4

   ```
   curl --request PUT \
     'https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Patient/id' \
     --aws-sigv4 'aws:amz:region:healthlake' \
     --user "$AWS_ACCESS_KEY_ID:$AWS_SECRET_ACCESS_KEY" \
     --header "x-amz-security-token:$AWS_SESSION_TOKEN" \
     --header 'Accept: application/json' \
     --data @update-patient.json
   ```

   Permintaan Anda akan mengembalikan kode status `200` HTTP jika sumber daya yang ada *diperbarui* atau kode status `201` HTTP jika sumber daya baru dibuat.

------
#### [ SMART on FHIR ]

   SMART pada contoh otorisasi FHIR untuk tipe [https://docs.aws.amazon.com/healthlake/latest/APIReference/API_IdentityProviderConfiguration.html](https://docs.aws.amazon.com/healthlake/latest/APIReference/API_IdentityProviderConfiguration.html)data.

   ```
   {
       "AuthorizationStrategy": "SMART_ON_FHIR",
       "FineGrainedAuthorizationEnabled": true,
       "IdpLambdaArn": "arn:aws:lambda:your-region:your-account-id:function:your-lambda-name",
       "Metadata": "{\"issuer\":\"https://ehr.example.com\", \"jwks_uri\":\"https://ehr.example.com/.well-known/jwks.json\",\"authorization_endpoint\":\"https://ehr.example.com/auth/authorize\",\"token_endpoint\":\"https://ehr.token.com/auth/token\",\"token_endpoint_auth_methods_supported\":[\"client_secret_basic\",\"foo\"],\"grant_types_supported\":[\"client_credential\",\"foo\"],\"registration_endpoint\":\"https://ehr.example.com/auth/register\",\"scopes_supported\":[\"openId\",\"profile\",\"launch\"],\"response_types_supported\":[\"code\"],\"management_endpoint\":\"https://ehr.example.com/user/manage\",\"introspection_endpoint\":\"https://ehr.example.com/user/introspect\",\"revocation_endpoint\":\"https://ehr.example.com/user/revoke\",\"code_challenge_methods_supported\":[\"S256\"],\"capabilities\":[\"launch-ehr\",\"sso-openid-connect\",\"client-public\",\"permission-v2\"]}"
   }
   ```

   Penelepon dapat menetapkan izin di lambda otorisasi. Untuk informasi selengkapnya, lihat [OAuth 2.0 cakupan](reference-smart-on-fhir-oauth-scopes.md).

------
#### [ AWS Console ]

   1. Masuk ke halaman [Jalankan kueri](https://console.aws.amazon.com/healthlake/home#/crud) di HealthLake Konsol.

   2. Di bawah bagian **Pengaturan kueri**, buat pilihan berikut.
   + **ID Penyimpanan Data** — pilih ID penyimpanan data untuk menghasilkan string kueri.
   + **Jenis kueri** - pilih`Update (PUT)`.
   + **Jenis sumber daya** - pilih [jenis sumber daya](reference-fhir-resource-types.md) FHIR untuk memperbarui atau membuat.
   + **Badan permintaan** - buat badan JSON untuk permintaan, menentukan data FHIR untuk memperbarui sumber daya dengan.

   3. Pilih **Run query** (Jalankan kueri).

------

## Memperbarui sumber daya FHIR berdasarkan kondisi
<a name="managing-fhir-resources-update-conditional"></a>

Pembaruan bersyarat memungkinkan Anda memperbarui sumber daya yang ada berdasarkan beberapa kriteria pencarian identifikasi, bukan oleh `id` FHIR logis. Ketika server memproses pembaruan, ia melakukan pencarian menggunakan kemampuan pencarian standar untuk jenis sumber daya, dengan tujuan menyelesaikan satu logis `id` untuk permintaan tersebut.

Tindakan yang diambil server tergantung pada berapa banyak kecocokan yang ditemukannya:
+ **Tidak ada kecocokan, tidak `id` disediakan di badan permintaan**: Server membuat sumber daya FHIR.
+ **Tidak ada kecocokan, `id` disediakan, dan sumber daya yang belum ada dengan `id`**: Server memperlakukan interaksi sebagai Pembaruan sebagai interaksi Buat.
+ **Tidak ada kecocokan, `id` disediakan dan sudah ada**: Server menolak pembaruan dengan `409 Conflict` kesalahan.
+ **One Match, tidak ada sumber daya yang `id` `id` disediakan ATAU (sumber daya yang disediakan dan cocok dengan sumber daya yang ditemukan)**: Server melakukan pembaruan terhadap sumber daya yang cocok seperti di atas di mana, jika sumber daya diperbarui, server HARUS mengembalikan file`200 OK`.
+ **One Match, sumber daya yang `id` disediakan tetapi tidak cocok dengan sumber daya yang ditemukan**: Server mengembalikan `409 Conflict` kesalahan yang menunjukkan spesifikasi id klien adalah masalah yang lebih disukai dengan `OperationOutcome`
+ **Beberapa kecocokan**: Server mengembalikan `412 Precondition Failed` kesalahan yang menunjukkan kriteria klien tidak cukup selektif lebih disukai dengan OperationOutcome

Contoh berikut memperbarui `Patient` sumber daya yang namanya peter, tanggal lahir 1 Jan 2000, dan nomor telepon 1234567890.

```
PUT https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Patient?name=peter&birthdate=2000-01-01&phone=1234567890
```

## Mengkonfigurasi tingkat validasi untuk pembaruan sumber daya
<a name="validation-level-resource-updates"></a>

Saat memperbarui sumber daya FHIR, Anda dapat menentukan header `x-amzn-healthlake-fhir-validation-level` HTTP secara opsional untuk mengonfigurasi tingkat validasi sumber daya. AWS HealthLake saat ini mendukung tingkat validasi berikut:
+ `strict`: Sumber daya divalidasi sesuai dengan elemen profil sumber daya, atau spesifikasi R4 jika tidak ada profil. Ini adalah tingkat validasi default untuk AWS HealthLake.
+ `structure-only`: Sumber daya divalidasi terhadap R4, mengabaikan profil yang direferensikan.
+ `minimal`: Sumber daya divalidasi minimal, mengabaikan aturan R4 tertentu. Sumber daya yang gagal dalam pemeriksaan struktur yang diperlukan search/analytics akan diperbarui untuk menyertakan peringatan untuk audit.

Sumber daya yang diperbarui dengan tingkat validasi minimal dapat dicerna ke dalam Datastore meskipun validasi gagal diperlukan untuk pengindeksan pencarian. Dalam hal ini, sumber daya akan diperbarui untuk menyertakan ekstensi khusus Healthlake untuk mendokumentasikan kegagalan tersebut:

```
{
    "url": "http://healthlake.amazonaws.com/fhir/StructureDefinition/validation-issue",
    "valueString": "{\"resourceType\":\"OperationOutcome\",\"issue\":[{\"severity\":\"error\",\"code\":\"processing\",\"details\":{\"text\":\"FHIR resource in payload failed FHIR validation rules.\"},\"diagnostics\":\"FHIR resource in payload failed FHIR validation rules.\"}]}"
}
```

Selain itu, header respons HTTP berikut akan disertakan dengan nilai “true”:

```
x-amzn-healthlake-validation-issues : true
```

**catatan**  
Perhatikan bahwa data yang dicerna yang cacat menurut spesifikasi R4 mungkin tidak dapat dicari seperti yang diharapkan jika kesalahan ini ada.