

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

# POST を使用した FHIR リソースの検索
<a name="searching-fhir-resources-post"></a>

`POST` リクエストとの FHIR [https://hl7.org/fhir/R4/search.html](https://hl7.org/fhir/R4/search.html)インタラクションを使用して HealthLake データストアを検索できます。を使用する場合`POST`、HealthLake は URL またはリクエスト本文の検索パラメータをサポートしますが、両方を 1 つのリクエストで使用することはできません。

**[重要]**  
個人を特定できる情報 (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`リソースを検索して、一度も喫煙したことのない患者を検出します。医療コードのステータス を指定するには`Never smoker`、JSON リクエスト本文`value-concept=266919005`で を設定します。`search-observation.json` という名前でファイルを保存します。

   ```
   value-concept=266919005
   ```

1.  リクエストを送信します。FHIR `search`インタラクションは、[AWS 署名バージョン 4 ](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html)または SMART on FHIR 認可のいずれかで`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) データ型の 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 スコープ](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) ]

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 `Never smoker` の本文`value-concept=266919005`に を設定します。

```
value-concept=266919005
```

------