Перейти к содержанию

Доска FigJam

Точное описание того, что должно быть на доске в Figma/FigJam: раскладка зон, содержимое каждого фрейма, цветовые соглашения и порядок сборки.

Два способа наполнения:

  1. Импорт CSVfigjam/board-import.csv создаёт все стикеры разом (см. «Импорт» ниже).
  2. Ручная сборка — по описанию фреймов; диаграммы вставляются как Mermaid-блоки или изображения.

Цветовые соглашения

Единые по всей доске. Цвет несёт смысл — не декоративен.

Цвет Значение Пример
🔵 Синий Компонент разрабатываемой системы fhir-gateway, triage-core
🟡 Жёлтый Внешняя система или вендор МРМ СМП, АИС «Медик», ЦИСЗ, серверы координат
🟢 Зелёный Данные: таблица, ресурс FHIR, поле appeals, Observation, п. 21.4
🟠 Оранжевый Задача backlog E2-7, E8-14
🔴 Красный Риск, открытый вопрос, блокер R-4, «пороги не утверждены»
🟣 Фиолетовый Нормативное требование Приказ ОАЦ № 66, Пост. МЗ № 62
Серый Оборудование, аппаратная позиция Прикроватный блок ×560

Красный цвет резервируется под риски

Соблазн использовать красный для «красных пациентов» в зоне ТРИАЖ велик, но он сломает читаемость доски: на общем плане невозможно будет отличить риск от элемента бизнес-логики. Цвета сортировки показываются внутри фрейма ТРИАЖ отдельной легендой, а не общей палитрой стикеров.

Раскладка холста

Семь зон слева направо, сверху вниз. Ориентировочные размеры фреймов — 1600 × 1200 px, между зонами — 400 px.

flowchart TB
  subgraph ROW1["Ряд 1 — Что и зачем"]
    Z1["ЗОНА A<br/>Паспорт и цели"] --- Z2["ЗОНА B<br/>Состав ПАК"] --- Z3["ЗОНА C<br/>Нормативная база"]
  end
  subgraph ROW2["Ряд 2 — Как устроено"]
    Z4["ЗОНА D<br/>Архитектура C4"] --- Z5["ЗОНА E<br/>Мультипровайдерность"] --- Z6["ЗОНА F<br/>Аппаратный комплекс"]
  end
  subgraph ROW3["Ряд 3 — Что течёт"]
    Z7["ЗОНА G<br/>Контракты FHIR"] --- Z8["ЗОНА H<br/>Набор данных СМП"] --- Z9["ЗОНА I<br/>Схема БД"]
  end
  subgraph ROW4["Ряд 4 — Как работает"]
    Z10["ЗОНА J<br/>Жизненный цикл"] --- Z11["ЗОНА K<br/>Логика ТРИАЖ"]
  end
  subgraph ROW5["Ряд 5 — Как делаем"]
    Z13["ЗОНА M<br/>Backlog"] --- Z14["ЗОНА N<br/>Дорожная карта"] --- Z15["ЗОНА O<br/>Риски"]
  end
  ROW1 --> ROW2 --> ROW3 --> ROW4 --> ROW5

ЗОНА A — Паспорт и цели

Фрейм A1 — Карточка мероприятия. Крупный заголовок: «ПАК автоматизации сортировки пациентов (Триаж)». Под ним таблица: заказчик (Брестский облисполком), созаказчики, участники, срок 18 мес (1 кв. 2026 — 2 кв. 2027), бюджет 2 190,89 тыс. бел. руб.

Фрейм A2 — Две цели. Два крупных блока: «Сократить время ожидания для тяжёлых пациентов» и «Снизить нагрузку медперсонала». Под каждым — механизм достижения.

Фрейм A3 — КПЭ. Две пары «было → станет» крупным шрифтом:

  • Время ожидания: 30–120 мин → 15–60 мин
  • Пациентов в час: 0,5–2 → 1–4

Фрейм A4 — Экономика. Годовая экономия: 116 121,67 бел. руб.

Фрейм A5 — Масштаб объекта. Числа крупно: 560 коек · 208 палат · 20 постов · 30 коек реанимации · 28 964 обращения/год.


ЗОНА B — Состав ПАК

Фрейм B1 — Состав ПАК. Синий блок «Триаж» + жёлтый блок МИС «Медик» с подписью «имеется, доработка не требуется» + жёлтый ЦИСЗ. Стрелки: «Триаж» ↔ МИС ↔ ЦИСЗ. Важно: стрелка от «Триажа» к ЦИСЗ напрямую отсутствует — это визуальное выражение ADR-9.

