You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
5 days ago | |
|---|---|---|
| apps | 5 days ago | |
| docker | 5 days ago | |
| packages | 5 days ago | |
| .env.example | 5 days ago | |
| .gitignore | 5 days ago | |
| README.md | 5 days ago | |
| TZ (1).md | 5 days ago | |
| package.json | 5 days ago | |
| pnpm-lock.yaml | 5 days ago | |
| pnpm-workspace.yaml | 5 days ago | |
| turbo.json | 5 days ago | |
README.md
Digital Reception — Фаза 1
Видеоаналитика рецепции клиники: распознавание лиц, ручной enrollment, согласия, история визитов. Компонент Платформы цифровых сервисов клиники (ПЦС).
ТЗ: TZ (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
Быстрый старт
# 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):
| Роль | Что видит | |
|---|---|---|
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.