אתם יכולים להשתמש ב-Pub/Sub כדי לקבל התראות כשמתרחשים אירועים קליניים במאגרי נתונים של Cloud Healthcare API. ההתראות האלה מודיעות לכם על המקרים הבאים:
- מופע DICOM מאוחסן במאגר DICOM באמצעות השיטה
dicomStores.dicomWeb.studies.storeInstancesאו מיובא מ-Cloud Storage באמצעותdicomStores.notificationConfig. - מופע DICOM מאוחסן, מיובא, מעודכן או נמחק בחנות DICOM באמצעות
dicomStores.notificationConfigs. - משאב FHIR נוצר, מעודכן או נמחק במאגר FHIR. עם זאת, לא נשלחות התראות כשמבצעים ייבוא מ-Cloud Storage של משאב FHIR.
- הודעה של HL7v2 מוטמעת או נוצרת במאגר של HL7v2 בפעם הראשונה. הודעות כפולות לא יפעילו התראה.
כשמתרחש אחד מהאירועים האלה, Cloud Healthcare API מפרסם הודעה במשאב Pub/Sub שנקרא נושא. אחרי שההודעות מתקבלות בנושא ה-Pub/Sub, אפליקציות רשומות לנושא יכולות לקבל את ההודעה המשויכת.
במקרה של DICOM ו-HL7v2, ההודעות האלה לא מכילות מידע אישי. הם כוללים רק את הנתונים הבאים:
- הפרויקט שלגביו נוצרה ההודעה
- מזהה ההודעה
- בהודעות HL7v2, סוג ההודעה HL7v2
הודעות FHIR Pub/Sub יכולות להכיל מידע אישי. מידע נוסף זמין במאמר התראות FHIR שמכילות נתוני משאבי FHIR.
סקירה כללית על שימוש בהתראות Pub/Sub עם Cloud Healthcare API זמינה במאמר התראות Pub/Sub.
לפני שמתחילים
בדיקת המכסות של Pub/Sub
לפני שמגדירים התראות Pub/Sub, כדאי לעיין במכסות ומגבלות של Pub/Sub. במאמרי העזרה בנושא מכסות ב-Cloud מוסבר איך צופים במכסות, איך מבקשים להגדיל את ערכי המכסות ומה קורה כשמגיעים למכסה המקסימלית.
הפעלת Pub/Sub API
כדי להפעיל את Pub/Sub API, לוחצים על הלחצן הבא:
הגדרת הרשאות Pub/Sub
כדי לאפשר פרסום הודעות מ-Cloud Healthcare API ב-Pub/Sub, צריך להוסיף את התפקיד pubsub.publisher לחשבון השירות של סוכן השירות של Cloud Healthcare בפרויקט.
במאמר הרשאות Pub/Sub למאגרי DICOM, FHIR ו-HL7v2 מוסבר איך להוסיף את התפקיד הנדרש.
יוצרים נושא Pub/Sub
לכל מאגר נתונים שרוצים לקבל לגביו התראות, צריך להגדיר נושא Pub/Sub. לכל מאגר נתונים יכול להיות נושא Pub/Sub משלו, או שכמה מאגרי נתונים יכולים לשתף את אותו נושא. אפשר ליצור נושא באמצעות מסוף Google Cloud או Google Cloud CLI.
כשיוצרים נושא או מפנים לנושא בהגדרות של מאגר נתונים, צריך להשתמש ב-URI מוסמך בפורמט הבא:
projects/PROJECT_ID/topics/TOPIC_NAME
כאשר PROJECT_ID הוא מזהה הפרויקט Google Cloud שלכם ו- TOPIC_NAME הוא שם הנושא.
כדי ליצור נושא:
המסוף
נכנסים לדף Topics של Pub/Sub במסוף Google Cloud .
לוחצים על יצירת נושא.
מזינים שם לנושא עם ה-URI:
projects/PROJECT_ID/topics/TOPIC_NAMEכאשר PROJECT_ID הוא מזהה Google Cloud הפרויקט.
לוחצים על יצירה.
gcloud
כדי ליצור נושא, מריצים את הפקודה gcloud pubsub topics create:
gcloud pubsub topics create projects/PROJECT_ID/topics/TOPIC_NAME
אם הבקשה מבוצעת בהצלחה, הפקודה תחזיר את הפלט הבא:
Created topic [projects/PROJECT_ID/topics/TOPIC_NAME].
יצירת מינוי ל-Pub/Sub
כדי לקבל הודעות שפורסמו בנושא, צריך ליצור מינוי ל-Pub/Sub. לכל נושא Pub/Sub צריך להיות לפחות מינוי Pub/Sub אחד.
ההרשמה מקשרת את הנושא לאפליקציה רשומה שמקבלת ומעבדת הודעות שפורסמו בנושא.
אפשר להגדיר את המינויים לשימוש במודל push או במודל pull.
אפשר להגדיר מינויים לסינון הודעות על סמך המאפיינים שלהן. כאן מוסבר איך מסננים הודעות ממינוי.
כדי ליצור מינוי, מבצעים את השלבים הבאים:
המסוף
נכנסים לדף Topics של Pub/Sub במסוף Google Cloud .
לוחצים על הנושא של הפרויקט.
לוחצים על יצירת מינוי.
מזינים שם למינוי:
projects/PROJECT_ID/subscriptions/SUBSCRIPTION_NAMEמשאירים את ההגדרה סוג הצגת מודעות כשליפה.
לוחצים על יצירה.
gcloud
כדי ליצור נושא, מריצים את הפקודה gcloud pubsub subscriptions create:
gcloud pubsub subscriptions create SUBSCRIPTION_NAME --topic=TOPIC_NAME
אם הבקשה מבוצעת בהצלחה, הפקודה תחזיר את הפלט הבא:
Created subscription [projects/PROJECT_ID/subscriptions/TOPIC_NAME].
הצגת התראות על מקרים של DICOM שנשמרו
מידע על שימוש בהתראות Pub/Sub עם נתוני DICOM זמין במאמר בנושא התראות DICOM Pub/Sub.
הצגת התראות HL7v2
משאב Hl7V2Store
מכיל מערך notificationConfigs
שבו אפשר לציין נושאים ב-Pub/Sub וקריטריונים לסינון.
כשמטמיעים או יוצרים הודעה של HL7v2 במאגר HL7v2, Cloud Healthcare API מפרסם הודעה בנושאים של Pub/Sub שיש להם מסנן שתואם להודעה של HL7v2.
כדי לראות התראה על הודעת HL7v2 שהועברה, מבצעים את השלבים הבאים:
- יצירה או עריכה של חנות HL7v2 והגדרת נושא Pub/Sub.
- מוסיפים את התפקיד הנדרש
pubsub.publisherלחשבון השירות של הפרויקט. - הטמעה של הודעת HL7v2 במאגר HL7v2. הפעולה הזו מפעילה את Cloud Healthcare API לפרסום הודעה בנושא Pub/Sub שהוגדר.
כדי לראות את ההודעה שפורסמה בנושא ב-Pub/Sub, מריצים את הפקודה
gcloud pubsub subscriptions pull:gcloud pubsub subscriptions pull --auto-ack projects/PROJECT_ID/subscriptions/PUBSUB_SUBSCRIPTION
הפקודה מחזירה את הפלט הבא לגבי הודעת HL7v2 שהוטמעה:
┌--------------------------------------------------------------------------------------------------------------------|-----------------|---------------┐ | DATA | MESSAGE_ID | ATTRIBUTES | ├--------------------------------------------------------------------------------------------------------------------|-----------------|---------------| | projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/hl7V2Stores/HL7V2_STORE_ID/messages/HL7V2_MESSAGE_ID | 123456789012345 | msgType=TYPE | └--------------------------------------------------------------------------------------------------------------------|-----------------|---------------┘
מדיניות אחסון ההודעות של Cloud Healthcare API ו-Pub/Sub
כדי לוודא שהנתונים ב-Cloud Healthcare API והנתונים המשויכים בהודעות Pub/Sub נמצאים באותו אזור, צריך להגדיר מדיניות אחסון הודעות ב-Pub/Sub.
כדי לוודא שהנתונים יישארו באותו אזור, צריך להגדיר באופן מפורש את מדיניות אחסון ההודעות בנושא Pub/Sub שהוגדר במאגר הנתונים. לדוגמה, אם מערך הנתונים של Cloud Healthcare API וחנות FHIR נמצאים ב-us-central1, מדיניות אחסון ההודעות צריכה לאפשר רק את האזור us-central1.
הוראות להגדרת מדיניות אחסון הודעות זמינות במאמר הגדרת מדיניות אחסון הודעות.
פתרון בעיות שקשורות להודעות Pub/Sub שלא התקבלו
אם אי אפשר לפרסם התראה ב-Pub/Sub, השגיאה נרשמת ביומן של Cloud Logging. מידע נוסף זמין במאמר צפייה ביומני שגיאות ב-Cloud Logging.
אם קצב יצירת השגיאות חורג ממגבלה מסוימת, השגיאות שחורגות מהמגבלה לא נשלחות אל Cloud Logging.
המאמרים הבאים
מידע נוסף על הגדרה של נושא Pub/Sub זמין במאמרים הבאים: