שחזור הודעות של HL7v2 באמצעות שחזור מנקודה מסוימת בזמן (PITR)

בדף הזה מוסבר איך להשתמש בשחזור לנקודת זמן (PITR) כדי לשחזר הודעות HL7v2 במאגר HL7v2 למצב שהיה ב-21 הימים האחרונים. אפשר להשתמש ב-PITR כדי לשחזר שינויים לא רצויים, כמו מחיקה בטעות של הודעות HL7v2.

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

בקשות PITR מסווגות כבקשות מתקדמות לפעולות, והחיוב מתבצע בהתאם. לפני שמשתמשים ב-PITR, כדאי לעיין בתמחור של בקשות לפעולות מתקדמות.

תהליך העבודה לשחזור

כדי לוודא ששחזור הייצור יפעל כמו שצריך, קודם מריצים הרצה יבשה. הפלט של ההרצה היבשה הוא קובץ אחד או יותר שמכילים את המזהים של הודעות HL7v2 לשחזור. חשוב לוודא שהקבצים שנוצרו תקינים לפני שמריצים שוב את השחזור בסביבת הייצור.

כדי לשחזר הודעות ספציפיות של HL7v2, או לשחזר הודעות של HL7v2 לפי קריטריון סינון, צריך לציין מסנן.

הרצת בדיקה

לפני שמשחזרים הודעות HL7v2 בסביבת הייצור, כדאי לבצע הרצה יבשה.

בדוגמאות הבאות אפשר לראות איך מבצעים הרצה יבשה באמצעות השיטה hl7V2Stores.rollback.

