外观
C10 证据记录
1. 执行环境
| 字段 | 记录 |
|---|---|
| 核对方式 | 五脚本流水线(Python 抽取与修复、R 建规则、Python 校验),产物为三份机器可读 JSON |
| 执行日期 | 2026-07-28(案例化整理;原始抽取为 2026-03) |
| 地区 | 常德市 |
| DRG/DIP | DIP |
| 规则版本 | 2026 年 DIP 目录库 |
| 数据级别 | 实测数据(抽取与校验过程记录,非官方发布的目录数据) |
| 产品依赖 | 无。全部由脚本与源文件产出 |
2. 来源与其限制
| 项 | 记录 |
|---|---|
| 来源形态 | 随通知下发的目录附件 + 政策 PDF(7 页) |
| 文号 | 无。未取得对应发文文号 |
| 直达链接 | 无 |
案例的价值在方法与校验,不在目录数据本身。具体条目与分值以当地正式文件为准。
3. 脚本链与职责
| 脚本 | 行数 | 职责 |
|---|---|---|
extract_*_pdf.py | 288 | PDF 与附表 → 8 张结构化表 |
fix_*_export_encoding.py | 90 | 还原 Python 侧产物中的 <xx> 十六进制转义 |
fix_*_r_exports.py | 76 | 还原 R 侧导出 xlsx/json 中的同类问题 |
build_*_rules.R | 535 | 目录 → 规则包(含区间行展开) |
verify_*_rules.py | 239 | 36 项校验,输出机器可读结果 |
两个修复脚本是被问题倒逼出来的,不是一开始的设计。这一点写进了案例正文——它本身就是结论。
路径检查:五个脚本均使用 Path(__file__).resolve().parent 定位,无本机绝对路径,可直接迁移复跑。
4. 复跑记录
| 日期 | 动作 | 结果 |
|---|---|---|
| 2026-03 | 首次抽取 | 8 张表结构完整、行数正确,但中文为 <e5><b8><b8> 形式的十六进制转义 |
| 2026-03 | 编码修复 | Python 侧产物还原正常 |
| 2026-03 | R 侧导出后复查 | 同类字符问题再次出现,追加导出修复脚本 |
| 2026-03 | 区间行处理 | 79 行区间展开为 6742 行,跳过已存在 1422 行,最终 15381 行 |
| 2026-03 | 36 项校验 | 36 项全过,0 失败 |
| 2026-07-28 | 案例化复核 | 三份验证 JSON 数值一致;脚本无绝对路径 |
5. 关键数值对账
text
抽取原始 8718 行
区间行 79 行
展开生成 6742 行
跳过已存在 1422 行
最终目录 15381 行分类计数交叉验证:
text
综合 8166 + 核心 6269 + 基层 946 = 15381 ✓
综合按操作范围:BSZL 2066 + D 2066 + T 2066 + S 1968 = 8166 ✓两个求和关系同时成立,是抽取未错位的强证据——任何一处错行,这两个和都会对不上。
6. 公开与隐私检查
7. 已知边界
- 36 项检查对应这份目录的 8 张表结构,换一份目录需要重新定检查项。
- 校验只能证明"没有被检出的错误"。未做全量病例回归——那是形态二,本案例只覆盖形态一(抽取校验)。
- 区间展开的对账关系已验,但未逐条追踪每个区间展开成了哪些编码。若要用于映射,需再做一次逐条核对。
- 政策正文 7 页转 markdown 后未做逐句校对,只核了页数。
- 未核实源 PDF 是否为该年度最终版本。