התראות Pub/Sub של FHIR

בדף הזה מוסבר איך להשתמש ב-Pub/Sub כדי לקבל התראות כשמתרחש אירוע קליני במאגר FHIR.

אפשר להשתמש בהתראות Pub/Sub למגוון תרחישי שימוש, כולל הפעלה של עיבוד או ניתוח במורד הזרם של נתונים חדשים. לדוגמה, מודל של למידת מכונה יכול לקבל התראות כשנתונים חדשים זמינים לאימון, וליצור תובנות או תחזיות כדי לשפר את הטיפול בחולים.

סקירה כללית

אתם יכולים לקבל התראות Pub/Sub כשמשאב FHIR נוצר, מעודכן, מתוקן או נמחק במאגר FHIR. ‫Cloud Healthcare API לא שולח התראות כשמייבאים משאב FHIR מ-Cloud Storage.

כדי לקבל התראות, צריך ליצור נושא Pub/Sub ומינוי, ואז להגדיר את מאגר ה-FHIR לשליחת התראות לנושא.

בתרשים הבא אפשר לראות איך נוצרות הודעות Pub/Sub ומועברות כשמשאב FHIR נוצר במאגר FHIR באמצעות השיטה fhir.create. השלבים זהים כשמעדכנים, מתקנים או מוחקים משאב FHIR.

התראות Pub/Sub של FHIR.

איור 1. שימוש בהתראות Pub/Sub לשינויים במאגר FHIR.

איור 1 מציג את השלבים הבאים:

  1. מתקשר שולח בקשת fhirStores.fhir.create ליצירת משאב FHIR.
  2. מאגר ה-FHIR מקבל את הבקשה, יוצר הודעת Pub/Sub ושולח אותה לנושא Pub/Sub שהוגדר במאגר ה-FHIR.
  3. ‫Pub/Sub מעביר את ההודעה למינויים שמצורפים לנושא.
  4. המנויים מקבלים התראה מהמינוי שלהם, בצורה של הודעת Pub/Sub. כל מינוי יכול לכלול מנוי אחד או יותר כדי להגדיל את רמת המקביליות.

הגדרת התראות

אפשר להגדיר התראות ב-Pub/Sub ואת ההתנהגות שלהן באובייקט FhirNotificationConfig בחנות FHIR. כל מאגר FHIR יכול להכיל כמה FhirNotificationConfig configured.

בטבלה הבאה מתוארים השדות באובייקט FhirNotificationConfig.

שדה תיאור דוגמה
pubsubTopic נושא Pub/Sub לצירוף למאגר FHIR. ההתראות נשלחות לנושא שצוין. projects/my-project/topics/my-topic
sendFullResource האם לכלול בהתראה את התוכן המלא של משאב FHIR שנוצר, עודכן או תוקן. לשדה הזה אין השפעה על ההתראות שנשלחות כשמשאבי FHIR נמחקים. כדי לכלול את כל התוכן של משאב שנמחק, מגדירים את sendPreviousResourceOnDelete ל-true. true
sendPreviousResourceOnDelete האם לכלול בהתראה את התוכן המלא של משאב FHIR שנמחק. לשדה הזה אין השפעה על ההתראות שנשלחות כשמשאבי FHIR נוצרים, מתעדכנים או מתוקנים. true

פורמט ותוכן ההתראות

כל התראה ב-Pub/Sub מכילה אובייקט message עם מידע על האירוע הקליני. אובייקט message נראה כך:

{
  "message": {
    "attributes": {
      "action": "ACTION",
      "lastUpdatedTime": "RFC_1123_FORMAT_DATETIME",
      "payloadType": "PAYLOAD_TYPE",
      "resourceType": "FHIR_RESOURCE_TYPE",
      "storeName": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID",
      "versionId": "VERSION_ID"
    },
    "data": "BASE_64_ENCODED_DATA",
    "messageId": "MESSAGE_ID",
    "publishTime": "YYYY-MM-DDTHH:MM:SS+ZZ:ZZ"
  }
}

