Quando esegui query sui dati sanitari, puoi utilizzare i filtri per perfezionare le risposte della ricerca. In una richiesta di ricerca, puoi fornire filtri per applicare criteri che includono o escludono determinate risposte di ricerca.
Ad esempio, quando cerchi i dati di un singolo paziente, il corpo della richiesta di ricerca deve contenere la seguente espressione di filtro che specifica l'ID paziente:
"filter": "patient_id: ANY(\"PATIENT_ID\")"
Questa pagina mostra come definire i filtri per la ricerca sanitaria.
Prima di iniziare
Prima di iniziare, segui questi passaggi:
- Crea un'app di ricerca dei dati sanitari e un datastore di ricerca dei dati sanitari e importa i dati FHIR R4. Per saperne di più, consulta Creare un'app di ricerca sanitaria e Creare un datastore di ricerca sanitaria.
- Esamina l'elenco delle risorse FHIR R4 supportate da Vertex AI Search come campi indicizzabili, ricercabili e recuperabili. Per ulteriori informazioni, consulta la documentazione di riferimento sullo schema dei dati FHIR R4 per il settore sanitario.
- Comprendere la sintassi dell'espressione di filtro.
Definire i filtri
I filtri vengono specificati nel campo filter
nel corpo della richiesta del metodo
servingConfigs.search
.
La definizione del filtro segue la sintassi delle espressioni di filtro.
Nell'espressione di filtro, il valore letterale può essere qualsiasi campo indicizzabile della
risposta alla query di ricerca. Ad esempio, se la risposta contiene una risorsa Observation, il patient_id
a cui fa riferimento la risorsa Observation può essere utilizzato come valore letterale del filtro.
Le sezioni seguenti mostrano alcuni esempi di come creare filtri.
Definisci un filtro resource_datetime
Questo esempio mostra come specificare un filtro per una ricerca che include solo
le risorse con un valore resource_datetime
successivo al valore di data
e ora specificato.
REST
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/dataStores/DATA_STORE_ID/servingConfigs/default_search:search" \ -d '{ "query": "QUERY", "filter": "patient_id: ANY(\"PATIENT_ID\") AND resource_datetime > \"DATE_TIME_VALUE, "contentSearchSpec":{"snippetSpec":{"returnSnippet":true}} }'
Sostituisci quanto segue:
PROJECT_ID
: l'ID del tuo Google Cloud progetto.DATA_STORE_ID
: l'ID del datastore Vertex AI Search.QUERY
: la query di ricerca.PATIENT_ID
: l'ID risorsa del paziente di cui vuoi cercare i dati.DATE_TIME_VALUE
: il valore del camporesource_datetime
che rappresenta una data e un'ora nel formato dateTime di FHIR. Ecco alcuni esempi di questo campo:- Per specificare una data e un'ora con un fuso orario separato da un separatore
T
:2022-08-05T01:00:00+00:00
- Per specificare una data:
2022-08-05
- Per specificare un mese:
2022-08
- Per specificare un anno:
2022
- Per specificare una data e un'ora con un fuso orario separato da un separatore
Definisci un filtro per il tipo di risorsa
L'esempio seguente mostra come creare un filtro che utilizza un operatore AND
per filtrare prima tutte le risorse Composition e poi quelle la cui
data è successiva a una data e un'ora specificate.
"filter": "resource_type: ANY("Composition") AND Composition.date > "2022-08-05T01:00:00+00:00""
Definisci un filtro per le risorse FHIR
Puoi utilizzare un filtro per verificare se una risorsa FHIR è presente nel datastore di Vertex AI Search. Ad esempio, puoi cercare una risorsa DocumentReference con l'ID 6112d1ac-c6bd-4755-d689-bfb71d59afc5
utilizzando il seguente filtro.
"filter": "DocumentReference.id: ANY(\"6112d1ac-c6bd-4755-d689-bfb71d59afc5\")"