הצהרת תאימות ל-DICOM

מאגרי DICOM ב-Cloud Healthcare API תומכים בקבוצת משנה של שירותי האינטרנט מבוססי REST שצוינו בתקן DICOM PS3.18 – שירותי אינטרנט (שנקרא בדרך כלל DICOMweb). באופן ספציפי, הם תומכים בשירותים ובמשאבים של Studies (שנקראו בעבר שירותי WADO-RS,‏ STOW-RS ו-QIDO-RS).

בנוסף, Cloud Healthcare API תומך בשירות אינטרנט קנייני למחיקת מופעים של DICOM.

‫Cloud Healthcare API לא תומך ב-URI Service, ב-Worklist Service, ב-Non-Patient Instance Service או ב-Capabilities Transactions.

אחזור פרטי עסקה

Retrieve Transaction הוא שירות אינטרנט מבוסס RESTful לאחזור נתוני הדמיה של DICOM.

הפעולה Retrieve Transaction תומכת באחזור המשאבים הבאים:

  • מקורות מידע על DICOM:
    • מחקר
    • סדרה
    • Instance
    • פריימים
    • Bulkdata
  • מקורות מידע על מטא-נתונים
    • מחקר
    • סדרה
    • Instance
  • Rendered Resources
    • Instance
    • פריימים

הוא לא תומך במשאבי תמונות ממוזערות.

פרטים על המכסות והמגבלות של השיטות האלה מופיעים במאמר מכסות ומגבלות.

מחקר/סדרה/מופעים של DICOM

יש תמיכה בכותרות Accept הבאות:

  • multipart/related; type="application/dicom"; transfer-syntax=*
  • multipart/related; type="application/dicom"; transfer-syntax=1.2.840.10008.1.2
  • multipart/related; type="application/dicom"; transfer-syntax=1.2.840.10008.1.2.1 (ברירת מחדל)
  • multipart/related; type="application/dicom"; transfer-syntax=1.2.840.10008.1.2.1.99
  • multipart/related; type="application/dicom"; transfer-syntax=1.2.840.10008.1.2.4.50
  • multipart/related; type="application/dicom"; transfer-syntax=1.2.840.10008.1.2.4.51
  • multipart/related; type="application/dicom"; transfer-syntax=1.2.840.10008.1.2.4.57
  • multipart/related; type="application/dicom"; transfer-syntax=1.2.840.10008.1.2.4.70
  • multipart/related; type="application/dicom"; transfer-syntax=1.2.840.10008.1.2.4.80
  • multipart/related; type="application/dicom"; transfer-syntax=1.2.840.10008.1.2.4.81
  • multipart/related; type="application/dicom"; transfer-syntax=1.2.840.10008.1.2.4.90
  • multipart/related; type="application/dicom"; transfer-syntax=1.2.840.10008.1.2.4.91
  • multipart/related; type="application/dicom"; transfer-syntax=1.2.840.10008.1.2.4.110
  • multipart/related; type="application/dicom"; transfer-syntax=1.2.840.10008.1.2.4.111
  • multipart/related; type="application/dicom"; transfer-syntax=1.2.840.10008.1.2.4.112
  • multipart/related; type="application/dicom"; transfer-syntax=1.2.840.10008.1.2.4.201
  • multipart/related; type="application/dicom"; transfer-syntax=1.2.840.10008.1.2.4.202
  • multipart/related; type="application/dicom"; transfer-syntax=1.2.840.10008.1.2.4.203
  • multipart/related; type="application/dicom"; transfer-syntax=1.2.840.10008.1.2.5
  • multipart/related; type="application/dicom"; transfer-syntax=1.2.840.10008.1.2.8.1

מופעי DICOM