Фрейм B2 — Инновация. Стикер с заявленной инновацией из паспорта.

Фрейм B3 — Границы. Два списка: «Входит в ПАК» и «Остаётся в МИС» (направления, назначения, ЭМК, расписания, рецепты).


ЗОНА C — Нормативная база

Фрейм C1 — Карта норм. Фиолетовые стикеры, сгруппированные в четыре кластера: цифровое развитие, здравоохранение, защита информации, регистрация и размещение. Содержание — по «Нормативной базе».

Фрейм C2 — Что ограничивает архитектуру. Пять фиолетовых стикеров со стрелками на синие компоненты:

  • Приказ МЗ № 1001 → «Обмен только HL7 FHIR» → fhir-gateway
  • Приказ МЗ № 1030 → «Правила по клиническому протоколу» → rules-engine
  • Пост. МЗ № 62 → «Цветовая система светофор» → сортировка
  • Приказ ОАЦ № 66 → «Журнал ИБ ≥ 1 года, ЭЦП» → журналы
  • Указ № 46 / Пост. № 182 → «Заключение: РЦОД нецелесообразен» → on-prem

Фрейм C3 — Требование свободного ПО. Крупный фиолетовый стикер с цитатой паспорта. Рядом — таблица стека с колонкой лицензий.

Фрейм C4 — Вехи регистрации. Цепочка: разработка → аудит → СЗИ → аттестация ЕТТ → ГРИС + FHIR-регистр → промышленная эксплуатация. Красная подпись: «блокируют ввод».

Зона C — самая важная для согласующих

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


ЗОНА D — Архитектура C4

Фрейм D1 — Контекст (C4 L1). В центре синий блок «ПАК 3H». Вокруг жёлтые: МРМ СМП, серверы координат, МИС «Медик», ЦИСЗ. Слева — пользователи (оператор, пациент). Стрелки подписаны контрактами: «FHIR Bundle, push, mTLS», «опрос координат», «обращение / бригада».

Фрейм D2 — Контейнеры (C4 L2). Синие блоки: fhir-gateway, triage-core, geo-worker, rules-engine, mis-adapter. Хранение: PostgreSQL, RabbitMQ. Периметр: nginx.

Фрейм D3 — Компоненты «Триажа» (C4 L3). Внутренности шлюза и ядра: listener, валидатор, идемпотентность, ACL, диспетчер типов, обработчики пяти сообщений, менеджер обращений, очередь, контроль SLA, ручная передача в МИС.

Фрейм D4 — ADR. 12 стикеров с решениями и однострочным обоснованием каждого.


ЗОНА E — Мультипровайдерность

Фрейм E1 — Три оси. Центральный синий блок «Каноническая модель FHIR». Три группы жёлтых стикеров, каждая через свой ACL:

  • Ось 1 — координаты (GPS-сервер вендора, сервер маршрутизации)
  • Ось 2 — API СМП (МРМ СМП первый, Эрикполь, МАП, Лекарь)
  • Ось 3 — МИС («Медик» первая)

Фрейм E2 — Что нормализует ACL. Шесть зелёных стикеров: единицы, коды состояний, часовые пояса, идентификаторы, полнота данных, гранулярность обновлений. Красный стикер: «Неизвестный код → ошибка, НЕ null».

Фрейм E3 — Ввод нового вендора. Шесть шагов: фикстуры → симулятор → ACL → контрактные тесты → стенд → эксплуатация. Подпись: шаги 1–4 не требуют доступности вендора.

Фрейм E4 — Деградация. Таблица «отказ → поведение → что видит оператор». Красный стикер: «Молчаливая деградация недопустима».


ЗОНА F — Аппаратный комплекс

Фрейм F1 — Логическая схема размещения. Серые стикеры, сгруппированные по помещениям: серверная, приёмное отделение, палаты, посты, реанимация. Линии RS-485 к преобразователям, от них Ethernet в ЛВС.

Фрейм F2 — Спецификация закупки. Серые стикеры с количествами: терминал самообращения ×1, АРМ тип 2 ×44, сервер ×1 и т.д.

Фрейм F4 — Идентификация пациента. Цепочка: сортировка → печать браслета → сканирование при оформлении → сканирование при распределении на койку → регистрация в «Палатной связи». Зелёный стикер: «В штрих-коде — идентификатор обращения, НЕ ПДн».


