取得醫療照護資料的搜尋結果

將 FHIR R4 資料匯入醫療照護搜尋應用程式後,您就可以查詢匯入的資料,取得相關結果。您可以使用下列查詢類型進行搜尋:

  • 關鍵字查詢
  • 自然語言查詢
  • 自然語言查詢,搭配生成式 AI 解答

此外,您也可以使用日期篩選查詢來篩選搜尋結果。詳情請參閱「定義 resource_datetime 篩選器」一文。

在 Google Cloud 控制台中搜尋時,您必須先提供病患 ID,並一次搜尋單一病患的資料。使用 REST API 搜尋時,您可以搜尋整個資料儲存庫。

本頁說明如何使用各種查詢類型搜尋醫療保健資料。

Vertex AI Search 搜尋醫療照護資料的預期用途

Vertex AI Search 的使用目的並非提供與預防、診斷或治療疾病相關的資訊。產品並未提供診斷或治療建議相關問題的解答。這項產品的用途是擷取及匯總使用者提供的現有醫療資訊。

由於測試資料有限,這項產品可能不適用於 0 至 18 歲和 85 歲以上的年齡層。因此,在查看產生的輸出內容時,客戶必須考量來源資料中子群體的代表性。

以下列舉幾個這項產品的使用方式:

  • 探索性查詢,用於尋找與主題相關的病患資訊:

    • 「Summarize the aspirin uses」
    • 「血壓」
    • 「糖尿病控管?」
  • 導覽查詢,用於找出可對應至結構化查詢的特定資源:

    • 「Show me the most recent a1c」
  • 擷取問題和答案,以回答特定問題,其中證據可能分散在多個資源中:

    • 「這位患者是否曾接受頭孢菌素治療」
    • 「病患是否曾接受精神科評估」

以下是這項產品不應使用的示例:

  • 診斷建議和治療建議:

    • 「What is the differential diagnosis for this patient?」
    • 「我該開立哪些藥物給病人?」

查詢指南

以下規範可協助您擬定查詢,以便取得更優質的搜尋結果:

  • 搜尋具有特定意圖的查詢:由於模型不知道您要尋找什麼,因此建議您提供明確的查詢,而非含糊不清的查詢。舉例來說,搜尋關鍵字「高血壓」比搜尋關鍵字「摘要」更適合。雖然「高血壓」查詢會顯示相關文件中的特定結果,但「摘要」查詢可能會顯示不相關文件的結果。

  • 保留背景資訊:由於搜尋不是對話,因此建議為每個查詢提供完整的背景資訊。舉例來說,如果初始查詢為「高血壓」,而您想追蹤同一個主題,則「何時診斷出高血壓」比「何時診斷出」更適合作為第二個查詢。

  • 簡化查詢:盡可能將複雜的查詢拆分為較簡單的查詢。舉例來說,您可以根據目標,改為搜尋「肌酸酐」和「白蛋白」,並分別建立「肌酸酐」和「白蛋白」以及「肌酸酐/白蛋白比率」的不同查詢。

  • 避免要求推論:如果模型可以從搜尋的文件中逐字傳回資訊,而非根據搜尋到的資訊進行計算或推論,搜尋結果會更精確。舉例來說,您可以改為查詢「病患體重變化多少」,然後分別計算體重變化。

在搜尋結果中醒目顯示相符項目

比對醒目顯示是一種設定,可醒目顯示搜尋結果中與搜尋查詢相符的部分文字。

以下資源類型的結果支援相符項目醒目顯示:

  • 組合:從 Composition.section[].text.div 欄位中醒目顯示相關文字。
  • DiagnosticReport:醒目顯示 DiagnosticReport.conclusion 欄位的相關文字。
  • DocumentReference:從 DocumentReference.content[0].attachment.url 欄位中參照的文件中,醒目顯示相關文字。醒目顯示的文字會放在定界框內。在搜尋回應中,邊界框以兩組標準化座標表示。支援比對醒目標的文件為 PDF 檔案和支援的類型圖片檔案。下圖顯示如何在使用 DocumentReference 資源類型掃描的文件中醒目顯示文字:

    查詢為「insulin」。
    圖 1. 在 DocumentReference 掃描的文件中比對醒目顯示項目。

