בדף הזה מוסבר איך לייצא מטא-נתונים של DICOM ל-BigQuery כדי לבצע בהם ניתוח ולחקור אותם. מידע על סכימת BigQuery שנוצרת כשמייצאים מטא-נתונים של DICOM זמין במאמר הסבר על סכימת DICOM ב-BigQuery.
הגדרת הרשאות ב-BigQuery
לפני שמייצאים מטא-נתונים של DICOM לטבלת BigQuery, צריך לתת הרשאות נוספות לסוכן שירות Cloud Healthcare חשבון השירות. מידע נוסף זמין במאמר הרשאות BigQuery בחנות DICOM.
הגדרת היעד ב-BigQuery
כשמגדירים את היעד ב-BigQuery, משתמשים במזהה ה-URI המלא, באופן הבא:bq://PROJECT_ID.BIGQUERY_DATASET_ID.BIGQUERY_TABLE_ID
- האם טבלת היעד כבר קיימת
- האם הגדרתם את השדה
force(באמצעות ה-API) או את הדגל--overwrite-table(באמצעות Google Cloud CLI) - האם הגדרתם ערך ל-enum
writeDisposition. אם משתמשים בערךwriteDispositionשל enum, לא מגדירים את השדהforce.
- אם טבלת היעד כבר קיימת והפרמטר
forceמוגדר לערךtrueאו שהוגדר הדגל--overwrite-table, פעולת הייצוא מחליפה את הטבלה הקיימת. - אם טבלת היעד כבר קיימת וההגדרה
forceהיאfalseאו שהדגל--overwrite-tableלא צוין, תתרחש שגיאה. - אם טבלת היעד לא קיימת, המערכת תיצור טבלה חדשה, בלי קשר לשאלה אם ציינתם את השדה
forceאו את הדגל--overwrite-table. - ההתנהגות של
writeDispositionמתוארת במסמכי התיעוד. הספירהwriteDispositionפועלת באופן דומה לאפשרויות כשמשתמשים ב-force, עם היוצא מן הכלל הבא: אם טבלת היעד כבר קיימת והיא ריקה, פעולת הייצוא מסתיימת במקום להחזיר שגיאה.
ייצוא מטא-נתונים של DICOM
בדוגמאות הבאות אפשר לראות איך לייצא מטא-נתונים של DICOM לטבלת BigQuery. בדוגמאות האלה, מאגר DICOM וטבלת BigQuery נמצאים באותו פרויקט. כדי לייצא מטא-נתוני DICOM לטבלת BigQuery בפרויקט אחר, אפשר לעיין במאמר ייצוא מטא-נתוני DICOM לפרויקט אחר.
המסוף
כדי לייצא מטא-נתונים של DICOM לטבלה ב-BigQuery, צריך לבצע את השלבים הבאים:
נכנסים לדף Datasets במסוף Google Cloud .
לוחצים על מערך הנתונים שכולל את מאגר DICOM עם המטה-נתונים שרוצים לייצא.
באותה שורה של מאגר DICOM, פותחים את הרשימה פעולות ובוחרים באפשרות ייצוא.
בדף Export DICOM store שמופיע, בוחרים באפשרות BigQuery table.
בשדה Project, לוחצים על Browse ובוחרים את הפרויקט.
ברשימה Dataset, בוחרים את מערך הנתונים ב-BigQuery שאליו מייצאים את המטא-נתונים של DICOM.
בשדה Table, מזינים שם חדש לטבלה. מערכת BigQuery בודקת כל בחירה כדי לוודא שהטבלה של היעד תקינה.
בקטע הגדרת כתיבה של טבלת יעד, בוחרים באחת מהאפשרויות הבאות. האפשרויות האלה תואמות ל-enum
WriteDisposition.- ייצוא נתונים רק אם טבלת היעד ריקה: שווה ל-
WRITE_EMPTY - Append data to destination table (הוספת נתונים לטבלת היעד): שווה ל-
WRITE_APPEND - Erase all existing data in the destination table before writing the instances (מחיקת כל הנתונים הקיימים בטבלת היעד לפני כתיבת המופעים): שווה ל-
WRITE_TRUNCATE.
- ייצוא נתונים רק אם טבלת היעד ריקה: שווה ל-
לוחצים על ייצוא כדי לייצא את המטא-נתונים של DICOM לטבלת BigQuery.
- כדי לעקוב אחרי סטטוס הפעולה, לוחצים על הכרטיסייה פעולות. אחרי שהפעולה מסתיימת, מופיעים הסימנים הבאים:
- בקטע Long-running operation status (סטטוס של פעולה ממושכת) מופיע סימן וי ירוק מתחת לכותרת OK.
- בקטע סקירה כללית מופיעים סימן וי ירוק והאינדיקטור OK באותה שורה שבה מופיע מזהה הפעולה.
gcloud
כדי לייצא מטא-נתונים של DICOM לטבלה ב-BigQuery, מריצים את הפקודה gcloud healthcare dicom-stores export bq.
מייצאים את מטא-נתוני DICOM.
לפני השימוש בנתוני הפקודה הבאים, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud
- LOCATION: המיקום של מערך הנתונים
- DATASET_ID: מערך הנתונים הראשי של מאגר DICOM
- DICOM_STORE_ID: מזהה מאגר DICOM
- BIGQUERY_DATASET_ID: השם של מערך נתונים קיים ב-BigQuery שאליו אתם מייצאים את המטא-נתונים של DICOM
- BIGQUERY_TABLE_ID: השם של טבלה חדשה או קיימת במערך הנתונים ב-BigQuery. אם פעולת הייצוא יוצרת טבלה חדשה, אפשר לעיין בדרישות לשם הטבלה במאמר בנושא מתן שמות לטבלאות.
- WRITE_DISPOSITION: ערך של הטיפוס בן המנייה
WriteDisposition. משתמשים באחד מהערכים הבאים:-
write-empty: ייצוא נתונים רק אם הטבלה ב-BigQuery ריקה. -
write-truncate: מחיקת כל הנתונים הקיימים בטבלת BigQuery לפני כתיבת מופעי DICOM. -
write-append: הוספת נתונים לטבלה ב-BigQuery.
-
מריצים את הפקודה הבאה:
Linux, macOS או Cloud Shell
gcloud healthcare dicom-stores export bq DICOM_STORE_ID \ --location=LOCATION \ --dataset=DATASET_ID \ --bq-table=bq://PROJECT_ID.BIGQUERY_DATASET_ID.BIGQUERY_TABLE_ID \ --write-disposition=WRITE_DISPOSITION
Windows (PowerShell)
gcloud healthcare dicom-stores export bq DICOM_STORE_ID ` --location=LOCATION ` --dataset=DATASET_ID ` --bq-table=bq://PROJECT_ID.BIGQUERY_DATASET_ID.BIGQUERY_TABLE_ID ` --write-disposition=WRITE_DISPOSITION
התשובה היא: התשובה מכילה מזהה של פעולה ממושכת. פעולות ממושכות מוחזרות כשקריאות לשיטות עשויות להימשך זמן רב. הפקודה מבצעת דגימה של הפעולה הממושכת, ואז מדפיסה את שם הפעולה בשדהWindows (cmd.exe)
gcloud healthcare dicom-stores export bq DICOM_STORE_ID ^ --location=LOCATION ^ --dataset=DATASET_ID ^ --bq-table=bq://PROJECT_ID.BIGQUERY_DATASET_ID.BIGQUERY_TABLE_ID ^ --write-disposition=WRITE_DISPOSITION
nameאחרי שהייצוא מסתיים. שימו לב לערך שלOPERATION_ID. תצטרכו את הערך הזה בשלב הבא.תשובה
Request issued for: [DICOM_STORE_ID] Waiting for operation [projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID] to complete...⠏ name: projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID
כדי לראות פרטים נוספים על הפעולה, מריצים את הפקודה
gcloud healthcare operations describeומזינים את OPERATION_ID מהתשובה:לפני השימוש בנתוני הפקודה הבאים, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud
- DATASET_ID: מזהה קבוצת הנתונים
- LOCATION: המיקום של מערך הנתונים
- OPERATION_ID: המזהה שמוחזר מהפעולה הממושכת
מריצים את הפקודה הבאה:
Linux, macOS או Cloud Shell
gcloud healthcare operations describe OPERATION_ID \ --project=PROJECT_ID \ --dataset=DATASET_ID \ --location=LOCATION
Windows (PowerShell)
gcloud healthcare operations describe OPERATION_ID ` --project=PROJECT_ID ` --dataset=DATASET_ID ` --location=LOCATION
Windows (cmd.exe)
gcloud healthcare operations describe OPERATION_ID ^ --project=PROJECT_ID ^ --dataset=DATASET_ID ^ --location=LOCATION
אמורים לקבל תגובה שדומה לזו:
תשובה
done: true // If there were any errors, an `error` field displays instead of a `response` field. // See Troubleshooting long-running operations for a list of response codes. error: ERROR code: ERROR_CODE message: DESCRIPTION metadata: '@type': 'type.googleapis.com/google.cloud.healthcare.v1.OperationMetadata' apiMethodName: 'google.cloud.healthcare.v1.dicom.DicomService.ExportDicomData_bq' counter: success: 'SUCCESS_COUNT' // If there were any failures, they display in the `failure` field. failure: 'FAILURE_COUNT' createTime: 'YYYY-MM-DDTHH:MM:SS+ZZ:ZZ' endTime: 'YYYY-MM-DDTHH:MM:SS+ZZ:ZZ' logsUrl: https://console.cloud.google.com/CLOUD_LOGGING_URL name: projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID // The `response` field only displays if there were no errors. response: '@type': 'type.googleapis.com/google.protobuf.Empty'
REST
כדי לייצא מטא-נתונים של DICOM לטבלה ב-BigQuery, משתמשים בשיטה projects.locations.datasets.dicomStores.export.
מייצאים את מטא-נתוני DICOM.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud
- LOCATION: המיקום של מערך הנתונים
- DATASET_ID: מערך הנתונים הראשי של מאגר DICOM
- DICOM_STORE_ID: מזהה מאגר DICOM
- BIGQUERY_DATASET_ID: השם של מערך נתונים קיים ב-BigQuery שאליו אתם מייצאים את המטא-נתונים של DICOM
- BIGQUERY_TABLE_ID: השם של טבלה חדשה או קיימת במערך הנתונים ב-BigQuery. אם פעולת הייצוא יוצרת טבלה חדשה, אפשר לעיין בדרישות לשם הטבלה במאמר מתן שמות לטבלאות.
- WRITE_DISPOSITION: ערך של הטיפוס בן המנייה
WriteDisposition. משתמשים באחד מהערכים הבאים:-
WRITE_EMPTY: ייצוא נתונים רק אם הטבלה ב-BigQuery ריקה. -
WRITE_TRUNCATE: מחיקת כל הנתונים הקיימים בטבלת BigQuery לפני כתיבת מופעי DICOM. -
WRITE_APPEND: הוספת נתונים לטבלה ב-BigQuery.
-
תוכן בקשת JSON:
{ "bigqueryDestination": { "tableUri": "bq://PROJECT_ID.BIGQUERY_DATASET_ID.BIGQUERY_TABLE_ID", "writeDisposition": "WRITE_DISPOSITION" } }כדי לשלוח את הבקשה עליכם לבחור אחת מהאפשרויות הבאות:
הפלט שיתקבל: התשובה מכילה מזהה של פעולה ממושכת (LRO). פעולות ארוכות טווח מוחזרות כשקריאות לשיטות עשויות להימשך זמן נוסף עד להשלמה. שימו לב לערך שלcurl
שומרים את גוף הבקשה בקובץ בשם
request.json. כדי ליצור או להחליף את הקובץ הזה בספרייה הנוכחית, מריצים את הפקודה הבאה בטרמינל:cat > request.json << 'EOF' { "bigqueryDestination": { "tableUri": "bq://PROJECT_ID.BIGQUERY_DATASET_ID.BIGQUERY_TABLE_ID", "writeDisposition": "WRITE_DISPOSITION" } } 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/dicomStores/DICOM_STORE_ID:export"PowerShell
שומרים את גוף הבקשה בקובץ בשם
request.json. כדי ליצור או להחליף את הקובץ הזה בספרייה הנוכחית, מריצים את הפקודה הבאה בטרמינל:@' { "bigqueryDestination": { "tableUri": "bq://PROJECT_ID.BIGQUERY_DATASET_ID.BIGQUERY_TABLE_ID", "writeDisposition": "WRITE_DISPOSITION" } } '@ | 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/dicomStores/DICOM_STORE_ID:export" | Select-Object -Expand ContentAPIs Explorer
מעתיקים את גוף הבקשה ופותחים את דף העזר של השיטה. החלונית של API Explorer תיפתח בצד שמאל של הדף. אפשר להשתמש בכלי הזה כדי לשלוח בקשות. מדביקים את גוף הבקשה בכלי הזה, ממלאים את כל שדות החובה ולוחצים על Execute.
OPERATION_ID. תצטרכו את הערך הזה בשלב הבא.כדי לקבל את הסטטוס של הפעולה הממושכת, משתמשים בשיטה
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 ContentAPIs Explorer
פותחים את דף העזר של ה-method. החלונית של API Explorer תיפתח בצד שמאל של הדף. אפשר להשתמש בכלי הזה כדי לשלוח בקשות. ממלאים את כל שדות החובה ולוחצים על Execute.
"done": true, סימן שהפעולה הממושכת הסתיימה.
ייצוא מטא-נתונים של DICOM לפרויקט אחר
כדי לייצא מטא-נתונים של DICOM מחנות DICOM בפרויקט אחד למערך נתונים ב-BigQuery בפרויקט אחר, קודם צריך לעיין במאמר ייצוא מטא-נתונים של DICOM להרשאות של פרויקט אחר כדי לקבל מידע על הגדרת הרשאות IAM בפרויקט היעד.
gcloud
כדי לייצא מטא-נתונים של DICOM ממאגר DICOM בפרויקט אחד לטבלת BigQuery בפרויקט אחר, משתמשים בפקודה gcloud healthcare dicom-stores export bq.
מייצאים את מטא-נתוני DICOM.
לפני השימוש בנתוני הפקודה הבאים, צריך להחליף את הנתונים הבאים:
- SOURCE_PROJECT_ID: המזהה של פרויקט המקור Google Cloud
- SOURCE_LOCATION: המיקום של מערך הנתונים של המקור
- SOURCE_DATASET_ID: מערך הנתונים הראשי של מאגר DICOM של המקור
- SOURCE_DICOM_STORE_ID: מזהה חנות ה-DICOM של המקור
- DESTINATION_PROJECT_ID: המזהה של הפרויקט השונה
- DESTINATION_BIGQUERY_DATASET_ID: השם של מערך נתונים קיים ב-BigQuery בפרויקט היעד שאליו מייצאים את המטא-נתונים של DICOM
- DESTINATION_BIGQUERY_TABLE_ID: השם של טבלה חדשה או קיימת במערך הנתונים ב-BigQuery. אם פעולת הייצוא יוצרת טבלה חדשה, אפשר לעיין בדרישות לשם הטבלה במאמר מתן שמות לטבלאות.
- WRITE_DISPOSITION: ערך של הטיפוס בן המנייה
WriteDisposition. משתמשים באחד מהערכים הבאים:-
write-empty: ייצוא נתונים רק אם הטבלה ב-BigQuery ריקה. -
write-truncate: מחיקת כל הנתונים הקיימים בטבלת BigQuery לפני כתיבת מופעי DICOM. -
write-append: הוספת נתונים לטבלה ב-BigQuery.
-
מריצים את הפקודה הבאה:
Linux, macOS או Cloud Shell
gcloud healthcare dicom-stores export bq SOURCE_DICOM_STORE_ID \ --project=SOURCE_PROJECT_ID \ --location=SOURCE_LOCATION \ --dataset=SOURCE_DATASET_ID \ --bq-table=bq://DESTINATION_PROJECT_ID.DESTINATION_BIGQUERY_DATASET_ID.DESTINATION_BIGQUERY_TABLE_ID \ --write-disposition=WRITE_DISPOSITION
Windows (PowerShell)
gcloud healthcare dicom-stores export bq SOURCE_DICOM_STORE_ID ` --project=SOURCE_PROJECT_ID ` --location=SOURCE_LOCATION ` --dataset=SOURCE_DATASET_ID ` --bq-table=bq://DESTINATION_PROJECT_ID.DESTINATION_BIGQUERY_DATASET_ID.DESTINATION_BIGQUERY_TABLE_ID ` --write-disposition=WRITE_DISPOSITION
התשובה היא: התשובה מכילה מזהה של פעולה ממושכת. פעולות ממושכות מוחזרות כשקריאות לשיטות עשויות להימשך זמן רב. הפקודה מבצעת דגימה של הפעולה הממושכת, ואז מדפיסה את שם הפעולה בשדהWindows (cmd.exe)
gcloud healthcare dicom-stores export bq SOURCE_DICOM_STORE_ID ^ --project=SOURCE_PROJECT_ID ^ --location=SOURCE_LOCATION ^ --dataset=SOURCE_DATASET_ID ^ --bq-table=bq://DESTINATION_PROJECT_ID.DESTINATION_BIGQUERY_DATASET_ID.DESTINATION_BIGQUERY_TABLE_ID ^ --write-disposition=WRITE_DISPOSITION
nameאחרי שהייצוא מסתיים. שימו לב לערך שלOPERATION_ID. תצטרכו את הערך הזה בשלב הבא.תשובה
Request issued for: [SOURCE_DICOM_STORE_ID] Waiting for operation [projects/SOURCE_PROJECT_ID/locations/SOURCE_LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID] to complete...⠏ name: projects/SOURCE_PROJECT_ID/locations/SOURCE_LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID
כדי לראות פרטים נוספים על הפעולה, מריצים את הפקודה
gcloud healthcare operations describeומזינים את OPERATION_ID מהתשובה:לפני השימוש בנתוני הפקודה הבאים, צריך להחליף את הנתונים הבאים:
- SOURCE_PROJECT_ID: המזהה של פרויקט המקור Google Cloud
- SOURCE_LOCATION: המיקום של מערך הנתונים של המקור
- SOURCE_DATASET_ID: מזהה מערך הנתונים של המקור
- OPERATION_ID: המזהה שמוחזר מהפעולה הממושכת
מריצים את הפקודה הבאה:
Linux, macOS או Cloud Shell
gcloud healthcare operations describe OPERATION_ID \ --project=SOURCE_PROJECT_ID \ --dataset=SOURCE_DATASET_ID \ --location=SOURCE_LOCATION
Windows (PowerShell)
gcloud healthcare operations describe OPERATION_ID ` --project=SOURCE_PROJECT_ID ` --dataset=SOURCE_DATASET_ID ` --location=SOURCE_LOCATION
Windows (cmd.exe)
gcloud healthcare operations describe OPERATION_ID ^ --project=SOURCE_PROJECT_ID ^ --dataset=SOURCE_DATASET_ID ^ --location=SOURCE_LOCATION
אמורים לקבל תגובה שדומה לזו:
תשובה
done: true // If there were any errors, an `error` field displays instead of a `response` field. // See Troubleshooting long-running operations for a list of response codes. error: ERROR code: ERROR_CODE message: DESCRIPTION metadata: '@type': 'type.googleapis.com/google.cloud.healthcare.v1.OperationMetadata' apiMethodName: 'google.cloud.healthcare.v1.dicom.DicomService.ExportDicomData_bq' counter: success: 'SUCCESS_COUNT' // If there were any failures, they display in the `failure` field. failure: 'FAILURE_COUNT' createTime: 'YYYY-MM-DDTHH:MM:SS+ZZ:ZZ' endTime: 'YYYY-MM-DDTHH:MM:SS+ZZ:ZZ' logsUrl: https://console.cloud.google.com/CLOUD_LOGGING_URL name: projects/SOURCE_PROJECT_ID/locations/SOURCE_LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID // The `response` field only displays if there were no errors. response: '@type': 'type.googleapis.com/google.protobuf.Empty'
REST
כדי לייצא מטא-נתונים של DICOM מחנות DICOM בפרויקט אחד לטבלת BigQuery בפרויקט אחר, משתמשים בשיטה projects.locations.datasets.dicomStores.export.
מייצאים את מטא-נתוני DICOM.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- SOURCE_PROJECT_ID: המזהה של פרויקט המקור Google Cloud
- SOURCE_LOCATION: המיקום של מערך הנתונים של המקור
- SOURCE_DATASET_ID: מערך הנתונים הראשי של מאגר DICOM של המקור
- SOURCE_DICOM_STORE_ID: מזהה חנות ה-DICOM של המקור
- DESTINATION_PROJECT_ID: המזהה של הפרויקט השונה
- DESTINATION_BIGQUERY_DATASET_ID: השם של מערך נתונים קיים ב-BigQuery בפרויקט היעד שאליו מייצאים את המטא-נתונים של DICOM
- DESTINATION_BIGQUERY_TABLE_ID: השם של טבלה חדשה או קיימת במערך הנתונים ב-BigQuery. אם פעולת הייצוא יוצרת טבלה חדשה, אפשר לעיין בדרישות לשם הטבלה במאמר מתן שמות לטבלאות.
- WRITE_DISPOSITION: ערך של הטיפוס בן המנייה
WriteDisposition. משתמשים באחד מהערכים הבאים:-
WRITE_EMPTY: ייצוא נתונים רק אם הטבלה ב-BigQuery ריקה. -
WRITE_TRUNCATE: מחיקת כל הנתונים הקיימים בטבלת BigQuery לפני כתיבת מופעי DICOM. -
WRITE_APPEND: הוספת נתונים לטבלה ב-BigQuery.
-
תוכן בקשת JSON:
{ "bigqueryDestination": { "tableUri": "bq://DESTINATION_PROJECT_ID.DESTINATION_BIGQUERY_DATASET_ID.DESTINATION_BIGQUERY_TABLE_ID", "writeDisposition": "WRITE_DISPOSITION" } }כדי לשלוח את הבקשה עליכם לבחור אחת מהאפשרויות הבאות:
הפלט שיתקבל: התשובה מכילה מזהה של פעולה ממושכת (LRO). פעולות ארוכות טווח מוחזרות כשקריאות לשיטות עשויות להימשך זמן נוסף עד להשלמה. שימו לב לערך שלcurl
שומרים את גוף הבקשה בקובץ בשם
request.json. כדי ליצור או להחליף את הקובץ הזה בספרייה הנוכחית, מריצים את הפקודה הבאה בטרמינל:cat > request.json << 'EOF' { "bigqueryDestination": { "tableUri": "bq://DESTINATION_PROJECT_ID.DESTINATION_BIGQUERY_DATASET_ID.DESTINATION_BIGQUERY_TABLE_ID", "writeDisposition": "WRITE_DISPOSITION" } } 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/SOURCE_PROJECT_ID/locations/SOURCE_LOCATION/datasets/SOURCE_DATASET_ID/dicomStores/SOURCE_DICOM_STORE_ID:export"PowerShell
שומרים את גוף הבקשה בקובץ בשם
request.json. כדי ליצור או להחליף את הקובץ הזה בספרייה הנוכחית, מריצים את הפקודה הבאה בטרמינל:@' { "bigqueryDestination": { "tableUri": "bq://DESTINATION_PROJECT_ID.DESTINATION_BIGQUERY_DATASET_ID.DESTINATION_BIGQUERY_TABLE_ID", "writeDisposition": "WRITE_DISPOSITION" } } '@ | 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/SOURCE_PROJECT_ID/locations/SOURCE_LOCATION/datasets/SOURCE_DATASET_ID/dicomStores/SOURCE_DICOM_STORE_ID:export" | Select-Object -Expand ContentAPIs Explorer
מעתיקים את גוף הבקשה ופותחים את דף העזר של השיטה. החלונית של API Explorer תיפתח בצד שמאל של הדף. אפשר להשתמש בכלי הזה כדי לשלוח בקשות. מדביקים את גוף הבקשה בכלי הזה, ממלאים את כל שדות החובה ולוחצים על Execute.
OPERATION_ID. תצטרכו את הערך הזה בשלב הבא.כדי לקבל את הסטטוס של הפעולה הממושכת, משתמשים בשיטה
projects.locations.datasets.operations.get.לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- SOURCE_PROJECT_ID: המזהה של פרויקט המקור Google Cloud
- SOURCE_LOCATION: המיקום של מערך הנתונים של המקור
- SOURCE_DATASET_ID: מזהה מערך הנתונים של המקור
- OPERATION_ID: המזהה שמוחזר מהפעולה הממושכת
כדי לשלוח את הבקשה אתם צריכים לבחור אחת מהאפשרויות הבאות:
הפלט שיתקבל: כשהתשובה מכילה את הערךcurl
מריצים את הפקודה הבאה:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/SOURCE_PROJECT_ID/locations/SOURCE_LOCATION/datasets/SOURCE_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/SOURCE_PROJECT_ID/locations/SOURCE_LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentAPIs Explorer
פותחים את דף העזר של ה-method. החלונית של API Explorer תיפתח בצד שמאל של הדף. אפשר להשתמש בכלי הזה כדי לשלוח בקשות. ממלאים את כל שדות החובה ולוחצים על Execute.
"done": true, סימן שהפעולה הממושכת הסתיימה.
ייצוא מטא-נתונים של DICOM באמצעות מסננים
כברירת מחדל, כשמייצאים קובצי DICOM אל Cloud Storage, כל קובצי ה-DICOM במאגר ה-DICOM שצוין מיוצאים. באופן דומה, כשמייצאים מטא-נתונים של DICOM ל-BigQuery, המטא-נתונים של כל נתוני ה-DICOM במאגר ה-DICOM שצוין מיוצאים.
אפשר לייצא קבוצת משנה של נתוני DICOM או מטא נתונים באמצעות מסנן. אתם מגדירים את המסנן בקובץ מסנן.
הגדרת קובצי מסננים
קובץ סינון מגדיר אילו קובצי DICOM לייצא ל-Cloud Storage או ל-BigQuery. אפשר להגדיר קובצי מסננים ברמות הבאות:
- ברמת המחקר
- ברמת הסדרה
- ברמת המופע
קובץ המסנן מורכב מכמה שורות, וכל שורה מגדירה את המחקר, הסדרה או המופע שרוצים לייצא. כל שורה היא בפורמט /studies/STUDY_UID[/series/SERIES_UID[/instances/INSTANCE_UID]].
אם לא מציינים מחקר, סדרה או מופע בקובץ המסנן כשמעבירים את קובץ המסנן, המחקר, הסדרה או המופע האלה לא ייצאו.
חובה לציין רק את החלק /studies/STUDY_UID בנתיב. כדי לייצא מחקר שלם, מציינים /studies/STUDY_UID. כדי לייצא סדרה שלמה, מציינים /studies/STUDY_UID/series/SERIES_UID.
לדוגמה, קובץ המסנן הבא. קובץ המסנן יגרום לייצוא של מחקר אחד, שתי סדרות ושלושה מופעים נפרדים:
/studies/1.123.456.789 /studies/1.666.333.111/series/123.456 /studies/1.666.333.111/series/567.890 /studies/1.888.999.222/series/123.456/instances/111 /studies/1.888.999.222/series/123.456/instances/222 /studies/1.888.999.222/series/123.456/instances/333
יצירת קובץ סינון באמצעות BigQuery
בדרך כלל יוצרים קובץ מסנן על ידי ייצוא המטא-נתונים מחנות DICOM ל-BigQuery. כך תוכלו להשתמש ב-BigQuery כדי לראות את מזהי ה-UID של המחקר, הסדרה והמופע של נתוני ה-DICOM בחנות ה-DICOM. לאחר מכן, אפשר לבצע את השלבים הבאים:
-
שולחים שאילתה לגבי ה-UID של המחקר, הסדרה והמופע שמעניינים אתכם.
לדוגמה, אחרי שמייצאים מטא-נתונים של DICOM ל-BigQuery, אפשר להריץ את השאילתה הבאה כדי לשרשר את ה-UID של המחקר, הסדרה והמופע לפורמט שתואם לדרישות של קובץ הסינון:
SELECT CONCAT ('/studies/', StudyInstanceUID, '/series/', SeriesInstanceUID, '/instances/', SOPInstanceUID) FROM [PROJECT_ID:BIGQUERY_DATASET.BIGQUERY_TABLE]
- אם השאילתה מחזירה קבוצת תוצאות גדולה, אפשר ליצור טבלה חדשה על ידי שמירת תוצאות השאילתה בטבלת יעד ב-BigQuery.
- אם שמרתם את תוצאות השאילתה בטבלת יעד, אתם יכולים לשמור את התוכן של טבלת היעד בקובץ ולייצא אותו ל-Cloud Storage. הוראות מפורטות מופיעות במאמר בנושא ייצוא נתונים מטבלה. הקובץ שייצאתם הוא קובץ המסנן. כשמציינים את המסנן בפעולת הייצוא, משתמשים במיקום של קובץ המסנן ב-Cloud Storage.
יצירה ידנית של קובץ מסנן
אתם יכולים ליצור קובץ מסנן עם תוכן בהתאמה אישית ולהעלות אותו לקטגוריה של Cloud Storage. כשמציינים את המסנן בפעולת הייצוא, משתמשים במיקום של קובץ המסנן ב-Cloud Storage. בדוגמה הבאה מוצג איך להעלות קובץ מסנן לקטגוריה של Cloud Storage באמצעות הפקודהgcloud storage cp:
gcloud storage cp FILTER_FILE gs://BUCKET
העברה בקובץ המסנן
אחרי שיוצרים קובץ מסנן, אפשר לקרוא לפעולת הייצוא של DICOM ולהעביר את קובץ המסנן באמצעות REST API. בדוגמאות הבאות מוצגות דרכים לייצא מטא-נתונים של DICOM באמצעות מסנן.
gcloud
כדי לייצא מטא-נתונים של DICOM לטבלה ב-BigQuery באמצעות מסנן, מריצים את הפקודה gcloud beta healthcare dicom-stores export bq.
מייצאים את מטא-נתוני DICOM.
לפני השימוש בנתוני הפקודה הבאים, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud
- LOCATION: המיקום של מערך הנתונים
- DATASET_ID: מערך הנתונים הראשי של מאגר DICOM
- DICOM_STORE_ID: מזהה מאגר DICOM
- BIGQUERY_DATASET_ID: השם של מערך נתונים קיים ב-BigQuery שאליו אתם מייצאים את המטא-נתונים של DICOM
- BIGQUERY_TABLE_ID: השם של טבלה חדשה או קיימת במערך הנתונים ב-BigQuery. אם פעולת הייצוא יוצרת טבלה חדשה, אפשר לעיין בדרישות לשם הטבלה במאמר בנושא מתן שמות לטבלאות.
- BUCKET: השם של קטגוריית Cloud Storage שמכילה את קובץ המסנן. אם קובץ המסנן נמצא בספרייה, צריך לכלול את הספרייה בנתיב.
- FILTER_FILE: המיקום והשם של קובץ המסנן בקטגוריית Cloud Storage
- WRITE_DISPOSITION: ערך של הטיפוס בן המנייה
WriteDisposition. משתמשים באחד מהערכים הבאים:-
write-empty: ייצוא נתונים רק אם הטבלה ב-BigQuery ריקה. -
write-truncate: מחיקת כל הנתונים הקיימים בטבלת BigQuery לפני כתיבת מופעי DICOM. -
write-append: הוספת נתונים לטבלה ב-BigQuery.
-
מריצים את הפקודה הבאה:
Linux, macOS או Cloud Shell
gcloud beta healthcare dicom-stores export bq DICOM_STORE_ID \ --location=LOCATION \ --dataset=DATASET_ID \ --bq-table=bq://PROJECT_ID.BIGQUERY_DATASET_ID.BIGQUERY_TABLE_ID \ --filter-config-gcs-uri=gs://BUCKET/FILTER_FILE \ --write-disposition=WRITE_DISPOSITION
Windows (PowerShell)
gcloud beta healthcare dicom-stores export bq DICOM_STORE_ID ` --location=LOCATION ` --dataset=DATASET_ID ` --bq-table=bq://PROJECT_ID.BIGQUERY_DATASET_ID.BIGQUERY_TABLE_ID ` --filter-config-gcs-uri=gs://BUCKET/FILTER_FILE ` --write-disposition=WRITE_DISPOSITION
התשובה היא: התשובה מכילה מזהה של פעולה ממושכת. פעולות ממושכות מוחזרות כשקריאות לשיטות עשויות להימשך זמן רב. הפקודה מבצעת דגימה של הפעולה הממושכת, ואז מדפיסה את שם הפעולה בשדהWindows (cmd.exe)
gcloud beta healthcare dicom-stores export bq DICOM_STORE_ID ^ --location=LOCATION ^ --dataset=DATASET_ID ^ --bq-table=bq://PROJECT_ID.BIGQUERY_DATASET_ID.BIGQUERY_TABLE_ID ^ --filter-config-gcs-uri=gs://BUCKET/FILTER_FILE ^ --write-disposition=WRITE_DISPOSITION
nameאחרי שהייצוא מסתיים. שימו לב לערך שלOPERATION_ID. תצטרכו את הערך הזה בשלב הבא.תשובה
Request issued for: [DICOM_STORE_ID] Waiting for operation [projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID] to complete...⠏ name: projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID
כדי לראות פרטים נוספים על הפעולה, מריצים את הפקודה
gcloud healthcare operations describeומזינים את OPERATION_ID מהתשובה:לפני השימוש בנתוני הפקודה הבאים, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud
- DATASET_ID: מזהה קבוצת הנתונים
- LOCATION: המיקום של מערך הנתונים
- OPERATION_ID: המזהה שמוחזר מהפעולה הממושכת
מריצים את הפקודה הבאה:
Linux, macOS או Cloud Shell
gcloud healthcare operations describe OPERATION_ID \ --project=PROJECT_ID \ --dataset=DATASET_ID \ --location=LOCATION
Windows (PowerShell)
gcloud healthcare operations describe OPERATION_ID ` --project=PROJECT_ID ` --dataset=DATASET_ID ` --location=LOCATION
Windows (cmd.exe)
gcloud healthcare operations describe OPERATION_ID ^ --project=PROJECT_ID ^ --dataset=DATASET_ID ^ --location=LOCATION
אמורים לקבל תגובה שדומה לזו:
תשובה
done: true // If there were any errors, an `error` field displays instead of a `response` field. // See Troubleshooting long-running operations for a list of response codes. error: ERROR code: ERROR_CODE message: DESCRIPTION metadata: '@type': 'type.googleapis.com/google.cloud.healthcare.v1.OperationMetadata' apiMethodName: 'google.cloud.healthcare.v1.dicom.DicomService.ExportDicomData_bq' counter: success: 'SUCCESS_COUNT' // If there were any failures, they display in the `failure` field. failure: 'FAILURE_COUNT' createTime: 'YYYY-MM-DDTHH:MM:SS+ZZ:ZZ' endTime: 'YYYY-MM-DDTHH:MM:SS+ZZ:ZZ' logsUrl: https://console.cloud.google.com/CLOUD_LOGGING_URL name: projects/SOURCE_PROJECT_ID/locations/SOURCE_LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID // The `response` field only displays if there were no errors. response: '@type': 'type.googleapis.com/google.protobuf.Empty'
REST
כדי לייצא מטא-נתונים של DICOM לטבלת BigQuery באמצעות מסנן, משתמשים בשיטה projects.locations.datasets.dicomStores.export.
מייצאים את מטא-נתוני DICOM.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud
- LOCATION: המיקום של מערך הנתונים
- DATASET_ID: מערך הנתונים הראשי של מאגר DICOM
- DICOM_STORE_ID: מזהה מאגר DICOM
- BIGQUERY_DATASET_ID: השם של מערך נתונים קיים ב-BigQuery שאליו אתם מייצאים את המטא-נתונים של DICOM
- BIGQUERY_TABLE_ID: השם של טבלה חדשה או קיימת במערך הנתונים ב-BigQuery. אם פעולת הייצוא יוצרת טבלה חדשה, אפשר לעיין בדרישות לשם הטבלה במאמר מתן שמות לטבלאות.
- BUCKET: השם של קטגוריית Cloud Storage שמכילה את קובץ המסנן. אם קובץ המסנן נמצא בספרייה, צריך לכלול את הספרייה בנתיב.
- FILTER_FILE: המיקום והשם של קובץ המסנן בקטגוריה של Cloud Storage
- WRITE_DISPOSITION: ערך של הטיפוס בן המנייה
WriteDisposition. משתמשים באחד מהערכים הבאים:-
WRITE_EMPTY: ייצוא נתונים רק אם הטבלה ב-BigQuery ריקה. -
WRITE_TRUNCATE: מחיקת כל הנתונים הקיימים בטבלת BigQuery לפני כתיבת מופעי DICOM. -
WRITE_APPEND: הוספת נתונים לטבלה ב-BigQuery.
-
תוכן בקשת JSON:
{ "bigqueryDestination": { "tableUri": "bq://PROJECT_ID.BIGQUERY_DATASET_ID.BIGQUERY_TABLE_ID", "writeDisposition": "WRITE_DISPOSITION" }, "filterConfig": { "resourcePathsGcsUri": "gs://BUCKET/FILTER_FILE" } }כדי לשלוח את הבקשה עליכם לבחור אחת מהאפשרויות הבאות:
הפלט שיתקבל: התשובה מכילה מזהה של פעולה ממושכת (LRO). פעולות ארוכות טווח מוחזרות כשקריאות לשיטות עשויות להימשך זמן נוסף עד להשלמה. שימו לב לערך שלcurl
שומרים את גוף הבקשה בקובץ בשם
request.json. כדי ליצור או להחליף את הקובץ הזה בספרייה הנוכחית, מריצים את הפקודה הבאה בטרמינל:cat > request.json << 'EOF' { "bigqueryDestination": { "tableUri": "bq://PROJECT_ID.BIGQUERY_DATASET_ID.BIGQUERY_TABLE_ID", "writeDisposition": "WRITE_DISPOSITION" }, "filterConfig": { "resourcePathsGcsUri": "gs://BUCKET/FILTER_FILE" } } 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/dicomStores/DICOM_STORE_ID:export"PowerShell
שומרים את גוף הבקשה בקובץ בשם
request.json. כדי ליצור או להחליף את הקובץ הזה בספרייה הנוכחית, מריצים את הפקודה הבאה בטרמינל:@' { "bigqueryDestination": { "tableUri": "bq://PROJECT_ID.BIGQUERY_DATASET_ID.BIGQUERY_TABLE_ID", "writeDisposition": "WRITE_DISPOSITION" }, "filterConfig": { "resourcePathsGcsUri": "gs://BUCKET/FILTER_FILE" } } '@ | 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/dicomStores/DICOM_STORE_ID:export" | Select-Object -Expand ContentAPIs Explorer
מעתיקים את גוף הבקשה ופותחים את דף העזר של השיטה. החלונית של API Explorer תיפתח בצד שמאל של הדף. אפשר להשתמש בכלי הזה כדי לשלוח בקשות. מדביקים את גוף הבקשה בכלי הזה, ממלאים את כל שדות החובה ולוחצים על Execute.
OPERATION_ID. תצטרכו את הערך הזה בשלב הבא.כדי לקבל את הסטטוס של הפעולה הממושכת, משתמשים בשיטה
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 ContentAPIs Explorer
פותחים את דף העזר של ה-method. החלונית של API Explorer תיפתח בצד שמאל של הדף. אפשר להשתמש בכלי הזה כדי לשלוח בקשות. ממלאים את כל שדות החובה ולוחצים על Execute.
"done": true, סימן שהפעולה הממושכת הסתיימה.
הרצת שאילתות וניתוח של נתוני DICOM ב-BigQuery
אחרי שמייצאים את המטא-נתונים של DICOM לטבלה ב-BigQuery, אפשר להריץ שאילתות לדוגמה כדי לקבל פרטים נוספים על המטא-נתונים. בדוגמאות הבאות אפשר לראות איך להריץ שאילתות לכמה תרחישי שימוש נפוצים.
חיפוש במטא-נתונים
נניח שאתם רוצים לחפש כמות גדולה של מטא-נתונים שקשה לחפש במערכות אחרות, כמו מערכת לארכוב תמונות ותקשורת (PACS) או ארכיון נייטרלי של ספקים (VNA). השאילתה הבאה מראה איך לחפש את הערך PatientID של מטופל ולהשתמש בנתיב DICOMweb כדי לאחזר מקרים ספציפיים של תמונות. בדוגמה נעשה שימוש בטבלה chc-nih-chest-xray.nih_chest_xray.nih_chest_xray מתוך מערך הנתונים של צילומי רנטגן של החזה של NIH.
#standardSQL
SELECT CONCAT('/dicomWeb/studies/', StudyInstanceUID, '/series/', SeriesInstanceUID, '/instances/', SOPInstanceUID) as DICOMwebPath
FROM `chc-nih-chest-xray.nih_chest_xray.nih_chest_xray`
WHERE PatientID = '19045';
השאילתה מחזירה את המחקרים שמשויכים למטופל. בדוגמה הבאה מוצגת תגובה בפורמט JSON:
[
{
"DICOMwebPath": "/dicomWeb/studies/1.3.6.1.4.1.11129.5.5.169629990647803559688464142879817265366193/series/1.3.6.1.4.1.11129.5.5.141990184899344268273968625887396932057061/instances/1.3.6.1.4.1.11129.5.5.162448513493627342869165322873398445570578"
},
{
"DICOMwebPath": "/dicomWeb/studies/1.3.6.1.4.1.11129.5.5.114160532832901355654444239008681456919023/series/1.3.6.1.4.1.11129.5.5.178361108150351071908200174504411112440700/instances/1.3.6.1.4.1.11129.5.5.145959606905209488520697484018030440952428"
},
{
"DICOMwebPath": "/dicomWeb/studies/1.3.6.1.4.1.11129.5.5.177801331756958922168115732894519725643007/series/1.3.6.1.4.1.11129.5.5.134128639331055702643451404466208677561042/instances/1.3.6.1.4.1.11129.5.5.148534317486838863760908141408862094292875"
},
{
"DICOMwebPath": "/dicomWeb/studies/1.3.6.1.4.1.11129.5.5.119570482687494886334491471870663517807852/series/1.3.6.1.4.1.11129.5.5.148050768676645373034111775531663876425927/instances/1.3.6.1.4.1.11129.5.5.111153708388576066195389700503245704293300"
},
{
"DICOMwebPath": "/dicomWeb/studies/1.3.6.1.4.1.11129.5.5.144704399171290022427247626928443085419319/series/1.3.6.1.4.1.11129.5.5.190285793344339390593165731988543561416633/instances/1.3.6.1.4.1.11129.5.5.110245902713751842026864359179754889505217"
},
{
"DICOMwebPath": "/dicomWeb/studies/1.3.6.1.4.1.11129.5.5.172276126220388966649736649950361623806435/series/1.3.6.1.4.1.11129.5.5.171512371498506519035489729484464872160452/instances/1.3.6.1.4.1.11129.5.5.111721417729733087384317002785068394901165"
}
]
שליחת שאילתה לגבי המחקרים האחרונים
נניח שאתם רוצים לאכלס רשימת עבודה של קריאת PACS במחקרים העדכניים ביותר ממערך הנתונים שלכם.
השאילתה הבאה מראה איך לאחזר ולהציג את המחקרים האחרונים יחד עם ספירת המופעים ומטא-נתונים רלוונטיים. בדוגמה נעשה שימוש בטבלה bigquery-public-data.idc_v5.dicom_metadata ממערך הנתונים TCIA.
#standardSQL
SELECT
MIN(CONCAT(StudyDate, ' ', StudyTime)) as StudyDateTime, MIN(PatientID) as PatientID, StudyInstanceUID, COUNT(*) as InstanceCount
FROM
`bigquery-public-data.idc_v5.dicom_metadata` AS dicom
GROUP BY StudyInstanceUID
ORDER BY StudyDateTime DESC
LIMIT 10;
השאילתה מחזירה את המידע הבא:
- המחקרים האחרונים שהוזנו למערכת, ומתי הם הוזנו
- המטופל שמשויך לכל מחקר
- מזהה המחקר (UID)
- מספר המופעים שמשויכים למחקר
התגובה הבאה היא בפורמט JSON:
[
{
"StudyDateTime": "2021-07-11 00:38:22",
"PatientID": "C3L-01924",
"StudyInstanceUID": "1.3.6.1.4.1.5962.99.1.2466232160.763753303.1625963902816.3.0",
"InstanceCount": "4"
}, {
"StudyDateTime": "2021-07-10 23:52:10",
"PatientID": "C3L-01924",
"StudyInstanceUID": "1.3.6.1.4.1.5962.99.1.2463459463.1074873794.1625961130119.3.0",
"InstanceCount": "4"
}, {
"StudyDateTime": "2021-07-10 23:31:13",
"PatientID": "C3L-02513",
"StudyInstanceUID": "1.3.6.1.4.1.5962.99.1.2462202516.1453336368.1625959873172.3.0",
"InstanceCount": "7"
}, {
"StudyDateTime": "2021-07-10 23:25:17",
"PatientID": "C3L-01924",
"StudyInstanceUID": "1.3.6.1.4.1.5962.99.1.2461846936.496969835.1625959517592.3.0",
"InstanceCount": "4"
}, {
"StudyDateTime": "2021-07-10 22:35:16",
"PatientID": "C3L-02515",
"StudyInstanceUID": "1.3.6.1.4.1.5962.99.1.2458845347.1905567435.1625956516003.3.0",
"InstanceCount": "6"
}, {
"StudyDateTime": "2021-07-10 21:49:46",
"PatientID": "C3L-02515",
"StudyInstanceUID": "1.3.6.1.4.1.5962.99.1.2456116127.1264613559.1625953786783.3.0",
"InstanceCount": "7"
}, {
"StudyDateTime": "2021-07-10 21:46:04",
"PatientID": "C3L-02513",
"StudyInstanceUID": "1.3.6.1.4.1.5962.99.1.2455894080.1705479047.1625953564736.3.0",
"InstanceCount": "6"
}, {
"StudyDateTime": "2021-07-10 21:13:30",
"PatientID": "C3L-01924",
"StudyInstanceUID": "1.3.6.1.4.1.5962.99.1.2453939652.2052768474.1625951610308.3.0",
"InstanceCount": "4"
}, {
"StudyDateTime": "2021-07-10 21:10:17",
"PatientID": "C3L-02515",
"StudyInstanceUID": "1.3.6.1.4.1.5962.99.1.2453746219.164669562.1625951416875.3.0",
"InstanceCount": "6"
}, {
"StudyDateTime": "2021-07-10 20:05:48",
"PatientID": "C3L-02513",
"StudyInstanceUID": "1.3.6.1.4.1.5962.99.1.2449877792.1996682667.1625947548448.3.0",
"InstanceCount": "6"
}
]
מגבלות והתנהגות נוספת
אם לתג DICOM אין סוג נתמך ב-BigQuery (שמפורט בסוגי VR שלא נכללים), הוא מופיע בעמודה נפרדת (שנקראת DroppedTags.TagName) בטבלת היעד ב-BigQuery.
פתרון בעיות בבקשות לייצוא DICOM
אם מתרחשות שגיאות במהלך בקשה לייצוא מטא-נתונים של DICOM ל-BigQuery, השגיאות מתועדות ב-Cloud Logging. מידע נוסף זמין במאמר צפייה ביומני שגיאות ב-Cloud Logging.