PATCH オペレーションによるリソースの変更 - AWS HealthLake

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

PATCH オペレーションによるリソースの変更

AWS HealthLake は FHIR リソースの PATCH オペレーションをサポートするようになりました。これにより、リソース全体を更新することなく、追加、置換、または削除する特定の要素をターゲットにしてリソースを変更できます。このオペレーションは、リモートクライアントや帯域幅が制限されているクライアントで、ネットワークの使用量を減らすために特に役立ちます。このオペレーションは、以下が必要な場合に特に役立ちます。

  • 大規模なリソースをターゲットに更新する

  • ネットワーク帯域幅の使用量を減らす

  • 特定のリソース要素に対してアトミック変更を実行する

  • 同時変更を上書きするリスクを最小限に抑える

使用状況

PATCH オペレーションは、PATCH HTTP メソッドを使用して FHIR リソースで呼び出すことができます。

サポートされているオペレーション

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

サポートされているパッチオペレーション

HealthLake は、RFC 6902 に従って次の JSON パッチオペレーションをサポートしています。

Operation 説明
add リソースに新しい値を追加する
remove リソースから値を削除する
replace リソース内の既存の値を置き換える
move 「from」ロケーションでの「remove」オペレーションと機能的に同一で、その後すぐにターゲットロケーションで「add」オペレーションと、先ほど削除された値
copy 指定された場所の値をターゲットの場所にコピーする
test ターゲットロケーションの値が指定された値と等しいことをテストする

リクエストヘッダー

ヘッダー 必要 説明
Content-Type あり application/json-patch+json を指定してください
If-Match なし ETag を使用したバージョン固有の条件付き更新

複数のオペレーションによるパッチリクエスト

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" } ]
単一オペレーションによるパッチリクエスト

PATCH [base]/Patient/example Content-Type: application/json-patch+json [ { "op": "replace", "path": "/active", "value": false } ]
レスポンス例

オペレーションは、更新されたリソースに新しいバージョン情報を返します。

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" } }

JSON パッチパスの構文

パスパラメータは JSON ポインタ構文 (RFC 6901) を使用します。

パスの例 説明
/name/0/family 姓のファミリー要素
/telecom/- テレコム配列に追加
/active ルートレベルのアクティブ要素
/address/0/line/1 最初のアドレスの 2 行目

行動

PATCH オペレーション:

  1. RFC 6902 および RFC 6901 に従って JSON パッチ構文を検証します

  2. オペレーションをアトミックに適用する - すべてのオペレーションが成功または失敗する

  3. リソースバージョン ID を更新し、新しい履歴エントリを作成します。

  4. 変更を適用する前に、元のリソースを履歴に保持します

  5. パッチを適用した後に FHIR リソースの制約を検証します

  6. ETag で If-Match ヘッダーを使用した条件付き更新をサポート

エラー処理

オペレーションは、次のエラー条件を処理します。

  • 400 不正なリクエスト: 無効なパッチ構文 (非準拠のリクエストまたは不正な形式の JSON パッチ)

  • 404 Not Found: リソースが見つかりません (指定された ID は存在しません)

  • 409 競合: バージョン競合 (同時更新または非現行バージョン ID の提供)

  • 422 未処理のエンティティ: パッチオペレーションを指定されたリソース要素に適用できません

注意

  • application/json-patch+json コンテンツタイプのみがサポートされています

  • 検索条件を使用した条件付き PATCH オペレーションはサポートされていません

PATCH オペレーションの詳細については、FHIR R4 PATCH ドキュメントを参照してください。