기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
HealthLake에 대한 FHIR $inquire 작업
$inquire 작업을 통해 이전에 제출한 사전 권한 부여 요청의 상태를 확인할 수 있습니다. 이 작업은 Da Vinci 사전 승인 지원(PAS) 구현 가이드를
작동 방식
-
쿼리 제출: 확인하려는 클레임과 지원 정보가 포함된 FHIR 번들을 보냅니다.
-
검색: HealthLake는 데이터 스토어에서 해당 ClaimResponse를 검색합니다.
-
검색: 가장 최근 권한 부여 상태가 검색됩니다.
-
응답: 현재 권한 부여 상태(대기열 있음, 승인됨, 거부됨 등)의 즉각적인 응답을 받습니다.
참고
$inquire는 기존 권한 부여 상태를 검색하는 읽기 전용 작업입니다. 데이터 스토어의 리소스는 수정하거나 업데이트하지 않습니다.
API 엔드포인트
POST /datastore/{datastoreId}/r4/Claim/$inquire Content-Type: application/fhir+json
요청 구조
번들 요구 사항
요청은 다음을 포함하는 FHIR 번들 리소스여야 합니다.
-
Bundle.type: 이어야 함
"collection" -
Bundle.entry: 다음을 사용하여 정확히 하나의 클레임 리소스를 포함해야 합니다.
-
use = "preauthorization" -
status = "active"
-
-
참조 리소스: 클레임에서 참조하는 모든 리소스가 번들에 포함되어야 합니다.
Query-by-Example
입력 번들의 리소스는 검색 템플릿 역할을 합니다. HealthLake는 제공된 정보를 사용하여 해당 ClaimResponse를 찾습니다.
필수 리소스
| Resource | 카디널리티 | 프로필 | 설명 |
|---|---|---|---|
| 클레임 | 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 쿼리 응답 번들을 받게 됩니다.
-
현재 권한 부여 상태의 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 잘못된 요청
요청 형식이 유효하지 않거나 검증이 실패할 때 반환됩니다.
{ "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 권한이 없음
인증 자격 증명이 누락되거나 유효하지 않을 때 반환됩니다.
{ "resourceType": "OperationOutcome", "issue": [ { "severity": "error", "code": "forbidden", "diagnostics": "Invalid authorization header" } ] }
403 금지됨
인증된 사용자에게 요청된 리소스에 액세스할 수 있는 권한이 없는 경우 반환됩니다.
{ "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 요청이 너무 많음
속도 제한을 초과하면 반환됩니다.
{ "resourceType": "OperationOutcome", "issue": [{ "severity": "error", "code": "throttled", "diagnostics": "Rate limit exceeded. Please retry after some time." }] }
검증 규칙
HealthLake는 문의에 대해 포괄적인 검증을 수행합니다.
번들 검증
-
PAS 문의 요청 번들 프로필을 준수해야 합니다.
-
Bundle.type여야 합니다."collection" -
정확히 하나의 클레임 리소스를 포함해야 합니다.
-
참조된 모든 리소스가 번들에 포함되어야 합니다.
클레임 검증
-
PAS 클레임 쿼리 프로필을 준수해야 합니다.
-
Claim.use여야 합니다."preauthorization" -
Claim.status여야 합니다."active" -
필수 필드:
patient,insurer,provider,created
리소스 검증
-
모든 리소스는 해당 PAS 쿼리 프로필을 준수해야 합니다.
-
필요한 지원 리소스가 있어야 합니다(환자, 보험 조직, 공급자 조직).
-
교차 참조는 번들 내에서 유효하고 해석 가능해야 합니다.
성능 사양
| 지표 | 사양 |
|---|---|
| 리소스 수 제한 | 번들당 리소스 500개 |
| 번들 크기 제한 | 최대 5MB |
필수 권한
$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- 사전 권한 부여 컨텍스트에 대한 포괄적인 환자 데이터 검색