Pengantar
Aplikasi yang berfungsi secara offline memberi petugas layanan kesehatan akses ke alat yang dibutuhkan untuk memberikan perawatan berkualitas, bahkan saat mereka tidak terhubung ke internet. Aplikasi offline berguna bagi petugas kesehatan yang bekerja di lingkungan komunitas dengan konektivitas yang tidak dapat diandalkan atau di fasilitas layanan kesehatan tanpa akses internet. Aplikasi offline juga dapat membantu mengurangi biaya data.
Jika pekerja layanan kesehatan tidak dapat menggunakan aplikasi secara offline, mereka mungkin tidak dapat menyelesaikan tugas penting. Hal ini dapat menyebabkan petugas layanan kesehatan tidak menggunakan aplikasi dan kehilangan data. Dengan library FHIR Engine dan panduan desain ini, kami ingin meningkatkan pengalaman pengguna aplikasi kesehatan yang berkemampuan offline agar dapat diandalkan dan mudah digunakan.
Prinsip penting offline
Pertimbangkan prinsip-prinsip berikut saat membuat aplikasi kesehatan offline:
- Aplikasi pekerja layanan kesehatan komunitas harus didesain untuk pengalaman offline.
- Memastikan pengguna dapat menyelesaikan alur kerja utama mereka secara offline.
- Beri tahu pengguna tentang seberapa sering mereka harus online untuk menyinkronkan perangkat.
Sinkronisasi awal
Aplikasi Anda mungkin memerlukan sinkronisasi awal untuk mendownload tugas atau daftar pasien, sebelum pekerja layanan kesehatan dapat mulai menggunakan aplikasi. Jika ya, lakukan sinkronisasi awal sebagai langkah yang berbeda sebagai bagian dari tenaga kesehatan yang mulai menggunakan aplikasi. Berikan panduan tentang tempat dan waktu untuk melakukannya, serta perkiraan waktu yang dibutuhkan. Jelaskan jika aplikasi perlu dibuka atau apakah petugas layanan kesehatan dapat melakukan hal lain di perangkat mereka saat menyinkronkan.
![Sinkronkan tugas saya. Proses ini dapat berlangsung hingga satu jam, bergantung pada koneksi internet Anda. Tiga langkah. 1. sambungkan ke Wi-Fi atau data. 2. Letakkan perangkat di lokasi dengan sinyal internet yang baik. 3. Anda dapat melakukan hal lain pada perangkat saat perangkat disinkronkan. Tombol: sinkronkan tugas saya.](https://developers.google.cn/static/open-health-stack/design/images/sync/initial-sync-do.png?hl=id)
Berikan ekspektasi yang jelas tentang waktu yang dibutuhkan.
![Kosongkan layar tugas saya tanpa petunjuk. Batang sinkronisasi dan roda berputar pemuatan.](https://developers.google.cn/static/open-health-stack/design/images/sync/initial-sync-dont.png?hl=id)
Jangan memulai sinkronisasi awal tanpa memberikan informasi apa pun yang akan terjadi.
Status bar
Status bar menunjukkan apakah perangkat sedang offline atau menyinkronkan. Status bar muncul saat:
- Perangkat sedang offline karena tidak ada konektivitas internet
- Data sedang disinkronkan secara aktif
- Sinkronisasi gagal
- Sinkronisasi selesai
Hanya tampilkan status bar jika relevan - di halaman atau di sekitar komponen yang akan berubah saat data selesai disinkronkan. Misalnya, status penting ketika melihat daftar tugas, menelusuri daftar pasien, atau memuat kartu pasien sehingga pekerja layanan kesehatan dapat mengenali apakah info terbaru telah disinkronkan atau belum.
![Status bar abu-abu dengan tulisan offline.](https://developers.google.cn/static/open-health-stack/design/images/sync/status-offline-do.png?hl=id)
Tampilkan status offline jika relevan, misalnya saat memuat daftar pasien.
![Status bar merah, dengan ikon error dan offline.](https://developers.google.cn/static/open-health-stack/design/images/sync/status-offline-dont.png?hl=id)
Hindari membuat status bar konektivitas terlihat seperti status error.
![Status bar biru muda dengan ikon sinkronisasi dan sinkronisasi ditulis.](https://developers.google.cn/static/open-health-stack/design/images/sync/status-syncing.png?hl=id)
Saat konektivitas terhubung, menunjukkan bahwa aplikasi sedang disinkronkan di status bar.
![Status bar abu-abu muda dengan ikon tanda centang dan sinkronisasi selesai ditulis.](https://developers.google.cn/static/open-health-stack/design/images/sync/status-sync-done.png?hl=id)
Tampilkan konfirmasi penyelesaian sinkronisasi dengan mengubah ikon menjadi tanda centang dan mengubah warna serta teks di status bar. Hal ini membantu pengguna mengetahui bahwa informasi telah lengkap.
![Status bar kuning muda dengan ikon sinkronisasi gagal dan sinkronisasi gagal ditulis.](https://developers.google.cn/static/open-health-stack/design/images/sync/status-sync-failed.png?hl=id)
Jika sinkronisasi tidak selesai, tunjukkan bahwa sinkronisasi gagal diselesaikan. Jika penyebab kegagalan sinkronisasi adalah aplikasi sedang offline, ubah statusnya menjadi offline. Penting bagi orang-orang untuk mengetahui apa yang terjadi.
Pola sinkronisasi
Sinkronisasi berfungsi di latar belakang untuk mengupload dan mendownload data ke dan dari server. Perilaku sinkronisasi seharusnya tidak mengganggu pengguna.
Interval sinkronisasi harus ditetapkan berdasarkan batas yang relevan dengan setelan layanan kesehatan tempat aplikasi digunakan. Contoh: lakukan sinkronisasi setiap 12 jam di lingkungan masyarakat atau setiap 15 menit di fasilitas layanan kesehatan. Memiliki interval sinkronisasi otomatis yang tepat akan meminimalkan kebutuhan akan sinkronisasi manual.
![Pesan kedai camilan: Anda sedang offline. Update akan diupload saat perangkat terhubung kembali.](https://developers.google.cn/static/open-health-stack/design/images/sync/sync-pattern-reassure.png?hl=id)
Yakinkan pengguna bahwa meskipun aplikasi offline bahwa mereka masih dapat menyelesaikan tugas dan bahwa perubahan akan diupload setelah konektivitas dilanjutkan.
![Pesan status bar abu-abu muda: Mencoba lagi dalam 3 menit 22 detik.](https://developers.google.cn/static/open-health-stack/design/images/sync/sync-pattern-distract.png?hl=id)
Hindari menjelaskan secara mendetail kapan sinkronisasi akan mencoba lagi menghubungkan ke internet.
![Sinkronisasi kartu pasien.](https://developers.google.cn/static/open-health-stack/design/images/sync/sync-pattern-prioritize.png?hl=id)
Prioritaskan data yang disinkronkan agar pekerja layanan kesehatan dapat menyelesaikan alur kerja mereka. Contoh: di fasilitas tempat pasien diserahkan kepada pekerja kesehatan lain, pastikan untuk memprioritaskan sinkronisasi kartu pasien yang baru saja selesai.
![Daftar pasien berisi 340 pasien yang disinkronkan.](https://developers.google.cn/static/open-health-stack/design/images/sync/sync-pattern-irrelevant.png?hl=id)
Hindari menyinkronkan info yang tidak relevan terlebih dahulu, seperti seluruh daftar pasien, atau histori kunjungan lama yang tidak terkait dengan tugas hari ini.
Indikator progres sinkronisasi
Indikator kemajuan sinkronisasi muncul saat konten disinkronkan dari server. Indikator kemajuan akan menunjukkan secara visual bahwa sinkronisasi berfungsi.
Hanya tambahkan indikator progres di layar utama, seperti daftar pasien atau kartu pasien. Memberikan perkiraan waktu yang diperlukan untuk sinkronisasi dengan menampilkan persentase yang telah didownload.
![Status progres menampilkan 35% progres yang didownload.](https://developers.google.cn/static/open-health-stack/design/images/sync/sync-progress-bar.png?hl=id)
Status pemuatan yang dengan jelas menunjukkan bahwa progres sedang berlangsung.
![Roda pemuatan yang berputar.](https://developers.google.cn/static/open-health-stack/design/images/sync/sync-progress-wheel.png?hl=id)
Hindari roda pemuatan yang berputar. Tidak jelas apakah video terhenti atau membuat kemajuan.
Stempel waktu sinkronisasi
Stempel waktu sinkronisasi memberi tahu petugas layanan kesehatan tentang kapan informasi terakhir diperbarui. Stempel waktu membantu petugas layanan kesehatan:
- Mengetahui apakah mereka melihat informasi terbaru.
- Pahami apakah aplikasi disinkronkan dan diupdate seperti yang diharapkan.
- Berikan kesinambungan perawatan dengan melanjutkan dari bagian terakhir yang ditangani petugas kesehatan.
Gunakan stempel waktu seperlunya dan hanya tampilkan saat penting, seperti di daftar tugas atau kartu pasien.
![Kartu pasien terakhir diperbarui hari ini pukul 12.31.](https://developers.google.cn/static/open-health-stack/design/images/sync/sync-time-relevant.png?hl=id)
Tampilkan kapan informasi terakhir diperbarui (dan tampilkan dalam konteks), untuk membantu orang mengetahui apakah sudah terlalu lama sejak dilakukan sinkronisasi.
![Stempel waktu sinkronisasi 23 Mei 2022, pukul 12.31, ditampilkan di setiap baris konten di kartu pasien. Misalnya untuk nomor ponsel, nomor ID, dan alamat.](https://developers.google.cn/static/open-health-stack/design/images/sync/sync-time-all.png?hl=id)
Jangan tampilkan stempel waktu untuk setiap bagian data, seperti saat nomor telepon diperbarui. Hindari daftar panjang berisi data yang disinkronkan. Menampilkan terlalu banyak presisi tanggal dan waktu jika sudah melebihi 24 jam.
Sinkronkan pengingat
Pengingat sinkronisasi ditampilkan jika perangkat sudah offline terlalu lama atau pengguna perlu mengambil tindakan untuk menyinkronkan perangkat.
Gunakan pengingat untuk menyampaikan kepada pengguna tentang perlunya menyinkronkan aplikasi dan cara melakukannya.
![Dialog. Perubahan signifikan sejak sinkronisasi terakhir. Hubungkan ke data atau Wi-Fi untuk menyelesaikan sinkronisasi. Tombol: Nanti, Tombol: Sinkronkan sekarang.](https://developers.google.cn/static/open-health-stack/design/images/sync/sync-reminder-friendly.png?hl=id)
Ingatkan orang-orang pada interval yang dipilih untuk menyinkronkan, jika memungkinkan. Gunakan nada yang ramah saat menyampaikan perlunya sinkronisasi.
![Dialog. Segera sinkronkan. Anda sudah melewati 12 jam. Hubungkan ke data atau Wi-Fi untuk menyelesaikan sinkronisasi. Tombol: Nanti, Tombol: Sinkronkan sekarang.](https://developers.google.cn/static/open-health-stack/design/images/sync/sync-reminder-rude.png?hl=id)
Hindari komunikasi alarm atau membuat orang merasa tidak nyaman karena belum disinkronkan.
![Dialog. 24 jam sejak sinkronisasi terakhir. Sinkronkan lagi. Hubungkan ke data atau Wi-Fi untuk menyelesaikan sinkronisasi. Tombol: Nanti, Tombol: Sinkronkan sekarang.](https://developers.google.cn/static/open-health-stack/design/images/sync/sync-reminder-occasional.png?hl=id)
Ingatkan pengguna untuk sesekali menyinkronkan perangkat mereka ketika perangkat telah melampaui batas yang ditetapkan untuk jenis layanan kesehatan (fasilitas vs. komunitas).
![Dialog. 1 jam sejak sinkronisasi terakhir. Sinkronkan lagi. Hubungkan ke data atau Wi-Fi untuk menyelesaikan sinkronisasi. Tombol: Nanti, Tombol: Sinkronkan sekarang.](https://developers.google.cn/static/open-health-stack/design/images/sync/sync-reminder-frequent.png?hl=id)
Terlalu banyak pengingat dapat mengganggu dan membuat pengguna frustasi. Hanya berikan pesan error jika tindakan bersifat mendesak.
Sinkronisasi manual
Sinkronisasi manual mengganti setelan sinkronisasi default dan memungkinkan pengguna untuk menyinkronkan sekarang. Hal ini dapat dilakukan melalui halaman sinkronisasi manual atau langsung di kartu pasien. Halaman sinkronisasi menampilkan waktu sinkronisasi terakhir terjadi dan waktu sinkronisasi berikutnya dijadwalkan. Idealnya, interval sinkronisasi otomatis meminimalkan kebutuhan akan sinkronisasi manual.
Sinkronisasi manual dapat berguna bagi petugas layanan kesehatan yang berada di luar rumah sepanjang hari dan ingin melakukan sinkronisasi saat mereka kembali ke rumah pada malam hari dengan konektivitas yang lebih baik.
![Histori menampilkan stempel waktu sinkronisasi terakhir dan stempel waktu sinkronisasi berikutnya.](https://developers.google.cn/static/open-health-stack/design/images/sync/manual-history.png?hl=id)
Di halaman sinkronisasi manual, tampilkan kapan sinkronisasi terakhir terjadi, dan kapan sinkronisasi berikutnya dijadwalkan. Sertakan tombol untuk "sinkronkan sekarang".
![Tidak ada histori sinkronisasi yang ditampilkan, hanya tombol sinkronkan sekarang.](https://developers.google.cn/static/open-health-stack/design/images/sync/manual-history-none.png?hl=id)
Jika tidak ada histori sinkronisasi, petugas layanan kesehatan akan mengalami kesulitan untuk memecahkan masalah dan mengetahui apa yang akan terjadi.
![Tombol Sinkronkan sekarang ditampilkan di kartu pasien.](https://developers.google.cn/static/open-health-stack/design/images/sync/manual-patient.png?hl=id)
Saat petugas layanan kesehatan menyerahkan pasien satu sama lain, berikan cara bagi mereka untuk segera menyinkronkan catatan pasien, dengan menampilkan tombol sinkronkan sekarang di kartu pasien. Atau, hal ini juga dapat dilakukan dengan sinkronisasi berbasis peristiwa.
![Tombol Sinkronkan sekarang ditampilkan di samping nomor ponsel pada kartu pasien.](https://developers.google.cn/static/open-health-stack/design/images/sync/manual-everything.png?hl=id)
Hindari mengizinkan pengguna memilih data tertentu yang akan disinkronkan. Pertanyaan ini terlalu rumit dan terperinci.
Pesan error & pemecahan masalah
Pesan error muncul ketika fungsi gagal diselesaikan, seperti tidak ada pasien dalam daftar pasien.
Tampilkan pesan error pada layar yang relevan. Bantu pengguna memecahkan masalah dengan memberikan deskripsi yang jelas tentang masalah yang terjadi dan alasannya. Kemudian berikan petunjuk cara memecahkan masalahnya. Jika solusi pertama tidak berhasil, berikan petunjuk kedua tentang apa yang perlu dicoba. Selalu berikan cara tambahan bagi orang-orang untuk mendapatkan bantuan, melalui pesan atau panggilan telepon.
![Dialog. Tidak ada tugas yang tersedia. Sinkronkan daftar tugas. Periksa apakah Anda terhubung ke data atau Wi-Fi. Buka setelan > Jaringan & internet. Kembali ke aplikasi dan ketuk Sinkronkan sekarang. Tombol: nanti, Tombol: sinkronkan sekarang.](/static/open-health-stack/design/images/sync/sync-error-actionable.png)
Gunakan pesan error yang menjelaskan masalah yang terjadi dan langkah-langkah untuk memperbaikinya. Sertakan petunjuk tentang cara menavigasi setelan sistem.
![Dialog. Error. Terjadi error. Tombol: coba lagi.](https://developers.google.cn/static/open-health-stack/design/images/sync/sync-error-unhelpful.png?hl=id)
Hindari pesan error umum yang tidak menjelaskan masalahnya atau memberikan saran tentang cara memperbaikinya.