Files
xh-medical-sign-web/README.md

110 lines
4.0 KiB
Markdown
Raw 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.
# medical-sign
医签通(医疗知情同意电子签署平台)前端项目。
## 当前状态
已完成两个 Vite 应用的基础初始化、ESLint + Prettier 工程化配置,以及第一版业务页面骨架:
- `clinical-web`:医护端布局、工作台、签署任务、文书库、报表和设置页面;
- `patient-h5`:签署入口、文书确认、签署人信息、手写签名和结果页面;
- 默认仍使用演示数据,但医护端已按 MEDISIGN 接口文档接入登录、患者/就诊、模板、签署任务、文件产物、投递、用户组织和模板权限等真实接口;患者 H5 已接入一次性 Token 消费和签名上传请求;
- `packages` 目录暂时保留,等接口和公共类型稳定后再接入共享包。
## 项目定位
医签通用于管理医疗知情同意文书的生成、签署、回传、校验和审计,核心对象是:
> 患者 + 就诊 + 医嘱/项目 + 签署任务 + 文书版本 + 签署证据
目标流程:
```text
医生在电子病历中发起
→ 患者或家属通过手机 H5 / 现场签字板签署
→ 医签通保存签署证据
→ 结果回传电子病历
→ 收费、检查或治疗前校验
```
## 目录结构
```text
medical-sign/
├─ clinical-web/ 医护端、电子病历嵌入端和管理功能
├─ patient-h5/ 患者/家属手机签署端
└─ packages/
├─ api-client/ 公共接口客户端
└─ types/ 公共 TypeScript 类型
```
## 前端规划
### clinical-web
面向医生、护士和系统管理人员,电脑端优先,后续可适配医院平板。
计划包含:
- 电子病历嵌入入口;
- 患者、就诊和医嘱关联;
- 签署任务创建和查询;
- 手机签署和签字板签署;
- 文书模板、版本、权限和报表;
- 签署结果回传及异常处理。
### patient-h5
面向患者和家属的手机网页,不是完整的移动版电子病历。
计划包含:
- 短信/二维码打开;
- 身份和签署人关系确认;
- 阅读知情同意文书;
- 勾选同意/不同意项目;
- 手写签名和提交;
- 成功、过期、拒签和异常状态展示。
### packages
存放两个前端共同使用的类型、接口和基础逻辑,不单独部署。
## 技术栈规划
- 医护端Vue 3 + TypeScript + Vite + Vue Router + Pinia + Element Plus + Axios
- 患者端Vue 3 + TypeScript + Vite + Vue Router + Axios移动端先使用原生 Canvas 完成签名演示;
- 接口数据:先通过 Axios 封装请求,接口稳定后再评估 OpenAPI 类型生成;
- 服务端数据:医护端后续再评估 TanStack Vue Query
- 测试:待最小业务闭环稳定后再补充 Vitest + Playwright。
## 开发原则
- 签署任务必须尽量关联具体就诊和医嘱/项目;
- 解释医生、实际签署人和协助操作人员需要分别记录;
- 术中新增处置应创建追加签署任务,不修改已签署文书;
- 文书版本、签署时间、签署渠道和文档哈希必须可追溯;
- 前端不负责最终权限和签署有效性判断,后端必须重新校验;
- 患者 H5 不在 URL 中暴露身份证号、完整病历等敏感信息。
## 构建与部署规划
两个应用分别构建为 ```dist```
```text
clinical-web/dist/ → 医护端网页
patient-h5/dist/ → 患者手机签署网页
```
```packages``` 中被使用的代码会在构建时打包进对应应用。生产环境不需要部署 ```node_modules``` 或 ```packages``` 源码。
医护端通常部署在医院内网;患者 H5 如果需要院外访问应通过医院安全网关、DMZ 或反向代理提供服务。
## 后续工作
1. 用真实调研结果校准页面字段、状态和角色权限;
2. 完成“医护端发起 → 患者 H5 签署 → 结果回传”的最小闭环;
3. 再接入 `packages` 中的公共类型和接口客户端;
4. 验证电子病历 iframe、单点登录和签字板调用
5. 补充收费拦截、动态补签和急诊例外流程。