Введение
Приложения, работающие в автономном режиме, предоставляют медицинским работникам доступ к инструментам, необходимым для оказания качественной помощи, даже если они не подключены к Интернету. Автономные приложения полезны для медицинских работников, которые работают в общественных местах с ненадежной связью или в медицинских учреждениях без доступа в Интернет. Автономные приложения также могут помочь снизить затраты на передачу данных.
Если медицинские работники не могут использовать приложение в автономном режиме, они, возможно, не смогут выполнять важные задачи. Это может привести к тому, что медицинские работники не будут использовать приложение и потеряют данные. С помощью библиотеки FHIR Engine и этих рекомендаций по проектированию мы стремимся улучшить взаимодействие с пользователем автономных приложений для здоровья, чтобы они были надежными и простыми в использовании.
Ключевые принципы оффлайна
Учитывайте эти принципы при создании офлайн-приложений для здоровья:
- Приложения для местных медицинских работников должны быть разработаны так, чтобы их можно было использовать в автономном режиме.
- Убедитесь, что пользователи могут выполнять свой основной рабочий процесс в автономном режиме.
- Сообщите пользователям, как часто им нужно выходить в Интернет для синхронизации устройства.
Начальная синхронизация
Прежде чем медицинский работник сможет начать использовать приложение, вашему приложению может потребоваться первоначальная синхронизация для загрузки задач или списка пациентов. Если да, сделайте первоначальную синхронизацию отдельным этапом для работников здравоохранения, которые начинают использовать приложение. Дайте указания о том, где и когда это сделать, а также примерное время, которое это займет. Объясните, должно ли приложение быть открытым или работники здравоохранения могут выполнять другие действия на своем устройстве во время его синхронизации.
![Синхронизируйте мои задачи. Это может занять до часа в зависимости от вашего интернет-соединения. Три шага. 1. подключитесь к Wi-Fi или данным. 2. Оставьте устройство в месте с хорошим доступом в Интернет. 3. Во время синхронизации вы можете заниматься другими делами на устройстве. Кнопка: синхронизировать мои задачи.](https://developers.google.cn/static/open-health-stack/design/images/sync/initial-sync-do.png?hl=ru)
Четко дайте понять, сколько времени это займет.
![Очистите экран моих задач без инструкций. Синхронизирующая планка и загрузочное вращающееся колесо.](https://developers.google.cn/static/open-health-stack/design/images/sync/initial-sync-dont.png?hl=ru)
Не начинайте первоначальную синхронизацию, не предоставив никакой информации о том, чего ожидать.
Статус бар
В строке состояния указывается, находится ли устройство в автономном режиме или синхронизируется. Строка состояния появляется, когда:
- Устройство не в сети из-за отсутствия подключения к Интернету
- Данные активно синхронизируются
- Синхронизация не удалась
- Синхронизация завершена
Показывать строку состояния только тогда, когда это необходимо — на страницах или вокруг компонентов, которые изменятся после синхронизации данных. Например, статус важен при просмотре списка задач, поиске в списке пациентов или загрузке карты пациента, чтобы медицинский работник мог определить, синхронизирована ли последняя информация или нет.
![Серая строка состояния с надписью «Не в сети».](https://developers.google.cn/static/open-health-stack/design/images/sync/status-offline-do.png?hl=ru)
Показывать автономный статус, когда это необходимо, например, при загрузке списка пациентов.
![Красная строка состояния со значком ошибки и надписью «Не в сети».](https://developers.google.cn/static/open-health-stack/design/images/sync/status-offline-dont.png?hl=ru)
Не допускайте, чтобы строка состояния подключения выглядела как состояние ошибки.
![Голубая строка состояния со значком синхронизации и надписью «Синхронизация».](https://developers.google.cn/static/open-health-stack/design/images/sync/status-syncing.png?hl=ru)
Когда соединение будет установлено, в строке состояния отобразите, что приложение синхронизируется.
![Светло-серая строка состояния со значком галочки и надписью «Синхронизация завершена».](https://developers.google.cn/static/open-health-stack/design/images/sync/status-sync-done.png?hl=ru)
Покажите подтверждение завершения синхронизации, заменив значок галочкой и изменив цвет и текст в строке состояния. Это помогает пользователям узнать, что информация заполнена.
![Светло-желтая строка состояния со значком сбоя синхронизации и надписью «Ошибка синхронизации».](https://developers.google.cn/static/open-health-stack/design/images/sync/status-sync-failed.png?hl=ru)
Если синхронизация не завершилась, покажите, что не удалось завершить синхронизацию. Если причина сбоя синхронизации заключается в том, что приложение находится в автономном режиме, измените статус на «Не в сети». Важно, чтобы люди знали, что происходит.
Шаблоны синхронизации
Синхронизация работает в фоновом режиме для загрузки и выгрузки данных на сервер и с него. Поведение синхронизации не должно отвлекать пользователя.
Интервалы синхронизации должны быть установлены на основе пороговых значений, соответствующих условиям медицинского учреждения, в котором используется приложение. Пример: синхронизация каждые 12 часов в общественных условиях или каждые 15 минут в медицинском учреждении. Правильные интервалы автоматической синхронизации сводят к минимуму необходимость ручной синхронизации.
![Сообщение в закусочной: вы не в сети. Обновления будут загружены при повторном подключении устройства.](https://developers.google.cn/static/open-health-stack/design/images/sync/sync-pattern-reassure.png?hl=ru)
Убедите пользователей, что даже несмотря на то, что приложение находится в автономном режиме, они все равно могут выполнять свои задачи и что изменения будут загружены при возобновлении подключения.
![Светло-серое сообщение в строке состояния: Повторная попытка через 3 минуты 22 секунды.](https://developers.google.cn/static/open-health-stack/design/images/sync/sync-pattern-distract.png?hl=ru)
Не вдавайтесь в подробности о том, когда синхронизация попытается повторно подключиться к Интернету.
![Синхронизация карточек пациентов.](https://developers.google.cn/static/open-health-stack/design/images/sync/sync-pattern-prioritize.png?hl=ru)
Определите приоритетность данных, которые будут синхронизироваться, чтобы медицинские работники могли завершить свой рабочий процесс. Пример: в учреждении, где пациентов передают другому медицинскому работнику, обязательно отдайте приоритет синхронизации только что заполненной карты пациента.
![Список пациентов с синхронизацией 340 пациентов.](https://developers.google.cn/static/open-health-stack/design/images/sync/sync-pattern-irrelevant.png?hl=ru)
Избегайте предварительной синхронизации ненужной информации, такой как весь список пациентов или старая история посещений, не связанная с сегодняшними задачами.
Индикатор прогресса синхронизации
Индикатор хода синхронизации появляется, когда контент синхронизируется с сервером. Индикатор прогресса должен визуально показывать, что синхронизация работает.
Добавляйте индикатор прогресса только на ключевые экраны, такие как список пациентов или карточки пациентов. Оцените, сколько времени займет синхронизация, указав, какой процент был загружен.
![Индикатор выполнения показывает 35 % загрузки.](https://developers.google.cn/static/open-health-stack/design/images/sync/sync-progress-bar.png?hl=ru)
Индикатор загрузки, который ясно показывает, что прогресс происходит.
![Погрузочное колесо, которое вращается.](https://developers.google.cn/static/open-health-stack/design/images/sync/sync-progress-wheel.png?hl=ru)
Избегайте вращающегося погрузочного колеса. Неясно, застопорилось ли оно или прогрессирует.
Синхронизировать временные метки
Временные метки синхронизации информируют медицинских работников о том, когда информация обновлялась в последний раз. Временные метки помогают медицинским работникам:
- Узнайте, просматривают ли они самую свежую информацию.
- Узнайте, синхронизируется и обновляется ли приложение должным образом.
- Обеспечьте непрерывность оказания медицинской помощи, начав с того места, на котором остановился предыдущий медицинский работник.
Используйте метки времени экономно и отображайте их только в критически важных случаях, например в списке задач или карточке пациента.
![Карточка пациента последний раз обновлялась сегодня в 12:31.](https://developers.google.cn/static/open-health-stack/design/images/sync/sync-time-relevant.png?hl=ru)
Покажите дату последнего обновления информации (и покажите ее в контексте), чтобы помочь людям узнать, не прошло ли слишком много времени с момента их синхронизации.
![Метка времени синхронизации 23 мая 2022 г., 12:31 отображается в каждой строке содержимого карты пациента. Например, для номера мобильного телефона, идентификационного номера и адреса.](https://developers.google.cn/static/open-health-stack/design/images/sync/sync-time-all.png?hl=ru)
Не отображайте временные метки для каждого фрагмента данных, например времени обновления номера телефона. Избегайте длинного списка того, какие данные и когда были синхронизированы. Показана слишком большая точность времени и даты, если прошло более 24 часов.
Синхронизировать напоминания
Напоминания о синхронизации отображаются, когда устройство слишком долго находилось в автономном режиме или пользователю необходимо выполнить действие для синхронизации устройства.
Используйте напоминания, чтобы сообщить пользователям о необходимости синхронизации приложения и о том, как это сделать.
![Диалог. Значительные изменения с момента последней синхронизации. Подключитесь к сети передачи данных или Wi-Fi, чтобы завершить синхронизацию. Кнопка: Позже, Кнопка: Синхронизировать сейчас.](https://developers.google.cn/static/open-health-stack/design/images/sync/sync-reminder-friendly.png?hl=ru)
Напоминайте людям через выбранный интервал времени о необходимости синхронизации, когда это необходимо. Используйте дружелюбный тон, когда сообщаете о необходимости синхронизации.
![Диалог. Синхронизируйте немедленно. Вы опоздали на 12 часов. Подключитесь к сети передачи данных или Wi-Fi, чтобы завершить синхронизацию. Кнопка: Позже, Кнопка: Синхронизировать сейчас.](https://developers.google.cn/static/open-health-stack/design/images/sync/sync-reminder-rude.png?hl=ru)
Избегайте паникерских сообщений и не заставляйте людей чувствовать себя плохо из-за того, что они не синхронизировались.
![Диалог. 24 часа с момента последней синхронизации. Пожалуйста, синхронизируйте еще раз. Подключитесь к сети передачи данных или Wi-Fi, чтобы завершить синхронизацию. Кнопка: Позже, Кнопка: Синхронизировать сейчас.](https://developers.google.cn/static/open-health-stack/design/images/sync/sync-reminder-occasional.png?hl=ru)
Время от времени напоминайте людям о необходимости синхронизировать свое устройство, когда оно выходит за пределы порогового значения, установленного для типа медицинского учреждения (учреждение или сообщество).
![Диалог. Прошел 1 час с момента последней синхронизации. Пожалуйста, синхронизируйте еще раз. Подключитесь к сети передачи данных или Wi-Fi, чтобы завершить синхронизацию. Кнопка: Позже, Кнопка: Синхронизировать сейчас.](https://developers.google.cn/static/open-health-stack/design/images/sync/sync-reminder-frequent.png?hl=ru)
Слишком большое количество напоминаний может раздражать и расстраивать пользователей. Предоставляйте сообщения об ошибках только в том случае, если действие является срочным.
Ручная синхронизация
Синхронизация вручную отменяет настройки синхронизации по умолчанию и позволяет пользователям выполнять синхронизацию прямо сейчас. Это можно сделать через страницу синхронизации вручную или непосредственно в карте пациента. На странице синхронизации показано, когда произошла последняя синхронизация и когда запланирована следующая синхронизация. В идеале интервалы автоматической синхронизации сводят к минимуму необходимость ручной синхронизации.
Ручная синхронизация может быть полезна для медицинских работников, которые весь день находятся вне дома и хотят синхронизировать данные, когда они вернутся домой ночью, с лучшим подключением.
![История показывает метку времени последней синхронизации и метку времени следующей синхронизации.](https://developers.google.cn/static/open-health-stack/design/images/sync/manual-history.png?hl=ru)
На странице синхронизации вручную укажите, когда произошла последняя синхронизация и когда запланирована следующая синхронизация. Включите кнопку «Синхронизировать сейчас».
![История синхронизации не отображается, только кнопка «Синхронизировать сейчас».](https://developers.google.cn/static/open-health-stack/design/images/sync/manual-history-none.png?hl=ru)
Когда нет истории синхронизации, медицинским работникам трудно устранять неполадки и знать, чего ожидать.
![Кнопка «Синхронизировать сейчас» отображается на карте пациента.](https://developers.google.cn/static/open-health-stack/design/images/sync/manual-patient.png?hl=ru)
Когда медицинские работники передают пациентов друг другу, предоставьте им возможность немедленно синхронизировать записи пациентов, отобразив кнопку «Синхронизировать сейчас» на карте пациента. В качестве альтернативы этого также можно достичь с помощью синхронизации на основе событий.
![Кнопка «Синхронизировать сейчас» отображается рядом с номером мобильного телефона на карте пациента.](https://developers.google.cn/static/open-health-stack/design/images/sync/manual-everything.png?hl=ru)
Не позволяйте пользователям выбирать определенные данные для синхронизации. Это слишком сложно и слишком детально.
Сообщения об ошибках и устранение неполадок
Сообщения об ошибках появляются, когда функция не может быть завершена, например, если в списке пациентов нет пациентов.
Покажите сообщение об ошибке на соответствующем экране. Помогите людям устранить неполадки, предоставив четкое описание того, что не работает и почему. Затем дайте инструкции, как решить проблему. Если первое решение не сработало, предоставьте второй набор инструкций о том, что следует попробовать. Всегда предоставляйте людям дополнительные способы получения помощи: посредством обмена сообщениями или телефонного звонка.
![Диалог. Нет доступных задач. Синхронизируйте список задач. Проверьте, подключены ли вы к сети передачи данных или Wi-Fi. Зайдите в настройки > Сеть и Интернет. Вернитесь в приложение и нажмите «Синхронизировать сейчас». Кнопка: позже, Кнопка: синхронизировать сейчас.](https://developers.google.cn/static/open-health-stack/design/images/sync/sync-error-actionable.png?hl=ru)
Используйте сообщение об ошибке, описывающее причину неисправности и инструкции по ее устранению. Включите инструкции по навигации по настройкам системы.
![Диалог. Ошибка. Что-то пошло не так. Кнопка: попробуйте еще раз.](https://developers.google.cn/static/open-health-stack/design/images/sync/sync-error-unhelpful.png?hl=ru)
Избегайте общих сообщений об ошибках, которые не объясняют, что не так, или не предлагают, как это исправить.