CI / ruff · pytest (pull_request) Successful in 22s
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>
13 KiB
13 KiB
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 мин)
- Врач подключает Андрея на дашборде → QR — 15 с
- Андрей: согласие, короткий скрининг, напоминание о сертралине → «принял» — 40 с
- День 5: «брошу» → объяснение + 🟡 у врача — 35 с
- День 10: кошмары, сон, алкоголь → инфо о взаимодействии, «записаться раньше» — 30 с
- День 13: «всё бессмысленно» → внеплановый PHQ-9 → 🔴 кризисный протокол + карточка алерта и план безопасности на дашборде — 40 с
Опциональное направление: депрессия в общей популяции (Алексей)
Персона Алексея
| Поле | Значение |
|---|---|
| Имя | Алексей, 28 лет, Москва |
| Работа | разработчик |
| Жалобы (2 мес.) | сниженное настроение, нет интереса к делам, плохой сон, трудно работать |
| Барьер | к врачу не шёл: «боюсь, что поставят на учёт» |
| Скрининг (день −3) | PHQ-9 = 14 (умеренная), п.9 = 0; травмы не было → PC-PTSD-5 пропущен; GAD-7 = 9 |
| Визит к психиатру (день 0) | депрессивный эпизод средней степени; сертралин 50 мг 1 р/сут утром после еды; следующий визит через 4 недели |
| Врач | д-р Смирнова Е. А., психиатр |
Сценарий А — скрининг (демо 30–40 сек)
- Пользователь открывает бота без регистрации → дисклеймер («это не диагноз») + согласие на обработку данных.
- Вопрос о возрасте. Если < 18 → детский телефон доверия 8-800-2000-122, совет обратиться к взрослым / школьному психологу.
- PHQ-9 → 14 баллов, п.9 = 0.
- Вопрос о травматическом событии (вход в PC-PTSD-5) → «нет» → пропуск.
- GAD-7 → 9 баллов.
- Агент объясняет результат без слова «диагноз», рекомендует консультацию психиатра.
- Пользователь: «А меня поставят на учёт?» → агент объясняет (добровольное обращение = консультативно-лечебная помощь).
- Агент предлагает варианты (ПНД/поликлиника, платно, онлайн) →
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 мин)
- Скрининг Алексея → запись к врачу — 40 с
- Врач подключает пациента на дашборде — 10 с
- День 5: «хочу бросить» → объяснение + алерт — 40 с
- День 10: алкоголь + бессонница → запись раньше — 30 с
- День 13: внеплановый PHQ-9 → 🔴 → кризисный протокол + карточка алерта на дашборде — 40 с