Ottenere risultati di ricerca per i dati sanitari

Dopo aver importato i dati FHIR R4 nell'app di ricerca sanitaria, puoi eseguire query sui dati importati per ottenere risultati pertinenti. Puoi eseguire ricerche utilizzando i seguenti tipi di query:

  • Query con parole chiave
  • Query in linguaggio naturale
  • Query in linguaggio naturale con una risposta di AI generativa

Inoltre, puoi filtrare la ricerca utilizzando query filtrate per data. Per maggiori informazioni, vedi Definire un filtro resource_datetime.

Quando esegui una ricerca nella console Google Cloud , devi prima fornire un ID paziente e cercare i dati di un singolo paziente alla volta. Quando esegui una ricerca utilizzando l'API REST, puoi cercare nell'intero datastore.

Questa pagina mostra come cercare dati sanitari utilizzando i vari tipi di query.

Uso previsto di Vertex AI Search per la ricerca di dati sanitari

L'utilizzo previsto di Vertex AI Search non è quello di fornire informazioni relative alla prevenzione, alla diagnosi o al trattamento di malattie. Il prodotto non è destinato a rispondere a domande relative a diagnosi o consigli di trattamento. L'uso previsto di questo prodotto è recuperare e riassumere le informazioni mediche esistenti fornite dagli utenti.

A causa dei dati di test limitati, questo prodotto potrebbe essere applicabile o meno ai gruppi di età 0-18 e 85 e superiori. Pertanto, durante la revisione dell'output generato, i clienti devono considerare la rappresentatività delle sottopopolazioni all'interno dei dati di origine.