בנוסף לכותרות Accept שלמעלה, הפונקציה RetrieveInstance תומכת בסוגי תוכן של חלק אחד לנוחותכם:

  • application/dicom; transfer-syntax=*
  • application/dicom; transfer-syntax=1.2.840.10008.1.2
  • application/dicom; transfer-syntax=1.2.840.10008.1.2.1
  • application/dicom; transfer-syntax=1.2.840.10008.1.2.1.99
  • application/dicom; transfer-syntax=1.2.840.10008.1.2.4.50
  • application/dicom; transfer-syntax=1.2.840.10008.1.2.4.51
  • application/dicom; transfer-syntax=1.2.840.10008.1.2.4.57
  • application/dicom; transfer-syntax=1.2.840.10008.1.2.4.70
  • application/dicom; transfer-syntax=1.2.840.10008.1.2.4.80
  • application/dicom; transfer-syntax=1.2.840.10008.1.2.4.81
  • application/dicom; transfer-syntax=1.2.840.10008.1.2.4.90
  • application/dicom; transfer-syntax=1.2.840.10008.1.2.4.91
  • application/dicom; transfer-syntax=1.2.840.10008.1.2.4.110
  • application/dicom; transfer-syntax=1.2.840.10008.1.2.4.111
  • application/dicom; transfer-syntax=1.2.840.10008.1.2.4.112
  • application/dicom; transfer-syntax=1.2.840.10008.1.2.4.201
  • application/dicom; transfer-syntax=1.2.840.10008.1.2.4.202
  • application/dicom; transfer-syntax=1.2.840.10008.1.2.4.203
  • application/dicom; transfer-syntax=1.2.840.10008.1.2.5
  • application/dicom; transfer-syntax=1.2.840.10008.1.2.8.1

התכונה הזו לא חלק מתקן DICOMweb הרשמי.

פריימים של DICOM

יש תמיכה בכותרות Accept הבאות:

  • multipart/related; type="application/octet-stream"; transfer-syntax=*
  • multipart/related; type="application/octet-stream"; transfer-syntax=1.2.840.10008.1.2.1 (ברירת מחדל)
  • multipart/related; type="image/jpeg"; transfer-syntax=1.2.840.10008.1.2.4.50
  • multipart/related; type="image/jpeg"; transfer-syntax=1.2.840.10008.1.2.4.51
  • multipart/related; type="image/jpeg"; transfer-syntax=1.2.840.10008.1.2.4.57
  • multipart/related; type="image/jpeg"; transfer-syntax=1.2.840.10008.1.2.4.70
  • multipart/related; type="image/png"
  • multipart/related; type="image/jls"; transfer-syntax=1.2.840.10008.1.2.4.80
  • multipart/related; type="image/jls"; transfer-syntax=1.2.840.10008.1.2.4.81
  • multipart/related; type="image/jp2"; transfer-syntax=1.2.840.10008.1.2.4.90
  • multipart/related; type="image/jp2"; transfer-syntax=1.2.840.10008.1.2.4.91
  • multipart/related; type="image/jphc"; transfer-syntax=1.2.840.10008.1.2.4.201
  • multipart/related; type="image/jphc"; transfer-syntax=1.2.840.10008.1.2.4.202
  • multipart/related; type="image/jphc"; transfer-syntax=1.2.840.10008.1.2.4.203
  • multipart/related; type="image/jxl"; transfer-syntax=1.2.840.10008.1.2.4.110
  • multipart/related; type="image/jxl"; transfer-syntax=1.2.840.10008.1.2.4.112
  • multipart/related; type="image/dicom-rle"; transfer-syntax=1.2.840.10008.1.2.5
  • multipart/related; type="application/x-deflate"; transfer-syntax=1.2.840.10008.1.2.8.1

תחביר ההעברה * מאפשר למשתמש לבקש שלא יתבצע קידוד מחדש, ולכן ייעשה שימוש בתחביר ההעברה של הקובץ שהועלה. ‫application/octet-stream הנתונים בכמות גדולה יוחזרו בכל פורמט שבו הם מופיעים בקובץ ה-DICOM שהועלה.

משאבים שעברו עיבוד

יש תמיכה בכותרות Accept הבאות:

  • image/jpeg (ברירת מחדל)
  • image/png

יש תמיכה רק באחזור של משאבי Instance או Frame.

המערכת לא תומכת בפרמטרים של כתובות URL מלבד Viewport.

מקורות מידע על מטא-נתונים

יש תמיכה בכותרות Accept הבאות:

  • application/dicom+json (ברירת מחדל)
  • multipart/related; type=application/dicom+xml

תגים שמקודדים כרכיבי InlineBinary יקודדו באמצעות סדר בתים מסוג little-endian, כי פרמטר תחביר ההעברה לא נתמך בנקודות קצה שמבקשות משאבי מטא-נתונים.

הפונקציה RetrieveMetadata תכלול BulkDataURIs לתגים שתואמים להגדרת Bulkdata.

