# Digital Reception — Фаза 1 Видеоаналитика рецепции клиники: распознавание лиц, ручной enrollment, согласия, история визитов. Компонент Платформы цифровых сервисов клиники (ПЦС). ТЗ: [`TZ (1).md`](./TZ%20(1).md). План разработки: `~/.claude/plans/plan-mode-reflective-wand.md`. ## Стек - **Монорепо:** pnpm workspaces + Turborepo. - **БД:** PostgreSQL 16 + pgvector, Prisma 5. - **Backend:** NestJS 10 (`apps/api`, `apps/polimed-mock`), Python + FastAPI (`apps/face-service`, `apps/video-ingest`). - **Frontend:** Next.js 15 (App Router) + shadcn/ui + Recharts (`apps/web-admin`). - **Очереди:** BullMQ (Redis). - **Хранилище кадров:** MinIO (S3-совместимое). - **Распознавание лиц:** InsightFace `buffalo_l`, 512-d cosine. ## Структура ``` apps/ api/ # NestJS — auth, RBAC, треки, согласия, визиты, аудит face-service/ # Python FastAPI — InsightFace + pgvector + re-id polimed-mock/ # NestJS — мок МИС Полимед (вне скоупа Ф1) video-ingest/ # Python — минимальный mp4-консьюмер (скаффолд) fixtures-runner/ # Node — e2e сценарии треков и событий web-admin/ # Next.js 15 + shadcn/ui — админка packages/ db/ # Prisma schema, миграции, сид ui/ # shadcn/ui компоненты (shared) tsconfig/ # base / nest / next tsconfig пресеты eslint-config/ # общий ESLint docker/ docker-compose.yml # postgres + redis + minio init.sql # CREATE EXTENSION vector ``` ## Быстрый старт ```bash # 1. Инфраструктура cp .env.example .env pnpm docker:up # postgres+redis+minio # 2. Зависимости pnpm install # 3. БД pnpm db:migrate # создаёт схему pnpm db:seed # 4 юзера, 3 камеры, 3 зоны # 4. Сервисы (каждый в своём терминале) pnpm --filter=@reception/api dev pnpm --filter=@reception/polimed-mock dev pnpm --filter=@reception/web-admin dev # face-service: cd apps/face-service && uvicorn main:app --reload --port 8001 ``` ## Контроль доступа Сидер создаёт 4 dev-пользователя (пароли в `.env.example`): | Email | Роль | Что видит | |-------------------|---------------|---------------------------------| | `manager@local` | MANAGER | Дашборд, история визитов | | `senior@local` | SENIOR_ADMIN | Enrollment, согласия | | `security@local` | SECURITY | Лента инцидентов (Ф2) | | `admin@local` | SYSADMIN | Аудит, пользователи, камеры | ## Скоуп Фазы 1 - ✅ `face-service` + pgvector + cross-camera re-id. - ✅ Web-admin: ручной enrollment, согласия, история визитов, аудит. - ✅ Фиксация бумажных согласий, отзыв → удаление эмбеддингов за 24 ч. - 🚫 **Полимед API** — замокан `apps/polimed-mock`, реальной интеграции нет. - 🚫 **RTSP / GPU / ByteTrack** — работа Фазы 0, в Ф1 только минимальный mp4-скаффолд. - 🚫 **Поведенческие алерты (Max-бот)** — Фаза 2.