docs: 药品目录分页契约同步 docs/07 与 openapi(T-211)

- docs/07 §8 pageNo 必填 + 补 pageSize + 分页说明 + 未联调警示
- openapi drugs 内联 pageNo(required)+pageSize,不动共享 pageNo
- tasks T-211 DONE

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
ila
2026-07-09 22:22:55 +08:00
co-authored by Claude Opus 4.8
parent dc065a9c29
commit 7a079b2b3f
4 changed files with 29 additions and 6 deletions
+5 -3
View File
@@ -145,12 +145,14 @@ GET /api/dictionaries/drugs
| 参数 | 必填 | 说明 |
| --- | --- | --- |
| `pageNo` | **是** | 页码,整数——药品目录是**分页查询**,必填 |
| `pageSize` | 否 | 每页数量,整数 |
| `ypmc` | 否 | 药品名称关键字 |
| `pym` | 否 | 拼音码 |
| `pageNo` | 否 | 页码,整数 |
- 上游:`YPML00001` `/auto/ypmlcx/query`
- 返回:`data` 为**数组**(药品目录主数据,含 `ypmc`、`ypdw`、`ypgg`、`jldw` 等)
- 上游:`YPML00001` `/auto/ypmlcx/query`(**分页目录查询**,非按名单条)
- 返回:`data` 为**数组**(一页药品),每条含 `ypxh`(序号)/`ypmc`/`ypdw`/`ypgg`/`ypjl`(剂量)/`ycjl`(一次剂量)/`jldw` 等
- ⚠ 依 docx 契约,**YPML00001 尚未真实联调**:`pageNo` 是否真必填、`pageSize` 字段名、响应字段均以联调实测为准
### 9. 查询机构
+15 -2
View File
@@ -299,12 +299,25 @@ paths:
tags:
- dictionaries
summary: 查询药品目录
description: 查询药品目录主数据,原样返回上游 YPML00001 `/auto/ypmlcx/query` 响应。
description: 查询药品目录主数据(分页),原样返回上游 YPML00001 `/auto/ypmlcx/query` 响应。pageNo 必填;契约依 docx,尚未真实联调。
operationId: listDrugs
parameters:
- name: pageNo
in: query
required: true
description: 页码(药品目录为分页查询,必填)。
schema:
type: integer
minimum: 1
- name: pageSize
in: query
required: false
description: 每页数量。
schema:
type: integer
minimum: 1
- $ref: '#/components/parameters/ypmc'
- $ref: '#/components/parameters/pym'
- $ref: '#/components/parameters/pageNo'
responses:
'200':
description: 平台完整响应,成功和平台业务错误均原样透传。
+8
View File
@@ -290,3 +290,11 @@
- 背景:docx YPML00001 药品目录查询是**分页列表**——`pageNo` 必填、有 `pageSize`、返回药品数组(ypxh/ypmc/ypdw/ypgg/ypjl/ycjl/jldw)。当前实现把 `pageNo` 当可选(`DrugQuery.PageNo` 带 omitempty、handler `parseOptionalInt`、docs/07 标"否"),且缺 `pageSize`——`pageNo=0` 会被 omitempty 丢弃,平台可能报必填错。
- 计划:`osi.DrugQuery` 去 pageNo omitempty + 加 PageSize;handler 缺 pageNo 返回 400 + 读 pageSize;`docs/07 §8`+`openapi.yaml` 标 pageNo 必填并补 pageSize;docx 契约未联调,全程注明待厂家样本核对。
- 注意:YPML00001 从未真实联调(current-state 自述),本次按 docx 校准,pageNo 是否真必填、响应字段名待联调确认;不扩 `Drug` 响应结构体(避免照单样本猜类型),HTTP 走 Raw 不受影响。
## 2026-07-09 T-211 药品目录分页契约修正(完成)
- 状态:DONE
- 变更:`osi/public.go` `DrugQuery.PageNo` 去 omitempty(确保 pageNo=0 也上送)+ 加 `PageSize`;`handler/public.go` Drugs 改 pageNo 必填(新增 `parseRequiredInt`,缺则 400)+ 读 pageSize;`handler/public_test.go` 加"缺 pageNo→400"测试;`docs/07 §8` 标 pageNo 必填+补 pageSize+分页说明+未联调警示;`docs/openapi.yaml` drugs 内联 pageNo(required)+pageSize(不动共享 pageNo,网格地址仍可选)。
- 验证:openapi YAML 合法、drugs pageNo required=true、grid-addresses 共享 pageNo 仍 false;Go 静态自检通过;现有 drugs 测试(pageNo=1/pageNo=bad)不受影响。待用户 `go test ./...` 复验。
- 决策:只修请求侧分页契约(清晰的 bug);不扩 `Drug` 响应结构体(缺 ypxh/ypjl/ycjl),因 YPML00001 未真实联调、避免照 docx 猜类型,且 HTTP 走 Raw 不影响输出。全程注明 docx 契约待联调。
- 下一步:联调 YPML00001 拿真实分页样本后,确认 pageNo/pageSize 真契约并补 Drug 响应字段。
+1 -1
View File
@@ -66,7 +66,7 @@
| T-101 | `osi/public.go` 四个字典查询(网格/责任医生/药品/机构) | T-005 | 真实机构码能查到下级网格、责任医生、机构树 | DONE |
| T-103 | 字典缓存(内存 + redis 可选) | T-101, T-102 | 映射层能反查 `regionCode/manaDoctorId/manaUnitId`;redis 不可用不阻断 | DONE |
| T-210 | 公开查询 HTTP API(人群分类、网格地址、责任医生、药品目录、机构) | T-101, T-209 | server 模式暴露人群分类与四类公开查询 HTTP API;原样回写平台 JSON;同步 `docs/07` 与 `docs/openapi.yaml`;按内网部署场景明确绑定地址/鉴权边界 | DONE |
| T-211 | 药品目录查询按分页契约修正 YPML00001 | T-210 | 依 docx:`pageNo` 必填(去 `omitempty`+handler 缺则 400)、补 `pageSize`;`docs/07 §8`+`openapi.yaml` 标 pageNo 必填并补 pageSize;docx 契约未联调,注明待厂家样本核对(尤其 pageNo 是否真必填、响应 `ypxh/ypjl/ycjl` 字段)| DOING |
| T-211 | 药品目录查询按分页契约修正 YPML00001 | T-210 | 依 docx:`pageNo` 必填(去 `omitempty`+handler 缺则 400)、补 `pageSize`;`docs/07 §8`+`openapi.yaml` 标 pageNo 必填并补 pageSize;docx 契约未联调,注明待厂家样本核对(尤其 pageNo 是否真必填、响应 `ypxh/ypjl/ycjl` 字段)| DONE |
| T-206 | `osi/jkda.go`:**Create/Update** + `contract/jkda.go` 补创建请求结构体 | T-201, T-202, T-103 | 一条档案经映射(真实字典快照)→ create → 平台返回成功码与 `phrId`;Update 沿用 checkId | BLOCKED(代码完成;待写入授权/测试档案,排在 Phase Q2 之后) |
| T-204 | `handler`+`router`:`/api/health-record/save` | T-206 | server 模式起服务,curl 全链路返回投递结果 | TODO(待 T-206 解阻塞) |