Pelajari langkah-langkah pemecahan masalah yang mungkin berguna jika Anda mengalami masalah saat menggunakan Cloud Healthcare API.
Tidak dapat mengaktifkan Cloud Healthcare API
Saat mengaktifkan Cloud Healthcare API untuk pertama kalinya di projectGoogle Cloud , Anda mungkin mengalami error izin yang menunjukkan bahwa Anda tidak memiliki izin untuk mengaktifkan API Google Clouduntuk project Anda.
Lihat Mengaktifkan dan menonaktifkan API untuk mengetahui informasi tentang cara mengaktifkan Google Cloud API, termasuk Cloud Healthcare API.
Tidak dapat melakukan autentikasi ke Cloud Healthcare API
Saat memanggil Cloud Healthcare API, Anda mungkin menerima pesan error yang menunjukkan bahwa "Kredensial Default Aplikasi" tidak tersedia.
Lihat Melakukan Autentikasi ke API untuk mengetahui informasi tentang cara mengonfigurasi Kredensial Default Aplikasi atau cara meneruskan kredensial autentikasi secara manual ke aplikasi atau perintah.
Tidak memiliki akun layanan Cloud Healthcare API atau peran Healthcare Service Agent
Akun layanan Agen Layanan Cloud Healthcare otomatis dibuat saat Anda membuat set data pertama. Ini adalah akun layanan yang dikelola Google. Anda tidak dapat menghapus akun layanan sepenuhnya, tetapi dalam keadaan tertentu, akun layanan tersebut mungkin tidak muncul di halaman Identity and Access Management dan Anda mungkin mengalami masalah dengan Cloud Healthcare API.
Agar Cloud Healthcare API berfungsi dengan benar dan menyelesaikan tugas seperti memublikasikan dan menerima pesan dari Pub/Sub atau menulis metrik ke Cloud Logging, akun layanan Agen Layanan Cloud Healthcare harus ada dan harus memiliki peran IAM Agen Layanan Healthcare.
Anda dapat membuat akun layanan Agen Layanan Cloud Healthcare secara manual atau memberinya peran IAM Agen Layanan Healthcare jika Anda mengalami salah satu masalah berikut:
- Anda tidak dapat menemukan akun layanan Cloud Healthcare Service Agent di halaman Identity and Access Management.
- Anda dapat menemukan akun layanan Agen Layanan Cloud Healthcare, tetapi akun tersebut tidak berisi peran Agen Layanan Healthcare.
Untuk membuat akun layanan secara manual, ikuti petunjuk di memicu pembuatan secara manual.
Gunakan Google Cloud CLI
untuk menambahkan peran healthcare.serviceAgent ke
akun layanan Agen Layanan Cloud Healthcare menggunakan
ID akun layanan, yang menggunakan format
service-PROJECT_NUMBER@gcp-sa-healthcare..
Untuk menemukan PROJECT_ID dan PROJECT_NUMBER, lihat
Mengidentifikasi project.
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-healthcare. \ --role=roles/healthcare.serviceAgent
Jika permintaan berhasil, command prompt akan menampilkan pesan yang mirip dengan contoh berikut:
Updated IAM policy for project [PROJECT_ID]. bindings: ... - members: - serviceAccount:service-PROJECT_NUMBER@gcp-sa-healthcare. role: roles/healthcare.serviceAgent ... etag: VALUE version: VALUE
Kembali ke halaman Identity and Access Management lagi dan verifikasi hal berikut:
- Kolom Member berisi ID akun layanan dalam format
service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount. - Di baris yang sama dengan kolom Member, kolom Name berisi Cloud Healthcare Service Agent.
- Di baris yang sama dengan kolom Member, kolom Role berisi Healthcare Service Agent.
Paket transaksional FHIR dibatalkan karena beban berat kumulatif
Saat menjalankan paket transaksional FHIR, Anda mungkin menerima pesan error yang menunjukkan bahwa permintaan "dibatalkan karena beban berat kumulatif untuk menjalankan paket transaksional".
Saat Anda menjalankan paket transaksional, tidak ada batasan seberapa banyak perebutan kunci yang dapat Anda buat. Misalnya, jika Anda membuat sekumpulan paket yang setiap paketnya memperbarui satu resource Pasien umum dan juga membuat beberapa resource lain yang tidak umum, dan mengeksekusinya secara paralel, waktu yang diperlukan akan meningkat dengan cepat karena setiap paket harus menahan kunci pada Pasien umum tersebut selama seluruh transaksi. Akibatnya, permintaan tersebut akan mulai habis waktu. Saat Cloud Healthcare API mendeteksi waktu tunggu paket transaksional habis, API ini akan menolak sementara semua paket transaksional dengan pesan error ini untuk mencoba menyelesaikan pertentangan.
Untuk menghindari masalah ini, Anda dapat mencoba salah satu langkah berikut:
- Gunakan paket batch jika Anda tidak memerlukan semantik transaksi. Paket batch menghindari masalah ini sepenuhnya karena tidak bersifat atomik. Namun, hal ini mengurangi penegakan integritas referensial.
- Jika Anda dapat mengidentifikasi resource yang sedang diupdate secara paralel, tentukan apakah update tersebut dapat ditiadakan atau dihindari. Di FHIR, hal ini terjadi jika Anda membuat resource baru seperti Observation dan juga mengupdate Patient (atau Organization, Location, Device, dll.) terkait yang sudah ada dan tidak berubah.
- Pembatasan kapasitas di sisi klien; jika paket transaksional Anda memerlukan waktu lama untuk dieksekusi, kurangi rasio penyerapan sebelum permintaan mulai kehabisan waktu.