מידע על שדות נוספים שכלולים בכל הודעת Pub/Sub זמין במאמרים ReceivedMessage וPubsubMessage.

בטבלה הבאה מתואר כל שדה באובייקט attributes:

מאפיין תיאור דוגמה
action הפעולה שהתרחשה במשאב FHIR. הערכים האפשריים כוללים:
  • CreateResource
  • PatchResource
  • UpdateResource
  • DeleteResource
CreateResource
resourceType סוג משאב ה-FHIR ששונה. הערכים האפשריים כוללים כל סוג משאב FHIR נתמך ב-Cloud Healthcare API. Patient
payloadType סוג המטען הייעודי (Payload) של ההודעה, אחד מהערכים NameOnly או FullResource. FullResource
storeName השם המלא של משאב מאגר FHIR שבו התרחשה הפעולה. projects/my-project/locations/us/datasets/my-dataset/fhirStores/my-fhir-store
lastUpdatedTime חותמת זמן של הפעם האחרונה שבה בוצע שינוי במשאב FHIR. חותמת הזמן היא בפורמט RFC 1123. Mon, 01 Jan 2020 00:00:00 UTC
versionId המזהה של הגרסה האחרונה של משאב ה-FHIR שבו התרחשה הפעולה. מידע נוסף על מזהי גרסאות זמין במאמר הצגת רשימת גרסאות של משאבי FHIR. MTY4MzA2MDQzOTI5NjIxMDAwMA

בטבלה הבאה מפורטים השדות שנותרו באובייקט message:

שדה תיאור דוגמה
data מחרוזת בקידוד Base64 של שם משאב FHIR או של תוכן משאב FHIR, בהתאם לערכים שצוינו ב-FhirNotificationConfig.
messageId מזהה של הודעת Pub/Sub.
publishTime השעה שבה השרת של Pub/Sub פרסם את ההודעה.

איך מציינים את המידע שרוצים לכלול בהתראות

ההתראות ב-Pub/Sub, כפי שמפורט במאמר פורמט ותוכן של התראות, כוללות קבוצה סטנדרטית של שדות. בכל הודעה אפשר לכלול את משאב ה-FHIR המלא או רק את השם שלו. שם המשאב מכיל את הנתיב המלא למשאב ואת מזהה המשאב בפורמט הבא:

projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/RESOURCE_TYPE/RESOURCE_ID

פרטי משאב FHIR מאוחסנים בשדה data כמחרוזת בקידוד Base64.

אם כוללים את התוכן המלא של משאב FHIR, לא צריך לבצע שאילתות נפרדות ב-Pub/Sub וב-Cloud Healthcare API כדי לקבל את פרטי המשאב.

אחזור שם משאב FHIR

כדי לכלול רק את השם של משאב FHIR כשיוצרים, מעדכנים או מתקנים את המשאב, מגדירים את sendFullResource ל-false. כדי לכלול רק את השם כשמוחקים משאב FHIR, מגדירים את sendPreviousResourceOnDelete ל-false.

כשמציגים את ההתראה, אובייקט message נראה כך:

{
  "message": {
    "attributes": {
      "action": "{CreateResource|PatchResource|UpdateResource|DeleteResource}",
      "lastUpdatedTime": "RFC_1123_FORMAT_DATETIME",
      "payloadType": "NameOnly",
      "resourceType": "FHIR_RESOURCE_TYPE",
      "storeName": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID",
      "versionId": "VERSION_ID"
    },
    "data": "BASE64_ENCODED_FHIR_RESOURCE_NAME",
    "messageId": "MESSAGE_ID",
    "publishTime": "YYYY-MM-DDTHH:MM:SS+ZZ:ZZ"
  }
}

שימו לב לפרטים הבאים בהתראה:

  • השדה payloadType מוגדר ל-NameOnly כדי לציין את הפרטים הבאים לגבי הבקשה:

    • בפעולות יצירה, עדכון ותיקון, הערך של sendFullResource הוא false.
    • בפעולות מחיקה, הערך של sendPreviousResourceOnDelete הוא false.
  • רק שם משאב FHIR נכלל בשדה data. השם מקודד כמחרוזת בקידוד Base64.

