Halaman ini menjelaskan cara menyimpan, mengakses, memvisualisasikan, dan menggunakan gambar slide utuh (WSI) patologi digital menggunakan Cloud Healthcare API.
Ringkasan
Patologi digital mentransformasi pencitraan medis dengan memungkinkan slide kaca konvensional diarsipkan, divisualisasikan, dan dievaluasi di seluruh alur kerja digital. Di antara banyak manfaatnya, patologi digital memungkinkan konsultasi cepat, memberdayakan pasien dengan akses dan pemahaman yang lebih baik, serta meningkatkan alur kerja klinis dan penelitian dengan memungkinkan pencitraan patologi menjadi sumber data untuk AI canggih.
Patologi digital seluruh slide direpresentasikan sebagai kumpulan gambar. Yang terbesar biasanya berukuran beberapa gigabyte. DICOM adalah standar yang dapat dioperasikan untuk patologi digital dan memungkinkan pencitraan seluruh slide dan metadata terkaitnya disimpan secara efisien, dirujuk dari catatan kesehatan elektronik (misalnya, FHIR), dan diakses melalui API netral vendor berperforma tinggi.
Representasi DICOM untuk patologi digital telah dirancang untuk mendukung kasus penggunaan interaktif berperforma tinggi yang memerlukan kemampuan untuk menggeser dan melakukan zoom dengan cepat di seluruh gambar gigapiksel. DICOM merepresentasikan patologi digital slide utuh sebagai piramida gambar. Tingkat piramida sesuai dengan pembesaran pencitraan slide secara keseluruhan. Gambar yang ditampilkan dalam tingkat piramida disimpan sebagai kumpulan gambar yang lebih kecil, yaitu frame. Standar ini mendefinisikan API yang memungkinkan penyimpanan, penelusuran (penemuan gambar yang tersedia), pengambilan metadata, dan pengambilan gambar tingkat piramida secara keseluruhan (pembesaran) atau memilih sub-region (frame) dalam tingkat piramida.
DICOM API mendukung respons metadata dalam JSON dan XML, serta Cloud Healthcare API juga mendukung akses metadata melalui BigQuery untuk mengaktifkan kueri relasional kompleks yang menggabungkan metadata DICOM dengan sumber data lainnya. Gambar dapat ditampilkan sebagaimana disimpan atau dikonversi (ditranskode) ke format alternatif.
Membuat pencitraan DICOM seluruh slide
Makin banyak pemindai slide patologi digital yang mendukung pembuatan gambar DICOM langsung dari pemindai slide. Dalam banyak kasus, DICOM yang dihasilkan pemindai slide dapat di-ingest langsung ke Cloud Healthcare API menggunakan DICOMweb atau DIMSE DICOM API. Jika pemindai slide yang menghasilkan DICOM tidak terhubung ke Sistem Informasi Laboratorium (LIS), mungkin perlu untuk menambah metadata non-piksel dalam DICOM untuk menambahkan (misalnya, pasien) atau mengubah (misalnya, Study Instance UID) metadata sebelum digunakan dalam PACS pencitraan klinis.
Secara historis, pemindai slide telah menghasilkan gambar dalam format eksklusif. Pipeline transformasi dapat digunakan untuk mengubah format yang didukung OpenSlide menjadi DICOM, menggabungkan metadata kustom dengan DICOM yang dihasilkan, dan menyerap DICOM yang dihasilkan langsung ke Cloud Healthcare API. Solusi ini telah digunakan untuk mendukung transformasi arsip multi-petabyte ke DICOM.
Alat yang dapat digunakan untuk mengonversi pencitraan patologi digital ke DICOM mencakup:
- Open Source Google Transformation Pipeline
- Alat command-line "Dicomizer" Orthanc
- PixelMed™ Java DICOM Toolkit
Instance DICOM dapat diimpor secara terprogram ke Cloud Healthcare API menggunakan: DICOMweb, DIMSE, dan dari Cloud Storage.
Tingkatan penyimpanan gambar
Cloud Healthcare API mendukung tingkatan penyimpanan pada perincian instance DICOM. Untuk pemindaian seluruh slide, ini berarti setiap pembesaran piramida gambar patologi digital dapat disimpan di tingkat yang paling sesuai dengan penggunaan yang diharapkan. Tingkatan penyimpanan instance DICOM memengaruhi biaya penyimpanan, pengambilan, dan, dalam beberapa kasus, penghapusan data. Tingkatan penyimpanan tidak memengaruhi performa akses data. Secara default, semua instance DICOM disimpan di tingkat penyimpanan standar. Cloud Healthcare API menyediakan API untuk melihat dan mengubah class penyimpanan untuk instance DICOM. Selain itu, solusi pengelolaan siklus proses gambar (ILM) dapat digunakan untuk mengotomatiskan pemindahan instance DICOM antar-tingkatan penyimpanan berdasarkan heuristik. Solusi ini dapat mengotomatiskan kelulusan instance DICOM melalui tingkat penyimpanan berdasarkan ukuran, usia, dan pola aksesnya.
CATATAN: Penyimpanan arsip meningkatkan biaya pengambilan data piksel. Biaya pengambilan data dibayarkan berdasarkan ukuran data yang diambil, bukan ukuran data yang disimpan. Untuk pencitraan seluruh slide, ini adalah perbedaan penting karena data piksel dapat diambil menggunakan API tingkat frame dan instance. Pengambilan gambar arsip menggunakan frame API dapat sangat menguntungkan, dari perspektif biaya, saat subset frame instance diperlukan karena biaya pengambilan data akan dikenakan berdasarkan ukuran data yang ditampilkan, bukan ukuran instance yang disimpan.
Visualisasi interaktif
Cloud Healthcare API dapat digunakan untuk mendukung visualisasi interaktif pencitraan slide utuh untuk aplikasi yang berkisar dari penampil web tanpa footprint (JavaScript) hingga aplikasi klien mandiri. Penampil open source berikut telah diuji agar kompatibel dengan Cloud Healthcare API:
Open Source Google Viewer: Penampil patologi digital open source tanpa jejak yang dibuat oleh Google Research.
Slim (MGH): Penampil patologi digital open source dengan footprint nol yang mendukung NIH Imaging Data Commons.
QuPath: Aplikasi desktop open source.
Meningkatkan performa visualisasi interaktif
Digital Pathology DICOM Proxy adalah solusi Google Research yang dapat Anda gunakan untuk meningkatkan performa penayangan frame untuk aplikasi pencitraan seluruh slide interaktif. Saat di-deploy, proxy DICOM Patologi Digital membungkus Cloud Healthcare API dan melakukan caching frame just-in-time untuk lebih memilih menyajikan gambar frame dari cache Memorystore for Redis dalam memori.
Normalisasi warna pencitraan seluruh slide
Standar DICOM mewajibkan WSI berisi profil warna ICC yang menentukan ruang warna pemindai slide yang mengambil gambar. Ruang warna ini dapat berbeda secara signifikan dari ruang warna yang digunakan oleh layar atau pemindai slide lainnya. Jika divisualisasikan tanpa profil ICC yang disematkan, warna gambar sering kali tampak jauh lebih atau kurang jenuh dari yang diharapkan. Cloud Healthcare API menyediakan API untuk mengambil profil ICC yang disematkan dalam instance DICOM dan untuk mengubah gambar yang diambil ke ruang warna referensi.
Anda dapat mengambil profil ICC yang disematkan dalam instance DICOM menggunakan bulk data API atau instance retrieval API. Kemudian, Anda dapat mentransformasi gambar yang diambil dalam ruang warna pemindai slide menggunakan library seperti Little-CMS(ditulis dalam C++) dan Pillow (ditulis dalam Python).
Library Python EZ-WSI DICOMweb mendukung transformasi profil ICC sebagai bagian dari API pengambilan gambar dan pembuatan embedding machine learning.
Machine learning
Path Foundation adalah model dasar yang dikembangkan oleh Tim Riset Google untuk mempercepat pengembangan machine learning (ML) dalam patologi digital.
Model ini mengonversi patch (sub-wilayah) pencitraan patologi menjadi penyematan, yang merupakan daftar angka floating point. Penyematan ini berfungsi sebagai representasi gambar yang dipelajari mesin. Menggunakan penyematan gambar sebagai data input dapat membantu mengurangi jumlah total data dan sumber daya komputasi yang diperlukan untuk mengembangkan model ML yang efektif.
Anda dapat men-deploy Path Foundation ke Google Cloud dari Model Garden. Model ini juga tersedia sebagai open source dengan bobot terbuka di Hugging Face.
Untuk membantu pembuatan penyematan, library Python open source EZ-WSI DICOMweb menyertakan antarmuka (lihat Panduan Memulai Pembuatan Penyematan Patologi di notebook Colab) yang menyederhanakan transformasi pencitraan yang disimpan di Cloud Healthcare API menjadi penyematan. Lihat Train a Digital Pathology Linear Classifier From Images Stored on DICOM Colab notebook untuk mengetahui informasi tentang cara menggunakan EZ-WSI DICOMweb dan Pathology Foundations untuk melatih pengklasifikasi linear dari pencitraan DICOM slide utuh.
Mengambil metadata dan pencitraan piksel secara terprogram
Bagian ini menjelaskan metode untuk mengambil metadata dan pencitraan patologi digital dari Cloud Healthcare API.
Model informasi DICOM
DICOM menggunakan tiga ID Unik (UID) untuk mengidentifikasi secara unik pencitraan:
- UID Instance Studi: Mengidentifikasi semua gambar yang diperoleh atau dibuat dari satu pemeriksaan pasien.
- UID Instance Seri: Mengidentifikasi setiap akuisisi gambar medis dalam pemeriksaan tersebut (misalnya, pemindaian unik slide patologi).
- SOP Instance UID: Mengidentifikasi setiap gambar yang diperoleh atau dibuat sebagai bagian dari akuisisi tersebut.
Misalnya, pemindai slide sering kali menghasilkan beberapa gambar untuk merekam slide kaca secara lengkap. Gambar ini dapat mencakup:
- Area jaringan yang dipindai pada berbagai pembesaran.
- Label slide.
- Gambar seluruh slide.
- Data yang menjelaskan operasi pemindaian slide.
Mencantumkan rangkaian DICOM patologi digital
Untuk mengidentifikasi gambar mikroskop slide, telusuri rangkaian DICOM dengan tag Modality (0008,0060) adalah SM
. Anda dapat menggunakan metode dicomStores.searchForSeries
untuk penelusuran ini.
REST
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: ID Google Cloud project Anda
- LOCATION: lokasi set data
- DATASET_ID: set data induk DICOM store
- DICOM_STORE_ID: ID penyimpanan DICOM
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/dicomStores/DICOM_STORE_ID/dicomWeb/series?Modality=SM"
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/dicomStores/DICOM_STORE_ID/dicomWeb/series?Modality=SM" | Select-Object -Expand Content
APIs Explorer
Buka halaman referensi metode. Panel APIs Explorer terbuka di sisi kanan halaman. Anda bisa berinteraksi dengan alat ini untuk mengirim permintaan. Lengkapi kolom yang wajib diisi, lalu klik Jalankan.
Anda akan melihat respons JSON seperti berikut:
Mengambil metadata DICOM patologi digital
Seri DICOM untuk pemindaian seluruh slide biasanya berisi beberapa instance. Instance DICOM ini dapat merepresentasikan tingkat yang berbeda dari piramida gambar atau wilayah tambahan dari slide yang dipindai.
Untuk melihat metadata instance untuk instance dalam studi, panggil metode
dicomStores.searchForInstances
:
REST
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: ID Google Cloud project Anda
- LOCATION: lokasi set data
- DATASET_ID: set data induk DICOM store
- DICOM_STORE_ID: ID penyimpanan DICOM
- STUDY_INSTANCE_UID: ID unik (UID) instance studi
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/dicomStores/DICOM_STORE_ID/dicomWeb/instances?StudyInstanceUID=STUDY_INSTANCE_UID"
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/dicomStores/DICOM_STORE_ID/dicomWeb/instances?StudyInstanceUID=STUDY_INSTANCE_UID" | Select-Object -Expand Content
APIs Explorer
Buka halaman referensi metode. Panel APIs Explorer terbuka di sisi kanan halaman. Anda bisa berinteraksi dengan alat ini untuk mengirim permintaan. Lengkapi kolom yang wajib diisi, lalu klik Jalankan.
Anda akan melihat respons JSON seperti berikut:
Mengambil data piksel pemindaian seluruh slide
Anda dapat mengambil data piksel pencitraan seluruh slide secara terprogram menggunakan DICOMweb. Cloud Healthcare API juga mendukung pengambilan melalui adaptor DICOM menggunakan protokol DIMSE.
Sebagian besar gambar slide utuh adalah gambar multi-frame. Untuk ini, Cloud Healthcare API menyediakan akses langsung ke data piksel menggunakan frame DICOM dan API frame yang dirender.
Atau, Anda dapat mengambil data piksel secara tidak langsung dengan mengambil seluruh instance DICOM, lalu mendekode frame yang dienkode dari instance tersebut secara terprogram.
Pertimbangan performa untuk mengambil frame:
- Mengambil seluruh instance umumnya lebih cepat per frame daripada pengambilan frame batch.
- Pengambilan frame batch umumnya lebih cepat daripada pengambilan frame individual.
EZ-WSI DICOMweb
EZ-WSI DICOMweb adalah library Python open source. Library ini menyederhanakan pengambilan data piksel patologi digital dari Cloud Healthcare API dengan mengabstraksi panggilan DICOMweb yang mendasarinya. Library ini dapat membantu mempercepat pengambilan frame dalam banyak kasus penggunaan dengan mengonversi permintaan gambar serial menjadi permintaan batch. Pengambilan data frame secara batch sering kali mengurangi total waktu dan kuota penyimpanan DICOM yang diperlukan.
Notebook Colab yang mendemonstrasikan library tersedia.
DICOMweb instance retrieval API
DICOMweb Instance Retrieval API menampilkan instance DICOM biner. Instance ini berisi semua metadata dan data piksel yang disimpan di dalamnya.
Anda dapat mendekode data biner yang ditampilkan menggunakan berbagai library, seperti:
REST
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: ID Google Cloud project Anda
- LOCATION: lokasi set data
- DATASET_ID: set data induk DICOM store
- DICOM_STORE_ID: ID penyimpanan DICOM
- STUDY_INSTANCE_UID: ID unik instance studi
- SERIES_INSTANCE_UID: ID unik instance deret
- INSTANCE_UID: ID unik instance
- OUTPUT_FILE: file untuk menulis instance DICOM.
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Jalankan perintah berikut:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Accept: application/dicom" \
--output OUTPUT_FILE \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies/STUDY_INSTANCE_UID/series/SERIES_INSTANCE_UID/instances/INSTANCE_UID"
PowerShell
Jalankan perintah berikut:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "Accept" = "application/dicom" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-OutFile OUTPUT_FILE `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies/STUDY_INSTANCE_UID/series/SERIES_INSTANCE_UID/instances/INSTANCE_UID"
APIs Explorer
Buka halaman referensi metode. Panel APIs Explorer terbuka di sisi kanan halaman. Anda bisa berinteraksi dengan alat ini untuk mengirim permintaan. Lengkapi kolom yang wajib diisi, lalu klik Jalankan.
File OUTPUT_FILE
harus diisi dengan konten
DICOMweb frame API
DICOMweb frame API memungkinkan pengambilan satu atau beberapa frame dari instance DICOM. Data Pixel yang diambil menggunakan API dapat diminta untuk ditranskode ke format selain yang disimpan secara native dalam penyimpanan DICOM.
REST
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: ID Google Cloud project Anda
- LOCATION: lokasi set data
- DATASET_ID: set data induk DICOM store
- DICOM_STORE_ID: ID penyimpanan DICOM
- STUDY_INSTANCE_UID: ID unik instance studi
- SERIES_INSTANCE_UID: ID unik instance deret
- INSTANCE_UID: ID unik instance
- FRAMES: nomor frame untuk mengambil data piksel
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Jalankan perintah berikut:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Accept: multipart/related; type="image/jpeg"; transfer-syntax=1.2.840.10008.1.2.4.50" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies/STUDY_INSTANCE_UID/series/SERIES_INSTANCE_UID/instances/INSTANCE_UID/frames/FRAMES"
PowerShell
Jalankan perintah berikut:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "Accept" = "multipart/related; type="image/jpeg"; transfer-syntax=1.2.840.10008.1.2.4.50" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies/STUDY_INSTANCE_UID/series/SERIES_INSTANCE_UID/instances/INSTANCE_UID/frames/FRAMES" | Select-Object -Expand Content
APIs Explorer
Buka halaman referensi metode. Panel APIs Explorer terbuka di sisi kanan halaman. Anda bisa berinteraksi dengan alat ini untuk mengirim permintaan. Lengkapi kolom yang wajib diisi, lalu klik Jalankan.
DICOMweb rendered frame API
API frame yang dirender DICOMweb memungkinkan konversi frame sisi server ke format gambar standar (misalnya, JPEG dan PNG).
REST
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: ID Google Cloud project Anda
- LOCATION: lokasi set data
- DATASET_ID: set data induk DICOM store
- DICOM_STORE_ID: ID penyimpanan DICOM
- STUDY_INSTANCE_UID: ID unik instance studi
- SERIES_INSTANCE_UID: ID unik instance deret
- INSTANCE_UID: ID unik instance
- FRAME: nomor frame untuk mengambil data piksel
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Jalankan perintah berikut:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Accept: image/png" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies/STUDY_INSTANCE_UID/series/SERIES_INSTANCE_UID/instances/INSTANCE_UID/frames/FRAME/rendered"
PowerShell
Jalankan perintah berikut:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "Accept" = "image/png" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies/STUDY_INSTANCE_UID/series/SERIES_INSTANCE_UID/instances/INSTANCE_UID/frames/FRAME/rendered" | Select-Object -Expand Content
APIs Explorer
Buka halaman referensi metode. Panel APIs Explorer terbuka di sisi kanan halaman. Anda bisa berinteraksi dengan alat ini untuk mengirim permintaan. Lengkapi kolom yang wajib diisi, lalu klik Jalankan.
Menggunakan pengambilan data massal untuk mengambil profil ICC yang disematkan dalam instance DICOM
Anda dapat menggunakan DICOMweb retrieve bulkdata untuk langsung mengambil byte profil ICC (International Color Consortium) yang disematkan dalam instance DICOM.
REST
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: ID Google Cloud project Anda
- LOCATION: lokasi set data
- DATASET_ID: set data induk DICOM store
- DICOM_STORE_ID: ID penyimpanan DICOM
- STUDY_INSTANCE_UID: ID unik instance studi
- SERIES_INSTANCE_UID: ID unik instance deret
- INSTANCE_UID: ID unik instance
- OUTPUT_FILE: file untuk menulis instance profil icc.
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Jalankan perintah berikut:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Accept: application/octet-stream; transfer-syntax=*" \
--output OUTPUT_FILE \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies/STUDY_INSTANCE_UID/series/SERIES_INSTANCE_UID/instances/INSTANCE_UID/bulkdata/00480105/0/00282000"
PowerShell
Jalankan perintah berikut:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "Accept" = "application/octet-stream; transfer-syntax=*" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-OutFile OUTPUT_FILE `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies/STUDY_INSTANCE_UID/series/SERIES_INSTANCE_UID/instances/INSTANCE_UID/bulkdata/00480105/0/00282000"
APIs Explorer
Buka halaman referensi metode. Panel APIs Explorer terbuka di sisi kanan halaman. Anda bisa berinteraksi dengan alat ini untuk mengirim permintaan. Lengkapi kolom yang wajib diisi, lalu klik Jalankan.
File OUTPUT_FILE
harus diisi dengan konten