Halaman ini menjelaskan cara mengonfigurasi penyimpanan DICOM untuk mengekspor metadata instance DICOM ke tabel BigQuery setiap kali salah satu hal berikut terjadi:
- Anda menyimpan instance DICOM menggunakan Transaksi toko atau dengan mengimpor objek DICOM dari bucket Cloud Storage.
- Anda menghapus instance DICOM menggunakan permintaan Penghapusan.
- Anda dapat mengubah kelas penyimpanan instance DICOM.
Streaming metadata DICOM ke tabel BigQuery akan menyinkronkan tabel dengan data DICOM, sehingga Anda dapat menjalankan kueri kompleks pada versi terbaru penyimpanan DICOM.
Sebelum memulai
Sebelum mengonfigurasi penyimpanan DICOM, selesaikan hal berikut
Menetapkan izin BigQuery
Sebelum melakukan streaming metadata DICOM ke BigQuery, Anda harus memberikan izin yang diperlukan ke akun layanan Cloud Healthcare Service Agent. Untuk informasi selengkapnya, lihat izin BigQuery penyimpanan DICOM.
Pelajari cara mengekspor metadata DICOM ke BigQuery
Sebelum mengonfigurasi streaming, pahami cara mengekspor metadata DICOM ke BigQuery.
Mengonfigurasi penyimpanan DICOM
Untuk mengaktifkan streaming ke BigQuery, konfigurasikan objek StreamConfig
di penyimpanan DICOM Anda. Pada objek StreamConfig
, tetapkan objek BigQueryDestination
ke URI tabel BigQuery yang sepenuhnya memenuhi syarat sebagai tujuan metadata instance DICOM.
Anda dapat menentukan hingga lima tujuan BigQuery sebagai objek JSON yang dipisahkan koma.
Menghapus instance DICOM di penyimpanan DICOM tidak akan menghapus baris BigQuery yang berisi metadata untuk instance tersebut.
Konsol
Untuk memperbarui penyimpanan DICOM agar dapat mengaktifkan streaming BigQuery, selesaikan langkah-langkah berikut:
- Di konsol Google Cloud, buka halaman Datasets.
Buka Datasets - Pilih set data berisi penyimpanan DICOM yang ingin Anda edit.
- Pilih penyimpanan DICOM tempat Anda menambahkan konfigurasi streaming.
- Di tab Overview di halaman Detail datastore, klik Add new streaming configuration.
- Di kolom Konfigurasi streaming baru, klik Jelajahi.
- Di panel Select table, pilih tabel BigQuery.
- Klik Select.
- Klik Done.
REST
Contoh berikut menunjukkan cara mengupdate penyimpanan DICOM untuk mengaktifkan streaming BigQuery. Dalam contoh ini, penyimpanan DICOM dan tabel BigQuery berada dalam project yang sama. Untuk mengekspor metadata DICOM ke project lain, lihat Mengekspor metadata DICOM ke project lain.
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 sudah ada
- BIGQUERY_TABLE_ID: nama unik untuk tabel di set data BigQuery. Lihat Penamaan tabel untuk persyaratan penamaan. Set data BigQuery harus ada, tetapi Cloud Healthcare API dapat memperbarui tabel yang sudah ada atau membuat tabel baru.
Meminta isi JSON:
{ 'streamConfigs': [{ 'bigqueryDestination': { 'tableUri': 'bq://PROJECT_ID.BIGQUERY_DATASET_ID.BIGQUERY_TABLE_ID' } }] }
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' { 'streamConfigs': [{ 'bigqueryDestination': { 'tableUri': 'bq://PROJECT_ID.BIGQUERY_DATASET_ID.BIGQUERY_TABLE_ID' } }] } EOF
Kemudian, jalankan perintah berikut untuk mengirim permintaan REST Anda:
curl -X PATCH \
-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?updateMask=streamConfigs"
PowerShell
Simpan isi permintaan dalam file bernama request.json
.
Jalankan perintah berikut di terminal untuk membuat atau menimpa file ini di direktori saat ini:
@' { 'streamConfigs': [{ 'bigqueryDestination': { 'tableUri': 'bq://PROJECT_ID.BIGQUERY_DATASET_ID.BIGQUERY_TABLE_ID' } }] } '@ | 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 PATCH `
-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?updateMask=streamConfigs" | Select-Object -Expand Content
APIs Explorer
Salin isi permintaan dan buka halaman referensi metode. Panel APIs Explorer akan 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.
Anda akan melihat respons JSON seperti berikut:
Metadata penghapusan
Pada versi Cloud Healthcare API sebelumnya, metadata instance DICOM hanya diekspor ke BigQuery saat instance DICOM disisipkan ke penyimpanan DICOM. Saat menulis metadata untuk penghapusan ditambahkan, dua kolom baru, bernama Type
dan LastUpdated
, ditambahkan ke tabel yang dihasilkan yang berisi metadata DICOM.
Setiap metadata dalam tabel yang ada sebelum pengenalan metadata penghapusan memiliki nilai NULL
untuk kolom ini. NULL
adalah nilai terendah dan
muncul terakhir saat mengurutkan berdasarkan urutan menurun.
Tampilan BigQuery yang dihasilkan
Saat Anda menyisipkan atau menghapus instance DICOM di penyimpanan DICOM, tabel BigQuery yang dikonfigurasi akan diperbarui.
Jika tampilan tabel tidak ada, tampilan akan dibuat. Jika tidak, tampilan akan diperbarui.
Batasan dan perilaku tambahan
Beberapa tag DICOM mungkin tidak ada di metadata yang diekspor. Jika demikian, tag yang tidak ada akan ditambahkan ke kolom terpisah bernama DroppedTags.TagName
di tabel BigQuery tujuan.
Tag akan hilang karena salah satu alasan berikut:
- Tag DICOM adalah VR yang tidak didukung yang tercantum di VR yang Dikecualikan.
- Tag DICOM kira-kira melebihi 1 MB.
- Jumlah kolom di tabel BigQuery tujuan melebihi jumlah maksimum kolom.
Saat mengekspor metadata DICOM ke tabel BigQuery melebihi batas kolom, tag DICOM yang tidak cocok dengan kolom yang ada akan ditambahkan ke kolom
DroppedTags.Name
. Jika kolomDroppedTags
tidak dapat ditambahkan, tag DICOM akan dihapus tanpa notifikasi dan log peringatan akan dibuat. Untuk informasi selengkapnya, lihat Memecahkan masalah permintaan streaming DICOM untuk melihat log.
Menggabungkan metadata penghapusan ke dalam tabel yang ada
Perilaku tampilan yang dihasilkan bergantung pada apakah tabel dasarnya berisi metadata yang ditambahkan sebelum fitur metadata penghapusan diperkenalkan.
Misalkan tabel BigQuery berisi metadata DICOM dari sebelum metadata penghapusan didukung, lalu hal berikut terjadi:
- Anda memasukkan instance DICOM ke penyimpanan DICOM.
- Anda menghapus instance DICOM dari penyimpanan DICOM.
- Anda mengedit tag instance DICOM asli, dan menyisipkan instance DICOM yang dimodifikasi ke penyimpanan DICOM.
Karena tabel BigQuery berisi metadata asli sebelum metadata penghapusan didukung, instance DICOM asli dan versi yang diedit memiliki studi, seri, dan ID unik instance (UID) yang sama. Tampilan yang dihasilkan mungkin berisi
instance DICOM asli atau instance DICOM terbaru. Tanpa
kolom LastUpdated
, tampilan tidak dapat mengidentifikasi instance DICOM mana yang lebih baru.
Untuk memastikan Anda membuat kueri metadata instance DICOM terbaru, lakukan salah satu hal berikut:
- Mengkueri tabel dasar, bukan tampilan. Pastikan kueri menelusuri tag yang diperbarui dalam instance DICOM yang diedit.
Hapus tabel yang ada yang berisi metadata DICOM, lalu buat ulang tabel tersebut dengan mengekspor metadata DICOM ke BigQuery secara manual. Tabel yang dibuat ulang berisi kolom
LastUpdated
.Opsi ini menghapus metadata streaming historis, tetapi memastikan bahwa tabel berisi kolom
LastUpdated
dengan nilai yang valid.
Memecahkan masalah permintaan streaming DICOM
Jika terjadi error selama metadata ekspor DICOM ke permintaan BigQuery, error tersebut akan dicatat ke dalam log ke Cloud Logging. Untuk mengetahui informasi lebih lanjut, baca bagian Melihat log error di Cloud Logging.
Untuk memfilter log error metadata DICOM streaming di Konsol Google Cloud, selesaikan langkah-langkah berikut:
Buka halaman Logs explorer.
Di kolom Query, masukkan kueri berikut:
logName="healthcare.googleapis.com%2Fdicom_stream"
Klik Jalankan kueri.
Log error apa pun akan ditampilkan di bagian Query results.