Halaman ini menjelaskan cara mengekspor instance DICOM ke dan mengimpor objek DICOM dari Cloud Storage. Instance DICOM biasanya berupa gambar, tetapi dapat juga berupa jenis data persisten lain seperti laporan terstruktur. Objek DICOM di Cloud Storage adalah instance DICOM yang berada di Cloud Storage. Untuk mengetahui 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 Cloud Healthcare. Untuk informasi selengkapnya, lihat izin DICOM menyimpan Cloud Storage.
Mengimpor objek DICOM
Untuk mengimpor beberapa file instance DICOM ke penyimpanan DICOM, Anda dapat menggunakan salah satu metode berikut:
- Simpan data secara terprogram langsung di penyimpanan DICOM dari komputer lokal Anda menggunakan layanan web RESTful Transaksi Toko seperti yang diterapkan dalam Cloud Healthcare API.
- Upload data DICOM ke bucket Cloud Storage, lalu impor file ke penyimpanan DICOM menggunakan operasi impor tunggal 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, lakukan 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.
- Guna menetapkan lokasi tertentu untuk mengimpor file, lakukan langkah berikut:
- Luaskan Advanced Options.
- Pilih Ganti Cloud Storage Path.
- Untuk menetapkan sumber tertentu untuk mengimpor file, tentukan jalur
menggunakan variabel berikut di kotak teks Location:
*
- cocok dengan karakter non-pemisah.**
- mencocokkan karakter, termasuk pemisah. Ini dapat digunakan dengan ekstensi nama file untuk mencocokkan semua file dari jenis yang sama.?
- cocok dengan 1 karakter.
- Klik Import untuk mengimpor objek DICOM dari sumber yang ditentukan.
- Untuk melacak status operasi, klik tab Operasi. Setelah operasi selesai, indikasi berikut akan muncul:
- Bagian Long-running Operations status memiliki tanda centang hijau di bawah heading OK.
- Bagian Overview 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 di bucket Cloud Storage.
- Lokasi file dalam bucket bersifat tidak tentu dan tidak harus mematuhi secara persis 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 dalam DIRECTORY. - Menggunakan
**
untuk mencocokkan 0 atau beberapa karakter (termasuk pemisah). Harus digunakan di akhir jalur dan tanpa karakter pengganti lainnya 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 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 sediakan 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 sama 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 dalam DIRECTORY. - Menggunakan
**
untuk mencocokkan 0 atau beberapa karakter (termasuk pemisah). Harus digunakan di akhir jalur dan tanpa karakter pengganti lainnya 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 penyimpanan DICOM
- 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 Mengambil Transaksi 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 mengetahui informasi selengkapnya, lihat
Mengubah kelas 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
: kelas 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 penyimpanan DICOM
- 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 dalam log ke Cloud Logging. Untuk mengetahui informasi lebih lanjut, baca bagian 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.
- Di 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 DICOM Export Settings, pilih jenis file yang digunakan untuk mengekspor instance DICOM. Jenis-jenis berikut tersedia:
- File DICOM (
.dcm
) - aliran oktet
- Gambar (
.jpg
,.png
)
- File DICOM (
- Untuk menentukan sintaksis transfer tambahan, pilih sintaksis dari daftar Transfer Syntax.
- Klik Export untuk mengekspor instance DICOM ke lokasi yang ditentukan di Cloud Storage.
- Untuk melacak status operasi, klik tab Operasi. Setelah operasi selesai, indikasi berikut akan muncul:
- Bagian Long-running Operations status memiliki tanda centang hijau di bawah heading OK.
- Bagian Overview 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 tersebut menentukan direktori yang tidak ada, direktori tersebut 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 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 sediakan 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 tersebut menentukan direktori yang tidak ada, direktori tersebut 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 subset data atau metadata DICOM menggunakan file filter.
Mengonfigurasi file filter
Dengan menggunakan file filter, Anda dapat menentukan daftar file DICOM yang akan diekspor ke Cloud Storage atau BigQuery.
Setiap baris dalam file filter menentukan studi, rangkaian, atau instance dan
menggunakan format
/studies/STUDY_INSTANCE_UID/series/SERIES_INSTANCE_UID/instances/INSTANCE_UID
.
Anda dapat memotong baris untuk menentukan tingkat fungsi filter.
Misalnya, Anda dapat mengekspor seluruh studi dengan menentukan /studies/STUDY_INSTANCE_UID
, atau Anda dapat mengekspor seluruh rangkaian 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
File filter ini akan memfilter 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
dalam1.888.999.222
studi dan seri123.456
Membuat file filter menggunakan BigQuery
Untuk membuat file filter menggunakan BigQuery, Anda harus mengekspor metadata penyimpanan DICOM ke BigQuery. Metadata yang diekspor menampilkan UID studi, rangkaian, dan instance dari data DICOM di penyimpanan DICOM Anda.
Setelah mengekspor, selesaikan langkah-langkah berikut:
Kueri untuk UID studi, rangkaian, dan instance yang diperlukan.
Misalnya, setelah mengekspor metadata DICOM ke BigQuery, jalankan kueri berikut untuk menggabungkan UID studi, rangkaian, dan instance agar sesuai 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 seperlunya, dan gunakan sebagai file filter. Lokasi file filter di Cloud Storage diperlukan dalam operasi ekspor.
Membuat file filter secara manual
Untuk membuat file filter dengan konten kustom dan menguploadnya ke bucket Cloud Storage, selesaikan langkah-langkah berikut:
Buat file filter yang berisi daftar instance yang kelas penyimpanannya perlu diubah di mesin lokal Anda. Gunakan format yang dijelaskan di bagian Mengonfigurasi file filter.
Upload file teks filter ke lokasi Cloud Storage.
gsutil cp PATH_TO_FILTER_FILE/FILTER_FILE_NAME.txt gs://BUCKET/DIRECTORY
Ganti kode berikut:
PATH_TO_FILTER_FILE
: jalur ke file filter di komputer lokal AndaFILTER_FILE_NAME
: nama file filterBUCKET/DIRECTORY
: jalur ke lokasi Cloud Storage
Contoh:
gsutil cp my-local-folder/archive-filters.txt gs://my-bucket/my-directory
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 toko DICOM
- LOCATION: lokasi set data induk toko DICOM
- DESTINATION_BUCKET/DIRECTORY: bucket Cloud Storage tujuan
- BUCKET/DIRECTORY/FILTER_FILE: lokasi file filter di bucket Cloud Storage
Output-nya 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 sediakan 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 toko DICOM
- LOCATION: lokasi set data induk toko DICOM
Output-nya 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 dengan 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 dalam log ke Cloud Logging. Untuk mengetahui informasi lebih lanjut, baca bagian Melihat log error di Cloud Logging.
Jika seluruh operasi menampilkan error, lihat Memecahkan masalah operasi yang berjalan lama.