Рекомендации по проектированию для сбора данных

Введение

Сотрудник общественного здравоохранения смотрит на мобильное устройство.

Заполнение анкет — основная задача для большинства работников здравоохранения, использующих мобильные приложения для здоровья.

Ввод данных может быть затруднен и случаются ошибки. Наша цель с помощью библиотеки структурированного сбора данных (SDC) и рекомендаций по проектированию — дать вам возможность улучшить пользовательский опыт ввода данных и качество собранных данных.

В этом разделе рассматриваются четыре темы:

  1. Макет и навигация
  2. Вопросы и инструкции
  3. Сбор данных
  4. Проверка данных и сообщения об ошибках

Макет и навигация

Стилизованный вид длинной прокрутки и макетов с разбивкой на страницы.

Длинная прокрутка и постраничный макет

Сравнение макетов с длинной прокруткой и постраничной разбивкой. Длинная прокрутка содержит 3 вопроса на одной странице, а постраничная — один вопрос.
Макет с длинной прокруткой (слева) и макет с разбивкой на страницы (справа).

Android FHIR SDK предлагает два варианта макета на выбор:

  1. Длинная прокрутка (по умолчанию)
  2. с разбивкой на страницы

Анкета с длинной прокруткой отображает все вопросы на одной странице, и пользователи переходят к каждому вопросу, прокручивая ее.

Анкета с постраничной разбивкой отображает содержимое на отдельных страницах. Связанные вопросы или поля ввода можно сгруппировать на одной странице. Кнопки «Назад» и «Далее» закреплены внизу страницы для перемещения между страницами.

Узнайте, как создать анкету с постраничной разбивкой на Github.

Какую планировку выбрать?

Каждый вариант планировки имеет свои преимущества и недостатки. Ниже приведены некоторые атрибуты каждого типа макета, которые следует учитывать при выборе используемого макета.

Длинная прокрутка с разбивкой на страницы
Скорость навигации Быстрее перемещаться Медленнее навигация
Точность навигации Менее точная навигация Более точная навигация
Перефокусируйтесь на вопрос после переключения задачи Трудно переориентироваться после прерывания Легче переориентироваться после прерывания
Заполнение цифровой анкеты после визита (копирование с бумаги) Легче копировать с бумаги Усложняется копирование с бумаги
Маленькие экраны Хуже для маленьких экранов Лучше для маленьких экранов
Доступность Хуже с точки зрения доступности. Трудно ориентироваться. Лучше для доступности. Отдельные экраны, которые можно обрабатывать с помощью программ чтения с экрана, преобразования текста в речь и других технологий.
Место для инструкций и пояснений Хуже для указаний и инструкций Лучше для руководства и инструкций

Длинная прокрутка

Анкета с номерами, указанными перед названием вопроса.
Делать — количество вопросов
Нумеруйте вопросы, чтобы было легче ориентироваться в макете одной страницы.
Сравнение размера шрифта заголовка вопроса. Длинная прокрутка составляет 16 пикселей. Разбивка на страницы составляет 28 пикселей.
Сделать — настроить размер шрифта
Уменьшите размер шрифта заголовков вопросов при использовании длинной прокрутки, чтобы на экране было видно больше контента. Пример: длина длинной прокрутки составляет 16 пикселей. Разбивка на страницы составляет 28 пикселей.

Пагинация

Вопрос с постраничной разбивкой «В каком штате они живут?» с раскрывающимся выбором.
Делать — один вопрос на странице
Клавиатуры, раскрывающиеся списки и другие компоненты занимают место на странице, поэтому старайтесь размещать по одному вопросу на странице.
Поля адреса с разбивкой на страницы, нижнее поле которых не отображается на экране.
Не делайте этого — скрывайте контент ниже сгиба.
Содержимое должно быть видно над сгибом.
Несколько текстовых полей сгруппированы в один вопрос. Название вопроса — это альтернативное контактное лицо с именем, родством и номером телефона в качестве полей ввода.
Do — сгруппируйте связанный контент в один вопрос.
Пример. Все эти три текстовых поля относятся к альтернативной информации о контактном лице, поэтому они сгруппированы на одной странице.
Несвязанные вопросы на одной странице. Первый вопрос — это страховое покрытие, а второй вопрос — предшествующие состояния здоровья.
Не делайте этого — группируйте несвязанный контент.
Избегайте группировки несвязанного контента на одной странице, чтобы избежать путаницы.