תגי רצף DICOM שמכילים יותר מ-1MiB של נתונים לא יוחזרו במשאבי מטא-נתונים. המגבלה הזו חלה רק על משאבי מטא-נתונים. תגי ה-DICOM ימשיכו להופיע במשאבים.

משאבים של Bulkdata

יש תמיכה בכותרות Accept הבאות:

  • multipart/related; type="application/octet-stream"; transfer-syntax=* (ברירת מחדל)
  • application/octet-stream; transfer-syntax=*

תחביר נתמך להעברה לצורך המרת קידוד

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

  • 1.2.840.10008.1.2 (Little Endian Implicit)
  • 1.2.840.10008.1.2.1 (Little Endian Explicit)
  • 1.2.840.10008.1.2.2 (Explicit VR Big Endian)
  • 1.2.840.10008.1.2.1.99 (Deflated Explicit VR Little Endian)
  • 1.2.840.10008.1.2.4.50 (JPEG Baseline Process 1)
  • 1.2.840.10008.1.2.4.51 (JPEG Extended)
  • 1.2.840.10008.1.2.4.57 (JPEG Lossless)
  • 1.2.840.10008.1.2.4.70 (JPEG Lossless Selection Value 1)
  • 1.2.840.10008.1.2.4.80 (JPEG-LS Lossless)
  • 1.2.840.10008.1.2.4.81 (JPEG-LS Near-Lossless)
  • 1.2.840.10008.1.2.4.90 (JPEG 2000 ללא אובדן נתונים בלבד)
  • 1.2.840.10008.1.2.4.91 (JPEG 2000)
  • 1.2.840.10008.1.2.4.110 (JPEG XL Lossless)
  • 1.2.840.10008.1.2.4.111 (JPEG XL JPEG Recompression)
  • 1.2.840.10008.1.2.4.112 (JPEG XL)
  • 1.2.840.10008.1.2.4.201 (HTJ2K Lossless Only)
  • 1.2.840.10008.1.2.4.202 (HTJ2K Lossless Only with RPCL Options)
  • 1.2.840.10008.1.2.4.203 (HTJ2K)
  • 1.2.840.10008.1.2.5 (RLE Lossless)
  • 1.2.840.10008.1.2.8.1 (דחיסת מסגרת תמונה מנופחת)

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

אי אפשר להמיר את הקידוד של תמונות לא מונוכרומטיות עם עומק סיביות גדול מ-8 ל-JPEG באמצעות Cloud Healthcare API. בנוסף, אפשר לבצע טרנסקוד לתמונות עם ערך של 1 ב-Bits Allocated (0028, 0100) או לתמונות שמאוחסנות בתגי Float Pixel Data (7FE0,0008) או Double Float Pixel Data (7FE0,0009) רק בין פורמטים מקוריים.

כדי להשבית את הקידוד מחדש ולאחזר קובץ כלשהו מה-API, אפשר להגדיר transfer-syntax=* בכותרת Accept.

קודי סטטוס

קוד משמעות
‫200 (OK) מטען הייעודי(Payload) של התשובה מכיל ייצוגים של כל משאבי היעד.
‫400 (בקשה שגויה) הבקשה לא הייתה תקינה (לדוגמה, פרמטרים או כותרות של שאילתה לא תקינים) עבור משאבי היעד שצוינו (לדוגמה, נתוני פיקסל חסרים).
‫401 (אין הרשאה) בבקשה חסרים פרטי כניסה לאימות.
‫403 (ההרשאה נדחתה) למשתמש המאומת אין גישה למשאב הזה (או שהמשאב לא קיים).
‫406 (לא מקובל) השרת לא תומך באף אחד מסוגי המדיה הקבילים.
‫429 (יותר מדי בקשות) הלקוח חורג מהמכסה שלו.
‫503 (השירות לא זמין) השרת לא זמין כרגע או שהבקשה חרגה מהזמן שהוקצב לה.

עסקה בחנות

Store Transaction הוא שירות אינטרנט מבוסס REST לאחסון נתוני הדמיה של DICOM.

העסקה בחנות מקבלת קבצים בינאריים של DICOM חלק 10 ישירות, או שהיא מקבלת פיצול של קובץ DICOM למטא-נתונים (שמיוצגים ב-JSON) ולנתונים בכמות גדולה. לשתי הגרסאות האלה יש סמנטיקה שונה שמתוארת בקטעים הבאים.

