View a markdown version of this page

HealthLake の FHIR $inquireオペレーション - AWS HealthLake

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

HealthLake の FHIR $inquireオペレーション

$inquire オペレーションを使用すると、以前に送信された事前承認リクエストのステータスを確認できます。このオペレーションでは、Da Vinci 事前認可サポート (PAS) 実装ガイドを実装し、現在の認可決定を取得するための標準化された FHIR ベースのワークフローを提供します。

仕組み

  • 問い合わせの送信: 確認したいクレームとサポート情報を含む FHIR バンドルを送信する

  • 検索: HealthLake は、データストア内の対応する ClaimResponse を検索します。

  • 取得: 最新の認可ステータスが取得されます

  • 応答: 現在の認可ステータス (キューに入れられた、承認された、拒否されたなど) の即時応答を受け取ります。

注記

$inquire は、既存の認可ステータスを取得する読み取り専用オペレーションです。データストア内のリソースは変更または更新されません。

API エンドポイント

POST /datastore/{datastoreId}/r4/Claim/$inquire Content-Type: application/fhir+json

リクエスト構造

バンドルの要件

リクエストは、以下を含む FHIR Bundle リソースである必要があります。

  • Bundle.type: である必要があります "collection"

  • Bundle.entry: 以下を含むクレームリソースを 1 つだけ含める必要があります。

    • use = "preauthorization"

    • status = "active"

  • 参照リソース: クレームによって参照されるすべてのリソースをバンドルに含める必要があります

Query-by-Example

入力バンドルのリソースは検索テンプレートとして機能します。HealthLake は、提供された情報を使用して、対応する ClaimResponse を見つけます。

必要なリソース

[リソース] カーディナリティ プロファイル 説明
クレーム 1 PAS クレームの照会 照会する以前の認可
患者 1 PAS 受取人患者 患者の人口統計情報
組織 (保険者) 1 PAS 保険会社組織 保険会社
組織 (プロバイダー) 1 PAS リクエスト組織 リクエストを送信した医療プロバイダー

重要な検索条件

HealthLake は、以下を使用して ClaimResponse を検索します。

  • クレームからの患者リファレンス

  • クレームからの保険者リファレンス

  • クレームからのプロバイダーリファレンス

  • クレームから作成日 (時間フィルターとして)

患者固有のクエリのみ

すべての問い合わせは、特定の患者に関連付ける必要があります。患者識別を使用しないシステム全体のクエリは許可されません。

リクエスト例

POST /datastore/example-datastore/r4/Claim/$inquire Content-Type: application/fhir+json Authorization: Bearer <your-token> { "resourceType": "Bundle", "id": "PASClaimInquiryBundleExample", "meta": { "profile": ["http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-pas-inquiry-request-bundle"] }, "identifier": { "system": "http://example.org/SUBMITTER_TRANSACTION_IDENTIFIER", "value": "5269368" }, "type": "collection", "timestamp": "2005-05-02T14:30:00+05:00", "entry": [ { "fullUrl": "http://example.org/fhir/Claim/MedicalServicesAuthorizationExample", "resource": { "resourceType": "Claim", "id": "MedicalServicesAuthorizationExample", "meta": { "profile": ["http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-claim-inquiry"] }, "status": "active", "type": { "coding": [{ "system": "http://terminology.hl7.org/CodeSystem/claim-type", "code": "professional" }] }, "use": "preauthorization", "patient": { "reference": "Patient/SubscriberExample" }, "created": "2005-05-02T11:01:00+05:00", "insurer": { "reference": "Organization/InsurerExample" }, "provider": { "reference": "Organization/UMOExample" } } }, { "fullUrl": "http://example.org/fhir/Patient/SubscriberExample", "resource": { "resourceType": "Patient", "id": "SubscriberExample", "meta": { "profile": ["http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-beneficiary"] }, "name": [{ "family": "SMITH", "given": ["JOE"] }], "gender": "male" } }, { "fullUrl": "http://example.org/fhir/Organization/UMOExample", "resource": { "resourceType": "Organization", "id": "UMOExample", "meta": { "profile": ["http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-requestor"] }, "name": "Provider Organization" } }, { "fullUrl": "http://example.org/fhir/Organization/InsurerExample", "resource": { "resourceType": "Organization", "id": "InsurerExample", "meta": { "profile": ["http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-insurer"] }, "name": "Insurance Company" } } ] }