Индикатор прогресса

Индикатор прогресса отражает прогресс, достигнутый в вопроснике.

Включите индикатор прогресса в длинные анкеты, чтобы помочь пользователям ориентироваться и видеть прогресс. Индикаторы прогресса показывают местоположение в анкете и то, сколько еще осталось заполнить.

Индикатор прогресса расположен вверху, под названием анкеты.
Do — макет с длинной прокруткой
Расположите сверху над вопросом и привязкой, чтобы он всегда был виден даже при прокрутке.
Индикатор прогресса расположен внизу, над кнопками навигации.
Do — только разбивка на страницы
Вместо этого можно расположить внизу, над кнопками «Назад» и «Далее». С помощью этого макета вы также можете отобразить, на какой странице находится пользователь.

Кнопки навигации (назад, далее) закреплены внизу анкеты. При бесконечной прокрутке или на последней странице анкеты, разбитой на страницы, следующая кнопка называется «Отправить».

Держите кнопки в одном и том же месте и всегда используйте активные кнопки с пометкой их действия, например «Назад» и «Далее».

Кнопки навигации активны. Кнопка «Далее» с синей заливкой.
Сделать — Активные кнопки
Всегда отображайте активные кнопки, даже если формы не заполнены. При нажатии «Далее» отобразится всплывающее диалоговое окно с инструкциями по заполнению недостающих полей или ошибкам проверки.
Кнопка «Далее» неактивна. Кнопка «Далее» с серой заливкой.
Не делать — неактивные кнопки
Неактивные кнопки мешают пользователям понять, как решить проблему.
Кнопка «Далее» имеет только значок стрелки и не имеет текстового описания.
Не делать — кнопки только со значками
Избегайте кнопок, состоящих только из значков. Всегда маркируйте кнопки описательными действиями.

Вопросы и инструкции

Аннотированная анкета с разбивкой по страницам, показывающая компоненты вопросов и инструкций.
Обзор 9 компонентов, рассматриваемых в этом разделе, и того, как эти компоненты объединяются в разбитом на страницы вопроснике.
  1. Название анкеты.
  2. Индикатор прогресса.
  3. Заголовок группы.
  4. Название вопроса.
  5. Инструкции.
  6. Поле ввода.
  7. Формат входа.
  8. Обязательные поля.
  9. Помощь.

Заголовок группы

Заголовок группы – это текстовый заголовок, который отображается над заголовками вопросов.

Используйте заголовок группы , чтобы сгруппировать похожие вопросы. Используйте заголовок группы только тогда, когда он добавляет полезную информацию.

Заголовок группы — «История пациента».
Do — Короткие названия
Используйте короткое название, чтобы сгруппировать похожие вопросы. Пример: все вопросы, связанные с историей пациента, сгруппированы.
Шапка группы — это личная информация и информация об образе жизни.
Не надо — длинные названия
Избегайте сложных заголовков или длинных заголовков, выходящих за одну строку.

Название вопроса

Название вопроса кратко описывает, какая информация запрашивается. Заголовки вопросов имеют самый крупный размер шрифта на странице, чтобы привлечь внимание пользователя к вопросу.

Каждая страница или вопрос должен иметь заголовок вопроса . Делайте названия вопросов короткими или формулируйте их как вопрос.

Название вопроса – дата рождения.
Do — Короткое название вопроса
Короткие заголовки облегчают чтение пользователям.
Название вопроса: Какова ваша дата рождения? В каком городе вы родились?
Не надо — длинный заголовок вопроса
Избегайте очень длинных вопросов или объединения двух вопросов вместе.
Нет названия вопроса.
Не надо — без названия вопроса
Всегда включайте заголовок вопроса, чтобы пользователям было легче понять, какую информацию им нужно ввести.

инструкции