Di seguito sono riportati alcuni esempi di come è previsto l'utilizzo di questo prodotto:

  • Query esplorative per trovare le informazioni di un paziente pertinenti a un argomento:

    • "Riassumi gli usi dell'aspirina"
    • "pressione sanguigna"
    • "trattamento del diabete?"
  • Query di navigazione per trovare risorse specifiche che potrebbero essere mappate a una query strutturata:

    • "Show me the most recent a1c" (fammi vedere l'ultimo valore di emoglobina glicata)
  • Domande e risposte estrattive per rispondere a domande specifiche in cui le prove potrebbero essere distribuite tra le risorse:

    • "Questo paziente è mai stato trattato con una cefalosporina?"
    • "Il paziente si è mai sottoposto a una valutazione psichiatrica?"

Di seguito sono riportati alcuni esempi di come non è previsto l'utilizzo di questo prodotto:

  • Consigli per la diagnosi e il trattamento:

    • "Qual è la diagnosi differenziale per questo paziente?"
    • "Quali farmaci devo prescrivere al paziente?"

Linee guida per le query

Le seguenti linee guida possono aiutarti a formulare una query che possa fornirti risultati di ricerca migliori:

  • Cerca query con un intento specifico: poiché il modello non sa cosa stai cercando, è meglio fornire una query mirata piuttosto che una vaga. Ad esempio, la ricerca della parola chiave "ipertensione" è preferibile alla ricerca della parola chiave "riepilogo". Mentre la query "ipertensione" restituisce risultati specifici da documenti pertinenti, la query "riepilogo" può restituire risultati da documenti non pertinenti.

  • Preserva il contesto: poiché la ricerca non è conversazionale, è meglio fornire il contesto completo per ogni query. Ad esempio, se la tua query iniziale è "ipertensione" e vuoi approfondire lo stesso argomento, allora "quando è stata diagnosticata l'ipertensione" è una seconda query migliore di "quando è stata diagnosticata la malattia".

  • Semplifica la query: se possibile, suddividi le query complesse in query più semplici. Ad esempio, anziché cercare "creatinina e albumina", crea query diverse per "creatinina", "albumina" e "rapporto creatinina albumina", a seconda del tuo obiettivo.

  • Evita di chiedere inferenze: la ricerca fornisce risultati più precisi quando il modello può restituire informazioni testuali dai documenti in cui esegue la ricerca, anziché calcolare o dedurre dalle informazioni cercate. Ad esempio, invece di eseguire una query su "di quanto è cambiato il peso del paziente", puoi eseguire una query su "elenca il peso del paziente nelle ultime 10 visite" e poi calcolare la variazione di peso separatamente.

Evidenziazione delle corrispondenze nei risultati

L'evidenziazione delle corrispondenze è una configurazione che evidenzia le parti di testo in un risultato di ricerca che corrispondono in modo contestuale alla query di ricerca.

I risultati dei seguenti tipi di risorse supportano l'evidenziazione delle corrispondenze:

  • Composizione: evidenzia il testo contestuale del campo Composition.section[].text.div.
  • DiagnosticReport: evidenzia il testo contestuale del campo DiagnosticReport.conclusion.
  • DocumentReference: evidenzia il testo contestuale dei documenti a cui viene fatto riferimento nel campo DocumentReference.content[0].attachment.url. Il testo evidenziato è racchiuso in un riquadro di delimitazione. Il riquadro di delimitazione è rappresentato da due insiemi di coordinate normalizzate nella risposta di ricerca. I documenti che supportano l'evidenziazione delle corrispondenze sono i file PDF e i file immagine con tipi supportati. L'immagine seguente mostra come viene evidenziato il testo in un documento scansionato dal tipo di risorsa DocumentReference:

    La query è "insulina".
    Figura 1. Evidenziazione delle corrispondenze in un documento DocumentReference scansionato.

Quando esegui una ricerca utilizzando l'API REST, devi attivare l'evidenziazione delle corrispondenze nella richiesta di ricerca utilizzando il campo matchHighlightingCondition. La risposta contiene il campo match_highlighting, che puoi utilizzare per visualizzare il testo evidenziato nell'applicazione di ricerca:

  • Per i documenti Composition e DiagnosticReport, il campo match_highlighting contiene gli indici di inizio e fine del token da evidenziare.
  • Per i documenti DocumentReference, il campo match_highlighting contiene le coordinate del riquadro di delimitazione che evidenzia il testo. Il riquadro di delimitazione è rappresentato da due insiemi di coordinate normalizzate con origine nell'angolo in alto a sinistra del documento. Questo campo include anche il campo page_number, impostato su 0 per le immagini e su 1 per la prima pagina dei file PDF.

Quando visualizzi l'anteprima dei risultati di ricerca utilizzando la Google Cloud console, l'evidenziazione delle corrispondenze è attiva per impostazione predefinita.

Prima di iniziare

Prima di iniziare la ricerca:

Puoi cercare nel tuo datastore dei dati sanitari utilizzando una parola chiave. Ad esempio, puoi eseguire ricerche utilizzando parole chiave come "a1c", "insulina" o "ulcera" per ottenere risorse FHIR pertinenti.

L'immagine seguente mostra i risultati di ricerca quando la parola chiave è "lipidi". Questo esempio non include un riepilogo o una risposta dell'AI generativa.

La query è "lipidi".
Figura 2. Cerca utilizzando una parola chiave.

Per eseguire una ricerca utilizzando una parola chiave, completa i seguenti passaggi.

Console

  1. Nella Google Cloud console, vai alla pagina AI Applications.

    Applicazioni di AI

  2. Seleziona l'app di ricerca sanitaria che vuoi interrogare.

  3. Nel menu di navigazione, fai clic su Anteprima.

  4. Nel campo ID paziente, inserisci l'ID del paziente di cui vuoi interrogare i dati. Gli ID paziente sono sensibili alle maiuscole.

  5. Premi Invio o fai clic su Anteprima per inviare l'ID paziente.

  6. Nella barra di ricerca Cerca qui, digita una parola chiave da cercare.

    Se hai attivato il completamento automatico, vedrai un elenco di suggerimenti di completamento automatico sotto la barra di ricerca mentre digiti.

  7. Premi Invio per inviare la query.

    • I risultati di ricerca vengono visualizzati in tabelle paginate classificate in base al tipo di risorsa FHIR.
    • Per impostazione predefinita, i risultati di ricerca per tutti i tipi di risorse FHIR vengono visualizzati in ordine cronologico inverso.
  8. Facoltativo. Per filtrare i risultati, seleziona una o più categorie di risorse FHIR sotto la barra di ricerca.

  9. Facoltativo. Per ordinare i risultati in base alla pertinenza per le risorse Composition, DocumentReference e DiagnosticReport, fai clic sul filtro Ordina: cronologico inverso e seleziona Pertinenza dall'elenco. Per saperne di più, consulta Ordinare i risultati di ricerca relativi alla sanità.

REST

L'esempio riportato di seguito mostra come cercare i dati FHIR R4 di un singolo paziente nell'app di ricerca sanitaria utilizzando una parola chiave. Questo esempio utilizza il metodo servingConfigs.search.

Per impostazione predefinita, i risultati di ricerca vengono restituiti in ordine cronologico inverso. Quando esegui ricerche nelle risorse Composition, DiagnosticReport e DocumentReference, puoi ordinare i risultati di ricerca in base alla pertinenza. Per saperne di più, consulta Ordinare i risultati di ricerca relativi all'assistenza sanitaria.

  1. Cercare utilizzando una parola chiave.

    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"
      }
    }'
    

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID del tuo Google Cloud progetto.
    • APP_ID: l'ID dell'app Vertex AI Search per cui vuoi eseguire query.
    • KEYWORD_QUERY: la parola chiave che vuoi cercare nei dati clinici del paziente filtrato, ad esempio "diabete" o "a1c".
    • PATIENT_ID: l'ID risorsa del paziente di cui vuoi cercare i dati.
    • MATCH_HIGHLIGHTING_CONDITION: una stringa che può avere i seguenti valori:
      • MATCH_HIGHLIGHTING_DISABLED: disattiva l'evidenziazione delle corrispondenze in tutti i documenti.
      • MATCH_HIGHLIGHTING_ENABLED: attiva l'evidenziazione delle corrispondenze in tutti i documenti. Se lasci questo campo vuoto o non lo specifichi, l'evidenziazione delle corrispondenze viene impostata su MATCH_HIGHLIGHTING_DISABLED e disattivata in tutti i documenti.

