ייצוא הודעות HL7v2 ל-Cloud Storage

בדף הזה מוסבר איך לייצא הודעות 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:

  1. נכנסים לדף Datasets במסוף Google Cloud .

    למעבר אל Datasets

  2. לוחצים על מערך הנתונים שמכיל את החנות ב-HL7v2 שממנה מייצאים הודעות ב-HL7v2.

  3. ברשימת מאגרי הנתונים, בוחרים באפשרות ייצוא מתוך רשימת הפעולות של מאגר HL7v2.

    יופיע הדף Export HL7v2 messages (ייצוא הודעות HL7v2).

  4. ברשימה Project, בוחרים פרויקט של Cloud Storage.

  5. ברשימה מיקום, בוחרים קטגוריה של Cloud Storage.

  6. לוחצים על ייצוא כדי לייצא מופעים של HL7v2 למיקום שהוגדר ב-Cloud Storage.

  7. כדי לעקוב אחרי סטטוס הפעולה, לוחצים על הכרטיסייה פעולות. אחרי שהפעולה מסתיימת, מופיעים הסימנים הבאים:
    • בקטע Long-running operation status (סטטוס של פעולה ממושכת) מופיע סימן וי ירוק מתחת לכותרת OK.
    • בקטע סקירה כללית מופיעים סימן וי ירוק והאינדיקטור OK באותה שורה של מזהה הפעולה.
    אם נתקלתם בשגיאות, לוחצים על פעולות ואז על הצגת הפרטים ב-Cloud Logging.

ייצוא הודעות HL7v2 ל-Cloud Storage באמצעות מסננים

כברירת מחדל, ייצוא של הודעות HL7v2 אל Cloud Storage כולל את כל ההודעות של HL7v2 במאגר HL7v2 ואת כל השדות בכל אובייקט Message.

אפשר לסנן את ההודעות של HL7v2 שיוצאו באופן הבא:

ייצוא קבוצת משנה של הודעות 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

  1. משתמשים בשיטה 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\""
    }
    

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

    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 Content
    הפלט שיתקבל: התשובה מכילה מזהה של פעולה ממושכת (LRO). פעולות ארוכות טווח מוחזרות כשקריאות לשיטות עשויות להימשך זמן נוסף עד להשלמה. שימו לב לערך של OPERATION_ID. תצטרכו את הערך הזה בשלב הבא.

  2. כדי לקבל את הסטטוס של הפעולה הממושכת, משתמשים בשיטה 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 Content

    APIs Explorer

    פותחים את דף העזר של ה-method. החלונית של API Explorer תיפתח בצד שמאל של הדף. אפשר להשתמש בכלי הזה כדי לשלוח בקשות. ממלאים את כל שדות החובה ולוחצים על Execute.

    הפלט שיתקבל: כשהתשובה מכילה את הערך "done": true, סימן שהפעולה הממושכת הסתיימה.

ייצוא הודעות של HL7v2 לפי שדה Message

ב-Cloud Healthcare API, הודעות HL7v2 מאוחסנות במשאבי Message. אפשר להשתמש ב-enum‏ MessageView כדי לקבוע אילו שדות במשאב Message נכללים בכל הודעת HL7v2 שיוצאה.

בדוגמאות הבאות אפשר לראות איך להשתמש בערך BASIC ב-MessageView כדי לכלול רק את השדה name בהודעות HL7v2 המיוצאות.

REST

  1. משתמשים בשיטה 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"
      }
    }
    

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

    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 Content
    הפלט שיתקבל: התשובה מכילה מזהה של פעולה ממושכת (LRO). פעולות ארוכות טווח מוחזרות כשקריאות לשיטות עשויות להימשך זמן נוסף עד להשלמה. שימו לב לערך של OPERATION_ID. תצטרכו את הערך הזה בשלב הבא.

  2. כדי לקבל את הסטטוס של הפעולה הממושכת, משתמשים בשיטה 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 Content

    APIs Explorer

    פותחים את דף העזר של ה-method. החלונית של API Explorer תיפתח בצד שמאל של הדף. אפשר להשתמש בכלי הזה כדי לשלוח בקשות. ממלאים את כל שדות החובה ולוחצים על Execute.

    הפלט שיתקבל: כשהתשובה מכילה את הערך "done": true, סימן שהפעולה הממושכת הסתיימה.

פתרון בעיות שקשורות לבקשות ייצוא של HL7v2

אם מתרחשות שגיאות במהלך ייצוא הודעות HL7v2, השגיאות נרשמות ביומן של Cloud Logging. מידע נוסף זמין במאמר צפייה ביומני שגיאות ב-Cloud Logging.

אם פעולה ממושכת מחזירה שגיאה, אפשר לעיין במאמר בנושא פתרון בעיות בפעולות ממושכות.