Версия цифровой рецепции с резализованным механизмом отслеживания трека пациента по зонам
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.
 
 
 
 
 

2.5 KiB

web-admin

Next.js 15 App Router + shadcn/ui (стиль new-york, base neutral) + Recharts + TanStack Query.

Порт: 3001 (3000 занят hr_v2_next).

Запуск

pnpm --filter=@reception/web-admin dev
# → http://localhost:3001

Логин: dev-юзеры из packages/db/prisma/seed.ts:

  • senior@local / senior123 — Старший администратор (видит Enrollment, Пациенты)
  • manager@local / manager123 — Управляющий (Дашборд, Пациенты)
  • admin@local / admin123 — Админ системы (Аудит, Пациенты)
  • security@local / security123 — Безопасность (Инциденты)

Структура

src/
  app/
    layout.tsx              # root layout с ThemeProvider + Toaster
    page.tsx                # redirect по роли
    login/page.tsx          # вход
    (authed)/
      layout.tsx            # серверный гард + AppShell
      dashboard/page.tsx    # Управляющий
      enrollment/page.tsx   # Старший администратор (M10)
      patients/             # M11
      incidents/page.tsx    # Безопасность (заглушка)
      audit/page.tsx        # Админ системы (M11)
  components/
    app-shell.tsx           # сайдбар + топбар (фильтр nav по роли)
    login-form.tsx          # форма входа
    theme-provider.tsx      # next-themes
    ui/                     # shadcn компоненты
  lib/
    auth.ts                 # серверные actions: login/logout/getCurrentUser
    api.ts                  # серверный fetch с проксированием cookies
    utils.ts                # cn, formatDateTime, formatDuration
  middleware.ts             # редирект на /login если нет access_token

Эндпоинты apps/api, используемые в web-admin

Метод Путь Где
POST /auth/login login form (server action)
POST /auth/logout header logout (server action)
GET /auth/me getCurrentUser()
GET /tracks?status=UNMATCHED /enrollment (M10)
GET /polimed/appointments?date=... /enrollment (M10)
POST /enrollment /enrollment submit (M10)
GET /patients /patients (M11)
GET /patients/:id/visits /patients/:id (M11)
POST /consents/:patientId/revoke /patients revoke (M11)
GET /audit/biometry /audit (M11)