Перейти к содержимому

Конструктор CRF

Черновик дизайна собирается визуально — в конструкторе CRF. Здесь вы создаёте формы, разделы и поля, настраиваете их свойства, заводите справочники значений (списки вариантов), правила проверки и автозаполнение — всё в одном экране, без файлов и ручной разметки.

0:000:00
Конструктор CRF: формы, поля с типами и логика формы — визуально, без кода.

Вход — со страницы Дизайн исследования. Если дизайна ещё нет, нажмите Новый черновик дизайна, а затем в зоне черновика — Открыть конструктор. Рядом кнопки Матрица SoA (привязка форм к визитам) и Превью (прожить форму до публикации). Опубликованную версию та же страница открывает кнопкой Посмотреть дизайн — конструктор запускается в режиме только чтения.

Экран конструктора разделён на три зоны — слева направо, от общего к частному:

Панель Что в ней
Слева — список Две вкладки — Формы и Списки — и поле Поиск по названию. На вкладке «Формы» — все формы черновика; клик выбирает форму для работы. На вкладке «Списки» — справочники значений.
По центру — форма Открытая форма в двух вкладках: Структура (разделы и поля в порядке отображения; у каждого поля виден его тип — Текст · Выбор из списка · Дата …) и Логика (проверки и автозаполнение формы).
Справа — инспектор свойств Свойства выбранного элемента — формы, раздела или поля. Всё, что определяет поведение элемента, настраивается здесь.

В шапке экрана — кнопка Проблемы (со счётчиком находок) и меню Ещё (), где собрано редкое и продвинутое: Экспорт JSON, Импорт JSON и Языки CRF.

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

Дерево дизайна: версия → формы → разделы → поля; списки вариантов подключаются к полям-выборам отдельно.
  1. На вкладке Формы нажмите Добавить форму и задайте название. OID (технический идентификатор) конструктор присвоит сам — вводить его вручную не нужно.

  2. Во вкладке Структура добавьте разделы — смысловые секции формы. Раздел можно пометить как журнал (повторяющийся раздел) — тогда при вводе он превратится в таблицу строк (например, серия измерений давления).

  3. Внутри разделов добавьте поля, выберите тип вопроса и настройте каждое в инспекторе справа.

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

Быстрый ввод: композер и вставка из буфера

Заголовок раздела «Быстрый ввод: композер и вставка из буфера»

Кнопка Добавить поле открывает строку-композер прямо в разделе: напечатайте название и нажмите Enter — поле создано, строка ждёт следующее. Тип задаётся командой в конце строки, юнит — скобками, варианты выбора — двоеточием:

Вес /число (кг)
Дата рождения
Курит /данет
Пол /выбор: Мужской, Женский

«Пол» сразу получит список вариантов — отдельно создавать его не нужно.

⌥Enter создаёт поле и открывает его свойства, Esc закрывает композер. Для формулы или тонкой настройки формата остаётся полный диалог — ссылка под строкой композера.

Вставка из буфера: скопируйте список вопросов из протокола или Excel и вставьте в композер — каждая строка станет полем по той же грамматике (с подтверждением, сколько и каких).

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

Удаление поля, раздела, формы или списка не спрашивает подтверждения — вместо этого тост «Удалено · Отменить» и ⌘Z возвращают удалённое со всеми свойствами, правилами и прежней позицией.

Саму форму тоже можно пометить как повторяющуюся (несколько экземпляров на визит или общий журнал) — так делаются log-формы для нежелательных явлений и сопутствующей терапии (см. Расписание активностей).

У поля в инспекторе настраиваются:

Свойство Что задаёт
Название Подпись поля, как её увидит координатор.
Раздел В каком разделе формы лежит поле; переключение переносит поле в другой раздел (то же делает перетаскивание).
Список вариантов Для типа «Выбор из списка» — из какого справочника выбирается значение.
Обязательное Пустое поле будет считаться недоработкой — система сама создаст проверку «поле не должно быть пустым».
Ед. изм. Единицы измерения — показываются рядом с полем.
Мин. / Макс. значение Границы допустимых значений — система сама создаст проверку диапазона.
Нарушение диапазона Мягкое (записать значение и открыть запрос) или жёсткое (отклонить значение) — для числа с заданным диапазоном.
Макс. длина Для текста — ограничение длины.
Условие отображения Выражение от других полей формы: истина — поле видно (см. Скип-логика и автозаполнение).

Мониторинг и слепота — Подлежит SDV, Требует медицинского кодирования и Слепое (значение маскируется) — собраны в свёрнутом блоке «Дополнительно». Свёрнутый блок «Технические детали» держит OID и полный Тип данных (Текст · Целое число · Число · Да/Нет · Дата · Неполная дата · Дата и время · Выбор из списка) — тип обычно задаётся «Типом вопроса» ещё при создании поля.

