

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# FHIR リソースの更新
<a name="managing-fhir-resources-update"></a>

FHIR `update`インタラクションは、既存のリソースの新しい最新バージョンを作成するか、特定の にリソースがまだ存在しない場合は初期バージョンを作成します`id`。詳細については、FHIR R4 RESTful API ドキュメント[https://hl7.org/fhir/R4/http.html#update](https://hl7.org/fhir/R4/http.html#update)の「」を参照してください。 ** R4 RESTful **

**FHIR リソースを更新するには**  


1. HealthLake `region`と `datastoreId`の値を収集します。詳細については、「[データストアのプロパティの取得](managing-data-stores-describe.md)」を参照してください。

1. 更新`Resource`する FHIR のタイプを決定し、関連する`id`値を収集します。詳細については、「[リソースタイプ:](reference-fhir-resource-types.md)」を参照してください。

1. HealthLake `region`と の収集された値を使用して、リクエストの URL を作成します`datastoreId`。また、FHIR `Resource`タイプとそれに関連する を含めます`id`。次の例の URL パス全体を表示するには、**コピー**ボタンにスクロールします。

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

1. リクエストの`JSON`本文を作成し、実行する FHIR データの更新を指定します。この手順では、ファイルを として保存します`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.  リクエストを送信します。FHIR `update`インタラクションは、[AWS 署名バージョン 4 ](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html)または SMART on FHIR 認可の`PUT`リクエストを使用します。次の の`curl`例では、HealthLake の`Patient`リソースを更新します。例全体を表示するには、**コピー**ボタンをスクロールします。

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

   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
   ```

   リクエストは、既存のリソース*が更新され*た場合は `200` HTTP ステータスコード、新しいリソースが作成された場合は `201` HTTP ステータスコードを返します。

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

   [https://docs.aws.amazon.com/healthlake/latest/APIReference/API_IdentityProviderConfiguration.html](https://docs.aws.amazon.com/healthlake/latest/APIReference/API_IdentityProviderConfiguration.html) データ型の FHIR 認可の SMART の例。

   ```
   {
       "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\"]}"
   }
   ```

   発信者は認可 Lambda でアクセス許可を割り当てることができます。詳細については、「[OAuth 2.0 スコープ](reference-smart-on-fhir-oauth-scopes.md)」を参照してください。

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

   1. HealthLake コンソールの[クエリの実行](https://console.aws.amazon.com/healthlake/home#/crud)ページにサインインします。

   2. **クエリ設定**セクションで、次の選択を行います。
   + **データストア ID** — データストア ID を選択してクエリ文字列を生成します。
   + **クエリタイプ** — を選択します`Update (PUT)`。
   + **リソースタイプ** — 更新または作成する FHIR [リソースタイプ](reference-fhir-resource-types.md)を選択します。
   + **リクエスト本文** — リクエストの JSON 本文を作成し、リソースを更新する FHIR データを指定します。

   3. **[Run query]** (クエリの実行) を選択します。

------

## 条件に基づく FHIR リソースの更新
<a name="managing-fhir-resources-update-conditional"></a>

条件付き更新では、論理 FHIR ではなく、一部の識別検索条件に基づいて既存のリソースを更新できます`id`。サーバーが更新を処理すると、`id`リクエストの単一の論理を解決するために、リソースタイプの標準検索機能を使用して検索が実行されます。

サーバーが実行するアクションは、見つかった一致の数によって異なります。
+ **一致なし、リクエスト本文に`id`指定なし**: サーバーは FHIR リソースを作成します。
+ **一致する`id`ものがなく、リソースが にまだ存在しない`id`**場合: サーバーはインタラクションをアップデートとして処理し、インタラクションを作成します。
+ **一致なし、`id`指定済み、既に存在**: サーバーは`409 Conflict`エラーで更新を拒否します。
+ **One Match, no resource `id` provided OR (resource `id` provided and it match the found resource)**: サーバーは上記のように、一致するリソースに対して更新を実行します。リソースが更新された場合、サーバーは を返します`200 OK`。
+ 1 **つの一致。リソース`id`が指定されていますが、リソースと一致しません**: サーバーは、クライアント ID の仕様が で問題である可能性を示す`409 Conflict`エラーを返します。 `OperationOutcome`
+ **複数の一致**: サーバーは、クライアントの基準が OperationOutcome で十分に選択されていないことを示す`412 Precondition Failed`エラーを返します。

次の例では、名前が peter、生年月日が 2000 年 1 月 1 日、電話番号が 1234567890 の`Patient`リソースを更新します。

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

## リソース更新の検証レベルの設定
<a name="validation-level-resource-updates"></a>

FHIR リソースを更新する場合、オプションで HTTP `x-amzn-healthlake-fhir-validation-level` ヘッダーを指定して、リソースの検証レベルを設定できます。 AWS HealthLake は現在、次の検証レベルをサポートしています。
+ `strict`: リソースは、リソースのプロファイル要素、またはプロファイルが存在しない場合は R4 仕様に従って検証されます。これはデフォルトの検証レベルです AWS HealthLake。
+ `structure-only`: リソースは R4 に対して検証され、参照されるプロファイルは無視されます。
+ `minimal`: リソースは、特定の R4 ルールを無視して、最小限検証されます。検索/分析に必要な構造チェックに失敗したリソースは、監査の警告を含むように更新されます。

最小限の検証レベルで更新されたリソースは、検索インデックス作成に必要な検証に失敗しても、Datastore に取り込まれる可能性があります。この場合、リソースが更新されて Healthlake 固有の拡張機能が含まれ、その障害が記録されます。

```
{
    "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.\"}]}"
}
```

さらに、次の HTTP レスポンスヘッダーは「true」の値に含まれます。

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

**注記**  
これらのエラーが存在する場合、R4 仕様に従って誤った形式で取り込まれたデータは期待どおりに検索できない可能性があることに注意してください。