From 425ca0a0fa31bde7199fd189e65472de50723838 Mon Sep 17 00:00:00 2001 From: ila Date: Wed, 8 Jul 2026 21:02:26 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E6=8B=86=E5=87=BA=20T-305=20=E4=BD=93?= =?UTF-8?q?=E6=A3=80=E5=90=8D=E5=8D=95=E6=9F=A5=E8=AF=A2=E5=B9=B6=E7=99=BB?= =?UTF-8?q?=E8=AE=B0=20JKTJLIST00002=20=E5=A5=91=E7=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - docs/04 §11.4 记录 JKTJLIST00002 请求/响应契约(docx,部署待验证) - tasks 拆 T-305(契约齐全,TODO 可领)、T-304 收窄为缺 serviceId 的列表 - 纠正 T-304 一刀切 BLOCKED Co-Authored-By: Claude Opus 4.8 --- docs/04-字段与接口映射.md | 18 ++++++++++++++++++ progress.md | 7 +++++++ tasks.md | 3 ++- 3 files changed, 27 insertions(+), 1 deletion(-) diff --git a/docs/04-字段与接口映射.md b/docs/04-字段与接口映射.md index 6b5bd76..0c55932 100644 --- a/docs/04-字段与接口映射.md +++ b/docs/04-字段与接口映射.md @@ -291,3 +291,21 @@ T-206 已建立本地契约与客户端方法,真实写入验收暂未执行 | `medicineSituations` | array | - | 用药情况(本样本空,结构待样本) | > 命名坑点:`constriction`=收缩压、`diastolic`=舒张压(`_l` 疑为左侧);辅助检查用大量医学缩写。建 create 映射时逐字段加中文注释。 + +### 11.4 已检/待检人员名单查询 JKTJLIST00002(docx 契约,沙箱部署待验证) + +> **不是体检数据源**,是机构级"某年度已检/未检人员名单/进度":返回**人员一行 + 体检状态**,不含体检明细。 +> 来源:docx。沙箱是否部署未实测(对应 T-305;先用 Python 探针 `SERVICE="list"` 确认)。 + +- serviceId `JKTJLIST00002`,`POST /osi/api/auto/jktjlist/query`,信封同查询式(`uploadinfo{baseInfo, manageInfo}`)。 +- **请求 `baseInfo`**(page/rows 也在 baseInfo 内): + +| 字段 | 必填 | 说明 | +| --- | --- | --- | +| `checkYear` | ✅ | 检查年度(如 `2025`)——无"默认所有年度" | +| `page` `rows` | ✅ | 分页,rows 默认 10 | +| `idCard` | 否 | 过滤到某人某年度状态 | +| `checkType` | 否 | `0`已检 / `1`未检 / `2`全部 | +| `personName` `sex` `age` `personGroup` `gridAddress` `beginDate` `endDate` | 否 | 各类筛选。⚠ docx 参数表与样例字段名不一致(表 `ageBegin/ageEnd`/`sexCode`/`regionCode` vs 样例 `age`/`sex`/`gridAddress`)——以联调实测为准 | + +- **响应 `data`(list,每人一行)**:`idCard`/`personName`/`age`/`birthDay`/`regionCode`/`regionCodeText`/`manaUnitId`/`manaUnitText`/`sexCode`/`mobileNumber`/`contact`/`contactPhone`/`signFlag`(y/n 签约)/`address`/`manadoctorId`/`phrid`/**`checkType`(0已检/1未检)**/`rqbj`(人群标志,同 personSign 码表)。 diff --git a/progress.md b/progress.md index 388d180..863edec 100644 --- a/progress.md +++ b/progress.md @@ -209,3 +209,10 @@ - 发现:① 单条 JKTJ00002 `auto/jktj/query` 平台实测"没有url的接口配置"(未部署),`auto/jktj/find` 待确认 → docs/06 B5。② 体检 data 为单对象(档案 find 是数组)。③ 体检身份证字段小写 `idcard`(档案 `idCard`)。④ 体检主键 `checkId`(与档案幂等 checkId 同名不同义),子节点 `healthCheck` 外键指向它。 - 决策:查询只强类型化定位字段,完整内容留 `Result.Raw`;~260 全量字段建模留到体检 create(写入才需逐字段,避免照单样本猜 null 类型)。 - 下一步:T-302 体检 HTTP 查询端点(复用 T-208 handler 模式);或按 docs/06 催厂家确认单查/列表接口。 + +## 2026-07-08 拆分 T-305 体检名单查询、收窄 T-304 + +- 状态:DONE(看板+文档维护) +- 变更:从 docx 扒出 JKTJLIST00002 完整契约(checkYear/page/rows 在 baseInfo,返回人员名单+checkType 状态),记入 `docs/04 §11.4`;`tasks.md` 拆出 **T-305(体检已检/未检名单,契约齐全仅待沙箱部署验证,TODO 可领)**,把 T-304 收窄为真正缺 serviceId 的列表(档案/老年人/中医指导);`scripts/query_health_check.py` 的 list 模式改为 docx 正确参数。 +- 决策:JKTJLIST00002 契约不缺(docx 完整),不该被 B1/B2 阻塞——只差运行时确认端点是否部署,故独立成可领任务;纠正原 T-304"一刀切 BLOCKED"把能做的和真卡的混在一起。它是名单/进度接口,不含体检明细,非数据源。 +- 下一步:跑 list 探针确认部署 → 若通即领 T-305 建 osi 方法;未部署则归 docs/06 B5 催厂家。 diff --git a/tasks.md b/tasks.md index 24124c6..1ab88bd 100644 --- a/tasks.md +++ b/tasks.md @@ -76,7 +76,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 模式 curl 返回体检完整 JSON;默认仅绑本机 | TODO | | T-303 | 老年人查询打通:自理 LNRZLPG / 体质 LNRZYTZ(查询 serviceId 部分待确认) | T-004 | 真实请求打通;缺失 serviceId 先向厂家确认(docs/06 B4) | TODO(部分待 B4) | -| T-304 | 列表类查询(档案/体检/老年人/中医指导列表) | T-004 | 各列表路径+serviceId 到位后返回分页数组 | BLOCKED(待 docs/06 B1/B2 厂家回填) | +| T-305 | 体检已检/未检名单查询 JKTJLIST00002(`osi` 方法 + 契约)| T-004 | 先用 Python 探针确认 `auto/jktjlist/query` 已部署;通后建 `osi.ListHealthCheckPeople`,按 checkYear+idCard 返回名单(含 checkType 状态),契约见 docs/04 §11.4 | TODO(契约齐全,仅待沙箱部署验证)| +| T-304 | 列表类查询(**档案 / 老年人自理·体质 / 中医指导** 列表,serviceId docx 缺漏)| T-004 | 各列表路径+serviceId 到位后返回分页数组 | BLOCKED(待 docs/06 B1/B2 厂家回填)| ## 里程碑