Pemecahan masalah

Pelajari langkah-langkah pemecahan masalah yang mungkin dapat membantu jika Anda mengalami masalah saat menggunakan Cloud Healthcare API.

Tidak dapat mengaktifkan Cloud Healthcare API

Saat mengaktifkan Cloud Healthcare API untuk pertama kalinya di Google Cloud project, Anda mungkin mengalami error izin yang menunjukkan bahwa Anda tidak memiliki izin untuk mengaktifkan Google Cloud API 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" Anda tidak tersedia.

Lihat Mengautentikasi ke API untuk mendapatkan 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 Cloud Healthcare Service Agent dibuat secara otomatis 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 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 memberikan 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 Agen Layanan Cloud Healthcare, tetapi akun tersebut tidak memiliki peran Agen Layanan Healthcare.

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 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. \
    --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 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 Member, kolom Role berisi Healthcare Service Agent.

FHIR transactional bundle 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 jumlah persaingan 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, lalu menjalankan paket tersebut secara paralel, waktu yang dibutuhkan akan meningkat dengan cepat karena setiap paket harus menahan kunci pada Pasien umum tersebut selama seluruh transaksi. Akibatnya, permintaan akan mulai melebihi batas waktu. Saat mendeteksi bahwa paket transaksional mengalami waktu tunggu habis, Cloud Healthcare API akan menolak sementara semua paket transaksional dengan pesan error ini untuk mencoba mengatasi masalah persaingan.

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

  • Gunakan batch bundle 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 mana yang diperbarui secara paralel, tentukan apakah pembaruan tersebut dapat dikeluarkan 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 membutuhkan waktu yang lama untuk dieksekusi, kurangi kecepatan penyerapan sebelum permintaan mulai kehabisan waktu.