מכסות ומגבלות

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

המכסות של Cloud Healthcare API נאכפות ברמת הפרויקט, על בסיס אזורי או על בסיס רב-אזורי. מיצוי המכסה באזור מסוים לא משפיע על השימוש ב-Cloud Healthcare API באזורים אחרים.

בדיקת המכסות והשימוש

מכסות הן מגבלות על נפח האחסון (נקראות גם מגבלות על תעבורת נתונים נכנסת) ועל פעולות.

כדי לבדוק את המכסה הזמינה למשאבים בפרויקט, עוברים לדף Quotas במסוף Google Cloud .

כדי להציג רק את המכסות של Cloud Healthcare API, בתפריט הנפתח Filter table בוחרים באפשרות Service ואז באפשרות Cloud Healthcare API.

המכסות לא זהות בכל הפרויקטים. ככל שהשימוש שלכם ב-Cloud Healthcare API יתרחב עם הזמן, המכסות שלכם יגדלו בהתאם. אם צפויה עלייה משמעותית בשימוש, אפשר לבקש התאמות של המכסה מראש בדף Quotas במסוףGoogle Cloud . אין חיוב על בקשה להגדלת המכסה. העלויות שלכם יגדלו רק אם תשתמשו ביותר משאבים.

מגבלות על משאבים

ב-Cloud Healthcare API יש מגבלה על גודל התוכן של בקשה, כמו גודל תמונת רנטגן בבקשת DICOM. אי אפשר לבקש שינוי במגבלת משאבים, אבל במקרים מסוימים אפשר להשתמש בפעולת ייבוא כדי לייבא תוכן שנפחו גדול ממגבלת משאבים.

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

אופן השימוש מגבלת גודל של בקשות
DICOM
  • עסקה בחנות: ללא הגבלה. כל שאר השיטות 10MB.
  • שמירת עסקה או אחזור עסקה: אם הפעולה נמשכת יותר מ-30 דקות, מתרחש פסק זמן.
  • בשיטות חיפוש עסקאות, ההיסט המקסימלי הוא 1,000,000 והמגבלה המקסימלית היא 5,000 למחקרים או לסדרות ו-50,000 למופעים.
  • הסרת פרטים מזהים: אי אפשר להסיר פרטים מזהים מקובצי DICOM שגדולים מ-1GB אם מדובר בהסרת פיקסלים. אם נתוני ה-Pixel דחוסים, הגודל שלהם אחרי פתיחת הדחיסה לא יכול להיות יותר מ-2GB. אפשר לחשב את הגודל הלא דחוס באמצעות תגי DICOM באופן הבא: NumberOfFrames * Rows * Columns * SamplesPerPixel * BitsAllocated / 8.
  • יש מגבלה של 4GB לכל תג בקובצי DICOM שהועלו. המגבלה הזו לא חלה על ערכים עם אורך לא מוגדר.
  • כשמבצעים המרה של נתוני DICOM, גודל הקובץ המקסימלי הוא 1GB וגודל הפריים המקסימלי הוא 150MB.
  • כשמחילים את פרמטר השאילתה viewport על משאבים שעברו עיבוד, גודל המסגרת המקסימלי הוא 50MB, והמימד המקסימלי (רוחב או גובה) הוא 10,000 פיקסלים.
  • ‫dicomStores.import: גודל הקובץ המקסימלי הוא 100GB.
FHIR
  • ‫fhir.executeBundle: 50MB. יכול להיות שתיתקלו במגבלות בהתאם למספר הרשומות בחבילה. מידע נוסף זמין במאמר בנושא מגבלות הגודל של FHIR executeBundle.
  • ‫fhir.Binary-create: 1GB
  • ‫fhir.Binary-update: 1GB
  • כל השיטות האחרות: 10MB. המגבלה הזו חלה על הייצוג הפנימי של המשאב, ולא על הגודל של מטען ה-JSON הייעודי שאתם שולחים. יכול להיות שמשאב שעומד במגבלה הזו יכלול מטען ייעודי (payload) בפורמט JSON שגדול מ-10MB.
