Files
ElebobaandClaude Opus 5.5 b4731fb1d6
CI / ruff · pytest (pull_request) Successful in 22s
chore(core): stage 1 contracts — dialog, API schemas + fixtures, integrations, monitoring, modules
Freeze interfaces between lanes A (bot), B (backend), C (dashboard) so three developers work in
parallel without touching each other's files: dialog Event/Reply + engine registry with echo stub,
integration protocols with in-memory defaults, MonitoringService with noop stub, /api/v1 schemas
with fixture-backed routes, frozen main.py wiring, config/modules.yaml + due_scales(), DAR-5,
tzdata, Andrey trajectory, lanes in WORKFLOW, ADR-010.

Refs #34

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 15:22:25 +03:00

13 KiB
Raw Permalink Blame History

01. Демо-персона и сценарии

Источник для seed-данных и сценария демо. Все данные вымышленные.

Решение #9 / ADR-010: главный герой хакатона — ветеран Андрей (этап 1). Траектория Алексея перенесена на Андрея по структуре. Сценарии Алексея (депрессия, самоскрининг) остаются ниже — это опциональное направление «Депрессия в общей популяции» (эпик #43).

Главная персона этапа 1 — Андрей

Поле Значение
Кто Андрей С., 34 года, контрактник, вернулся после ранения 8 месяцев назад; райцентр, до психиатра — областной центр
Жалобы плохо спит, кошмары, раздражительность, срывается на домашних, стал чаще выпивать
Барьер «я не псих»; страх учёта, лишения прав на оружие и вождение; доверяет только своим
Точка входа углублённая диспансеризация → консультация психолога → психиатр кабинета медико-психологического консультирования предлагает подключиться (QR/код)
Скрининг (день −3) PC-PTSD-5 = 4 (положительный), PCL-5 = 46, PHQ-9 = 14 (п.9 = 0), AUDIT-C = 3 (ниже порога для мужчин), оружия дома нет (охотничье ружьё у брата)
Визит (день 0) ПТСР + депрессивный эпизод средней степени; сертралин 50 мг 1 р/сут утром после еды; модули veteran + depression; следующий визит через 4 недели
Врач д-р Смирнова Е. А., психиатр (doc-smirnova)

Траектория Андрея (сценарий этапа 1)

Ожидаемые цвета проверяются тестом правил: 🟢🟢🟢🟡🟡🟢🟢🟢🟢🟡🟡🟡🔴.

День Приём Настр. 0–10 Сон Кошмары Алкоголь Свободный текст Шкалы Уровень Реакция системы
0 — — — — — — — 🟢 врач «Подключить пациента» → код; Андрей: согласие, знакомство, напоминания
1 да 4 4–6 да нет — — 🟢 приветствие, напоминание, вопрос про сон
2 да 4 4–6 да нет «подташнивает с утра» — 🟢 med_qa: частая побочка, обычно проходит за 1–2 нед.; принимать после еды
3 да 4 4–6 да нет «опять тошнит» — 🟢 поддержка
4 да 3 4–6 нет нет «тошнота не проходит» — 🟡 побочка 3 дня подряд → алерт side_effect_3d
5 нет 3 4–6 нет нет «от таблеток только хуже, брошу» — 🟡 отсроченный эффект, не отменять без врача; алерт quit_intent
6 да 4 6–8 нет нет «врач позвонил, продолжаю» — 🟢 врач подтвердил алерты (ack) после звонка
7 да 4 6–8 нет нет — PCL-5 = 44, PHQ-9 = 13, п.9 = 0 🟢 плановые шкалы
8 да 4 < 4 да 1–2 «снится одно и то же» — 🟢 —
9 да 4 < 4 да больше — — 🟢 —
10 да 4 < 4 да больше «без пива не могу уснуть» — 🟡 сон < 4 ч три ночи (sleep_lt4_3n) + алкоголь 3 дня (alcohol_3d) → инфо о взаимодействии с сертралином, предложение записаться раньше
11 да 3 4–6 нет 1–2 — — 🟡 (алерты открыты)
12 да 3 4–6 нет нет — — 🟡 —
13 да 2 < 4 да нет «всё бессмысленно, устал от всего» внеплановый PHQ-9 = 18, п.9 = 2 🔴 настроение ≤ 3 три дня → внеплановый PHQ-9 → п.9 ≥ 1 → кризисный скрипт, C-SSRS, план безопасности, алерт phq9_item9 дежурному ≤ 3 с

Дашборд: ещё 7 пациентов кабинета

Пациент Возраст Модули Препарат День Статус Последнее событие
Дмитрий В. 41 veteran сертралин 100 мг 45 🟡 кошмары, сон < 4 ч 3 ночи
Сергей П. 37 veteran пароксетин 20 мг 30 🟡 пропуски 3 из 7 дней
Николай Ф. 52 veteran сертралин 50 мг 14 🟡 алкоголь 4 из 7 дней
Анна Л. 23 depression флуоксетин 20 мг 8 🟡 возраст < 25: усиленный мониторинг
Ирина К. 34 depression эсциталопрам 10 мг 21 🟢 PHQ-9 16 → 9
Ольга Н. 29 depression сертралин 50 мг 10 🟢 тошнота прошла
Павел Р. 45 depression эсциталопрам 10 мг 60 🟢 ремиссия, PHQ-9 = 4

