

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# HealthLake에 대한 FHIR `$inquire` 작업
<a name="reference-fhir-operations-inquire"></a>

`$inquire` 작업을 통해 이전에 제출한 사전 권한 부여 요청의 상태를 확인할 수 있습니다. 이 작업은 [Da Vinci 사전 승인 지원(PAS) 구현 가이드를](https://hl7.org/fhir/us/davinci-pas/) 구현하여 현재 권한 부여 결정을 검색하는 표준화된 FHIR 기반 워크플로를 제공합니다.

## 작동 방식
<a name="inquire-how-it-works"></a>
+ **쿼리 제출**: 확인하려는 클레임과 지원 정보가 포함된 FHIR 번들을 보냅니다.
+ **검색**: HealthLake는 데이터 스토어에서 해당 ClaimResponse를 검색합니다.
+ **검색**: 가장 최근 권한 부여 상태가 검색됩니다.
+ **응답**: 현재 권한 부여 상태(대기열 있음, 승인됨, 거부됨 등)의 즉각적인 응답을 받습니다.

**참고**  
`$inquire`는 기존 권한 부여 상태를 검색하는 **읽기 전용 작업**입니다. 데이터 스토어의 리소스는 수정하거나 업데이트하지 않습니다.

## API 엔드포인트
<a name="inquire-api-endpoint"></a>

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

## 요청 구조
<a name="inquire-request-structure"></a>

### 번들 요구 사항
<a name="inquire-bundle-requirements"></a>

요청은 다음을 포함하는 FHIR 번들 리소스여야 합니다.
+ **Bundle.type**: 이어야 함 `"collection"`
+ **Bundle.entry**: 다음을 사용하여 정확히 **하나의** 클레임 리소스를 포함해야 합니다.
  + `use = "preauthorization"`
  + `status = "active"`
+ **참조 리소스**: 클레임에서 참조하는 모든 리소스가 번들에 포함되어야 합니다.

**Query-by-Example**  
입력 번들의 리소스는 검색 템플릿 역할을 합니다. HealthLake는 제공된 정보를 사용하여 해당 ClaimResponse를 찾습니다.

### 필수 리소스
<a name="inquire-required-resources"></a>


| Resource | 카디널리티 | 프로필 | 설명 | 
| --- | --- | --- | --- | 
| 클레임 | 1 | PAS 클레임 문의 | 문의하려는 사전 권한 부여 | 
| 환자 | 1 | PAS 수혜자 환자 | 환자 인구통계 정보 | 
| 조직(보험사) | 1 | PAS 보험 회사 조직 | 보험 회사 | 
| 조직(제공자) | 1 | PAS 요청 조직 | 요청을 제출한 의료 서비스 제공자 | 

### 중요 검색 기준
<a name="inquire-search-criteria"></a>

HealthLake는 다음을 사용하여 ClaimResponse를 검색합니다.
+ 클레임의 **환자 참조** 
+ 클레임의 **보험 회사 참조** 
+ 클레임의 **공급자 참조** 
+ 클레임에서 **생성된 날짜**(시간 필터)

**환자별 쿼리만**  
모든 문의는 특정 환자와 연결되어야 합니다. 환자 식별이 없는 시스템 전체 쿼리는 허용되지 않습니다.

## 요청 예제
<a name="inquire-example-request"></a>

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

## 응답 형식
<a name="inquire-response-format"></a>

### 성공 응답(200 OK)
<a name="inquire-success-response"></a>

다음이 포함된 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"  
      }  
    }  
  ]  
}
```

## 오류 응답
<a name="inquire-error-responses"></a>

### 400 잘못된 요청
<a name="inquire-400-error"></a>

요청 형식이 유효하지 않거나 검증이 실패할 때 반환됩니다.

```
{  
    "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 권한이 없음
<a name="inquire-401-error"></a>

인증 자격 증명이 누락되거나 유효하지 않을 때 반환됩니다.

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

### 403 금지됨
<a name="inquire-403-error"></a>

인증된 사용자에게 요청된 리소스에 액세스할 수 있는 권한이 없는 경우 반환됩니다.

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

### 400 찾을 수 없는 경우
<a name="inquire-400-none-found"></a>

쿼리에 대해 일치하는 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 지원되지 않는 미디어 유형
<a name="inquire-415-error"></a>

Content-Type 헤더가 application/fhir\$1json이 아닐 때 반환됩니다.

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

### 429 요청이 너무 많음
<a name="inquire-429-error"></a>

속도 제한을 초과하면 반환됩니다.

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

## 검증 규칙
<a name="inquire-validation-rules"></a>

HealthLake는 문의에 대해 포괄적인 검증을 수행합니다.

### 번들 검증
<a name="inquire-bundle-validation"></a>
+ PAS 문의 요청 번들 프로필을 준수해야 합니다.
+ `Bundle.type` 여야 합니다. `"collection"` 
+ 정확히 하나의 클레임 리소스를 포함해야 합니다.
+ 참조된 모든 리소스가 번들에 포함되어야 합니다.

### 클레임 검증
<a name="inquire-claim-validation"></a>
+ PAS 클레임 쿼리 프로필을 준수해야 합니다.
+ `Claim.use` 여야 합니다. `"preauthorization"` 
+ `Claim.status` 여야 합니다. `"active"` 
+ 필수 필드: `patient`, `insurer`, `provider`, `created` 

### 리소스 검증
<a name="inquire-resource-validation"></a>
+ 모든 리소스는 해당 PAS 쿼리 프로필을 준수해야 합니다.
+ 필요한 지원 리소스가 있어야 합니다(환자, 보험 조직, 공급자 조직).
+ 교차 참조는 번들 내에서 유효하고 해석 가능해야 합니다.

## 성능 사양
<a name="inquire-performance-specs"></a>


| 지표 | 사양 | 
| --- | --- | 
| 리소스 수 제한 | 번들당 리소스 500개 | 
| 번들 크기 제한 | 최대 5MB | 

## 필수 권한
<a name="inquire-required-permissions"></a>

`$inquire` 작업을 사용하려면 IAM 역할에 다음이 있는지 확인합니다.
+ `healthlake:InquirePreAuthClaim` - 작업을 호출하려면

**FHIR 범위의 SMART**  
**최소 필수 범위:**
+ **SMART v1**: `user/ClaimResponse.read`
+ **SMART v2**: `user/ClaimResponse.s`

## 중요한 구현 참고 사항
<a name="inquire-implementation-notes"></a>

### 검색 동작
<a name="inquire-search-behavior"></a>

문의를 제출하면 HealthLake는 다음을 사용하여 ClaimResponse를 검색합니다.
+ 입력 클레임의 **환자 참조** 
+ 입력 클레임의 **보험 회사 참조** 
+ 입력 클레임의 **공급자 참조** 
+ 입력 클레임에서 **생성된 날짜**(시간 필터)

**다중 일치**: 여러 ClaimResponses 검색 기준과 일치하는 경우 HealthLake는 일치하는 모든 결과를 반환합니다. 최신 `ClaimResponse.created` 타임스탬프를 사용하여 최신 상태를 식별해야 합니다.

### 업데이트된 클레임
<a name="inquire-updated-claims"></a>

동일한 사전 권한 부여(예: 클레임 v1.1, v1.2, v1.3)에 대한 여러 업데이트를 제출한 경우 `$inquire` 작업은 제공된 검색 기준에 따라 **최신 버전**과 연결된 ClaimResponse를 검색합니다.

### 읽기 전용 작업
<a name="inquire-read-only"></a>

`$inquire` 작업:
+ 기존 권한 부여 상태를**** 검색합니다.
+ 최신 ClaimResponse를 반환**합니다**.
+ 리소스를 수정하거나 업데이트**하지 않음** 
+ 새 리소스를 생성**하지 않음** 
+ 새 권한 부여 처리를 트리거**하지 않음** 

## 워크플로 예시
<a name="inquire-workflow-example"></a>

**일반적인 사전 승인 문의 워크플로**  


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

## 관련 작업
<a name="inquire-related-operations"></a>
+ `Claim/$submit` - 새 사전 권한 부여 요청을 제출하거나 기존 권한 부여 요청을 업데이트합니다.
+ `Patient/$everything` - 사전 권한 부여 컨텍스트에 대한 포괄적인 환자 데이터 검색