Wenn Sie Gesundheitsdaten abfragen, können Sie Filter verwenden, um die Suchergebnisse einzugrenzen. In einer Suchanfrage können Sie Filter angeben, um Kriterien zu erzwingen, die bestimmte Suchantworten ein- oder ausschließen.
Wenn Sie beispielsweise die Daten eines einzelnen Patienten durchsuchen, muss der Anfragetext der Suchanfrage den folgenden Filterausdruck enthalten, der die Patienten-ID angibt:
"filter": "patient_id: ANY(\"PATIENT_ID\")"
Auf dieser Seite erfahren Sie, wie Sie Filter für die Suche im Gesundheitswesen definieren.
Hinweise
Führen Sie zuerst folgende Schritte aus:
- Erstellen Sie eine Anwendung 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 Gesundheitsdaten erstellen und Datenspeicher für die Suche nach Gesundheitsdaten erstellen.
- Sehen Sie sich die Liste der FHIR R4-Ressourcen an, die von Vertex AI Search als indexierbare, durchsuchbare und abrufbare Felder unterstützt werden. Weitere Informationen finden Sie in der Referenz zum FHIR R4-Datenschema für das Gesundheitswesen.
- 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 der Antwort auf die Suchanfrage sein. Wenn die Antwort beispielsweise eine Beobachtungsressource enthält, kann die patient_id
, auf die sich die Beobachtungsressource bezieht, als Filterliteral verwendet werden.
In den folgenden Abschnitten finden Sie einige Beispiele für die Erstellung von Filtern.
resource_datetime
-Filter definieren
In diesem Beispiel wird gezeigt, wie Sie einen Filter für eine Suche angeben, die nur Ressourcen mit einem resource_datetime
-Wert nach dem angegebenen Datums- und Zeitwert enthält.
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
: 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 durchsuchen möchten.DATE_TIME_VALUE
: Der Wert des Feldsresource_datetime
, das ein Datum und eine Uhrzeit im FHIR-Format dateTime darstellt. Hier einige Beispiele für dieses Feld:- So geben Sie ein Datum und eine Uhrzeit mit einer durch das Trennzeichen
T
getrennten Zeitzone an:2022-08-05T01:00:00+00:00
- So geben Sie ein Datum an:
2022-08-05
- So geben Sie einen Monat an:
2022-08
- So geben Sie ein Jahr an:
2022
- So geben Sie ein Datum und eine Uhrzeit mit einer durch das Trennzeichen
Filter für Ressourcentyp definieren
Im folgenden Beispiel wird gezeigt, wie Sie einen Filter erstellen, der mit dem Operator AND
zuerst alle Composition-Ressourcen und dann diejenigen filtert, 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
Mit einem Filter können Sie prüfen, ob eine FHIR-Ressource im Vertex AI Search-Datenspeicher vorhanden ist. Sie können beispielsweise mit dem folgenden Filter nach einer DocumentReference-Ressource mit der ID 6112d1ac-c6bd-4755-d689-bfb71d59afc5
suchen.
"filter": "DocumentReference.id: ANY(\"6112d1ac-c6bd-4755-d689-bfb71d59afc5\")"