2. 扩展患者手术与材料模型,更新种子数据 3. 新增字典模块,增强设备植入目录管理能力 4. 重构患者后台服务与表单链路,统一权限与参数校验 5. 管理台新增字典页面并改造患者/设备页面与路由权限 6. 补充字典及相关领域 e2e 测试并更新文档"
多租户医疗调压系统后端(NestJS + Prisma)
本项目是医疗调压系统后端 MVP,支持 B 端(医院内部)与 C 端(家属跨院视图)两套接口语义。
1. 技术栈
- NestJS(模块化后端框架)
- Prisma(ORM + Schema 管理)
- PostgreSQL/MySQL(按
.env的DATABASE_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/hospitalsGET /b/organization/hospitalsGET /b/organization/hospitals/:idPATCH /b/organization/hospitals/:idDELETE /b/organization/hospitals/:id
- 科室:
POST /b/organization/departmentsGET /b/organization/departmentsGET /b/organization/departments/:idPATCH /b/organization/departments/:idDELETE /b/organization/departments/:id
- 小组:
POST /b/organization/groupsGET /b/organization/groupsGET /b/organization/groups/:idPATCH /b/organization/groups/:idDELETE /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.ts与src/common/http-exception.filter.ts。 - 扩展 RBAC:修改
src/auth/roles.guard.ts与对应 Service 的权限断言。
Description
Languages
TypeScript
61.8%
Vue
32.7%
JavaScript
5.4%