Wenn Sie Gesundheitsdaten abfragen, können Sie Filter verwenden, um Ihre Suchantworten zu verfeinern. In einer Suchanfrage können Sie Filter angeben, um Kriterien zu erzwingen, die bestimmte Suchantworten ein- oder ausschließen.
"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 Suchanwendung für das Gesundheitswesen und einen Datenspeicher für die Suche im Gesundheitswesen und importieren Sie FHIR R4-Daten. Weitere Informationen finden Sie unter Suchanwendung für das Gesundheitswesen erstellen und Datenspeicher für die Suche im Gesundheitswesen erstellen.
- Sehen Sie sich die Liste der FHIR R4-Ressourcen an, die von Agent 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.
- Machen Sie sich mit der Syntax von Filterausdrücken vertraut.
Filter definieren
Filter werden im filter Feld im Anfragetext der
servingConfigs.search Methode angegeben.
Die Filterdefinition folgt der Syntax von Filterausdrücken.
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 die Beobachtungsressource verweist, 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 enthält, deren Wert für resource_datetime 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: die ID Ihres Google Cloud Projekts in.DATA_STORE_ID: die ID des Agent Search-Datenspeichers.QUERY: die Suchanfrage.PATIENT_ID: die Ressourcen-ID des Patienten, dessen Daten Sie durchsuchen möchten.DATE_TIME_VALUE: der Wert desresource_datetimeFelds, der ein Datum und eine Uhrzeit im FHIR-dateTime-Format darstellt. Beispiele für dieses Feld:- Datum und Uhrzeit mit Zeitzone, getrennt durch ein
T:2022-08-05T01:00:00+00:00 - Datum:
2022-08-05 - Monat:
2022-08 - Jahr:
2022
- Datum und Uhrzeit mit Zeitzone, getrennt durch ein
Ressourcentypfilter definieren
Im folgenden Beispiel wird gezeigt, wie Sie einen Filter erstellen, der mit einem AND-Operator zuerst alle Kompositionsressourcen filtert und dann diejenigen, 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 Agent 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\")"