2026-03-24 20:09:20 +08:00
2026-03-24 20:09:20 +08:00
2026-03-24 20:09:20 +08:00
2026-03-24 20:09:20 +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-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%