REST

  1. שחזור ההודעות של HL7v2.

    כדי לבצע הרצה יבשה, מוודאים שהשדה force הוא false.

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

    • PROJECT_ID: מזהה הפרויקט ב- Google Cloud
    • LOCATION: המיקום של מערך הנתונים
    • DATASET_ID: מערך הנתונים הראשי של חנות HL7v2
    • HL7V2_STORE_ID: מזהה מאגר HL7v2
    • RECOVERY_TIMESTAMP: נקודת שחזור מ-21 הימים האחרונים. צריך להשתמש בפורמט RFC 3339. מציינים את השעה עד לרמת השנייה וכוללים אזור זמן, למשל 2015-02-07T13:28:17.239+02:00 או 2017-01-01T00:00:00Z.
    • CLOUD_STORAGE_BUCKET: ה-URI מוגדר במלואו של תיקייה או קטגוריה ב-Cloud Storage שבהן נכתבים קובצי הפלט

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

    curl

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

    cat > request.json << 'EOF'
    {
      "rollbackTime": "RECOVERY_TIMESTAMP",
      "resultGcsBucket": "gs://CLOUD_STORAGE_BUCKET",
      "force": "false"
    }
    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:rollback"

    PowerShell

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

    @'
    {
      "rollbackTime": "RECOVERY_TIMESTAMP",
      "resultGcsBucket": "gs://CLOUD_STORAGE_BUCKET",
      "force": "false"
    }
    '@  | 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:rollback" | Select-Object -Expand Content

    APIs Explorer

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

    הפלט שיתקבל: התשובה מכילה מזהה של פעולה ממושכת (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 לשחזור. הקבצים נוצרים בתיקיית משנה בתיקייה rollback_messages בקטגוריה של Cloud Storage ביעד. שם תיקיית המשנה הוא מזהה ה-LRO שמוחזר בתגובה hl7V2Stores.rollback. כדי להציג את הקבצים ולוודא שהשחזור פועל כמצופה, ראו צפייה במטא-נתונים של אובייקט.

מספר הקבצים פרופורציונלי למספר ההודעות של HL7v2 ששוחזרו.

שמות הקבצים הם בפורמט trial-NUMBER-of-TOTAL_NUMBER.txt, כאשר NUMBER הוא מספר הקובץ ו-TOTAL_NUMBER הוא המספר הכולל של הקבצים.

סכימת קובץ הפלט של הרצת בדיקה

קבצי הפלט משחזור של הרצה יבשה משתמשים בסכימה שמוצגת בטבלה הבאה:

MESSAGE_ID TIMESTAMP
מזהה ההודעה של HL7v2. השעה שבה נוצרה או עודכנה ההודעה ב-HL7v2 במאגר HL7v2.

שחזור בסביבת הייצור

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

בדוגמאות הבאות אפשר לראות איך לשחזר הודעות HL7v2 בסביבת ייצור באמצעות השיטה hl7V2Stores.rollback.

REST

  1. שחזור ההודעות של HL7v2.

    מוודאים שהשדה force הוא true.

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

    • PROJECT_ID: מזהה הפרויקט ב- Google Cloud
    • LOCATION: המיקום של מערך הנתונים
    • DATASET_ID: מערך הנתונים הראשי של חנות HL7v2
    • HL7V2_STORE_ID: מזהה מאגר HL7v2
    • RECOVERY_TIMESTAMP: נקודת שחזור מ-21 הימים האחרונים. צריך להשתמש בפורמט RFC 3339. מציינים את השעה עד לרמת השנייה וכוללים אזור זמן, למשל 2015-02-07T13:28:17.239+02:00 או 2017-01-01T00:00:00Z.
    • CLOUD_STORAGE_BUCKET: ה-URI מוגדר במלואו של תיקייה או קטגוריה ב-Cloud Storage שבהן נכתבים קובצי הפלט

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

    curl

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

    cat > request.json << 'EOF'
    {
      "rollbackTime": "RECOVERY_TIMESTAMP",
      "resultGcsBucket": "gs://CLOUD_STORAGE_BUCKET",
      "force": "true"
    }
    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:rollback"

    PowerShell

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

    @'
    {
      "rollbackTime": "RECOVERY_TIMESTAMP",
      "resultGcsBucket": "gs://CLOUD_STORAGE_BUCKET",
      "force": "true"
    }
    '@  | 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:rollback" | Select-Object -Expand Content

    APIs Explorer

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

    הפלט שיתקבל: התשובה מכילה מזהה של פעולה ממושכת (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, סימן שהפעולה הממושכת הסתיימה.

צפייה בקובצי הפלט של שחזור סביבת הייצור

שחזור של סביבת ייצור יוצר את הקבצים הבאים. הקבצים נוצרים בתיקיית משנה בתיקייה rollback_messages בקטגוריה של Cloud Storage ביעד. שם תיקיית המשנה הוא מזהה ה-LRO שמוחזר בתגובה hl7V2Stores.rollback. כדי להציג את הקבצים, ראו צפייה במטא-נתונים של אובייקט.

  • success-NUMBER-of-TOTAL_NUMBER.txt: מכיל הודעות HL7v2 ששוחזרו בהצלחה.
  • fail-NUMBER-of-TOTAL_NUMBER.txt: מכיל הודעות HL7v2 שלא הצליחו לשחזר. קובץ ריק נוצר גם אם לא היו כשלים.

בשמות הקבצים, NUMBER הוא מספר הקובץ ו-TOTAL_NUMBER הוא המספר הכולל של הקבצים.

סכימת קובץ פלט של ייצור

קבצי ההצלחה והכישלון משחזור של סביבת ייצור משתמשים בסכימה הבאה. קבצי השגיאות מכילים עמודה נוספת של ERROR_MESSAGE.

MESSAGE_ID ERROR_MESSAGE (קבצי שגיאות בלבד)
מזהה ההודעה ב-HL7v2. קבצים עם שגיאות בלבד. תיאור הסיבה לכך שלא ניתן לשחזר את ההודעה של HL7v2.

שימוש במסננים כדי לשחזר מאגר HL7v2 למצב קודם

אם בוצע שינוי בחנות HL7v2 על ידי פעולות לטווח ארוך (LRO), אפשר לציין את מזהי ה-LRO במסנן כדי לשחזר את חנות HL7v2 למצב הקודם שלה. לדוגמה, אפשר לשחזר מאגר HL7v2 למצב הקודם שלו לפני שפעולת ייבוא ייבאה הודעות HL7v2.

כששולחים בקשת hl7V2Stores.rollback, מציינים את מזהי ה-LRO באובייקט RollbackHL7MessagesFilteringFields.

מידע על הצגה של מזהי LRO במערך נתונים של Cloud Healthcare API זמין במאמר הצגת LRO.