HL7v2 גודל השדה data בקידוד Base64: ‏ 10MB

אם תנסו לעבד תוכן גדול יותר מהמגבלה של המשאב המשויך, תתרחש שגיאה.

מגבלות הגודל של executeBundle ב-FHIR

אפשר להשתמש ב-method‏ fhir.executeBundle כדי לבצע כמה פעולות FHIR בבקשת API אחת. מספר הפעולות תלוי במספר הרשומות בחבילת פעולות או בחבילת עסקאות. הגישה הזו יעילה יותר מאשר ביצוע קריאות נפרדות ל-API לכל פעולה.

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

כדי להבטיח שהבקשות שלכם יעובדו בזמן ובאופן תקין, חשוב להקפיד על המגבלות הבאות כששולחים fhir.executeBundleבקשות:

  • חבילות של עסקאות: חבילות שכוללות יותר מ-4,500 רשומות נדחות באופן מיידי כדי למנוע מצב של פסק זמן. כדי שחבילות של עסקאות יפעלו, כל הפעולות צריכות להצליח.
  • חבילות של פעולות: אין מגבלה ספציפית על מספר הפעולות, אבל חבילות גדולות מגדילות את הסיכון לפסק זמן. יכול להיות שפסק זמן יוביל להצלחה חלקית, ורק חלק מהרשומות יעובדו.

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

פעולות ייבוא מאפשרות לעבד תוכן שגדול יותר ממגבלת המשאבים המשויכת. גודל התוכן בפעולת ייבוא מוגבל רק על ידי Google Cloud גודל האחסון המקסימלי של 5TB לאובייקטים בודדים. פעולות הייבוא כפופות למכסות אחסון שקובעות את משך הזמן של פעולת הייבוא. לדוגמה, כדאי להשתמש בפעולת ייבוא אם רוצים לאחסן הרבה מופעים של DICOM בחנות DICOM ולא רוצים להיות כפופים למגבלת גודל הבקשה. במקום להעלות את המקרים באמצעות השיטות הזמינות של Store Transaction, אפשר להעלות את המקרים לקטגוריה של Cloud Storage ואז לייבא אותם לחנות DICOM.

הוראות מפורטות לייבוא נתוני DICOM באמצעות פעולת ייבוא מופיעות במאמר ייבוא וייצוא של נתוני DICOM.

הוראות מפורטות לייבוא משאבי FHIR באמצעות פעולת ייבוא מופיעות במאמר ייבוא וייצוא של משאבי FHIR.

לשלבים מפורטים לייבוא הודעות של HL7v2 באמצעות פעולת ייבוא, אפשר לעיין במאמר בנושא ייבוא הודעות של HL7v2 מ-Cloud Storage.

שליחת בקשה לשינוי המכסה

כדי לבקש שינוי במכסה, צריך הרשאת serviceusage.quotas.update. התפקידים המוגדרים מראש הבאים כוללים את ההרשאה הזו כברירת מחדל: בעלים, עריכה ואדמין מכסות.

  1. נכנסים לדף Quotas.

    לפתיחת הדף Quotas

  2. בדף Quotas, בוחרים את המכסות שרוצים לשנות. אם רוצים להציג רק את המכסות של Cloud Healthcare API, בוחרים באפשרות Service מהרשימה הנפתחת Filter table ואז בוחרים באפשרות Cloud Healthcare API.

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

  4. לוחצים על הלחצן עריכת המכסות בחלק העליון של הדף.

  5. ממלאים את הטופס ולוחצים על הבא.

  6. מזינים את המגבלות שרוצים לבקש ולוחצים על הבא.

  7. לוחצים על Submit request.

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

צוות Cloud Healthcare API יענה לכם תוך 24 עד 48 שעות מקבלת הבקשה.

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

בקשות לשינוי מכסות של מיקום

