소개
오프라인으로 작동하는 앱을 통해 의료 종사자는 인터넷에 연결되어 있지 않을 때도 양질의 진료를 제공하는 데 필요한 도구에 액세스할 수 있습니다. 오프라인 앱은 연결이 불안정한 커뮤니티 환경이나 인터넷 액세스가 없는 의료 시설에서 근무하는 의료 종사자에게 유용합니다. 오프라인 앱은 데이터 비용 절감에 도움이 될 수 있습니다.
의료 분야 종사자가 앱을 오프라인으로 사용할 수 없다면 중요한 작업을 완료하지 못할 수도 있습니다. 이로 인해 의료 인력이 앱을 사용하지 않고 데이터가 손실될 수 있습니다. FHIR Engine 라이브러리와 이러한 디자인 가이드라인을 통해 오프라인에서 사용할 수 있는 건강 앱의 사용자 환경을 개선하여 안정적이고 사용하기 쉽게 만드는 것을 목표로 합니다.
주요 오프라인 원칙
오프라인 건강 앱을 빌드할 때 다음 원칙을 고려하세요.
- 커뮤니티 의료 종사자 앱은 오프라인 우선 환경을 고려하여 설계되어야 합니다.
- 사용자가 오프라인에서 기본 워크플로를 완료할 수 있는지 확인합니다.
- 사용자에게 기기를 동기화하려면 얼마나 자주 온라인에 연결해야 하는지 알립니다.
초기 동기화
의료 종사자가 앱 사용을 시작하기 전에 앱에서 작업 또는 환자 목록을 다운로드하기 위해 초기 동기화가 필요할 수 있습니다. 이 경우 의료 인력이 앱 사용을 시작할 때 초기 동기화를 눈에 띄는 단계로 지정하세요. 동기화 시점과 위치, 예상 소요 시간에 관한 안내를 제공하세요. 앱을 열어야 하는지 또는 의료 인력이 동기화 중에 기기에서 다른 작업을 할 수 있는지 여부를 설명합니다.
![할 일 동기화로 이동합니다. 인터넷 연결 상태에 따라 최대 1시간이 걸릴 수 있습니다. 3단계 1. Wi-Fi 또는 데이터에 연결합니다. 2. 기기를 인터넷 연결 상태가 좋은 곳에 둡니다. 3. 동기화되는 동안 기기에서 다른 작업을 할 수 있습니다. 버튼: 할 일 동기화](https://developers.google.cn/static/open-health-stack/design/images/sync/initial-sync-do.png?hl=ko)
소요 시간에 대한 명확한 기대치를 제공합니다.
![안내 없이 할 일 화면이 비어 있습니다. 동기화 막대와 로드 중인 회전 바퀴](https://developers.google.cn/static/open-health-stack/design/images/sync/initial-sync-dont.png?hl=ko)
예상되는 상황에 관한 정보를 제공하지 않고 초기 동기화를 시작하지 마세요.
상태 표시줄
상태 표시줄에 기기가 오프라인 상태이거나 동기화 상태인지 표시됩니다. 상태 표시줄은 다음과 같은 경우에 표시됩니다.
- 인터넷에 연결되어 있지 않아 기기가 오프라인 상태입니다.
- 데이터 동기화 중
- 동기화 실패
- 동기화 완료됨
데이터 동기화가 완료되면 변경되는 페이지 또는 구성요소 주변에 해당하는 경우에만 상태 표시줄을 표시합니다. 예를 들어 작업 목록을 보거나 환자 목록을 검색하거나 환자 카드를 로드할 때 의료 작업자가 최신 정보의 동기화 여부를 인식할 수 있도록 상태가 중요합니다.
![오프라인 상태가 되어 있는 회색 상태 표시줄](https://developers.google.cn/static/open-health-stack/design/images/sync/status-offline-do.png?hl=ko)
관련이 있는 경우(예: 환자 목록을 로드할 때) 오프라인 상태를 표시합니다.
![오류 아이콘이 있고 오프라인 상태가 되어 있는 빨간색 상태 표시줄](https://developers.google.cn/static/open-health-stack/design/images/sync/status-offline-dont.png?hl=ko)
연결 상태 표시줄을 오류 상태처럼 보이게 만들지 마세요.
![동기화 아이콘과 동기화가 기록되어 있는 연한 파란색 상태 표시줄입니다.](https://developers.google.cn/static/open-health-stack/design/images/sync/status-syncing.png?hl=ko)
연결이 설정되면 앱이 상태 표시줄에 동기화 중임을 표시합니다.
![체크표시 아이콘이 있고 동기화 완료가 표시된 연한 회색 상태 표시줄입니다.](https://developers.google.cn/static/open-health-stack/design/images/sync/status-sync-done.png?hl=ko)
아이콘을 체크표시로 변경하고 상태 표시줄의 색상과 텍스트를 변경하여 동기화 완료를 확인하는 메시지를 표시합니다. 이를 통해 사용자는 정보가 작성되었음을 알 수 있습니다.
![동기화 실패 아이콘과 동기화 실패가 기록되어 있는 연한 노란색 상태 표시줄입니다.](https://developers.google.cn/static/open-health-stack/design/images/sync/status-sync-failed.png?hl=ko)
동기화가 완료되지 않은 경우 동기화를 완료하지 못했음을 표시합니다. 동기화 실패의 원인이 앱이 오프라인 상태이기 때문인 경우 상태를 오프라인으로 변경합니다. 사용자가 어떤 일이 일어나고 있는지 알아야 합니다.
동기화 패턴
동기화는 백그라운드에서 작동하여 서버에 데이터를 업로드하고 다운로드합니다. 동기화 동작이 사용자를 방해해서는 안 됩니다.
동기화 간격은 앱이 사용되는 헬스케어 설정과 관련된 기준점을 기반으로 설정해야 합니다. 예: 커뮤니티 환경에서는 12시간마다, 의료 시설에서는 15분마다 동기화합니다. 자동 동기화 간격을 적절하게 설정하면 수동 동기화의 필요성을 최소화할 수 있습니다.
![스낵 바 메시지: 오프라인 상태입니다. 기기가 다시 연결되면 업데이트가 업로드됩니다.](https://developers.google.cn/static/open-health-stack/design/images/sync/sync-pattern-reassure.png?hl=ko)
앱이 오프라인 상태여도 작업을 완료할 수 있으며 연결이 재개되면 변경사항이 업로드된다고 사용자를 안심시킵니다.
![연한 회색 상태 표시줄 메시지: 3분 22초 후에 다시 시도합니다.](https://developers.google.cn/static/open-health-stack/design/images/sync/sync-pattern-distract.png?hl=ko)
동기화에서 인터넷 연결을 다시 시도할 시기를 자세히 설명하지 않습니다.
![환자 카드를 동기화하는 중입니다.](https://developers.google.cn/static/open-health-stack/design/images/sync/sync-pattern-prioritize.png?hl=ko)
의료 인력이 워크플로를 완료할 수 있도록 동기화할 데이터의 우선순위를 지정합니다. 예: 환자가 다른 의료인에게 핸드오프되는 시설에서는 방금 완료한 환자 카드의 동기화에 우선순위를 두어야 합니다.
![동기화 중인 환자 340명이 포함된 환자 목록입니다.](https://developers.google.cn/static/open-health-stack/design/images/sync/sync-pattern-irrelevant.png?hl=ko)
전체 환자 목록이나 오늘 할 일과 관련 없는 오래된 방문 기록 등 관련 없는 정보를 먼저 동기화하지 마세요.
동기화 진행률 표시기
콘텐츠가 서버에서 동기화되면 동기화 진행 상태 표시기가 나타납니다. 진행률 표시기에 동기화가 진행 중임이 시각적으로 표시되어야 합니다.
환자 목록이나 환자 카드와 같은 주요 화면에만 진행 상태 표시기를 추가합니다. 다운로드 된 비율을 표시하여 동기화에 걸리는 예상 시간을 제공합니다.
![35% 다운로드되었음을 표시하는 진행률 표시줄](https://developers.google.cn/static/open-health-stack/design/images/sync/sync-progress-bar.png?hl=ko)
진행률을 명확하게 보여주는 로드 표시줄
![빙글빙글 도는 로드 중](https://developers.google.cn/static/open-health-stack/design/images/sync/sync-progress-wheel.png?hl=ko)
회전하는 로드 휠을 피하세요. 중단되었는지 아니면 진전이 있는지 알 수 없습니다.
타임스탬프 동기화
동기화 타임스탬프는 의료 인력에게 정보가 마지막으로 업데이트된 시간을 알려줍니다. 타임스탬프는 의료 종사자에게 도움이 됩니다.
- 고객이 최신 정보를 보고 있는지 확인하세요.
- 앱이 정상적으로 동기화되고 업데이트되고 있는지 확인합니다.
- 이전 의료 인력이 중단한 부분부터 이어서 치료를 지속적으로 받을 수 있습니다.
타임스탬프를 드물게 사용하고 작업 목록이나 환자 카드와 같이 중요한 경우에만 표시합니다.
![환자 카드가 오늘 오후 12시 31분에 마지막으로 업데이트되었습니다.](https://developers.google.cn/static/open-health-stack/design/images/sync/sync-time-relevant.png?hl=ko)
정보가 마지막으로 업데이트된 시간을 표시하고 관련 맥락에 따라 표시하여 사용자가 동기화된 지 너무 오래되었는지 여부를 알릴 수 있습니다.
![동기화 타임스탬프인 2022년 5월 23일 12:31이 환자 카드의 각 콘텐츠 행에 표시됩니다. 예: 휴대전화 번호, ID 번호, 주소](https://developers.google.cn/static/open-health-stack/design/images/sync/sync-time-all.png?hl=ko)
전화번호가 업데이트된 시점과 같이 모든 데이터의 타임스탬프를 표시하지 마세요. 언제 동기화한 데이터인지에 대해 긴 목록을 사용하지 않습니다. 24시간이 지난 경우 시간 및 날짜 정확도가 너무 많이 표시됨
알림 동기화
동기화 알림은 기기가 너무 오랫동안 오프라인 상태이거나 사용자가 기기를 동기화하기 위해 조치를 취해야 할 때 표시됩니다.
알림을 사용하여 사용자에게 앱 동기화 필요성과 그 방법을 안내합니다.
![대화상자 마지막 동기화 이후 중요한 변경사항이 있습니다. 데이터 또는 Wi-Fi에 연결하여 동기화를 완료합니다. 버튼: 나중에, 버튼: 지금 동기화](https://developers.google.cn/static/open-health-stack/design/images/sync/sync-reminder-friendly.png?hl=ko)
적절한 경우 선택한 간격으로 동기화하도록 사용자에게 안내합니다. 동기화 필요성을 알릴 때는 친근한 어조를 사용합니다.
![대화상자 즉시 동기화합니다. 12시간 기한이 지났습니다. 데이터 또는 Wi-Fi에 연결하여 동기화를 완료합니다. 버튼: 나중에, 버튼: 지금 동기화](https://developers.google.cn/static/open-health-stack/design/images/sync/sync-reminder-rude.png?hl=ko)
자조적인 의사소통을 피하거나 동기화하지 않았다는 느낌을 주는 것을 피합니다.
![대화상자 마지막 동기화 후 24시간이 지났습니다. 다시 동기화하세요. 데이터 또는 Wi-Fi에 연결하여 동기화를 완료합니다. 버튼: 나중에, 버튼: 지금 동기화](https://developers.google.cn/static/open-health-stack/design/images/sync/sync-reminder-occasional.png?hl=ko)
의료 설정 유형 (시설 및 커뮤니티)에 설정된 기준을 초과했을 때 기기를 동기화하도록 사용자에게 가끔 알립니다.
![대화상자 마지막 동기화 이후 1시간이 지났습니다. 다시 동기화하세요. 데이터 또는 Wi-Fi에 연결하여 동기화를 완료합니다. 버튼: 나중에, 버튼: 지금 동기화](https://developers.google.cn/static/open-health-stack/design/images/sync/sync-reminder-frequent.png?hl=ko)
리마인더가 너무 많으면 짜증이 날 수 있으며 사용자가 불만을 느낄 수 있습니다. 긴급한 조치인 경우에만 오류 메시지를 제공합니다.
수동 동기화
수동 동기화를 사용하면 기본 동기화 설정이 재정의되며 사용자가 지금 동기화할 수 있습니다. 수동 동기화 페이지를 통해 또는 환자 카드에서 직접 이 작업을 수행할 수 있습니다. 동기화 페이지에는 마지막 동기화가 발생한 시간과 다음 동기화가 예약된 시간이 표시됩니다. 자동 동기화 간격을 사용하면 수동 동기화의 필요성을 최소화할 수 있습니다.
수동 동기화는 하루 종일 지역 사회에 밖에서 출근하고 밤에 귀가할 때 더 나은 연결 상태를 통해 동기화하려는 의료 종사자에게 유용합니다.
![마지막 동기화 타임스탬프와 다음 동기화 타임스탬프를 표시하는 기록입니다.](https://developers.google.cn/static/open-health-stack/design/images/sync/manual-history.png?hl=ko)
수동 동기화 페이지에서 마지막 동기화가 발생한 시간과 다음 동기화가 예약된 시간을 표시합니다. '지금 동기화' 버튼을 포함합니다.
![동기화 기록이 표시되지 않고 지금 동기화 버튼만 표시됩니다.](https://developers.google.cn/static/open-health-stack/design/images/sync/manual-history-none.png?hl=ko)
동기화 기록이 없으면 의료 인력이 문제를 해결하고 결과를 파악하기가 어렵습니다.
![환자 카드에 표시된 지금 동기화 버튼](https://developers.google.cn/static/open-health-stack/design/images/sync/manual-patient.png?hl=ko)
의료 종사자가 서로 환자를 나눠주는 경우 환자 카드에 지금 동기화 버튼을 표시하여 환자 기록을 즉시 동기화할 수 있는 방법을 제공하세요. 또는 이벤트 기반 동기화를 사용하여 이를 수행할 수도 있습니다.
![환자 카드의 휴대전화 번호 옆에 표시된 지금 동기화 버튼](https://developers.google.cn/static/open-health-stack/design/images/sync/manual-everything.png?hl=ko)
사용자가 동기화할 특정 데이터를 선택할 수 없도록 하세요. 너무 복잡하고 너무 세분화되어 있습니다.
오류 메시지 및 문제 해결
오류 메시지는 환자 목록에 환자가 없는 것과 같이 함수를 완료하지 못할 때 표시됩니다.
관련 화면에 오류 메시지를 표시합니다. 작동하지 않는 부분과 그 이유를 명확하게 설명하면 문제 해결에 도움이 됩니다. 그런 다음 문제 해결 방법을 안내합니다. 첫 번째 방법으로 해결되지 않으면 다음에 시도할 방법을 안내해 주세요. 항상 메시지나 전화 통화를 통해 사용자가 도움을 받을 수 있는 추가적인 방법을 제공합니다.
![대화상자 사용 가능한 작업이 없습니다. 할 일 목록을 동기화합니다. 데이터 또는 Wi-Fi에 연결되어 있는지 확인합니다. 설정 > 네트워크 및 인터넷으로 이동합니다. 앱으로 돌아와 지금 동기화를 누릅니다. 버튼: 나중에, 버튼: 지금 동기화](/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=ko)
문제를 설명하지 않는 일반적인 오류 메시지나 해결 방법을 제안하는 것은 피하세요.