Инструкции — это необязательное текстовое поле, отображаемое под заголовком вопроса.

Используйте поле инструкций , чтобы объяснить соответствующие инструкции, например, требуется ли вопрос, сколько вариантов выбора можно сделать (один или несколько) и что следует делать пользователям, если они не могут заполнить всю информацию или ответить на вопрос.

Инструкции: Выберите один. Обязательный вопрос.
Сделайте — объясните, что требуется
Используйте поле инструкций, чтобы сообщить, требуется ли вопрос и сколько вариантов можно сделать.
Инструкции: Если точная дата рождения неизвестна, установите флажок «Неизвестная дата рождения».
Do — Объясните, что делать в крайних случаях.
Используйте инструкции, чтобы пользователи знали, что делать, если они столкнулись с ситуацией, когда не могут заполнить все поля.
Инструкции: Альтернативный контакт будет использоваться в случае чрезвычайной ситуации и может быть ближайшим родственником (например, партнером, матерью, братом или сестрой).
Делайте — объясните контекст или определения.
Используйте инструкции, чтобы предоставить дополнительный контекст или определения терминов, используемых в названии вопроса.

Текст метки

Текст метки информирует пользователей о том, какая информация запрашивается для текстового поля или раскрывающегося списка. Когда поле выбрано, текст метки перемещается из середины текстового поля вверх.

Каждое текстовое поле и раскрывающийся список должны иметь метку. Текст этикетки должен быть коротким, четким и полностью видимым.

Текст этикетки: Имя.
Делай — будь краток
Текст этикетки должен быть коротким, четким и полностью видимым.
Текст метки: введите имя клиента.
Не надо — будьте многословны
Текст метки не должен быть слишком длинным, обрезанным или занимать несколько строк.
Нет текста метки.
Не делайте этого — без ярлыка
Всегда маркируйте текстовое поле, чтобы пользователи знали, какую информацию вводить.

Формат записи

EntryFormat отображается под текстовым полем, чтобы информировать пользователей о том, в каком конкретном формате необходимо ввести данные. Сообщения об ошибках будут отображаться в поле EntryFormat и заменять существующие инструкции EntryFormat.

Используйте EntryFormat для дат, номеров телефонов, единиц измерения и целых чисел.

Формат даты: дд/мм/гггг.
Делайте — используйте EntryFormat
Покажите формат даты под полем и включите описательную фразу.
Нет формата даты.
Не делайте этого — нет EntryFormat
Неотображение форматов данных может привести к неправильному вводу данных.
Под текстовым полем «Частота пульса» отображается формат ввода: Нормальный диапазон: 60–100 ударов в минуту. Под текстовым полем «Насыщение крови кислородом» отображается формат ввода: Нормальный диапазон: 95–100%.
Do — Показать нормальный диапазон
При вводе медицинских диапазонов приведите примеры нормального диапазона. Это может помочь пользователям обнаружить ошибки или числа, выходящие за пределы допустимого диапазона.

Обязательные поля

Обязательные поля указывают, что пользователь должен заполнить поле и не может продвигаться дальше, пока поле не будет заполнено.

Чтобы указать, что поле является обязательным, поставьте звездочку (*) в конце заголовка вопроса. Включите «обязательный вопрос» в поле инструкций, поскольку не всем понятно, что обозначает звездочка (*). Если заголовка вопроса нет, отобразите звездочку (*) в тексте метки.

Звездочка после названия вопроса и обязательного вопроса в инструкциях ниже.
Сделать — Письменное объяснение
Отметьте обязательное поле звездочкой (*) и включите письменные инструкции с указанием «обязательного вопроса». Многие не знакомы с тем, что означает звездочка (*), и им было бы полезно получить объяснение.
Звездочка после названия вопроса, но нет письменного описания, объясняющего, что означает звездочка.
Не делайте этого — без объяснений
Не показывайте только звездочку (*) без письменного описания ее значения.
Звездочка после названия вопроса и обязательный вопрос показаны в инструкциях ниже.
Сделайте — локализуйте терминологию
Используйте термины, которые наиболее знакомы вашим пользователям. Пример: «Обязательный» может быть более знакомым термином и использоваться в некоторых странах вместо «Обязательного».
Нет звездочки. Необязательный вопрос указан в инструкции.
Do — вместо этого укажите необязательные вопросы.
Если большинство вопросов являются обязательными, укажите, какие из них являются необязательными.
Звездочка после текста метки. Обязательный вопрос отображается в поле «Формат ввода».
Do — вместо этого показывать звездочку в тексте метки.
Если заголовка вопроса нет, поставьте звездочку в тексте метки.

