Wenn Sie Gesundheitsdaten abfragen, können Sie die Suche mit Filtern eingrenzen Antworten. In einer Suchanfrage können Sie Filter angeben, um Kriterien durchzusetzen, die bestimmte Suchantworten ein- oder ausschließen.
Wenn Sie beispielsweise nach den Daten eines einzelnen Patienten suchen, muss der Suchanfragekörper den folgenden Filterausdruck enthalten, in dem die Patienten-ID angegeben ist:
"filter": "patient_id: ANY(\"PATIENT_ID\")"
Auf dieser Seite erfahren Sie, wie Sie Filter für die Suche im Gesundheitswesen definieren.
Hinweis
Führen Sie zuerst folgende Schritte aus:
- Erstellen Sie eine App zur Suche nach Gesundheitsdaten und einen Datenspeicher für die Suche nach Gesundheitsdaten und importieren Sie FHIR R4-Daten. Weitere Informationen finden Sie unter Such-App für die Gesundheitsbranche erstellen und Datenspeicher für die Gesundheitssuche erstellen.
- Liste der von Vertex AI Search unterstützten FHIR R4-Ressourcen ansehen als indexierbare, durchsuchbare und abrufbare Felder. Weitere Informationen finden Sie unter Healthcare-FHIR R4-Datenschemareferenz.
- Informieren Sie sich über die Syntax von Filterausdrücken.
Filter definieren
Filter werden im Feld filter
im Anfragetext der Methode servingConfigs.search
angegeben.
Die Filterdefinition folgt der Syntax für Filterausdrücke.
Im Filterausdruck kann das Literal ein beliebiges indexierbares Feld aus dem
Antwort auf die Suchanfrage. Wenn die Antwort beispielsweise eine Beobachtungsressource enthält,
Die patient_id
, auf die die Ressourcen vom Typ „Beobachtung“ verweisen können als Filter
literal.
In den folgenden Abschnitten finden Sie einige Beispiele zur Erstellung von Filtern.
resource_datetime
-Filter definieren
In diesem Beispiel wird gezeigt, wie Sie einen Filter für eine Suche angeben, der nur Ressourcen mit einem resource_datetime
-Wert enthält, der nach dem angegebenen Datum und der angegebenen Uhrzeit liegt.
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}} }'
Ersetzen Sie Folgendes:
PROJECT_ID
ist die ID Ihres Google Cloud-Projekts.DATA_STORE_ID
: die ID des Vertex AI Search-Datenspeichers.QUERY
: die Suchanfrage.PATIENT_ID
: die Ressourcen-ID des Patienten, dessen Daten Sie suchen möchten.DATE_TIME_VALUE
: der Wert des Feldresource_datetime
, das ein Datum und eine Uhrzeit darstellt im FHIR-Format dateTime. Hier einige Beispiele für dieses Feld:- So geben Sie ein Datum und eine Uhrzeit mit einer Zeitzone an, die durch ein
T
-Trennzeichen getrennt ist:2022-08-05T01:00:00+00:00
- So legen Sie ein Datum fest:
2022-08-05
- Monat angeben:
2022-08
- So geben Sie ein Jahr an:
2022
- So geben Sie ein Datum und eine Uhrzeit mit einer Zeitzone an, die durch ein
Ressourcentypfilter definieren
Im folgenden Beispiel wird gezeigt, wie ein Filter mit einem AND
-Operator erstellt wird, um zuerst alle Kompositionsressourcen und dann diejenigen zu filtern, deren Datum nach einem bestimmten Datum und einer bestimmten Uhrzeit liegt.
"filter": "resource_type: ANY("Composition") AND Composition.date > "2022-08-05T01:00:00+00:00""
FHIR-Ressourcenfilter definieren
Sie können einen Filter verwenden, um zu überprüfen, ob eine FHIR-Ressource im
Vertex AI Search-Datenspeicher. Mit dem folgenden Filter können Sie beispielsweise nach einer DocumentReference-Ressource mit der ID 6112d1ac-c6bd-4755-d689-bfb71d59afc5
suchen.
"filter": "DocumentReference.id: ANY(\"6112d1ac-c6bd-4755-d689-bfb71d59afc5\")"