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

26 lines
2.4 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.
# 多位置签名(第一版)
## 使用
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 拒绝。