医疗数据报表无数据问题完整排查复盘
一、场景与问题说明本次问题发生在医疗数据中台病案相关报表开发中具体场景为超声门诊科室相关的业务报表在展示检查项目名称、执行医生这两个关键字段时完全无数据展示前端页面一片空白客户直接反馈该报表无法正常使用影响业务查看与核对。简单概括问题超声门诊报表 → 检查项目名称、执行医生字段无数据 → 前端展示为空 → 业务不可用。二、第一步先验证问题是否真实存在接到客户反馈后我第一时间登录数据平台按照客户提供的筛选条件院区、科室、时间范围、门诊类型逐一复现查询。复现结果- 报表确实无任何数据返回- 与客户描述完全一致- 排除客户操作失误、筛选条件错误等非技术问题确认问题真实存在需要正式排查。三、第二步排查报表取数逻辑我先查看了这张报表底层的 SQL 逻辑梳理出完整链路1. 报表展示字段 → 来源于 标签结果表2. 标签结果表 → 来源于 业务标签加工表biz_medical_record_xxx3. 标签加工表 → 关联 ODS 层原始业务表也就是说报表没数据 → 大概率是标签表里关键字段为空 → 再往上就是 ODS 层源头没数据。四、第三步排查标签表逻辑与字段值定位到标签加工表后我做了两步关键检查1. 检查 JOIN 关联是否有问题逐行核对表之间的关联字段患者 ID、病案 ID、科室 ID、院区 ID 等。确认所有关联都是 LEFT JOIN没有因为 INNER JOIN 被过滤也没有关联键写错、关联表缺失的情况。→ 排除 SQL 关联逻辑错误。2. 直接查询标签表字段值手动执行查询查看检查项目名称、执行医生这两个字段select check_item_name, doctor_name from biz.biz_medical_record_xxx where dept_name超声门诊结果非常明确→ 这两个字段在标签表里全部为 NULL。字段本身为空报表自然展示不出来这是直接原因。五、第四步向上溯源到 ODS 层原始表既然标签表字段为空我继续向上追溯查看标签加工的字段映射确认- 检查项目名称 ← 取自 ODS 层某张门诊业务表- 执行医生 ← 同样取自该 ODS 层原始表于是我直接查询 ODS 层原始表select check_item_name, doctor_name from ods.xxx_ultrasound_record where dept_name超声门诊;结果→ ODS 层原始表中这两个字段本身就没有数据全部为空。根源定位不是下游加工错了是底层 ODS 层源头就没有同步到这部分数据。六、第五步联系上游同事协同排查ODS 层无数据属于上游采集同步问题我立刻联系上游同事把- 表名- 科室超声门诊- 缺失字段检查项目名称、执行医生- 我的排查过程全部同步过去请他们查业务库原始数据。同事反馈1. 上游业务系统中这部分数据确实没有同步到数仓2. 暂时无法补数、重新同步3. 给了一个临时建议试试关联医嘱表看能不能从医嘱表带出项目名称和医生信息七、第六步尝试关联医嘱表方案失败我按照同事建议把医嘱表 ods_hbos_diagnosis_treatment_dtc_doctor_order 加入关联重新查询select a.check_item_name, b.doctor_order_name, b.doctor_namefrom biz.biz_medical_record_xxx aleft join ods_hbos_diagnosis_treatment_dtc_doctor_order bon a.patient_id b.patient_id and a.dept_id b.dept_id执行结果- 能关联上的记录极少- 超声门诊对应的检查项目名称、执行医生依然为空→ 关联医嘱表方案无效此路不通。八、第七步请教师哥拿到最终解决方案实在卡壳我带着完整排查过程找师哥- 报表展示超声门诊检查项目名称、执行医生为空- 报表数据 ← 标签表- 标签表 ← ODS 层- ODS 层 ← 本身无数据- 上游无法补数- 医嘱表关联无效师哥听完给出明确方案不要死磕原来那两个空字段换一张同业务含义的表用另一张表的检查项目名称、执行医师字段做关联替换掉原来为空的字段只要业务口径一致就行。九、第八步修改报表逻辑问题彻底解决我按照师哥的思路修改了报表 SQL1. 去掉原来取自 ODS 层、一直为空的 check_item_name 、 doctor_name2. 关联师哥指定的另一张业务明细附表3. 用新表中的 item_name 、 operator_name 替换原有字段4. 保留原有筛选条件、展示格式不变修改后重新执行查询- 超声门诊数据正常展示- 检查项目名称完整- 执行医生字段完整- 前端报表不再空白问题彻底闭环。十、完整总结1. 问题本质超声门诊报表无数据是因为ODS 层原始表未同步检查项目名称、执行医生字段导致下游标签表字段为空最终报表无数据。2. 排查链路客户反馈 → 复现问题 → 查报表逻辑 → 查标签表 → 查 ODS 层 → 找上游同事 → 试医嘱表无效 → 请教师哥 → 替换字段解决。3. 关键收获- 报表无数据优先按“报表→标签层→ODS 层”逐层溯源- 字段为空不一定是 SQL 写错很可能是源头没数据- 上游无法补数时业务等效字段替换是最高效方案- 遇到卡点及时请教能避免在错误方向浪费大量时间4. 后续注意后续做报表开发前先提前校验 ODS 层字段是否完整避免开发完成后才发现源头无数据
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2501634.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!