106 lines
3.0 KiB
Markdown
106 lines
3.0 KiB
Markdown
# 多租户医疗调压系统后端(NestJS + Prisma)
|
||
|
||
本项目是医疗调压系统后端 MVP,支持 B 端(医院内部)与 C 端(家属跨院视图)两套接口语义。
|
||
|
||
## 1. 技术栈
|
||
|
||
- NestJS(模块化后端框架)
|
||
- Prisma(ORM + Schema 管理)
|
||
- PostgreSQL/MySQL(按 `.env` 的 `DATABASE_URL` 决定)
|
||
- JWT(认证)
|
||
- Swagger(接口文档)
|
||
|
||
## 2. 目录结构
|
||
|
||
```text
|
||
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`:
|
||
|
||
```env
|
||
DATABASE_URL="postgresql://user:password@127.0.0.1:5432/tyt?schema=public"
|
||
JWT_SECRET="请替换为强随机密钥"
|
||
JWT_EXPIRES_IN="7d"
|
||
SYSTEM_ADMIN_BOOTSTRAP_KEY="初始化系统管理员用密钥"
|
||
```
|
||
|
||
## 4. 启动流程
|
||
|
||
```bash
|
||
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.ts` 与 `src/common/http-exception.filter.ts`。
|
||
- 扩展 RBAC:修改 `src/auth/roles.guard.ts` 与对应 Service 的权限断言。
|