כשמבצעים שאילתות על נתונים של שירותי בריאות, אפשר להשתמש במסננים כדי לדייק את התשובות לחיפוש. בבקשת חיפוש, אפשר לספק מסננים כדי לאכוף קריטריונים שכוללים או מחריגים תשובות חיפוש מסוימות.
לדוגמה, כשמחפשים נתונים של מטופל אחד, גוף בקשת החיפוש צריך להכיל את ביטוי הסינון הבא שמציין את מזהה המטופל:
"filter": "patient_id: ANY(\"PATIENT_ID\")"
בדף הזה מוסבר איך מגדירים מסננים לחיפוש בתחום הבריאות.
לפני שמתחילים
לפני שמתחילים, צריך לבצע את הפעולות הבאות:
- יוצרים אפליקציה לחיפוש נתונים בתחום הבריאות ומאגר נתונים לחיפוש בתחום הבריאות, ומייבאים נתוני FHIR R4. מידע נוסף מופיע במאמרים יצירת אפליקציה לחיפוש מידע בתחום הבריאות ויצירת מאגר נתונים לחיפוש מידע בתחום הבריאות.
- מעיינים ברשימת משאבי FHIR R4 שחיפוש מבוסס סוכנים תומך בהם כשדות שאפשר להוסיף לאינדקס, לחפש ולאחזר. מידע נוסף זמין במאמר הפניה לסכימת נתונים של FHIR R4 בתחום הבריאות.
- הסבר על התחביר של ביטוי הסינון
הגדרת מסננים
המסננים מצוינים בשדה filter בגוף הבקשה של השיטה servingConfigs.search.
הגדרת המסנן מתבצעת לפי תחביר ביטוי הסינון.
בביטוי המסנן, המחרוזת יכולה להיות כל שדה שאפשר להוסיף לאינדקס מהתגובה לשאילתת החיפוש. לדוגמה, אם התשובה מכילה משאב Observation, אפשר להשתמש ב-patient_id שאליו מפנה משאב ה-Observation כמסנן מילולי.
בקטעים הבאים מוצגות כמה דוגמאות לאופן שבו אפשר ליצור מסננים.
הגדרת מסנן resource_datetime
בדוגמה הזו מוסבר איך לציין מסנן לחיפוש שכולל רק את המשאבים שבהם הערך של resource_datetime מאוחר יותר מהתאריך ומהשעה שצוינו.
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}}
}'
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט ב- Google Cloud . -
DATA_STORE_ID: המזהה של מאגר הנתונים של חיפוש מבוסס סוכנים. -
QUERY: שאילתת החיפוש. -
PATIENT_ID: מזהה המשאב של המטופל שאת הנתונים שלו רוצים לחפש. -
DATE_TIME_VALUE: הערך של השדהresource_datetimeשמייצג תאריך ושעה בפורמט dateTime של FHIR. דוגמאות לערכים בשדה הזה:- כדי לציין תאריך ושעה עם אזור זמן שמופרדים באמצעות המפריד
T:2022-08-05T01:00:00+00:00 - כדי לציין תאריך:
2022-08-05 - כדי לציין חודש:
2022-08 - כדי לציין שנה:
2022
- כדי לציין תאריך ושעה עם אזור זמן שמופרדים באמצעות המפריד
הגדרת מסנן של סוג משאב
בדוגמה הבאה מוצג אופן הבנייה של מסנן שמשתמש באופרטור AND כדי לסנן קודם את כל משאבי ה-Composition, ואז לסנן את אלה שהתאריך שלהם מאוחר יותר מתאריך ושעה שצוינו.
"filter": "resource_type: ANY("Composition") AND Composition.date > "2022-08-05T01:00:00+00:00""הגדרת מסנן משאבי FHIR
אתם יכולים להשתמש במסנן כדי לבדוק אם משאב FHIR קיים במאגר הנתונים של חיפוש מבוסס סוכנים. לדוגמה, אפשר לחפש משאב DocumentReference עם המזהה 6112d1ac-c6bd-4755-d689-bfb71d59afc5 באמצעות המסנן הבא.
"filter": "DocumentReference.id: ANY(\"6112d1ac-c6bd-4755-d689-bfb71d59afc5\")"