Перейти к содержимому
РуководствоКоординатор

Ввести данные в форму

Форма CRF (ИРК) собирается из секций и полей по дизайну исследования. Ввод устроен так, чтобы работать было быстро и с клавиатуры, а данные — невозможно потерять. Каждое сохранение попадает в аудиторский след.

Координатор — координатор центра. Нужно право «первичный ввод значения» (data.enter); для отметок «не выполнено» / «недоступно» — data.mark_not_done; чтобы отметить форму заполненной — form.mark_complete. Если у формы ограничение ввода, нужно ещё право form.entry.<метка>. Задача возникает после визита участника, когда на руках первичные документы.

  • Визит есть в кейсбуке, а его дата записана — см. Открыть визит и форму в кейсбуке.
  • Форма не под блокировкой.
  • Под рукой первичные документы центра. Не вносите ФИО и другие прямые идентификаторы участника — ни в поля, ни в комментарии.
  1. Откройте форму из кейсбука.

  2. Вносите значения. Сохранение — по Ctrl+S, Enter переводит к следующему незаполненному полю. С первым значением форма переходит из Не начата в В работе.

  3. Если значения нет по объективной причине, не оставляйте поле пустым: в меню поля выберите Отметить «не выполнено» / «недоступно»… и укажите причину.

  4. Если сохранение отклонено проверкой (block), исправьте значение — сообщение правила объяснит, что не так. Если значение сохранилось, но открылся автоматический запрос, — значение спорное; см. Ответить на запрос.

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

0:000:00
Ввод значения, блокирующая проверка (edit check) и сохранение — с записью в аудиторский след

Вставка табличных данных удобна для повторяющихся строк (например, серии измерений): скопируйте диапазон из Excel или другой таблицы и вставьте в табличную секцию — строки заполнятся вниз. После вставки система сообщит, сколько ячеек сохранено. Если какая-то ячейка требует причину изменения, её нужно поправить вручную. Ctrl+D подставляет значение из строки выше.

Не всегда известна полная дата. Поле даты принимает частичное значение в форматах ГГГГ, ГГГГ-ММ или ГГГГ-ММ-ДД — отдельными полями «Год», «Месяц», «День». Если формат неверен, подсказка объяснит ожидаемый вид.

  • Каждое сохранение пишется в аудиторский след: «до → после», автор, время (UTC).
  • Поле получает статус Введено; осознанный пропуск — Не выполнено или Недоступно с причиной.
  • Проверка-query не блокирует сохранение: спорное значение сохраняется, и на поле открывается автоматический запрос.
  • Автозаполняемые поля пересчитываются сразу при вводе исходных.
  • Завершить заполнение переводит форму в Заполнена — она попадает в очередь подписей исследователя.
  • Сохранение отклонено, поле подсвечено — сработала блокирующая проверка (block): значение заведомо невозможное (дата в будущем, вне диапазона). Ничего не сохранено — исправьте значение.
  • «Форма заблокирована — изменение данных невозможно» — на форму наложена блокировка. Снять её может дата-менеджер.
  • Открылся диалог «Причина изменения» — вы правите уже сохранённое значение; выберите причину. Без неё сохранение невозможно (сервер отвечает 422).
  • Открылся диалог «Конфликт версий» — пока вы редактировали, значение изменил кто-то другой. В диалоге видно «Вы ввели», «Сейчас в базе», автора и время. Возьмите значение из базы или перезапишите своим (перезапись потребует причину изменения).
  • «Нет подключения к сети — изменения не отправлены» — значение не записано. Дождитесь «Соединение восстановлено» и сохраните снова.
  • Поле не даёт ввести значение, помечено «автозаполняется» — значение вычисляет система; правьте исходные поля.
  • «Скрыто условием, но содержит значение» — поле скрылось после смены управляющего ответа. Нажмите Очистить (с причиной) или верните управляющий ответ.
  • Форма в кейсбуке помечена «Только просмотр» — у формы ограничение ввода, а у вас нет права form.entry.<метка>.
  • Вместо значения «Скрыто» и замок — поле ослеплено, а у вас нет права видеть расслеплённые данные (см. «Подробнее»).
Отметка Что означает
Пусто Значение ещё не вносилось
Введено Значение внесено
Не выполнено Процедура или измерение не выполнялись
Недоступно Значение невозможно получить (утеряно или недоступно)