使用 REST API 進行搜尋時,您必須使用 matchHighlightingCondition 欄位,在搜尋要求中啟用比對醒目標。回應中包含 match_highlighting 欄位,可用於在搜尋應用程式中顯示醒目顯示的文字:

  • 對於 Composition 和 DiagnosticReport 文件,match_highlighting 欄位會包含必須醒目顯示的符記的起始和結束索引。
  • 對於 DocumentReference 文件,match_highlighting 欄位包含標示文字的邊界框座座標。定界框由兩組標準化座標表示,其原點位於文件的左上角。這個欄位也會巢狀 page_number 欄位,如果是圖片,就會設為 0,如果是 PDF 檔案的第一頁,則會設為 1

使用 Google Cloud 控制台預覽搜尋結果時,系統會預設啟用相符項目醒目顯示功能。

事前準備

搜尋前,請先執行下列操作:

您可以使用關鍵字搜尋醫療照護資料儲存庫。舉例來說,您可以使用「a1c」、「insulin」或「ulcer」等關鍵字搜尋,取得相關的 FHIR 資源。

下圖顯示關鍵字為「lipid」時的搜尋結果。這個範例不含摘要或生成式 AI 回覆。

查詢為「lipid」。
圖 2. 使用關鍵字搜尋。

如要使用關鍵字搜尋,請完成下列步驟。

控制台

  1. 前往 Google Cloud 控制台的「AI Applications」頁面。

    AI 應用程式

  2. 選取要查詢的醫療保健搜尋應用程式。

  3. 在導覽選單中,按一下「Preview」

  4. 在「病患 ID」欄位中,輸入要查詢資料的病患 ID。病患 ID 須區分大小寫。

  5. 按下 Enter 鍵或點選「預覽」,即可提交病人 ID。

  6. 在「搜尋這裡」搜尋列中輸入關鍵字。

    如果已啟用自動完成功能,當您輸入內容時,搜尋列下方就會顯示自動完成建議清單。

  7. 按下 Enter 鍵提交查詢。

    • 搜尋結果會以分頁表格顯示,並根據 FHIR 資源類型分類。
    • 根據預設,所有 FHIR 資源類型的搜尋結果會以逆時排序方式顯示。
  8. (選用步驟) 如要篩選結果,請選取搜尋列下方的一個或多個 FHIR 資源類別。

  9. (選用步驟) 如要依據文章、DocumentReference 和 DiagnosticReport 資源的相關性排序結果,請按一下「排序:倒轉時間順序」篩選器,然後從清單中選取「相關性」。詳情請參閱「排序醫療保健搜尋結果」。

REST

以下範例說明如何在醫療保健搜尋應用程式中,使用關鍵字搜尋單一病患的 FHIR R4 資料。這個範例使用 servingConfigs.search 方法。

根據預設,搜尋結果會以逆時順序傳回。搜尋 Composition、DiagnosticReport 和 DocumentReference 資源時,您可以依據相關性排序搜尋結果。詳情請參閱「排序醫療保健搜尋結果」。

  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": "patientId: ANY(\"PATIENT_ID\")",
    "contentSearchSpec":{"snippetSpec":{"returnSnippet":true}}
    "displaySpec": {
        "matchHighlightingCondition": "MATCH_HIGHLIGHTING_CONDITION"
      }
    }'
    

    更改下列內容:

    • PROJECT_ID: Google Cloud 專案的 ID。
    • APP_ID:您要查詢的 Vertex AI Search 應用程式 ID。
    • KEYWORD_QUERY:您要在篩選後的病患臨床資料中搜尋的關鍵字,例如「糖尿病」或「a1c」。
    • PATIENT_ID:您要搜尋資料的病患資源 ID。
    • MATCH_HIGHLIGHTING_CONDITION:字串,可包含下列值:
      • MATCH_HIGHLIGHTING_DISABLED:關閉所有文件的配對高亮顯示功能。
      • MATCH_HIGHLIGHTING_ENABLED:為所有文件開啟比對高亮顯示功能。如果您將這個欄位留空或未指定,系統會將相符項目醒目顯示設為 MATCH_HIGHLIGHTING_DISABLED,並在所有文件中關閉這項功能。

您可以使用 Vertex AI Search 取得複雜自然語言查詢的結果。舉例來說,下圖顯示自然語言查詢「與糖尿病相關的實驗室檢驗結果」的結果。

查詢為「What are the patient's lipid labs?」。
圖 4. 使用自然語言查詢進行搜尋。

如要使用自然語言查詢搜尋,請完成下列步驟。

