Commit Graph
54 Commits
Author SHA1 Message Date
xy 8106f66dc5 merge: 合并远程更新并保留签名与报表接入 2026-09-30 18:31:36 +08:00
yelan 390f1d1bc1 fix(workbench): 移除签署记录查询页顶部介绍区块 2026-09-30 18:25:26 +08:00
xy e5f0a5ec97 feat(sign): 支持多位置签名并优化坐标识别与模板版本校验 2026-09-30 18:14:22 +08:00
yelan 5ed6779ec6 fix(workbench): 首页待办上限改为 3 条并修正趋势图尺寸
- TODO_LIMIT 由 5 调整为 3,同步更新接口文档默认值
- 趋势图 viewBox 与画布尺寸对齐原型 560×190
- 趋势卡改为弹性布局,图表贴底避免留白
2026-09-30 18:05:27 +08:00
yelan 74cb192e4c feat(workbench): 首页对齐原型并重构趋势与待办数据口径 2026-09-30 17:39:00 +08:00
xy c2984bfd98 feat(font): 新增字体设置并统一医护端与患者端文书字体 2026-09-30 08:35:02 +08:00
yelan 825dad25a5 Merge branch 'master' of https://gitea.xinyuxi.com/zhanggaoming/xh-medical-sign-web 2026-09-29 22:18:01 +08:00
yelan 095751189a chore(records): 暂时隐藏签署记录详情左栏与次要下载出口 2026-09-29 22:17:59 +08:00
cnxianyi 9173d623a1 feat: enable patient form interactions and revision-aware signing 2026-09-29 21:37:30 +08:00
cnxianyi 09bcf20def feat: 提交 2026-09-29 18:49:45 +08:00
xy 8d8fa2af47 feat: 提交 2026-09-29 15:50:21 +08:00
xy c4363889b1 fix(sign): 对齐签署操作权限校验 2026-09-28 22:37:22 +08:00
xy f7804d476d fix(sign): 补齐模板查询院区参数 2026-09-28 21:04:03 +08:00
xy 8024075439 feat(sign): 补齐医护端与患者端签署流程 2026-09-28 19:57:57 +08:00
yelan 2a0681287c feat(签署工作台): 按原型分流签名位点击,Pad 任务就地落笔并补齐弹窗标题 2026-09-27 18:55:23 +08:00
yelan c6262726d7 feat(线上签署): 模拟器支持短信/公众号双入口并补齐身份校验与完整文书展示 2026-09-27 17:07:41 +08:00
yelan ea5a248a0c feat(签署工作台): 补齐短信/公众号发送弹窗与 Pad 定位签名位流程 2026-09-27 16:50:13 +08:00
yelan 431dd2cd6f refactor(文书纸): 统一 A4 纸规格并收敛各渲染场景的纸宽与页边距 2026-09-27 13:54:15 +08:00
yelan 397fc5cc93 refactor(签署工作台): 移除页面介绍区以精简布局 2026-09-27 09:47:59 +08:00
yelan cc1ef72320 refactor(签署工作台): 按原型精简筛选条为日期/状态/搜索并改为输入即筛 2026-09-27 09:27:26 +08:00
yelan 3cb174ce0c refactor(文书预览): 抽出统一的文书纸与预览弹窗,消除五处重复渲染
预览原先在 5 个地方各写一遍(文书库预览、编辑器签署预览、发起签署弹窗预览、
工作台在线预览、工作台文书区),基础排版已经分叉:表格边框 #52646e 与 #c8d7dd
两套色、单元格内边距 5px 7px 与 5px 9px 两个值、只有两处带宋体。
原型本身是「一处渲染(.paper + fillDocHtml)、两种外框」,这次按那个形状收口。

新增
- utils/document-paper.ts:基础排版的**唯一一份** CSS(p / h1-h4 / 表格 / 宋体)。
  运行期幂等注入 head —— 因为同一份纸有两条渲染通道:v-html(吃全局样式)与
  iframe srcdoc(隔离模板自带 style,只能吃字符串),各写一份必然漂移。
