

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

# POST를 사용하여 FHIR 리소스 검색
<a name="searching-fhir-resources-post"></a>

FHIR [https://hl7.org/fhir/R4/search.html](https://hl7.org/fhir/R4/search.html) 상호 작용을 `POST` 요청과 함께 사용하여 HealthLake 데이터 스토어를 검색할 수 있습니다. `POST`를 사용하는 경우 HealthLake는 URL 또는 요청 본문에서 검색 파라미터를 지원하지만 단일 요청에서 둘 다 사용할 수는 없습니다.

**중요**  
개인 식별 정보(PII) 또는 보호 대상 건강 정보(PHI)가 포함된 검색의 경우 PII 및 PHI가 `POST` 요청 본문의 일부로 추가되고 전송 중에 암호화되므로 보안 모범 사례는 요청을 사용하기 위해를 호출합니다.

다음은 FHIR R4 상호 `search` 작용을 사용하여 HealthLake 데이터 스토어`POST`를 검색하는 예제입니다. 이 예제에서는 JSON 요청 본문에서 검색 파라미터를 지정하는 방법을 보여줍니다.

**를 사용하여 HealthLake 데이터 스토어를 검색하려면 `POST`**  


1. HealthLake `region` 및 `datastoreId` 값을 수집합니다. 자세한 내용은 [데이터 스토어 속성 가져오기](managing-data-stores-describe.md) 단원을 참조하십시오.

1. 연결된 `id` 값을 검색하고 수집할 FHIR 리소스 유형을 결정합니다. 자세한 내용은 [조건 키](reference-fhir-resource-types.md) 단원을 참조하십시오.

1. HealthLake `region` 및에 대해 수집된 값을 사용하여 요청에 대한 URL을 구성합니다`datastoreId`. FHIR `Resource` 유형 및 `_search` 상호 작용도 포함합니다. 다음 예제에서 전체 URL 경로를 보려면 **복사** 버튼을 스크롤합니다.

   ```
   POST https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Resource/_search
   ```

1. 검색할 FHIR 데이터를 지정하여 요청에 대한 JSON 본문을 구성합니다. 이 절차의 목적상 `Observation` 리소스를 검색하여 담배를 피운 적이 없는 환자를 찾습니다. 의료 코드 상태를 지정하려면 JSON 요청 본문`value-concept=266919005`에서를 `Never smoker`설정합니다. 파일을 `search-observation.json`(으)로 저장합니다.

   ```
   value-concept=266919005
   ```

1.  요청을 보냅니다. FHIR `search` 상호 작용은 FHIR 권한 부여 시 [AWS 서명 버전 4](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html) 또는 SMART와 함께 `GET` 요청을 사용합니다.
**참고**  
`POST` 요청 본문에 검색 파라미터를 사용하여 요청할 때는를 헤더의 `Content-Type: application/x-www-form-urlencoded` 일부로 사용합니다.

   다음 `curl` 예제에서는 `Observation` 리소스 유형에 대한 POST 기반 검색 요청을 수행합니다. 요청은 [https://hl7.org/fhir/R4/observation.html#search](https://hl7.org/fhir/R4/observation.html#search) 검색 파라미터를 사용하여 값을 `266919005` 나타내는 의료 코드를 찾습니다`Never smoker`. 전체 예제를 보려면 **복사** 버튼을 스크롤합니다.

------
#### [ SigV4 ]

   SigV4 권한 부여

   ```
   curl --request POST \
     'https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Observation/_search' \						
     --aws-sigv4 'aws:amz:region:healthlake' \
     --user "$AWS_ACCESS_KEY_ID:$AWS_SECRET_ACCESS_KEY" \
     --header "x-amz-security-token:$AWS_SESSION_TOKEN" \
     --header "Content-Type: application/x-www-form-urlencoded"							
     --header "Accept: application/json"
     --data @search-observation.json
   ```

------
#### [ SMART on FHIR ]

   [https://docs.aws.amazon.com/healthlake/latest/APIReference/API_IdentityProviderConfiguration.html](https://docs.aws.amazon.com/healthlake/latest/APIReference/API_IdentityProviderConfiguration.html) 데이터 형식에 대한 SMART on FHIR 권한 부여 예제입니다.

   ```
   {
       "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 범위](reference-smart-on-fhir-oauth-scopes.md) 단원을 참조하십시오.

------

## 예: POST로 검색
<a name="searching-fhir-resources-post-examples"></a>

다음 탭은를 사용하여 특정 FHIR 리소스 유형을 검색하는 예제를 제공합니다`POST`. 이 예제에서는 URLs에서 요청을 지정하는 방법을 보여줍니다.

**참고**  
HealthLake 콘솔은 SigV4 권한 부여만 지원합니다. SMART on FHIR 권한 부여는 AWS CLI 및 AWS SDKs 통해 지원됩니다.  
HealthLake는 FHIR R4 검색 파라미터의 하위 집합을 지원합니다. 자세한 내용은 [검색 파라미터](reference-fhir-search-parameters.md) 단원을 참조하십시오.

------
#### [ Patient (age) ]

수명은 FHIR에서 정의된 리소스 유형이 아니지만 [https://hl7.org/fhir/R4/patient.html](https://hl7.org/fhir/R4/patient.html) 리소스 유형의 요소로 캡처됩니다. 다음 예제를 사용하여 `Patient` 리소스 유형에 대한 `POST`기반 검색을 요청합니다. 다음 검색 예제에서는 `eq` [검색 비교](reference-fhir-search-parameters.md#search-comparators)기를 사용하여 1997년에 태어난 개인을 검색합니다.

```
POST https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Patient/_search
```

검색에서 1997년을 지정하려면 요청 본문에 다음 요소를 추가합니다.

```
birthdate=eq1997
```

------
#### [ Condition ]

다음을 사용하여 `Condition` 리소스 유형을 `POST` 요청합니다. 이 검색은 HealthLake 데이터 스토어에서 의료 코드가 포함된 위치를 찾습니다`72892002`.

요청 URL과 요청 본문을 지정해야 합니다. 다음은 요청 URL의 예입니다.

```
POST https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Condition/_search
```

검색하려는 의료 코드를 지정하려면 요청 본문에 다음 JSON 요소를 추가합니다.

```
code=72892002
```

------
#### [ DocumentReference ]

`DocumentReference` 리소스 유형에 대해 `POST` 요청할 때 HealthLake의 통합 자연어 처리(NLP) 결과를 보려면 다음과 같이 요청의 형식을 지정합니다.

```
POST https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/DocumentReference/_search
```

참조할 `DocumentReference` 검색 파라미터를 지정하려면 섹션을 참조하세요[검색 파라미터 유형](reference-fhir-search-parameters.md#search-parameter-types). 다음 쿼리 문자열은 여러 검색 파라미터를 사용하여 통합 NLP 결과를 생성하는 데 사용되는 Amazon Comprehend Medical API 작업을 검색합니다.

```
_lastUpdated=le2021-12-19&infer-icd10cm-entity-text-concept-score;=streptococcal|0.6&infer-rxnorm-entity-text-concept-score=Amoxicillin|0.8
```

------
#### [ Location ]

다음 예제를 사용하여 `Location` 리소스 유형을 `POST` 요청합니다. 검색은 주소의 일부로 도시 이름 보스턴이 포함된 HealthLake 데이터 스토어의 위치를 찾습니다.

요청 URL과 요청 본문을 지정해야 합니다. 다음은 요청 URL의 예입니다.

```
POST https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Location/_search
```

검색`Boston`에서를 지정하려면 요청 본문에 다음 요소를 추가합니다.

```
address=Boston
```

------
#### [ Observation ]

다음 예제를 사용하여 `Observation` 리소스 유형에 대한 `POST`기반 검색을 요청합니다. 검색은 `value-concept` 검색 파라미터를 사용하여를 `266919005` 나타내는 의료 코드를 찾습니다`Never smoker`.

```
POST https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Observation/_search
```

상태를 지정하려면 JSON 본문`value-concept=266919005`에 `Never smoker`를 설정합니다.

```
value-concept=266919005
```

------