פרטים על המכסות והמגבלות של השיטה הזו מופיעים במאמר מכסות ומגבלות.

קובצים בינאריים של DICOM חלק 10

סוגי התוכן הבאים נתמכים:

  • multipart/related; type=application/dicom
  • application/dicom

השרת לא מבצע המרה או החלפה של מאפיינים.

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

לתשומת ליבכם, כדי להקל על השימוש, הטרנזקציה ב-Store מקבלת גם בקשת HTTP עם חלק אחד שמכילה מופע DICOM אחד עם סוג תוכן application/dicom. התכונה הזו לא נכללת בתקן הרשמי של DICOMweb.

במדריך הזה מוסבר איך לאחסן מופע DICOM.

בקשות למטא-נתונים בפורמט JSON ולנתונים בכמות גדולה

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

החלק הראשון חייב להיות מסוג Content-Type של application/dicom+json; transfer-syntax=TransferSyntaxUID כאשר TransferSyntaxUID הוא תחביר ההעברה ששימש לקידוד נתונים בינאריים באובייקטים של InlineBinary. אם אין אובייקטים מסוג InlineBinary במטא-נתונים, אפשר להשמיט את הפרמטר transfer-syntax.

האלמנטים הבאים של DICOM צריכים להופיע בכל מופע במטא-נתונים של JSON:

  • SpecificCharacterSet
  • TransferSyntaxUID
  • SOPClassUID
  • StudyInstanceUID
  • SeriesInstanceUID
  • SOPInstanceUID

צריך להגדיר את הרכיב SpecificCharacterSet לערך ISO_IR 192, ואת מטא-נתוני ה-JSON צריך לקודד ב-Unicode UTF-8. אפשר להגדיר את TransferSyntaxUID לכל תחביר העברה תקין, חוץ מתחבירי ההעברה הבאים שלא נתמכים:

  • 1.2.840.10008.1.2.2 (Explicit VR Big Endian)
  • 1.2.840.10008.1.2.1.99 (Deflated Explicit VR Little Endian)

במטא-נתונים של JSON, המשתמש יכול לציין כמה BulkDataURIs לתגי DICOM עם VRs של OB,‏ OW או UN. מזהי ה-URI של הנתונים בכמות גדולה מציינים שהנתונים הבינאריים של התג שמכיל את ה-URI יישלחו בחלק הבא, שבו הכותרת Content-Location מוגדרת ל-BulkDataURI.

לכל מופע במטא-נתונים של JSON יכול להיות BulkDataURI אחד לכל היותר. אסור שיהיו כפילויות של BulkDataURIs במטא-נתונים של JSON. אפשר לשלוח נתונים בכמות גדולה של תמונות דחוסות רק לתג PixelData, וכששולחים אותם, תחביר ההעברה שצוין בחלק של הנתונים בכמות גדולה חייב להיות זהה לערך של רכיב TransferSyntaxUID של המופע.

סוגי התוכן הבאים נתמכים בחלקים של נתונים בכמות גדולה:

  • application/octet-stream
  • image/jpeg; transfer-syntax=1.2.840.10008.1.2.4.70
  • image/jpeg; transfer-syntax=1.2.840.10008.1.2.4.50
  • image/jpeg; transfer-syntax=1.2.840.10008.1.2.​4.​51
  • image/jpeg; transfer-syntax=1.2.840.10008.1.2.​4.​57
  • image/dicom-rle; transfer-syntax=1.2.840.10008.1.2.5
  • image/jls; transfer-syntax=1.2.840.10008.1.2.​4.​80
  • image/jls; transfer-syntax=1.2.840.10008.1.2.4.81
  • image/jp2; transfer-syntax=1.2.840.10008.1.2.4.90
  • image/jp2; transfer-syntax=1.2.840.10008.1.2.4.91
  • image/jpx; transfer-syntax=1.2.840.10008.1.2.4.92
  • image/jpx; transfer-syntax=1.2.840.10008.1.2.4.93

שיטה חלופית לציון נתונים בינאריים היא קידוד שלהם כמחרוזת בקידוד Base64 של InlineBinary. התמיכה קיימת בכל התגים חוץ מ-PixelData, שחייבים להישלח כחלק מנתוני נפח. כשמשתמשים באובייקטים מסוג InlineBinary במטא-נתונים בפורמט JSON, צריך לציין את תחביר ההעברה ששימש לקידוד ב-Content-Type של חלק המטא-נתונים בפורמט JSON.