ЗОНА G — Контракты HL7 FHIR

Фрейм G1 — Пять типов сообщений. Пять жёлтых стикеров в ряд с ответом системы под каждым:

Сообщение Ответ
transport_request синхронный accepted / rejected / conditional
transport_notification 202
transport_health_status 202
transport_cancel 202
transport_complete 202

Фрейм G2 — Автомат транспортного эпизода. Состояния: requested → notified → en_route → delivered / cancelled / rejected.

Фрейм G3 — Транспорт и безопасность. Шесть уровней защиты периметра: mTLS → IP allowlist → подпись тела → ограничение частоты → валидация FHIR → идемпотентность.

Фрейм G4 — Обработка ошибок. Таблица кодов ответа. Красный стикер: «2xx только после записи в БД».

Фрейм G5 — Замечания к образцу. Шесть красных стикеров: российские OID (1.2.643 вместо 1.2.112), отсутствует MessageHeader, отсутствует AllergyIntolerance, неверный admitSource, нет Condition с кодом диагноза, водитель помечен как фельдшер.


ЗОНА H — Набор данных СМП

Фрейм H1 — Шесть групп полей. Горизонтальная лента: вызов (п. 1–14) → анамнез (15–20) → объективные данные (21.1–21.20) → помощь и исход (22–28) → транспортировка (29–36) → прочее (37–40).

Фрейм H2 — Объективные данные развёрнуто. Зелёные стикеры на каждый подпункт 21.x. Шесть выделены рамкой — те, на которых держится сортировка: шкала Глазго, АД, пульс, ЧД, гликемия, сатурация.

Фрейм H3 — Покрытие по типам сообщений. Матрица «поле × тип сообщения» из набора данных.

Фрейм H4 — Вопросы к вендору. Девять красных стикеров с вопросами 1–9 из рисков.


ЗОНА I — Схема БД

Фрейм I1 — Предметные области. Кластеры зелёных стикеров: конфигурация, транспортный эпизод, обращение и сортировка, журналы.

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

Фрейм I3 — Быстрорастущие таблицы. Четыре стикера с оценками объёма. Красный: «monitor_observations 50–150 ГБ/год при 4×960 ГБ SSD».

Фрейм I4 — Ретеншн. Таблица сроков по таблицам. Фиолетовый стикер: «security_events ≥ 12 мес — требование ОАЦ № 66».


ЗОНА J — Жизненный цикл

Фрейм J1 — Автомат обращения. open → triaged → queued → in_registration → registered → closed, с ветками пересортировки и «красный минуя приёмник».

Фрейм J2 — Слияние потоков. Слева поток СМП, справа самообращение, в центре крупный блок appeals — общая сущность. Ниже таблица различий между потоками.

Фрейм J3 — Сквозные отсечки времени. Лента моментов от transport_started_at до closed_at. Под лентой — какие интервалы дают какие метрики; два интервала помечены как КПЭ паспорта.


ЗОНА K — Логика ТРИАЖ

Фрейм K1 — Три цвета. Три крупных блока с цветовой заливкой и кодами талонов: 🔴 К43 высший · 🟡 В34 средний · 🟢 П45 плановый. Под ними — маршрут каждого цвета.

Фрейм K2 — Правило «СМП не бывает зелёным». Схема с перечёркнутой стрелкой от потока СМП к зелёному.

Фрейм K3 — Движок правил. Схема применения: сортировка по приоритету → проверка → результат или «не покрыто правилами». Пример JSON-правила. Красный стикер: «"Не покрыто правилами" ≠ "зелёный"».

Фрейм K4 — Приоритетная очередь. Порядок вызова красные → жёлтые → зелёные, внутри цвета по времени. Красный стикер: «Защита от голодания зелёных — норматив выбытия по каждому цвету».

Фрейм K5 — Самообращение. Цепочка: кнопка на терминале → анонимный номер → сортировка (пол, температура, состояние, вес, дыхание) → талон.

Фрейм K6 — Режим массового поступления. Отличия от штатного режима + фиолетовый стикер «Пост. МЗ РБ № 62: система светофор».

Фрейм K7 — Что не утверждено. Красные стикеры: пороги показателей, нормативы времени по цветам, правило нумерации талонов.


ЗОНА M — Backlog

Фрейм M1 — Эпики. Оранжевые стикеры с номером, названием, SP и приоритетом.