קבלת תוכן של משאבי FHIR שנוצרו, עודכנו או תוקנו

כדי לכלול את כל התוכן של משאב FHIR כשיוצרים, מעדכנים או מתקנים את המשאב, מגדירים את sendFullResource לערך true.

ההתנהגות הזו לא מתרחשת אם מוחקים משאב FHIR. אם מוחקים משאב FHIR, וההגדרה של sendFullResource היא true אבל ההגדרה של sendPreviousResourceOnDelete היא false, ההתראה זהה להתראה שמתקבלת כשמאחזרים רק את שם משאב FHIR. כדי לכלול את התוכן של משאב FHIR כשמשאב FHIR נמחק, אפשר לעיין במאמר בנושא קבלת תוכן של משאב FHIR שנמחק.

כשמציגים את ההתראה, אובייקט message נראה כך:

{
  "message": {
    "attributes": {
      "action": "{CreateResource|PatchResource|UpdateResource}",
      "lastUpdatedTime": "RFC_1123_FORMAT_DATETIME",
      "payloadType": "FullResource",
      "resourceType": "FHIR_RESOURCE_TYPE",
      "storeName": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID",
      "versionId": "VERSION_ID"
    },
    "data": "BASE64_ENCODED_FHIR_RESOURCE_CONTENTS",
    "messageId": "MESSAGE_ID",
    "publishTime": "YYYY-MM-DDTHH:MM:SS+ZZ:ZZ"
  }
}

שימו לב לפרטים הבאים בהתראה:

  • הערך של payloadType מוגדר ל-FullResource כדי לציין שהערך של sendFullResource מוגדר ל-true. התוכן המלא של משאב FHIR כלול בשדה data כמחרוזת בקידוד Base64.
  • השדה data מכיל את תוכן משאב ה-FHIR כמחרוזת בקידוד Base64.

איך מקבלים את התוכן של משאב FHIR שנמחק

כדי לכלול את התוכן המלא של משאב FHIR כשמוחקים אותו, צריך להגדיר את sendPreviousResourceOnDelete ל-true.

כשמציגים את ההתראה, אובייקט message נראה כך:

{
  "message": {
    "attributes": {
      "action": "DeleteResource",
      "lastUpdatedTime": "RFC_1123_FORMAT_DATETIME",
      "payloadType": "FullResource",
      "resourceType": "FHIR_RESOURCE_TYPE",
      "storeName": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID",
      "versionId": "VERSION_ID"
    },
    "data": "BASE64_ENCODED_FHIR_RESOURCE_CONTENTS",
    "messageId": "MESSAGE_ID",
    "publishTime": "YYYY-MM-DDTHH:MM:SS+ZZ:ZZ"
  }
}

שימו לב לערכים בשדות הבאים:

  • הערך של payloadType הוא FullResource גם אם הערך של sendFullResource הוא false.

    התוכן המלא של משאב FHIR כלול בשדה data כמחרוזת בקידוד Base64.

  • השדה data מכיל את התוכן של משאב FHIR כמחרוזת בקידוד base64 לפני שהמשאב נמחק.

הגדרה של התראות FHIR וצפייה בהן

בדוגמאות הבאות מוסבר איך לראות את ההתראה שנוצרה ב-Pub/Sub כשנוצר משאב FHIR בחנות FHIR.

לפני שמתחילים

לפני שמגדירים ומשתמשים בהתראות Pub/Sub, צריך להשלים את הקטעים הבאים:

בדיקת מכסות Pub/Sub

מומלץ לעיין במכסות ובמגבלות של Pub/Sub. במאמרי העזרה בנושא מכסות ב-Cloud מוסבר איך צופים במכסות, איך מבקשים להגדיל את ערכי המכסות ומה קורה כשמגיעים למכסה המקסימלית.

הפעלת Pub/Sub API