Utilizzando Vertex AI Search, puoi ottenere risultati per query complesse in linguaggio naturale. Ad esempio, l'immagine seguente mostra i risultati per la query in linguaggio naturale: "Risultati di laboratorio relativi al diabete".

La query è "Quali sono i valori di laboratorio dei lipidi del paziente?".
Figura 4. Esegui ricerche utilizzando query in linguaggio naturale.

Per eseguire una ricerca utilizzando una query in linguaggio naturale, completa i seguenti passaggi.

Console

  1. Nella Google Cloud console, vai alla pagina AI Applications.

    Applicazioni di AI

  2. Seleziona l'app di ricerca sanitaria che vuoi interrogare.

  3. Nel menu di navigazione, fai clic su Anteprima.

  4. Nel campo ID paziente, inserisci l'ID paziente del paziente di cui vuoi eseguire una query sui dati. Gli ID paziente sono sensibili alle maiuscole.

  5. Premi Invio o fai clic su Anteprima per inviare l'ID paziente.

  6. Nella barra di ricerca Cerca qui, inserisci una query in linguaggio naturale, ad esempio "Risultati di laboratorio relativi al diabete".

    Se hai attivato il completamento automatico, vedrai un elenco di suggerimenti di completamento automatico sotto la barra di ricerca mentre digiti.

  7. Premi Invio per inviare la query.

    • I risultati di ricerca vengono visualizzati in tabelle paginate classificate in base al tipo di risorsa FHIR.
    • Per impostazione predefinita, i risultati di ricerca per tutti i tipi di risorse FHIR vengono visualizzati in ordine cronologico inverso.
  8. Facoltativo. Seleziona una o più categorie di risorse FHIR sotto la barra di ricerca per filtrare i risultati.

  9. Facoltativo. Per ordinare i risultati in base alla pertinenza per le risorse Composition, DocumentReference e DiagnosticReport, fai clic sul filtro Ordina: cronologico inverso e seleziona Pertinenza dall'elenco. Per saperne di più, consulta Ordinare i risultati di ricerca relativi alla sanità.

REST