«Не выполнено» и «Недоступно» — это не пустота

Заголовок раздела ««Не выполнено» и «Недоступно» — это не пустота»
  • Не выполнено — процедуру или измерение не проводили;
  • Недоступно — значение получить невозможно (утеряно, недоступно).

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

Отметка требует причину. Если поле уже содержало значение, оно будет очищено (но останется в аудиторском следе), а покрывающие подписи — инвалидированы; система предупредит об этом заранее.

При сохранении срабатывают правила проверки, заложенные в дизайн:

  • block — значение заведомо невозможное (дата в будущем, вне диапазона): сохранение блокируется, поле подсвечивается, показывается сообщение правила;
  • query — значение спорное: оно сохраняется, но система автоматически открывает запрос на это поле.

Одно сохранение значения запускает фиксированную цепочку реакций — всегда в одном порядке и в одной транзакции. С точки зрения вводящего она выглядит так:

  1. Проверки до записи. Запись в заблокированную область невозможна; при правке уже сохранённого значения сначала запрашивается причина изменения. Блокирующая проверка (block) отклоняет заведомо невозможное значение целиком — ничего не сохраняется.
  2. Запись значения и сброс производных осей. SDV возвращается в ожидает, медицинский обзор — в Не просмотрено, форма — в В работе; покрывающие подписи инвалидируются, вычисляемые поля пересчитываются.
  3. Авто-запрос для спорного значения. Проверка-query не блокирует сохранение: возможное, но спорное значение сохраняется и сопровождается автоматическим запросом на это поле.
  4. Запись в аудиторский след. «До → после», автор, время (UTC) и, для правки, причина.

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

Форма спроектирована под быстрый ввод без мыши:

Сочетание Действие
Ctrl+S Сохранить
Enter Перейти к следующему незаполненному полю
Ctrl+D Подставить значение из строки выше (fill-down)
Alt+Enter или Shift+F10 Открыть меню поля
Вставка из таблицы Данные из буфера (TSV) заполняют строки вниз

Дата-время хранится и отображается канонически в UTC — «как хранит сервер». В своём профиле можно задать таймзону представления: метки времени показываются в ней, но в базе и в аудите остаются в UTC.

Дизайн может делать форму «живой» — часть полей появляется по условиям, часть заполняется системой:

  • Поля с условием отображения показываются, только когда это уместно (например, «Если да — уточните» видно лишь при ответе «Да»). Скрытое поле не считается незаполненным и не мешает завершить форму. Если поле скрылось, а значение в нём уже было, система его не удаляет: вы увидите предупреждение «Скрыто условием, но содержит значение» и кнопку Очистить (с причиной) — либо очистите значение, либо верните управляющий ответ.
  • Автозаполняемые поля (помечены «автозаполняется») система вычисляет сама из других полей — например ИМТ из роста и веса. Значение появляется мгновенно при вводе исходных; ручной ввод в такое поле закрыт. Правка исходных пересчитает результат — со сбросом SDV и инвалидацией подписей, покрывающих пересчитанное значение, как при любой правке данных.

Как это настраивается в дизайне — в статье Скип-логика и автозаполнение.

Если поле ослеплено, его значение маскирует сервер, а не интерфейс: тот, у кого нет права видеть расслеплённые данные (data.unblinded.read), видит «Скрыто» и значок замка. Значение не приходит ни в интерфейс, ни в экспорт без этого права, а жеста «показать» нет. Держатель права видит значение сразу; такое чтение записывается в аудиторский след.

При вводе слепого значения система попросит повторить его («Подтвердите ввод слепого значения»): после сохранения оно будет маскировано, и проверить его обычным чтением нельзя.

Если связь с сервером пропадёт, интерфейс сообщит об этом сразу — уведомлением «Соединение потеряно — данные не отправляются», в любом месте приложения; когда связь вернётся, появится «Соединение восстановлено». Если конкретное сохранение не дошло до сервера, вы увидите «Нет подключения к сети — изменения не отправлены»: значение не записано. Так потеря не остаётся незамеченной.

Экран формы полностью проходится с клавиатуры (Tab, Enter, горячие клавиши выше), поля и действия снабжены подписями для программ экранного доступа, а хлебные крошки всегда отвечают на вопрос «где я». Смена языка интерфейса меняет только подписи — данные и адреса остаются прежними.