במסוף Google Cloud , מפעילים את Pub/Sub API:

להפעלת ה-API

הגדרת הרשאות Pub/Sub

כדי לאפשר פרסום הודעות מ-Cloud Healthcare API ב-Pub/Sub, צריך להוסיף את התפקיד pubsub.publisher לחשבון השירות של סוכן השירות של Cloud Healthcare בפרויקט. במאמר הרשאות Pub/Sub למאגרי DICOM,‏ FHIR ו-HL7v2 מוסבר איך להוסיף את התפקיד הנדרש.

יוצרים נושא Pub/Sub

כדי ליצור נושא, אפשר לעיין במאמר בנושא יצירת נושא.

לכל מאגר נתונים יכול להיות נושא Pub/Sub משלו, או שכמה מאגרי נתונים יכולים לשתף את אותו נושא.

כשמציינים את נושא ה-Pub/Sub, צריך להשתמש בפורמט הבא:

projects/PROJECT_ID/topics/TOPIC_NAME

PROJECT_ID הוא מזהה הפרויקט שלכם ב- Google Cloud ו-TOPIC_NAME הוא השם של נושא ה-Pub/Sub.

יצירת מינוי ל-Pub/Sub

כדי לקבל הודעות שפורסמו בנושא, צריך ליצור מינוי ל-Pub/Sub. לכל נושא Pub/Sub צריך להיות לפחות מינוי Pub/Sub אחד. ההרשמה מקשרת את הנושא לאפליקציה רשומה שמקבלת ומעבדת הודעות שפורסמו בנושא.

כדי ליצור מינוי ולצרף אותו לנושא Pub/Sub, אפשר לעיין במאמר בנושא יצירת מינויים.

יצירה או עריכה של מאגר FHIR

יוצרים או עורכים מאגר FHIR עם אובייקט FhirNotificationConfig מוגדר.

בדוגמאות הבאות אפשר לראות איך עורכים מאגר FHIR קיים. השדות sendFullResource ו-sendPreviousResourceOnDelete מוגדרים לערך true, כלומר ההתראות מכילות את התוכן המלא של משאב FHIR כשמשאב נוצר, מעודכן, מתוקן או נמחק.

REST

כדי לערוך את מאגר FHIR, משתמשים בשיטה projects.locations.datasets.fhirStores.patch.

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • PROJECT_ID: מזהה הפרויקט ב- Google Cloud
  • LOCATION: המיקום של מערך הנתונים
  • DATASET_ID: מערך הנתונים ברמת ההורה של מאגר FHIR
  • FHIR_STORE_ID: מזהה מאגר ה-FHIR
  • PUBSUB_TOPIC_ID: מזהה נושא ה-Pub/Sub

תוכן בקשת JSON:

{
  "notificationConfigs": [
    {
      "pubsubTopic": "projects/PROJECT_ID/topics/PUBSUB_TOPIC_ID",
      "sendFullResource": true,
      "sendPreviousResourceOnDelete": true
    }
  ]
}

כדי לשלוח את הבקשה עליכם לבחור אחת מהאפשרויות הבאות:

curl

שומרים את גוף הבקשה בקובץ בשם request.json. כדי ליצור או להחליף את הקובץ הזה בספרייה הנוכחית, מריצים את הפקודה הבאה בטרמינל:

cat > request.json << 'EOF'
{
  "notificationConfigs": [
    {
      "pubsubTopic": "projects/PROJECT_ID/topics/PUBSUB_TOPIC_ID",
      "sendFullResource": true,
      "sendPreviousResourceOnDelete": true
    }
  ]
}
EOF

לאחר מכן מבצעים את הפקודה הבאה כדי לשלוח את בקשת ה-REST:

curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID?updateMask=notificationConfigs"

PowerShell

שומרים את גוף הבקשה בקובץ בשם request.json. כדי ליצור או להחליף את הקובץ הזה בספרייה הנוכחית, מריצים את הפקודה הבאה בטרמינל:

