医療検索結果を並べ替える

デフォルトでは、医療データを検索すると、検索結果は時系列の逆順で返されます。 非構造化テキストを含む次の FHIR リソースタイプを検索する場合は、クエリとの関連性に応じて検索結果を並べ替えることができます。

  • Composition
  • DiagnosticReport
  • DocumentReference

シナリオの例

特定の患者のキーワード insulin を検索し、結果を非構造化テキストを含むリソースにフィルタリングしたとします。他の結果とともに、次のようなドキュメントが返されます。

  • 結果 1: 2024 年 4 月 24 日付の DocumentReference リソース。患者の「HbA1c」レベルに関するメモが含まれています。
  • 結果 2: 2024 年 1 月 11 日付の DiagnosticReport リソース。患者が従う必要がある「インスリン療法」に関するメモが含まれています。

デフォルトでは、結果 1 は新しいドキュメントであるため、結果の上位に表示されますが、関連性で並べ替えると、結果 2 が上位に表示されます。これは、検索クエリ insulin との関連性がより高いためです。

医療検索結果を並べ替える

検索結果を関連性に基づいて並べ替えるには、次の操作を行います。

Console

  1. Google Cloud コンソールで、[Agent Builder] ページに移動します。

    Agent Builder

  2. クエリを実行する医療検索アプリを選択します。

  3. ナビゲーション メニューで [プレビュー] をクリックします。

  4. [患者 ID] フィールドに、データをクエリする患者の ID を入力します。患者 ID では大文字と小文字が区別されます。

  5. Enter キーを押すか、[プレビュー] をクリックして患者 ID を送信します。

  6. [ここで検索] 検索バーにクエリを入力します。

    予測入力を有効にしている場合、入力すると検索バーの下に予測入力の候補が表示されます。

  7. Enter キーを押してクエリを送信します。

    • 検索結果は、FHIR リソースタイプに基づいて分類された、ページネーションされた表に表示されます。
    • デフォルトでは、すべての FHIR リソースタイプの検索結果は時系列の逆順に表示されます。
  8. Composition、DocumentReference、DiagnosticReport リソースの場合は、[並べ替え: 時系列の逆順] フィルタをクリックし、リストから [関連性] を選択します。これらのリソースの結果は、関連性の順に並べ替えられます。

REST

検索結果を関連性の順に並べ替えるには、search リクエストを次のように変更します。

  • リクエストに filter フィールドを追加して、検索結果を、非構造化テキストを含む FHIR リソース(Composition、DiagnosticReport、DocumentReference)のみに制限します。
  • 検索リクエストに orderBy フィールドを追加し、その値を _RELEVANCE に設定すると、関連性に基づいて並べ替えられた検索レスポンスが返されます。
  1. 検索リクエストを送信します。

    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 レスポンスが返されます。