השרת לא גוזר מאקרו של מאפייני תיאור פיקסלים של תמונה.

במאמר יצירת מופעי DICOM ממטא-נתונים בפורמט JSON ומקובצי JPEG מוסבר איך עושים את זה.

תשובה

אם מתרחשת שגיאה, מוחזר תג FailureDetail נוסף (0009, ‏ 0097) (לתגובות XML) או תג FailureDetailJSON (0009,‏ 1097) (לתגובות JSON). התג FailureDetail מספק תיאור של השגיאה שקריא לבני אדם.

אם למופע DICOM יש אותו <StudyInstanceUID, SeriesInstanceUID, SOPInstanceUID> tuple כמו למופע אחר שכבר נמצא במאגר DICOM, מוחזרת שגיאה מסוג Processing failure עם התג FailureDetail 'already exists'.

התגובה יכולה להיות בפורמט JSON או בפורמט XML. אפשר לשלוט בפורמט באמצעות ערכי הכותרת Accept הבאים:

  • application/dicom+xml (ברירת מחדל)
  • application/dicom+json

קודי סטטוס

קוד משמעות
‫200 (OK) המשאב נשמר.
‫400 (בקשה שגויה) הבקשה לא תקינה (למשל, סוג מדיה או תחביר העברה לא נתמכים).
‫401 (אין הרשאה) בבקשה חסרים פרטי כניסה לאימות.
‫403 (ההרשאה נדחתה) למשתמש המאומת אין גישה למשאב הזה (או שהמשאב לא קיים).
‫406 (לא מקובל) השרת לא תומך באף אחד מסוגי המדיה הקבילים.
‫409 (Conflict) לפחות משאב אחד לא נשמר בהצלחה (למשל, קובץ DICOM לא תקין). מידע נוסף זמין בתג FailureDetail בגוף התגובה.
‫429 (יותר מדי בקשות) הלקוח חורג מהמכסה שלו.
‫503 (השירות לא זמין) השרת לא זמין כרגע או שהבקשה חרגה מהזמן שהוקצב לה.

חיפוש עסקה

Search Transaction הוא שירות אינטרנט מבוסס-REST שמאפשר לשלוח שאילתות לגבי מטא-נתונים של הדמיה ב-DICOM.

‫Cloud Healthcare API תומך בחיפוש מחקרים, סדרות ומופעים.

פרמטרים של חיפוש

יש תמיכה בחיפוש לפי התגים הבאים:

  • מחקרים:
    • StudyInstanceUID
    • PatientName
    • PatientID
    • AccessionNumber
    • ReferringPhysicianName
    • StudyDate
  • סדרה: כל מונחי החיפוש ברמת המחקר ו
    • SeriesInstanceUID
    • מודליות
  • מופעים: כל מונחי החיפוש ברמת המחקר או הסדרה ו
    • SOPInstanceUID

יש תמיכה רק בהתאמה מדויקת של ערך יחיד, למעט StudyDate שבו יש תמיכה בשאילתות טווח, ו-PatientName שבו יש תמיכה בהתאמה משוערת.

יש תמיכה בפרמטרים הנוספים הבאים של כתובות URL:

  • fuzzymatching: אם הערך הוא true, תתבצע התאמה חלקית לתג PatientName. התאמה משוערת תבצע טוקניזציה ונורמליזציה של הערך של PatientName בשאילתה ושל הערך המאוחסן. ההתאמה תתבצע אם טוקן חיפוש כלשהו הוא תחילית של טוקן מאוחסן כלשהו. לדוגמה, אם PatientName הוא John^Doe, אז הביטויים jo,‏ Do ו-John Doe יתאימו. אבל המחרוזת 'ohn' לא תתאים.
  • includefield: אפשר להגדיר רשימה מופרדת בפסיקים של מזהי מאפיינים, כמו מזהי תגי DICOM או מילות מפתח, או להגדיר את הערך all כדי להחזיר את כל התגים הזמינים. רשימה של התגים הזמינים מופיעה במאמר בנושא תוצאות שהוחזרו.

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

  • limit: המספר המקסימלי של התוצאות שיוחזרו, עד למקסימום של 5,000 עבור מחקרים/סדרות ו-50,000 עבור מקרים. מספר התוצאות שמוגדר כברירת מחדל הוא 100 למחקרים או לסדרות, ו-1,000 למופעים.

  • offset: מספר התוצאות שצריך לדלג עליהן בהתחלה, עד למקסימום של 1,000,000.