Если поле участвует в проверках или автозаполнении, инспектор показывает блок «Правила поля» со связанными правилами; клик по автозаполнению открывает его редактор.

Если поле выбрано целью автозаполнения, в инспекторе оно помечено признаком «автозаполняется»: значение рассчитывается автоматически по выражению, ручной ввод закрыт, а тип данных менять нельзя. Сами формулы задаются в блоке Автозаполнение вкладки Логика (см. Скип-логика и автозаполнение).

Вкладка Списки — справочники значений для полей типа «Выбор из списка»: список пар «код → подпись» (например, M → Мужской, F → Женский). Список создаётся один раз и подключается к любому числу полей. Коды внутри списка не должны повторяться — конструктор за этим следит. Готовый список можно дублировать через меню .

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

  • Проверки — правила контроля качества (block и query), которые срабатывают при вводе. Кнопка Добавить проверку; готовое правило можно изменить (клик по нему) или удалить. Подробно — в статье Правила проверки.
  • Автозаполнение — вычисляемые поля: система заполняет их сама из других полей. Кнопка Добавить автозаполнение; правило так же правится на месте. Подробно — в статье Скип-логика и автозаполнение.
  • Из свойств полей — проверки, которые ядро создаёт само из Обязательное и границ диапазона. Блок только для чтения: эти проверки не правят здесь, а меняют свойствами поля.

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

Кнопка Проблемы в шапке несёт счётчик находок (ошибки — красным) и открывает живой отчёт «Проблемы дизайна» — конструктор постоянно просматривает черновик и подсвечивает недоработки с разбивкой «Ошибки · Предупреждения · Инфо»:

  • в версии нет ни одной формы или ни одного визита;
  • форма пустая — в ней нет полей;
  • форма не привязана ни к одному визиту (вне SoA);
  • поле-выбор без списка вариантов;
  • минимум больше максимума;
  • визит без форм, список вариантов без вариантов, список вариантов не используется ни одним полем.

Каждый пункт ведёт к месту проблемы: находка внутри дизайна (форма, поле, список) открывает нужный элемент в конструкторе, а находка про визиты и расписание (форма вне SoA, визит без форм) ведёт на матрицу SoA — там она и чинится. Разбирать их лучше по ходу сборки: те же проверки встроены в отправку версии на ревью — «битый» дизайн дальше черновика не уйдёт.

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

  • Работают скип-логика (поля появляются и скрываются по условиям), автозаполнение (вычисляемые поля пересчитываются мгновенно) и проверки — сработавшие перечисляются под формой.
  • Ошибки форматов подсвечиваются как при реальном вводе.
  • Всё это — вхолостую: превью ничего не сохраняет, не создаёт запросов и не пишет в аудит.
  • Плашка над формой напоминает: «Это превью — данные не сохраняются». Введённое можно сбросить одной кнопкой и начать заново.
  • Журнал (повторяющийся раздел) показывается одной строкой (при реальном вводе строк будет несколько).

Многоязычный CRF нужен меньшинству исследований, поэтому по умолчанию его нет: у новой draft-версии список языков пуст, и название элемента и есть тот текст, который увидит центр. Отдельной ссылки «Переводы» в шапке при этом нет — она лишний раз намекала бы, что «здесь ещё есть работа».

Многоязычность включается по желанию: меню Ещё () → Языки CRF — отметьте языки, на которых собирают CRF, и сохраните. После этого в навигации дизайна появляется экран Переводы, а публикация версии начинает требовать утверждённый перевод каждого отмеченного языка (см. Публикация и запуск).

⌘K (или Ctrl+K) открывает палитру команд: создать форму, раздел или поле, вставить шаблон, открыть «Проблемы», аннотированный CRF или экспорт — не отрывая рук от клавиатуры. Начните печатать название поля, формы или списка — палитра найдёт его в любом месте версии и откроет с выделением.

Внизу инспектора живёт тред «Замечания ревью»: ревьюер оставляет замечание к выделенному элементу (или к версии в целом), не редактируя дизайн — комментирование работает и в режиме «только чтение», на черновике и на версии, отправленной на ревью. Автор отвечает правками и отмечает замечание решённым; решённые сереют и остаются историей ревью. Нерешённые замечания видны счётчиком на странице «Дизайн» и дают предупреждение рядом с кнопкой утверждения — предупреждение, а не запрет: решение остаётся за утверждающим.

Кнопки Экспорт JSON и Импорт JSON (меню Ещё) остаются для переноса дизайна между системами и исследованиями: экспортируйте собранный дизайн файлом, импортируйте готовый — и продолжайте дорабатывать его визуально. Основной путь сборки — конструктор; JSON — способ перевезти дизайн целиком.