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 serta 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 tersimpan 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 di tingkat pengguna dan tindakan pengguna dicatat ke Cloud Audit Logs dengan ID unik pengguna.
- Menggunakan alur Layanan Identitas Google lebih rumit daripada menggunakan akun layanan. Misalnya, aplikasi Anda perlu menangani callback untuk menyimpan token otorisasi, yang dapat menambah kompleksitas yang tidak perlu pada aplikasi sederhana.
- Anda mengonfigurasi penampil medis agar menggunakan metode otorisasi dan kontrol aksesnya sendiri untuk menentukan apakah pengguna akhir dapat melihat resource Cloud Healthcare API tertentu atau tidak. Penggunaan akun layanan akan sangat membantu jika Anda sudah memiliki penampil yang melakukan pemeriksaan autentikasi dan pengelolaan penggunanya sendiri.
- Tindakan yang dilakukan di penampil dicatat ke Log Audit Cloud, tetapi Anda tidak dapat melihat log di level pengguna akhir individual.
- Autentikasi menggunakan akun layanan lebih mudah daripada menggunakan alur Layanan Identitas Google. Misalnya, tidak perlu meminta pengguna untuk login sehingga tidak perlu menyimpan token akses.
Memberi otorisasi menggunakan alur Google Identity Services OAuth 2.0
Anda dapat mengizinkan pelihat medis mengakses data DICOM yang disimpan di Cloud Healthcare API atas nama pengguna dengan menggunakan alur Google Identity Services OAuth 2.0. 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 toko:
- Pengguna membuka aplikasi penampil medis Anda. Penampil menampilkan jendela izin dari Google yang menampilkan nama aplikasi Anda dan layanan Google API yang meminta izin untuk diakses dengan kredensial otorisasi pengguna. Kemudian, pengguna dapat menyetujui atau menolak untuk memberikan akses ke aplikasi Anda.
- Pengguna diarahkan ke halaman Layanan Identitas Google. Jika pengguna memberikan aplikasi Anda akses yang diminta, aplikasi akan mendapatkan izin untuk mengakses data pengguna.
Jangan menyimpan token refresh di penampil. Token akses yang diberikan kepada pelihat oleh pengguna harus berumur pendek dan hanya ditukar saat masa berlaku token tersebut berakhir.
Token refresh juga tidak diperlukan karena alasan berikut:
- Pengguna selalu ada saat menggunakan penampil.
- Penggunaan token refresh memerlukan upaya ekstra 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, dengan menggunakan OAuth 2.0 dengan akun layanan.
Untuk mengetahui petunjuk cara menggunakan akun layanan untuk mengautentikasi petugas 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 telah mengonfigurasi peran ini dengan mudah, dan pelihat tidak perlu melakukan apa pun. 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 mengekspos satu endpoint DICOMweb.
Saat berada di dalam penampil, pengguna harus menentukan project dan penyimpanan DICOM mana yang ingin diakses. Proses yang paling sederhana adalah meminta pengguna memberikan ID untuk project, set data, dan penyimpanan DICOM yang ingin mereka akses. Namun, memberikan setiap nilai individual mungkin membutuhkan waktu lama.
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 menyediakan satu kolom input yang secara otomatis mengisi project, set data, dan penyimpanan DICOM yang dapat diakses pengguna. Metode API berikut mungkin bermanfaat saat menyiapkan salah satu alternatif ini:
projects.list
: Mencantumkan project yang dapat dilihat 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 di set data.
Anda juga dapat mempertimbangkan untuk mengisi otomatis daftar resource pengguna. Namun, jika pengguna memiliki ratusan atau ribuan penyimpanan atau set data DICOM, pengisian otomatis dan menampilkan daftar mungkin tidak memungkinkan.
Mengakses resource di penampil menggunakan DICOMweb
Cloud Healthcare API mendukung standar DICOMweb. Untuk memungkinkan pengguna mengakses data, pelihat harus menerapkan metode HTTP RESTful DICOMweb, bukan protokol DIMSE lama.
Ada dua komponen utama untuk setiap penampil:
- 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 dapat mengambil studi ini menggunakan Transaksi Penelusuran.
Lihat pernyataan kesesuaian DICOM Cloud Healthcare API untuk mengetahui informasi spesifik terkait penerapan Transaksi Penelusuran di Cloud Healthcare API.
Melihat instance
Setelah pengguna berada di penyedia daftar kerja, mereka biasanya akan memilih studi untuk dilihat. Untuk merender studi, pelihat harus mengakses byte piksel mentah studi dan metadata DICOM. Penampil dapat mengambil informasi ini menggunakan kumpulan metode Ambil Transaksi. Metode Mengambil Transaksi memungkinkan Anda mengambil seluruh file DICOM mentah atau data piksel mentah file tersebut. Metode Mengambil Transaksi juga mendukung transcoding antara berbagai sintaksis transfer.
Lihat pernyataan kesesuaian DICOM Cloud Healthcare API untuk mengetahui informasi spesifik terkait penerapan metode Transaksi Penelusuran dan Ambil di Cloud Healthcare API.
Memaksimalkan throughput jaringan
Terkadang, seperti saat merender pemindaian CT, penampil mungkin perlu mendownload banyak instance sekaligus untuk merender gambar. Untuk hasil terbaik, ambil setiap instance secara paralel menggunakan permintaan serentak dalam jumlah tinggi (misalnya 50 atau lebih). Jumlah persisnya bergantung pada bandwidth aplikasi dan jaringan Anda.