Фрейм M2 — Граф зависимостей эпиков. Стрелки между эпиками; E12 отдельно с подписью «блокирует ввод в эксплуатацию».

Фрейм M3 — Пять spike-задач. Красные стикеры с крайними сроками. Заголовок фрейма: «Выполнить первыми — до госзакупки этапа 2».

Фрейм M4 — Задачи по эпикам. Оранжевые стикеры на каждую задачу (≈ 120 шт.), сгруппированные по эпикам. Основной источник наполнения при импорте CSV.

Фрейм M5 — Колонки Kanban. Backlog → Ready → In Progress → Review → Testing → Blocked → Done, с правилами выхода. Стикер: «Колонка Blocked обязательна — много внешних зависимостей».


ЗОНА N — Дорожная карта

Фрейм N1 — Три этапа. Временная лента 1 кв. 2026 — 2 кв. 2027 с границами этапов и распределением SP (≈ 640 / 30 / 47).

Фрейм N2 — Критический путь. Цепочка: платформа → шлюз → сортировка → очередь → испытания → интеграция с реальным вендором → аттестация → эксплуатация. Красная подпись: «3 из 4 узлов зависят от внешних сторон».

Фрейм N3 — Одиннадцать вех. M1–M11 с признаками достижения. M5 (клинические правила) помечена красным: «нельзя закрыть силами разработки».

Фрейм N4 — Ранняя ценность. Порядок частичного ввода: Триаж для самообращений → пульт с СМП.


ЗОНА O — Риски

Фрейм O1 — Матрица рисков. Квадрант «вероятность × влияние», 15 красных стикеров R-1…R-15 расставлены по позициям.

Фрейм O2 — Риски до закупки. R-4 (API МИС). Подпись: «после закупки смягчение невозможно или очень дорого».

Фрейм O3 — Открытые вопросы. Четыре колонки по адресатам: вендор СМП (9), заказчик и медперсонал (9), АИС «Медик» (5), регулятор (5).

Фрейм O4 — Расхождения источников. Семь стикеров с расхождениями паспорта и операционных требований + предлагаемое разрешение каждого.


Импорт CSV

figjam/board-import.csv генерируется скриптом и покрывает все дискретные элементы документации: 602 стикера в 32 секциях.

python3 scripts/generate_figjam_csv.py

Как FigJam читает CSV. Импорт создаёт сетку стикеров, повторяющую структуру таблицы: каждая ячейка → один стикер, столбцы и строки сохраняются. Поэтому файл организован как один столбец = одна секция доски, а заголовок столбца становится подписью секции.

Порядок действий:

  1. Открыть FigJam → Import → выбрать figjam/board-import.csv.
  2. Полученную сетку разложить по зонам согласно описанию выше.
  3. Применить цвета по соглашению — импорт создаёт стикеры одного цвета.
  4. Добавить диаграммы: скопировать Mermaid-код из соответствующих страниц документации в Mermaid-плагин FigJam либо вставить отрендеренные изображения.
  5. Провести связи между зонами: требование → компонент → таблица → задача.

Скрипт — источник правды, CSV — артефакт

figjam/board-import.csv не редактируется вручную. При изменении документации правится словарь S в scripts/generate_figjam_csv.py, после чего CSV перегенерируется. Ручные правки CSV будут потеряны при следующей генерации.

Что должно читаться с доски без объяснений

Проверка качества сборки. Человек, впервые подошедший к доске, должен без сопровождения ответить на вопросы:

# Вопрос Где ответ
1 Что строим и для кого ЗОНА A
2 Из скольких подсистем состоит и что уже есть ЗОНА B
3 Почему нельзя выбрать любой стек и любую СУБД ЗОНА C
4 Как данные попадают в систему и почему не через ЦИСЗ ЗОНЫ B, D, G
5 Что произойдёт при появлении второго вендора СМП ЗОНА E
6 Где хранится каждая из семи обязательных групп данных ЗОНА I
7 Как пациент становится красным и что дальше ЗОНА K
8 Что делает система, когда МИС недоступна ЗОНЫ E, L
9 Сколько это работы и в каком порядке ЗОНЫ M, N
10 Что может сорвать проект ЗОНА O

Если на вопрос нельзя ответить с доски — доска собрана не полностью

Список выше — не украшение, а приёмочный тест раскладки. Особенно вопросы 8 и 10: их обычно не выносят на доску, и именно они всплывают на согласовании.