docs: 登记 T-301 体检查询契约与字段清单

- docs/04 §11 体检 ~260 字段清单(7 节点)供将来 create 用
- docs/01 §5.2 标注各体检接口联调状态(单查未部署)
- tasks T-301 DONE;gitignore 收敛为 scripts/*.py

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
ila
2026-07-08 00:45:47 +08:00
co-authored by Claude Opus 4.8
parent 0e1915fc2b
commit 66bf37bcd3
6 changed files with 65 additions and 14 deletions
+41
View File
@@ -250,3 +250,44 @@ T-206 已建立本地契约与客户端方法,真实写入验收暂未执行
- `mapping.BuildHealthRecordCreate` 负责把 `MappedHealthRecord` 组装成 `contract.HealthRecordCreate`,保留确定性 `checkId`,并由 `manaDoctorId/manaUnitId` 派生 `createUser/createUnit`。
真实 create/update 联调完成后,需要在本节补回平台返回样本、`phrId` 字段确认、同一 `checkId` 重复 create 的幂等语义。
---
## 11. JKTJ 健康体检查询 · 联调实测契约(T-301)
> 来源:2026-07 沙箱"最近一次体检"一次成功查询(`code="01"`)。**脱敏结构**,真实值只在本地样本、不入库。
> 这是体检查询的事实基线,也是将来体检 **create 映射**的字段清单来源。
### 11.1 接口与状态
| 业务 | serviceId | 路径 | 状态 |
| --- | --- | --- | --- |
| 最近一次体检 | `JKTJLSJL00002` | `/auto/jktjlscx/query` | ✅ 实测可用(`osi.LastHealthCheck`) |
| 已检/待检列表 | `JKTJLIST00002` | `/auto/jktjlist/query` | 路径已登记;入参(机构/日期/分页)待厂家确认 |
| 单条按体检 id 查 | `JKTJ00002` | docx 标 `/auto/jktj/query` | ⚠ 实测返回"没有url的接口配置"(**未部署**);`/auto/jktj/find` 待确认,见 docs/06 B5 |
- 请求信封同档案(`serviceId` + `uploadinfo{baseInfo, manageInfo}`);查询按 `idCard`/`phrid`/`empiId` 之一。
- **两处与档案不同的坑**:① 最近一次的 `data` 是**单个对象**(档案 find 是数组);② 体检身份证字段是小写 **`idcard`**(档案是 `idCard`)。
### 11.2 记录结构与主键
- 体检记录主键 = **`checkId`**(体检自身流水,**注意**与档案 §5 我方生成的幂等 `checkId` 同名不同义)。
- 各子节点用 **`healthCheck`** 外键指向主键(值 = checkId);子节点各有自己的 id:`healthAssessment.assessmentId`、`accessoryExamination.recordId`、`inhospitalSituations[].situationId`。
### 11.3 字段清单(实测约 260 项,供体检 create 建模用)
> 查询侧只强类型化定位字段(`contract.HealthCheckSummary`:checkId/healthCheck/idcard/personName/checkDate),完整内容由 `osi.Result.Raw` 保留。
> 全量字段的强类型建模留到体检 create 任务——写入映射才需要逐字段建模,届时以本清单 + 联调 create 样本为准,不照 docx 猜类型(本样本大量字段为 null,类型不可判)。
| 节点 | 类型 | 字段数 | 说明 |
| --- | --- | --- | --- |
| (顶层标量) | - | 39 | 体征与主诉:身高体重 `height/weight/bmi`(float)、血压 `constriction/diastolic(_l)`、`temperature/pulse/breathe/waistline`、`symptom/healthstatus/selfcare/cognitive/emotion` 及各类疾病标志 |
| `healthAssessment` | object | 24 | 健康评价:`abnormality1..8`、`riskfactorsControl`、`assessmentId` + create/lastModify 审计字段 |
| `examination` | object | 52 | 一般查体:皮肤/淋巴结/心肺/腹部/肝脾/乳腺/妇科等 `*` + `*Desc` 描述对 |
| `lifestySituation` | object | 43 | 生活方式:吸烟 `wehtherSmoke/beginSmokeTime`、饮酒 `drinkingFrequency`、运动、职业暴露 `occupational/dust/ray/chemicals` |
| `accessoryExamination` | object | 84 | 辅助检查(最大):血常规 `wbc/hgb/platelet`、生化 `alt/ast/glu/fbs/hba1c/tc/tg/hdl/ldl/cr/bun/tbil`、尿常规、心电 `ecg`、胸片 `x`、视力听力 `recordId` |
| `inhospitalSituations` | array | 19/项 | 住院/家庭病床:`type`、`inhospitalDate/outhospitalDate`、`situationId`,多含 `*_text` 中文回显 |
| `nonimmuneInoculations` | array | - | 非免疫规划预防接种(本样本空,结构待样本) |
| `medicineSituations` | array | - | 用药情况(本样本空,结构待样本) |
> 命名坑点:`constriction`=收缩压、`diastolic`=舒张压(`_l` 疑为左侧);辅助检查用大量医学缩写。建 create 映射时逐字段加中文注释。