אין תמיכה בהפרש מאזור הזמן UTC.

תוצאות שהוחזרו

התגובה יכולה להיות בפורמט JSON או בפורמט XML. אפשר לשלוט בפורמט באמצעות הערכים הבאים של כותרת Accept:

  • application/dicom+json (ברירת מחדל)
  • multipart/related; type=application/dicom+xml

כברירת מחדל, המאפיינים הבאים יוחזרו:

  • מחקרים:
    • SpecificCharacterSet
    • StudyDate
    • StudyTime
    • AccessionNumber
    • InstanceAvailability
    • ReferringPhysicianName
    • TimezoneOffsetFromUTC
    • PatientName
    • PatientID
    • PatientBirthDate
    • PatientSex
    • StudyInstanceUID
    • StudyID
  • סדרה:
    • SpecificCharacterSet
    • מודליות
    • TimezoneOffsetFromUTC
    • SeriesDescription
    • SeriesInstanceUID
    • PerformedProcedureStepStartDate
    • PerformedProcedureStepStartTime
    • RequestAttributesSequence
  • מופעים:
    • SpecificCharacterSet
    • SOPClassUID
    • SOPInstanceUID
    • InstanceAvailability
    • TimezoneOffsetFromUTC
    • InstanceNumber
    • Rows
    • Columns
    • BitsAllocated
    • NumberOfFrames

עבור includefield=all, מאפייני ברירת המחדל יוחזרו יחד עם המאפיינים הבאים:

  • מחקרים:
    • PersonIdentificationCodeSequence
    • PersonAddress
    • PersonTelephoneNumbers
    • PersonTelecomInformation
    • InstitutionName
    • InstitutionAddress
    • InstitutionCodeSequence
    • ReferringPhysicianIdentificationSequence
    • ConsultingPhysicianName
    • ConsultingPhysicianIdentificationSequence
    • IssuerOfAccessionNumberSequence
    • LocalNamespaceEntityID
    • UniversalEntityID
    • UniversalEntityIDType
    • StudyDescription
    • PhysiciansOfRecord
    • PhysiciansOfRecordIdentificationSequence
    • NameOfPhysiciansReadingStudy
    • PhysiciansReadingStudyIdentificationSequence
    • RequestingServiceCodeSequence
    • ReferencedStudySequence
    • ProcedureCodeSequence
    • ReasonForPerformedProcedureCodeSequence
  • סדרה:
    • SeriesNumber
    • לטרליות
    • SeriesDate
    • SeriesTime
  • מופעים: כל המאפיינים שקיימים במופע DICOM, למעט החריגים הבאים.

תגי רצף DICOM שמכילים יותר מ-MiB אחד של נתונים לא יוחזרו בתגובת המטא-נתונים.

מטא-נתונים לא עקביים או לא תקינים

במקרה של SearchForStudies/SearchForSeries, יש פוטנציאל למטא נתונים לא עקביים ברמת המחקר/הסדרה בכמה מקרים. לדוגמה, יכול להיות שיועלו שני מופעים עם אותו StudyInstanceUID אבל עם StudyDates שונים. במקרה כזה, התנהגות החיפוש לא מוגדרת היטב. חיפוש לפי הערך הזה עשוי לעבוד במקרים מסוימים, אבל לא במקרים אחרים, והערך שמוחזר עשוי להיות שונה בשיחות שונות.

קודי סטטוס

קוד משמעות
‫200 (OK) מטען הייעודי(Payload) של התשובה מכיל ייצוגים של כל משאבי היעד.
‫400 (בקשה שגויה) הבקשה לא תקינה (למשל, פרמטרים לא תקינים של שאילתה).
‫401 (אין הרשאה) בבקשה חסרים פרטי כניסה לאימות.
‫403 (ההרשאה נדחתה) למשתמש המאומת אין גישה למשאב הזה (או שהמשאב לא קיים).
‫406 (לא מקובל) השרת לא תומך באף אחד מסוגי המדיה הקבילים.
‫429 (יותר מדי בקשות) הלקוח חורג מהמכסה שלו.
‫503 (השירות לא זמין) השרת לא זמין כרגע או שהבקשה חרגה מהזמן שהוקצב לה.

מחיקה

