Files
chis_osi/contract/jktj.go
T
ilaandClaude Opus 4.8 0e1915fc2b feat(osi): 体检最近一次查询打通(T-301)
- osi.LastHealthCheck(JKTJLSJL00002 /auto/jktjlscx/query)
- contract.HealthCheckSummary 只强类型化定位字段,完整内容走 Result.Raw
- codes.go 登记 JKTJLSJL00002 + JKTJLIST00002 路由
- 单测:路径/解码/Raw 保留/idcard 小写映射/单键校验(脱敏假数据)
- 实测:单查 JKTJ00002 平台未部署;data 为单对象;身份证字段小写 idcard

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-08 00:45:47 +08:00

20 lines
1.0 KiB
Go

package contract
// 健康体检查询契约(JKTJ)。
//
// 体检记录字段极多(实测最近一次样本约 260 项,分 4 个 object 子节点 +
// 3 个 array 子节点,见 docs/04 §11)。查询场景只需定位/摘要字段即可,
// 完整内容由 osi.Result.Raw 原样保留;全量字段的强类型建模留到体检 create
// 任务(写入映射才真正需要每个字段),避免照单样本猜 null 字段类型。
//
// 注意与档案的两处差异:
// - 最近一次体检 data 是**单个对象**(档案 find 的 data 是数组)。
// - 体检身份证字段是小写 `idcard`(档案是 `idCard`)。
type HealthCheckSummary struct {
CheckID string `json:"checkId"` // 体检记录主键;各子节点用 healthCheck 外键指向它
HealthCheck string `json:"healthCheck"` // 冗余外键,值等于 checkId
IDCard string `json:"idcard"` // 体检用小写 idcard
PersonName string `json:"personName"`
CheckDate string `json:"checkDate"`
}