- components/document/DocumentPaper.vue:唯一的纸渲染器。
  signing / raw 两模式、interactive、取值还原、☑☐ 就地切换、签名位请求采集、
  填写项与勾选上报、getDocumentElement()(供导出 PDF)。
- components/document/DocumentPreviewDialog.vue:唯一的预览外框。
  标题/副标题/徽标、可选页签、加载与错误态、纸舞台(浅色卡片 / 深灰 A4)、
  #footer 与 #empty 插槽。
- styles/document-preview.css:页脚按钮等**插槽内容**要用的类。
  插槽节点带的是父组件 scope id,弹窗的 scoped 样式命中不了 —— 与
  signing-document.css 同一类问题,同一套解法。

迁移
- 文书库预览、编辑器签署预览、发起签署弹窗预览、工作台在线预览全部改走统一组件;
  SigningDocumentInteractive 的纸换成 DocumentPaper,只留任务外壳
  (横幅 / 作废章 / 填写项进度)。
- 删除四处基础排版副本;SimSun 与 :deep(table) 现在各只剩一处。

行为保持
- 文书库预览仍是两个页签(文书内容走 iframe 隔离、签署预览走 v-html),
  没有正文时仍给占位版式(占位符写成 {患者姓名} 原始形态,不预填示例值)。
- 工作台预览的深灰 A4 舞台、页脚说明与两个出口按钮不变。
- 作废章原先是纸的兄弟节点、DOM 顺序在前,纸改成自带白底后会被盖住 ——
  给章补 z-index,并在探针里加命中测试锁死。

验证
- 新增 probe-doc-paper.cjs:31/31 PASS。核心是**计算样式**断言
  (边框色 / 内边距 / 宋体 / border-collapse),并断言文书库预览与编辑器预览
  两份纸的样式**逐项一致** —— 只看 DOM 存在证明不了"只有一份排版"。
- 回归:probe-new-task 104/104、probe-workbench-lib 46/46(新增作废章命中测试)、
  probe-dept-confirm 36/36、probe-method-domain 14/14、probe-report-analytics 92/92。
- vue-tsc 与 eslint 0 错。

净减 888 行(309 增 / 1197 删)。
2026-09-26 20:56:02 +08:00
yelan 8c70f01e2e feat(签署任务): 新增「待科室确认」节点整条链路
原型 V10.2 的 needConfirm:检验 / 基因检测 / 自费类文书要求患者签完之后
由科室再复核签章,避免漏签补签。此前仓库完全没有这个节点,现在补全。

状态模型
- SigningTaskStatus 增加 confirming(待科室确认),BackendSigningTaskStatus 增加
  WAITING_CONFIRM;文档侧 DocumentRecord / TemplateResponseDto / SigningTemplate /
  CreateSigningTaskInput 增加 needConfirm。
- normalizeTaskStatus、mapSigningTask、mapDocument、toBackendTaskQuery 的 statusMap、
  mapAvailableTemplate、readLocalSigningTemplates 同步;needConfirm 取不到一律按 false,
  不凭空给任务多插一道人工节点。

流转
- completeSigningTask 按 needConfirm 决定落 confirming 还是 signed;
  新增 confirmDepartmentSigning(科室复核签章 → 已签署)。
  真实模式暂未接入(后端要重做),如实提示"待接入",不前端自己改状态。
- 任务事件与记录页事件补「已推送至 X 确认队列」「科室复核签章完成,文档归档」两条留痕。

工作台
- 列表徽标走 .task-status--confirming(原型 tg-cfm 橙),状态筛选加「待科室确认」。
- 详情动作按原型给:🏛 科室复核签章(确认完成)+ 催办 + 在线预览 + 下载已签 PDF;
  该状态下不给「作废」(原型只在待签署/已超时给)。
- 新增「科室确认节点」卡(待患者签署后 / 待科室确认 / ✓ 已确认三分支)——
  原型放在文书签名区那一格,这里做成紧跟文书的独立卡,真实模板与回退纸样都能显示。
