简介
离线工作的应用让医护工作者能够使用所需的工具,即使没有连接到互联网,也能提供优质的医护服务。对于在网络连接不可靠的社区环境中或在没有互联网连接的医疗机构工作的医护人员来说,离线应用非常有用。离线应用还有助于降低流量费用。
如果医护工作者无法在离线状态下使用应用,他们可能无法完成重要任务。这可能会导致医护工作者无法使用该应用,且数据可能会丢失。借助 FHIR Engine 库和这些设计准则,我们旨在改善支持离线功能的健康应用的用户体验,使其可靠且易于使用。
线下关键原则
在构建离线健康应用时,请考虑以下原则:
- 社区医护工作者应用的设计应支持离线优先的体验。
- 确保用户可以离线完成其主工作流。
- 告知用户需要多久联网才能同步其设备。
首次同步
您的应用可能需要初始同步才能下载任务或患者列表,然后医护工作者才能开始使用该应用。如果是,请在医护工作者开始使用该应用的过程中,设置不同的初始同步步骤。提供关于在何处、何时进行初始同步的指导,以及预计需要多长时间。说明应用是否需要开启,或者医护工作者是否可以在设备同步时执行其他操作。
![同步我的任务。此过程最多可能需要一个小时,具体取决于互联网连接。三步。1. 连接到 Wi-Fi 或数据网络。2. 将设备放在互联网信号良好的位置。3. 您可以在设备同步时执行其他操作。按钮:同步我的任务。](https://developers.google.cn/static/open-health-stack/design/images/sync/initial-sync-do.png?hl=zh-cn)
明确预期需要多长时间。
![空白的任务界面没有说明。正在同步栏和正在加载的旋转轮。](https://developers.google.cn/static/open-health-stack/design/images/sync/initial-sync-dont.png?hl=zh-cn)
请勿在没有提供任何预期结果信息的情况下开始初始同步。
状态栏
状态栏会显示设备是离线还是正在同步。在以下情况下,状态栏会显示:
- 设备处于离线状态,因为未连接到互联网
- 正在主动同步数据
- 同步失败
- 同步已完成
仅在相关页面或组件周围显示(在数据同步完成后会发生变化)时显示状态栏。例如,在查看任务列表、搜索患者列表或加载患者卡片时,状态非常重要,以便医护人员可以识别最新信息是否已同步。
![已写入离线内容的灰色状态栏。](https://developers.google.cn/static/open-health-stack/design/images/sync/status-offline-do.png?hl=zh-cn)
在相关时显示离线状态,例如在加载患者列表时。
![红色状态栏,包含错误图标和离线写入内容。](https://developers.google.cn/static/open-health-stack/design/images/sync/status-offline-dont.png?hl=zh-cn)
避免让连接状态栏看起来像是错误状态。
![浅蓝色状态栏,其中写入了同步图标和同步设置。](https://developers.google.cn/static/open-health-stack/design/images/sync/status-syncing.png?hl=zh-cn)
建立连接后,在状态栏中显示应用正在同步。
![浅灰色状态栏,带有复选标记图标和显示同步已完成。](https://developers.google.cn/static/open-health-stack/design/images/sync/status-sync-done.png?hl=zh-cn)
将图标更改为对勾标记,并更改状态栏中的颜色和文本,以显示同步完成的确认信息。这有助于用户知道信息已完成。
![浅黄色状态栏,带有“同步失败”图标和“同步失败”字样。](https://developers.google.cn/static/open-health-stack/design/images/sync/status-sync-failed.png?hl=zh-cn)
如果同步未完成,则显示未能完成同步。如果同步失败的原因是应用处于离线状态,请将状态更改为离线。这对人们了解所发生情况非常重要。
同步模式
同步功能在后台运行,以便向服务器上传数据以及从服务器下载数据。同步行为不应对用户造成干扰。
应根据与应用的医疗保健设置相关的阈值设定同步间隔。示例:在社区环境中每 12 小时同步一次,或者在医疗机构每 15 分钟同步一次。设置合适的自动同步间隔可最大限度地减少手动同步的需求。
![信息提示控件消息:您处于离线状态。系统会在设备重新连接后上传更新。](https://developers.google.cn/static/open-health-stack/design/images/sync/sync-pattern-reassure.png?hl=zh-cn)
向用户保证,即使应用处于离线状态,他们仍然可以完成任务,并且系统会在连接恢复时上传更改。
![浅灰色状态栏消息:3 分 22 秒后重试。](https://developers.google.cn/static/open-health-stack/design/images/sync/sync-pattern-distract.png?hl=zh-cn)
避免详细了解同步何时重新尝试连接到互联网。
![正在同步患者卡。](https://developers.google.cn/static/open-health-stack/design/images/sync/sync-pattern-prioritize.png?hl=zh-cn)
优先同步哪些数据,以便医疗保健工作者能够完成工作流程。示例:在将患者交给另一位医护人员的设施中,确保优先同步刚刚完成的患者卡片。
![正在同步 340 名患者的患者列表。](https://developers.google.cn/static/open-health-stack/design/images/sync/sync-pattern-irrelevant.png?hl=zh-cn)
避免先同步不相关的信息,例如整个患者名单或与当前任务无关的旧访记录。
同步进度指示器
从服务器同步内容时,会显示同步进度指示器。进度指示器应直观地显示同步正在进行。
仅在关键屏幕(例如患者列表或患者卡片)上添加进度指示器。通过显示已下载完毕的百分比,可以估算同步所需的时间。
![显示已下载 35% 的进度条。](https://developers.google.cn/static/open-health-stack/design/images/sync/sync-progress-bar.png?hl=zh-cn)
加载进度条,清楚地显示进度。
![加载轮在转动。](https://developers.google.cn/static/open-health-stack/design/images/sync/sync-progress-wheel.png?hl=zh-cn)
避免使用旋转的加载轮。不确定是停滞还是正在推进。
同步时间戳
同步时间戳会告知医护工作者这些信息的上次更新时间。时间戳可帮助医护工作者:
- 了解他们查看的是否是最新信息。
- 了解应用是否按预期同步和更新。
- 通过从之前的医护人员离开的地方继续,提供连续的护理服务。
请谨慎使用时间戳,并且仅在重要时刻(例如任务列表或患者卡片上)才显示时间戳。
![患者卡片上次更新时间为今天中午 12:31。](https://developers.google.cn/static/open-health-stack/design/images/sync/sync-time-relevant.png?hl=zh-cn)
显示信息的上次更新时间(并在上下文中显示),以帮助用户了解距离上次同步时间是否太久。
![同步时间戳 2022 年 5 月 23 日 12:31 显示在患者卡片的每一行内容中。例如手机号码、ID 号码和地址。](https://developers.google.cn/static/open-health-stack/design/images/sync/sync-time-all.png?hl=zh-cn)
不要显示每项数据的时间戳,例如电话号码的更新时间。避免创建太多数据的同步时间列表。如果超过 24 小时,则显示时间和日期精确度过多。
同步提醒
如果设备长时间离线,或用户需要执行操作来同步设备,则系统会显示同步提醒。
使用提醒告知用户需要同步应用以及如何同步。
![对话框。自上次同步后发生的重大变化。连接到数据网络或 WLAN 网络即可完成同步。按钮:稍后,按钮:立即同步。](https://developers.google.cn/static/open-health-stack/design/images/sync/sync-reminder-friendly.png?hl=zh-cn)
在适当的时候,按照选定的时间间隔提醒用户同步。在传达需要同步的需要时,使用友好的语气。
![对话框。立即同步。你已逾期 12 小时。连接到数据网络或 WLAN 网络即可完成同步。按钮:稍后,按钮:立即同步。](https://developers.google.cn/static/open-health-stack/design/images/sync/sync-reminder-rude.png?hl=zh-cn)
避免发表夸张言辞,或者让自己因为未同步而感到沮丧。
![对话框。自上次同步后 24 小时。请重新同步。连接到数据网络或 WLAN 网络即可完成同步。按钮:稍后,按钮:立即同步。](https://developers.google.cn/static/open-health-stack/design/images/sync/sync-reminder-occasional.png?hl=zh-cn)
当设备超出了为医疗保健设置类型(设施或社区)设定的阈值时,偶尔提醒用户同步设备。
![对话框。距离上次同步已有 1 小时。请重新同步。连接到数据网络或 WLAN 网络即可完成同步。按钮:稍后,按钮:立即同步。](https://developers.google.cn/static/open-health-stack/design/images/sync/sync-reminder-frequent.png?hl=zh-cn)
提醒过多可能会让用户感到厌烦,仅在紧急操作时提供错误消息。
手动同步
手动同步会覆盖默认同步设置,并允许用户立即同步。这可以通过手动同步页面或直接在患者卡片上完成。同步页面会显示上次同步发生的时间以及安排下次同步的时间。理想情况下,自动同步间隔可以最大限度地减少手动同步的需求。
如果医护工作者整天在社区,又想在晚上回家后通过更好的网络连接进行同步,手动同步会非常有用。
![历史记录显示上次同步时间戳和下次同步时间戳。](https://developers.google.cn/static/open-health-stack/design/images/sync/manual-history.png?hl=zh-cn)
在手动同步页面上,显示上次同步的时间以及安排下次同步的时间。添加“立即同步”按钮。
![未显示同步历史记录,只有一个“立即同步”按钮。](https://developers.google.cn/static/open-health-stack/design/images/sync/manual-history-none.png?hl=zh-cn)
如果没有同步记录,医护人员就很难进行问题排查,也很难了解预期结果。
![患者卡片上显示了“立即同步”按钮。](https://developers.google.cn/static/open-health-stack/design/images/sync/manual-patient.png?hl=zh-cn)
当医护人员在患者之间交接患者时,通过在患者卡片上显示立即同步按钮,为他们提供一种立即同步患者记录的方法。或者,这也可以通过基于事件的同步来实现。
![患者卡片上手机号码旁边显示的“立即同步”按钮。](https://developers.google.cn/static/open-health-stack/design/images/sync/manual-everything.png?hl=zh-cn)
避免让用户选择要同步的特定数据。它过于复杂,也过于精细。
错误消息和问题排查
当某项功能未能完成时(例如,患者列表中没有患者),系统会显示错误消息。
在相关屏幕上显示错误消息。清晰地说明问题的出现原因以及具体问题,从而帮助用户进行问题排查。然后说明如何解决问题。如果第一种解决方案行不通,请提供第二组说明来说明应尝试什么方法。始终为用户提供更多获取帮助的方式,比如发送消息或打电话。
![对话框。没有可用的任务。同步任务列表。检查设备是否已连接到移动数据网络或 WLAN。依次前往“设置”>“网络和互联网”。返回该应用并轻击立即同步。按钮:稍后,按钮:立即同步。](/static/open-health-stack/design/images/sync/sync-error-actionable.png)
使用错误消息说明问题所在,并说明解决问题的步骤。添加如何浏览系统设置的说明。
![对话框。出错了。出了点问题。按钮:重试。](https://developers.google.cn/static/open-health-stack/design/images/sync/sync-error-unhelpful.png?hl=zh-cn)
避免使用一般错误消息,既没有解释错误情况,也没有提供修正建议。