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 penyimpanan atau dengan mengimpor objek DICOM dari bucket Cloud Storage.
- Anda menghapus instance DICOM menggunakan permintaan Penghapusan.
- Anda mengubah class 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 langkah-langkah 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 mengetahui 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 mengupdate penyimpanan DICOM guna mengaktifkan streaming BigQuery, selesaikan langkah-langkah berikut:
- Di konsol Google Cloud, buka halaman Datasets.
Buka Datasets - Pilih set data yang berisi penyimpanan DICOM yang ingin Anda edit.
- Pilih penyimpanan DICOM tempat Anda menambahkan konfigurasi streaming.
- Di tab Ringkasan pada halaman Detail datastore, klik Tambahkan konfigurasi streaming baru.
- Di kolom New streaming configuration, klik Browse.
- Di panel Select table, pilih tabel BigQuery.
- Klik Pilih.
- 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 ada
- BIGQUERY_TABLE_ID: nama unik untuk tabel dalam set data BigQuery. Lihat Penamaan tabel untuk mengetahui persyaratan penamaan. Set data BigQuery harus ada, tetapi Cloud Healthcare API dapat memperbarui tabel yang 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 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.
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 diperkenalkannya metadata penghapusan memiliki nilai NULL
untuk kolom ini. NULL
adalah nilai terendah dan
muncul terakhir saat mengurutkan menurut 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 dalam metadata yang diekspor. Jika demikian, tag yang hilang akan ditambahkan ke kolom terpisah bernama DroppedTags.TagName
di tabel BigQuery tujuan.
Tag tidak akan ada karena salah satu alasan berikut:
- Tag DICOM adalah VR yang tidak didukung dan tercantum dalam VR yang Dikecualikan.
- Tag DICOM kira-kira melebihi 1 MB.
- Jumlah kolom dalam tabel BigQuery tujuan melebihi
jumlah kolom maksimum.
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.
Menyertakan metadata penghapusan ke dalam tabel yang ada
Perilaku tampilan yang dihasilkan bergantung pada apakah tabel dasar 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 menyisipkan instance DICOM ke penyimpanan DICOM.
- Anda menghapus instance DICOM dari penyimpanan DICOM.
- Anda mengedit tag instance DICOM asli, dan menyisipkan instance DICOM yang diubah ke penyimpanan DICOM.
Karena tabel BigQuery berisi metadata asli sebelum
metadata penghapusan didukung, instance DICOM asli dan versi
yang diedit memiliki ID unik (UID) studi, seri, dan instance
yang sama. Tampilan yang dihasilkan mungkin berisi
instance DICOM asli atau instance DICOM terbaru. Tanpa
kolom LastUpdated
, tampilan tidak dapat mengidentifikasi instance DICOM yang lebih baru.
Untuk memastikan Anda membuat kueri metadata instance DICOM terbaru, lakukan salah satu hal berikut:
- Buat kueri tabel dasar, bukan tampilan. Pastikan kueri menelusuri tag yang diperbarui di instance DICOM yang diedit.
Hapus tabel yang ada yang berisi metadata DICOM, lalu buat ulang 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 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.
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 Run query.
Semua log error ditampilkan di bagian Query results.