copd-monitor/PRD.md

13 KiB
Raw Blame History

PRD — ПульсоMonitor: дистанционный мониторинг пациентов с ХОБЛ

Версия: 1.0 · Статус: прототип (демо) · Репозиторий: Amanbayeva_Nazym/copd-monitor URL: https://pages.git.vibe42.kz/Amanbayeva_Nazym/copd-monitor/


1. Описание продукта

Веб-приложение для дистанционного мониторинга пациентов с хронической обструктивной болезнью лёгких (ХОБЛ) медицинским персоналом. Пациент ведёт дневник самомонаблюдения и отмечает приём препаратов; система автоматически сегментирует состояние по зонам риска (светофор), показывает «красные флаги» и инструкции самопомощи. Медработник видит панель пациентов, отсортированную по степени риска, отчёты по сегментации и охвату, протокол действий и может назначать базисную терапию из каталога.

2. Проблема и цель

  • Проблема: обострения ХОБЛ часто выявляются поздно — на этапе госпитализации. Рутинный контроль в поликлинике нерегулярен, adherence к терапии низкий.
  • Цель: раннее выявление ухудшений по ежедневным показателям, снижение числа госпитализаций и нагрузки на приём врача, повышение приверженности лечению.

3. Пользователи и роли

Роль Сценарий
Пациент с ХОБЛ Ежедневно заполняет дневник (SpO₂, АД, ЧСС, ЧДД, одышка, CAT), отмечает приём препаратов, видит свою зону риска, красные флаги и образовательные материалы.
Медицинский персонал (врач / медсестра) Мониторит контур пациентов по зонам риска, работает с отчётами, назначает терапию, фиксирует вмешательства, действует по протоколу «светофор».

В прототипе роли переключаются в шапке без аутентификации (демо-режим).

4. Границы продукта (стек и ограничения)

  • Тип: статическое клиентское веб-приложение (HTML + CSS + vanilla JS).
  • Хранилище: localStorage браузера (данные не синхронизируются между устройствами).
  • Без бэкенда, БД, аутентификации, серверов.
  • Интеграция с приборами — имитация (mock) Bluetooth-чтения (Web Bluetooth не используется).
  • Адаптив: десктоп и мобильные.

5. Функциональные требования

5.1. Кабинет пациента

  • FR-1. Дневник самомонаблюдения (новая запись): SpO₂ (%), АД (систолическое/диастолическое, мм рт.ст.), ЧСС (уд/мин), ЧДД (/мин), одышка по шкале mMRC (04), характер мокроты, заметка.
  • FR-2. Анкета CAT — 8 вопросов (05 баллов), автоподсчёт суммы (040) с интерпретацией уровня влияния ХОБЛ.
  • FR-3. Базисные препараты и время приёма — список назначенной схемы, отметка «принят/пропущен/запланирован», кнопка «Отметить приём».
  • FR-4. Напоминания — при пропуске времени приёма препарата пациенту показывается напоминание, врач видит пропуск.
  • FR-5. Интеграция с приборами (mock) — кнопки «Пульсоксиметр» (заполняет SpO₂, ЧСС) и «Тонометр» (заполняет АД) в форме дневника.
  • FR-6. Сегментация состояния — после сохранения записи определяется зона риска (🟢/🟡/🔴) по SpO₂, ЧСС, ЧДД.
  • FR-7. Красные флаги — динамические инструкции самопомощи при ухудшении (падение SpO₂, резкая одышка, ЧДД>24, ЧСС>110) с порогом вызова скорой.
  • FR-8. Образование и самопомощь — раскрытые блоки: дыхательная гимнастика, техника ингаляции, план действий «светофор», когда вызывать скорую.
  • FR-9. История записей — таблица всех замеров с зоной.

5.2. Панель медработника

  • FR-10. Вкладки: 🩺 Пациенты / 📊 Отчёты / 🚦 Протокол (светофор).
  • FR-11. Список пациентов по степени риска — сортировка красная → жёлтая → зелёная, флаги «ухудшение / внимание / пропуск препарата / CAT», мини-показатели.
  • FR-12. Карточка пациента — последние показатели, динамика (sparkline SpO₂/ЧСС/ЧДД), история, adherence по препаратам, текущие флаги.
  • FR-13. Вмешательства и назначения врача — добавление текстовых записей (вмешательства/назначения) с датой, хранение в истории пациента.
  • FR-14. Назначение базисной терапии — выбор препаратов из каталога (с группировкой по классам) с редактируемым временем приёма; назначенная схема отображается в кабинете пациента. Дубликаты не добавляются.

