Halaman ini menjelaskan konsep dan praktik terbaik untuk mengintegrasikan penampil citra medis pihak ketiga dengan Cloud Healthcare API. Cloud Healthcare API terintegrasi dengan beberapa pelihat, termasuk penampil Open Health Imaging Foundation (OHIF) dan penampil 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.
Memberi otorisasi dan mengautentikasi permintaan menggunakan OAuth 2.0
Google Cloud API mendukung protokol OAuth 2.0 untuk autentikasi dan otorisasi.
Penampil 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 Google Identity Services
- Pengguna akhir mengautentikasi dirinya sendiri melalui penampil medis ke Cloud Healthcare API.
- Penampil medis mengakses Cloud Healthcare API atas nama pengguna akhir.
- Izin dikelola pada tingkat pengguna, dan tindakan pengguna dicatat ke dalam Cloud Audit Logs dengan ID unik pengguna.
- Menggunakan alur Google Identity Services lebih rumit daripada menggunakan akun layanan. Misalnya, aplikasi Anda harus menangani callback untuk menyimpan token otorisasi, yang dapat menambah kerumitan yang tidak perlu ke aplikasi sederhana.
- Anda mengonfigurasi penampil medis agar menggunakan metode otorisasi dan kontrol akses sendiri untuk menentukan apakah pengguna akhir dapat melihat resource Cloud Healthcare API tertentu. Menggunakan akun layanan akan sangat membantu jika Anda sudah memiliki penampil yang melakukan pemeriksaan autentikasi dan pengelolaan penggunanya sendiri.
- Tindakan yang dilakukan pada penampil dicatat dalam log ke Cloud Audit Logs, tetapi Anda tidak dapat melihat log di level setiap pengguna akhir.
- Autentikasi menggunakan akun layanan lebih mudah daripada menggunakan alur Google Identity Services. Misalnya, tidak perlu meminta pengguna untuk login, sehingga tidak perlu menyimpan token akses.
Memberi otorisasi menggunakan alur OAuth 2.0 Google Identity Services
Anda dapat memberikan otorisasi kepada petugas layanan kesehatan untuk mengakses data DICOM yang disimpan di Cloud Healthcare API atas nama pengguna menggunakan alur Google Identity Services OAuth 2.0. Bergantung pada aplikasi Anda, ada alur yang tersedia untuk aplikasi berikut:
Deskripsi untuk alur login berikut mengasumsikan bahwa pengguna yang mengakses penampil telah membuat penyimpanan DICOM dan instance DICOM yang disimpan di Chrome Web Store:
- Pengguna membuka aplikasi penampil medis. Pembaca akan menampilkan jendela izin dari Google yang menampilkan nama aplikasi Anda dan layanan Google API yang diminta untuk diakses dengan kredensial otorisasi pengguna. Kemudian, pengguna dapat mengizinkan atau menolak untuk memberikan akses ke aplikasi Anda.
- Pengguna akan diarahkan ke halaman Google Identity Services. Jika pengguna memberikan akses yang diminta ke aplikasi Anda, aplikasi akan mendapatkan izin untuk mengakses data pengguna.
Jangan simpan token refresh di penampil. Token akses yang diberikan kepada pelihat oleh pengguna harus berumur pendek dan hanya dipertukarkan saat masa berlaku token habis.
Token refresh juga tidak diperlukan karena alasan berikut:
- Pengguna akan selalu ada saat menggunakan penampil.
- Penggunaan token refresh memerlukan upaya tambahan untuk menyimpan token dengan aman.
Memberikan otorisasi menggunakan akun layanan
Anda dapat mengelola autentikasi dan otorisasi di tingkat pelihat medis, bukan di tingkat pengguna akhir, menggunakan OAuth 2.0 dengan akun layanan.
Untuk mengetahui petunjuk cara menggunakan akun layanan guna mengautentikasi penampil medis ke Cloud Healthcare API, lihat Mengautentikasi ke API.
Peran yang diperlukan
Agar penampil 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 tindakan 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 pelihat, pelihat dapat membuat permintaan ke endpoint DICOMweb. Setiap penyimpanan DICOM web mengekspos satu endpoint DICOMweb.
Saat berada di penampil, pengguna harus menentukan project dan penyimpanan DICOM mana yang ingin diakses. Proses paling sederhana adalah meminta pengguna memberikan ID untuk project, set data, dan penyimpanan DICOM yang ingin diakses. Namun, memberikan setiap nilai mungkin memerlukan waktu yang lama bagi pengguna.
Sebagai alternatif, Anda dapat memberikan kombinasi input pengguna dan pelengkapan otomatis di penampil. Misalnya, Anda mungkin meminta pengguna memasukkan project ID, lalu penampil akan otomatis mengisi daftar set data dan penyimpanan DICOM dalam project tersebut. Atau, Anda dapat memberikan 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 berikut:
projects.list
: Mencantumkan project yang terlihat oleh pengguna dan yang memenuhi filter tertentu.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 penyimpanan atau set data DICOM, mengisi otomatis dan menampilkan daftar mungkin tidak memungkinkan.
Mengakses resource di penampil menggunakan DICOMweb
Cloud Healthcare API mendukung standar DICOMweb. Untuk mengizinkan pengguna mengakses data mereka, penampil harus menerapkan metode HTTP RESTful DICOMweb, bukan protokol DIMSE lama.
Ada dua komponen utama untuk setiap pelihat:
- Penyedia daftar kerja
- Penampil gambar
Anda dapat menggunakan standar DICOMweb dengan kedua komponen.
Melihat penyedia daftar kerja
Biasanya, hal pertama yang dilihat pengguna saat membuka penampil adalah daftar semua studi yang tersedia di setiap penyimpanan DICOM. Pengakses lihat-saja dapat mengambil studi ini menggunakan Transaksi Penelusuran.
Lihat pernyataan kesesuaian DICOM Cloud Healthcare API untuk mengetahui detail tentang cara penerapan Transaksi Penelusuran di Cloud Healthcare API.
Menampilkan instance
Setelah pengguna berada di penyedia daftar kerja, mereka biasanya akan memilih studi untuk dilihat. Untuk merender studi, penampil harus mengakses byte piksel mentah studi dan metadata DICOM. Penampil dapat mengambil informasi ini menggunakan kumpulan metode Ambil Transaksi. Metode Ambil Transaksi memungkinkan Anda mengambil seluruh file DICOM mentah atau data piksel mentah file tersebut. Metode Ambil Transaksi juga mendukung transcoding antara berbagai sintaksis transfer.
Lihat pernyataan kesesuaian DICOM Cloud Healthcare API untuk mengetahui detail tentang cara penerapan metode Telusuri dan Ambil Transaksi 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 jumlah permintaan serentak yang tinggi (misalnya 50 atau lebih). Jumlah persisnya bergantung pada aplikasi dan bandwidth jaringan Anda.