Помощь

Рядом с названием вопроса отображается значок справки . При нажатии на значок появляется окно справочной информации с дополнительной информацией. Повторное нажатие на значок закроет окно справочной информации.

Это необязательный компонент. Используйте только тогда, когда это полезно для отображения дополнительной информации, которая не обязательно должна быть всегда видна.

Справка: Вакцину против сезонного гриппа также называют иммунизацией против гриппа.
Do — Показать дополнительную информацию в окне справки.
Используйте справку для получения информации, которую пользователям может потребоваться просмотреть только один раз или которая предоставляет дополнительную информацию.
Справка: выберите один.
Не делайте этого: скройте инструкции в окне справки.
Не скрывайте инструкции внутри окна справки, которые должны быть видны всем.

Сбор данных

Восемь компонентов сбора данных; текстовые поля, выбор даты, раскрывающийся список, ползунок, одиночный выбор, логический выбор, множественный выбор и открытый выбор.
Восемь основных компонентов сбора данных в Android FHIR SDK.

Когда какой компонент использовать?

Тип ввода данных Логический выбор Единый выбор Большой выбор Открытый выбор Падать Выбор даты Текстовое поле Слайдер Автозаполнение
Выберите Да или Нет
Выберите один вариант
осторожность
Выберите несколько вариантов
осторожность
Текст
Даты
Числа
осторожность

Текстовые поля

Текстовые поля указывают, что пользователи могут вводить информацию.

Используйте текстовые поля , когда кому-то нужно ввести в анкету текст, например имя, номер телефона или адрес. Ограничьте ввод данных, требующий ввода текста (с клавиатуры), когда вместо этого можно использовать предварительно заполненный выбор (множественный выбор или одиночный выбор).

Узнайте больше о текстовых полях на сайте Material.io.

Название вопроса: зарегистрировать нового человека. Текстовое поле 1: имя. Текстовое поле 2: номер телефона.
Do — используйте текстовые поля для уникального ввода данных.
Используйте текстовые поля для ввода данных, требующих ввода уникальных слов или цифр.
Название вопроса: причина визита? Текстовое поле: опишите причину
Не делайте этого: ограничьте использование свободных текстовых ответов.
Избегайте использования произвольных текстовых ответов, если вместо этого это может быть выбор с множественным выбором, раскрывающимся списком или одним выбором.

Одиночный выбор и логический выбор

Одиночный выбор и логический выбор — это элементы управления выбором, которые отображаются в виде переключателей, когда пользователям предлагается выбрать один вариант из вариантов.

Используйте логический выбор , когда есть двоичный выбор «Да» или «Нет». В противном случае используйте компонент с одним выбором . Если в списке более 10 вариантов, используйте раскрывающийся список вместо одного варианта . Раскрывающийся список более плотный и в нем легче ориентироваться, когда есть много вариантов.

Название вопроса: это их первый визит? Логические варианты выбора: да и нет.
Do — логический выбор
Используйте логический выбор, когда доступны варианты «да» и «нет».
Название вопроса: Каков наивысший достигнутый уровень образования? Варианты единственного выбора: 1. Не знает 2. Нет образования 3. начальная школа 4. средняя школа.
Делать — единственный выбор
Используйте единый выбор, когда пользователи могут выбрать один вариант из списка.
Список с одним выбором, показывающий очень длинный список штатов. Видны состояния 23-27.
Не делайте этого — очень длинные списки
Избегайте единственного выбора для очень длинных списков (10+). Вместо этого используйте раскрывающийся список.

Выбор даты