Порядок демо этапа 1 (≈ 3 мин)

  1. Врач подключает Андрея на дашборде → QR — 15 с
  2. Андрей: согласие, короткий скрининг, напоминание о сертралине → «принял» — 40 с
  3. День 5: «брошу» → объяснение + 🟡 у врача — 35 с
  4. День 10: кошмары, сон, алкоголь → инфо о взаимодействии, «записаться раньше» — 30 с
  5. День 13: «всё бессмысленно» → внеплановый PHQ-9 → 🔴 кризисный протокол + карточка алерта и план безопасности на дашборде — 40 с

Опциональное направление: депрессия в общей популяции (Алексей)

Персона Алексея

Поле Значение
Имя Алексей, 28 лет, Москва
Работа разработчик
Жалобы (2 мес.) сниженное настроение, нет интереса к делам, плохой сон, трудно работать
Барьер к врачу не шёл: «боюсь, что поставят на учёт»
Скрининг (день −3) PHQ-9 = 14 (умеренная), п.9 = 0; травмы не было → PC-PTSD-5 пропущен; GAD-7 = 9
Визит к психиатру (день 0) депрессивный эпизод средней степени; сертралин 50 мг 1 р/сут утром после еды; следующий визит через 4 недели
Врач д-р Смирнова Е. А., психиатр

Сценарий А — скрининг (демо 30–40 сек)

  1. Пользователь открывает бота без регистрации → дисклеймер («это не диагноз») + согласие на обработку данных.
  2. Вопрос о возрасте. Если < 18 → детский телефон доверия 8-800-2000-122, совет обратиться к взрослым / школьному психологу.
  3. PHQ-9 → 14 баллов, п.9 = 0.
  4. Вопрос о травматическом событии (вход в PC-PTSD-5) → «нет» → пропуск.
  5. GAD-7 → 9 баллов.
  6. Агент объясняет результат без слова «диагноз», рекомендует консультацию психиатра.
  7. Пользователь: «А меня поставят на учёт?» → агент объясняет (добровольное обращение = консультативно-лечебная помощь).
  8. Агент предлагает варианты (ПНД/поликлиника, платно, онлайн) → book_visit (мок) → с согласия send_screening_summary врачу.

Сценарий Б — сопровождение после визита (основное демо)

Врач на дашборде нажимает «Подключить пациента», вводит препарат и дату следующего визита.

День Приём Настр. 0–10 Сон Алкоголь Жалобы / свободный текст Шкалы Уровень Действие агента
1 да 4 6–8 нет — — 🟢 приветствие, напоминание
2 да 4 4–6 нет тошнота — 🟢 объясняет: частая, обычно проходит за 1–2 нед.; принимать после еды
3 да 4 4–6 нет тошнота — 🟢 поддержка
4 да 3 4–6 нет тошнота — 🟡 побочка 3 дня подряд → raise_alert(yellow)
5 решил не принимать 3 4–6 нет «от таблеток только хуже, брошу» — 🟡 объясняет отсроченный эффект; не бросать без врача; notify_doctor
6 да 4 6–8 нет — — 🟢 врач позвонил, пациент продолжает
7 да 4 6–8 нет — PHQ-9 = 13, п.9 = 0 🟢 плановый PHQ-9
8 да 4 < 4 1–2 — — 🟢 —
9 да 4 < 4 больше — — 🟢 —
10 да 4 < 4 больше «не могу уснуть без пива» — 🟡 сон < 4 ч 3 ночи (F_Y6) + алкоголь 3 дня (F_Y5) → инфо о взаимодействии; notify_doctor; book_visit раньше
11 да 3 4–6 1–2 — — 🟡 (алкоголь продолжается)
12 да 3 4–6 нет — — 🟡 —
13 да 2 < 4 нет «всё бессмысленно, устал от всего» внеплановый PHQ-9 = 18, п.9 = 2 🔴 настроение ≤ 3 три дня → внеплановый PHQ-9 → п.9 ≥ 1 → crisis_protocol + raise_alert(red)

Дашборд врача: ещё 7 фейковых пациентов

Пациент Возраст Диагноз Препарат День терапии Статус Последнее событие
Ирина К. 34 депрессия эсциталопрам 10 мг 21 🟢 PHQ-9 16 → 9
Дмитрий В. 41 ПТСР сертралин 100 мг 45 🟡 кошмары, сон < 4 ч 3 ночи
Ольга Н. 29 депрессия + тревога сертралин 50 мг 10 🟢 тошнота прошла
Сергей П. 37 ПТСР пароксетин 20 мг 30 🟡 пропуски 3 из 7 дней
Анна Л. 23 депрессия флуоксетин 20 мг 8 🟡 возраст < 25: усиленный мониторинг; беспокойство
Павел Р. 45 депрессия эсциталопрам 10 мг 60 🟢 ремиссия, PHQ-9 = 4
Наталья Ф. 52 ПТСР сертралин 50 мг 14 🟡 алкоголь 4 из 7 дней
Алексей 28 депрессия сертралин 50 мг 13 🔴 п.9 PHQ-9 = 2

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

Порядок демо (≈ 3 мин)

  1. Скрининг Алексея → запись к врачу — 40 с
  2. Врач подключает пациента на дашборде — 10 с
  3. День 5: «хочу бросить» → объяснение + алерт — 40 с
  4. День 10: алкоголь + бессонница → запись раньше — 30 с
  5. День 13: внеплановый PHQ-9 → 🔴 → кризисный протокол + карточка алерта на дашборде — 40 с