5.3. Отчёты (FR-15..FR-16)

  • FR-15. Отчёт по сегментации пациентов: распределение по зонам (количество и %), столбчатые индикаторы, списки пациентов по каждой зоне.
  • FR-16. Отчёт по охвату мониторингом: всего под наблюдением; активны (замер ≤24ч); нет замеров >24ч; adherence препаратов (% принятых доз от назначенных); средний CAT; счётчики по зонам; список пациентов, требующих внимания (нет свежих замеров).

5.4. Протокол «светофор» (FR-17)

  • Расширенный протокол по трём зонам с блоками: критерии, действия пациента, действия медперсонала, эскалация.

6. Логика сегментации (светофор)

Общая зона = худшая из трёх показателей.

Показатель 🟢 Зелёная 🟡 Жёлтая 🔴 Красная
SpO₂ ≥ 95 % 9094 % < 90 %
ЧСС 60100 101110 (или 5059) > 110 (или < 50)
ЧДД 1220 2124 > 24 (или < 12)

CAT (сумма 8 вопросов, 040): ≤9 — низкое влияние; 1020 — среднее; 2130 — высокое; >30 — очень высокое. mMRC (одышка): 04.

7. Каталог базисной терапии ХОБЛ

Группы для назначения врачом:

  1. Купирование — сальбутамол, фенотерол, ипратропия бромид, ипратропий/фенотерол.
  2. ЛАМА — тиотропий, гликопирроний, аклидиний, умеклидиний.
  3. ЛАБА — индакатерол, олодатерол, сальметерол, формотерол.
  4. ЛАМА/ЛАБА — гликопирроний/индакатерол, тиотропий/олодатерол, умеклидиний/вилинтерол.
  5. ИГКС/ЛАБА — будесонид/формотерол, флутиказон/сальметерол, флутиказон/вилинтерол, беклометазон/формотерол.
  6. Тройная терапия (ИГКС/ЛАБА/ЛАМА) — флутиказон/умеклидиний/вилинтерол, беклометазон/формотерол/гликопирроний.
  7. Прочее — рофлумиласт (ФДЭ-4), N-ацетилцистеин, эрдостеин, азитромицин (профилактика обострений), длительная О₂-терапия.

8. Модель данных (localStorage, ключ copd_monitor_v2)

state = {
  role: "patient" | "staff",
  staffTab: "patients" | "reports" | "protocol",
  currentPatient: "p1",
  patients: [ patient ]
}
patient = {
  id, name, age, diag,
  meds: [ { id, name, times: ["08:00",...] } ],
  entries: [ entry ],
  interventions: [ { ts, text } ]
}
entry = {
  id, ts,
  spo2, sys, dia, hr, rr, mmrc,
  cat: [8 чисел 05], catTotal,
  meds: { "medId@time": { taken: bool, at? } },
  note
}

9. Демо-данные

4 пациента с разным состоянием: стабилен (зелёная), внимание (жёлтая, пропуск препарата), ухудшение (красная, гнойная мокрота, О₂-терапия, демо-вмешательства), стабилен (зелёная).

10. Нефункциональные требования

  • NFR-1. Только статика (HTML/CSS/JS), без сборщиков и фреймворков.
  • NFR-2. Работает офлайн после первой загрузки (данные в localStorage).
  • NFR-3. Адаптивный интерфейс (мобильные/десктоп).
  • NFR-4. Соответствие подходу 152-ФЗ заявлено в интерфейсе (в прототипе реальная обработка ПДн не реализована — нет сервера).

11. За пределами версии (Out of scope)

  • Реальный бэкенд, БД, аутентификация ролей и синхронизация данных.
  • Реальная интеграция с медицинскими приборами по Bluetooth (Web Bluetooth API).
  • Интеграция с ЭМК / ЕМИАС, направления на госпитализацию.
  • Push-уведомления вне браузера, телеметрия в реальном времени (WebSocket).
  • Спирометрия (ПСВ/ОФВ1) с расчётом от должных значений.

12. Roadmap (следующие итерации)

  1. Спирометрия — ПСВ и ОФВ1, расчёт от должных (рост/возраст/пол), отдельная сегментация.
  2. Экспорт карты пациента в PDF (печать).
  3. Реальная интеграция с приборами через Web Bluetooth API.
  4. Серверная часть + БД + ролевая аутентификация (врач/медсестра/пациент).
  5. Интеграция с ЭМК, автоматические направления и госпитализация.
  6. Push-уведомления и телеметрия в реальном времени.
  7. Многоязычность (KK/RU), доступность (a11y).

13. Технологии

HTML5 · CSS3 (собственная дизайн-система, палитра: ink #0F1218, cyan #00E5FF, зелёная/жёлтая/красная зоны) · vanilla JavaScript (ES5) · localStorage · публикация через ветку pages (Caddy).