מאגרי DICOM ב-Cloud Healthcare API תומכים בקבוצת משנה של שירותי האינטרנט מבוססי RESTful שצוינו בתקן DICOM PS3.18 – שירותי אינטרנט (שנקרא בדרך כלל DICOMweb). באופן ספציפי, הם תומכים בStudies Service and Resources (שנקרא בעבר השירותים 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 הוא שירות אינטרנט מבוסס-REST לאחזור נתוני הדמיה בפורמט DICOM.
הפעולה Retrieve Transaction תומכת באחזור המשאבים הבאים:
- מקורות מידע על DICOM:
- מחקר
- סדרה
- Instance
- פריימים
- Bulkdata
- מקורות מידע על מטא-נתונים
- מחקר
- סדרה
- Instance
- Rendered Resources
- Instance
- פריימים
הוא לא תומך במשאבי Thumbnail.
פרטים על המכסות והמגבלות של השיטות האלה מופיעים במאמר מכסות ומגבלות.
מחקר/סדרה/מופעים של DICOM
יש תמיכה בכותרות Accept הבאות:
multipart/related; type="application/dicom"; transfer-syntax=*multipart/related; type="application/dicom"; transfer-syntax=1.2.840.10008.1.2multipart/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.99multipart/related; type="application/dicom"; transfer-syntax=1.2.840.10008.1.2.4.50multipart/related; type="application/dicom"; transfer-syntax=1.2.840.10008.1.2.4.51multipart/related; type="application/dicom"; transfer-syntax=1.2.840.10008.1.2.4.57multipart/related; type="application/dicom"; transfer-syntax=1.2.840.10008.1.2.4.70multipart/related; type="application/dicom"; transfer-syntax=1.2.840.10008.1.2.4.80multipart/related; type="application/dicom"; transfer-syntax=1.2.840.10008.1.2.4.81multipart/related; type="application/dicom"; transfer-syntax=1.2.840.10008.1.2.4.90multipart/related; type="application/dicom"; transfer-syntax=1.2.840.10008.1.2.4.91multipart/related; type="application/dicom"; transfer-syntax=1.2.840.10008.1.2.4.110multipart/related; type="application/dicom"; transfer-syntax=1.2.840.10008.1.2.4.111multipart/related; type="application/dicom"; transfer-syntax=1.2.840.10008.1.2.4.112multipart/related; type="application/dicom"; transfer-syntax=1.2.840.10008.1.2.4.201multipart/related; type="application/dicom"; transfer-syntax=1.2.840.10008.1.2.4.202multipart/related; type="application/dicom"; transfer-syntax=1.2.840.10008.1.2.4.203multipart/related; type="application/dicom"; transfer-syntax=1.2.840.10008.1.2.5multipart/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.2application/dicom; transfer-syntax=1.2.840.10008.1.2.1application/dicom; transfer-syntax=1.2.840.10008.1.2.1.99application/dicom; transfer-syntax=1.2.840.10008.1.2.4.50application/dicom; transfer-syntax=1.2.840.10008.1.2.4.51application/dicom; transfer-syntax=1.2.840.10008.1.2.4.57application/dicom; transfer-syntax=1.2.840.10008.1.2.4.70application/dicom; transfer-syntax=1.2.840.10008.1.2.4.80application/dicom; transfer-syntax=1.2.840.10008.1.2.4.81application/dicom; transfer-syntax=1.2.840.10008.1.2.4.90application/dicom; transfer-syntax=1.2.840.10008.1.2.4.91application/dicom; transfer-syntax=1.2.840.10008.1.2.4.110application/dicom; transfer-syntax=1.2.840.10008.1.2.4.111application/dicom; transfer-syntax=1.2.840.10008.1.2.4.112application/dicom; transfer-syntax=1.2.840.10008.1.2.4.201application/dicom; transfer-syntax=1.2.840.10008.1.2.4.202application/dicom; transfer-syntax=1.2.840.10008.1.2.4.203application/dicom; transfer-syntax=1.2.840.10008.1.2.5application/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.50multipart/related; type="image/jpeg"; transfer-syntax=1.2.840.10008.1.2.4.51multipart/related; type="image/jpeg"; transfer-syntax=1.2.840.10008.1.2.4.57multipart/related; type="image/jpeg"; transfer-syntax=1.2.840.10008.1.2.4.70multipart/related; type="image/png"multipart/related; type="image/jls"; transfer-syntax=1.2.840.10008.1.2.4.80multipart/related; type="image/jls"; transfer-syntax=1.2.840.10008.1.2.4.81multipart/related; type="image/jp2"; transfer-syntax=1.2.840.10008.1.2.4.90multipart/related; type="image/jp2"; transfer-syntax=1.2.840.10008.1.2.4.91multipart/related; type="image/jphc"; transfer-syntax=1.2.840.10008.1.2.4.201multipart/related; type="image/jphc"; transfer-syntax=1.2.840.10008.1.2.4.202multipart/related; type="image/jphc"; transfer-syntax=1.2.840.10008.1.2.4.203multipart/related; type="image/jxl"; transfer-syntax=1.2.840.10008.1.2.4.110multipart/related; type="image/jxl"; transfer-syntax=1.2.840.10008.1.2.4.112multipart/related; type="image/dicom-rle"; transfer-syntax=1.2.840.10008.1.2.5multipart/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 (Not Acceptable) | השרת לא תומך באף אחד מסוגי המדיה הקבילים. |
| 429 (יותר מדי בקשות) | הלקוח חורג מהמכסה שלו. |
| 503 (השירות לא זמין) | השרת לא זמין כרגע או שהבקשה חרגה מהזמן שהוקצב לה. |
עסקה בחנות
Store Transaction הוא שירות אינטרנט מבוסס REST לאחסון נתוני הדמיה של DICOM.
העסקה בחנות מקבלת ישירות קבצים בינאריים של DICOM חלק 10 או שהיא מקבלת פיצול של קובץ DICOM למטא-נתונים (שמיוצגים ב-JSON) ולנתונים בכמות גדולה. לשתי הגרסאות האלה יש סמנטיקה שונה שמתוארת בקטעים הבאים.
פרטים על המכסות והמגבלות של השיטה הזו מופיעים במאמר מכסות ומגבלות.
קובצים בינאריים של DICOM חלק 10
סוגי התוכן הבאים נתמכים:
multipart/related; type=application/dicomapplication/dicom
השרת לא מבצע המרה או החלפה של מאפיינים.
הגרסה הזו מקבלת את כל תחבירי ההעברה ואת כל מחלקות ה-SOP. מתבצע אימות מינימלי בלבד של קובץ ה-DICOM כדי לחלץ כמה מאפייני מטא-נתונים מרכזיים.
שימו לב: כדי להקל על השימוש, הפונקציה Store Transaction מקבלת גם בקשת 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 אחד. אסור שיהיו כפילויות של BulkDataURI במטא-נתונים של ה-JSON. נתוני תמונה בכמות גדולה שדחוסים צריכים להישלח רק לתג PixelData, וכשהם נשלחים, תחביר ההעברה שצוין בחלק של הנתונים בכמות גדולה חייב להיות זהה לערך של רכיב TransferSyntaxUID של המופע.
סוגי התוכן הבאים נתמכים בחלקים של נתונים בכמות גדולה:
application/octet-streamimage/jpeg; transfer-syntax=1.2.840.10008.1.2.4.70image/jpeg; transfer-syntax=1.2.840.10008.1.2.4.50image/jpeg; transfer-syntax=1.2.840.10008.1.2.4.51image/jpeg; transfer-syntax=1.2.840.10008.1.2.4.57image/dicom-rle; transfer-syntax=1.2.840.10008.1.2.5image/jls; transfer-syntax=1.2.840.10008.1.2.4.80image/jls; transfer-syntax=1.2.840.10008.1.2.4.81image/jp2; transfer-syntax=1.2.840.10008.1.2.4.90image/jp2; transfer-syntax=1.2.840.10008.1.2.4.91image/jpx; transfer-syntax=1.2.840.10008.1.2.4.92image/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 (Not Acceptable) | השרת לא תומך באף אחד מסוגי המדיה הקבילים. |
| 409 (Conflict) | לפחות משאב אחד לא נשמר בהצלחה (למשל, קובץ DICOM לא תקין). מידע נוסף מופיע בתג FailureDetail בגוף התגובה. |
| 429 (יותר מדי בקשות) | הלקוח חורג מהמכסה שלו. |
| 503 (השירות לא זמין) | השרת לא זמין כרגע או שהבקשה חרגה מהזמן שהוקצב לה. |
חיפוש עסקה
Search Transaction הוא שירות אינטרנט מבוסס RESTful לביצוע שאילתות על מטא-נתונים של הדמיה ב-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 (Not Acceptable) | השרת לא תומך באף אחד מסוגי המדיה הקבילים. |
| 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:
- תג נתונים של 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.