デフォルトでは、医療データを検索すると、検索結果は時系列の逆順で返されます。 非構造化テキストを含む次の FHIR リソースタイプを検索する場合は、クエリとの関連性に応じて検索結果を並べ替えることができます。
- Composition
- DiagnosticReport
- DocumentReference
シナリオの例
特定の患者のキーワード insulin
を検索し、結果を非構造化テキストを含むリソースにフィルタリングしたとします。他の結果とともに、次のようなドキュメントが返されます。
- 結果 1: 2024 年 4 月 24 日付の DocumentReference リソース。患者の「HbA1c」レベルに関するメモが含まれています。
- 結果 2: 2024 年 1 月 11 日付の DiagnosticReport リソース。患者が従う必要がある「インスリン療法」に関するメモが含まれています。
デフォルトでは、結果 1 は新しいドキュメントであるため、結果の上位に表示されますが、関連性で並べ替えると、結果 2 が上位に表示されます。これは、検索クエリ insulin
との関連性がより高いためです。
医療検索結果を並べ替える
検索結果を関連性に基づいて並べ替えるには、次の操作を行います。
Console
Google Cloud コンソールで、[Agent Builder] ページに移動します。
クエリを実行する医療検索アプリを選択します。
ナビゲーション メニューで [プレビュー] をクリックします。
[患者 ID] フィールドに、データをクエリする患者の ID を入力します。患者 ID では大文字と小文字が区別されます。
Enter キーを押すか、[プレビュー] をクリックして患者 ID を送信します。
[ここで検索] 検索バーにクエリを入力します。
予測入力を有効にしている場合、入力すると検索バーの下に予測入力の候補が表示されます。
Enter キーを押してクエリを送信します。
- 検索結果は、FHIR リソースタイプに基づいて分類された、ページネーションされた表に表示されます。
- デフォルトでは、すべての FHIR リソースタイプの検索結果は時系列の逆順に表示されます。
Composition、DocumentReference、DiagnosticReport リソースの場合は、[並べ替え: 時系列の逆順] フィルタをクリックし、リストから [関連性] を選択します。これらのリソースの結果は、関連性の順に並べ替えられます。
REST
検索結果を関連性の順に並べ替えるには、search
リクエストを次のように変更します。
- リクエストに
filter
フィールドを追加して、検索結果を、非構造化テキストを含む FHIR リソース(Composition、DiagnosticReport、DocumentReference)のみに制限します。 - 検索リクエストに
orderBy
フィールドを追加し、その値を_RELEVANCE
に設定すると、関連性に基づいて並べ替えられた検索レスポンスが返されます。
検索リクエストを送信します。
curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://us-discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/us/collections/default_collection/engines/APP_ID/servingConfigs/default_search:search" \ -d '{ "query": "KEYWORD_QUERY", "filter": "patient_id: ANY(\"PATIENT_ID\") AND resource_type: ANY(\"Composition\", \"DiagnosticReport\", \"DocumentReference\")", "orderBy": "_RELEVANCE" }'
以下を置き換えます。
PROJECT_ID
: Google Cloud プロジェクトの ID。APP_ID
: クエリする Vertex AI Search アプリの ID。KEYWORD_QUERY
: フィルタされた患者の患者臨床データ全体で検索するキーワード(「糖尿病」や「a1c」など)。PATIENT_ID
: データを検索する患者のリソース ID。
関連性の順に並べられた、項目別の検索結果を含む JSON レスポンスが返されます。