feat(mapping): 完成 PHIS 健康档案转换(T-212)

This commit is contained in:
ila
2026-07-16 00:53:16 +08:00
parent d385d6dd3b
commit 8a5550057c
20 changed files with 1078 additions and 124 deletions
+10
View File
@@ -340,3 +340,13 @@
- 安全:保留 `/payloads/` 整体忽略规则,并清理新增规则的异常行尾;真实样本不进入 Git。
- 验证:`go test ./...` 通过;`go build ./...` 通过;`git diff --check` 通过。
- 验证:`git check-ignore -v payloads\\441625198611255416_phis_health_record.json` 命中 `.gitignore:50:/payloads/`,真实 PHIS 样本未进入 Git。
## 2026-07-16 T-212 PHIS 健康档案真实结构与转换器
- 状态:DONE。
- RED:`go test ./source -count=1` 初次因缺少 `DecodeHealthRecordTask` 失败;`go test ./contract ./mapping -count=1` 初次因写入字段、稳定 checkId API 和 `MapHealthRecordTask` 缺失失败;`go test ./cache ./osi ./mapping -count=1` 初次命中字典无 ID 校验、映射未校验主数据、OSI 覆盖逐档案操作人三项旧行为。
- GREEN:新增脱敏 `source/testdata/health_record.json` 与 PHIS DTO;完成主体、既往史四数组、生活环境转换和结构化校验;扩充 JKDA 写入契约;字典快照支持医生/机构 ID 校验;OSI 写入保留请求级 `operateUser`。
- 决策:参考 `chis_upload` 的 PHIS 回调契约及多业务样例,健康档案稳定源键使用 `archId`,`businessId` 只用于 trace/回写,`empiId/phrId` 属于 CHIS 标识;`archId` 缺失不回退。ADR:`docs/decisions/001-phis-health-record-source-key.md`。
- 安全:真实 PHIS payload 未复制入仓库;fixture 使用占位身份信息和假凭据,生产 DTO 不声明 `sxtAccount/sxtPassword`。
- 验证:`go test ./source -count=1`、`go test ./contract ./mapping -count=1`、`go test ./cache ./osi ./mapping -count=1`、`go test ./... -count=1`、`go vet ./...` 均通过。
- 下一步:T-213 健康档案 query-first upsert 应用编排。