feat(mapping): 完成 PHIS 健康档案转换(T-212)
This commit is contained in:
@@ -402,3 +402,41 @@ Go 侧契约应从只承接 `personSign` 优化为完整承接 `personSign/idCar
|
||||
- 定位和审计字段:`phrId`、`checkId`、`createUnit`、`createUser`、`createDate`、`inputDate`、`inputUser`、`inputUnit`。
|
||||
- docx 仍误写成功码为 `"1"`;项目统一按现有 `IsSuccessCode` 兼容处理,实测成功基线仍为 `"01"`。
|
||||
- docx 请求样例错误写为 `"serviceId":" LNR00004"`,不能用作实现依据。
|
||||
|
||||
---
|
||||
|
||||
## 14. PHIS 健康档案 → JKDA 写入映射(T-212)
|
||||
|
||||
输入契约来自本地 PHIS 待上报响应的脱敏结构;真实样本含居民信息和医生凭据,不入库。`source.HealthRecordTask` 只承接业务字段,解码时忽略 `doctor.sxtAccount/sxtPassword`。
|
||||
|
||||
PHIS `record.createDate` 映射到 CHIS 写入 `healthRecord.createDate`;该字段已在 JKDA00002 查询响应中实测存在,但写入端是否接受仍需 T-215 创建后回查确认。空的 `pastHistory` 不上送,`isFillShhj` 在校验与输出前统一去除空白并转为小写。
|
||||
|
||||
### 14.1 标识与管理字段
|
||||
|
||||
| PHIS | CHIS | 规则 |
|
||||
| --- | --- | --- |
|
||||
| `archId` | `healthRecord.checkId` | 稳定源档案键;生成规则见 ADR 001,缺失即拒绝 |
|
||||
| `businessId` | trace/PHIS 回写 | 不进入 OSI 请求,不参与 checkId |
|
||||
| `record.manaDoctorId` | `healthRecord.manaDoctorId/createUser`、`manageInfo.operateUser` | 必须命中 CHIS 责任医生字典 |
|
||||
| `record.manaUnitId` | `healthRecord.manaUnitId/createUnit` | 必须命中 CHIS 机构字典 |
|
||||
| 配置 `userName/orgCode` | `manageInfo.DSFMC/operateUnit` | 由 OSI 客户端强制覆盖,不能由 PHIS 注入 |
|
||||
|
||||
### 14.2 主体与嵌套节点
|
||||
|
||||
| PHIS | JKDA 写入字段 |
|
||||
| --- | --- |
|
||||
| `idCard/personName/sexCode/birthday/workPlace/mobileNumber/contact/contactPhone/registeredPermanent/regionCode/address/homePlace/homePlaceNumber/cardType` | `healthRecord` 同名字段 |
|
||||
| `adressNumber` | `healthRecord.addressNumber`(写入拼写;T-215 真实回查校准) |
|
||||
| `nationCode/bloodTypeCode/rhBloodCode/educationCode/workCode/maritalStatusCode/insuranceCode` | 码表校验后写入 `healthRecord` |
|
||||
| `diseasetext_check_gm/check_bl/check_fq/CheckMQ/CheckXDJM/CheckZN/RedioYCBS/CheckCJ` | `pastHistory.ywgms/bls/jzsfqn/jzsmq/jzsxdjm/jzszn/ycbs/cjqk` |
|
||||
| `diseasetext_radio_jb/ss/ws/sx` | `jwsjb/jwsss/jwsws/jwssx` 数组;非空代码(含“无”代码)各生成一项 |
|
||||
| `shhjCheckCFPFSS/RLLX/YS/CS/QCL` | `familyMiddle.cookAirTool/fuelType/waterSourceCode/washroom/livestockColumn` |
|
||||
|
||||
多选兼容英文逗号、中文逗号、顿号和分号,输出统一为英文逗号。`isFillShhj=n` 时省略 `familyMiddle`;为 `y` 时才校验生活环境单选码。PHIS 未提供的名称、确诊日期和可选地址编码不伪造。
|
||||
|
||||
### 14.3 投递前校验
|
||||
|
||||
- CHIS 必填字段、身份证 18 位、网格码 12 位、生日 `yyyy-MM-dd`、docx 长度上限。
|
||||
- 主体码表、既往史多选码和生活环境单选码必须合法;未知码返回结构化 `ValidationError`。
|
||||
- `data.doctor.doctorId` 与 `record.manaDoctorId` 必须一致;医生和机构 ID 必须命中字典快照。
|
||||
- T-215 真实写入后仍需确认“无”代码数组、`addressNumber`、更新目标标识和逐档案 `operateUser` 的平台最终规则。
|
||||
|
||||
Reference in New Issue
Block a user