レスポンスの形式

成功レスポンス (200 OK)

PAS Inquiry Response Bundle には、以下が含まれています。

  • 現在の認可ステータスの ClaimResponse。検索条件に一致する場合は複数の ClaimResponse

  • リクエストのすべての元のリソース (エコーバック)

  • レスポンスがアセンブルされた時刻のタイムスタンプ

考えられる ClaimResponse の結果

結果 説明
queued 承認リクエストはまだレビュー保留中です
complete 認可の決定が行われました (承認/拒否dispositionを確認してください)
error 処理中にエラーが発生しました
partial 部分的な認可が付与されました
{ "resourceType": "Bundle", "identifier": { "system": "http://example.org/SUBMITTER_TRANSACTION_IDENTIFIER", "value": "5269367" }, "type": "collection", "timestamp": "2005-05-02T14:30:15+05:00", "entry": [ { "fullUrl": "http://example.org/fhir/ClaimResponse/InquiryResponseExample", "resource": { "resourceType": "ClaimResponse", "id": "InquiryResponseExample", "meta": { "profile": ["http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-claimresponse-inquiry"] }, "status": "active", "type": { "coding": [{ "system": "http://terminology.hl7.org/CodeSystem/claim-type", "code": "professional" }] }, "use": "preauthorization", "patient": { "reference": "Patient/SubscriberExample" }, "created": "2005-05-02T11:05:00+05:00", "insurer": { "reference": "Organization/InsurerExample" }, "request": { "reference": "Claim/MedicalServicesAuthorizationExample" }, "outcome": "complete", "disposition": "Approved", "preAuthRef": "AUTH12345" } }, { "fullUrl": "http://example.org/fhir/Claim/MedicalServicesAuthorizationExample", "resource": { "resourceType": "Claim", "id": "MedicalServicesAuthorizationExample", "meta": { "profile": ["http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-claim-inquiry"] }, "status": "active", "type": { "coding": [{ "system": "http://terminology.hl7.org/CodeSystem/claim-type", "code": "professional" }] }, "use": "preauthorization", "patient": { "reference": "Patient/SubscriberExample" }, "created": "2005-05-02T11:01:00+05:00", "insurer": { "reference": "Organization/InsurerExample" }, "provider": { "reference": "Organization/UMOExample" } } }, { "fullUrl": "http://example.org/fhir/Patient/SubscriberExample", "resource": { "resourceType": "Patient", "id": "SubscriberExample", "meta": { "profile": ["http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-beneficiary"] }, "name": [{ "family": "SMITH", "given": ["JOE"] }], "gender": "male" } }, { "fullUrl": "http://example.org/fhir/Organization/UMOExample", "resource": { "resourceType": "Organization", "id": "UMOExample", "meta": { "profile": ["http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-requestor"] }, "name": "Provider Organization" } }, { "fullUrl": "http://example.org/fhir/Organization/InsurerExample", "resource": { "resourceType": "Organization", "id": "InsurerExample", "meta": { "profile": ["http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-insurer"] }, "name": "Insurance Company" } } ] }

エラーレスポンス

400 Bad Request

リクエスト形式が無効であるか、検証が失敗した場合に返されます。

{ "resourceType": "OperationOutcome", "issue": [ { "severity": "error", "code": "required", "diagnostics": "Reference 'Patient/SubscriberExample' at path 'patient' for 'CLAIM' resource not found(at Bundle.entry[0].resource)" } ] }

401 Unauthorized

認証情報がないか無効である場合に返されます。

{ "resourceType": "OperationOutcome", "issue": [ { "severity": "error", "code": "forbidden", "diagnostics": "Invalid authorization header" } ] }

403 Forbidden

認証されたユーザーに、リクエストされたリソースへのアクセス許可がない場合に返されます。

{ "resourceType": "OperationOutcome", "issue": [ { "severity": "error", "code": "exception", "diagnostics": "Insufficient SMART scope permissions." } ] }

