EL 2bfe8ac8c8 新增上传资产模型与迁移,支持 IMAGE、VIDEO、FILE 三类资产管理
新增 B 端上传接口与列表接口,统一文件上传和分页查询能力
上传能力支持医院级数据隔离:系统管理员需显式指定医院,院内角色按登录医院自动隔离
图片上传自动压缩并转为 webp,视频上传自动转码并压缩为 mp4,普通文件按原始类型存储
增加上传目录与公开访问能力,统一输出可直接预览的访问地址
前端新增影像库页面,支持按类型筛选、关键字检索、分页浏览、在线预览与原文件访问
前端新增通用上传组件,支持在页面内复用并返回上传结果
管理后台新增影像库菜单与路由,并补充页面级角色权限控制
患者手术相关表单接入上传复用能力,支持术前资料与设备标签上传回填
新增上传模块 e2e 用例,覆盖成功路径、权限矩阵与关键失败场景
补充上传模块文档与安装依赖说明,完善工程内使用说明
2026-03-20 04:35:43 +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-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%