Pemecahan masalah

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 project Google Cloud, Anda mungkin mengalami error izin yang menunjukkan bahwa Anda tidak memiliki izin untuk mengaktifkan API Google Cloud untuk 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 Mengautentikasi ke API untuk mengetahui informasi tentang cara mengonfigurasi Kredensial Default Aplikasi atau cara meneruskan kredensial autentikasi secara manual ke aplikasi atau perintah.

Tidak ada akun layanan Cloud Healthcare API atau peran Healthcare Service Agent

Akun layanan Cloud Healthcare Service Agent otomatis dibuat saat Anda mengaktifkan Cloud Healthcare API dan 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 Cloud Healthcare Service Agent harus ada dan harus memiliki peran IAM Healthcare Service Agent.

Anda dapat membuat ulang akun layanan Cloud Healthcare Service Agent atau memberinya peran IAM Healthcare Service Agent 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 Cloud Healthcare Service Agent, tetapi akun layanan tersebut tidak berisi peran Healthcare Service Agent.

Gunakan Google Cloud CLI untuk menambahkan peran healthcare.serviceAgent ke akun layanan Cloud Healthcare Service Agent menggunakan ID akun layanan, yang menggunakan format service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com.

Untuk membuat ulang akun layanan atau memberinya peran IAM Healthcare Service Agent, jalankan perintah gcloud projects add-iam-policy-binding. 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.iam.gserviceaccount.com \
    --role=roles/healthcare.serviceAgent

Jika permintaan berhasil, perintah akan menampilkan pesan yang mirip dengan contoh berikut:

Updated IAM policy for project [PROJECT_ID].
bindings:
...
- members:
  - serviceAccount:service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com
  role: roles/healthcare.serviceAgent
...
etag: VALUE
version: VALUE

Kembali ke halaman Identity and Access Management lagi dan verifikasi hal berikut:

  • Kolom Anggota 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 Anggota, kolom Peran berisi Agen Layanan Healthcare.

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 mengeksekusi paket transaksional, tidak ada batasan jumlah konflik kunci yang dapat Anda buat. Misalnya, jika Anda membuat kumpulan paket dengan setiap paket memperbarui satu resource Pasien umum dan juga membuat beberapa resource lain yang tidak umum, dan menjalankannya secara paralel, waktu yang diperlukan akan meningkat dengan cepat karena setiap paket harus menahan kunci pada Pasien umum tersebut untuk seluruh transaksi. Akibatnya, waktu tunggunya akan mulai berakhir. Saat Cloud Healthcare API mendeteksi waktu tunggu paket transaksional berakhir, API akan menolak semua paket transaksional untuk sementara dengan pesan error ini untuk mencoba menyelesaikan pertentangan.

Untuk menghindari masalah ini, Anda dapat mencoba salah satu tindakan berikut:

  • Gunakan paket batch jika Anda tidak memerlukan semantik transaksi. Paket batch menghindari masalah ini sepenuhnya karena tidak bersifat atomik. Namun, hal ini akan mengurangi penerapan integritas referensial.
  • Jika Anda dapat mengidentifikasi resource yang diperbarui secara paralel, tentukan apakah update tersebut dapat dikecualikan atau dihindari. Di FHIR, hal ini terjadi jika Anda membuat resource baru seperti Observation dan juga memperbarui 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 dijalankan, kurangi kapasitas penyerapan sebelum waktu tunggu permintaan habis.