400 見つからない場合

問い合わせに一致する ClaimResponse が見つからない場合に返されます。

{ "resourceType": "OperationOutcome", "issue": [{ "severity": "error", "code": "not-found", "diagnostics": "Resource not found. No ClaimResponse found from the input Claim that matches the specified Claim properties patient, insurer, provider, and created(at Bundle.entry[0].resource)" }] }

415 サポートされていないメディアタイプ

Content-Type ヘッダーが application/fhir+json でない場合に返されます。

{ "resourceType": "OperationOutcome", "issue": [{ "severity": "error", "code": "value", "diagnostics": "Incorrect MIME-type. Update request Content-Type header." }] }

429 Too Many Requests

レート制限を超えたときに返されます。

{ "resourceType": "OperationOutcome", "issue": [{ "severity": "error", "code": "throttled", "diagnostics": "Rate limit exceeded. Please retry after some time." }] }

検証ルール

HealthLake は、問い合わせに対して包括的な検証を実行します。

バンドルの検証

  • PAS 照会リクエストバンドルプロファイルに準拠する必要があります

  • Bundle.type は である必要があります "collection"

  • クレームリソースを 1 つだけ含める必要があります

  • 参照されるすべてのリソースをバンドルに含める必要があります

クレームの検証

  • PAS クレーム照会プロファイルに準拠する必要があります

  • Claim.use は である必要があります "preauthorization"

  • Claim.status は である必要があります "active"

  • 必須フィールド: patientinsurerprovidercreated

リソースの検証

  • すべてのリソースは、それぞれの PAS 問い合わせプロファイルに準拠する必要があります

  • 必要なサポートリソースが存在する必要があります (「」、「保険組織」、「プロバイダー組織」)

  • クロスリファレンスは、バンドル内で有効で解決可能である必要があります

パフォーマンス仕様

メトリクス の仕様
リソース数の制限 バンドルあたり 500 リソース
バンドルサイズ制限 最大 5 MB

必要なアクセス許可

$inquire オペレーションを使用するには、IAM ロールに次のものがあることを確認します。

  • healthlake:InquirePreAuthClaim - オペレーションを呼び出すには

FHIR スコープでの SMART

最低限必要なスコープ:

  • SMART v1: user/ClaimResponse.read

  • SMART v2: user/ClaimResponse.s

重要な実装上の注意事項

検索動作

問い合わせを送信すると、HealthLake は以下を使用して ClaimResponse を検索します。

  • 入力クレームからの患者リファレンス

  • 入力クレームからの保険者リファレンス

  • 入力クレームからのプロバイダーリファレンス

  • 入力クレームから作成日 (タイムフィルターとして)

複数の一致: 複数の ClaimResponses が検索条件に一致する場合、HealthLake は一致するすべての結果を返します。最新のClaimResponse.createdステータスを特定するには、最新のタイムスタンプを使用する必要があります。

クレームの更新

同じ事前承認 (クレーム v1.1、v1.2、v1.3 など) に複数の更新を送信した場合、$inquireオペレーションは提供された検索条件に基づいて最新バージョンに関連付けられた ClaimResponse を取得します。

読み取り専用オペレーション

$inquire オペレーション:

  • 既存の認可ステータスを取得します

  • 最新の ClaimResponse を返します

  • リソースを変更または更新しない

  • 新しいリソースを作成しない

  • 新しい認可処理をトリガーしない

ワークフローの例

一般的な事前認可照会ワークフロー

1. Provider submits PA request POST /Claim/$submit → Returns ClaimResponse with outcome="queued" 2. Payer reviews request (asynchronous) → Updates ClaimResponse status internally 3. Provider checks status POST /Claim/$inquire → Returns ClaimResponse with outcome="queued" (still pending) 4. Provider checks status again later POST /Claim/$inquire → Returns ClaimResponse with outcome="complete", disposition="Approved"
  • Claim/$submit - 新しい事前承認リクエストを送信するか、既存の承認リクエストを更新します。

  • Patient/$everything - 事前認可コンテキストの包括的な患者データを取得する