‫Cloud Healthcare API תומך בסוגי הפעולות הקנייניות הבאים:

  • DeleteStudy
  • DeleteSeries
  • DeleteInstance

הן משתמשות באותם נתיבי בקשה כמו המקבילות שלהן ב-WADO-RS (RetrieveStudy,‏ RetrieveSeries ו-RetrieveInstance, בהתאמה). במקום בקשת HTTP ‏GET, נעשה שימוש בבקשת DELETE. התוצאה היא שהמחקר, הסדרה או המופע שצוינו נמחקים יחד עם כל משאבי ה-DICOM שכלולים בהם.

השיטות DeleteStudy ו-DeleteSeries מחזירות פעולה ממושכת שמוחקת את כל המופעים במחקר או בסדרה. חשוב לדעת: אי אפשר להוסיף מקרים למחקר או לסדרה שנמחקים על ידי פעולה עד שהפעולה מסתיימת.

במאמר ניהול פעולות ממושכות יש מדריך לפעולות.

בקשת DeleteInstance מוצלחת מחזירה תגובה ריקה.

קודי סטטוס

קוד משמעות
‫200 (OK) המשאב של הבקשה נמחק.
‫400 (בקשה שגויה) הבקשה לא תקינה.
‫401 (אין הרשאה) בבקשה חסרים פרטי כניסה לאימות.
‫403 (ההרשאה נדחתה) למשתמש המאומת אין גישה למשאב הזה (או שהמשאב לא קיים).
‫429 (יותר מדי בקשות) הלקוח חורג מהמכסה שלו.
‫503 (השירות לא זמין) השרת לא זמין כרגע או שהבקשה חרגה מהזמן שהוקצב לה.

כותרות Accept

חלק מהשיטות שלמעלה מאפשרות לשלוט בפורמט התגובה באמצעות כותרות HTTP Accept. יש תמיכה בהתאמה של תווים כלליים לחיפוש ברמה העליונה (למשל, */*) ובסוג המשנה (למשל, image/*). אפשר גם לציין ערך q כדי לציין העדפה יחסית. אם לא מציינים ערך q בכותרת Accept, הערך שמוגדר הוא 1.0 כברירת מחדל.

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

מחלקות SOP נתמכות

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

גרסת מילון DICOM

‫Cloud Healthcare API משתמש במילון DICOM 2026b כדי לנתח תגים של מופעים שהועברו וכדי ליצור שמות של עמודות כשמייצאים ל-BigQuery.

הגדרת נתונים בכמות גדולה

כשמאחזרים מטא-נתונים, Cloud Healthcare API לא כולל תגים מסוימים שמוגדרים כ-bulkdata. במקום זאת, התגים האלה יוחזרו לצד מטא-נתונים עם BulkDataURI שמאפשר למשתמש לאחזר את התוכן של התגים האלה (ראו RetrieveBulkdata). ההגדרה הבאה משמשת את Cloud Healthcare API:

  • תג שאינו רצף שגודלו חורג מ-100 MiB.
  • תג נתונים של Pixel:‏ (7FE0,0008),‏ (7FE0,0009) (7FE0,0010).
  • כל תג עם ערך מהימנות של OB,‏ OW או UN.
  • תג עם ערך מהימנות (VR) של OD,‏ OF,‏ OL או OV שגדול מ-2 KiB.
    • מסיבות שקשורות למערכות מדור קודם, יכול להיות שתגים של מקרים שכבר הועברו ל-Cloud Healthcare API ייחשבו כ-bulkdata אם התג גדול מ-256 B ‏ (OF ו-OL) או מ-512 B ‏ (OD).
  • תג עם VR של AT, ‏ FD, ‏ FL, ‏ UL, ‏ US, ‏ SV או UV, ועם Value Multiplicity ‏ (VM) גדול מ-512.
    • מסיבות שקשורות למערכות מדור קודם, יכול להיות שתגים של מופעים שכבר הועברו ל-Cloud Healthcare API ייחשבו כ-bulkdata אם המכונה הווירטואלית גדולה מ-64.

בנוסף, התגים הבאים נחשבים ל-bulkdata, אבל אין להם BulkDataURIs כשהם מוחזרים משיטות מטא-נתונים, ואי אפשר לאחזר את התוכן שלהם באמצעות RetrieveBulkdata:

  • תג עם VR של SQ וגודל שגדול מ-1MiB בערך.