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.

Berikan ekspektasi yang jelas tentang waktu yang dibutuhkan.

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.

Tampilkan status offline jika relevan, misalnya saat memuat daftar pasien.

Hindari membuat status bar konektivitas terlihat seperti status error.

Saat konektivitas terhubung, menunjukkan bahwa aplikasi sedang disinkronkan di status bar.

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.

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.

Yakinkan pengguna bahwa meskipun aplikasi offline bahwa mereka masih dapat menyelesaikan tugas dan bahwa perubahan akan diupload setelah konektivitas dilanjutkan.

Hindari menjelaskan secara mendetail kapan sinkronisasi akan mencoba lagi menghubungkan ke internet.

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.

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 pemuatan yang dengan jelas menunjukkan bahwa progres sedang berlangsung.

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.

Tampilkan kapan informasi terakhir diperbarui (dan tampilkan dalam konteks), untuk membantu orang mengetahui apakah sudah terlalu lama sejak dilakukan sinkronisasi.

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.

Ingatkan orang-orang pada interval yang dipilih untuk menyinkronkan, jika memungkinkan. Gunakan nada yang ramah saat menyampaikan perlunya sinkronisasi.

Hindari komunikasi alarm atau membuat orang merasa tidak nyaman karena belum disinkronkan.

Ingatkan pengguna untuk sesekali menyinkronkan perangkat mereka ketika perangkat telah melampaui batas yang ditetapkan untuk jenis layanan kesehatan (fasilitas vs. komunitas).

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.

Di halaman sinkronisasi manual, tampilkan kapan sinkronisasi terakhir terjadi, dan kapan sinkronisasi berikutnya dijadwalkan. Sertakan tombol untuk "sinkronkan sekarang".

Jika tidak ada histori sinkronisasi, petugas layanan kesehatan akan mengalami kesulitan untuk memecahkan masalah dan mengetahui apa yang akan terjadi.

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.

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.

Gunakan pesan error yang menjelaskan masalah yang terjadi dan langkah-langkah untuk memperbaikinya. Sertakan petunjuk tentang cara menavigasi setelan sistem.

Hindari pesan error umum yang tidak menjelaskan masalahnya atau memberikan saran tentang cara memperbaikinya.