控制台

  1. 前往 Google Cloud 控制台的「AI Applications」頁面。

    AI 應用程式

  2. 選取要查詢的醫療保健搜尋應用程式。

  3. 在導覽選單中,按一下「Preview」

  4. 在「病患 ID」欄位中,輸入要查詢資料的病患 ID。病患 ID 須區分大小寫。

  5. 按下 Enter 鍵或點選「預覽」,即可提交病人 ID。

  6. 在「Search here」(在這裡搜尋) 搜尋列中輸入自然語言查詢,例如「與糖尿病相關的實驗室檢驗結果」。

    如果已啟用自動完成功能,當您輸入內容時,搜尋列下方就會顯示自動完成建議清單。

  7. 按下 Enter 鍵提交查詢。

    • 搜尋結果會以分頁表格顯示,並根據 FHIR 資源類型分類。
    • 根據預設,系統會以逆時排序的方式顯示所有 FHIR 資源類型的搜尋結果。
  8. (選用步驟) 選取搜尋列下方的一個或多個 FHIR 資源類別,即可篩選結果。

  9. (選用步驟) 如要依據文章、DocumentReference 和 DiagnosticReport 資源的相關性排序結果,請按一下「排序:倒轉時間順序」篩選器,然後從清單中選取「相關性」。詳情請參閱「排序醫療保健搜尋結果」。

REST

以下範例說明如何使用自然語言查詢,在醫療照護搜尋應用程式中搜尋單一病患的 FHIR R4 資料。這個範例使用 servingConfigs.search 方法。如要使用自然語言查詢進行搜尋,您必須在要求主體中新增 naturalLanguageQueryUnderstandingSpec 欄位。

根據預設,搜尋結果會以逆時順序傳回。搜尋 Composition、DiagnosticReport 和 DocumentReference 資源時,您可以依據相關性排序搜尋結果。詳情請參閱「排序醫療保健搜尋結果」。

  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": "NATURAL_LANGUAGE_QUERY",
    "filter": "patientId: ANY(\"PATIENT_ID\")",
    "contentSearchSpec":{"snippetSpec":{"returnSnippet":true}},
    "naturalLanguageQueryUnderstandingSpec":{"filterExtractionCondition":"ENABLED"},
    "displaySpec": {
        "matchHighlightingCondition": "MATCH_HIGHLIGHTING_CONDITION"
      }
    }'
    

    更改下列內容:

    • PROJECT_ID: Google Cloud 專案的 ID。
    • APP_ID:您要查詢的 Vertex AI Search 應用程式 ID。
    • NATURAL_LANGUAGE_QUERY:自然語言查詢,例如「與糖尿病相關的實驗室檢驗結果」或「病患目前是否服用任何藥物」。
    • PATIENT_ID:您要搜尋資料的病患資源 ID。
    • MATCH_HIGHLIGHTING_CONDITION:字串,可包含下列值:
      • MATCH_HIGHLIGHTING_DISABLED:關閉所有文件的配對高亮顯示功能。
      • MATCH_HIGHLIGHTING_ENABLED:為所有文件開啟比對高亮顯示功能。如果您將這個欄位留空或未指定,系統會將相符項目醒目顯示設為 MATCH_HIGHLIGHTING_DISABLED,並在所有文件中關閉這項功能。

使用自然語言查詢,搭配生成式 AI 答案進行搜尋

使用自然語言查詢搜尋病患的 FHIR 資料時,您可以選擇在搜尋結果中取得生成式 AI 解答。答案會匯總搜尋結果,並顯示用於產生答案的參考資料。

使用控制台時,您可以選取大型語言模型 (LLM) 來產生 AI 回覆。詳情請參閱「設定醫療保健資料的搜尋結果」。

使用 REST API 時,您可以指定下列任一 LLM 模型,在 version 欄位中提供生成式 AI 答案:

  • gemini-1.5-flash-001/answer_gen/v1stable:以 gemini-1.5-flash-001 模型為基礎的穩定、一般可用的模型。詳情請參閱「正式發布 (GA) 模型」一文。

  • gemini-1.5-pro-002preview:以 gemini-1.5-pro 模型為基礎的預覽模型。

下圖為自然語言查詢與生成式 AI 答案的範例。搜尋摘要會根據相關結果的發現內容,為查詢提供答案。您可以展開含有引文的區隔,查看用於產生所選區隔的參考資料。並非所有系統產生的答案都有出處註解。

查詢為「What are the patient's lipid labs?」。搜尋結果會以表格格式顯示。搜尋結果會附上由生成式 AI 產生的摘要,內容為「患者沒有已知的過敏症狀態」(The patient has no known allergies)。
圖 3. 使用自然語言查詢,並透過生成式 AI 提供答案。

