Quando esegui query sui dati sanitari, puoi utilizzare i filtri per perfezionare le risposte di ricerca. In una richiesta di ricerca, puoi fornire filtri per applicare criteri che includono o escludono determinate risposte di ricerca.
Ad esempio, quando esegui una ricerca nei 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 sanitaria e un datastore di ricerca sanitaria e importa i dati FHIR R4. Per ulteriori informazioni, consulta Creare un'app di ricerca sanitaria e Creare un datastore per la ricerca sanitaria.
- Esamina l'elenco delle risorse FHIR R4 supportate da Vertex AI Search come campi indicizzabili, disponibili per la ricerca e recuperabili. Per ulteriori informazioni, consulta la documentazione di riferimento dello schema di dati FHIR R4 per la salute.
- Comprendi la sintassi delle espressioni 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 del filtro, il valore letterale può essere qualsiasi campo indicizzato 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 includa solo le risorse con un valore resource_datetime
successivo alla data e all'ora specificate.
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 progetto Google Cloud.DATA_STORE_ID
: l'ID dello datastore di 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 tipo di risorsa
L'esempio seguente mostra come creare un filtro che utilizza un operatore AND
per filtrare prima tutte le risorse di composizione e poi quelle la cui
data è successiva a una data e a un'ora specificate.
"filter": "resource_type: ANY("Composition") AND Composition.date > "2022-08-05T01:00:00+00:00""
Definire un filtro delle 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'ID6112d1ac-c6bd-4755-d689-bfb71d59afc5
utilizzando il seguente filtro.
"filter": "DocumentReference.id: ANY(\"6112d1ac-c6bd-4755-d689-bfb71d59afc5\")"