copd-monitor/PRD.md

145 lines
13 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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).