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 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.