Halaman ini menjelaskan cara mengekspor metadata DICOM ke BigQuery untuk eksplorasi dan analisis. Untuk informasi tentang skema BigQuery yang dibuat saat mengekspor metadata DICOM, lihat Memahami skema DICOM BigQuery.
Menetapkan izin BigQuery
Sebelum mengekspor metadata DICOM ke tabel BigQuery, Anda harus memberikan izin tambahan ke akun layanan Cloud Healthcare Service Agent. Untuk mengetahui informasi selengkapnya, lihat Izin BigQuery penyimpanan DICOM.
Menetapkan tujuan BigQuery
Saat menetapkan tujuan BigQuery, gunakan URI yang sepenuhnya memenuhi syarat, seperti ini:bq://PROJECT_ID.BIGQUERY_DATASET_ID.BIGQUERY_TABLE_ID
- Apakah tabel tujuan sudah ada
- Apakah Anda telah menetapkan kolom
force
(menggunakan API) atau flag--overwrite-table
(menggunakan Google Cloud CLI) - Apakah Anda telah menetapkan nilai untuk enum
writeDisposition
. Jika Anda menggunakan enumwriteDisposition
, jangan tetapkan kolomforce
.
- Jika tabel tujuan sudah ada dan
force
ditetapkan ketrue
atau flag--overwrite-table
ditentukan, operasi ekspor akan menimpa tabel yang ada. - Jika tabel tujuan sudah ada dan
force
ditetapkan kefalse
atau tanda--overwrite-table
tidak ditentukan, error akan terjadi. - Jika tabel tujuan belum ada, tabel baru akan dibuat, terlepas dari apakah Anda menentukan kolom
force
atau flag--overwrite-table
. - Perilaku untuk
writeDisposition
dijelaskan dalam dokumentasinya. EnumwriteDisposition
melakukan perilaku yang mirip dengan opsi saat menggunakanforce
, dengan pengecualian berikut: jika tabel tujuan sudah ada, dan kosong, operasi ekspor akan selesai, bukan menampilkan error.
Mengekspor metadata DICOM
Contoh berikut menunjukkan cara mengekspor metadata DICOM ke tabel BigQuery. Dalam contoh ini, penyimpanan DICOM dan tabel BigQuery berada dalam project yang sama. Untuk mengekspor metadata DICOM ke tabel BigQuery di project lain, lihat Mengekspor metadata DICOM ke project lain.
Konsol
Untuk mengekspor metadata DICOM ke tabel BigQuery, selesaikan langkah-langkah berikut:
Di konsol Google Cloud, buka halaman Datasets.
Klik set data yang memiliki penyimpanan DICOM dengan metadata yang Anda ekspor.
Di baris yang sama dengan penyimpanan DICOM, buka daftar Tindakan, lalu pilih Ekspor.
Di halaman Ekspor penyimpanan DICOM yang muncul, pilih Tabel BigQuery.
Di kolom Project, klik Browse, lalu pilih project Anda.
Dalam daftar Set data, pilih set data BigQuery tempat Anda mengekspor metadata DICOM.
Di kolom Tabel, masukkan nama tabel baru. BigQuery memeriksa setiap pilihan untuk memastikan tabel tujuan valid.
Di bagian Disposisi tulis tabel tujuan, pilih salah satu dari berikut ini. Opsi ini sesuai dengan enum
WriteDisposition
.- Hanya ekspor data jika tabel tujuan kosong: Setara dengan
WRITE_EMPTY
- Menambahkan data ke tabel tujuan: Setara dengan
WRITE_APPEND
- Menghapus semua data yang ada di tabel tujuan sebelum menulis instance: Setara dengan
WRITE_TRUNCATE
.
- Hanya ekspor data jika tabel tujuan kosong: Setara dengan
Klik Ekspor untuk mengekspor metadata DICOM ke tabel BigQuery.
- Untuk melacak status operasi, klik tab Operasi. Setelah operasi selesai, petunjuk berikut akan muncul:
- Bagian Status operasi yang berjalan lama memiliki tanda centang hijau di bawah judul Oke.
- Bagian Ringkasan memiliki tanda centang hijau dan indikator OK di baris yang sama dengan ID operasi.
gcloud
Untuk mengekspor metadata DICOM ke tabel BigQuery, jalankan perintah gcloud healthcare dicom-stores export bq
.
Mengekspor metadata DICOM.
Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:
- PROJECT_ID: ID project Google Cloud Anda
- LOCATION: lokasi set data
- DATASET_ID: set data induk penyimpanan DICOM
- DICOM_STORE_ID: ID penyimpanan DICOM
- BIGQUERY_DATASET_ID: nama set data BigQuery yang ada tempat Anda mengekspor metadata DICOM
- BIGQUERY_TABLE_ID: nama tabel baru atau yang sudah ada di set data BigQuery. Jika operasi ekspor membuat tabel baru, lihat Penamaan tabel untuk mengetahui persyaratan nama tabel.
- WRITE_DISPOSITION: nilai untuk enum
WriteDisposition
. Gunakan salah satu nilai berikut:write-empty
: hanya ekspor data jika tabel BigQuery kosong.write-truncate
: menghapus semua data yang ada di tabel BigQuery sebelum menulis instance DICOM.write-append
: menambahkan data ke tabel BigQuery.
Jalankan perintah berikut:
Linux, macOS, atau 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
setelah ekspor selesai. Perhatikan nilaiOPERATION_ID
. Anda memerlukan nilai ini di langkah berikutnya.Respons
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
Untuk melihat detail selengkapnya tentang operasi, jalankan perintah
gcloud healthcare operations describe
dan berikan OPERATION_ID dari respons:Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:
- PROJECT_ID: ID project Google Cloud Anda
- DATASET_ID: ID set data
- LOCATION: lokasi set data
- OPERATION_ID: ID yang ditampilkan dari operasi yang berjalan lama
Jalankan perintah berikut:
Linux, macOS, atau 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
Anda akan melihat respons seperti berikut:
Respons
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
Untuk mengekspor metadata DICOM ke tabel BigQuery, gunakan metode projects.locations.datasets.dicomStores.export
.
Mengekspor metadata DICOM.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: ID project Google Cloud Anda
- LOCATION: lokasi set data
- DATASET_ID: set data induk penyimpanan DICOM
- DICOM_STORE_ID: ID penyimpanan DICOM
- BIGQUERY_DATASET_ID: nama set data BigQuery yang ada tempat Anda mengekspor metadata DICOM
- BIGQUERY_TABLE_ID: nama tabel baru atau yang sudah ada di set data BigQuery. Jika operasi ekspor membuat tabel baru, lihat Penamaan tabel untuk mengetahui persyaratan nama tabel.
- WRITE_DISPOSITION: nilai untuk enum
WriteDisposition
. Gunakan salah satu nilai berikut:WRITE_EMPTY
: hanya ekspor data jika tabel BigQuery kosong.WRITE_TRUNCATE
: menghapus semua data yang ada di tabel BigQuery sebelum menulis instance DICOM.WRITE_APPEND
: menambahkan data ke tabel BigQuery.
Meminta isi JSON:
{ "bigqueryDestination": { "tableUri": "bq://PROJECT_ID.BIGQUERY_DATASET_ID.BIGQUERY_TABLE_ID", "writeDisposition": "WRITE_DISPOSITION" } }
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Simpan isi permintaan dalam file bernama
request.json
. Jalankan perintah berikut di terminal untuk membuat atau menimpa file ini di direktori saat ini:cat > request.json << 'EOF' { "bigqueryDestination": { "tableUri": "bq://PROJECT_ID.BIGQUERY_DATASET_ID.BIGQUERY_TABLE_ID", "writeDisposition": "WRITE_DISPOSITION" } } EOF
Kemudian, jalankan perintah berikut untuk mengirim permintaan REST Anda:
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
Simpan isi permintaan dalam file bernama
request.json
. Jalankan perintah berikut di terminal untuk membuat atau menimpa file ini di direktori saat ini:@' { "bigqueryDestination": { "tableUri": "bq://PROJECT_ID.BIGQUERY_DATASET_ID.BIGQUERY_TABLE_ID", "writeDisposition": "WRITE_DISPOSITION" } } '@ | Out-File -FilePath request.json -Encoding utf8
Kemudian jalankan perintah berikut untuk mengirim permintaan REST Anda:
$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
Salin isi permintaan dan buka halaman referensi metode. Panel API Explorer terbuka di sisi kanan halaman. Anda bisa berinteraksi dengan alat ini untuk mengirim permintaan. Tempelkan isi permintaan di alat ini, lengkapi kolom lainnya yang wajib diisi, lalu klik Jalankan.
OPERATION_ID
. Anda memerlukan nilai ini di langkah berikutnya.Gunakan metode
projects.locations.datasets.operations.get
untuk mendapatkan status operasi yang berjalan lama.Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: ID project Google Cloud Anda
- DATASET_ID: ID set data
- LOCATION: lokasi set data
- OPERATION_ID: ID yang ditampilkan dari operasi yang berjalan lama
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Jalankan perintah berikut:
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
Jalankan perintah berikut:
$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
Buka halaman referensi metode. Panel API Explorer terbuka di sisi kanan halaman. Anda bisa berinteraksi dengan alat ini untuk mengirim permintaan. Lengkapi kolom yang wajib diisi, lalu klik Jalankan.
"done": true
, operasi yang berjalan lama telah selesai.
Mengekspor metadata DICOM ke project lain
Untuk mengekspor metadata DICOM dari penyimpanan DICOM di satu project ke set data BigQuery di project lain, lihat terlebih dahulu artikel Mengekspor metadata DICOM ke izin project yang berbeda untuk mengetahui informasi tentang cara menetapkan izin IAM di project tujuan.
gcloud
Untuk mengekspor metadata DICOM dari penyimpanan DICOM di satu project ke
tabel BigQuery di project lain, gunakan perintah
gcloud healthcare dicom-stores export bq
.
Mengekspor metadata DICOM.
Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:
- SOURCE_PROJECT_ID: ID project Google Cloud sumber
- SOURCE_LOCATION: lokasi set data sumber
- SOURCE_DATASET_ID: set data induk penyimpanan DICOM sumber
- SOURCE_DICOM_STORE_ID: ID penyimpanan DICOM sumber
- DESTINATION_PROJECT_ID: ID project yang berbeda
- DESTINATION_BIGQUERY_DATASET_ID: nama set data BigQuery yang ada di project tujuan tempat Anda mengekspor metadata DICOM
- DESTINATION_BIGQUERY_TABLE_ID: nama tabel baru atau yang sudah ada di set data BigQuery. Jika operasi ekspor membuat tabel baru, lihat Penamaan tabel untuk mengetahui persyaratan nama tabel.
- WRITE_DISPOSITION: nilai untuk enum
WriteDisposition
. Gunakan salah satu nilai berikut:write-empty
: hanya ekspor data jika tabel BigQuery kosong.write-truncate
: menghapus semua data yang ada di tabel BigQuery sebelum menulis instance DICOM.write-append
: menambahkan data ke tabel BigQuery.
Jalankan perintah berikut:
Linux, macOS, atau 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
setelah ekspor selesai. Perhatikan nilaiOPERATION_ID
. Anda memerlukan nilai ini di langkah berikutnya.Respons
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
Untuk melihat detail selengkapnya tentang operasi, jalankan perintah
gcloud healthcare operations describe
dan berikan OPERATION_ID dari respons:Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:
- SOURCE_PROJECT_ID: ID project Google Cloud sumber
- SOURCE_LOCATION: lokasi set data sumber
- SOURCE_DATASET_ID: ID set data sumber
- OPERATION_ID: ID yang ditampilkan dari operasi yang berjalan lama
Jalankan perintah berikut:
Linux, macOS, atau 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
Anda akan melihat respons seperti berikut:
Respons
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
Untuk mengekspor metadata DICOM dari penyimpanan DICOM di satu project ke tabel BigQuery di project lain, gunakan metode projects.locations.datasets.dicomStores.export
.
Mengekspor metadata DICOM.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- SOURCE_PROJECT_ID: ID project Google Cloud sumber
- SOURCE_LOCATION: lokasi set data sumber
- SOURCE_DATASET_ID: set data induk penyimpanan DICOM sumber
- SOURCE_DICOM_STORE_ID: ID penyimpanan DICOM sumber
- DESTINATION_PROJECT_ID: ID project yang berbeda
- DESTINATION_BIGQUERY_DATASET_ID: nama set data BigQuery yang ada di project tujuan tempat Anda mengekspor metadata DICOM
- DESTINATION_BIGQUERY_TABLE_ID: nama tabel baru atau yang sudah ada di set data BigQuery. Jika operasi ekspor membuat tabel baru, lihat Penamaan tabel untuk mengetahui persyaratan nama tabel.
- WRITE_DISPOSITION: nilai untuk enum
WriteDisposition
. Gunakan salah satu nilai berikut:WRITE_EMPTY
: hanya ekspor data jika tabel BigQuery kosong.WRITE_TRUNCATE
: menghapus semua data yang ada di tabel BigQuery sebelum menulis instance DICOM.WRITE_APPEND
: menambahkan data ke tabel BigQuery.
Meminta isi JSON:
{ "bigqueryDestination": { "tableUri": "bq://DESTINATION_PROJECT_ID.DESTINATION_BIGQUERY_DATASET_ID.DESTINATION_BIGQUERY_TABLE_ID", "writeDisposition": "WRITE_DISPOSITION" } }
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Simpan isi permintaan dalam file bernama
request.json
. Jalankan perintah berikut di terminal untuk membuat atau menimpa file ini di direktori saat ini:cat > request.json << 'EOF' { "bigqueryDestination": { "tableUri": "bq://DESTINATION_PROJECT_ID.DESTINATION_BIGQUERY_DATASET_ID.DESTINATION_BIGQUERY_TABLE_ID", "writeDisposition": "WRITE_DISPOSITION" } } EOF
Kemudian, jalankan perintah berikut untuk mengirim permintaan REST Anda:
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
Simpan isi permintaan dalam file bernama
request.json
. Jalankan perintah berikut di terminal untuk membuat atau menimpa file ini di direktori saat ini:@' { "bigqueryDestination": { "tableUri": "bq://DESTINATION_PROJECT_ID.DESTINATION_BIGQUERY_DATASET_ID.DESTINATION_BIGQUERY_TABLE_ID", "writeDisposition": "WRITE_DISPOSITION" } } '@ | Out-File -FilePath request.json -Encoding utf8
Kemudian jalankan perintah berikut untuk mengirim permintaan REST Anda:
$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
Salin isi permintaan dan buka halaman referensi metode. Panel API Explorer terbuka di sisi kanan halaman. Anda bisa berinteraksi dengan alat ini untuk mengirim permintaan. Tempelkan isi permintaan di alat ini, lengkapi kolom lainnya yang wajib diisi, lalu klik Jalankan.
OPERATION_ID
. Anda memerlukan nilai ini di langkah berikutnya.Gunakan metode
projects.locations.datasets.operations.get
untuk mendapatkan status operasi yang berjalan lama.Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- SOURCE_PROJECT_ID: ID project Google Cloud sumber
- SOURCE_LOCATION: lokasi set data sumber
- SOURCE_DATASET_ID: ID set data sumber
- OPERATION_ID: ID yang ditampilkan dari operasi yang berjalan lama
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Jalankan perintah berikut:
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
Jalankan perintah berikut:
$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
Buka halaman referensi metode. Panel API Explorer terbuka di sisi kanan halaman. Anda bisa berinteraksi dengan alat ini untuk mengirim permintaan. Lengkapi kolom yang wajib diisi, lalu klik Jalankan.
"done": true
, operasi yang berjalan lama telah selesai.
Mengekspor metadata DICOM menggunakan filter
Secara default, saat Anda mengekspor file DICOM ke Cloud Storage, semua file DICOM di penyimpanan DICOM yang ditentukan akan diekspor. Demikian pula, saat Anda mengekspor metadata DICOM ke BigQuery, metadata untuk semua data DICOM di penyimpanan DICOM yang ditentukan akan diekspor.
Anda dapat mengekspor sebagian data atau metadata DICOM menggunakan filter. Anda menentukan filter dalam file filter.
Mengonfigurasi file filter
File filter menentukan file DICOM yang akan diekspor ke Cloud Storage atau BigQuery. Anda dapat mengonfigurasi file filter pada tingkat berikut:
- Di tingkat studi
- Di tingkat seri
- Di tingkat instance
File filter terdiri dari beberapa baris dengan setiap baris menentukan studi, seri, atau instance yang ingin diekspor. Setiap baris menggunakan format /studies/STUDY_UID[/series/SERIES_UID[/instances/INSTANCE_UID]]
.
Jika studi, seri, atau instance tidak ditentukan dalam file filter saat Anda meneruskan file filter, studi, seri, atau instance tersebut tidak akan diekspor.
Hanya bagian /studies/STUDY_UID
dari jalur yang
diperlukan. Anda dapat mengekspor seluruh studi dengan menentukan
/studies/STUDY_UID
, atau Anda dapat mengekspor seluruh
serial dengan menentukan /studies/STUDY_UID/series/SERIES_UID
.
Pertimbangkan file filter berikut. File filter akan menghasilkan satu studi, dua seri, dan tiga instance individual yang diekspor:
/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
Membuat file filter menggunakan BigQuery
Anda biasanya membuat file filter dengan mengekspor metadata dari penyimpanan DICOM ke BigQuery terlebih dahulu. Tindakan ini memungkinkan Anda menggunakan BigQuery untuk melihat UID studi, rangkaian, dan instance data DICOM di penyimpanan DICOM. Kemudian, Anda dapat menyelesaikan langkah-langkah berikut:
-
Buat kueri untuk UID studi, serial, dan instance yang Anda minati.
Misalnya, setelah mengekspor metadata DICOM ke BigQuery, Anda dapat menjalankan kueri berikut untuk menyambungkan UID studi, seri, dan instance ke format yang kompatibel dengan persyaratan file filter:
SELECT CONCAT ('/studies/', StudyInstanceUID, '/series/', SeriesInstanceUID, '/instances/', SOPInstanceUID) FROM [PROJECT_ID:BIGQUERY_DATASET.BIGQUERY_TABLE]
- Jika kueri menampilkan kumpulan hasil yang besar, Anda dapat membuat tabel baru dengan menyimpan hasil kueri ke tabel tujuan di BigQuery.
- Jika menyimpan hasil kueri ke tabel tujuan, Anda dapat menyimpan konten tabel tujuan ke file dan mengekspornya ke Cloud Storage. Untuk mengetahui langkah-langkah cara melakukannya, lihat Mengekspor data tabel. File yang diekspor adalah file filter Anda. Anda menggunakan lokasi file filter di Cloud Storage saat menentukan filter dalam operasi ekspor.
Membuat file filter secara manual
Anda dapat membuat file filter dengan konten kustom dan menguploadnya ke bucket Cloud Storage. Anda menggunakan lokasi file filter di Cloud Storage saat menentukan filter dalam operasi ekspor. Contoh berikut menunjukkan cara mengupload file filter ke bucket Cloud Storage menggunakan perintahgcloud storage cp
:
gcloud storage cp FILTER_FILE gs://BUCKET
Meneruskan file filter
Setelah membuat file filter, Anda dapat memanggil operasi ekspor DICOM dan meneruskan file filter menggunakan REST API. Contoh berikut menunjukkan cara mengekspor metadata DICOM menggunakan filter.
gcloud
Untuk mengekspor metadata DICOM ke tabel BigQuery menggunakan filter, jalankan perintah gcloud beta healthcare dicom-stores export bq
.
Mengekspor metadata DICOM.
Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:
- PROJECT_ID: ID project Google Cloud Anda
- LOCATION: lokasi set data
- DATASET_ID: set data induk penyimpanan DICOM
- DICOM_STORE_ID: ID penyimpanan DICOM
- BIGQUERY_DATASET_ID: nama set data BigQuery yang ada tempat Anda mengekspor metadata DICOM
- BIGQUERY_TABLE_ID: nama tabel baru atau yang sudah ada di set data BigQuery. Jika operasi ekspor membuat tabel baru, lihat Penamaan tabel untuk mengetahui persyaratan nama tabel.
- BUCKET: nama bucket Cloud Storage yang berisi file filter. Jika file filter berada dalam direktori, sertakan direktori dalam jalur.
- FILTER_FILE: lokasi dan nama file filter di bucket Cloud Storage
- WRITE_DISPOSITION: nilai untuk enum
WriteDisposition
. Gunakan salah satu nilai berikut:write-empty
: hanya ekspor data jika tabel BigQuery kosong.write-truncate
: menghapus semua data yang ada di tabel BigQuery sebelum menulis instance DICOM.write-append
: menambahkan data ke tabel BigQuery.
Jalankan perintah berikut:
Linux, macOS, atau 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
setelah ekspor selesai. Perhatikan nilaiOPERATION_ID
. Anda memerlukan nilai ini di langkah berikutnya.Respons
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
Untuk melihat detail selengkapnya tentang operasi, jalankan perintah
gcloud healthcare operations describe
dan berikan OPERATION_ID dari respons:Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:
- PROJECT_ID: ID project Google Cloud Anda
- DATASET_ID: ID set data
- LOCATION: lokasi set data
- OPERATION_ID: ID yang ditampilkan dari operasi yang berjalan lama
Jalankan perintah berikut:
Linux, macOS, atau 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
Anda akan melihat respons seperti berikut:
Respons
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
Untuk mengekspor metadata DICOM ke tabel BigQuery menggunakan filter, gunakan metode projects.locations.datasets.dicomStores.export
.
Mengekspor metadata DICOM.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: ID project Google Cloud Anda
- LOCATION: lokasi set data
- DATASET_ID: set data induk penyimpanan DICOM
- DICOM_STORE_ID: ID penyimpanan DICOM
- BIGQUERY_DATASET_ID: nama set data BigQuery yang ada tempat Anda mengekspor metadata DICOM
- BIGQUERY_TABLE_ID: nama tabel baru atau yang sudah ada di set data BigQuery. Jika operasi ekspor membuat tabel baru, lihat Penamaan tabel untuk mengetahui persyaratan nama tabel.
- BUCKET: nama bucket Cloud Storage yang berisi file filter. Jika file filter berada dalam direktori, sertakan direktori dalam jalur.
- FILTER_FILE: lokasi dan nama file filter di bucket Cloud Storage
- WRITE_DISPOSITION: nilai untuk enum
WriteDisposition
. Gunakan salah satu nilai berikut:WRITE_EMPTY
: hanya ekspor data jika tabel BigQuery kosong.WRITE_TRUNCATE
: menghapus semua data yang ada di tabel BigQuery sebelum menulis instance DICOM.WRITE_APPEND
: menambahkan data ke tabel BigQuery.
Meminta isi JSON:
{ "bigqueryDestination": { "tableUri": "bq://PROJECT_ID.BIGQUERY_DATASET_ID.BIGQUERY_TABLE_ID", "writeDisposition": "WRITE_DISPOSITION" }, "filterConfig": { "resourcePathsGcsUri": "gs://BUCKET/FILTER_FILE" } }
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Simpan isi permintaan dalam file bernama
request.json
. Jalankan perintah berikut di terminal untuk membuat atau menimpa file ini di direktori saat ini: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
Kemudian, jalankan perintah berikut untuk mengirim permintaan REST Anda:
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
Simpan isi permintaan dalam file bernama
request.json
. Jalankan perintah berikut di terminal untuk membuat atau menimpa file ini di direktori saat ini:@' { "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
Kemudian jalankan perintah berikut untuk mengirim permintaan REST Anda:
$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
Salin isi permintaan dan buka halaman referensi metode. Panel API Explorer terbuka di sisi kanan halaman. Anda bisa berinteraksi dengan alat ini untuk mengirim permintaan. Tempelkan isi permintaan di alat ini, lengkapi kolom lainnya yang wajib diisi, lalu klik Jalankan.
OPERATION_ID
. Anda memerlukan nilai ini di langkah berikutnya.Gunakan metode
projects.locations.datasets.operations.get
untuk mendapatkan status operasi yang berjalan lama.Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: ID project Google Cloud Anda
- DATASET_ID: ID set data
- LOCATION: lokasi set data
- OPERATION_ID: ID yang ditampilkan dari operasi yang berjalan lama
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Jalankan perintah berikut:
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
Jalankan perintah berikut:
$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
Buka halaman referensi metode. Panel API Explorer terbuka di sisi kanan halaman. Anda bisa berinteraksi dengan alat ini untuk mengirim permintaan. Lengkapi kolom yang wajib diisi, lalu klik Jalankan.
"done": true
, operasi yang berjalan lama telah selesai.
Membuat kueri dan menganalisis data DICOM di BigQuery
Setelah mengekspor metadata DICOM ke tabel BigQuery, Anda dapat menjalankan contoh kueri untuk mendapatkan detail selengkapnya tentang metadata. Contoh berikut menunjukkan cara menjalankan kueri untuk beberapa kasus penggunaan umum.
Menelusuri metadata
Misalnya, Anda ingin menelusuri metadata dalam jumlah besar yang
sulit ditelusuri di sistem lain, seperti Sistem Pengarsipan dan Komunikasi Gambar (PACS)
atau Arsip Netral Vendor (VNA). Kueri
berikut menunjukkan cara membuat kueri pada nilai PatientID
pasien dan menggunakan
jalur DICOMweb untuk mengambil instance gambar tertentu. Contoh ini menggunakan tabel
chc-nih-chest-xray.nih_chest_xray.nih_chest_xray dari
set data Sinar X Dada 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';
Kueri menampilkan studi yang terkait dengan pasien. Respons berikut menggunakan pemformatan 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"
}
]
Membuat kueri untuk studi terbaru
Misalnya, Anda ingin mengisi daftar tugas pembacaan PACS dengan studi terbaru dari set data Anda.
Kueri berikut menunjukkan cara mengambil dan menampilkan studi terbaru beserta jumlah instance dan metadata di sekitarnya. Contoh ini menggunakan tabel bigquery-public-data.idc_v5.dicom_metadata dari set data 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;
Kueri menampilkan informasi berikut:
- 10 studi terbaru yang masuk ke sistem dan waktu masuknya ke sistem
- Pasien yang terkait dengan setiap studi
- UID studi
- Jumlah instance yang terkait dengan studi
Respons berikut menggunakan format 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"
}
]
Batasan dan perilaku tambahan
Jika tag DICOM tidak memiliki jenis yang didukung di BigQuery
(tercantum dalam VR yang Dikecualikan),
tag tersebut akan dicantumkan dalam kolom terpisah (disebut DroppedTags.TagName
) di
tabel BigQuery tujuan.
Memecahkan masalah permintaan ekspor DICOM
Jika error terjadi selama permintaan metadata ekspor DICOM ke BigQuery, error tersebut akan dicatat ke Cloud Logging. Untuk mengetahui informasi selengkapnya, lihat Melihat log error di Cloud Logging.