FHIR リソースの更新 - AWS HealthLake

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

FHIR リソースの更新

FHIR updateインタラクションは、既存のリソースの新しい最新バージョンを作成するか、特定の にリソースがまだ存在しない場合は初期バージョンを作成しますid。詳細については、FHIR R4 RESTful API ドキュメントupdateの「」を参照してください。 R4 RESTful

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

  1. HealthLake regiondatastoreIdの値を収集します。詳細については、「データストアのプロパティの取得」を参照してください。

  2. 更新Resourceする FHIR のタイプを決定し、関連するid値を収集します。詳細については、「リソースタイプ」を参照してください。

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

    PUT https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Resource/id
  4. リクエストの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" }
  5. リクエストを送信します。FHIR updateインタラクションは、AWS 署名バージョン 4 または 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

    IdentityProviderConfiguration データ型の 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 スコープ」を参照してください。

    AWS Console

    1. HealthLake コンソールのクエリの実行ページにサインインします。

    2. クエリ設定セクションで、次の選択を行います。

    • データストア ID — データストア ID を選択してクエリ文字列を生成します。

    • クエリタイプ — を選択しますUpdate (PUT)

    • リソースタイプ — 更新または作成する FHIR リソースタイプを選択します。

    • リクエスト本文 — リクエストの JSON 本文を作成し、リソースを更新する FHIR データを指定します。

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

条件に基づく FHIR リソースの更新

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

サーバーが実行するアクションは、見つかった一致の数によって異なります。

  • 一致なし、リクエスト本文にid指定なし: サーバーは FHIR リソースを作成します。

  • id 「」に一致するものはなく、 リソースは にまだ存在していませんid。サーバーはインタラクションを「Create interaction」として更新として扱います。

  • 一致なし、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

リソース更新の検証レベルの設定

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 仕様に従って誤った形式で取り込まれたデータは期待どおりに検索できない可能性があることに注意してください。