如要使用生成式 AI 答案搜尋,請按照下列步驟操作:

控制台

  1. 前往 Google Cloud 控制台的「AI Applications」頁面。

    AI 應用程式

  2. 選取要查詢的醫療保健搜尋應用程式。

  3. 在導覽選單中,按一下「Configurations」(設定)

  4. 自訂搜尋小工具:

    1. 在「搜尋類型」欄位中,選取「搜尋答案」
    2. 選取要用來產生摘要的模型。詳情請參閱「設定醫療照護資料的搜尋結果
    3. 儲存並發布偏好設定。
  5. 在導覽選單中,按一下「Preview」

  6. 在「病患 ID」欄位中,輸入要查詢資料的病患 ID。病患 ID 須區分大小寫。

  7. 按下 Enter 鍵或點選「預覽」,即可提交病人 ID。

  8. 在「在這裡搜尋」搜尋列中輸入自然語言查詢,例如「nsaids」、「病患的血脂肪檢驗結果為何?」或「最近的 A1C 結果為何?」。

    如果已啟用自動完成功能,當您輸入內容時,搜尋列下方就會顯示自動完成建議清單。

  9. 按下 Enter 鍵提交查詢。

    • 生成式 AI 答案會顯示在搜尋列下方。
    • 搜尋結果會以分頁表格顯示,並根據 FHIR 資源類型分類。
    • 根據預設,系統會以逆時排序的方式顯示所有 FHIR 資源類型的搜尋結果。
  10. (選用步驟) 展開含有引文的答案片段,即可查看搜尋結果中的參考資料。

  11. (選用步驟) 選取搜尋列下方的一個或多個 FHIR 資源類別,即可篩選結果。

  12. (選用步驟) 如要依據文章、DocumentReference 和 DiagnosticReport 資源的相關性排序結果,請按一下「排序:倒轉時間順序」篩選器,然後從清單中選取「相關性」。詳情請參閱「排序醫療保健搜尋結果」。

REST

以下範例說明如何在醫療照護搜尋應用程式中,使用自然語言查詢搭配生成式 AI 答案,搜尋單一病患的 FHIR R4 資料。這個範例使用 servingConfigs.search 方法。

  • 如要使用自然語言查詢進行搜尋,您必須在要求主體中新增 naturalLanguageQueryUnderstandingSpec 欄位。
  • 如要納入內嵌引文索引,您必須新增 includeCitations 欄位。這是布林值欄位,預設值為 false

根據預設,搜尋結果會以逆時順序傳回。搜尋 Composition、DiagnosticReport 和 DocumentReference 資源時,您可以依據相關性排序搜尋結果。詳情請參閱「排序醫療保健搜尋結果」。

  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": "QUERY",
            "filter": "patientId: ANY(\"PATIENT_ID\")",
            "contentSearchSpec": {
              "snippetSpec": {
                "returnSnippet": true
              },
              "displaySpec": {
                  "matchHighlightingCondition": "MATCH_HIGHLIGHTING_CONDITION"
              }
              "summarySpec": {
                "summaryResultCount": 1,
                "includeCitations": true,
                "modelSpec": {
                  "version": "MODEL_VERSION"
                }
              }
            },
            "naturalLanguageQueryUnderstandingSpec": {
              "filterExtractionCondition": "ENABLED"
            }
      }'
    

    更改下列內容:

    • PROJECT_ID: Google Cloud 專案的 ID。
    • APP_ID:您要查詢的 Vertex AI Search 應用程式 ID。
    • QUERY:自然語言查詢,例如「nsaids」、「患者的血脂肪檢驗結果為何」或「最近的 A1C 結果為何」。如果查詢包含單引號 ',您必須將其替換為單引號的數字字符參照:'
    • PATIENT_ID:您要搜尋資料的病患資源 ID。
    • MODEL_VERSION:您要用來產生答案的模型版本。
    • MATCH_HIGHLIGHTING_CONDITION:字串,可包含下列值:
      • MATCH_HIGHLIGHTING_DISABLED:關閉所有文件的配對高亮顯示功能。
      • MATCH_HIGHLIGHTING_ENABLED:為所有文件開啟比對高亮顯示功能。如果您將這個欄位留空或未指定,系統會將相符項目醒目顯示設為 MATCH_HIGHLIGHTING_DISABLED,並在所有文件中關閉這項功能。