Introdução
Com apps que funcionam off-line, os profissionais de saúde têm acesso às ferramentas necessárias para prestar atendimento de qualidade, mesmo quando não estão conectados à Internet. Os apps off-line são úteis para profissionais de saúde que trabalham em ambientes comunitários com conectividade não confiável ou em instalações de saúde sem acesso à Internet. Os apps off-line também podem ajudar a reduzir os custos de dados.
Se os profissionais de saúde não puderem usar o app off-line, eles talvez não consigam concluir tarefas importantes. Isso pode fazer com que os profissionais de saúde não usem o app e percam os dados. Com a biblioteca FHIR Engine e essas diretrizes de design, nosso objetivo é melhorar a experiência do usuário em apps de saúde off-line para que sejam confiáveis e fáceis de usar.
Princípios importantes do modo off-line
Considere estes princípios ao criar apps de saúde off-line:
- Os apps comunitários para profissionais de saúde precisam ser projetados para uma experiência que prioriza o modo off-line.
- Garanta que os usuários possam concluir o fluxo de trabalho principal off-line.
- Informe aos usuários com que frequência eles precisam ficar on-line para sincronizar o dispositivo.
Sincronização inicial
O app pode exigir uma sincronização inicial para fazer o download de tarefas ou de uma lista de pacientes, antes que um profissional da saúde comece a usá-lo. Nesse caso, faça da sincronização inicial uma etapa distinta como parte dos profissionais de saúde que estão começando a usar o app. Forneça orientações sobre onde e quando fazer isso e uma estimativa de quanto tempo será necessário. Explique se o app precisa estar aberto ou se os profissionais de saúde podem realizar outras tarefas no dispositivo durante a sincronização.
![Sincronizar minhas tarefas. Isso pode levar até uma hora, dependendo da conexão de Internet. Três etapas. 1. Conecte-se ao Wi-Fi ou aos dados móveis. 2. Deixe o dispositivo em um local com boa recepção de Internet. 3. Você pode fazer outras coisas no dispositivo enquanto ele é sincronizado. Botão: "Sincronizar minhas tarefas".](https://developers.google.cn/static/open-health-stack/design/images/sync/initial-sync-do.png?hl=pt-br)
Apresente expectativas claras de quanto tempo vai levar.
![Deixar a tela "Minhas tarefas" em branco sem instruções. Sincronização de uma barra e uma roda giratória de carregamento.](https://developers.google.cn/static/open-health-stack/design/images/sync/initial-sync-dont.png?hl=pt-br)
Não inicie a sincronização inicial sem informar o que esperar.
Barra de status
A barra de status indica se o dispositivo está off-line ou sincronizando. A barra de status aparece quando:
- O dispositivo está off-line porque não há conexão de Internet
- Os dados estão sendo sincronizados
- Falha na sincronização
- A sincronização foi concluída
Mostre a barra de status somente quando for relevante, em páginas ou ao redor de componentes que serão alterados quando a sincronização dos dados for concluída. Por exemplo, o status é importante ao procurar uma lista de tarefas, pesquisar uma lista de pacientes ou carregar um cartão de paciente para que o profissional de saúde possa reconhecer se as informações mais recentes foram sincronizadas ou não.
![Barra de status cinza com a mensagem off-line exibida.](https://developers.google.cn/static/open-health-stack/design/images/sync/status-offline-do.png?hl=pt-br)
Mostre o status off-line quando for relevante, por exemplo, ao carregar a lista de pacientes.
![Barra de status vermelha, com ícone de erro e texto off-line escrito.](https://developers.google.cn/static/open-health-stack/design/images/sync/status-offline-dont.png?hl=pt-br)
Evite fazer com que a barra de status de conectividade pareça um estado de erro.
![Barra de status azul-claro com ícone de sincronização e sincronização escritos.](https://developers.google.cn/static/open-health-stack/design/images/sync/status-syncing.png?hl=pt-br)
Quando a conectividade estiver estabelecida, mostre que o app está sendo sincronizado na barra de status.
![Barra de status cinza-claro com ícone de verificação e sincronização concluída.](https://developers.google.cn/static/open-health-stack/design/images/sync/status-sync-done.png?hl=pt-br)
Mostre a confirmação de conclusão da sincronização mudando o ícone para uma marca de seleção e a cor e o texto na barra de status. Isso ajuda os usuários a saberem que as informações foram preenchidas.
![Barra de status amarela-clara com o ícone de falha na sincronização e o erro de sincronização escrito.](https://developers.google.cn/static/open-health-stack/design/images/sync/status-sync-failed.png?hl=pt-br)
Se a sincronização não foi concluída, mostre que ela não foi concluída. Se a causa da falha na sincronização for o app estar off-line, mude o status para off-line. É importante que as pessoas saibam o que está acontecendo.
Sincronizar padrões
A sincronização funciona em segundo plano para fazer upload e download de dados de e para o servidor. O comportamento de sincronização não deve distrair o usuário.
Os intervalos de sincronização precisam ser definidos com base em limites relevantes para o ambiente de saúde em que o app é usado. Exemplo: sincronização a cada 12 horas no ambiente comunitário ou a cada 15 minutos em uma unidade de saúde. Ter os intervalos de sincronização automática corretos minimizam a necessidade de sincronização manual.
![Mensagem da lanchonete: você está off-line. O upload das atualizações será feito quando o dispositivo for reconectado.](https://developers.google.cn/static/open-health-stack/design/images/sync/sync-pattern-reassure.png?hl=pt-br)
Assegure aos usuários que, mesmo com o app off-line, eles ainda podem concluir as tarefas e que as mudanças serão enviadas quando a conexão for retomada.
![Mensagem da barra de status cinza-claro: nova tentativa em 3 minutos e 22 segundos.](https://developers.google.cn/static/open-health-stack/design/images/sync/sync-pattern-distract.png?hl=pt-br)
Evite entrar em detalhes sobre quando a sincronização vai tentar se conectar à Internet novamente.
![Sincronização de cartões de pacientes.](https://developers.google.cn/static/open-health-stack/design/images/sync/sync-pattern-prioritize.png?hl=pt-br)
Priorizar os dados que são sincronizados para que os profissionais de saúde possam concluir o fluxo de trabalho. Por exemplo: em uma instalação em que os pacientes são encaminhados para outro profissional de saúde, priorize a sincronização do cartão que acabou de ser finalizado.
![Lista de pacientes com 340 pacientes sincronizados.](https://developers.google.cn/static/open-health-stack/design/images/sync/sync-pattern-irrelevant.png?hl=pt-br)
Evite sincronizar primeiro as informações irrelevantes, como toda a lista de pacientes ou o histórico de visitas antigo não relacionado às tarefas de hoje.
Indicador de progresso da sincronização
Um indicador de progresso da sincronização aparece quando o conteúdo está sendo sincronizado do servidor. O indicador de progresso deve mostrar visualmente que a sincronização está funcionando.
Adicione um indicador de progresso apenas nas telas principais, como a lista de pacientes ou o cartão de pacientes. Forneça uma estimativa de quanto tempo a sincronização levará, mostrando a porcentagem de download concluído.
![Barra de progresso mostrando 35% do download.](https://developers.google.cn/static/open-health-stack/design/images/sync/sync-progress-bar.png?hl=pt-br)
Barra de carregamento que mostra claramente o progresso em andamento.
![Uma roda de carregamento está girando.](https://developers.google.cn/static/open-health-stack/design/images/sync/sync-progress-wheel.png?hl=pt-br)
Evite uma roda de carregamento girando. Não ficou claro se ele está parado ou progredindo.
Sincronizar carimbos de data/hora
Os carimbos de data/hora de sincronização informam aos profissionais de saúde quando as informações foram atualizadas pela última vez. As marcações de tempo ajudam os profissionais de saúde a:
- Saiba se eles estão analisando as informações mais atualizadas.
- Verifique se o app está sendo sincronizado e atualizado conforme o esperado.
- Para garantir a continuidade do atendimento, continue de onde o profissional de saúde anterior parou.
Use os carimbos de data/hora com moderação e só os exiba quando importante, como na lista de tarefas ou no cartão de um paciente.
![A última atualização do cartão de paciente foi hoje, às 12h31.](https://developers.google.cn/static/open-health-stack/design/images/sync/sync-time-relevant.png?hl=pt-br)
Mostre quando as informações foram atualizadas pela última vez e no contexto para ajudar as pessoas a saber se faz muito tempo desde a sincronização.
![O carimbo de data/hora da sincronização de 23 de maio de 2022, 12h31, é mostrado em cada linha de conteúdo no cartão de paciente. Por exemplo, número de celular, número do documento de identificação e endereço.](https://developers.google.cn/static/open-health-stack/design/images/sync/sync-time-all.png?hl=pt-br)
Não mostre carimbos de data/hora para todos os dados, por exemplo, quando o número de telefone foi atualizado. Evite uma lista longa de quais dados foram sincronizados. Mostrando muita precisão de hora e data se tiver passado mais de 24 horas.
Sincronizar lembretes
Os lembretes de sincronização são exibidos quando o dispositivo fica off-line por muito tempo ou quando o usuário precisa executar uma ação para sincronizar o dispositivo.
Use lembretes para comunicar aos usuários a necessidade de sincronizar o aplicativo e como fazer isso.
![Caixa de diálogo. Alterações significativas desde a última sincronização. Conecte-se aos dados ou ao Wi-Fi para concluir a sincronização. Botão: "Mais tarde", Botão: sincronizar agora.](https://developers.google.cn/static/open-health-stack/design/images/sync/sync-reminder-friendly.png?hl=pt-br)
Lembre as pessoas a um determinado intervalo de sincronização, quando apropriado. Use um tom amigável ao comunicar a necessidade de sincronizar.
![Caixa de diálogo. Sincronizar imediatamente. Você está com 12 horas de atraso. Conecte-se aos dados ou ao Wi-Fi para concluir a sincronização. Botão: "Mais tarde", Botão: sincronizar agora.](https://developers.google.cn/static/open-health-stack/design/images/sync/sync-reminder-rude.png?hl=pt-br)
Evite comunicações alarmantes ou fazer as pessoas se sentirem mal por não terem feito a sincronização.
![Caixa de diálogo. 24 horas desde a última sincronização. Sincronize novamente. Conecte-se aos dados ou ao Wi-Fi para concluir a sincronização. Botão: "Mais tarde", Botão: sincronizar agora.](https://developers.google.cn/static/open-health-stack/design/images/sync/sync-reminder-occasional.png?hl=pt-br)
Lembre as pessoas de sincronizar os dispositivos quando ele ultrapassar o limite definido para o tipo de assistência médica (instalação ou comunidade).
![Caixa de diálogo. 1 hora desde a última sincronização. Sincronize novamente. Conecte-se aos dados ou ao Wi-Fi para concluir a sincronização. Botão: "Mais tarde", Botão: sincronizar agora.](https://developers.google.cn/static/open-health-stack/design/images/sync/sync-reminder-frequent.png?hl=pt-br)
Muitos lembretes podem ser irritantes e frustrar os usuários. Só envie mensagens de erro quando a ação for urgente.
Sincronização manual
A sincronização manual substitui as configurações padrão e permite que os usuários façam a sincronização agora. Isso pode ser feito na página de sincronização manual ou diretamente no cartão do paciente. A página de sincronização mostra quando a última sincronização aconteceu e para quando a próxima está programada. O ideal é que os intervalos de sincronização automática minimizem a necessidade de sincronização manual.
A sincronização manual pode ser útil para profissionais de saúde que estão fora na comunidade o dia todo e querem sincronizar quando estiverem em casa à noite com uma conectividade melhor.
![Histórico mostrando os carimbos de data/hora da última sincronização e da próxima sincronização.](https://developers.google.cn/static/open-health-stack/design/images/sync/manual-history.png?hl=pt-br)
Na página de sincronização manual, veja quando foi a última sincronização e para quando a próxima está programada. Inclua um botão para "Sincronizar agora".
![Nenhum histórico de sincronização exibido, apenas um botão "Sincronizar agora".](https://developers.google.cn/static/open-health-stack/design/images/sync/manual-history-none.png?hl=pt-br)
Quando não há histórico de sincronização, os profissionais de saúde têm dificuldade para resolver problemas e saber o que esperar.
![Botão "Sincronizar agora" exibido no cartão do paciente.](https://developers.google.cn/static/open-health-stack/design/images/sync/manual-patient.png?hl=pt-br)
Quando os profissionais de saúde estiverem distribuindo pacientes entre si, ofereça uma maneira de sincronizar imediatamente o histórico, exibindo um botão "Sincronizar agora" no cartão do paciente. Como alternativa, isso também pode ser feito com uma sincronização baseada em eventos.
![Botão "Sincronizar agora" exibido ao lado do número de celular no cartão do paciente.](https://developers.google.cn/static/open-health-stack/design/images/sync/manual-everything.png?hl=pt-br)
Evite permitir que os usuários selecionem dados específicos para sincronizar. É muito complexo e granular.
Mensagens de erro e solução de problemas
As mensagens de erro aparecem quando uma função não é concluída, por exemplo, não há pacientes na lista.
Mostre a mensagem de erro na tela relevante. Ajude as pessoas a resolver problemas com uma descrição clara do que não está funcionando e por quê. Em seguida, dê instruções sobre como resolver o problema. Se a primeira solução não funcionar, apresente um segundo conjunto de instruções do que tentar. Sempre ofereça outras maneiras para as pessoas receberem ajuda por mensagem ou ligação.
![Caixa de diálogo. Nenhuma tarefa disponível. Sincronize a lista de tarefas. Verifique se o dispositivo está conectado à rede de dados ou Wi-Fi. Acesse Configurações > Rede e Internet. Volte para o app e toque em "Sincronizar agora". Botão: mais tarde, Botão: sincronizar agora.](/static/open-health-stack/design/images/sync/sync-error-actionable.png)
Use uma mensagem de erro que descreva o que está errado e as etapas de correção. Inclua instruções para acessar as configurações do sistema.
![Caixa de diálogo. Erro. Algo deu errado. Botão: tente novamente.](https://developers.google.cn/static/open-health-stack/design/images/sync/sync-error-unhelpful.png?hl=pt-br)
Evite mensagens de erro genéricas que não expliquem o que há de errado ou forneçam sugestões de correção.