Wenn Sie Gesundheitsdaten abfragen, können Sie die Suchergebnisse mithilfe von Filtern verfeinern. 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.
Hinweise
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.
- Hier finden Sie eine Liste der FHIR R4-Ressourcen, die von Vertex AI Search als indexierbare, suchbare und abrufbare Felder unterstützt werden. Weitere Informationen finden Sie in der Referenz für das FHIR R4-Datenschema für die Gesundheitsversorgung.
- Informationen zur 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 jedes indexierbare Feld aus der Antwort auf die Suchanfrage sein. Wenn die Antwort beispielsweise eine Beobachtungsressource enthält, kann die patient_id
, auf die die Beobachtungsressource verweist, als Filterliteral verwendet werden.
In den folgenden Abschnitten finden Sie einige Beispiele für die Filtererstellung.
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 Feldsresource_datetime
, das ein Datum und eine Uhrzeit im FHIR-Format dateTime darstellt. Beispiele für dieses Feld:- So geben Sie ein Datum und eine Uhrzeit mit einer Zeitzone an, die durch ein
T
-Trennzeichen getrennt sind: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 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 mit einem Filter prüfen, ob sich eine FHIR-Ressource im Vertex AI Search-Datenspeicher befindet. 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\")"