Введение

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

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

В Android FHIR SDK доступны два варианта компоновки на выбор:
- Длинная прокрутка (по умолчанию)
- Постраничная разбивка
Длинная анкета с прокруткой отображает все вопросы на одной странице, и пользователи переходят к каждому вопросу, прокручивая страницу.
Анкета с постраничной разбивкой отображает содержимое на отдельных страницах. Связанные вопросы или поля ввода могут быть сгруппированы на одной странице. Кнопки «Назад» и «Далее» расположены внизу страницы для навигации между страницами.
Узнайте, как создать анкету с постраничной навигацией на GitHub.
Какой вариант компоновки вам следует выбрать?
Каждый вариант макета имеет свои преимущества и недостатки. Ниже приведены некоторые характеристики каждого типа макета, которые следует учитывать при выборе подходящего варианта.
| Длинный свиток | Постраничная разбивка | |
|---|---|---|
| Скорость навигации | Быстрее навигация | Навигация замедляется |
| Точность навигации | Менее точная навигация | Более точная навигация |
| После переключения на другую задачу снова сосредоточьтесь на вопросе. | После прерывания сложно вернуться в исходное положение. | Легче переориентироваться после прерывания |
| Заполнение электронной анкеты после визита (копирование с бумажной версии) | Удобнее при копировании с бумаги | Копирование с бумаги становится сложнее. |
| Маленькие экраны | : Хуже для маленьких экранов. | Лучше подходит для маленьких экранов |
| Доступность | Хуже для доступности. Сложно ориентироваться. | Лучше для обеспечения доступности. Отдельные экраны, которые могут обрабатываться программами чтения с экрана, преобразованием текста в речь и другими технологиями. |
| Место для инструкций и пояснений | : Хуже для руководства и инструкций. | Лучше для руководства и инструкций |
Длинный свиток

Для удобства навигации по одностраничному макету пронумеруйте вопросы.

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

Клавиатуры, выпадающие списки и другие элементы занимают место на странице, поэтому старайтесь размещать на странице только один вопрос.

Содержимое должно быть видно в верхней части экрана.

Пример: Все три текстовых поля относятся к дополнительной информации о контактном лице, поэтому они сгруппированы на одной странице.

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

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

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

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

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

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

- Название анкеты.
- Индикатор выполнения.
- Заголовок группы.
- Заголовок вопроса.
- Инструкции.
- Поле ввода.
- Формат заявки.
- Обязательные поля.
- Помощь.
Заголовок группы
Заголовок группы — это текстовый заголовок, отображаемый над заголовками вопросов.
Используйте заголовок группы для объединения похожих вопросов. Используйте заголовок группы только в том случае, если он содержит полезную информацию.

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

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

Короткие заголовки облегчают чтение для пользователей.

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

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

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

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

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

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

Текст подписи не должен быть слишком длинным, усеченным или занимать несколько строк.

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

Под полем укажите формат даты и добавьте описательную фразу.

Отсутствие отображения форматов данных может привести к неправильному вводу данных.

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

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

Избегайте отображения только звездочки (*) без какого-либо письменного описания ее значения.

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

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

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

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

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

Когда следует использовать тот или иной компонент?
| Тип ввода данных | логический выбор | Один выбор | Множественный выбор | Открытый выбор | Падать | Выбор даты | Текстовое поле | Ползунок | Автозаполнение |
|---|---|---|---|---|---|---|---|---|---|
| Выберите «Да» или «Нет». | |||||||||
| Выберите один из вариантов | осторожность | ||||||||
| Выберите несколько вариантов | осторожность | ||||||||
| Текст | |||||||||
| Даты | |||||||||
| Числа | осторожность |
Текстовые поля
Текстовые поля указывают на то, что пользователи могут вводить информацию.
Используйте текстовые поля , когда необходимо ввести текст в анкету, например, имя, номер телефона или адрес. Ограничьте ввод данных, требующих ввода текста (с клавиатуры), если вместо этого можно использовать предварительно заполненные поля (множественный или одиночный выбор).
Узнайте больше о текстовых полях на material.io

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

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

Используйте логический выбор, когда варианты ответа — «да» и «нет».

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

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

Для ввода дат включите как ввод с клавиатуры (нажав на текстовое поле), так и выбор даты в календаре (нажав на значок).

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

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

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

По умолчанию флажки отображаются в виде контейнера, чтобы сделать область для нажатия очевидной.

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

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

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

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

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

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

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

Не ждите, пока пользователь нажмет кнопку «Отправить», чтобы впервые отобразить ошибки валидации.
Ошибки
Сообщения об ошибках оповещают пользователей о возникших проблемах и указывают, как их устранить.
Используйте цвет, иконографию и текст для обозначения ошибок.
Узнайте больше об ошибках на material.io

Объясните причину ошибки (обязательный вопрос) и что можно сделать для ее исправления (выберите один вариант).

Сообщение об ошибке, содержащее только слово «ошибка», не помогает пользователям понять, как её исправить.

Пример: "Неверный формат даты. Формат должен быть dd/mm/yyyy".

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

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

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

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