体检报告一排排箭头看不懂病历太潦草理不清这篇从怎么用讲到怎么造——前半部分教你 5 分钟上手后半部分拆解开发全过程。如果你也想做一个领域知识 规则引擎 结构化输出类型的 Skill后半部分可能会帮到你。Skill 主页https://skill.xfyun.cn/space/global/medical-report-reader —— 在线体验、下载安装、查看完整文档。预计阅读时间15 分钟目录上篇 · 使用一句话搞懂这个 Skill四个核心能力上手五个场景逐一带你跑批量处理check_labs.py 怎么用为什么可以放心用下篇 · 开发为什么选这个方向第一步 · 划定边界第二步 · 把领域知识变成规则手册第三步 · 用脚本兜底 LLM 不确定的部分第四步 · 设计输出规范第五步 · 场景样例驱动迭代最头疼的事医疗合规审查如果重新做我会怎么改进收获与总结上篇 · 使用1. 一句话搞懂这个 Skill把门诊病历、体检报告、药品说明书扔进去自动帮你结构化解读——哪项偏高、哪项偏低、哪项危急、该挂哪个科、这些药一起吃有没有问题。打个比方你拿到一份体检报告甘油三酯旁边有个向上箭头↑你只知道不正常但不知道有多严重、要不要马上去医院、和你的脂肪肝有什么关联。这个 Skill 就像身边坐了一个会帮你查参考范围、标危急值、做关联解读的助手——但它不会给你下诊断最后那句永远是请以医生诊断为准。它和通用 AI 聊天工具的区别通用聊天机器人也可能懂医学但不会内置 40 检验指标的精确参考范围、不会区分男性和女性的不同正常值、不会在遇到危急值时强制置顶请立即就医。本 Skill 把医学知识和安全规则硬编码到了工作流里不会自由发挥。2. 四个核心能力方向干什么用规模病历结构化把潦草的病历文字整理成规整的字段表主诉 / 诊断 / 处置3 类文档模板报告解读对照参考范围标注每一项指标偏高 / 偏低 / 危急用大白话解释40 指标14 项危急值用药安全检查药物之间有没有冲突、适不适合你的年龄/身体状况28 条禁忌规则症状导诊根据你说的症状推荐该挂哪个科、优先看哪个27 条症状→科室映射3. 上手五个场景逐一带你跑在 Qoder CLI 里直接用大白话激活帮我解读这份体检报告 把这病历整理成标准格式 这些异常指标什么意思 这个症状该挂哪个科场景一 · 体检报告解读把体检报告原文粘贴进去Skill 会自动提取基本信息、逐项对照参考范围、标出异常分级、用大白话解释。多项异常时还会做关联解读——比如你的指标组合符合代谢综合征筛查标准建议携带报告咨询内分泌科。场景二 · 门诊病历结构化把医生写的病历原文贴进去拍照 OCR 也行Skill 整理成标准字段表就诊时间、科室、主诉、现病史、既往史、诊断、处置。同时分析处方里的药物组合提醒需要关注的相互作用。示例输入就诊时间2026-07-15 09:30心内科。 主诉反复胸闷、心悸2周加重1天。 既往史高血压8年。处方阿司匹林阿托伐他汀美托洛尔。场景三 · 药品说明书解析贴上药品说明书原文Skill 提取适应症、用法用量、禁忌人群、不良反应、药物相互作用清单。相互作用按严重度高/中分级标注一眼看出哪些要重点关注。示例输入阿托伐他汀钙片立普妥。适应症高胆固醇血症。禁忌活动性肝病、孕妇。 注意事项与克拉霉素合用增加横纹肌溶解风险。场景四 · 症状导诊直接描述症状Skill 推荐该挂哪个科输入示例口干、多饮、多尿最近瘦了5公斤。右脚大脚趾又红又肿还疼。Skill 分析症状特征三多一少指向糖尿病第一跖趾关节红肿热痛指向痛风建议首诊内分泌科。场景五 · 全场景联动进阶这是 Skill 完整能力演示——同一患者贯穿四个阶段体检报告查出甲减高脂血症贫血 ↓ 门诊病历医生诊断整理 ↓ 用药安全处方药物相互作用分析 ↓ 复诊症状新症状分析 → 建议就诊科室 ↓ 闭环定期复查 → 携带结果咨询医生每个阶段都以整理信息和提示就医为导向不替代医生临床判断。4. 批量处理check_labs.py 怎么用如果你有体检指标的 CSV 文件比如从体检机构导出的数据用配套脚本批量对照python3 scripts/check_labs.py--labsexamples/labs.csv支持年龄和性别分层不同性别、年龄段的参考范围不一样python3 scripts/check_labs.py--labsexamples/labs.csv--age52--gendermale脚本在终端输出所有指标分级结果危急值自动置顶。纯标准库不需要安装任何依赖。5. 为什么可以放心用数据从哪来的参考范围来源覆盖内容公务员录用体检操作手册2024 修订版血常规、肝功能、肾功能MSD Manuals 专业版代谢综合征诊断标准中国 2 型糖尿病防治指南血糖、糖化血红蛋白中国高血压防治指南血压分级中国成人血脂异常防治指南2016 修订版血脂四项NMPA 批准的药品说明书用药禁忌与相互作用安全底线硬编码到工作流里不诊断、不开方——绝不会说你得了 XX 病或你该吃 XX 药危急值优先——遇到危急值强制置顶提醒请立即就医不编造——缺少参考范围时标注无法判断不猜测隐私保护——示例中的姓名均为虚构Skill 不会外传你输入的内容常见问题Q我只有拍的照片没有文字怎么办先用手机自带的 OCR 功能或微信提取文字把报告转成文本再粘贴进来。Q危急值提醒是真的紧急吗是。14 项危急值阈值基于权威临床标准设定触发提醒说明该项指标已处于需要立即就医的范围。不要拖延。Q可以把 Skill 当医生用吗绝对不能。Skill 做的是信息整理和知识检索不构成诊断。任何健康问题请务必咨询执业医生。下篇 · 开发6. 为什么选这个方向医疗健康文本是一个典型的非结构化信息过载场景。一份体检报告 25 项指标每项都有参考范围还得按性别和年龄分层。普通人逐项查表至少 5 分钟还容易漏掉临界值。选这个方向的三个理由领域知识密度高—— 参考范围、危急值阈值、药物相互作用都是确定的规则适合写成规则手册安全要求严格—— 必须从架构层面杜绝AI 自由发挥给出诊断建议这是很好的工程约束实战价值明显—— 每个做过体检的人都面临一堆箭头看不懂的痛点7. 第一步 · 划定边界动手前第一件事不是写代码是划定边界。能做结构化提取、对照参考范围、大白话解释、列出药物禁忌、推荐就诊科室。绝对不能做下诊断结论、开处方或推荐剂量、告诉患者不用去医院或停药、淡化危急值。这些边界最终变成了 SKILL.md 里的硬约束和输出末尾的固定声明。后面多次合规审查都证明了它的价值——每次发现问题都能回退到这些边界来判断算不算越界。8. 第二步 · 把领域知识变成规则手册这是最耗时但最有价值的一步。收集权威数据源不能随便 Google 个数字就当参考范围。最终确定了 6 个权威来源公务员录用体检操作手册2024、MSD Manuals、中国 2 型糖尿病/高血压/血脂异常防治指南、NMPA 药品说明书。原则每一行数据都要能追溯到权威出处。找不到权威来源的指标宁可标注未提供参考范围也不推测。组织成可查询的结构references/reference.md是整个 Skill 的知识底座第一章 · 检验指标参考范围40 项含性别与年龄分层 第二章 · 危急值阈值14 项 第三章 · 用药禁忌与相互作用28 条 第四章 · 症状→科室导诊27 条 第五章 · 疾病-指标关联表12 种 第六章 · 文档解析模板3 类关键设计决策为什么不用 JSON/CSV 存这些数据因为 LLM 读 Markdown 表格的效率比读结构化数据高——表格上下文天然提供了数字 含义 来源的三元组。脚本用 CSV 做精确计算LLM 用 Markdown 表格做解读各取所需。9. 第三步 · 用脚本兜底 LLM 不确定的部分LLM 强在理解和解读弱在批量精确对照。所以把逐项比对参考范围拆出来交给脚本。check_labs.py 的设计思路输入体检指标 CSV指标名, 实测值, 单位 输出每一行的分级正常/偏高/偏低/危急 参考范围 为什么不用 LLM 做 ——25 项指标需要逐项查表、比对数字、判断阈值 ——LLM 可能算错概率问题边界值尤其容易翻车 ——脚本 1 秒跑完 25 项边界值永不误判 为什么还要 LLM ——ALT 68 偏高需要人话解释轻度肝细胞损伤与脂肪肝相关 ——多指标异常需要关联解读符合代谢综合征特征 ——LLM 做解读脚本做对照各司其职边界值测试这是最容易出 bug 的地方。空腹血糖参考范围上限是 6.1 mmol/L——实测值正确判定容易犯的错6.1正常错标为偏高等于阈值不算偏高6.11偏高错标为正常只要超过就算偏高examples/labs_edge.csv专门放了 22 条边界值测试数据来验证刚好踩线的情况。10. 第四步 · 设计输出规范表格字段安全转义医疗文本里经常出现特殊字符——药物名带|、诊断描述含换行。写入 Markdown 表格前不转义表格就炸了。最关键的一条转义顺序必须先再再其他否则lt;会被二次转义。合规声明的三层结构不是加一句话免责就行了三段合规各有不同位置声明位置作用“请以医生诊断为准”每个场景末尾兜底声明“建议携带报告咨询医生/药师”涉及用药的段落针对性提醒“ 请立即就医”危急值时置顶强制就医提醒最初只是末尾一句话后来发现危急值被埋在中间用户看不到于是改成危急值置顶 用药段落局部提醒 末尾兜底的三层结构。11. 第五步 · 场景样例驱动迭代不写抽象需求文档直接写 input.md 和 output.md 来驱动开发。场景验证什么为什么选它体检报告解读异常指标分级 关联解读指标多、跨系统门诊病历结构化非结构化文本提取格式千差万别药品说明书解析禁忌与相互作用药物-药物、药物-食物两类症状导诊症状→科室映射多症状优先级排序全场景联动四方向串联验证协同和边界场景五最有价值——同一患者贯穿体检→门诊→用药→复诊四个阶段每个阶段输出是下一阶段输入暴露了大量解读结论能不能正确传递的边界问题。12. 最头疼的事医疗合规审查前后 3 轮审查每轮都发现新的越界。第一轮删除诊断结论和处方剂量早期版本中输出样例曾包含具体诊断表述和处方药物名称及剂量还附有服药时间安排。修法统一改为病历中记录了诊断/用药意见建议携带报告咨询医生/药师评估删除所有剂量、服药时间表和具体检查项目名称。截图 ⑤整改前后对比——左侧是原版输出含具体诊断和药物处方剂量右侧是改后版本“病历中记录了诊断意见建议携带报告咨询医生确认”一眼看出合规整改的效果。第二轮删除治疗建议和行为指导“通俗解读栏里藏着需规律服药”“需护肝干预”“建议 OGTT”“建议戒酒”。修法通俗解读只保留指标解释“1 级高血压”“高尿酸血症”删除所有需 XX“建议 XX”。唯一例外是危急值——立即急诊必须保留。第三轮删除用药监测指令和检查时限“用药注意事项里还有需合用 PPI”“监测肝功能、CK”症状导诊里还有24-48 小时内“4 周后”。修法把做什么改成关注什么把什么时候做改成由医生安排——“需关注 XX 风险具体方案/时限请咨询医生/药师”。最大的教训合规不是加免责声明就行了要在每一个输出字段上控制颗粒度第一层删除给出行动指令 —— 吃这个药做这个检查 第二层保留整理信息 —— 指标偏高药物 A 和 B 有相互作用 第三层必须建议咨询 —— 具体方案请咨询医生/药师截图 ⑥三层合规边界示意图——用红/黄/绿三色区分删除“保留”必须三个层次旁边各附一个输出示例让读者 3 秒理解合规设计原则。13. 如果重新做我会怎么改进先把合规边界写成 checklist 再写 output 样例。三审三改是因为凭感觉判断。如果有明确的禁止出现在输出中的内容清单一审就能过。check_labs.py 应该更早写。最初想让 LLM 直接做指标对照边界值总翻车。脚本先写好LLM 在脚本结果之上做解读效率高很多。给危急值单独建一个输出通道。最初危急值和其他异常混在同一个表里。后面改成置顶提醒但架构上区分普通异常和危急两个输出通道会更干净。reference.md 应该分层。全塞一个文件里。更好的做法是按参考范围“用药规则”症状导诊拆成 3 个文件LLM 按需加载。加一道焦虑减敏审查。关联解读如你的指标符合代谢综合征特征虽然不构成诊断但可能诱发不必要的紧张。应在关联解读旁附加一句以上仅为指标关联分析不代表确诊请以医生诊断为准——在帮助用户理解和不吓到用户之间找到平衡。14. 收获与总结关于领域知识参考范围这种看似简单的数据背后有性别分层、年龄分层、临界值处理。不写脚本测试之前我从没意识到空腹血糖 6.1 算不算偏高会是个问题——而它恰恰是医疗场景里最容易引起用户焦虑的边界。关于 LLM 和脚本的分工脚本做对不对精确对照LLM 做什么意思通俗解读。脚本计算 LLM 解读的模式可以复用到很多场景——财务指标对照、合同条款检查、代码规范审查。关于合规医疗场景的合规不是加一句话免责就行的要从每一条输出字段的内容颗粒度上控制。三层原则删除行动指令 / 保留信息整理 / 必须建议咨询可以复用到法律咨询、税务建议、投资分析。关于数据质量40 指标的参考范围每一个都要能说清这个数字从哪来的。有 3 个指标在多个权威来源之间存在差异——最终选择标注该指标不同来源范围有差异仅供参考。诚实比看起来权威更重要。下一步想用同样的脚本计算 LLM 解读模式做一个合同条款比对 Skill——检出差异是脚本的事解释差异意味着什么是 LLM 的事。Skill 主页https://skill.xfyun.cn/space/global/medical-report-reader