Ввести данные в форму
Форма CRF (ИРК) собирается из секций и полей по дизайну исследования. Ввод устроен так, чтобы работать было быстро и с клавиатуры, а данные — невозможно потерять. Каждое сохранение попадает в аудиторский след.
Кому и когда
Заголовок раздела «Кому и когда»Координатор — координатор центра. Нужно право «первичный ввод значения»
(data.enter); для отметок «не выполнено» / «недоступно» — data.mark_not_done; чтобы
отметить форму заполненной — form.mark_complete. Если у формы ограничение ввода, нужно ещё
право form.entry.<метка>. Задача возникает после визита участника, когда на руках первичные
документы.
Перед началом
Заголовок раздела «Перед началом»- Визит есть в кейсбуке, а его дата записана — см. Открыть визит и форму в кейсбуке.
- Форма не под блокировкой.
- Под рукой первичные документы центра. Не вносите ФИО и другие прямые идентификаторы участника — ни в поля, ни в комментарии.
-
Откройте форму из кейсбука.
-
Вносите значения. Сохранение — по Ctrl+S, Enter переводит к следующему незаполненному полю. С первым значением форма переходит из Не начата в В работе.
-
Если значения нет по объективной причине, не оставляйте поле пустым: в меню поля выберите Отметить «не выполнено» / «недоступно»… и укажите причину.
-
Если сохранение отклонено проверкой (block), исправьте значение — сообщение правила объяснит, что не так. Если значение сохранилось, но открылся автоматический запрос, — значение спорное; см. Ответить на запрос.
-
Когда все нужные поля заполнены, нажмите Завершить заполнение — форма получит статус Заполнена, и её можно подписать. Если остались пустые обязательные поля, система перечислит их и предложит либо перейти к полю, либо Завершить всё равно.
Ввести серию строк из таблицы
Заголовок раздела «Ввести серию строк из таблицы»Вставка табличных данных удобна для повторяющихся строк (например, серии измерений): скопируйте диапазон из Excel или другой таблицы и вставьте в табличную секцию — строки заполнятся вниз. После вставки система сообщит, сколько ячеек сохранено. Если какая-то ячейка требует причину изменения, её нужно поправить вручную. Ctrl+D подставляет значение из строки выше.
Ввести частичную дату
Заголовок раздела «Ввести частичную дату»Не всегда известна полная дата. Поле даты принимает частичное значение в форматах ГГГГ, ГГГГ-ММ или ГГГГ-ММ-ДД — отдельными полями «Год», «Месяц», «День». Если формат неверен, подсказка объяснит ожидаемый вид.
Что произойдёт
Заголовок раздела «Что произойдёт»- Каждое сохранение пишется в аудиторский след: «до → после», автор, время (UTC).
- Поле получает статус Введено; осознанный пропуск — Не выполнено или Недоступно с причиной.
- Проверка-query не блокирует сохранение: спорное значение сохраняется, и на поле открывается автоматический запрос.
- Автозаполняемые поля пересчитываются сразу при вводе исходных.
- Завершить заполнение переводит форму в Заполнена — она попадает в очередь подписей исследователя.
Если не получилось
Заголовок раздела «Если не получилось»- Сохранение отклонено, поле подсвечено — сработала блокирующая проверка (block): значение заведомо невозможное (дата в будущем, вне диапазона). Ничего не сохранено — исправьте значение.
- «Форма заблокирована — изменение данных невозможно» — на форму наложена блокировка. Снять её может дата-менеджер.
- Открылся диалог «Причина изменения» — вы правите уже сохранённое значение; выберите причину. Без неё сохранение невозможно (сервер отвечает 422).
- Открылся диалог «Конфликт версий» — пока вы редактировали, значение изменил кто-то другой. В диалоге видно «Вы ввели», «Сейчас в базе», автора и время. Возьмите значение из базы или перезапишите своим (перезапись потребует причину изменения).
- «Нет подключения к сети — изменения не отправлены» — значение не записано. Дождитесь «Соединение восстановлено» и сохраните снова.
- Поле не даёт ввести значение, помечено «автозаполняется» — значение вычисляет система; правьте исходные поля.
- «Скрыто условием, но содержит значение» — поле скрылось после смены управляющего ответа. Нажмите Очистить (с причиной) или верните управляющий ответ.
- Форма в кейсбуке помечена «Только просмотр» — у формы ограничение ввода, а у вас нет
права
form.entry.<метка>. - Вместо значения «Скрыто» и замок — поле ослеплено, а у вас нет права видеть расслеплённые данные (см. «Подробнее»).
Подробнее
Заголовок раздела «Подробнее»Статусы поля
Заголовок раздела «Статусы поля»| Отметка | Что означает |
|---|---|
| Пусто | Значение ещё не вносилось |
| Введено | Значение внесено |
| Не выполнено | Процедура или измерение не выполнялись |
| Недоступно | Значение невозможно получить (утеряно или недоступно) |
«Не выполнено» и «Недоступно» — это не пустота
Заголовок раздела ««Не выполнено» и «Недоступно» — это не пустота»- Не выполнено — процедуру или измерение не проводили;
- Недоступно — значение получить невозможно (утеряно, недоступно).
Осознанное «Не выполнено» отличается от «Пусто»: правило проверки «поле обязательно» не будет срабатывать по нему запросом. Так система понимает, что пропуск намеренный, а не забытый. Вернуть поле к обычному вводу можно пунктом Вернуть к вводу.
Отметка требует причину. Если поле уже содержало значение, оно будет очищено (но останется в аудиторском следе), а покрывающие подписи — инвалидированы; система предупредит об этом заранее.
Проверки (edit checks)
Заголовок раздела «Проверки (edit checks)»При сохранении срабатывают правила проверки, заложенные в дизайн:
- block — значение заведомо невозможное (дата в будущем, вне диапазона): сохранение блокируется, поле подсвечивается, показывается сообщение правила;
- query — значение спорное: оно сохраняется, но система автоматически открывает запрос на это поле.
Порядок реакций при сохранении
Заголовок раздела «Порядок реакций при сохранении»Одно сохранение значения запускает фиксированную цепочку реакций — всегда в одном порядке и в одной транзакции. С точки зрения вводящего она выглядит так:
- Проверки до записи. Запись в заблокированную область невозможна; при правке уже сохранённого значения сначала запрашивается причина изменения. Блокирующая проверка (block) отклоняет заведомо невозможное значение целиком — ничего не сохраняется.
- Запись значения и сброс производных осей. SDV возвращается в ожидает, медицинский обзор — в Не просмотрено, форма — в В работе; покрывающие подписи инвалидируются, вычисляемые поля пересчитываются.
- Авто-запрос для спорного значения. Проверка-query не блокирует сохранение: возможное, но спорное значение сохраняется и сопровождается автоматическим запросом на это поле.
- Запись в аудиторский след. «До → после», автор, время (UTC) и, для правки, причина.
Полная цепочка из десяти шагов, включая служебные, которых вводящий не видит, разобрана в статье Аудиторский след; сводка осей статуса и их взаимных реакций — в Справочнике статусов.
Ввод с клавиатуры
Заголовок раздела «Ввод с клавиатуры»Форма спроектирована под быстрый ввод без мыши:
| Сочетание | Действие |
|---|---|
| Ctrl+S | Сохранить |
| Enter | Перейти к следующему незаполненному полю |
| Ctrl+D | Подставить значение из строки выше (fill-down) |
| Alt+Enter или Shift+F10 | Открыть меню поля |
| Вставка из таблицы | Данные из буфера (TSV) заполняют строки вниз |
Время и UTC
Заголовок раздела «Время и UTC»Дата-время хранится и отображается канонически в UTC — «как хранит сервер». В своём профиле можно задать таймзону представления: метки времени показываются в ней, но в базе и в аудите остаются в UTC.
Скрытые и автозаполняемые поля
Заголовок раздела «Скрытые и автозаполняемые поля»Дизайн может делать форму «живой» — часть полей появляется по условиям, часть заполняется системой:
- Поля с условием отображения показываются, только когда это уместно (например, «Если да — уточните» видно лишь при ответе «Да»). Скрытое поле не считается незаполненным и не мешает завершить форму. Если поле скрылось, а значение в нём уже было, система его не удаляет: вы увидите предупреждение «Скрыто условием, но содержит значение» и кнопку Очистить (с причиной) — либо очистите значение, либо верните управляющий ответ.
- Автозаполняемые поля (помечены «автозаполняется») система вычисляет сама из других полей — например ИМТ из роста и веса. Значение появляется мгновенно при вводе исходных; ручной ввод в такое поле закрыт. Правка исходных пересчитает результат — со сбросом SDV и инвалидацией подписей, покрывающих пересчитанное значение, как при любой правке данных.
Как это настраивается в дизайне — в статье Скип-логика и автозаполнение.
Слепые поля
Заголовок раздела «Слепые поля»Если поле ослеплено, его значение маскирует сервер, а не интерфейс: тот, у кого нет права
видеть расслеплённые данные (data.unblinded.read), видит «Скрыто» и значок замка. Значение
не приходит ни в интерфейс, ни в экспорт без этого права, а жеста «показать» нет. Держатель
права видит значение сразу; такое чтение записывается в аудиторский след.
При вводе слепого значения система попросит повторить его («Подтвердите ввод слепого значения»): после сохранения оно будет маскировано, и проверить его обычным чтением нельзя.
Потеря соединения
Заголовок раздела «Потеря соединения»Если связь с сервером пропадёт, интерфейс сообщит об этом сразу — уведомлением «Соединение потеряно — данные не отправляются», в любом месте приложения; когда связь вернётся, появится «Соединение восстановлено». Если конкретное сохранение не дошло до сервера, вы увидите «Нет подключения к сети — изменения не отправлены»: значение не записано. Так потеря не остаётся незамеченной.
Доступность
Заголовок раздела «Доступность»Экран формы полностью проходится с клавиатуры (Tab, Enter, горячие клавиши выше), поля и действия снабжены подписями для программ экранного доступа, а хлебные крошки всегда отвечают на вопрос «где я». Смена языка интерфейса меняет только подписи — данные и адреса остаются прежними.