L'esempio seguente mostra come cercare i dati FHIR R4 di un singolo paziente nell'app di ricerca sanitaria utilizzando una query in linguaggio naturale. Questo esempio utilizza il metodo servingConfigs.search. Per eseguire una ricerca utilizzando una query in linguaggio naturale, devi aggiungere il campo naturalLanguageQueryUnderstandingSpec al corpo della richiesta.

Per impostazione predefinita, i risultati di ricerca vengono restituiti in ordine cronologico inverso. Quando esegui ricerche nelle risorse Composition, DiagnosticReport e DocumentReference, puoi ordinare i risultati di ricerca in base alla pertinenza. Per saperne di più, consulta Ordinare i risultati di ricerca relativi all'assistenza sanitaria.

  1. Pubblica una query in linguaggio naturale.

    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"
      }
    }'
    

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID del tuo Google Cloud progetto.
    • APP_ID: l'ID dell'app Vertex AI Search per cui vuoi eseguire query.
    • NATURAL_LANGUAGE_QUERY: la query in linguaggio naturale, ad esempio "Risultati di laboratorio relativi al diabete" o "Il paziente sta attualmente assumendo farmaci?".
    • PATIENT_ID: l'ID risorsa del paziente di cui vuoi cercare i dati.
    • MATCH_HIGHLIGHTING_CONDITION: una stringa che può avere i seguenti valori:
      • MATCH_HIGHLIGHTING_DISABLED: disattiva l'evidenziazione delle corrispondenze in tutti i documenti.
      • MATCH_HIGHLIGHTING_ENABLED: attiva l'evidenziazione delle corrispondenze in tutti i documenti. Se lasci questo campo vuoto o non lo specifichi, l'evidenziazione delle corrispondenze viene impostata su MATCH_HIGHLIGHTING_DISABLED e disattivata in tutti i documenti.

Eseguire ricerche utilizzando query in linguaggio naturale con risposta basata sull'AI generativa

Quando cerchi i dati FHIR di un paziente utilizzando una query in linguaggio naturale, puoi scegliere di ricevere una risposta di AI generativa insieme ai risultati di ricerca. La risposta riepiloga i risultati di ricerca e mostra anche le referenze utilizzate per generare la risposta.

Quando utilizzi la console, puoi selezionare il modello linguistico di grandi dimensioni (LLM) per le risposte dell'AI generativa. Per saperne di più, consulta Configurare i risultati di ricerca per i dati sanitari.

Quando utilizzi l'API REST, puoi specificare uno dei seguenti modelli LLM per ricevere risposte dell'AI generativa nel campo version:

  • gemini-1.5-flash-001/answer_gen/v1 o stable: un modello stabile e generalmente disponibile basato sul modello gemini-1.5-flash-001. Per maggiori informazioni, consulta la sezione Modelli disponibili pubblicamente.

  • gemini-1.5-pro-002 o preview: un modello di anteprima basato sul modello gemini-1.5-pro.

L'immagine seguente mostra un esempio di query in linguaggio naturale con risposta dell'AI generativa. Il riepilogo della ricerca fornisce una risposta alla query riassumendo i risultati pertinenti. Puoi espandere i segmenti che hanno citazioni per visualizzare i riferimenti utilizzati per generare il segmento selezionato. Non tutte le risposte generate hanno citazioni.

La query è "Quali sono i
laboratori di lipidi del paziente?". I risultati di ricerca vengono visualizzati in formato tabellare . I risultati
della ricerca sono accompagnati da un riepilogo generato dall'AI generativa che riporta la citazione Il paziente non ha
allergie note.
Figura 3. Esegui ricerche utilizzando query in linguaggio naturale con risposta dell'AI generativa.

Per eseguire una ricerca con la risposta dell'AI generativa:

Console

  1. Nella Google Cloud console, vai alla pagina AI Applications.

    Applicazioni di AI

  2. Seleziona l'app di ricerca sanitaria che vuoi interrogare.

  3. Nel menu di navigazione, fai clic su Configurazioni.

  4. Personalizza il widget di ricerca:

    1. Nel campo Tipo di ricerca, seleziona Cerca con una risposta.
    2. Seleziona il modello che vuoi utilizzare per generare il riepilogo. Per saperne di più, consulta Configurare i risultati di ricerca per i dati sanitari.
    3. Salva e pubblica le tue preferenze.
  5. Nel menu di navigazione, fai clic su Anteprima.

  6. Nel campo ID paziente, inserisci l'ID paziente del paziente di cui vuoi eseguire una query sui dati. Gli ID paziente sono sensibili alle maiuscole.

  7. Premi Invio o fai clic su Anteprima per inviare l'ID paziente.

  8. Nella barra di ricerca Cerca qui, inserisci una query in linguaggio naturale, ad esempio "FANS", "Quali sono i valori di laboratorio dei lipidi del paziente" o "Qual è il risultato A1C più recente".

    Se hai attivato il completamento automatico, vedrai un elenco di suggerimenti di completamento automatico sotto la barra di ricerca mentre digiti.

  9. Premi Invio per inviare la query.

    • La risposta dell'AI generativa viene visualizzata sotto la barra di ricerca.
    • I risultati di ricerca vengono visualizzati in tabelle paginate classificate in base al tipo di risorsa FHIR.
    • Per impostazione predefinita, i risultati di ricerca per tutti i tipi di risorse FHIR vengono visualizzati in ordine cronologico inverso.
  10. Facoltativo. Espandi un segmento della risposta che contiene citazioni per visualizzare i riferimenti dai risultati di ricerca.

  11. Facoltativo. Seleziona una o più categorie di risorse FHIR sotto la barra di ricerca per filtrare i risultati.

  12. Facoltativo. Per ordinare i risultati in base alla pertinenza per le risorse Composition, DocumentReference e DiagnosticReport, fai clic sul filtro Ordina: cronologico inverso e seleziona Pertinenza dall'elenco. Per saperne di più, consulta Ordinare i risultati di ricerca relativi alla sanità.

REST

L'esempio seguente mostra come cercare i dati FHIR R4 di un singolo paziente nell'app di ricerca sanitaria utilizzando una query in linguaggio naturale con risposte di AI generativa. Questo esempio utilizza il metodo servingConfigs.search.

  • Per eseguire una ricerca utilizzando una query in linguaggio naturale, devi aggiungere il campo naturalLanguageQueryUnderstandingSpec al corpo della richiesta.
  • Per includere gli indici delle citazioni in linea, devi aggiungere il campo includeCitations. Questo è un campo booleano con il valore predefinito impostato su false.

Per impostazione predefinita, i risultati di ricerca vengono restituiti in ordine cronologico inverso. Quando esegui ricerche nelle risorse Composition, DiagnosticReport e DocumentReference, puoi ordinare i risultati di ricerca in base alla pertinenza. Per saperne di più, consulta Ordinare i risultati di ricerca relativi all'assistenza sanitaria.

  1. Pubblica una query in linguaggio naturale.

    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"
            }
      }'
    

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID del tuo Google Cloud progetto.
    • APP_ID: l'ID dell'app Vertex AI Search per cui vuoi eseguire query.
    • QUERY: la query in linguaggio naturale, ad esempio "nsaids", "Quali sono i risultati di laboratorio dei lipidi dei pazienti" o "Qual è il risultato A1C più recente". Se la query include un apostrofo ', devi sostituirlo con il riferimento al carattere numerico dell'apostrofo: '.
    • PATIENT_ID: l'ID risorsa del paziente di cui vuoi cercare i dati.
    • MODEL_VERSION: la versione del modello che vuoi utilizzare per generare la risposta.
    • MATCH_HIGHLIGHTING_CONDITION: una stringa che può avere i seguenti valori:
      • MATCH_HIGHLIGHTING_DISABLED: disattiva l'evidenziazione delle corrispondenze in tutti i documenti.
      • MATCH_HIGHLIGHTING_ENABLED: attiva l'evidenziazione delle corrispondenze in tutti i documenti. Se lasci questo campo vuoto o non lo specifichi, l'evidenziazione delle corrispondenze viene impostata su MATCH_HIGHLIGHTING_DISABLED e disattivata in tutti i documenti.