- confirming 时文书只读(患者已签完,不该再改填写项)。
- 签署完成提示语按 needConfirm 分流:需科室确认的说「已流转至科室确认节点」,
  否则说「签署完成,文档已归档」—— 一律说"完成"会让人以为可以关页面了。
- 新增权限码 sign:task:confirm / sign:task:remind。

记录查询与报表
- 记录查询状态筛选与演示数据加该状态(2 条样本)。
- 报表 STATUS_LABELS / STATUS_COLUMNS / ReportStatusCounts / ReportGroupRow 加这一栏,
  单独成列不并进「已签署」——并进去会让已签署虚高,科室复核本来就是这类文书的卡点。
- 时效样本按「有签署用时」取,待科室确认同样计入;总览统计块加一块。

演示数据
- 工作台补 task-009(confirming + needConfirm),否则该状态的徽标、动作、
  筛选、报表栏在演示环境里一次都走不到。
- 注意:演示文库的麻精同意书**没有** needConfirm(原型里也确实没有),
  所以「新建任务 → 签署 → 落待科室确认」这条流转靠探针夹具验证,没有改产品种子。

验证:probe-dept-confirm.cjs(新建)36/36 PASS,含真实落笔签署后落待科室确认;
回归 probe-new-task 104/104、probe-method-domain 14/14、probe-workbench-lib 42/42、
probe-report-analytics 92/92(断言按七状态更新);vue-tsc 与 eslint 0 错。
2026-09-26 20:09:00 +08:00
yelan 82acc03442 feat(签署工作台): 补代签标签、关联处方卡、线上等待态与只读副本
按原型 V10.2 详情页补齐四块:

- 任务列表「代签」标签(原型 .vtag.chk 橙底):SigningTaskRecord 增加
  signerType / signerRelation,仅签署人非「本人」时显示。
  有意偏离:关系为空时不输出空括号(原型会渲染成「家属代签()」)。
- 「关联处方」可折叠卡(原型 rxCard):新建 api/workbench/prescriptions.ts
  统一处方来源,把弹窗里那份搬过来消除重复,并新增详情用的 7 列明细。
  原型两处处方口径本就不同(弹窗按就诊号哈希、详情按任务号派生),分开维护不合并。
  真实模式返回空 → 整卡不渲染,不显示空表(会被读成「系统查过了,确实没处方」)。
  顺带按原型调了详情卡片顺序:文书 → 签署文件 → 关联处方 → 操作留痕。
- 短信 / 公众号待签署的等待态(原型 .tg-wait):号码取后端 smsMobileMasked,
  没有值时不拼号码,不拿患者档案里的号码冒充发送目标。
- 已签署的「在线预览(PDF)」与「只读副本」:
  预览弹窗复用 SigningDocumentInteractive(只读态),保证预览 / 工作台 / 导出 PDF
  三处版式一致;只读副本走 signing-pdf 新增的 watermark 选项,
  在 html2canvas 克隆体上平铺斜排水印,审计编号直接用任务号。
  水印行数按克隆体 scrollHeight 算,写死行数会让长文书下半部分没水印。
