בדף הזה מוסבר איך לייצא הודעות HL7v2 ממאגר HL7v2 אל Cloud Storage. אפשר לייצא הודעות HL7v2 בכמות גדולה ל-Cloud Storage לעיבוד בהמשך.
לפני שמתחילים
במאמר ייצוא הודעות HL7v2 מ-Cloud Storage מפורטים התפקידים שצריך להקצות לחשבון השירות Cloud Healthcare Service Agent.
ייצוא הודעות HL7v2 ל-Cloud Storage
Cloud Healthcare API מייצא כל הודעת HL7v2 כשורה בקובץ NDJSON .ndjson. ההודעות של HL7v2 מסודרות בסדר כרונולוגי לפי הערך של sendTime.
ייצוא לקטגוריה של Cloud Storage או לתיקייה, ולא לאובייקט, כי יכול להיות ש-Cloud Healthcare API ייצור כמה קובצי NDJSON אם יש הרבה הודעות HL7v2.
אם מייצאים לתיקייה ב-Cloud Storage שלא קיימת, התיקייה נוצרת.
המסוף
כדי לייצא הודעות HL7v2 ל-Cloud Storage:
נכנסים לדף Datasets במסוף Google Cloud .
לוחצים על מערך הנתונים שמכיל את החנות ב-HL7v2 שממנה מייצאים הודעות ב-HL7v2.
ברשימת מאגרי הנתונים, בוחרים באפשרות ייצוא מתוך רשימת הפעולות של מאגר HL7v2.
יופיע הדף Export HL7v2 messages (ייצוא הודעות HL7v2).
ברשימה Project, בוחרים פרויקט של Cloud Storage.
ברשימה מיקום, בוחרים קטגוריה של Cloud Storage.
לוחצים על ייצוא כדי לייצא מופעים של HL7v2 למיקום שהוגדר ב-Cloud Storage.
- כדי לעקוב אחרי סטטוס הפעולה, לוחצים על הכרטיסייה פעולות. אחרי שהפעולה מסתיימת, מופיעים הסימנים הבאים:
- בקטע Long-running operation status (סטטוס של פעולה ממושכת) מופיע סימן וי ירוק מתחת לכותרת OK.
- בקטע סקירה כללית מופיעים סימן וי ירוק והאינדיקטור OK באותה שורה של מזהה הפעולה.
ייצוא הודעות HL7v2 ל-Cloud Storage באמצעות מסננים
כברירת מחדל, ייצוא של הודעות HL7v2 אל Cloud Storage כולל את כל ההודעות של HL7v2 במאגר HL7v2 ואת כל השדות בכל אובייקט Message.
אפשר לסנן את ההודעות של HL7v2 שיוצאו באופן הבא:
- אפשר להשתמש במסננים כדי לייצא קבוצת משנה של הודעות HL7v2 שתואמות לקריטריוני סינון. מידע נוסף מופיע במאמר ייצוא של קבוצת משנה של הודעות HL7v2 באמצעות מסנן.
- משתמשים באובייקט
MessageViewכדי לבחור את השדות בכלMessageלייצוא. מידע נוסף זמין במאמר ייצוא הודעות HL7v2 לפי שדהMessage.
ייצוא קבוצת משנה של הודעות 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.
REST
משתמשים בשיטה
hl7V2Stores.exportכדי לייצא את ההודעות של HL7v2:לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
-
PROJECT_ID: מזהה הפרויקט ב- Google Cloud -
LOCATION: המיקום של מערך הנתונים -
DATASET_ID: מערך הנתונים הראשי של חנות HL7v2 -
HL7V2_STORE_ID: מזהה מאגר HL7v2 -
CLOUD_STORAGE_LOCATION: השם של קטגוריה של Cloud Storage או תיקייה שבהן נכתבות הודעות HL7v2 מיוצאות
תוכן בקשת JSON:
{ "gcsDestination": { "uriPrefix": "gs://CLOUD_STORAGE_LOCATION" }, "filter": "message_type = \"ADT\"" }כדי לשלוח את הבקשה עליכם לבחור אחת מהאפשרויות הבאות:
הפלט שיתקבל: התשובה מכילה מזהה של פעולה ממושכת (LRO). פעולות ארוכות טווח מוחזרות כשקריאות לשיטות עשויות להימשך זמן נוסף עד להשלמה. שימו לב לערך שלcurl
שומרים את גוף הבקשה בקובץ בשם
request.json. כדי ליצור או להחליף את הקובץ הזה בספרייה הנוכחית, מריצים את הפקודה הבאה בטרמינל:cat > request.json << 'EOF' { "gcsDestination": { "uriPrefix": "gs://CLOUD_STORAGE_LOCATION" }, "filter": "message_type = \"ADT\"" } EOFלאחר מכן מבצעים את הפקודה הבאה כדי לשלוח את בקשת ה-REST:
curl -X POST \
-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/hl7V2Stores/HL7V2_STORE_ID:export"PowerShell
שומרים את גוף הבקשה בקובץ בשם
request.json. כדי ליצור או להחליף את הקובץ הזה בספרייה הנוכחית, מריצים את הפקודה הבאה בטרמינל:@' { "gcsDestination": { "uriPrefix": "gs://CLOUD_STORAGE_LOCATION" }, "filter": "message_type = \"ADT\"" } '@ | Out-File -FilePath request.json -Encoding utf8לאחר מכן מבצעים את הפקודה הבאה כדי לשלוח את בקשת ה-REST:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-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/hl7V2Stores/HL7V2_STORE_ID:export" | Select-Object -Expand ContentOPERATION_ID. תצטרכו את הערך הזה בשלב הבא.-
כדי לקבל את הסטטוס של הפעולה הממושכת, משתמשים בשיטה
projects.locations.datasets.operations.get.לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
-
PROJECT_ID: מזהה הפרויקט ב- Google Cloud -
DATASET_ID: מזהה קבוצת הנתונים -
LOCATION: המיקום של מערך הנתונים -
OPERATION_ID: המזהה שמוחזר מהפעולה הממושכת
כדי לשלוח את הבקשה אתם צריכים לבחור אחת מהאפשרויות הבאות:
הפלט שיתקבל: כשהתשובה מכילה את הערךcurl
מריצים את הפקודה הבאה:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"PowerShell
מריצים את הפקודה הבאה:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentAPIs Explorer
פותחים את דף העזר של ה-method. החלונית של API Explorer תיפתח בצד שמאל של הדף. אפשר להשתמש בכלי הזה כדי לשלוח בקשות. ממלאים את כל שדות החובה ולוחצים על Execute.
"done": true, סימן שהפעולה הממושכת הסתיימה.-
ייצוא הודעות של HL7v2 לפי שדה Message
ב-Cloud Healthcare API, הודעות HL7v2 מאוחסנות במשאבי Message. אפשר להשתמש ב-enum MessageView כדי לקבוע אילו שדות במשאב Message נכללים בכל הודעת HL7v2 שיוצאה.
בדוגמאות הבאות אפשר לראות איך להשתמש בערך BASIC ב-MessageView כדי לכלול רק את השדה name בהודעות HL7v2 המיוצאות.
REST
משתמשים בשיטה
hl7V2Stores.exportכדי לייצא את ההודעות של HL7v2:לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
-
PROJECT_ID: מזהה הפרויקט ב- Google Cloud -
LOCATION: המיקום של מערך הנתונים -
DATASET_ID: מערך הנתונים הראשי של חנות HL7v2 -
HL7V2_STORE_ID: מזהה מאגר HL7v2 -
CLOUD_STORAGE_LOCATION: השם של קטגוריה של Cloud Storage או תיקייה שבהן נכתבות הודעות HL7v2 מיוצאות
תוכן בקשת JSON:
{ "gcsDestination": { "uriPrefix": "gs://CLOUD_STORAGE_LOCATION", "messageView": "BASIC" } }כדי לשלוח את הבקשה עליכם לבחור אחת מהאפשרויות הבאות:
הפלט שיתקבל: התשובה מכילה מזהה של פעולה ממושכת (LRO). פעולות ארוכות טווח מוחזרות כשקריאות לשיטות עשויות להימשך זמן נוסף עד להשלמה. שימו לב לערך שלcurl
שומרים את גוף הבקשה בקובץ בשם
request.json. כדי ליצור או להחליף את הקובץ הזה בספרייה הנוכחית, מריצים את הפקודה הבאה בטרמינל:cat > request.json << 'EOF' { "gcsDestination": { "uriPrefix": "gs://CLOUD_STORAGE_LOCATION", "messageView": "BASIC" } } EOFלאחר מכן מבצעים את הפקודה הבאה כדי לשלוח את בקשת ה-REST:
curl -X POST \
-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/hl7V2Stores/HL7V2_STORE_ID:export"PowerShell
שומרים את גוף הבקשה בקובץ בשם
request.json. כדי ליצור או להחליף את הקובץ הזה בספרייה הנוכחית, מריצים את הפקודה הבאה בטרמינל:@' { "gcsDestination": { "uriPrefix": "gs://CLOUD_STORAGE_LOCATION", "messageView": "BASIC" } } '@ | Out-File -FilePath request.json -Encoding utf8לאחר מכן מבצעים את הפקודה הבאה כדי לשלוח את בקשת ה-REST:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-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/hl7V2Stores/HL7V2_STORE_ID:export" | Select-Object -Expand ContentOPERATION_ID. תצטרכו את הערך הזה בשלב הבא.-
כדי לקבל את הסטטוס של הפעולה הממושכת, משתמשים בשיטה
projects.locations.datasets.operations.get.לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
-
PROJECT_ID: מזהה הפרויקט ב- Google Cloud -
DATASET_ID: מזהה קבוצת הנתונים -
LOCATION: המיקום של מערך הנתונים -
OPERATION_ID: המזהה שמוחזר מהפעולה הממושכת
כדי לשלוח את הבקשה אתם צריכים לבחור אחת מהאפשרויות הבאות:
הפלט שיתקבל: כשהתשובה מכילה את הערךcurl
מריצים את הפקודה הבאה:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"PowerShell
מריצים את הפקודה הבאה:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentAPIs Explorer
פותחים את דף העזר של ה-method. החלונית של API Explorer תיפתח בצד שמאל של הדף. אפשר להשתמש בכלי הזה כדי לשלוח בקשות. ממלאים את כל שדות החובה ולוחצים על Execute.
"done": true, סימן שהפעולה הממושכת הסתיימה.-
פתרון בעיות שקשורות לבקשות ייצוא של HL7v2
אם מתרחשות שגיאות במהלך ייצוא הודעות HL7v2, השגיאות נרשמות ביומן של Cloud Logging. מידע נוסף זמין במאמר צפייה ביומני שגיאות ב-Cloud Logging.
אם פעולה ממושכת מחזירה שגיאה, אפשר לעיין במאמר בנושא פתרון בעיות בפעולות ממושכות.