@'
{
  "notificationConfigs": [
    {
      "pubsubTopic": "projects/PROJECT_ID/topics/PUBSUB_TOPIC_ID",
      "sendFullResource": true,
      "sendPreviousResourceOnDelete": true
    }
  ]
}
'@  | Out-File -FilePath request.json -Encoding utf8

לאחר מכן מבצעים את הפקודה הבאה כדי לשלוח את בקשת ה-REST:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID?updateMask=notificationConfigs" | Select-Object -Expand Content

אתם אמורים לקבל תגובת JSON שדומה לזו:

יצירת משאב FHIR

יוצרים משאב FHIR בחנות FHIR. הבקשה גורמת ל-Cloud Healthcare API לפרסם הודעה בנושא Pub/Sub שהוגדר.

הצגת ההתראה ב-Pub/Sub

צפייה בהודעה שפורסמה בנושא ב-Pub/Sub. ההודעה הבאה נוצרה כשמשאב של מטופל נוצר במאגר FHIR.

בפלט לדוגמה, התוכן של משאב FHIR הוא מחרוזת בקידוד base64 בשדה data. כדי לקבל את התוכן, צריך לפענח את הערך בקידוד base64. לרוב הפלטפורמות ומערכות ההפעלה יש כלים לפענוח טקסט בקידוד base64.

REST

כדי לראות את ההודעה שפורסמה בנושא Pub/Sub, משתמשים בשיטה projects.subscriptions.pull. בדוגמה הבאה נעשה שימוש בפרמטר השאילתה ?maxMessages=10 כדי לציין את המספר המקסימלי של ההודעות שיוחזרו בבקשה. אפשר לשנות את הערך בהתאם לצרכים שלכם.

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • PROJECT_ID: מזהה הפרויקט ב- Google Cloud
  • PUBSUB_SUBSCRIPTION_ID: המזהה של המינוי שמצורף לנושא ה-Pub/Sub שהוגדר במאגר ה-FHIR

כדי לשלוח את הבקשה אתם צריכים לבחור אחת מהאפשרויות הבאות:

curl

מריצים את הפקודה הבאה:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d "" \
"https://pubsub.googleapis.com/v1/projects/PROJECT_ID/subscriptions/PUBSUB_SUBSCRIPTION_ID:pull?maxMessages=10"

PowerShell

מריצים את הפקודה הבאה:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-Uri "https://pubsub.googleapis.com/v1/projects/PROJECT_ID/subscriptions/PUBSUB_SUBSCRIPTION_ID:pull?maxMessages=10" | Select-Object -Expand Content

אתם אמורים לקבל תגובת JSON שדומה לזו:

gcloud

כדי לראות את ההודעה שפורסמה בנושא Pub/Sub, מריצים את הפקודה gcloud pubsub subscriptions pull.

בדוגמה נעשה שימוש בדגלים הבאים של Google Cloud CLI:

  • --format=json: מעבד את הפלט כ-JSON.
  • --auto-ack: אישור אוטומטי של כל הודעה שנשלפת.

לפני השימוש בנתוני הפקודה הבאים, צריך להחליף את הנתונים הבאים:

  • PROJECT_ID: מזהה הפרויקט ב- Google Cloud
  • PUBSUB_SUBSCRIPTION_ID: המזהה של המינוי שמצורף לנושא ה-Pub/Sub שהוגדר במאגר ה-FHIR

מריצים את הפקודה הבאה:

‫Linux,‏ macOS או Cloud Shell

gcloud pubsub subscriptions pull \
    projects/PROJECT_ID/subscriptions/PUBSUB_SUBSCRIPTION_ID \
    --auto-ack \
    --format=json

‏Windows (PowerShell)

