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 project Google Cloud, 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 cara mengaktifkan Google Cloud API, termasuk Cloud Healthcare API.

Tidak dapat mengautentikasi ke Cloud Healthcare API

Saat memanggil Cloud Healthcare API, Anda mungkin menerima pesan error yang menunjukkan bahwa "Kredensial Default Aplikasi" tidak tersedia.

Baca bagian Mengautentikasi ke API untuk mengetahui informasi tentang cara mengonfigurasi Kredensial Default Aplikasi atau cara meneruskan kredensial autentikasi secara manual ke aplikasi atau perintah.

Akun layanan Cloud Healthcare API atau peran Agen Layanan Healthcare tidak ada

Akun layanan Agen Layanan Cloud Healthcare 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 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 memiliki peran IAM Healthcare Service Agent.

Anda dapat membuat ulang akun layanan Agen Layanan Cloud Healthcare atau memberinya peran IAM Agen Layanan Healthcare jika mengalami salah satu masalah berikut:

  • Anda tidak dapat menemukan akun layanan Agen Layanan Cloud Healthcare di halaman Identity and Access Management.
  • Anda dapat menemukan akun layanan Agen Layanan Cloud Healthcare, tetapi akun 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.

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

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, 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.iam.gserviceaccount.com
  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 Anggota, kolom Peran berisi Agen Layanan Healthcare.

Paket transaksi FHIR dibatalkan karena beban berat kumulatif

Saat menjalankan paket transaksi FHIR, Anda mungkin menerima pesan error yang menunjukkan bahwa permintaan "dibatalkan karena beban berat kumulatif untuk mengeksekusi paket transaksional".

Saat menjalankan paket transaksional, tidak ada batasan jumlah pertentangan kunci yang dapat Anda buat. Misalnya, jika Anda membuat kumpulan paket yang setiap paketnya memperbarui satu resource Pasien umum serta membuat beberapa resource lain yang tidak umum, lalu mengeksekusinya secara paralel, waktu yang diperlukan akan bertambah dengan cepat karena setiap paket harus menahan kunci pada Pasien umum tersebut untuk seluruh transaksi. Akibatnya, waktu tunggu mereka akan mulai habis. Saat mendeteksi waktu paket transaksional mendeteksi waktu habis, Cloud Healthcare API akan menolak semua paket transaksional dengan pesan error ini untuk sementara guna 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 penerapan integritas referensial.
  • Jika Anda dapat mengidentifikasi resource yang sedang diupdate secara paralel, tentukan apakah update tersebut dapat dihindari atau dihindari. Dalam FHIR, hal ini terjadi jika Anda membuat resource baru seperti Observation dan juga mengupdate Pasien terkait (atau Organisasi, Lokasi, Perangkat, dll.) yang sudah ada dan tidak berubah.
  • Pembatasan kapasitas di sisi klien; jika paket transaksional Anda memerlukan waktu lama untuk dieksekusi, kurangi tingkat penyerapan sebelum waktu permintaan mulai habis.