בדף הזה מוסבר איך לייצא הודעות HL7v2 אל Pub/Sub באמצעות השיטה projects.locations.datasets.hl7V2Stores.export.
אפשר לייצא הודעות HL7v2 ל-Pub/Sub לעיבוד בהמשך.
נניח שיש לכם פייפליין Dataflow שמבצע טרנספורמציה של הודעות HL7v2 כשמבצעים הטמעה של הודעות חדשות במאגר HL7v2. הצינור קורא ממינוי Pub/Sub וממתין להתראות על הודעות חדשות של HL7v2. כשמייבאים הודעות HL7v2 למאגר HL7v2 באמצעות השיטה hl7V2Stores.import, השיטה לא שולחת התראות Pub/Sub.
כדי להפעיל את צינור עיבוד הנתונים, מייבאים את ההודעות של HL7v2 ואז משתמשים בשיטה hl7v2Stores.export כדי לייצא אותן ל-Pub/Sub.
לפני שמתחילים
הפעלת Pub/Sub API
במסוף Google Cloud , מפעילים את Pub/Sub API:
הגדרת הרשאות Pub/Sub
כדי לייצא הודעות ממאגר HL7v2 ל-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.
ייצוא הודעות HL7v2 ל-Pub/Sub
curl
כדי לייצא הודעות HL7v2 ל-Pub/Sub, שולחים בקשת POST ומציינים את הפרטים הבאים:
- השם של קבוצת הנתונים הראשית
- השם של מאגר HL7v2
- נושא היעד ב-Pub/Sub
בדוגמה הבאה מוצגת בקשת POST באמצעות curl.
curl -X POST \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ --data "{ 'pubsubDestination': { 'pubsubTopic': 'projects/PROJECT_ID/topics/PUBSUB_TOPIC' } }" "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/hl7V2Stores/HL7V2_STORE_ID:export"
אם הבקשה מצליחה, השרת מחזיר את התגובה בפורמט JSON:
{
"name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"
}
התשובה מכילה שם פעולה. כדי לעקוב אחרי סטטוס הפעולה, אפשר להשתמש ב-method Operation get:
curl -X GET \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"
אם הבקשה מצליחה, השרת מחזיר תגובה עם סטטוס הפעולה בפורמט JSON:
{
"name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID",
"metadata": {
"@type": "type.googleapis.com/google.cloud.healthcare.v1.OperationMetadata",
"apiMethodName": "google.cloud.healthcare.v1.hl7v2.Hl7V2Service.ExportMessages",
"createTime": "CREATE_TIME",
"endTime": "END_TIME",
"counter": {
"success": "RESOURCE_COUNT"
}
},
"done": true,
"response": {
"@type": "type.googleapis.com/google.cloud.healthcare.v1.hl7v2.ExportMessagesResponse"
}
}
ייצוא קבוצת משנה של הודעות HL7v2 באמצעות מסנן
אפשר להשתמש בשדות הבאים בקריטריוני הסינון:
אפשר לציין את פרמטרי הסינון הבאים כקריטריוני הסינון בשדה filter. מידע על תחביר המסננים ועל יצירת שאילתות מופיע במאמר מחרוזות שאילתה.
-
message_type: מהשדה MSH.9.1. לדוגמה,NOT message_type = "ADT". -
send_date: התאריךYYYY-MM-DDשבו ההודעה נשלחה מהקטע MSH.7, שצוין באזור הזמן של מערך הנתונים. לדוגמה,send_date < "2017-01-02". -
send_time: חותמת הזמן שבה ההודעה נשלחה. הפרמטר הזה מגיע מהפלח MSH.7 של ההודעה. הפרמטר הזה משתמש בפורמט הזמן RFC 3339 להשוואות. לדוגמה,send_time < "2017-01-02T00:00:00-05:00". -
create_time: חותמת הזמן שבה ההודעה נוצרה ב-Cloud Healthcare API, בפורמט הזמן RFC 3339 לצורך השוואות. לדוגמה:create_time < "2017-01-02T00:00:00-05:00". -
send_facility: מרכז הטיפול שממנו נשלחה ההודעה, מהקטע MSH.4. לדוגמה,send_facility = "ABC".
בדוגמאות הבאות אפשר לראות איך לציין מסנן לייצוא רק של הודעות HL7v2 מהסוג ADT.
curl
curl -X POST \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ --data "{ 'pubsubDestination': { 'pubsubTopic': 'projects/PROJECT_ID/topics/PUBSUB_TOPIC' }, 'filter': 'message_type = \"ADT\"' }" "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/hl7V2Stores/HL7V2_STORE_ID:export"
הצגת הודעות HL7v2 שיוצאו ב-Pub/Sub
כדי לראות את ההודעות שיוצאו בפורמט HL7v2 ב-Pub/Sub, מריצים את הפקודה gcloud pubsub subscriptions pull. הפקודה משתמשת בדגל --format=json כדי להחזיר את הפלט כ-JSON במקום כ-YAML, שהוא ברירת המחדל.
gcloud pubsub subscriptions pull --auto-ack projects/PROJECT_ID/subscriptions/PUBSUB_SUBSCRIPTION \ --format=json
-
PROJECT_IDהוא מזהה הפרויקט שלכם. Google Cloud -
PUBSUB_SUBSCRIPTIONהוא המינוי שמצורף לנושא Pub/Sub שאליו ייצאתם הודעות HL7v2
הפלט שיתקבל:
[
{
"ackId": "ACK_ID",
"message": {
"attributes": {
"msgType": "TYPE"
},
"data": "DATA",
"messageId": "8076570784126536",
"publishTime": "YYYY-MM-DDTHH:MM:SS+ZZ:ZZ"
}
}
]