EL 6ec2d0b0e0 新增 B 端设备模块(后端 CRUD、分页筛选、权限隔离)并接入前端设备管理页面与路由菜单
鉴权改为登录态回库校验,新增 tokenValidAfter 失效时间,支持密码变更与 seed 重置后旧 token 立即失效
患者字段由 idCardHash 统一迁移为 idCard,新增身份证标准化逻辑并同步 C 端生命周期查询参数
组织模块增加小组删除限制(有成员时返回 409)并补充中文错误消息
任务取消接口支持可选 reason 字段(先透传事件层)
补齐 Prisma 迁移、文档说明和 E2E 用例(含设备模块与 token 失效场景)
2026-03-18 20:23:55 +08:00
2026-03-13 00:19:34 +08:00
2026-03-13 11:14:16 +08:00
2026-03-12 15:16:06 +08:00
2026-03-13 02:40:21 +08:00
2026-03-12 15:16:06 +08:00
2026-03-13 03:29:16 +08:00
2026-03-13 03:29:16 +08:00
2026-03-12 15:16:06 +08:00
2026-03-12 15:16:06 +08:00

多租户医疗调压系统后端NestJS + Prisma

本项目是医疗调压系统后端 MVP支持 B 端(医院内部)与 C 端(家属跨院视图)两套接口语义。

1. 技术栈

  • NestJS模块化后端框架
  • PrismaORM + Schema 管理)
  • PostgreSQL/MySQL.envDATABASE_URL 决定)
  • JWT认证
  • Swagger接口文档

2. 目录结构

src/
  auth/                 认证与鉴权JWT、Guard、RBAC
  users/                用户与角色管理
  tasks/                调压任务流转(发布/接收/完成/取消)
  patients/             患者查询B 端范围 + C 端聚合)
  hospitals/            医院管理模块
  departments/          科室管理模块
  groups/               小组管理模块
  organization-common/  组织域共享 DTO/权限校验能力
  organization/         组织域聚合模块(仅负责引入子模块)
  common/               全局响应、异常、消息常量
  generated/prisma/     Prisma 生成代码
prisma/
  schema.prisma         数据模型定义
docs/
  auth.md
  users.md
  tasks.md
  patients.md

3. 环境变量

请在项目根目录创建 .env

DATABASE_URL="postgresql://user:password@127.0.0.1:5432/tyt?schema=public"
AUTH_TOKEN_SECRET="请替换为强随机密钥"
JWT_EXPIRES_IN="7d"
SYSTEM_ADMIN_BOOTSTRAP_KEY="初始化系统管理员用密钥"

管理员创建链路:

  • 可通过 POST /auth/system-admin 创建系统管理员(需引导密钥)。
  • 系统管理员负责创建医院、系统管理员与医院管理员。
  • 医院管理员负责创建本院下级角色(主任/组长/医生/工程师)。

4. 启动流程

pnpm install
pnpm prisma generate
pnpm prisma migrate dev
pnpm start:dev

5. 统一响应规范

  • 成功:{ code: 0, msg: "成功", data: ... }
  • 失败:{ code: 4xx/5xx, msg: "中文错误信息", data: null }

已通过全局拦截器与全局异常过滤器统一输出。

6. API 文档

  • Swagger UI: /api/docs
  • OpenAPI JSON: /api/docs-json
  • 鉴权头:Authorization: Bearer <token>

7. 组织管理(医院/科室/小组 CRUD

统一前缀:/b/organization

  • 医院:
    • POST /b/organization/hospitals
    • GET /b/organization/hospitals
    • GET /b/organization/hospitals/:id
    • PATCH /b/organization/hospitals/:id
    • DELETE /b/organization/hospitals/:id
  • 科室:
    • POST /b/organization/departments
    • GET /b/organization/departments
    • GET /b/organization/departments/:id
    • PATCH /b/organization/departments/:id
    • DELETE /b/organization/departments/:id
  • 小组:
    • POST /b/organization/groups
    • GET /b/organization/groups
    • GET /b/organization/groups/:id
    • PATCH /b/organization/groups/:id
    • DELETE /b/organization/groups/:id

8. 模块文档

  • 认证与登录:docs/auth.md
  • 用户与权限:docs/users.md
  • 任务流转:docs/tasks.md
  • 患者查询:docs/patients.md

9. 常见改造入口

  • 新增字段/关系:修改 prisma/schema.prisma 后执行 prisma migrate
  • 调整中文提示:修改 src/common/messages.ts
  • 调整全局响应壳:修改 src/common/response-envelope.interceptor.tssrc/common/http-exception.filter.ts
  • 扩展 RBAC修改 src/auth/roles.guard.ts 与对应 Service 的权限断言。
Description
No description provided
Readme 3.9 MiB
Languages
TypeScript 61.8%
Vue 32.7%
JavaScript 5.4%