Files
xh-medical-sign-web/MULTI_SIGNATURE.md
T

2.4 KiB
Raw Blame History

多位置签名(第一版)

使用

  1. 在文书编辑器插入多个签名占位符,可自定义显示名称。重复插入同类签名时自动分配新的位置 ID。
  2. 分别选中位置:没有坐标时自动识别并填入;已有坐标时保留原值,可拖动预览阴影或手动修改数值。识别失败会显示具体原因并提供重试。最后保存、审核发布模板版本。
  3. 基于新版本发起任务。患者 H5、现场鼠标签署页均按位置提供独立画布。
  4. 填写所需位置后点击确认,核对已填写数量,再完成整次签署。没有必签、角色限制或任选组规则;可部分填写,也可全部留空后明确确认。
  5. 已签文书和签署记录按位置恢复图片。正式结果以服务端 PDF 为准。

已发布版本和既有任务不会自动增加签名位置,需发布新版本并重新发起任务。

接口与存储

  • 新接口:POST /api/v1/sign-deliveries/{taskId}/signatures(multipart)。
  • files:零至多张 PNG,重复同名 part;metadata:与文件顺序一一对应的 JSON 数组,每项包含 fieldId、图片尺寸、大小、SHA-256、MIME,可附带模板坐标断言。
  • deliveryId、uploadToken、signer 与原接口一致;Idempotency-Key 必填。signer 继续记录本次任务的确认信息,不用于判断各位置由哪个角色签署。
  • 未提交的位置留空;空数组表示用户明确确认无图片的签署。服务端按模板 ID 校验,再从最终排版读取各位置的真实坐标,整组成功后提交任务状态。现有科室复核配置仍适用。
  • 保留旧的单图片 /signature 接口兼容已有调用方。
  • 为兼容现有三类产物事务和故障清理,多个 PNG 的像素无损合并为一张证据图(SIGNATURE_IMAGE)。产物 metadata 的 signatures 数组记录每张图片的原始摘要、证据图裁剪区域和实际 PDF 位置。正式 PDF 使用各自原图合成;前端从证据图恢复各位置图片。空确认保存空列表和透明 1px 证据图。
  • 单图限 5 MiB,请求图片合计限 20 MiB;证据图最大 4096×4096、5 MiB。位置 ID 不可重复,已提交的位置必须能在正文中唯一定位。

验证

后端 MultiSignatureTest 覆盖不同页面的两张签名实际像素、部分签名、空确认、重复/非法位置及存储失败不完成任务。模板定位测试覆盖多个独立 ID 和重复 ID 拒绝。