翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
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 オペレーション:
-
RFC 6902 および RFC 6901 に従って JSON パッチ構文を検証します
-
オペレーションをアトミックに適用する - すべてのオペレーションが成功または失敗する
-
リソースバージョン ID を更新し、新しい履歴エントリを作成します。
-
変更を適用する前に、元のリソースを履歴に保持します
-
パッチを適用した後に FHIR リソースの制約を検証します
-
ETag で If-Match ヘッダーを使用した条件付き更新をサポート
エラー処理
オペレーションは、次のエラー条件を処理します。
-
400 不正なリクエスト: 無効なパッチ構文 (非準拠のリクエストまたは不正な形式の JSON パッチ)
-
404 Not Found: リソースが見つかりません (指定された ID は存在しません)
-
409 競合: バージョン競合 (同時更新または非現行バージョン ID の提供)
-
422 未処理のエンティティ: パッチオペレーションを指定されたリソース要素に適用できません
注意
-
application/json-patch+jsonコンテンツタイプのみがサポートされています -
検索条件を使用した条件付き PATCH オペレーションはサポートされていません
PATCH オペレーションの詳細については、FHIR R4 PATCH