# ТЗ: Evrone Health — телемедицина

Демонстрационная версия документа · категория «Здоровье» · №20

> Это демонстрационное техническое задание: оно показывает структуру и глубину
> документа, который передаётся вместе с прототипом. Боевое ТЗ по этому солюшену
> готовится и заменит этот файл.

## 1. Суть решения

Запись, видеоприём, электронная медкарта, чат пациент–врач, кабинет клиники.

Запись к врачу (расписания, слоты, специализации), видеоконсультация по защищённому каналу, электронная медкарта (приёмы, назначения, файлы анализов), чат пациент–врач между приёмами, планы наблюдения и напоминания о приёме лекарств, кабинет клиники (врачи, расписания, биллинг услуг), интеграции с лабораториями. Возможно разворачивание в контуре клиники без облаков.

## 2. Технологический стек

| Слой | Решение |
|---|---|
| Backend | Ruby on Rails 8, PostgreSQL |
| Frontend | Hotwire (Turbo + Stimulus), Tailwind CSS |
| Фоновые задачи | Solid Queue |
| Файлы | Active Storage, S3-совместимое хранилище |
| Деплой | Docker, Kamal, production + staging |

## 3. Роли

- Пациент
- Врач
- Администратор клиники

## 4. Модель данных

### 4.1. Appointment

```
patient_id: references
doctor_id: references
slot_at: datetime
kind: enum # очный, видео
state: enum
```

### 4.2. MedicalRecord

```
patient_id: references
entries: has_many # приёмы, назначения, анализы
attachments: has_many_attached
```

### 4.3. CarePlan

```
patient_id: references
reminders: jsonb
starts_on: date
ends_on: date
```

## 5. Ключевые сценарии

1. Пациент выбирает специализацию, врача и свободный слот
2. Видеоконсультация идёт по защищённому каналу, итог попадает в медкарту
3. Между приёмами доступен чат с врачом
4. План наблюдения напоминает о приёме лекарств

## 6. Интеграции

- Видеосвязь
- Лаборатории
- Биллинг услуг клиники
- Уведомления

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

- Серверный рендеринг, работоспособность ключевых страниц без JavaScript
- Мобильная адаптивность обязательна
- Роли и права проверяются на уровне сервера, а не интерфейса
- Логирование действий пользователей по значимым операциям
- Покрытие тестами моделей и ключевых сценариев
- Развёртывание одной командой, окружения production и staging

## 8. Состав MVP

Запись + видеоприём + медкарта + кабинет клиники.

## 9. Критерии приёмки

1. Все сценарии из раздела 5 проходят end-to-end на тестовом стенде
2. Роли из раздела 3 видят только то, что им положено
3. Интеграции из раздела 6 работают через слой адаптеров и переключаются конфигурацией
4. Прототип разворачивается из репозитория одной командой
5. Документация по запуску и переменным окружения лежит в README