gcloud pubsub subscriptions pull `
    projects/PROJECT_ID/subscriptions/PUBSUB_SUBSCRIPTION_ID `
    --auto-ack `
    --format=json

Windows‏ (cmd.exe)

gcloud pubsub subscriptions pull ^
    projects/PROJECT_ID/subscriptions/PUBSUB_SUBSCRIPTION_ID ^
    --auto-ack ^
    --format=json

אמורים לקבל תגובה שדומה לזו:

[
  {
    "ackId": "RFAGFixdRkhRNxkIaFEOT14jPzUgKEUaAggUBXx9cEFLdVhUcGhRDRlyfWB9bQ5GAgpGWixfURsHaE5tdR",
    "ackStatus": "SUCCESS",
    "message": {
      "attributes": {
        "action": "CreateResource",
        "lastUpdatedTime": "Mon, 01 Jan 2020 00:00:00 UTC",
        "payloadType": "FullResource",
        "resourceType": "Patient",
        "storeName": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID",
        "versionId": "MTY4MzA2MDQzOTI5NjIxMDAwMA"
      },
      "data": "wogICJiaXJ0aERhdGUiOiAiMTk3MC0wMS0wMSIsCiAgImdlbmRlciI6ICJmZW1hbGUiLAogICJpZCI6ICIyYmMwODg4Yi00MGRmLTQwYzctOWRhYi0wMzc4YTFiZWE0MGIiLAogICJtZXRhIjogewogICAgImxhc3RVcGRhdGVkIjogIjIwMjMtMDUtMDJUMjA6NDc6MTkuMjk2MjEwKzAwOjAwIiwKICAgICJ2ZXJzaW9uSWQiOiAiTVRZNE16QTJNRFF6T1RJNU5qSXhNREF3TUEiCiAgfSwKICAibmFtZSI6IFsKICAgIHsKICAgICAgImZhbWlseSI6ICJTbWl0aCIsCiAgICAgICJnaXZlbiI6IFsKICAgICAgICAiRGFyY3kiCiAgICAgIF0sCiAgICAgICJ1c2UiOiAib2ZmaWNpYWwiCiAgICB9CiAgXSwKICAicmVzb3VyY2VUeXBlIjogIlBhdGllbnQiCn0=",
      "messageId": "7586159156345265",
      "publishTime": "YYYY-MM-DDTHH:MM:SS+ZZ:ZZ"
    }
  }
]

התנהגות המערכת כשמשאב FHIR גדול מדי או כשיש עומס תנועה גבוה

אם הגודל של משאב FHIR גדול מדי, או אם יש עומס תנועה גבוה בשרתים של Cloud Healthcare API, יכול להיות שהשדה attributes יכיל רק את שם המשאב במקום את התוכן המלא של המשאב. ההתנהגות הזו מתרחשת גם אם ההגדרות sendFullResource ו-sendPreviousResourceOnDelete מוגדרות לערך true.

כדי לוודא שהתראת Pub/Sub מכילה את משאב ה-FHIR המלא, צריך לבדוק את השדה payloadType בתגובה מהצגת ההתראה. אם הערך payloadType מוגדר כ-nameOnly, המשמעות היא שהשדה attributes לא אוכלס באופן מלא בנתוני משאב FHIR. לאחר מכן, צריך לאחזר את התוכן של משאב FHIR באופן ידני מחנות FHIR במקום מההודעה ב-Pub/Sub.

מדיניות אחסון ההודעות של 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.

צפייה בהתראות FHIR באמצעות ההגדרה NotificationConfig (התכונה הזו הוצאה משימוש)

המשאב FhirStore מכיל אובייקט NotificationConfig שבו אפשר לציין נושא ב-Pub/Sub. השינויים במשאבי FHIR תמיד מכילים את המזהה הבא בשדה data של הודעת Pub/Sub:

projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/RESOURCE_TYPE/RESOURCE_ID

הקבוצה הבאה של צמדי מפתח/ערך תמיד נכללת בשדה attributes של ההודעה:

שם המאפיין ערכים אפשריים דוגמה תיאור
action
  • CreateResource
  • PatchResource
  • UpdateResource
  • DeleteResource
CreateResource סוג האירוע שהתרחש.
resourceType כל סוג של משאב FHIR. Patient סוג המשאב ששונה.

המאמרים הבאים