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"` } // HealthCheckRecordSummary 是 JKTJ00002(某人全部体检)数组里一条体检的定位字段。 // 完整体检内容(结构同 §11.3)由 osi.Result.Raw 保留,本结构只取定位/列举字段。 // ⚠ 身份证字段是驼峰 idCard(≠ 最近一次 HealthCheckSummary 的小写 idcard)。 type HealthCheckRecordSummary struct { CheckID string `json:"checkId"` // 体检编号;历史记录为 null(→""),仅近年有值 CheckDate string `json:"checkDate"` // 体检日期,历史记录用它定位(checkId 可能缺) IDCard string `json:"idCard"` // 注意驼峰 PersonName string `json:"personName"` } // HealthCheckPerson 是 JKTJLIST00002 已检/未检名单里的一行(人员 + 体检状态,非体检明细)。 // 字段名以实测样本为准(docx 多处有误,见 docs/04 §11.4)。字段稳定且均为字符串,故全部建模。 type HealthCheckPerson struct { CheckType string `json:"checkType"` // 体检状态:0 已检 / 1 未检 IDCard string `json:"idCard"` PersonName string `json:"personName"` PhrID string `json:"phrId"` // 注意驼峰(docx 误写 phrid) EMPIID string `json:"empiId"` Age string `json:"age"` Birthday string `json:"birthday"` // docx 误写 birthDay SexCode string `json:"sexCode"` SignFlag string `json:"signFlag"` // 签约:y 已签约 / n 未签约 Rqbj string `json:"rqbj"` // 人群标志(同 personSign 码表,多值逗号分隔) RegionCode string `json:"regionCode"` RegionCodeText string `json:"regionCodeText"` ManaUnitID string `json:"manaUnitId"` ManaUnitText string `json:"manaUnitText"` ManaDoctorID string `json:"manaDoctorId"` // docx 误写 manadoctorId ManaDoctorName string `json:"manaDocterName"` // 实测拼写就是 Docter Address string `json:"address"` MobileNumber string `json:"mobileNumber"` Contact string `json:"contact"` ContactPhone string `json:"contactPhone"` }