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

Введение

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

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

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

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

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

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

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

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

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

В Android FHIR SDK доступны два варианта компоновки на выбор:

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

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

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

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

Какой вариант компоновки вам следует выбрать?

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

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

Длинный свиток

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

Пагинация

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Инструкции

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

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

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

Текст метки

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

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

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

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

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

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

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

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

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

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

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

Помощь

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

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

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

Сбор данных

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

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

Тип ввода данных логический выбор Один выбор Множественный выбор Открытый выбор Падать Выбор даты Текстовое поле Ползунок Автозаполнение
Выберите «Да» или «Нет».
Выберите один из вариантов
осторожность
Выберите несколько вариантов
осторожность
Текст
Даты
Числа
осторожность

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

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

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

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

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

Выбор одного варианта и логический выбор

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

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

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

Выбор даты

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

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

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

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

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

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

Множественный выбор

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

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

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

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

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

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

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

Ползунок

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

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

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

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

Проверка данных

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

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

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

Ошибки

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

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

Узнайте больше об ошибках на material.io

Сообщение об ошибке: «Обязательный вопрос. Выберите один».
Обязательно — Четко опишите, как исправить ошибку.
Объясните причину ошибки (обязательный вопрос) и что можно сделать для ее исправления (выберите один вариант).
Сообщение об ошибке: 'Error'.
Не пишите — пишите только «ошибка»
Сообщение об ошибке, содержащее только слово «ошибка», не помогает пользователям понять, как её исправить.
Дата рождения. Введена дата 22/33/4444. Сообщение об ошибке: Неверный формат даты. Формат должен быть: дд/мм/гггг.
Что нужно сделать: Объясните, как исправить ошибку, не перекладывая вину на других.
Пример: "Неверный формат даты. Формат должен быть dd/mm/yyyy".
Дата рождения. Введена дата 22/33/4444. Сообщение об ошибке: «Вы ввели дату в неправильном формате».
Не стоит обвинять пользователя.
Избегайте обвинений пользователя в сообщениях об ошибках, содержащих слово «вы». Пример: «Вы ввели дату в неправильном формате».
Сообщение об ошибке с иконкой на фоне красного текста, отображающее «Обязательный вопрос. Выберите один или несколько вариантов». Контейнеры с флажками имеют красную рамку.
Действуйте — Множество подсказок
Используйте цвет, иконки и текст, чтобы сообщить пользователям об ошибке.
Нет сообщения об ошибке или значка. Контейнеры с флажками имеют красную рамку, которая является единственным индикатором ошибки.
Не стоит полагаться только на цвет.
Для оказания помощи людям с распространенными нарушениями зрения, такими как красно-зеленая цветовая слепота, следует избегать использования только цвета для обозначения ошибки.
Контейнеры с флажками имеют красную рамку, и за каждым контейнером отображается один значок ошибки. Видны 3 значка.
Не следует злоупотреблять значками.
Зачастую достаточно одной иконки. Не стоит злоупотреблять использованием иконок для обозначения ошибки.