Halaman ini menjelaskan konsep dan praktik terbaik untuk mengintegrasikan penampil gambar medis pihak ketiga dengan Cloud Healthcare API. Cloud Healthcare API terintegrasi dengan beberapa penampil, termasuk pelihat Open Health Imaging Foundation (OHIF) dan pelihat Weasis.
Sebelum memulai
Jika Anda belum menyimpan gambar DICOM untuk digunakan di penampil, lihat Menyimpan data DICOM dan Mengimpor dan mengekspor data DICOM menggunakan Cloud Storage untuk memulai.
Mengizinkan dan mengautentikasi permintaan menggunakan OAuth 2.0
Google Cloud API mendukung protokol OAuth 2.0 untuk autentikasi dan otorisasi.
Pelihat medis perlu menangani autentikasi dan otorisasi untuk mengakses data DICOM yang disimpan di Cloud Healthcare API. Anda dapat memberikan izin ini dengan dua cara. Setiap metode memiliki biaya dan manfaatnya sendiri:
Menggunakan alur OAuth 2.0 Layanan Identitas Google
- Pengguna akhir mengautentikasi diri mereka melalui viewer medis ke Cloud Healthcare API.
- Pelihat medis mengakses Cloud Healthcare API atas nama pengguna akhir.
- Izin dikelola di tingkat pengguna dan tindakan pengguna dicatat ke Cloud Audit Logs dengan ID unik pengguna.
- Menggunakan alur Layanan Identitas Google lebih kompleks daripada menggunakan akun layanan. Misalnya, aplikasi Anda perlu menangani callback untuk menyimpan token otorisasi, yang dapat menambahkan kompleksitas yang tidak perlu ke aplikasi sederhana.
- Anda mengonfigurasi penampil medis untuk menggunakan metode otorisasi dan kontrol aksesnya sendiri untuk menentukan apakah pengguna akhir dapat melihat resource Cloud Healthcare API tertentu. Menggunakan akun layanan akan membantu jika Anda sudah memiliki penampil yang melakukan pengelolaan pengguna dan pemeriksaan autentikasi sendiri.
- Tindakan yang dilakukan di penampil dicatat ke Cloud Audit Logs, tetapi Anda tidak dapat melihat log di tingkat pengguna akhir individual.
- Autentikasi menggunakan akun layanan lebih sederhana daripada menggunakan alur Layanan Identitas Google. Misalnya, tidak perlu meminta pengguna untuk login, sehingga tidak perlu menyimpan token akses.
Memberi otorisasi menggunakan alur OAuth 2.0 Layanan Identitas Google
Anda dapat memberi otorisasi penampil medis untuk mengakses data DICOM yang disimpan di Cloud Healthcare API atas nama pengguna menggunakan alur OAuth 2.0 Layanan Identitas Google. Bergantung pada aplikasi Anda, ada alur yang tersedia untuk aplikasi berikut:
Deskripsi berikut untuk alur login mengasumsikan bahwa pengguna yang mengakses penampil telah membuat penyimpanan DICOM dan menyimpan instance DICOM di penyimpanan:
- Pengguna membuka aplikasi penampil medis Anda. Pelihat menampilkan jendela izin dari Google yang menampilkan nama aplikasi Anda dan layanan Google API yang meminta izin untuk diakses dengan kredensial otorisasi pengguna. Pengguna kemudian dapat menyetujui atau menolak untuk memberikan akses ke aplikasi Anda.
- Pengguna akan diarahkan ke halaman Layanan Identitas Google. Jika pengguna memberikan akses yang diminta ke aplikasi Anda, aplikasi Anda akan mendapatkan izin untuk mengakses data pengguna.
Jangan simpan token refresh di penampil. Token akses yang diberikan kepada penonton oleh pengguna harus berumur singkat dan hanya ditukarkan saat token berakhir masa berlakunya.
Token refresh juga tidak diperlukan karena alasan berikut:
- Pengguna selalu ada saat menggunakan penampil.
- Penggunaan token refresh memerlukan pekerjaan tambahan untuk menyimpan token dengan aman.
Memberikan otorisasi menggunakan akun layanan
Anda dapat mengelola autentikasi dan otorisasi di tingkat penampil medis, bukan di tingkat pengguna akhir, dengan menggunakan OAuth 2.0 dengan akun layanan.
Untuk mengetahui petunjuk tentang cara menggunakan akun layanan untuk mengautentikasi penampil medis ke Cloud Healthcare API, lihat Mengautentikasi ke API.
Peran yang diperlukan
Agar pelihat berfungsi dengan baik, pengguna harus memiliki peran berikut:
roles/healthcare.dicomViewer
: untuk melihat resource DICOMroles/healthcare.dicomEditor
: untuk melihat, mengedit, dan membuat resource DICOM
Dalam alur login, pengguna diharapkan telah mengonfigurasi peran ini, dan penonton tidak perlu melakukan hal lain. Saat menggunakan akun layanan,
peran harus ditetapkan di akun layanan. Penampil harus menampilkan
error PERMISSION_DENIED
yang sesuai kepada pengguna yang tidak memiliki
izin yang diperlukan untuk mengakses penyimpanan DICOM mereka.
Mengakses endpoint DICOMweb
Setelah pengguna melakukan autentikasi ke penampil, penampil dapat membuat permintaan ke endpoint DICOMweb. Setiap penyimpanan DICOM mengekspos satu endpoint DICOMweb.
Saat berada di penampil, pengguna harus menentukan project dan penyimpanan DICOM yang ingin diakses. Proses yang paling sederhana adalah meminta pengguna untuk memberikan ID project, set data, dan penyimpanan DICOM yang ingin mereka akses. Namun, memberikan setiap nilai mungkin memerlukan waktu lama bagi pengguna.
Sebagai alternatif, Anda dapat memberikan kombinasi input pengguna dan pelengkapan otomatis di penampil. Misalnya, Anda dapat meminta pengguna memasukkan ID project, lalu penampil akan otomatis mengisi daftar set data dan penyimpanan DICOM dalam project tersebut. Atau, Anda dapat menyediakan satu kolom input yang otomatis mengisi project, set data, dan penyimpanan DICOM yang dapat diakses pengguna. Metode API berikut mungkin berguna saat menyiapkan salah satu alternatif ini:
projects.list
: Mencantumkan project yang terlihat oleh pengguna dan yang memenuhi filter yang ditentukan.projects.locations.list
: Mencantumkan informasi tentang lokasi yang didukung untuk Cloud Healthcare API.projects.locations.datasets.list
: Mencantumkan set data Cloud Healthcare API dalam project.projects.locations.datasets.dicomStores.list
: Mencantumkan penyimpanan DICOM dalam set data.
Anda juga dapat mempertimbangkan untuk mengisi otomatis daftar resource pengguna. Namun, jika pengguna memiliki ratusan atau ribuan set data atau penyimpanan DICOM, pengisian otomatis dan tampilan daftar mungkin tidak memungkinkan.
Mengakses resource di penampil menggunakan DICOMweb
Cloud Healthcare API mendukung standar DICOMweb. Agar pengguna dapat mengakses data mereka, penampil harus menerapkan metode HTTP RESTful DICOMweb, bukan protokol DIMSE lama.
Ada dua komponen utama untuk penampil apa pun:
- Penyedia daftar tugas
- Penampil gambar
Anda dapat menggunakan standar DICOMweb dengan kedua komponen tersebut.
Melihat penyedia daftar tugas
Biasanya, hal pertama yang dilihat pengguna saat membuka penampil adalah daftar semua studi yang tersedia di setiap penyimpanan DICOM. Pelihat dapat mengambil studi ini menggunakan Transaksi Penelusuran.
Lihat pernyataan kepatuhan DICOM Cloud Healthcare API untuk mengetahui detail tentang cara Transaksi Penelusuran diterapkan di Cloud Healthcare API.
Melihat instance
Setelah pengguna berada di penyedia daftar tugas, mereka biasanya akan memilih studi untuk dilihat. Untuk merender studi, penampil harus mengakses byte piksel mentah studi dan metadata DICOM. Pelihat dapat mengambil informasi ini menggunakan kumpulan metode Retrieve Transaction. Metode Retrieve Transaction memungkinkan Anda mengambil seluruh file DICOM mentah atau data piksel mentah file. Metode Retrieve Transaction juga mendukung transcoding antara sintaksis transfer yang berbeda.
Lihat pernyataan kesesuaian DICOM Cloud Healthcare API untuk mengetahui detail tentang cara metode Transaksi Penelusuran dan Pengambilan diterapkan di Cloud Healthcare API.
Memaksimalkan throughput jaringan
Terkadang, seperti saat merender CT scan, penampil mungkin perlu mendownload banyak instance sekaligus untuk merender gambar. Untuk hasil terbaik, ambil setiap instance secara paralel menggunakan permintaan serentak dalam jumlah besar (seperti 50 atau lebih). Jumlah pastinya bergantung pada aplikasi dan bandwidth jaringan Anda.