docs: 登记 T-208 查询端点并同步快照
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -8,7 +8,7 @@
|
||||
- 日期:2026-07-07
|
||||
- 阶段:**Phase D 创建/更新代码基线完成,真实写入验收受阻**;T-001~T-006、T-201、T-203、T-102、T-202、T-205、T-101、T-103 已验收;T-206 已完成本地契约/客户端/映射组装代码,但未执行真实 `JKDA00001` create
|
||||
- 技术栈:Go 1.24 单二进制;`main.go -mode server|deliver`;配置读取使用 viper,支持环境变量覆盖;OSI 客户端已具备签名、信封、传输、基础判码、JKDA00002 Find、JKDA00005 FindRqbj、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` 已建立映射纯函数、码表基线、主数据反查接入点和创建请求组装;`pipeline/` 等业务模块仍待后续任务建立
|
||||
- 生产代码:已有 `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`+`server.go` 提供 server 模式查询端点;`pipeline/` 等业务模块仍待后续任务建立
|
||||
- 联调现实:**JKDA00002 个人档案查询已用 Go 侧真实请求打通**,返回 `code="01" message="操作成功" data_count=1`;**公开查询 WGDZ00001/ZRYS00001/CXJG00002 已用真实档案主数据验证通过**,均返回 `code="01"` 且数组非空;药品目录 YPML00001 已完成客户端封装和单测,尚未做真实药品关键字样本验证;**JKDA00001 create 未跑真实请求**,避免在没有安全测试居民/写入授权时污染平台档案
|
||||
- 测试:`go test ./...` 通过;当前测试覆盖 mode 解析、配置加载与环境变量覆盖、MD5 签名、请求头组装、JSON POST 传输、头名大小写保留、identity 响应编码声明、超时配置、SOCKS5 代理地址校验、信封结构、serviceId 路由、成功/重试判码、Client.Call 请求与响应解析、JKDA00002 查询响应契约、JKDA00001/00003 创建更新请求契约与客户端方法、JKDA00002 Find、JKDA00005 FindRqbj、公开查询四接口、字典缓存快照与持久化失败不阻断、映射码表双向查找、民族 01~56 完整性、健康档案映射必填/码表校验、主数据名称反查、创建请求组装、checkId 确定性、docx/联调风格映射样本基线、JKDA00002 验证入口
|
||||
- 标准启动路径:`./init.sh` 已配置三步:依赖下载、`go test ./...`、`go run . -mode server -config config.yaml.example`
|
||||
@@ -40,6 +40,8 @@
|
||||
| `mapping/dict.go` | 已有 | 性别/民族/血型/RH/文化程度/职业/婚姻/医保/personSign 双向码表;未命中返回 `ValidationError` |
|
||||
| `mapping/health_record.go` `mapping/checkid.go` | 已有 | 健康档案映射草稿、字典快照注入、主数据反查、创建请求组装(含 createUser/createUnit 派生)、必填/码表校验、确定性 checkId |
|
||||
| `mapping/health_record_baseline_test.go` | 已有 | docx 风格、联调风格、脏数据映射回归样本 |
|
||||
| `handler/health_record.go` | 已有 | `GET /api/health-record/find` 查询端点,回写平台完整响应 |
|
||||
| `server.go` `osi_client.go` | 已有 | server 模式起 HTTP 服务、注册路由;`buildOSIClient` 共用构造(verify 与 server 复用) |
|
||||
| `pipeline/` 等 | 待建 | 后续任务 |
|
||||
|
||||
## 已验证事实(写代码时直接依赖)
|
||||
@@ -65,7 +67,6 @@ go test ./...
|
||||
go build ./...
|
||||
go test ./contract ./osi
|
||||
go test ./cache ./mapping
|
||||
go run . -mode server -config config.yaml.example
|
||||
go run . -mode deliver -config config.yaml.example
|
||||
|
||||
# 统一入口(当前 Git Bash 环境存在 Go 标准库/缓存权限限制)
|
||||
@@ -75,6 +76,10 @@ go run . -mode deliver -config config.yaml.example
|
||||
# config.yaml 已迁为 Go 嵌套 osi: 结构并从中读凭据;仅身份证走环境变量,不落文件/命令行历史
|
||||
OSI_VERIFY_ID_CARD=<idCard> go run . -verify-jkda -config config.yaml
|
||||
|
||||
# server 模式 HTTP 查询端点(已实测;用真实 config.yaml,默认仅绑 127.0.0.1:8080)
|
||||
go run . -mode server # 起服务(阻塞)
|
||||
curl "http://127.0.0.1:8080/api/health-record/find?idCard=<idCard>" # 返回平台完整档案 JSON
|
||||
|
||||
# 本地 Python 联调查询(脚本硬编码凭据,勿提交)
|
||||
python3 scripts/query_health_record.py
|
||||
```
|
||||
|
||||
@@ -185,3 +185,11 @@
|
||||
- 验证:`go test ./...` 通过。
|
||||
- 验证:`go build ./...` 通过。
|
||||
- 阻塞:未执行真实 `JKDA00001` create。原因是当前只有真实查询样本,没有明确的安全测试居民/身份证和写入授权;直接用现有真实样本创建/更新可能污染平台档案或触发重复建档。解除条件:提供可写入沙箱的测试居民资料,或明确授权使用某条测试数据做 create。
|
||||
|
||||
## 2026-07-08 T-208 server 模式健康档案查询端点
|
||||
|
||||
- 状态:DONE
|
||||
- 变更:新增 `handler/health_record.go`(`GET /api/health-record/find`,回写平台完整响应,不裁字段)、`handler/health_record_test.go`(完整回写 + 缺标识符 400)、`server.go`(server 模式起 HTTP 服务 + 路由)、`osi_client.go`(抽出 `buildOSIClient` 共用构造);`verify_jkda.go` 改用共用构造消除重复;`main.go` 加 `-addr`、server 模式真正启动服务;`tasks.md`/`current-state.md` 同步。
|
||||
- 验证:用户在 Windows 侧 `go test ./...`、`go build ./...` 通过;`go run . -mode server` 起服务后 `curl .../find?idCard=<..>` 返回平台完整档案 JSON。(本 WSL 离线无 go 工具链,未在本环境复跑。)
|
||||
- 决策:查询端点直接回写 `Result.Raw`(平台原始 `{code,message,data}`),保证未建模字段不丢失;默认监听 `127.0.0.1:8080` 而非 `:8080`,因端点返回真实档案 PII,避免绑 0.0.0.0 暴露到局域网;身份证经 URL query 传入,仅作本机查看工具,勿反代外网。
|
||||
- 下一步:解 T-206 阻塞(真实 create),或按需为查询端点加鉴权后再考虑对外。
|
||||
|
||||
@@ -44,6 +44,7 @@
|
||||
| --- | --- | --- | --- | --- |
|
||||
| T-201 | `contract/jkda.go`:以 docs/04 §8 实测契约建**查询响应**结构体 | T-004 | Find 响应能完整反序列化本地联调样本(`data` 数组、null 字段用指针/omitempty、`adressNumber` 坑点拼写);创建请求结构体延到 T-206 补 | DONE |
|
||||
| T-203 | `osi/jkda.go`:**Find + FindRqbj** | T-201 | 用 JKDA00002 真实请求打通,拿到 `code="01"` 与档案数据,与 Python 脚本结果一致 | DONE |
|
||||
| T-208 | `server` 模式健康档案查询端点 `GET /api/health-record/find` | T-203 | server 模式起 HTTP 服务,curl 按 idCard/phrid/personName/empiId 查询返回平台完整档案 JSON;默认仅绑本机 | DONE |
|
||||
|
||||
## Phase M · 映射层(码表 + 纯函数,注入假字典快照)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user