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

4.2 KiB

clinical-web

医签通医护端 Web 应用,面向医生、护士、科室人员和系统管理人员。

使用场景

  • 电脑浏览器;
  • 电子病历 iframe 嵌入;
  • 护士站电脑;
  • 后续可适配医院平板;
  • 电脑连接外接签字板。

签字板是医护端的一种硬件签署渠道,不是独立的移动端应用。

核心职责

医生端

  • 从电子病历中发起知情同意;
  • 自动带入患者、就诊和医嘱信息;
  • 选择文书模板;
  • 确认已完成病情解释;
  • 发送手机签署或打开现场签署。

护士/现场端

  • 调出待签署任务;
  • 协助患者使用签字板;
  • 查看签署结果和异常状态。

护士可以协助操作,但不应被系统误记为病情解释人员。

管理端

  • 文书模板和版本管理;
  • 用户、角色和文档权限;
  • 签署记录查询;
  • 统计和报表;
  • 设备及系统配置。

重点业务流程

电子病历中选择患者
→ 选择就诊/医嘱/项目
→ 选择或生成文书
→ 医生完成解释并发起
→ 手机、二维码或签字板签署
→ 查看状态
→ 回传电子病历

需要支持的异常

  • 患者拒绝签署;
  • 患者或家属无法联系;
  • 实际陪同人和登记手机号不一致;
  • 签署链接过期;
  • 文书需要动态追加;
  • 急诊抢救紧急例外;
  • 签署成功但回传失败。

当前技术栈

Vue 3
TypeScript
Vite
Vue Router
Pinia
Element Plus
Axios

TanStack Vue Query、PDF 预览、报表图表、自动化测试和签字板适配器暂不接入,等真实接口和业务流程稳定后再按需要增加。

签字板调用应通过独立的 signature-adapter 或本地桥接服务封装,业务页面不直接绑定具体厂商 SDK。

非目标

  • 不在前端自行判断最终签署法律效力;
  • 不在医护端直接修改已经签署的正式文书;
  • 不把患者完整病历发送到患者手机端。

当前状态

已完成 Vite 基础初始化、路由、Pinia、原型主题 CSS、登录页、首页、签署工作台第一版 Mock 和文档库管理页面。报表、用户权限、文档权限和系统设置仍保留页面骨架;登录和签署流程使用演示数据,尚未接入真实后端。

当前路由结构

公开页
└─ /login                       登录页

ClinicalLayout
├─ 工作台
│  ├─ /workbench/home              首页
│  └─ /workbench/signing           签署工作台
└─ 管理
   ├─ /management/documents        文档库管理
   ├─ /management/reports          报表分析
   ├─ /management/users            用户与权限
   ├─ /management/document-permissions  文档权限
   └─ /management/settings         系统设置

布局拆分为 MenuHeaderContainer 三个公共组件,页面内容由各自的 View 负责。

页面目录按业务域组织:auth 保留登录页;工作台页面位于 views/workbench;管理页面位于 views/management。每个具体页面目录都有 index.vue 入口和 components 目录,用于继续拆分当前页面组件。

跨页面复用的业务组件和 composable 不放在具体 View 目录中:

  • components/signing/NewSigningTaskDialog.vue:新增签署任务公共弹窗,供签署工作台和文档库管理复用;
  • composables/useSigningTaskForm.ts:封装患者定位、就诊选择、模板选择、签署方式、校验和任务提交状态。

API 与类型约定

API 模块与页面按业务域对应。工作台页面使用 api/workbench 下的页面文件,管理页面使用 api/management 下的直接文件:

  • api/workbench/home.ts
  • api/workbench/signing.ts
  • api/management/documents.ts
  • api/management/reports.ts
  • api/management/users.ts
  • api/management/document-permissions.ts
  • api/management/settings.ts

API 请求和响应类型按业务域放在 api/workbench/types.tsapi/management/types.ts;页面展示和交互类型放在对应 View 目录的 types.ts;全局复用类型放在 types/common.ts

所有接口统一使用 utils/request.ts 导出的单例请求实例。当前 API 模块默认返回 mock 数据,设置 VITE_USE_MOCK=false 后切换为真实接口。