Files
2026-06-18 09:48:05 +08:00

72 lines
3.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# PCM 医护/运营端工作台 (admin-web · T-8.3 / T-8.4)
孕产个案管理平台 **医护端 + 运营/管理端**(个案管理师 / 医生 / 运营 / 管理员)。React Web
信息密度高的专业后台,对接 `backend` 的 caseflow / analysis / ai / redflag / careplan / knowledge / audit 接口。
按登录角色(RBAC)展示对应功能。
UI 依据 `../../3-ui-style-PCM.md` §8:复用品牌主色与字体,但采用中性专业风(不套用孕妇端暖萌风)。
## 技术栈
- Vite + React 18 + TypeScript
- react-router-dom 路由
- 原生 CSS + Design Tokens(专业主题,与孕妇端共享品牌色)
## 开发
```bash
npm install
npm run dev # http://localhost:5174 /api 代理到后端 (默认 http://localhost:3000)
```
先启动后端:在 `../backend` 执行 `npm run start`
## 脚本
- `npm run dev` / `npm run build` / `npm run lint` / `npm run preview`
## 功能(T-8.3
| 模块 | 说明 | 映射 |
|------|------|------|
| 登录 | 医护(个案管理师/医生)登录注册;非医护角色被拒绝进入 | REQ-11、T-2.1 |
| 工作列表 | 在管孕妇列表,按风险排序、搜索、风险筛选 | REQ-2、REQ-3.2 |
| 个案工作台·档案 | 孕妇档案摘要(孕周/预产期/BMI/风险因素/初始与当前风险) | REQ-2 |
| 个案工作台·流程 | 状态机阶段进度,合法流转推进,指派管理师,流转记录 | REQ-6.1/6.2 |
| 个案工作台·预警 | 预警列表,分级 + 可解释 + 规则溯源 | REQ-3.3、NFR-3 |
| 个案工作台·观测 | 观测记录表(指标/数值/孕周/质控状态) | REQ-1 |
| 个案工作台·AI 建议 | 基于风险与未处理预警生成处置建议 + 依据;**高/中风险须人工确认方可采纳,不自动执行** | REQ-10.2/10.3/10.4 |
| 个案工作台·照护计划 | 制定(目标/干预/随访频率)与查看 | REQ-6.3 |
| 个案工作台·红旗检查 | 提交症状/体征快照做红旗急症检查,命中即通知并升级个案 | REQ-5 |
## 运营 / 管理端功能(T-8.4)
| 模块 | 角色 | 说明 | 映射 |
|------|------|------|------|
| 知识库管理 | 运营/管理/医护 | 录入知识条目(分类/标题/内容/关键词/来源/权威级别)、检索与分类过滤、问答测试(验证溯源与不超纲) | REQ-7.1、knowledge:write |
| 审计日志 | 管理员 | 关键操作留痕查询,按操作者/动作过滤 | NFR-1/9、audit:read |
知识库是孕妇端 RAG 问答的**内容来源**:运营录入条目后,孕妇端/工作台问答即可检索并附溯源作答;
无依据时明确告知不超纲。「问答测试」面板让运营在录入后即时验证效果。
## 人工兜底(REQ-10.3
AI 决策建议面板对高/中风险个案显式标注「需人工确认」,建议默认**不执行**;
医护点击「确认采纳」后才记录人工确认(操作者 + 时间),确保系统不自动执行临床决策。
## 角色门控
UI 按 `backend` RBAC 矩阵门控操作:
- 流转推进 / 照护计划:个案管理师、医生
- 指派给我:个案管理师
- 红旗检查:个案管理师
后端为最终授权边界;UI 门控用于减少误操作。
## 对接的接口
`POST /auth/login|register``GET /patients``/patients/:id``/patients/:id/observations`
`/patients/:id/alerts``POST/GET /patients/:id/case``POST /cases/:id/advance|assign`
`POST/GET /cases/:id/care-plans``GET /ai/patients/:id/recommendation`
`POST /patients/:id/redflag-check``POST/GET /knowledge``GET /knowledge/ask``GET /audit`