diff --git a/docs/01-OSI接口规范分析.md b/docs/01-OSI接口规范分析.md index 3ec55dc..ced9643 100644 --- a/docs/01-OSI接口规范分析.md +++ b/docs/01-OSI接口规范分析.md @@ -148,12 +148,15 @@ | --- | --- | --- | | 生活自理能力评估·创建 | `/osi/api/lnrzlpg/create` | `LNRZLPG00001` | | 生活自理能力评估·更新 | `/osi/api/lnrzlpg/update` | `LNRZLPG00003` | -| 生活自理能力评估·查询/列表 | (清单第 14/17 项) | 待确认(推断 `LNRZLPG00002`) | +| 生活自理能力评估·查询 | `/osi/api/auto/lnr/query` | `LNRZLPG00002`(厂家查询文档给出,待真实联调确认) | +| 生活自理能力评估·列表 | (清单第 14 项) | 待确认 | | 中医体质辨识·创建 | `/osi/api/lnrzyygl/create` | `LNRZYTZ00001` | | 中医体质辨识·更新 | `/osi/api/lnrzyygl/update` | `LNRZYTZ00003` | | 中医体质辨识·查询/列表 | (清单第 11 项) | 待确认(推断 `LNRZYTZ00002`) | > 注意路径与 serviceId 的命名不一致:中医体质辨识的**路径**用 `lnrzyygl`,而 **serviceId** 用 `LNRZYTZ`。对接时以文档逐条为准,不要据路径猜 serviceId。 +> +> 2026-07 新增《老年人生活自理能力评估查询服务》:查询参数表明确 `LNRZLPG00002` 与 `/auto/lnr/query`,但请求样例错写为 `LNR00004` 且省略通用 `uploadinfo.manageInfo`。实现应以参数表和已实测的统一查询信封为准,真实请求后再标记确认。 ### 5.4 中医健康指导(ZYJKZD) diff --git a/docs/04-字段与接口映射.md b/docs/04-字段与接口映射.md index 8c784f7..67da98d 100644 --- a/docs/04-字段与接口映射.md +++ b/docs/04-字段与接口映射.md @@ -18,6 +18,7 @@ | JKTJLIST00002 | `/auto/jktjlist/query` | `ListHealthCheckPeople` | (查询) | | JKTJLSJL00002 | `/auto/jktjlscx/query` | `LastHealthCheck` | (查询) | | LNRZLPG00001 | `/lnrzlpg/create` | `CreateElderlySelfCare` | `elderly_self_care` | +| LNRZLPG00002 | `/auto/lnr/query` | `QueryElderlySelfCare` | (查询,待联调确认) | | LNRZLPG00003 | `/lnrzlpg/update` | `UpdateElderlySelfCare` | `elderly_self_care` | | LNRZYTZ00001 | `/lnrzyygl/create` | `CreateTCMConstitution` | `tcm` | | LNRZYTZ00003 | `/lnrzyygl/update` | `UpdateTCMConstitution` | `tcm` | @@ -143,7 +144,8 @@ checkId = 截断20位( 编码( 源系统标识 | dataType | 源记录主键 [ | 以下接口的完整字段表 docx 未充分给出或存在坑点,建模时以联调样本为准并在此登记: - [ ] 体检 `jktj/create` 全量字段(hcData/lsData/exaData/aeData,体量最大) -- [ ] 老年人自理评估 `lnrzlpg` 字段 +- [x] 老年人自理评估 `lnrzlpg` **查询**字段 —— 厂家查询文档已给出,待真实联调确认,见 §13 +- [ ] 老年人自理评估 `lnrzlpg` 创建/更新字段 - [ ] 中医体质辨识 `lnrzyygl` 字段 - [ ] 中医健康指导 `zyjkzd` 字段 + serviceId - [x] 个人档案查询 JKDA00002 的请求信封与返回结构 —— 已联调实测,见 §8 @@ -360,3 +362,41 @@ T-206 已建立本地契约与客户端方法,真实写入验收暂未执行 | `phrId` | string | 健康档案号,响应为驼峰 `phrId` | Go 侧契约应从只承接 `personSign` 优化为完整承接 `personSign/idCard/phrId`,server 端点原样回写平台 JSON,避免裁掉后续可能新增字段。 + +--- + +## 13. 老年人生活自理能力评估查询 · 厂家文档契约(待联调确认) + +> 来源:2026-07 新增《老年人生活自理能力评估查询服务.docx》。文档中 `serviceId` 参数表与请求样例冲突;以下以参数表的 `LNRZLPG00002` 为实现候选,真实请求成功后才能升级为实测契约。 + +### 13.1 请求 + +- `POST /osi/api/auto/lnr/query` +- `serviceId`: `LNRZLPG00002` +- 信封沿用实测查询格式:`{"serviceId", "uploadinfo": {"baseInfo", "manageInfo"}}`。docx 样例遗漏了 `uploadinfo/manageInfo`,不可照搬。 + +`baseInfo` 字段: + +| 字段 | 必填 | 说明 | +| --- | --- | --- | +| `idCard` | ✅ | 身份证件号 | +| `phrId` | 否 | 健康档案编号 | +| `checkId` | 否 | 第三方检查主键 | + +### 13.2 响应 + +`data` 为评估记录数组。每条记录包含: + +| 维度 | 原始值 | 等级 | 评分 | +| --- | --- | --- | --- | +| 进餐 | `jc` | `jcdj` | `jcpf` | +| 梳洗 | `sx` | `sxdj` | `sxpf` | +| 穿衣 | `cy` | `cydj` | `cypf` | +| 如厕 | `rc` | `rcdj` | `rcpf` | +| 活动 | `hd` | `hddj` | `hdpf` | +| 总评 | `zp` | `zpdj` | `zpfs` | + +- 等级统一为:`1` 可自理、`2` 轻度依赖、`3` 中度依赖、`4` 不能自理。 +- 定位和审计字段:`phrId`、`checkId`、`createUnit`、`createUser`、`createDate`、`inputDate`、`inputUser`、`inputUnit`。 +- docx 仍误写成功码为 `"1"`;项目统一按现有 `IsSuccessCode` 兼容处理,实测成功基线仍为 `"01"`。 +- docx 请求样例错误写为 `"serviceId":" LNR00004"`,不能用作实现依据。 diff --git a/docs/06-厂家联调清单.md b/docs/06-厂家联调清单.md index fc4330d..4bb318b 100644 --- a/docs/06-厂家联调清单.md +++ b/docs/06-厂家联调清单.md @@ -38,10 +38,10 @@ | # | 需要确认 | 状态 | 厂家答复 | |---|---|---|---| -| B1 | 缺失的**列表/查询接口路径 + serviceId**:档案列表查询、老年人自理评估「列表」与「查询」、中医体质辨识「列表」、中医健康指导「列表」与「查询」 | 待要 | | +| B1 | 缺失的**列表/查询接口路径 + serviceId**:档案列表查询、老年人自理评估「列表」、中医体质辨识「列表」、中医健康指导「列表」与「查询」 | 部分 | 自理评估「查询」已收到独立文档:`/auto/lnr/query` + `LNRZLPG00002`,待真实联调确认 | | B2 | **中医健康指导 zyjkzd** 的 serviceId + 完整字段表 | 待要 | | | B3 | 确认 `jkda/find` 的 serviceId 是否为 `JKDA00002`(docx 样例误写成 `TNB00004`) | 已确认 | ✅联调实测 `JKDA00002` 正确 | -| B4 | 老年人自理/体质**查询**的 serviceId(我方推断 `LNRZLPG00002`/`LNRZYTZ00002`) | 待要 | | +| B4 | 老年人自理/体质**查询**的 serviceId(我方推断 `LNRZLPG00002`/`LNRZYTZ00002`) | 部分 | 自理查询文档给出 `LNRZLPG00002`,仍需真实请求确认;体质查询仍待厂家提供 | | B5 | 体检 `jktj/create` 的**完整字段表**(hcData/lsData/exaData/aeData,体量最大) | 待要 | | | B6 | 字段名/类型不一致点核对:`jzsfqn` vs `jzsfq`、`addressNumber` vs `adressNumber`、`familyMiddle`/`pastHistory` 是 object 还是 list | 部分 | JKDA00002 **响应**侧确认:`adressNumber`(缺 d)、`pastHistory`/`familyMiddle`=object(docs/04 §8);创建**入参**拼写仍待核 | diff --git a/docs/current-state.md b/docs/current-state.md index b5c33fc..29352bc 100644 --- a/docs/current-state.md +++ b/docs/current-state.md @@ -6,7 +6,7 @@ ## 当前快照 - 日期:2026-07-09 -- 阶段:**Phase D 创建/更新代码基线完成,真实写入验收受阻;T-210 公开查询 HTTP API 已完成**;T-001~T-006、T-201、T-203、T-102、T-202、T-205、T-101、T-103、T-209、T-210 已验收;T-206 已完成本地契约/客户端/映射组装代码,但未执行真实 `JKDA00001` create +- 阶段:**Phase D 创建/更新代码基线完成,真实写入验收受阻;T-303 老年人生活自理能力评估查询待实现**;T-001~T-006、T-201、T-203、T-102、T-202、T-205、T-101、T-103、T-209、T-210 已验收;T-206 已完成本地契约/客户端/映射组装代码,但未执行真实 `JKDA00001` create - 技术栈:Go 1.24 单二进制;`main.go -mode server|deliver`;配置读取使用 viper,支持环境变量覆盖;OSI 客户端已具备签名、信封、传输、基础判码、JKDA00002 Find、JKDA00005 FindRqbj(人群分类,已按实测 auto 路径校准)、JKDA00001 Create、JKDA00003 Update,以及 WGDZ/ZRYS/YPML/CXJG 四个公开查询薄封装 - 生产代码:已有 `main.go`、`config/`、`contract/envelope.go`、`contract/jkda.go`、`osi/` 薄客户端、`cache/dictionary.go`、`verify_jkda.go`、`go.mod`/`go.sum`;`mapping/dict.go`、`mapping/health_record.go`、`mapping/checkid.go` 已建立映射纯函数、码表基线、主数据反查接入点和创建请求组装;`handler/health_record.go`+`handler/public.go`+`server.go` 提供 server 模式档案查询、人群分类查询、网格地址、责任医生、药品目录、机构查询端点;`pipeline/` 等业务模块仍待后续任务建立 - 联调现实:**JKDA00002 个人档案查询已用 Go 侧真实请求打通**,返回 `code="01" message="操作成功" data_count=1`;**公开查询 WGDZ00001/ZRYS00001/CXJG00002 已用真实档案主数据验证通过**,均返回 `code="01"` 且数组非空;药品目录 YPML00001 已完成客户端封装和单测,尚未做真实药品关键字样本验证;**JKDA00001 create 未跑真实请求**,避免在没有安全测试居民/写入授权时污染平台档案 @@ -99,8 +99,9 @@ python3 scripts/query_health_record.py > 读先行调整(2026-07-08):写入(T-206/T-204)被厂家授权锁死,先推其余业务线查询。 1. ✅ T-301/T-305 体检查询(最近一次 + 名单)、T-302 体检 HTTP 端点 —— 均已完成。 -2. **T-303 老年人查询**(自理/体质,serviceId 部分待 B4)——起 Python 探针试探。 -3. 并行催厂家(docs/06 ★ 优先催办):写入授权+测试档案、缺失单查/老年人 serviceId、checkId/完整度规则。 +2. **T-303 老年人生活自理能力评估查询**:厂家文档已给出 `LNRZLPG00002` 与 `/auto/lnr/query`,先实现客户端、HTTP 端点与测试,再用真实请求确认契约。 +3. T-307 老年人中医体质辨识查询仍待厂家补查询文档(docs/06 B4)。 +4. 并行催厂家(docs/06 ★ 优先催办):写入授权+测试档案、缺失单查/老年人体质 serviceId、checkId/完整度规则。 4. 授权到位后回到 T-206 真实 create 验收 → T-204。 ## 维护规则 diff --git a/progress.md b/progress.md index 8216d67..4655c4b 100644 --- a/progress.md +++ b/progress.md @@ -284,6 +284,14 @@ - 决策:公开查询端点继续原样回写平台 JSON,不裁字段;`pageNo` 做 HTTP 层整数校验,其余查询条件按上游查询透传。项目按内网部署推进,但 API 返回主数据/PII 相关上下文,生产暴露前仍需网关鉴权和日志脱敏。 - 下一步:T-303 老年人查询探针;或继续补内网部署鉴权/访问控制任务。 +## 2026-07-13 登记 T-303 老年人生活自理能力评估查询 + +- 状态:DONE(任务拆分与契约文档维护) +- 来源:厂家新增《老年人生活自理能力评估查询服务.docx》。参数表给出 `POST /osi/api/auto/lnr/query`、`serviceId=LNRZLPG00002`、`idCard` 必填及评估数组响应字段。 +- 变更:将 T-303 收窄为生活自理能力评估查询;新增 T-307 跟踪仍缺契约的中医体质辨识查询;同步 docs/01、docs/04 §13、docs/06 B1/B4 与当前快照。 +- 风险:docx 请求样例错误写 `LNR00004` 且缺 `uploadinfo/manageInfo`,仅能以参数表和既有查询信封实施;服务路径、serviceId、字段仍须真实请求验收后确认。 +- 下一步:领取 T-303,先做 `contract/lnr.go`、`osi/lnr.go`、HTTP handler 与回归测试,再以安全测试居民探针联调。 + ## 2026-07-09 T-211 药品目录分页契约修正(登记) - 状态:DOING diff --git a/tasks.md b/tasks.md index 5c7f244..c253eae 100644 --- a/tasks.md +++ b/tasks.md @@ -79,7 +79,8 @@ | T-301 | 体检查询打通:`contract/jktj.go` + `osi/jktj.go`(最近一次 JKTJLSJL00002) | T-004 | 真实请求拿到 `code="01"` 与体检数据;响应字段(~260 项/7 节点)记入 docs/04 §11 | DONE(单条 JKTJ00002 平台未部署,见 §11) | | T-302 | 体检 HTTP 查询端点(复用 T-208 handler 模式) | T-301 | server 模式 `GET /api/health-check/last`+`/all`+`/list` curl 返回完整 JSON;默认仅绑本机 | DONE | | T-306 | 某人全部体检查询 JKTJ00002(`osi.QueryHealthChecks` + `/api/health-check/all`)| T-004 | 实测已部署,按 idCard 返回全部体检数组;驼峰 idCard、历史记录 checkId 可空,契约见 docs/04 §11.1 | DONE | -| T-303 | 老年人查询打通:自理 LNRZLPG / 体质 LNRZYTZ(查询 serviceId 部分待确认) | T-004 | 真实请求打通;缺失 serviceId 先向厂家确认(docs/06 B4) | TODO(部分待 B4) | +| T-303 | 老年人生活自理能力评估查询(LNRZLPG00002) | T-004 | 按厂家查询文档实现 `/auto/lnr/query`;按 idCard 查询返回评估数组;真实请求确认 serviceId/路径/字段 | TODO(文档契约已取得,待联调确认) | +| T-307 | 老年人中医体质辨识查询(LNRZYTZ00002) | T-004 | 取得厂家查询契约后实现并真实请求打通 | BLOCKED(待 docs/06 B4 补体质查询文档) | | T-305 | 体检已检/未检名单查询 JKTJLIST00002(`osi` 方法 + 契约)| T-004 | `auto/jktjlist/query` 探针实测已部署(code=01 返回名单);`osi.ListHealthCheckPeople` 按 checkYear+idCard 返回名单(含 checkType 状态),契约见 docs/04 §11.4 | DONE | | T-304 | 列表类查询(**档案 / 老年人自理·体质 / 中医指导** 列表,serviceId docx 缺漏)| T-004 | 各列表路径+serviceId 到位后返回分页数组 | BLOCKED(待 docs/06 B1/B2 厂家回填)|