Средство выбора даты позволяет пользователям вводить даты как с помощью средства выбора даты в календаре, так и с клавиатуры. Выбор даты календаря активируется при нажатии значка календаря.

Используйте средство выбора календарной даты только для дат, близких к сегодняшней дате, например последней менструации или следующего посещения. В противном случае отдайте предпочтение вводу с клавиатуры таких дат, как дата рождения.

Дата рождения. Ввод даты с клавиатуры активен. Значок календаря в правой части текстового поля. Флажок установлен, что указывает на то, что дата является приблизительной.
Do — Оба варианта входа
Для ввода дат включите как ввод с клавиатуры (нажатие на текстовое поле), так и выбор даты в календаре (нажатие на значок).
Календарный вид выбора даты.
Не делайте этого — избегайте только календаря
Не включайте средство выбора календарной даты в качестве единственного метода ввода дат рождения. Ориентироваться по месяцу и году сложно.

Выпадающие меню позволяют пользователям выбирать из нескольких вариантов. Когда пользователь начинает печатать, параметры фильтруются на основе введенных данных. Это может помочь пользователям быстро найти нужный вариант из большого списка.

Выпадающие меню — отличная альтернатива одному выбору , когда список опций очень длинный (более 10 опций), поскольку они занимают меньше места.

Раскрывающийся список штатов с указанием штатов A–F.
Do — используйте для длинных списков.
Используйте раскрывающийся список при выборе одного параметра в очень длинном списке параметров, например при выборе штата или города.
Раскрывающийся список возраста с номерами от первого до шестого.
Не делайте этого — когда печатать легко
Не используйте раскрывающийся список, когда было бы проще вводить контент, а не прокручивать все параметры, например возраст.

Большой выбор

Множественный выбор — это элемент управления выбором, который отображается в виде флажков, когда пользователи могут создавать несколько разделов из списка параметров.

Используйте множественный выбор , когда пользователи могут выбирать только из заранее определенного списка вариантов. Если пользователи также могут добавить свой собственный бесплатный ответ, вместо этого используйте компонент открытого выбора . В поле инструкций напишите «Выберите все подходящие», чтобы пользователи знали, что могут выбрать несколько вариантов.

Название вопроса: Какова цель сегодняшнего визита? Показаны четыре флажка и опции, по одному в каждой строке.
Do — один выбор в строке
Внешний вид по умолчанию представляет собой контейнер вокруг флажков, чтобы сделать доступную для касания область очевидной.
Название вопроса: Какова цель сегодняшнего визита. Показаны шесть флажков и опций, по два в каждой строке. Для двух вариантов часть текста обрезана.
Не делать — несколько вариантов в строке
Избегайте отображения нескольких вариантов в строке: из-за различий в размере экрана телефона и размере текста текст может быть обрезан.

Открытый выбор

Открытый выбор аналогичен множественному выбору, но добавляет пользователю возможность выбрать «Другое» и ввести произвольный текст.

Используйте открытый выбор, когда есть заранее заданный список опций, но пользователи также могут добавлять дополнительные опции. Используйте открытый выбор , когда известно большинство вариантов, но вы предвидите, что некоторые пользователи выберут «Другое» , поскольку ни один из предложенных вариантов не подходит.

Выбрано другое. Текстовое поле для добавления произвольного текста активно. Клавиатура видна.
Do — используйте для более точного сбора данных.
Используйте, когда важно собирать точные данные и ни один из предопределенных параметров не применяется. Пример: оккупация.
Название вопроса: Есть что еще добавить? Три варианта: Да, Нет и Другое. Выбрано другое. Текстовое поле для добавления произвольного текста активно.
Не делать — если все ответы будут другими
Избегайте использования, если для большинства ответов потребуется выбрать «Другое» . В этом случае вместо этого используйте текстовое поле или поле абзаца.

Слайдер

Ползунки позволяют пользователям делать выбор из диапазона значений. Ползунок в Android FHIR SDK является дискретным. Дискретный ползунок позволяет пользователям выбирать конкретное значение из заранее определенного диапазона. Для обозначения доступных значений можно использовать деления. Избегайте использования ползунка для ввода числовых данных. Вместо этого используйте текстовое поле или раскрывающееся меню.

