Halaman ini menjelaskan cara mengekspor instance DICOM ke dan mengimpor objek DICOM dari Cloud Storage. Instance DICOM biasanya berupa gambar, tetapi dapat berupa jenis data persisten lainnya seperti laporan terstruktur. Objek DICOM di Cloud Storage adalah instance DICOM yang berada di Cloud Storage. Untuk informasi selengkapnya, lihat Cloud Storage.
Menetapkan izin Cloud Storage
Sebelum mengekspor dan mengimpor data DICOM ke dan dari Cloud Storage, Anda harus memberikan izin tambahan ke akun layanan Agen Layanan Kesehatan Cloud. Untuk informasi selengkapnya, lihat Izin Cloud Storage penyimpanan DICOM.
Mengimpor objek DICOM
Untuk mengimpor beberapa file instance DICOM ke penyimpanan DICOM, Anda dapat menggunakan salah satu metode berikut:
- Secara terprogram, simpan data langsung di penyimpanan DICOM dari komputer lokal Anda menggunakan layanan web RESTful Transaksi Penyimpanan seperti yang diterapkan di Cloud Healthcare API.
- Upload data DICOM di bucket Cloud Storage, lalu impor file ke penyimpanan DICOM menggunakan satu operasi impor seperti yang dijelaskan di bagian ini.
Contoh berikut menunjukkan cara mengimpor objek DICOM dari bucket Cloud Storage.
Konsol
Untuk mengimpor objek DICOM dari bucket Cloud Storage, selesaikan langkah-langkah berikut:
- Di konsol Google Cloud, buka halaman Datasets.
Buka Datasets - Klik set data yang berisi penyimpanan DICOM tempat Anda mengimpor objek DICOM.
- Dalam daftar penyimpanan data, pilih Impor dari daftar Tindakan
untuk penyimpanan DICOM.
Halaman Impor ke penyimpanan DICOM akan muncul. - Dalam daftar Project, pilih project Cloud Storage.
- Dalam daftar Location, pilih bucket Cloud Storage.
- Untuk menetapkan lokasi tertentu guna mengimpor file, lakukan hal berikut:
- Luaskan Opsi Lanjutan.
- Pilih Ganti Jalur Cloud Storage.
- Untuk menetapkan sumber tertentu untuk mengimpor file, tentukan jalur menggunakan variabel berikut di kotak teks Location:
*
- cocok dengan karakter nonpemisah.**
- mencocokkan karakter, termasuk pemisah. Ini dapat digunakan dengan ekstensi nama file untuk mencocokkan semua file dengan jenis yang sama.?
- cocok dengan 1 karakter.
- Klik Impor untuk mengimpor objek DICOM dari sumber yang ditentukan.
- 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 mengimpor objek DICOM dari bucket Cloud Storage, gunakan perintah gcloud healthcare dicom-stores import gcs
. Tentukan nama set data induk, nama penyimpanan DICOM, dan lokasi objek dalam bucket Cloud Storage.
- Lokasi file dalam bucket bersifat arbitrer dan tidak harus sepenuhnya mematuhi format yang ditentukan dalam contoh berikut.
- Saat menentukan lokasi objek DICOM di Cloud Storage, Anda dapat menggunakan karakter pengganti untuk mengimpor beberapa file dari satu atau beberapa direktori.
Karakter pengganti berikut didukung:
- Gunakan
*
untuk mencocokkan 0 atau beberapa karakter nonpemisah. Misalnya,gs://BUCKET/DIRECTORY/Example*.dcm
cocok dengan Example.dcm dan Example22.dcm di DIRECTORY. - Gunakan
**
untuk mencocokkan 0 atau beberapa karakter (termasuk pemisah). Harus digunakan di akhir jalur dan tanpa karakter pengganti lain di jalur. Dapat juga digunakan dengan ekstensi nama file (seperti .dcm), yang mengimpor semua file dengan ekstensi nama file di direktori yang ditentukan dan subdirektorinya. Misalnya,gs://BUCKET/DIRECTORY/**.dcm
mengimpor semua file dengan ekstensi nama file .dcm di DIRECTORY dan subdirektorinya. - Gunakan
?
untuk mencocokkan 1 karakter. Misalnya,gs://BUCKET/DIRECTORY/Example?.dcm
cocok dengan Example1.dcm, tetapi tidak cocok dengan Example.dcm atau Example01.dcm.
- Gunakan
Contoh berikut menunjukkan cara mengimpor objek DICOM dari bucket Cloud Storage.
gcloud healthcare dicom-stores import gcs DICOM_STORE_ID \ --dataset=DATASET_ID \ --location=LOCATION \ --gcs-uri=gs://BUCKET/DIRECTORY/DICOM_INSTANCE.dcm
Command line akan menampilkan ID operasi:
name: projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID
Untuk melihat status operasi, jalankan perintah gcloud healthcare operations describe
dan berikan OPERATION_ID dari respons:
gcloud healthcare operations describe OPERATION_ID \ --location=LOCATION \ --dataset=DATASET_ID
Setelah perintah selesai, respons akan menyertakan done: true
.
done: true metadata: '@type': type.googleapis.com/google.cloud.healthcare.v1.OperationMetadata apiMethodName: google.cloud.healthcare.v1.dicom.DicomService.ImportDicomData counter: success: SUCCESSFUL_INSTANCES failure: FAILED_INSTANCES createTime: "CREATE_TIME" endTime: "END_TIME" name: projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID response: '@type': "..."
API
Untuk mengimpor objek DICOM dari bucket Cloud Storage, gunakan metode projects.locations.datasets.dicomStores.import
.
- Lokasi file dalam bucket dapat bervariasi dan tidak harus cocok dengan format yang ditentukan dalam contoh berikut.
- Saat menentukan lokasi objek DICOM di Cloud Storage,
gunakan karakter pengganti untuk mengimpor beberapa file dari satu atau beberapa direktori.
Karakter pengganti berikut didukung:
- Gunakan
*
untuk mencocokkan 0 atau beberapa karakter nonpemisah. Misalnya,gs://BUCKET/DIRECTORY/Example*.dcm
cocok dengan Example.dcm dan Example22.dcm di DIRECTORY. - Gunakan
**
untuk mencocokkan 0 atau beberapa karakter (termasuk pemisah). Harus digunakan di akhir jalur dan tanpa karakter pengganti lain di jalur. Dapat juga digunakan dengan ekstensi nama file (seperti .dcm), yang mengimpor semua file dengan ekstensi nama file di direktori yang ditentukan dan subdirektorinya. Misalnya,gs://BUCKET/DIRECTORY/**.dcm
mengimpor semua file dengan ekstensi nama file .dcm di DIRECTORY dan subdirektorinya. - Gunakan
?
untuk mencocokkan 1 karakter. Misalnya,gs://BUCKET/DIRECTORY/Example?.dcm
cocok dengan Example1.dcm, tetapi tidak cocok dengan Example.dcm atau Example01.dcm.
- Gunakan
REST
Impor objek DICOM.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
PROJECT_ID
: ID project Google Cloud AndaLOCATION
: lokasi set dataDATASET_ID
: set data induk penyimpanan DICOMDICOM_STORE_ID
: ID penyimpanan DICOMBUCKET/PATH/TO/FILE
: jalur ke objek DICOM di Cloud Storage
Meminta isi JSON:
{ "gcsSource": { "uri": "gs://BUCKET/PATH/TO/FILE.dcm" } }
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' { "gcsSource": { "uri": "gs://BUCKET/PATH/TO/FILE.dcm" } } 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" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID:import"PowerShell
Simpan isi permintaan dalam file bernama
request.json
. Jalankan perintah berikut di terminal untuk membuat atau menimpa file ini di direktori saat ini:@' { "gcsSource": { "uri": "gs://BUCKET/PATH/TO/FILE.dcm" } } '@ | 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" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID:import" | Select-Object -Expand ContentMendapatkan status operasi yang berjalan lama.
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 DICOM Store
- 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 Content
Go
Java
Node.js
Python
Untuk mengambil satu instance atau studi dari penyimpanan DICOM, ambil data DICOM menggunakan layanan web RESTful Retrieve Transaction seperti yang diterapkan di Cloud Healthcare API.
Menentukan class penyimpanan untuk mengimpor objek DICOM (Pratinjau)
Secara default, metode projects.locations.datasets.dicomStores.import
mengimpor
objek DICOM ke penyimpanan DICOM dengan class penyimpanan standar. Anda dapat menetapkan
kelas penyimpanan saat mengimpor objek DICOM dari Cloud Storage.
Untuk informasi selengkapnya, lihat
Mengubah class penyimpanan DICOM.
Contoh berikut menunjukkan cara menentukan class penyimpanan saat Anda mengimpor objek DICOM dari Cloud Storage.
REST
Gunakan metode
projects.locations.datasets.dicomStores.import
.
Impor objek DICOM.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
PROJECT_ID
: ID project Google Cloud AndaLOCATION
: lokasi set dataDATASET_ID
: set data induk penyimpanan DICOMDICOM_STORE_ID
: ID penyimpanan DICOMBUCKET/PATH/TO/FILE
: jalur ke objek DICOM di Cloud StorageSTORAGE_CLASS
: class penyimpanan untuk objek DICOM di penyimpanan DICOM dariSTANDARD
,NEARLINE
,COLDLINE
, danARCHIVE
Meminta isi JSON:
{ "gcsSource": { "uri": "gs://BUCKET/PATH/TO/FILE.dcm" }, "blob_storage_settings": { "blob_storage_class": "STORAGE_CLASS" } }
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' { "gcsSource": { "uri": "gs://BUCKET/PATH/TO/FILE.dcm" }, "blob_storage_settings": { "blob_storage_class": "STORAGE_CLASS" } } 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" \
-d @request.json \
"https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID:import"PowerShell
Simpan isi permintaan dalam file bernama
request.json
. Jalankan perintah berikut di terminal untuk membuat atau menimpa file ini di direktori saat ini:@' { "gcsSource": { "uri": "gs://BUCKET/PATH/TO/FILE.dcm" }, "blob_storage_settings": { "blob_storage_class": "STORAGE_CLASS" } } '@ | 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" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID:import" | Select-Object -Expand ContentMendapatkan status operasi yang berjalan lama.
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 DICOM Store
- 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/v1beta1/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/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand Content
Memecahkan masalah permintaan impor DICOM
Jika terjadi error selama permintaan impor DICOM, error tersebut akan dicatat ke Cloud Logging. Untuk mengetahui informasi selengkapnya, lihat artikel Melihat log error di Cloud Logging.
Mengekspor instance DICOM
Contoh berikut menunjukkan cara mengekspor instance DICOM ke bucket Cloud Storage. Saat Anda mengekspor instance DICOM dari penyimpanan DICOM, semua instance di penyimpanan akan diekspor.
Konsol
Untuk mengekspor instance DICOM ke Cloud Storage, selesaikan langkah-langkah berikut:
- Di konsol Google Cloud, buka halaman Datasets.
Buka Datasets - Klik set data yang berisi penyimpanan DICOM tempat Anda mengekspor instance DICOM.
- Dalam daftar penyimpanan data, pilih Ekspor dari daftar Tindakan untuk penyimpanan DICOM.
- Di halaman Export DICOM Store yang muncul, pilih Google Cloud Storage Bucket.
- Dalam daftar Project, pilih project Cloud Storage.
- Dalam daftar Location, pilih bucket Cloud Storage.
- Di Setelan Ekspor DICOM, pilih jenis file yang digunakan untuk mengekspor
instance DICOM. Jenis berikut tersedia:
- File DICOM (
.dcm
) - octet-stream
- Gambar (
.jpg
,.png
)
- File DICOM (
- Untuk menentukan sintaksis transfer tambahan, pilih sintaksis dari daftar Sintaksis Transfer.
- Klik Export untuk mengekspor instance DICOM ke lokasi yang ditentukan di Cloud Storage.
- 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 instance DICOM ke bucket Cloud Storage, gunakan perintah gcloud healthcare dicom-stores export gcs
.
- Berikan nama set data induk, nama penyimpanan DICOM, dan bucket Cloud Storage tujuan.
- Tulis ke bucket atau direktori Cloud Storage, bukan objek, karena Cloud Healthcare API membuat satu file
.dcm
untuk setiap objek. - Jika perintah menentukan direktori yang tidak ada, direktori akan dibuat.
Contoh berikut menunjukkan perintah
gcloud healthcare dicom-stores export gcs
.
gcloud healthcare dicom-stores export gcs DICOM_STORE_ID \ --dataset=DATASET_ID \ --location=LOCATION \ --gcs-uri-prefix=gs://BUCKET/DIRECTORY
Command line akan menampilkan ID operasi:
name: projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID
Untuk melihat status operasi, jalankan perintah gcloud healthcare operations describe
dan berikan OPERATION_ID dari respons:
gcloud healthcare operations describe OPERATION_ID \ --location=LOCATION \ --dataset=DATASET_ID
Setelah perintah selesai, respons akan menyertakan done: true
.
done: true metadata: '@type': type.googleapis.com/google.cloud.healthcare.v1.OperationMetadata apiMethodName: google.cloud.healthcare.v1.dicom.DicomService.ExportDicomData counter: success: SUCCESSFUL_INSTANCES failure: FAILED_INSTANCES createTime: "CREATE_TIME" endTime: "END_TIME" name: projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID response: '@type': "..."
API
Untuk mengekspor instance DICOM ke bucket Cloud Storage, gunakan metode projects.locations.datasets.dicomStores.export
.
- Tulis ke bucket atau direktori Cloud Storage, bukan objek, karena
Cloud Healthcare API membuat satu file
.dcm
untuk setiap objek DICOM. - Jika perintah menentukan direktori yang tidak ada, direktori akan dibuat.
curl
Untuk mengekspor instance DICOM, buat permintaan POST
dan berikan informasi berikut:
- Nama dan lokasi set data induk
- Nama penyimpanan DICOM
- Bucket Cloud Storage tujuan
Contoh berikut menunjukkan permintaan POST
yang menggunakan curl
.
curl -X POST \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ --data "{ 'gcsDestination': { 'uriPrefix': 'gs://BUCKET/DIRECTORY' } }" "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID:export"
Jika permintaan berhasil, server akan menampilkan respons dalam format JSON:
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" }
Respons berisi nama operasi. Untuk melacak status operasi,
gunakan
Metode get
operasi:
curl -X GET \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"
Jika permintaan berhasil, server akan menampilkan respons dengan status operasi dalam format JSON:
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.healthcare.v1.OperationMetadata", "apiMethodName": "google.cloud.healthcare.v1.dicom.DicomService.ExportDicomData", "createTime": "CREATE_TIME", "endTime": "END_TIME", "logsUrl": "https://console.cloud.google.com/logs/query/CLOUD_LOGGING_URL", "counter":{ "success": SUCCESSFUL_INSTANCES "failure": FAILED_INSTANCES } }, "done": true, "response": { "@type": "..." } }
PowerShell
Untuk mengekspor instance DICOM, buat permintaan POST
dan berikan informasi berikut:
- Nama dan lokasi set data induk
- Nama penyimpanan DICOM
- Bucket Cloud Storage tujuan
Contoh berikut menunjukkan permintaan POST
menggunakan Windows PowerShell.
$cred = gcloud auth application-default print-access-token $headers = @{ Authorization = "Bearer $cred" } Invoke-WebRequest ` -Method Post ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body "{ 'gcsDestination': { 'uriPrefix': 'gs://BUCKET/DIRECTORY' } }" ` -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID:export" | Select-Object -Expand Content
Jika permintaan berhasil, server akan menampilkan respons dalam format JSON:
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" }
Respons berisi nama operasi. Untuk melacak status operasi,
gunakan
Metode get
operasi:
$cred = gcloud auth application-default 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 Content
Jika permintaan berhasil, server akan menampilkan respons dengan status operasi dalam format JSON:
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.healthcare.v1.OperationMetadata", "apiMethodName": "google.cloud.healthcare.v1.dicom.DicomService.ExportDicomData", "createTime": "CREATE_TIME", "endTime": "END_TIME", "logsUrl": "https://console.cloud.google.com/logs/query/CLOUD_LOGGING_URL", "counter":{ "success": SUCCESSFUL_INSTANCES "failure": FAILED_INSTANCES }, }, "done": true, "response": { "@type": "..." } }
Go
Java
Node.js
Python
Mengekspor instance DICOM menggunakan filter
Secara default, saat Anda mengekspor file DICOM ke Cloud Storage, semua file DICOM di penyimpanan DICOM akan diekspor. Demikian pula, saat Anda mengekspor metadata DICOM ke BigQuery, metadata untuk semua data DICOM di penyimpanan DICOM akan diekspor.
Anda dapat mengekspor sebagian data atau metadata DICOM menggunakan file filter.
Mengonfigurasi file filter
- Setiap baris dalam file filter menentukan studi, seri, atau instance dan menggunakan format
/studies/STUDY_INSTANCE_UID/series/SERIES_INSTANCE_UID/instances/INSTANCE_UID
. - Anda dapat memotong baris untuk menentukan tingkat kerja filter.
Misalnya, Anda dapat memilih seluruh studi dengan menentukan
/studies/STUDY_INSTANCE_UID
, atau Anda dapat memilih seluruh seri dengan menentukan/studies/STUDY_INSTANCE_UID/series/SERIES_INSTANCE_UID
.
Pertimbangkan file filter berikut:
/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
Contoh file filter ini berlaku untuk hal berikut:
- Seluruh studi dengan UID instance studi sebagai
1.123.456.789
- Dua seri terpisah dengan UID instance seri sebagai
123.456
dan567.890
dalam studi1.666.333.111
- Tiga instance individual dengan ID instance sebagai
111
,222
, dan333
dalam studi1.888.999.222
dan seri123.456
Membuat file filter menggunakan BigQuery
Untuk membuat file filter menggunakan BigQuery, Anda harus terlebih dahulu mengekspor metadata penyimpanan DICOM ke BigQuery. Metadata yang diekspor menunjukkan UID studi, rangkaian, dan instance data DICOM di penyimpanan DICOM Anda.
Setelah mengekspor metadata, selesaikan langkah-langkah berikut:
Jalankan kueri untuk menampilkan UID studi, serial, dan instance yang ingin Anda tambahkan ke file filter.
Misalnya, kueri berikut menunjukkan cara menyambungkan UID studi, seri, dan instance agar cocok dengan persyaratan format file filter:
SELECT CONCAT ('/studies/', StudyInstanceUID, '/series/', SeriesInstanceUID, '/instances/', SOPInstanceUID) FROM [PROJECT_ID:BIGQUERY_DATASET.BIGQUERY_TABLE]
Opsional: Jika kueri menampilkan kumpulan hasil besar yang melebihi ukuran respons maksimum, simpan hasil kueri ke tabel tujuan baru di BigQuery.
Simpan hasil kueri ke file dan ekspor ke Cloud Storage. Jika Anda menyimpan hasil kueri ke tabel tujuan baru di Langkah 2, lihat Mengekspor data tabel untuk mengekspor konten tabel ke Cloud Storage.
Edit file yang diekspor sesuai kebutuhan, dan sertakan permintaan Anda untuk mengubah class penyimpanan beberapa objek DICOM.
Membuat file filter secara manual
Untuk membuat file filter secara manual, lakukan hal berikut:
- Buat file filter yang berisi objek DICOM yang Anda filter.
- Upload file filter ke Cloud Storage. Untuk mengetahui petunjuknya, lihat Mengupload objek dari sistem file.
Meneruskan file filter
Setelah Anda membuat file filter, panggil operasi ekspor DICOM dan teruskan file filter menggunakan REST API. Contoh berikut menunjukkan cara mengekspor data DICOM menggunakan filter.
gcloud
Untuk mengekspor metadata DICOM ke Cloud Storage menggunakan filter, gunakan perintah gcloud beta healthcare dicom-stores export gcs
:
gcloud beta healthcare dicom-stores export gcs DICOM_STORE_ID \ --dataset=DATASET_ID \ --location=LOCATION \ --gcs-uri-prefix=gs://DESTINATION_BUCKET/DIRECTORY \ --filter-config-gcs-uri=gs://BUCKET/DIRECTORY/FILTER_FILE
Ganti kode berikut:
- DICOM_STORE_ID: ID untuk penyimpanan DICOM
- DATASET_ID: nama set data induk penyimpanan DICOM
- LOCATION: lokasi set data induk penyimpanan DICOM
- DESTINATION_BUCKET/DIRECTORY: bucket Cloud Storage tujuan
- BUCKET/DIRECTORY/FILTER_FILE: lokasi file filter di bucket Cloud Storage
Outputnya adalah sebagai berikut:
Request issued for: [DICOM_STORE_ID] Waiting for operation [projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID] to complete...done. name: projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID
Untuk melihat status operasi, jalankan perintah gcloud healthcare operations describe
dan berikan OPERATION_ID dari respons:
gcloud healthcare operations describe OPERATION_ID \ --location=LOCATION \ --dataset=DATASET_ID
Ganti kode berikut:
- OPERATION_ID: nomor ID yang ditampilkan dari respons sebelumnya
- DATASET_ID: nama set data induk penyimpanan DICOM
- LOCATION: lokasi set data induk penyimpanan DICOM
Outputnya adalah sebagai berikut:
done: true metadata: '@type': type.googleapis.com/google.cloud.healthcare.v1beta1.OperationMetadata apiMethodName: google.cloud.healthcare.v1beta1.dicom.DicomService.ExportDicomData counter: success: SUCCESSFUL_INSTANCES failure: FAILED_INSTANCES createTime: 'CREATE_TIME' endTime: 'END_TIME' logsUrl: 'https://console.cloud.google.com/logs/query/CLOUD_LOGGING_URL' name: projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID response: '@type': '...'
API
Untuk mengekspor data DICOM menggunakan filter, gunakan metode projects.locations.datasets.dicomStores.export
.
curl
Untuk mengekspor data DICOM menggunakan file filter, buat permintaan POST
dan berikan
informasi berikut:
- Nama dan lokasi set data induk
- Nama penyimpanan DICOM
- Bucket Cloud Storage tujuan
- Lokasi file filter di bucket Cloud Storage
Contoh berikut menunjukkan permintaan POST
yang menggunakan curl
.
curl -X POST \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ --data "{ 'gcsDestination': { 'uriPrefix': 'gs://BUCKET/DIRECTORY' }, 'filterConfig': { 'resourcePathsGcsUri': 'gs://BUCKET/DIRECTORY/FILTER_FILE' } }" "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID:export"
Jika permintaan berhasil, server akan menampilkan respons berikut dalam format JSON:
{ "name": "projects/PROJECT_ID/locations/REGION/datasets/DATASET_ID/operations/OPERATION_ID" }
Respons berisi nama operasi. Gunakan
Metode get
operasi
untuk melacak status operasi:
curl -X GET \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/datasets/DATASET_ID/operations/OPERATION_NAME"
Jika permintaan berhasil, server akan menampilkan respons berikut dalam format JSON:
{ "name": "projects/PROJECT_ID/locations/REGION/datasets/DATASET_ID/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.healthcare.v1beta1.OperationMetadata", "apiMethodName": "google.cloud.healthcare.v1beta1.dicom.DicomService.ExportDicomData", "createTime": "CREATE_TIME", "endTime": "END_TIME" }, "done": true, "response": { "@type": "..." } }
PowerShell
Untuk mengekspor data DICOM menggunakan file filter, buat permintaan POST
dan berikan
informasi berikut:
- Nama dan lokasi set data induk
- Nama penyimpanan DICOM
- Bucket Cloud Storage tujuan
- Lokasi file filter di bucket Cloud Storage
Contoh berikut menunjukkan permintaan POST
menggunakan Windows PowerShell.
$cred = gcloud auth application-default print-access-token $headers = @{ Authorization = "Bearer $cred" } Invoke-WebRequest ` -Method Post ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body "{ 'gcsDestination': { 'uriPrefix': 'gs://BUCKET/DIRECTORY' }, 'filterConfig': { 'resourcePathsGcsUri': 'gs://BUCKET/DIRECTORY/FILTER_FILE' }" ` -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID:export" | Select-Object -Expand Content
Jika permintaan berhasil, server akan menampilkan respons berikut dalam format JSON:
{ "name": "projects/PROJECT_ID/locations/REGION/datasets/DATASET_ID/operations/OPERATION_ID" }
Respons berisi nama operasi. Gunakan
Metode get
operasi
untuk melacak status operasi:
$cred = gcloud auth application-default print-access-token $headers = @{ Authorization = "Bearer $cred" } Invoke-WebRequest ` -Method Get ` -Headers $headers ` -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/datasets/DATASET_ID/operations/OPERATION_NAME" | Select-Object -Expand Content
Jika permintaan berhasil, server akan menampilkan respons berikut dengan status operasi dalam format JSON:
{ "name": "projects/PROJECT_ID/locations/REGION/datasets/DATASET_ID/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.healthcare.v1beta1.OperationMetadata", "apiMethodName": "google.cloud.healthcare.v1beta1.dicom.DicomService.ExportDicomData", "createTime": "CREATE_TIME", "endTime": "END_TIME" }, "done": true, "response": { "@type": "..." } }
Memecahkan masalah permintaan ekspor DICOM
Jika terjadi error selama permintaan ekspor DICOM, error tersebut akan dicatat ke Cloud Logging. Untuk mengetahui informasi selengkapnya, lihat artikel Melihat log error di Cloud Logging.
Jika seluruh operasi menampilkan error, lihat Memecahkan masalah operasi yang berjalan lama.