אפשר לבקש להגדיל את המכסה של Cloud Healthcare API באזור ספציפי או במיקום שכולל מספר אזורים.

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

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

  • כדי להגדיל את המכסה באזור us מרובה אזורים, צריך לציין בבקשה שהמכסה היא עבור "אזור המטא של ארה"ב".
  • כדי להגדיל את המכסה באזור הגיאוגרפי המרובה eu, צריך לציין בבקשה שהמכסה היא עבור "אזור המטא של האיחוד האירופי".

מגבלות המכסה

בקטעים הבאים מפורטות המכסות שמשויכות למאגרי נתונים ולפעולות של Cloud Healthcare API.

מכסות DICOM

בטבלה הבאה מפורטות מכסות Cloud Healthcare API שמשויכות למאגרי DICOM ולפעולות DICOM.

שם המדד השם המוצג תיאור
dicomweb_ops מספר הפעולות של DICOMweb לדקה בכל אזור כולל את השיטות הבאות:
  • כל השיטות projects.locations.datasets.dicomStores.studies ב-v1beta1 וב-v1
  • כל השיטות projects.locations.datasets.dicomStores.studies.series ב-v1beta1 וב-v1
  • כל השיטות projects.locations.datasets.dicomStores.studies.series.instances ב-v1beta1 וב-v1
  • כל השיטות projects.locations.datasets.dicomStores.studies.series.instances.frames ב-v1beta1 וב-v1
dicom_structured_storage_bytes כניסה של נתוני DICOM מובנים לאחסון בבייטים לדקה לכל אזור בייטים מובנים, בצורה של תגי DICOM ומטא-נתונים קשורים, שנשלחים אל Cloud Healthcare API במהלך עיבוד פעולות dicomweb_ops.
dicom_store_ops מספר פעולות האחסון של DICOM לדקה בכל אזור פעולות במאגר DICOM, לא בנתוני DICOM. כולל את השיטות הבאות:
dicom_store_lro_ops מספר הפעולות הממושכות של DICOM store לדקה לכל אזור פעולות במאגר DICOM, לא בנתוני DICOM, שמחזירות פעולה ממושכת. כולל את השיטות הבאות:
dicom_structured_storage_operations_bytes העברת נתונים של אחסון DICOM מובנה לפעולות ארוכות טווח בבייטים לדקה לכל אזור בייטים מובנים, בצורה של תגי DICOM ומטא-נתונים קשורים, שנשלחים אל Cloud Healthcare API במהלך עיבוד פעולות dicom_store_lro_ops.

מכסות FHIR

בטבלה הבאה מפורטות המכסות של Cloud Healthcare API שמשויכות למאגרי FHIR ולפעולות FHIR.

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

השימוש כולל את השיטות הבאות:

v1beta1: v1:
fhir_write_ops מספר פעולות הכתיבה ב-FHIR לדקה לכל אזור השימוש נמדד ביחידות, כאשר יחידה אחת היא בקשת יצירה, עדכון או מחיקה של משאב FHIR בודד.

השימוש כולל את השיטות הבאות:

v1beta1: v1:
fhir_search_ops מספר פעולות החיפוש ב-FHIR לדקה בכל אזור החישוב מתבצע ביחידות, כאשר יחידה אחת היא בקשת חיפוש בסוג משאב FHIR שבו החיפוש לא דורש פתרון הפניות, אלא אם נעשה שימוש ב-_include. לדוגמה, חיפוש Observation?subject:Patient.identifier=system|value צורך שתי יחידות מכסת שימוש fhir_search_ops כי הוא מחייב שני חיפושים, אחד במשאב Observation ואחד במשאב Patient, באמצעות subject כהפניה.

כולל את השיטות הבאות:

v1beta1: v1:
fhir_storage_egress_bytes תעבורת נתונים יוצאת מאחסון FHIR בבייטים לדקה לכל אזור השימוש נמדד ביחידות, כאשר יחידה אחת היא בייט אחד ש-Cloud Healthcare API קורא מהאחסון בזמן העיבוד של פעולות fhir_read_ops,‏ fhir_write_ops ו-fhir_search_ops.
fhir_storage_bytes נפח אחסון FHIR נכנס בבייטים לדקה לכל אזור בייטים שנשלחים אל Cloud Healthcare API במהלך עיבוד פעולות fhir_write_ops.
fhir_store_ops מספר הפעולות במאגר FHIR לדקה לכל אזור פעולות במאגר FHIR, לא בנתוני FHIR.