Узнайте больше о слайдерах на сайте Material.io.

Название вопроса: сколько детей у клиента? Ползунок с цифрой четыре выбран.
Не делайте этого — используйте ползунок для определенных чисел.
Не используйте ползунок для определенных значений, если существует большой диапазон. Вместо этого используйте текстовые поля для ввода с клавиатуры.

Проверка данных и ошибки

Валидация данных

Проверка данных ограничивает тип данных или значений, которые можно ввести в текстовое поле. Проверка данных может улучшить качество собираемых данных.

Используйте поле EntryFormat для отображения ограничений формата или значения. Покажите значимые сообщения об ошибках проверки данных сразу же, чтобы пользователи могли исправить ошибку.

Текст метки: номер телефона. Формат ввода: 8 цифр.
Do — Показать ограничения проверки
Покажите ограничения проверки данных заранее, чтобы пользователи знали, как вводить данные.
Текст метки: номер телефона. Формат записи: нет.
Не делать — скрыть ограничения проверки.
Если не указать, сколько цифр должно быть в номере телефона, пользователи могут столкнуться с ошибкой, и ее завершение займет больше времени.
Введенная дата: 33.22.4444. Сообщение об ошибке: Неправильный формат даты. Формат должен быть: дд/мм/гггг.
Do — Немедленно показать ошибки проверки.
Покажите значимые ошибки проверки данных сразу после заполнения поля. Сообщения об ошибках заменяют существующий текст формата записи.
Диалог. Исправьте следующие ошибки. 1. номер телефона. 2. дата рождения. Кнопка 1: все равно отправить. Кнопка 2: исправить ошибки.
Не делайте этого — подождите, пока после отправки
Не ждите, пока пользователь нажмет «Отправить», чтобы впервые отобразить ошибки проверки.

Ошибки

Сообщения об ошибках предупреждают пользователей, когда что-то идет не так, и сообщают, как устранить проблему.

Используйте цвет, значки и текст, чтобы сообщить об ошибках.

Узнайте больше о сообщениях об ошибках на сайте Material.io.

Сообщение об ошибке: «Обязательный вопрос. Выбери один.'
Сделайте — четко опишите, как исправить ошибку.
Объясните, почему возникла ошибка (обязательный вопрос) и что можно сделать, чтобы ее исправить (выберите один вариант).
Сообщение об ошибке: «Ошибка».
Не надо — Пишите только «ошибка».
Сообщение об ошибке, в котором говорится только «ошибка», не помогает пользователям узнать, как исправить ошибку.
Дата рождения. Введенная дата: 33.22.4444. Сообщение об ошибке: Неправильный формат даты. Формат должен быть: дд/мм/гггг.
Do — Объясните, как исправить ошибку без обвинений.
Пример: «Неверный формат даты. Формат должен быть дд/мм/гггг».
Дата рождения. Введенная дата: 33.22.4444. Сообщение об ошибке: «Вы ввели неверный формат даты».
Не делайте этого — обвиняйте пользователя
Не обвиняйте пользователя в сообщениях об ошибках, содержащих слово «вы». Пример: «Вы ввели неверный формат даты».
Сообщение об ошибке со значком перед красным текстом, отображающим «Обязательный вопрос». Выберите один или несколько вариантов.' Контейнеры флажков имеют красный контур.
Do — несколько сигналов
Используйте цвет, значки и текст, чтобы сообщить пользователям об ошибке.
Нет сообщения об ошибке или значка. Контейнеры флажков имеют красный контур, который является единственным индикатором наличия ошибки.
Не делайте этого — полагайтесь только на цвет
Чтобы поддержать распространенные нарушения зрения, такие как красно-зеленая цветовая слепота, не полагайтесь только на цвет для сообщения об ошибке.
Контейнеры флажков имеют красный контур и один значок ошибки, отображаемый позади каждого контейнера. Видны 3 значка.
Не злоупотребляйте значками
Одной иконки часто бывает достаточно. Не переусердствуйте с использованием значков для сообщения об ошибке.