

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

# HealthLake の FHIR R4 検索パラメータ
<a name="reference-fhir-search-parameters"></a>

FHIR [https://hl7.org/fhir/R4/http.html#search](https://hl7.org/fhir/R4/http.html#search)インタラクションを使用して、一部のフィルター条件に基づいて HealthLake データストア内の一連の FHIR リソースを検索します。`search` インタラクションは、 `GET`または `POST`リクエストを使用して実行できます。個人を特定できる情報 (PII) または保護された医療情報 (PHI) を含む検索では、PII と PHI が`POST`リクエスト本文の一部として追加され、転送中に暗号化されるため、リクエストを使用することをお勧めします。

**注記**  
この章で説明する FHIR `search`インタラクションは、医療データ交換のための HL7 FHIR R4 標準に準拠して構築されています。HL7 FHIR サービスの表現であるため、 AWS CLI および AWS SDKs では提供されません。詳細については、FHIR R4 RESTful API ドキュメント[https://hl7.org/fhir/R4/http.html#search](https://hl7.org/fhir/R4/http.html#search)の「」を参照してください。 ** R4 RESTful **  
Amazon Athena を使用して SQL で HealthLake データストアをクエリすることもできます。詳細については、「統合」を参照してください。

HealthLake は、以下の FHIR R4 検索パラメータのサブセットをサポートしています。詳細については、「[HealthLake の FHIR R4 検索パラメータ](#reference-fhir-search-parameters)」を参照してください。

## サポートされている検索パラメータタイプ
<a name="search-parameter-types"></a>

次の表は、HealthLake でサポートされている検索パラメータタイプを示しています。


**サポートされている検索パラメータタイプ**  

| 検索パラメータ  | 説明 | 
| --- | --- | 
| \$1id | リソース ID (完全な URL ではない) | 
| \$1lastUpdated | 最終更新日。サーバーには境界の精度に関する裁量があります。 | 
| \$1tag | リソースタグで検索します。 | 
| プロファイル | プロファイルでタグ付けされたすべてのリソースを検索します。 | 
| セキュリティ | このリソースに適用されたセキュリティラベルを検索します。 | 
| \$1ソース | リソースのソースを検索します。 | 
| テキスト | リソースの説明を検索します。 | 
| createdAt | カスタム拡張機能 createdAt で検索します。 | 

**注記**  
次の検索パラメータは、2023 年 12 月 9 日以降に作成されたデータストアでのみサポートされています: \$1security、\$1source、\$1text、createdAt。

次の表は、特定のリソースタイプの指定されたデータ型に基づいてクエリ文字列を変更する方法の例を示しています。わかりやすくするために、例列の特殊文字はエンコードされていません。クエリを成功させるには、クエリ文字列が適切にエンコードされていることを確認します。


**検索パラメータの例**  

| 検索パラメータタイプ | Details  | 例 | 
| --- | --- | --- | 
|  Number  | 指定されたリソース内の数値を検索します。有効数字が観察されます。有効桁数は、先頭の 0 を除く検索パラメータ値で に固有です。比較プレフィックスは許可されます。 |  `[parameter]=100` `[parameter]=1e2` `[parameter]=lt100`  | 
|  日付/DateTime  |  特定の日付または時刻を検索します。想定される形式は `yyyy-mm-ddThh:mm:ss[Z\|(+\|-)hh:mm]`ですが、異なる場合があります。 、`date`、`dateTime`、`instant`、`Period`および のデータ型を受け入れます`Timing`。検索でこれらのデータ型を使用する詳細については、**FHIR R4 RESTful API ドキュメント**の[「日付](https://www.hl7.org/fhir/search.html#date)」を参照してください。 比較プレフィックスは許可されます。  |  `[parameter]=eq2013-01-14` `[parameter]=gt2013-01-14T10:00` `[parameter]=ne2013-01-14`  | 
|  String  |  大文字と小文字を区別して一連の文字を検索します。 `HumanName` と の両方`Address`のタイプをサポートします。詳細については、**FHIR R4 ドキュメント**の [HumanName データ型](https://www.hl7.org/fhir/datatypes.html#HumanName)エントリと[`Address`データ型](https://www.hl7.org/fhir/datatypes.html#Address)エントリを参照してください。 詳細検索は`:text`、修飾子を使用してサポートされています。  |  `[base]/Patient?given=eve` `[base]/Patient?given:contains=eve`  | 
|  トークン  |  多くの場合、医療コード値のペアと比較して、文字列に対するclose-to-exact一致を検索します。 大文字と小文字の区別は、クエリの作成時に使用するコードシステムにリンクされます。サブsumption ベースのクエリは、大文字と小文字の区別に関連する問題を減らすのに役立ちます。わかりやすくするために、 `\|`はエンコードされていません。  |  `[parameter]=[system]\|[code]`: ここでは、コーディングシステム`[system]`を参照し、その特定のシステム内で見つかったコード値`[code]`を参照します。 `[parameter]=[code]`: ここで、入力はコードまたはシステムのいずれかに一致します。 `[parameter]=\|[code]`: ここで、入力はコードと一致し、システムプロパティには識別子がありません。  | 
|  複合  |  修飾子`$`と `,`オペレーションを使用して、単一のリソースタイプ内の複数のパラメータを検索します。 比較プレフィックスは許可されます。  |  `/Patient?language=FR,NL&language=EN` `Observation?component-code-value-quantity=http://loinc.org\|8480-6$lt60` `[base]/Group?characteristic-value=gender$mixed`  | 
|  数量  |  数値、システム、コードを値として検索します。番号は必須ですが、システムとコードはオプションです。数量データ型に基づきます。詳細については、**FHIR R4 ドキュメント**の[「数量](https://www.hl7.org/fhir/datatypes.html#Quantity)」を参照してください。 次の想定構文を使用します。 `[parameter]=[prefix][number]\|[system]\|[code]`  |  `[base]/Observation?value-quantity=5.4\|http://unitsofmeasure.org\|mg` `[base]/Observation?value-quantity=5.4\|http://unitsofmeasure.org\|mg` `[base]/Observation?value-quantity=5.4\|http://unitsofmeasure.org\|mg` `[base]/Observation?value-quantity=le5.4\|http://unitsofmeasure.org\|mg`  | 
|  リファレンス  |  他のリソースへの参照を検索します。  |  `[base]/Observation?subject=Patient/23` `test`  | 
|  [URI]  |  特定のリソースを明確に識別する文字列を検索します。  |  `[base]/ValueSet?url=http://acme.org/fhir/ValueSet/123`  | 
|  スペシャル  |  統合された医療 NLP 拡張機能に基づいて検索します。  | 

## HealthLake でサポートされている高度な検索パラメータ
<a name="search-parameters-advanced"></a>

HealthLake は、次の高度な検索パラメータをサポートしています。


| 名前 | 説明 | 例 | 機能 | 
| --- | --- | --- | --- | 
| \$1include | 検索リクエストで追加のリソースが返されるようにリクエストするために使用されます。ターゲットリソースインスタンスによって参照されるリソースを返します。 | Encounter?\$1include=Encounter:subject |   | 
| \$1revinclude | 検索リクエストで追加のリソースが返されるようにリクエストするために使用されます。プライマリリソースインスタンスを参照するリソースを返します。 | Patient?\$1id=patient-identifier&\$1revinclude=Encounter:patient |   | 
| \$1summary | 概要は、リソースのサブセットをリクエストするために使用できます。 | Patient?\$1summary=text | 次の概要パラメータがサポートされています: \$1summary=true、\$1summary=false、\$1summary=text、\$1summary=data。 | 
| \$1elements | 検索結果のリソースの一部として返される特定の要素のセットをリクエストします。 | Patient?\$1elements=identifier,active,link |   | 
| \$1total | 検索パラメータに一致するリソースの数を返します。 | Patient?\$1total=accurate | \$1total=accurate、 をサポートします\$1total=none。 | 
| \$1sort | カンマ区切りリストを使用して、返された検索結果のソート順を示します。- プレフィックスは、カンマ区切りリストの任意のソートルールで、降順を示すために使用できます。 | Observation?\$1sort=status,-date | タイプが のフィールドによるソートをサポートしますNumber, String, Quantity, Token, URI, Reference。によるソートDateは、2023 年 12 月 9 日以降に作成されたデータストアでのみサポートされています。最大 5 つのソートルールをサポートします。 | 
| \$1count | 検索バンドルのページごとに返されるリソースの数を制御します。 | Patient?\$1count=100 | 最大ページサイズは 100 です。 | 
| chaining | 参照されるリソースの要素を検索します。. は、連鎖検索を、参照されるリソース内の 要素に送信します。 | DiagnosticReport?subject:Patient.name=peter |   | 
| reverse chaining (\$1has) | リソースを参照するリソースの要素に基づいてリソースを検索します。 | Patient?\$1has:Observation:patient:code=1234-5 |   | 

`_include`

検索クエリ`_include`で を使用すると、追加の指定された FHIR リソースも返されます。を使用して`_include`、前方にリンクされたリソースを含めます。

**Example – を使用して`_include`、せきの診断を受けた患者または患者のグループを検索するには**  
診断コードを指定する`Condition`リソースタイプを検索し、その診断`subject`の も返すように`_include`指定します。`Condition` リソースタイプでは、患者リソースタイプまたはグループリソースタイプのいずれか`subject`を指します。  
わかりやすくするために、この例の特殊文字はエンコードされていません。クエリを成功させるには、クエリ文字列が適切にエンコードされていることを確認します。  

```
GET https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/
Condition?code=49727002&_include=Condition:subject
```

`_include:iterate` 修飾子

修飾子を使用すると、2 `_include:iterate` つのレベルで参照されるリソースを再帰的に含めることができます。例えば、

```
GET /ServiceRequest?identifier=025C0931195&_include=ServiceRequest:requester&_include:iterate=PractitionerRole:practitioner
```

は、ServiceRequest、関連付けられた PractitionerRole (リクエスタリファレンス経由) を返し、その PractitionerRole によって参照される Practitioner を再帰的に含めます。この修飾子は、HealthLake のすべてのリソースタイプで使用できます。

`_include=*` 修飾子

`_include=*` 修飾子は、検索結果によって直接参照されるすべてのリソースを自動的に含むワイルドカードです。例えば、

```
GET /ServiceRequest?specimen.accession=12345&_include=*
```

は、各参照パスを個別に指定することなく、一致する ServiceRequest を、それが参照するすべてのリソース (患者、プラクティショナー、医療関係者など) とともに返します。この修飾子は、HealthLake のすべてのリソースタイプで使用できます。

`_revinclude`

検索クエリ`_revinclude`で を使用すると、指定された追加の FHIR リソースも返されます。を使用して`_revinclude`、後方にリンクされたリソースを含めます。

**Example – を使用して`_revinclude`、特定の患者にリンクされた関連する Encounter および Observation リソースタイプを含めるには**  
この検索を行うには、まず`_id`検索パラメータで識別子を指定`Patient`して個人を定義します。次に、 構造`Encounter:patient`と を使用して追加の FHIR リソースを指定します`Observation:patient`。  
わかりやすくするために、この例の特殊文字はエンコードされていません。クエリを成功させるには、クエリ文字列が適切にエンコードされていることを確認します。  

```
GET https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/
Patient?_id=patient-identifier&_revinclude=Encounter:patient&_revinclude=Observation:patient
```

`_summary`

検索クエリ`_summary`で を使用すると、ユーザーは FHIR リソースのサブセットをリクエストできます。次のいずれかの値を含めることができます: `true, text, data, false`。その他の値は無効として扱われます。返されたリソースは meta.tag `'SUBSETTED'`で とマークされ、リソースが不完全であることを示します。
+ `true`: リソースの基本定義で「概要」としてマークされているサポートされているすべての要素を返します (複数可）。
+ `text`: 「text」、「id」、「meta」要素のみ、および最上位の必須要素のみを返します。
+ `data`: 「text」要素を除くすべてのパートを返します。
+ `false`: リソースのすべての部分を返します (複数可)

単一の検索リクエストでは、 を `_include`または `_revinclude` 検索パラメータと組み合わせる`_summary=text`ことはできません。

**Example – データストア内の患者リソースの「テキスト」要素を取得します。**  

```
GET https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Patient?_summary=text
```

`_elements`

検索クエリ`_elements`で を使用すると、特定の FHIR リソース要素をリクエストできます。返されたリソースは meta.tag `'SUBSETTED'`で とマークされ、リソースが不完全であることを示します。

`_elements` パラメータは、リソースのルートレベルで定義された要素など、基本要素名のカンマ区切りリストで構成されます。リストされている要素のみが返されます。`_elements` パラメータ値に無効な要素が含まれている場合、サーバーはそれらを無視し、必須要素と有効な要素を返します。

`_elements` は、含まれるリソース (検索モードが である返されたリソース`include`) には適用されません。

単一の検索リクエストでは、 を検索`_summary`パラメータと組み合わせる`_elements`ことはできません。

**Example – HealthLake データストアで患者リソースの「識別子」、「アクティブ」、「リンク」要素を取得します。**  

```
GET https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Patient?_elements=identifier,active,link
```

`_total`

検索クエリ`_total`で を使用すると、リクエストされた検索パラメータに一致するリソースの数が返されます。HealthLake は、検索レスポンス`Bundle.total`の で一致したリソース (検索モードが である返されたリソース`match`) の総数を返します。

`_total` は `accurate`、`none`パラメータ値をサポートしています。 `_total=estimate`はサポートされていません。その他の値は無効として扱われます。 `_total`は、含まれるリソース (検索モードが である返されたリソース`include`) には適用されません。

**Example – データストア内の患者リソースの総数を取得します。**  

```
GET https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Patient?_total=accurate
```

`_sort`

検索クエリ`_sort`で を使用すると、結果が特定の順序で配置されます。結果は、ソートルールのカンマ区切りリストに基づいて優先順位が付けられます。ソートルールは有効な検索パラメータである必要があります。その他の値は無効として扱われます。

1 つの検索リクエストで、最大 5 つのソート検索パラメータを使用できます。オプションで、`-`プレフィックスを使用して降順を指定できます。デフォルトでは、サーバーは昇順でソートされます。

サポートされているソート検索パラメータタイプは、 です`Number, String, Date, Quantity, Token, URI, Reference`。検索パラメータがネストされた要素を参照している場合、この検索パラメータはソートではサポートされていません。たとえば、リソースタイプの「名前」を検索する 患者 は HumanName データ型の Patient.name 要素を参照し、ネストされたと見なされます。したがって、患者リソースを「名前」でソートすることはサポートされていません。

**Example – データストアで患者リソースを取得し、生年月日で昇順にソートします。**  

```
GET https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Patient?_sort=birthdate
```

`_count`

パラメータ`_count`は、1 ページに返されるリソースの数に関するサーバーへの指示として定義されます。

最大ページサイズは 100 です。100 を超える値は無効です。 `_count=0`はサポートされていません。

**Example – 患者リソースを検索し、検索ページサイズを 25 に設定します。**  

```
GET https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Patient?_count=25
```

`Chaining and Reverse Chaining(_has)`

FHIR での連鎖と逆連鎖は、相互接続されたデータを取得するためのより効率的でコンパクトな方法を提供し、複数の個別のクエリの必要性を減らし、デベロッパーやユーザーにとってデータの取得をより便利にします。

いずれかのレベルの再帰が 100 を超える結果を返した場合、HealthLake はデータストアが過負荷になり、複数のページ分割が発生するのを防ぐために 4xx を返します。

**Example – 連鎖 - 患者名がペターである患者を参照するすべての DiagnosticReport を取得します。**  

```
GET https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/DiagnosticReport?subject:Patient.name=peter
```

**Example – リバースチェイニング - 患者リソースを取得します。ここで、患者リソースは少なくとも 1 つのオブザベーションによって参照され、オブザベーションのコードは 1234 で、オブザベーションは患者検索パラメータ内の患者リソースを参照します。**  
  

```
GET https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Patient?_has:Observation:patient:code=1234
```

## サポートされている検索修飾子
<a name="search-parameter-modifiers"></a>

検索修飾子は文字列ベースのフィールドで使用されます。HealthLake のすべての検索修飾子は、ブールベースのロジックを使用します。たとえば、 `:contains`を指定して、検索結果に含めるために大きな文字列フィールドに小さな文字列を含めるように指定できます。


**サポートされている検索修飾子**  

| 検索修飾子 | タイプ | 
| --- | --- | 
| : 欠落 | を除くすべてのパラメータ Composite | 
| :exact | String | 
| :contains | String | 
| :not | トークン | 
| :text | トークン | 
| :identifier | リファレンス | 
| :以下 | [URI] | 

## サポートされている検索コンパレータ
<a name="search-comparators"></a>

検索コンパレータを使用して、検索の一致の性質を制御できます。数値、日付、数量フィールドを検索するときにコンパレータを使用できます。次の表に、HealthLake でサポートされている検索コンパレータとその定義を示します。


**サポートされている検索コンパレータ**  

|  検索コンパレータ  |  説明  | 
| --- | --- | 
| eq | リソースの パラメータの値は、指定された値と等しくなります。 | 
| ne | リソースの パラメータの値は、指定された値と等しくありません。 | 
| gt | リソースの パラメータの値が、指定された値を超えています。 | 
| lt | リソースの パラメータの値が、指定された値未満です。 | 
| g | リソースの パラメータの値は、指定された値以上です。 | 
| le | リソースの パラメータの値は、指定された値以下です。 | 
| sa | リソースの パラメータの値は、指定された値の後に開始されます。 | 
| EBS | リソースの パラメータの値は、指定された値より前に終了します。 | 

## HealthLake でサポートされていない FHIR 検索パラメータ
<a name="search-parameters-unsupported"></a>

HealthLake は、次の表に示すものを除き、すべての FHIR 検索パラメータをサポートします。FHIR 検索パラメータの完全なリストについては、[FHIR 検索パラメータレジストリを参照してください。](https://hl7.org/fhir/R4/searchparameter-registry.html)


**サポートされていない検索パラメータ**  

|  |  | 
| --- |--- |
| バンドル構成 | Location-near | 
| バンドル識別子 | Consent-source-reference | 
| バンドルメッセージ | 契約患者 | 
| バンドルタイプ | リソースの内容 | 
| バンドルタイムスタンプ | リソースクエリ | 