2026-09-26 19:45:40 +08:00
yelan 8ec55e48c9 feat(签署方式): 扩展为手写板/短信/Pad/公众号四种并集中口径 2026-09-25 12:09:58 +08:00
yelan 78402859fd feat(报表分析): 新增签署总览等四个报表菜单并拆分演示数据开关 2026-09-24 21:03:39 +08:00
yelan c4718a3912 feat(签署记录): 新增签署记录查询页并复用签署任务接口 2026-09-24 19:52:28 +08:00
yelan 5ea79178cb feat(签署文书): 统一签署态文书样式并精简演示种子为单份麻精同意书 2026-09-24 17:08:12 +08:00
yelan 9a6ac93e21 feat(signing): 将签署占位符改为原子节点并支持多选选项组 2026-09-24 12:13:24 +08:00
yelan 93fb5fd2c4 fix(signing): 修复长文书滚动布局 2026-09-22 10:31:08 +08:00
yelan 0d3eb2b9ad feat(signing): 支持点击文中签名位就地采集签名 2026-09-18 13:03:25 +08:00
yelan 711860969a Merge branch 'master' of https://gitea.xinyuxi.com/zhanggaoming/xh-medical-sign-web 2026-09-17 16:48:59 +08:00
yelan 97c5182ba4 feat(文书管理): 增加版本工作流与版本历史
- 模板状态按后端原始状态展示与筛选,待审核与已驳回分开展示
- 仅已发布模板可发起签署,新增提交审核/审核通过/驳回等动作
- 新增版本历史弹窗,复用统一的模板时间格式化方法
- 演示数据补齐已签署任务的签名图,并提供获取签名 dataURL 的接口
- 修复编辑器插入占位符时未定位光标导致内容落到文首的问题
2026-09-17 16:44:54 +08:00
xy 61b4b19f55 fix(auth): 完善权限控制与强制改密流程 2026-09-17 16:33:09 +08:00
yelan 81922d774f feat(文档库): 打通模板正文真实模式并新增渲染验证
模板列表接口不返回正文,展示、编辑与发起签署前需再取版本详情获取 contentHtml,
为此新增 getTemplateContent、createTemplateWithContent、updateTemplateContent 与
deleteTemplate(归档),并在签署端按 contentSha256 缓存正文快照。

同时新增 scripts/login.cjs 与 scripts/verify-pages.cjs,通过真实登录与 CDP
渲染截图、断言关键内容并收集运行时错误,并补充 .gitignore、eslint 忽略与文档说明。
2026-09-17 14:10:45 +08:00
yelan 0d271d90be fix(签署文书): 按字段分配页眉取值下划线宽度 2026-09-16 17:35:45 +08:00
yelan 51ec0f393d feat(signing): 前端生成签署后 PDF 原型 2026-09-16 17:24:02 +08:00
yelan 2279f7a624 feat(signing): 统一演示文书库并支持下载签名原图 2026-09-16 17:15:10 +08:00
yelan 4556515c17 feat(签署): 文书作废状态展示作废章与文案 2026-09-16 17:00:53 +08:00
yelan ecac2bc899 feat(signing): 文书签署页添加 HIS 患者信息页眉
新增固定页眉展示患者姓名、性别、年龄、住院号/门诊号,取值自动来自 HIS
快照,仅作只读展示不参与填写项统计与签署证据。同时按字段键去重填写
项进度统计,避免正文与页眉重复字段导致分母虚高;并在文书编辑器中提
示页眉由系统自动带出、Word 自带页眉不会被转换。
2026-09-16 16:49:20 +08:00
yelan 5361839cf2 feat(签署): 支持文书填写项与签名回显 2026-09-16 15:54:40 +08:00
yelan c7da24cef6 feat(签署): 保存并还原患者勾选结果
签署完成时将患者勾选的条目固化到任务记录,重新打开已签署文书时还原勾选状态,重新发起签署则清空历史勾选。
2026-09-14 15:36:19 +08:00
yelan 5c5a8fc90b feat(documents): 抽取签署文书渲染管线并新增签署预览 2026-09-14 11:06:58 +08:00
yelan ff67f88696 build(deps): 移除 ckeditor 和 tiptap 相关依赖 2026-09-14 09:38:24 +08:00
yelan 545326bd81 feat(signing): 签署任务固化文书 HTML 并交互化渲染 2026-09-14 09:13:07 +08:00
yelan e52f203123 feat(workbench): 接入工作台首页概览聚合接口 2026-09-02 13:17:40 +08:00
yelan dc86ee9149 fix(workbench): correct home overview aggregation 2026-09-01 15:34:59 +08:00
yelan 5b2cc33038 fix(signing): align workbench with MEDISIGN contract 2026-09-01 14:50:07 +08:00
yelan beeb98d18f feat(workbench): 接入签署投递与产物管理 2026-09-01 10:12:22 +08:00
yelan 9c1b2f53a6 feat(signing): 接入工作台任务操作与审计 2026-08-31 16:08:47 +08:00
yelan 1e2ff79b0c feat(clinical-web): 新增签署任务弹窗与文档库管理页面 2026-08-28 15:35:20 +08:00