בדף הזה מוסבר איך להשתמש בהטמעה של DICOMweb ב-Cloud Healthcare API כדי לאחסן ולנהל נתוני תמונות DICOM.
מידע נוסף על האופן שבו Cloud Healthcare API מיישם שירותי REST שונים של DICOMweb זמין בהצהרת התאימות של DICOM.
ההטמעה של DICOMweb ב-Cloud Healthcare API תומכת רק ב-REST, ולא ב-RPC.
התקנת Cloud Healthcare API DICOMweb CLI
בחלק מהדוגמאות שבדף הזה נעשה שימוש ב-Cloud Healthcare API DICOMweb CLI, כלי בקוד פתוח שמפשט את האינטראקציה עם שרתי DICOMweb. הכלי מספק פונקציונליות לאחסון, לאחזור, למחיקה ולחיפוש של קובצי DICOM. בדף GitHub של הכלי יש מידע נוסף, כמו דרישות התקנה מפורטות ודרכים להתאמה אישית של הכלי.
הכלי פועל באמצעות Python. מידע על הגדרת Python ב- Google Cloudמופיע במאמר הגדרת סביבת פיתוח ב-Python.
אחרי שמגדירים את Python, אפשר להתקין את הכלי באמצעות Pip:
pip install https://github.com/GoogleCloudPlatform/healthcare-api-dicomweb-cli/archive/v1.0.zip
כדי להשתמש בכלי, צריך לבצע אימות לשרתים של Google Cloud . אפשר לעשות זאת באחת מהשיטות הבאות:
- הגדרת משתנה הסביבה
GOOGLE_APPLICATION_CREDENTIALS - אימות באמצעות Google Cloud CLI באמצעות
gcloud auth application-default login
אחרי שמגדירים אחת מהאפשרויות האלה, הכלי מזהה באופן אוטומטי את פרטי הכניסה.
אחסון נתוני DICOM
כדי לאחסן נתוני DICOM, צריך ליצור מאגר DICOM.
Cloud Healthcare API מטמיע את שירות האינטרנט Store transaction RESTful כשמאחסנים נתוני DICOM. מידע נוסף מופיע במאמר Store transaction בהצהרת התאימות של Cloud Healthcare API DICOM.
אפשר לאחסן נתוני DICOM באחת מהשיטות הבאות. כוללים את הכותרת application/dicom Accept בבקשה.
- אחסון של מופע DICOM: בדרך כלל קובץ
.dcm. אחסון של כמה פריטים באמצעות הודעה מרובת חלקים (multipart): יוצרים קובץ multipart עם כמה חלקי נתונים שמופרדים על ידי גבול. בבקשה, מגדירים את הערך
Content-Typeל-multipart/related; type=application/dicom; boundary=BOUNDARY, כאשרBOUNDARYהוא ערך שמוגדר על ידי המשתמש ומציין את החלקים השונים של ההודעה. פרטים על יצירת הודעות מרובות חלקים זמינים ב-RFC 1341.אפשר להשתמש בהודעות מרובות חלקים כדי לאחסן את סוגי הנתונים הבאים של DICOM:
- מחקרים או סדרות של DICOM שמכילים כמה מקרים. מפרידים בין כל מופע באמצעות גבול. הוראות מפורטות במאמר שמירת מחקר או סדרה בפורמט DICOM באמצעות הודעה מרובת חלקים.
- מטא-נתונים של DICOM בפורמט JSON עם קובצי JPEG. מפרידים בין כל קבוצת נתונים באמצעות גבול. הוראות מפורטות מופיעות במאמר יצירת מופעי DICOM ממטא-נתונים בפורמט JSON ומקובצי תמונות JPEG.
הערכים SOP_CLASS_UID, SOP_INSTANCE_UID, STUDY_INSTANCE_UID ו-SERIES_INSTANCE_UID מאוכלסים מתוך המטא-נתונים שסופקו. מזהי UID צריכים לעמוד בדרישות הבאות:
- הם יכולים להכיל רק ערכים מספריים שמופרדים בנקודות.
- לא מכילים מידע רפואי מוגן (PHI).
בדוגמאות הבאות אפשר לראות איך מאחסנים מופע בחנות DICOM. מידע נוסף זמין במאמר projects.locations.datasets.dicomStores.storeInstances.
אחסון מופע DICOM
בדוגמאות הבאות אפשר לראות איך מאחסנים מופע DICOM. מידע נוסף זמין במאמר projects.locations.datasets.dicomStores.storeInstances.
REST
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
-
PROJECT_ID: מזהה הפרויקט ב- Google Cloud -
LOCATION: המיקום של מערך הנתונים -
DATASET_ID: מערך הנתונים הראשי של מאגר DICOM -
DICOM_STORE_ID: מזהה מאגר DICOM -
DICOM_INSTANCE_FILE: הנתיב לקובץ מופע DICOM במחשב המקומי שמסתיים בסיומת.dcm
כדי לשלוח את הבקשה אתם צריכים לבחור אחת מהאפשרויות הבאות:
curl
מריצים את הפקודה הבאה:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/dicom" \
--data-binary @DICOM_INSTANCE_FILE \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies"
PowerShell
מריצים את הפקודה הבאה:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-InFile DICOM_INSTANCE_FILE `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies" | Select-Object -Expand Content
Go
Java
Node.js
Python
שמירת מחקר או סדרה בפורמט DICOM באמצעות הודעה מרובת חלקים
בדוגמאות הבאות אפשר לראות איך לאחסן מחקר או סדרה בפורמט DICOM, שכוללים כמה מקרים, באמצעות הודעה מרובת חלקים.
REST
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
-
PROJECT_ID: מזהה הפרויקט ב- Google Cloud -
LOCATION: המיקום של מערך הנתונים -
DATASET_ID: מערך הנתונים הראשי של מאגר DICOM -
DICOM_STORE_ID: מזהה מאגר DICOM -
MULTIPART_FILE: הנתיב לקובץ מרובה חלקים במחשב המקומי. הקובץ מכיל כמה מקרים של DICOM, וכל אחד מהם מופרד על ידי גבול. -
BOUNDARY: התוחם שמשמש להפרדה בין מופעי DICOM בקובץ מרובה חלקים
כדי לשלוח את הבקשה אתם צריכים לבחור אחת מהאפשרויות הבאות:
curl
מריצים את הפקודה הבאה:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: multipart/related; type=application/dicom; boundary=BOUNDARY" \
--data-binary @MULTIPART_FILE \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies"
PowerShell
מריצים את הפקודה הבאה:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-InFile MULTIPART_FILE `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies" | Select-Object -Expand Content
ציון סוג אחסון (storage class) למופעי DICOM
כברירת מחדל, השיטה projects.locations.datasets.dicomStores.storeInstances מאחסנת מופע DICOM בחנות DICOM עם סוג אחסון (storage class) רגיל. אפשר להגדיר את סוג האחסון כשמאחסנים אובייקטים בפורמט DICOM מהמחשב המקומי.
מידע נוסף מופיע במאמר בנושא שינוי סוג האחסון של DICOM.
בדוגמאות הבאות מוסבר איך לציין את סוג האחסון כשמאחסנים אובייקטים של DICOM מהמחשב המקומי.
curl
משתמשים בשיטה projects.locations.datasets.dicomStores.storeInstances.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
-
PROJECT_ID: מזהה הפרויקט ב- Google Cloud -
LOCATION: המיקום של מערך הנתונים -
DATASET_ID: מערך הנתונים הראשי של מאגר DICOM -
DICOM_STORE_ID: מזהה מאגר DICOM -
DICOM_INSTANCE_FILE: הנתיב לקובץ מופע DICOM במחשב המקומי שמסתיים בסיומת.dcm -
STORAGE_CLASS: סוג האחסון של מופע DICOM בחנות DICOM מתוךSTANDARD,NEARLINE,COLDLINEו-ARCHIVE
curl -X POST \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/dicom" \ -H "Storage-Class: STORAGE_CLASS" \ --data-binary @DICOM_INSTANCE_FILE \ "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies"
אם הבקשה מצליחה, השרת מחזיר את התגובה:
<NativeDicomModel>
<DicomAttribute tag="00081190" vr="UR" keyword="RetrieveURL">
<Value number="1">https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies/STUDY_INSTANCE_UID</Value>
</DicomAttribute>
<DicomAttribute tag="00081199" vr="SQ" keyword="ReferencedSOPSequence">
<Item number="1">
<DicomAttribute tag="00081150" vr="UI" keyword="ReferencedSOPClassUID">
<Value number="1">SOP_CLASS_UID</Value>
</DicomAttribute>
<DicomAttribute tag="00081155" vr="UI" keyword="ReferencedSOPInstanceUID">
<Value number="1">SOP_INSTANCE_UID</Value>
</DicomAttribute>
<DicomAttribute tag="00081190" vr="UR" keyword="RetrieveURL">
<Value number="1">https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies/STUDY_INSTANCE_UID/series/SERIES_INSTANCE_UID/instances/INSTANCE_UID</Value>
</DicomAttribute>
</Item>
</DicomAttribute>
</NativeDicomModel>
PowerShell
משתמשים בשיטה
projects.locations.datasets.dicomStores.storeInstances.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
-
PROJECT_ID: מזהה הפרויקט ב- Google Cloud -
LOCATION: המיקום של מערך הנתונים -
DATASET_ID: מערך הנתונים הראשי של מאגר DICOM -
DICOM_STORE_ID: מזהה מאגר DICOM -
DICOM_INSTANCE_FILE: הנתיב לקובץ מופע DICOM במחשב המקומי שמסתיים בסיומת.dcm -
STORAGE_CLASS: סוג האחסון של מופע DICOM בחנות DICOM מתוךSTANDARD,NEARLINE,COLDLINEו-ARCHIVE
$cred = gcloud auth application-default print-access-token $headers = @{ "Authorization" = "Bearer $cred"; "Storage-Class" = "STORAGE_CLASS" } Invoke-WebRequest ` -Method Post ` -Headers $headers ` -ContentType: "application/dicom" ` -InFile DCM_FILE.dcm ` -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies" | Select-Object -Expand Content
אם הבקשה מצליחה, השרת מחזיר את התגובה בפורמט JSON:
<NativeDicomModel>
<DicomAttribute tag="00081190" vr="UR" keyword="RetrieveURL">
<Value number="1">https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies/STUDY_INSTANCE_UID</Value>
</DicomAttribute>
<DicomAttribute tag="00081199" vr="SQ" keyword="ReferencedSOPSequence">
<Item number="1">
<DicomAttribute tag="00081150" vr="UI" keyword="ReferencedSOPClassUID">
<Value number="1">SOP_CLASS_UID</Value>
</DicomAttribute>
<DicomAttribute tag="00081155" vr="UI" keyword="ReferencedSOPInstanceUID">
<Value number="1">SOP_INSTANCE_UID</Value>
</DicomAttribute>
<DicomAttribute tag="00081190" vr="UR" keyword="RetrieveURL">
<Value number="1">https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies/STUDY_INSTANCE_UID/series/SERIES_INSTANCE_UID/instances/INSTANCE_UID</Value>
</DicomAttribute>
</Item>
</DicomAttribute>
</NativeDicomModel>
יצירת מופעי DICOM ממטא-נתוני JSON ותמונות JPEG
Cloud Healthcare API יכול ליצור מופעי DICOM באמצעות קובץ מטא-נתונים בפורמט JSON וקובץ JPEG. אם אתם מעדיפים לא לבצע בעצמכם ניתוח של DICOM וסריאליזציה, אתם יכולים ליצור מופעי DICOM ממטא-נתונים בפורמט JSON ומקובץ JPEG, כי Cloud Healthcare API יכול לבצע את המשימות האלה בשבילכם.
בקשת ה-HTTP ששומרת את הנתונים האלה צריכה לכלול את הפרטים הבאים בContent-Type של הבקשה:
- סוג המדיה
multipart/related - סוג ה-MIME
application/dicom+json - מפריד
boundary
בדוגמאות הבאות מוסבר איך לאחסן קובץ מטא-נתונים בפורמט JSON עם קובץ JPEG.
curl
בדוגמה הבאה אנחנו מניחים שיש לכם תמונה קיימת בפורמט JPEG.
שמירת קובץ מטא-נתונים בפורמט JSON עם תמונת JPEG כוללת שלושה שלבים:
- יוצרים קובץ שמכיל ייצוג JSON של מופע DICOM שמכיל תמונת JPEG. למטה מופיע קובץ תבנית.
יוצרים שלושה קבצים של גבולות:
-
opening.file: מכיל את הגבול הפותח של קובץ המטא-נתונים של JSON -
middle.file: מכיל את הגבול האמצעי של תמונת ה-JPEG -
closing.file: מכיל את הגבול הסוגר של כל חלקי ההודעה
-
יוצרים קובץ בשם
multipart-request.fileעל ידי הוספת קובץ מטא-נתונים בפורמט JSON ותמונת JPEG בתוך קובצי הגבול.
שימו לב לערכים הבאים שמוגדרים כברירת מחדל בקובץ התבנית של מטא-נתוני ה-JSON:
- מזהה ה-UID של תחביר ההעברה (
1.2.840.10008.1.2.4.50) מציין את תחביר ההעברה כ-JPEG Baseline. רוב התמונות בפורמט JPEG הן בפורמט JPEG Baseline. הערך של הניתוח הפוטומטרי (YBR_FULL_422) מציין שהתמונה היא בצבע, ולא בגווני אפור. -
BulkDataUriהוא תיאור שרירותי של התמונה, ובתבנית הוא מוגדר כ-jpeg-image. הערך הזה משמש ליצירת גבול התמונה.
הערכים של SOP_CLASS_UID, SOP_INSTANCE_UID, STUDY_INSTANCE_UID ו-SERIES_INSTANCE_UID יכולים להיות כל ערך מספרי שמופרד באמצעות נקודות. ב-DICOM נעשה שימוש בהיררכיה של מזהים עבור מקרים, מטופלים, מחקרים וסדרות, ולכן צריך לבחור קבוצה הגיונית של מזהים למשתנים האלה.
מחליפים את SOP Class UID בערך מטבלת מחלקות ה-SOP הרגילות שמציין את סוג התמונה שמאוחסנת.
מחליפים את Rows בגובה האנכי של תמונת ה-JPEG בפיקסלים. מחליפים את Columns ברוחב האופקי של תמונת ה-JPEG בפיקסלים.
כך עושים את זה:
שומרים את הטקסט הבא בקובץ בשם
instance.json, ומחליפים את המשתנים במקומות שבהם מצוין.[{ "00020010":{"vr":"UI","Value":["1.2.840.10008.1.2.4.50"]}, "00080005":{"vr":"CS","Value":["ISO_IR 192"]}, "00080016":{"vr":"UI","Value":["SOP_CLASS_UID"]}, "00080018":{"vr":"UI","Value":["SOP_INSTANCE_UID"]}, "0020000D":{"vr":"UI","Value":["STUDY_INSTANCE_UID"]}, "0020000E":{"vr":"UI","Value":["SERIES_INSTANCE_UID"]}, "00280002":{"vr":"US","Value":[3]}, "00280004":{"vr":"CS","Value":["YBR_FULL_422"]}, "00280006":{"vr":"US","Value":[0]}, "00280008":{"vr":"IS","Value":[1]}, "00280010":{"vr":"US","Value":[Rows]}, "00280011":{"vr":"US","Value":[Columns]}, "00280100":{"vr":"US","Value":[8]}, "00280101":{"vr":"US","Value":[8]}, "00280102":{"vr":"US","Value":[7]}, "00280103":{"vr":"US","Value":[0]}, "7FE00010":{"vr":"OB","BulkDataURI":"jpeg-image"} }]
כדי ליצור את הגבולות של הפתיחה (למטא-נתונים בפורמט JSON), האמצע (לתמונה בפורמט JPEG) והסגירה, מריצים את הפקודות הבאות:
echo -ne "--DICOMwebBoundary\r\nContent-Type: application/dicom+json\r\n\r\n" > opening.file echo -ne "\r\n--DICOMwebBoundary\r\nContent-Location: jpeg-image\r\nContent-Type: image/jpeg; transfer-syntax=1.2.840.10008.1.2.4.50\r\n\r\n" > middle.file echo -ne "\r\n--DICOMwebBoundary--" > closing.file
עוטפים את תמונת ה-JPEG בגבולות האמצעיים והסוגרים. קובץ הפלט ששולחים ל-Cloud Healthcare API נקרא
multipart-request.file:cat opening.file instance.json middle.file image.jpg closing.file > multipart-request.file
שולחים בקשה אל
POSTומציינים את הפרטים הבאים:- השם של קבוצת הנתונים הראשית
- השם של מאגר DICOM
- הקובץ
multipart-request.file - טוקן גישה
בדוגמה הבאה מוצגת בקשת POST באמצעות curl.
curl -X POST \ -H "Content-Type: multipart/related; type=\"application/dicom+json\"; boundary=DICOMwebBoundary" \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies \ --data-binary @multipart-request.file
אם הבקשה מצליחה, השרת מחזיר את התגובה בפורמט XML:
<NativeDicomModel>
<DicomAttribute tag="00081190" vr="UR" keyword="RetrieveURL">
<Value number="1">https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies/STUDY_INSTANCE_UID</Value>
</DicomAttribute>
<DicomAttribute tag="00081199" vr="SQ" keyword="ReferencedSOPSequence">
<Item number="1">
<DicomAttribute tag="00081150" vr="UI" keyword="ReferencedSOPClassUID">
<Value number="1">SOP_CLASS_UID</Value>
</DicomAttribute>
<DicomAttribute tag="00081155" vr="UI" keyword="ReferencedSOPInstanceUID">
<Value number="1">SOP_INSTANCE_UID</Value>
</DicomAttribute>
<DicomAttribute tag="00081190" vr="UR" keyword="RetrieveURL">
<Value number="1">https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies/STUDY_INSTANCE_UID/series/SERIES_INSTANCE_UID/instances/INSTANCE_UID</Value>
</DicomAttribute>
</Item>
</DicomAttribute>
</NativeDicomModel>
שימוש ב-DICOMweb CLI
בדוגמאות הבאות מוצגות דרכים להשתמש ב-Cloud Healthcare API DICOMweb CLI כדי לאחסן מופע DICOM אחד או יותר. יש דוגמאות נוספות במאגר GitHub של DICOMweb CLI.
אחסון של מופע DICOM יחיד:
dcmweb \ https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb \ store DCM_FILE
אם הבקשה מצליחה, השרת מחזיר תגובה שדומה לדוגמה הבאה:
TIMESTAMP -- DCM_FILE.dcm uploaded as https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies/STUDY_INSTANCE_UID/series/SERIES_INSTANCE_UID TIMESTAMP -- INSTANCE_UID TIMESTAMP -- Transferred SIZE in COUNT files
אחסון של כמה קבצים במקביל באמצעות תווים כלליים לחיפוש:
בדוגמה הבאה מוצגות הוראות לאחסון רקורסיבי של כמה קובצי DICOM במקביל, מתוך ספריית העבודה הנוכחית. כדי לאחסן את הקבצים במקביל, מוסיפים את הדגל -m.
dcmweb -m \ https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb \ store "./**.dcm"
אם הבקשה מצליחה, השרת מחזיר תגובה שדומה לדוגמה הבאה:
TIMESTAMP -- DCM_FILE_1.dcm uploaded as https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies/STUDY_INSTANCE_UID/series/SERIES_INSTANCE_UID TIMESTAMP -- INSTANCE_UID TIMESTAMP -- DCM_FILE_2.dcm uploaded as https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies/STUDY_INSTANCE_UID/series/SERIES_INSTANCE_UID TIMESTAMP -- INSTANCE_UID TIMESTAMP -- DCM_FILE_3.dcm uploaded as https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies/STUDY_INSTANCE_UID/series/SERIES_INSTANCE_UID TIMESTAMP -- INSTANCE_UID ... TIMESTAMP -- Transferred SIZE in COUNT files
חיפוש נתוני DICOM
אפשר לחפש מחקרים, סדרות, מקרים ומסגרות. בדוגמאות הבאות מוצגת הטמעה של Search transaction כדי לחפש מקרים במאגר DICOM. מידע נוסף זמין במאמר חיפוש טרנזקציות בהצהרת התאימות של Cloud Healthcare API DICOM.
בדוגמאות הבאות אפשר לראות איך לחפש מקרים במאגר DICOM. מידע נוסף זמין במאמר projects.locations.datasets.dicomStores.searchForInstances.
REST
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
-
PROJECT_ID: מזהה הפרויקט ב- Google Cloud -
LOCATION: המיקום של מערך הנתונים -
DATASET_ID: מערך הנתונים הראשי של מאגר DICOM -
DICOM_STORE_ID: מזהה מאגר DICOM
כדי לשלוח את הבקשה אתם צריכים לבחור אחת מהאפשרויות הבאות:
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/dicomStores/DICOM_STORE_ID/dicomWeb/instances"
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/dicomStores/DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand Content
APIs Explorer
פותחים את דף העזר של ה-method. החלונית של API Explorer תיפתח בצד שמאל של הדף. אפשר להשתמש בכלי הזה כדי לשלוח בקשות. ממלאים את כל שדות החובה ולוחצים על Execute.
אתם אמורים לקבל תגובת JSON שדומה לזו:
Go
Java
Node.js
Python
חיפוש באמצעות תגי DICOM
כדי לצמצם את החיפושים, אפשר להוסיף תגי DICOM לבקשות בצורה של פרמטרים של שאילתה. לדוגמה, יכול להיות שתרצו לחפש מחקרים שמכילים את השם של מטופל.
בדומה לדוגמאות הקודמות, בדוגמאות הבאות מוצגת הטמעה של Search transaction כדי לחפש מחקרים במאגר DICOM. עם זאת, בדוגמאות האלה מוסבר איך לחפש מחקרים שבהם שם המטופלת הוא Sally Zhang.
בדוגמה הבאה מוצג חלק ממטא-הנתונים של מופע DICOM שבו מופיע שם המטופל:
...
{
"vr": "PN",
"Value": [
{
"Alphabetic": "Sally Zhang"
}
]
}
...
כדי לחפש מחקרים במאגר DICOM שקשורים למטופל, מוסיפים פרמטר שאילתה לבקשה שבה מחפשים לפי תג DICOM PatientName.
רשימה של פרמטרים נתמכים לחיפוש ב-Cloud Healthcare API מופיעה במאמרי העזרה בנושא חיפוש טרנזקציות.
REST
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
-
PROJECT_ID: מזהה הפרויקט ב- Google Cloud -
LOCATION: המיקום של מערך הנתונים -
DATASET_ID: מערך הנתונים הראשי של מאגר DICOM -
DICOM_STORE_ID: מזהה מאגר DICOM
כדי לשלוח את הבקשה אתם צריכים לבחור אחת מהאפשרויות הבאות:
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/dicomStores/DICOM_STORE_ID/dicomWeb/studies?PatientName=Sally%20Zhang"
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/dicomStores/DICOM_STORE_ID/dicomWeb/studies?PatientName=Sally%20Zhang" | Select-Object -Expand Content
APIs Explorer
פותחים את דף העזר של ה-method. החלונית של API Explorer תיפתח בצד שמאל של הדף. אפשר להשתמש בכלי הזה כדי לשלוח בקשות. ממלאים את כל שדות החובה ולוחצים על Execute.
אתם אמורים לקבל תגובת JSON שדומה לזו:
Go
Java
Node.js
Python
שימוש ב-DICOM Studio
בשלבים הבאים מוסבר איך להשתמש ב-DICOM Studio כדי לחפש מחקרים, סדרות ומופעים.
נכנסים לאפליקציית DICOM Studio במסוף Google Cloud .
לוחצים על Browse an existing DICOM store (עיון במאגר DICOM קיים). בוחרים את מאגר DICOM שרוצים לחפש בו.
תועברו לדף סביבת העבודה. משתמשים בסרגל הסינון כדי לחפש מחקרים, סדרות או מקרים. אפשר לחפש לפי תגי DICOM שנתמכים על ידי Cloud Healthcare API.
- לדוגמה, כדי לחפש מטופלת בשם "Sally Zhang", מסננים לפי "שם המטופל/ת" (
PatientName) ומזינים "Sally Zhang". - מידע נוסף על תגים נתמכים זמין בהצהרת התאימות של DICOM.
- לדוגמה, כדי לחפש מטופלת בשם "Sally Zhang", מסננים לפי "שם המטופל/ת" (
התוצאות מוצגות בטבלה. אפשר להרחיב מחקרים כדי לראות סדרות, ולהרחיב סדרות כדי לראות מקרים.
אפשר ללחוץ על כל אחת מהתוצאות כדי לראות מידע נוסף עליהן.
שימוש ב-DICOMweb CLI
בדוגמה הבאה מוצג איך משתמשים ב-Cloud Healthcare API DICOMweb CLI כדי לחפש מופעים בחנות DICOM. דוגמאות נוספות, כולל איך לסנן את החיפוש, זמינות במאגר DICOMweb CLI ב-GitHub.
dcmweb \ https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb \ search instances
אם הבקשה מצליחה, השרת מחזיר את התגובה בפורמט JSON:
[
{
"00080005":{
"vr":"CS",
"Value":[
"CODE_STRING"
]
},
"00080016":{
"vr":"UI",
"Value":[
"UNIQUE_IDENTIFIER"
]
},
"00080018":{
"vr":"UI",
"Value":[
"UNIQUE_IDENTIFIER"
]
},
"00080020":{
"vr":"DA",
"Value":[
"DATE_TIME"
]
},
"00080030":{
"vr":"TM",
"Value":[
"TIME"
]
},
"00080060":{
"vr":"CS",
"Value":[
"CODE_STRING"
]
},
"0008103E":{
"vr":"LO",
"Value":[
"LONG_STRING"
]
},
"00100010":{
"vr":"PN",
"Value":[
{
"Alphabetic":"Anonymized"
}
]
},
},
...
]
אחזור נתוני DICOM
Cloud Healthcare API מיישם את העסקה Retrieve לאחזור מחקרים, סדרות, מקרים ומסגרות במאגר DICOM.
מידע נוסף מופיע במאמר שליפת טרנזקציה בהצהרת התאימות של Cloud Healthcare API DICOM.
אחזור מחקר
בדוגמאות הבאות אפשר לראות איך מאחזרים מחקר. מידע נוסף זמין במאמר DICOM study/series/instances בהצהרת התאימות של Cloud Healthcare API DICOM.
כשמציינים את קובץ הפלט, משתמשים בסיומת כמו .multipart. לאחר מכן מנתחים את הקובץ המרובה חלקים כדי לקבל את הסדרות והמופעים הבודדים במחקר.
מידע נוסף זמין במאמר projects.locations.datasets.dicomStores.studies.retrieveStudy.
curl
כדי לאחזר מחקר, שולחים בקשה ל-GET ומציינים את הפרטים הבאים:
- השם של קבוצת הנתונים הראשית
- השם של מאגר DICOM
- המזהה הייחודי של המחקר (UID)
- קובץ פלט
- טוקן גישה
בדוגמה הבאה מוצגת בקשת GET באמצעות curl.
curl -X GET \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Accept: multipart/related; type=application/dicom; transfer-syntax=*" \ "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies/STUDY_INSTANCE_UID" \ --output FILENAME.multipart
אם הבקשה תאושר, קובץ ה-DICOM ייכתב במחשב שלכם.
PowerShell
כדי לאחזר מחקר, שולחים בקשה ל-GET ומציינים את הפרטים הבאים:
- השם של קבוצת הנתונים הראשית
- השם של מאגר DICOM
- המזהה הייחודי של המחקר (UID)
- קובץ פלט
- טוקן גישה
בדוגמה הבאה מוצגת בקשת GET באמצעות Windows PowerShell.
$cred = gcloud auth application-default print-access-token $headers = @{ Authorization = "Bearer $cred"; Accept = "multipart/related; type=application/dicom; transfer-syntax=*" } Invoke-WebRequest ` -Method Get ` -Headers $headers ` -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies/STUDY_INSTANCE_UID" | Select-Object -Expand Content -OutFile FILENAME.multipart `
אם הבקשה תאושר, קובץ ה-DICOM ייכתב במחשב שלכם.
Go
Java
Node.js
Python
אחזור מופע
בדוגמאות הבאות אפשר לראות איך מאחזרים מופע. למידע נוסף, אפשר לעיין במאמר מופעי DICOM בהצהרת התאימות של Cloud Healthcare API DICOM.
אם אתם מאחזרים מופע, אתם יכולים להימנע מניתוח של גבולות multipart באמצעות כותרת ה-HTTP Accept: application/dicom. הוספת
transfer-syntax=* מונעת המרה של הקובץ, כי הוא מוחזר בפורמט שבו הוא
נשמר במקור.
מידע נוסף זמין במאמר projects.locations.datasets.dicomStores.studies.series.instances.retrieveInstance.
curl
כדי לאחזר מופע, שולחים GET בקשה ומציינים את הפרטים הבאים:
- השם של קבוצת הנתונים הראשית
- השם של מאגר DICOM
- המזהה הייחודי של המחקר (UID)
- מזהה ה-UID של הסדרה, מזהה ה-UID של המופע
- שם קובץ פלט
- טוקן גישה
בדוגמה הבאה מוצגת בקשת GET באמצעות curl.
curl -X GET \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Accept: application/dicom; transfer-syntax=*" \ "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies/STUDY_INSTANCE_UID/series/SERIES_INSTANCE_UID/instances/INSTANCE_UID" \ --output FILENAME.dcm
אם הבקשה תאושר, קובץ ה-DICOM ייכתב במחשב שלכם.
PowerShell
כדי לאחזר מופע, שולחים GET בקשה ומציינים את הפרטים הבאים:
- השם של קבוצת הנתונים הראשית
- השם של מאגר DICOM
- המזהה הייחודי של המחקר (UID)
- המזהה הייחודי (UID) של הסדרה
- מזהה המופע
- שם קובץ פלט
- טוקן גישה
בדוגמה הבאה מוצגת בקשת GET באמצעות Windows PowerShell.
$cred = gcloud auth application-default print-access-token $headers = @{ Authorization = "Bearer $cred"; Accept = "application/dicom; transfer-syntax=*" } Invoke-RestMethod ` -Method Get ` -Headers $headers ` -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies/STUDY_INSTANCE_UID/series/SERIES_INSTANCE_UID/instances/INSTANCE_UID" -OutFile FILENAME.dcm `
אם הבקשה תאושר, קובץ ה-DICOM ייכתב במחשב שלכם.
Go
Java
Node.js
Python
אחזור פורמטים של תמונות של צרכנים
בדוגמאות הבאות מוסבר איך לאחזר פורמט הדמיה של צרכן כמו JPEG או PNG באמצעות הטמעה של Cloud Healthcare API של משאבים שעברו עיבוד. מידע נוסף מופיע במאמר Rendered resources בהצהרת התאימות של Cloud Healthcare API DICOM.
מידע נוסף זמין במאמר projects.locations.datasets.dicomStores.studies.series.instances.retrieveRendered.
curl
כדי לאחזר תמונה, צריך לשלוח GETבקשה ולציין את הפרטים הבאים:
- השם של קבוצת הנתונים הראשית
- השם של מאגר DICOM
- המזהה הייחודי של המחקר (UID)
- המזהה הייחודי (UID) של הסדרה
- מזהה המופע
- שם קובץ פלט
- טוקן גישה
בדוגמה הבאה אפשר לראות איך מאחזרים תמונת PNG באמצעות בקשת GET באמצעות curl.
curl -X GET \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Accept: image/png" \ "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies/STUDY_INSTANCE_UID/series/SERIES_INSTANCE_UID/instances/INSTANCE_UID/rendered" \ --output FILENAME.png
אם הבקשה מצליחה, קובץ ה-PNG נכתב במחשב שלכם.
PowerShell
כדי לאחזר תמונה, צריך לשלוח GETבקשה ולציין את הפרטים הבאים:
- השם של קבוצת הנתונים הראשית
- השם של מאגר DICOM
- המזהה הייחודי של המחקר (UID)
- המזהה הייחודי (UID) של הסדרה
- מזהה המופע
- שם קובץ פלט
- טוקן גישה
בדוגמה הבאה מוצג איך לאחזר תמונת PNG באמצעות בקשת GET באמצעות Windows PowerShell.
$cred = gcloud auth application-default print-access-token $headers = @{ Authorization = "Bearer $cred"; Accept = "image/png" } Invoke-RestMethod ` -Method Get ` -Headers $headers ` -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies/STUDY_INSTANCE_UID/series/SERIES_INSTANCE_UID/instances/INSTANCE_UID/rendered" -OutFile FILENAME.png `
אם הבקשה מצליחה, קובץ ה-PNG נכתב במחשב שלכם.
Go
Java
Node.js
Python
אחזור מטא-נתונים
אפשר לאחזר את המטא-נתונים של כל המופעים במחקר או בסדרה. בדוגמה הבאה אפשר לראות איך מאחזרים את המטא-נתונים של מופע. מידע נוסף מופיע במאמר משאבי מטא-נתונים בהצהרת התאימות של Cloud Healthcare API DICOM.
מידע נוסף זמין במאמר projects.locations.datasets.dicomStores.studies.series.instances.retrieveMetadata.
כשמפעילים את השיטה retrieveMetadata, היא מחזירה את אותה קבוצת שדות שמוחזרת כשמחפשים מופע באמצעות פרמטר השאילתה includefield=all.
הפשרה בין retrieveMetadata לבין searchForInstances היא גמישות ההתאמה.
retrieveMetadata מחזיר תשובה עקבית עם היקף חיפוש מצומצם. האפשרות הזו אידיאלית לתרחישים שבהם מתבצעת קליטה של מספר רב של מקרים בפורמט DICOM. בינתיים, אפשר להתאים אישית את searchForInstances עם כמה פרמטרים של שאילתות, כמו includefield. האפשרות הזו מתאימה לתרחישים שבהם צריך למזער את גודל התשובה על ידי הכללה של שדות נבחרים בלבד.
כברירת מחדל, retrieveMetadata מחזירה תגובת JSON. כדי להחזיר תגובת XML, צריך להעביר כותרת HTTP Accept: multipart/related; type="application/dicom+xml" בבקשה.
REST
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
-
PROJECT_ID: מזהה הפרויקט ב- Google Cloud -
LOCATION: המיקום של מערך הנתונים -
DATASET_ID: מערך הנתונים הראשי של מאגר DICOM -
DICOM_STORE_ID: מזהה מאגר DICOM -
STUDY_INSTANCE_UID: המזהה הייחודי של מופע המחקר -
SERIES_INSTANCE_UID: המזהה הייחודי של מופע הסדרה -
INSTANCE_UID: המזהה הייחודי של המכונה
כדי לשלוח את הבקשה אתם צריכים לבחור אחת מהאפשרויות הבאות:
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/dicomStores/DICOM_STORE_ID/dicomWeb/studies/STUDY_INSTANCE_UID/series/SERIES_INSTANCE_UID/instances/INSTANCE_UID/metadata"
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/dicomStores/DICOM_STORE_ID/dicomWeb/studies/STUDY_INSTANCE_UID/series/SERIES_INSTANCE_UID/instances/INSTANCE_UID/metadata" | Select-Object -Expand Content
APIs Explorer
פותחים את דף העזר של ה-method. החלונית של API Explorer תיפתח בצד שמאל של הדף. אפשר להשתמש בכלי הזה כדי לשלוח בקשות. ממלאים את כל שדות החובה ולוחצים על Execute.
אתם אמורים לקבל תגובת JSON שדומה לזו:
אחזור נתונים בכמות גדולה
מופע DICOM מורכב מרכיבי נתונים רבים. רוב רכיבי הנתונים מכילים חלקים קטנים של מטא-נתונים (כמו שם המטופל או תאריך המחקר), אבל חלקם עשויים להכיל כמויות גדולות של נתונים, שנקראים גם 'נתונים בכמות גדולה'. כדי להבין אילו נתונים נחשבים ל'נתונים בכמות גדולה' ב-Cloud Healthcare API, אפשר לעיין בהגדרה של נתונים בכמות גדולה.
ה-API של Cloud Healthcare מעבד את רכיבי הנתונים האלה בנפרד. כדי לאחזר את הבייטים של הערך הגולמי, קוראים ל-projects.locations.datasets.dicomStores.studies.series.instances.bulkdata.retrieveBulkdata באמצעות אחת מהאפשרויות הבאות:
אחזור ישיר: אם אתם יודעים את המזהים של המחקר, הסדרה, המופע והתג הספציפי שאתם רוצים לאחזר, אתם יכולים ליצור את כתובת ה-URL של הבקשה ולקרוא ישירות ל-
retrieveBulkdata. השיטה היעילה ביותר היא שליפה ישירה, כי היא דורשת רק קריאה אחת ל-API.אחזור באמצעות מטא-נתונים של מופע DICOM: כשמאחזרים מטא-נתונים של מופע, התשובה מכילה
BulkDataURIלכל תג bulkdata נתמך. אפשר להשתמש ב-URI הזה כדי לבצע בקשתretrieveBulkdata. השיטה הזו שימושית כדי לגלות את תגי הנתונים בכמות גדולה שזמינים למופע לפני האחזור.
בדוגמאות הבאות אפשר לראות איך מאחזרים נתונים בכמות גדולה באמצעות אחזור ישיר:
REST
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
-
PROJECT_ID: מזהה הפרויקט ב- Google Cloud -
LOCATION: המיקום של מערך הנתונים -
DATASET_ID: מערך הנתונים הראשי של מאגר DICOM -
DICOM_STORE_ID: מזהה מאגר DICOM -
STUDY_INSTANCE_UID: המזהה הייחודי של מופע המחקר -
SERIES_INSTANCE_UID: המזהה הייחודי של מופע הסדרה -
INSTANCE_UID: המזהה הייחודי של המכונה -
BULK_DATA_PATH: התג של הנתונים בכמות גדולה, למשל7FE00010עבורPixelData. אם יש תג (AAAA,AAAA) ברצף (BBBB,BBBB) באינדקס הפריט i, הנתיב יהיהBBBBBBBB/i/AAAAAAAA -
OUTPUT_FILE_PATH: נתיב במחשב המקומי שבו מאוחסנים הנתונים בכמות גדולה בקובץ DAT. חובה לציין את התוסף.dat.
כדי לשלוח את הבקשה אתם צריכים לבחור אחת מהאפשרויות הבאות:
curl
מריצים את הפקודה הבאה:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
--output OUTPUT_FILE_PATH \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies/STUDY_INSTANCE_UID/series/SERIES_INSTANCE_UID/instances/INSTANCE_UID/bulkdata/BULK_DATA_PATH"
PowerShell
מריצים את הפקודה הבאה:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-OutFile OUTPUT_FILE_PATH `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies/STUDY_INSTANCE_UID/series/SERIES_INSTANCE_UID/instances/INSTANCE_UID/bulkdata/BULK_DATA_PATH"
שימוש ב-DICOM Studio
אחרי חיפוש נתוני DICOM, אפשר להשתמש ב-DICOM Studio כדי להציג מחקרים, סדרות, מקרים והמטא-נתונים שלהם.
מחפשים את נתוני ה-DICOM שרוצים לאחזר.
בטבלת התוצאות, לוחצים על מחקר, סדרה או מופע כדי לעבור לדף הפרטים שלו.
בדף הפרטים אפשר:
- הצגת מטא-נתונים: המטא-נתונים מוצגים בדף הפרטים, בכרטיסייה מטא-נתונים.
- הצגת נתוני פיקסלים שעברו עיבוד: עבור סדרה, המופעים מוצגים בשורה בכרטיסייה סקירה כללית. כדי לראות את התמונה שעברה רינדור, לוחצים על הכרטיסייה Viewer של מופע.
- ניווט בהיררכיה: בדף הפרטים של מחקר מסוים, אפשר ללחוץ על הכרטיסייה סדרות כדי לראות רשימה של הסדרות במחקר. בדף הפרטים של הסדרה, לוחצים על הכרטיסייה Instances כדי לראות רשימה של המכונות בסדרה הזו.
- הורדת נתונים בכמות גדולה: בדף הפרטים של מופע, אפשר ללחוץ על הורדה כדי לקבל קובץ בינארי DICOM Part 10 שמכיל את כל הנתונים.
שימוש ב-DICOMweb CLI
בדוגמה הבאה מוצג איך משתמשים ב-Cloud Healthcare API DICOMweb CLI כדי לאחזר את כל המקרים בחנות DICOM ולשמור אותם במחשב בספריית העבודה הנוכחית. יש דוגמאות נוספות במאגר GitHub של DICOMweb CLI.
dcmweb \ https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb \ retrieve
אם הבקשה מצליחה, השרת מחזיר תגובה שדומה לזו, וקובצי ה-DICOM נכתבים במחשב:
TIMESTAMP -- Saving files into ./ TIMESTAMP -- Transferred SIZE in COUNT files
מחיקה של מחקר, סדרה או מכונה
ב-Cloud Healthcare API מיושם שירות אינטרנט קנייני למחיקה של מחקרים, סדרות ומופעים של DICOM. השירות הזה לא נכלל בשירותים הסטנדרטיים של DICOMweb. מידע נוסף זמין בקטע בנושא מחיקה בהצהרת התאימות של Cloud Healthcare API DICOM.
בקשות מחיקה של מחקרים וסדרות מחזירות פעולה ממושכת. אחרי שהפעולה מסתיימת, כל המופעים בניסוי או בסדרה נמחקים.
בקשות למחיקת מופעים לא מחזירות פעולה ממושכת, אלא מחזירות גוף תגובה ריק כמו בדוגמה הבאה:
{}
בדוגמאות הבאות אפשר לראות איך מוחקים מחקר DICOM. מידע נוסף זמין במאמר projects.locations.datasets.dicomStores.studies.delete.
REST
מוחקים את המחקר.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
-
PROJECT_ID: מזהה הפרויקט ב- Google Cloud -
LOCATION: המיקום של מערך הנתונים -
DATASET_ID: מערך הנתונים הראשי של מאגר DICOM -
DICOM_STORE_ID: מזהה מאגר DICOM -
STUDY_INSTANCE_UID: המזהה הייחודי של מופע המחקר
כדי לשלוח את הבקשה אתם צריכים לבחור אחת מהאפשרויות הבאות:
curl
מריצים את הפקודה הבאה:
curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies/STUDY_INSTANCE_UID"PowerShell
מריצים את הפקודה הבאה:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method DELETE `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies/STUDY_INSTANCE_UID" | Select-Object -Expand ContentAPIs Explorer
פותחים את דף העזר של ה-method. החלונית של API Explorer תיפתח בצד שמאל של הדף. אפשר להשתמש בכלי הזה כדי לשלוח בקשות. ממלאים את כל שדות החובה ולוחצים על Execute.
אתם אמורים לקבל תגובת JSON שדומה לזו:
-
אחזור הסטטוס של פעולה ממושכת.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
-
PROJECT_ID: מזהה הפרויקט ב- Google Cloud -
LOCATION: המיקום של מערך הנתונים -
DATASET_ID: מערך הנתונים הראשי של מאגר DICOM -
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 ContentAPIs Explorer
פותחים את דף העזר של ה-method. החלונית של API Explorer תיפתח בצד שמאל של הדף. אפשר להשתמש בכלי הזה כדי לשלוח בקשות. ממלאים את כל שדות החובה ולוחצים על Execute.
אתם אמורים לקבל תגובת JSON שדומה לזו:
-
Go
Java
Node.js
Python
שימוש ב-DICOM Studio
אפשר למחוק מחקר, סדרה או מופע מדף הפרטים שלו ב-DICOM Studio.
מחפשים את המחקר, הסדרה או המופע שרוצים למחוק.
עוברים לדף הפרטים של הפריט שרוצים למחוק.
לוחצים על הלחצן Delete.
מאשרים את המחיקה בתיבת הדו-שיח שמופיעה.
שימוש ב-DICOMweb CLI
בדוגמה הבאה מוצג איך משתמשים ב-Cloud Healthcare API DICOMweb CLI כדי למחוק מחקר:
dcmweb \ https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb \ delete studies/STUDY_INSTANCE_UID
אם הבקשה מצליחה, השרת מחזיר פעולה שכלי ה-CLI מבצע עליה בדיקה חוזרת עד שפעולת המחיקה מסתיימת.
עדכון או תיקון של מחקר, סדרה או מופע
תקן DICOMweb לא מציין שיטות לעדכון נתוני DICOM, אבל Cloud Healthcare API מציע כמה שיטות לעדכון הנתונים האלה אחרי ההטמעה. במאמר עדכון של מחקרים, סדרות ומופעים בפורמט DICOM והחלת תיקוני אבטחה עליהם מפורטים המדריכים והשיטות הזמינים.