כולל את השיטות הבאות:
fhir_store_lro_ops מספר הפעולות הממושכות של מאגר FHIR לדקה לכל אזור פעולות במאגר FHIR, לא בנתוני FHIR, שמחזירות פעולה ממושכת.

כולל את השיטות הבאות:
fhir_storage_operations_bytes נפח נתונים שנכנסים לאחסון FHIR לפעולות ארוכות טווח בבייטים לדקה לכל אזור בייטים שנשלחים אל Cloud Healthcare API במהלך עיבוד פעולות fhir_store_lro_ops.

בקשה אחת יכולה לצרוך כמה יחידות מכסה. לדוגמה, בקשת GET חיפוש שמשתמשת ב-Observation?subject:Patient.identifier=system|value כפרמטר החיפוש צורכת שתי יחידות מכסה של fhir_search_ops. מתבצעות שתי פעולות חיפוש, אחת במשאב Observation ואחת במשאב Patient, באמצעות subject כהפניה.

אם בקשת מחיקה מותנית באמצעות Observation?status=canceled כקריטריון החיפוש מחפשת ומוחקת שישה משאבי Observation, נצרכות יחידות המכסה הבאות:

  • יחידת מכסה אחת של fhir_search_ops, כי בקשת החיפוש GET מתבצעת רק על סוג אחד של משאב FHIR, משאב התצפית. הבקשה מחזירה את כל משאבי ה-Observation שתואמים לקריטריוני החיפוש.
  • ‫6 יחידות מכסה fhir_write_ops, כי יש סך של 6 פעולות DELETE במשאבי Observation שנמחקו.

ביצוע של ניצול מכסת חבילה

כדי לשלוח בקשה להפעלת חבילה, ללא קשר למכסה שהבקשה צורכת, בפרויקטGoogle Cloud צריכה להיות לפחות יחידה אחת זמינה לכל אחת מהמכסות הבאות:

  • fhir_read_ops
  • fhir_write_ops
  • fhir_search_ops

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

לדוגמה, אם שולחים בקשת fhir.executeBundle עם חבילת טרנזקציות שמכילה 100 פעולות POST, שכל אחת מהן יוצרת משאב FHIR,‏ Cloud Healthcare API מאמת קודם שיש לפחות יחידת מכסה אחת זמינה עבור fhir_read_ops,‏ fhir_write_ops ו-fhir_search_ops. אם האימות יצליח, Cloud Healthcare API יבצע את החבילה וייצור את משאבי ה-FHIR, שיצרכו סך של 100 fhir_write_ops יחידות מכסת שימוש.

נבחן את חבילת העסקאות הבאה, שמשתמשת בהפניה מותנית כדי ליצור משאב Observation אם קיים reference:

{
  "resourceType": "Bundle",
  "type": "transaction",
  "entry": [
    {
      "request": {
        "method": "POST",
        "url": "Observation"
      },
      "resource": {
        "resourceType": "Observation",
        "subject": {
          "reference": "Patient?identifier=a1b2c3d4e5"
        }
      }
    }
  ]
}

כשמריצים את החבילה, Cloud Healthcare API בודק קודם שיש לפחות יחידת מכסה אחת זמינה עבור fhir_read_ops, fhir_write_ops ו-fhir_search_ops. אם האימות יצליח, Cloud Healthcare API יבצע את החבילה. השימוש ביחידות המכסה הוא כדלקמן:

  • ‫fhir_write_ops כדי ליצור את משאב התצפית החדש.
  • ‫1 fhir_search_ops, כי מתבצעת פעולת חיפוש אחת בהפניה Patient?identifier=a1b2c3d4e5.

שיטות מומלצות

שיטות מומלצות לניהול המכסה של Cloud Healthcare API מפורטות במאמר שיטות מומלצות לניהול מכסות.