当前位置: 首页 > news >正文

[开源] 医保基金流向追踪图:面向医保办自查与汇报的可视化分析系统

本项目是一个专为医保基金管理设计的可视化分析工具,将原始医保结算数据自动构建成有向资金流向图,以科室、医生、药品、诊疗项目为节点,以实际结算路径为边,直观呈现资金在医疗服务体系内的真实流动轨迹。我们不做抽象指标堆砌,而是把每一分医保基金的去向落到具体服务单元上;异常节点(如出度突增、资金断点、闭环流动、孤岛科室)自动高亮并支持下钻核查;最终交付一个开箱即用的 HTML 交互式大盘,既可本地运行供医保办日常筛查,也适合作为向分管领导汇报资金使用合规性的核心材料。系统提供 Python + Node.js 双 CLI 入口,覆盖模拟数据生成、图构建、异常检测、服务启动全流程;技术栈明确分层:Python 负责数据建模与规则计算,Node.js/TypeScript 承载 D3.js 可视化与命令行交互,所有能力均通过结构化输出(JSON 报告 + CSV 明细)留痕可溯。

定位与能力范围

我们聚焦医保基金监管中最基础也最易被忽视的一环:资金是否按真实服务链条流动。不是看总额超支,而是看钱有没有“走对路”,比如某药品大量结算却未关联到对应科室或医生,或某科室收治量低但资金流入极高,或多个节点形成无临床意义的资金小闭环。这类问题无法靠 Excel 汇总发现,必须还原为图结构才能识别。因此,本项目不替代 DRG/DIP 分组或智能审核系统,而是补上“资金流拓扑校验”这一层:它不判断单次结算是否合理,但能指出“这一批结算在整体网络中是否自洽”。适用对象非常明确:一线医保办工作人员(需快速自查)、医保科负责人(需向上汇报逻辑链)、以及参与医保飞行检查的数据支持人员(需定位可疑节点)。边界也很清晰:输入是标准医保结算明细表(含患者、科室、医生、药品、项目、金额等字段),输出是可交互图谱+结构化异常报告,不接入医院HIS实时库,不处理影像或文书类非结构化数据。

核心功能模块

系统能力由五个协同模块构成,各司其职且职责分明:

模块

职责说明

关键实现

数据模型层

定义资金图基本单元:FundNode(带类型、名称、金额、度数的节点)、FundGraph(有向图容器)、SettlementRecord(原始结算记录映射)

所有节点类型(科室/医生/药品/项目)统一继承自FundNode,保障图运算一致性

资金流向建模引擎

将结算记录转化为有向边:例如“患者在内科就诊 → 使用阿司匹林 → 产生费用”,生成“内科→阿司匹林”边并累加金额

FundFlowBuilder

按预设映射规则(如结算记录中“科室”字段指向节点,“药品名称”字段指向另一节点)自动连线

异常检测引擎

基于图论指标识别四类典型异常:outlier(出入度偏离均值2.5倍以上)、breakpoint(某节点有入无出或有出无入)、isolated(完全无连接)、circular_flow(存在长度≥3的有向环)

检测阈值(如2.5)支持 CLI 参数动态调整,结果写入anomaly_report_*.json供程序调用

D3.js 可视化层

渲染力导向图:节点大小正比于关联金额,边粗细反映资金量,异常节点添加红色外框与闪烁动画,支持拖拽、缩放、点击查看详情面板

详情面板显示该节点全部出入边、金额汇总、关联结算记录ID列表,不依赖后端接口,纯前端渲染

CLI 交互工具

统一操作入口:mitm(Medical Insurance Trail Map 缩写)命令行工具,覆盖数据生成、分析执行、服务启动全链路

同时提供 Python 端(python src/main.py)与 Node.js 端(npx mitm)两种调用方式,适配不同运维习惯

使用与配置流程

从零开始跑通整套流程,只需四步命令,无需修改代码:

# 1. 安装 Python 依赖(数据处理与检测) pip install -r requirements.txt # 2. 安装 Node.js 依赖(可视化与 CLI) npm install
# 3. 生成符合真实分布的演示数据(1000条) npm run generate
# 4. 执行分析并启动本地服务 npm run analyze npm run serve

打开浏览器访问http://localhost:8080即可见交互图谱。若需定制分析,Python CLI 提供更细粒度控制:

# 按科室筛选分析(仅处理“内科”相关结算) python src/main.py --data-path data/demo_data.csv --department 内科 --output-dir output/ # 调整异常检测敏感度(阈值从默认2.5改为3.0) python src/main.py --data-path data/demo_data.csv --output-dir output/ --outlier-threshold 3.0

所有输出文件均落于output/目录:anomaly_report_*.json包含异常类型、节点名、触发原因;anomaly_details_*.csv列出每条异常边的原始结算记录ID、金额、时间戳,方便回溯原始单据。

工程结构与技术选型

我们坚持“Python 做事,Node.js 呈现”的分工原则。Python 层专注数据可信性:结算记录清洗、图结构构建、异常规则计算,这些逻辑必须可复现、可审计、可嵌入现有医保数据平台;Node.js 层专注体验:D3.js 图形渲染、CLI 命令解析、静态资源服务,保证前端交互流畅,且不依赖 Python 运行时。这种分离让系统既能作为独立工具运行,也易于解耦集成:比如将FundFlowBuilder导出为 Python 包供其他医保分析系统调用,或将anomaly_report.json直接推送到单位内网BI平台。

项目目录严格按职责划分: -src/:Python 核心逻辑,含models/(数据定义)、graph_builder.py(建图)、anomaly_detector.py(检测)、main.py(CLI 入口) -templates/:HTML 与 JavaScript 模板,D3 渲染逻辑在此集中维护 -data/:输入数据目录(支持 CSV) -output/:所有分析结果输出位置(JSON + CSV) -docs/:项目文档(含异常类型说明、字段映射规则)

数据与扩展性设计

输入数据只需满足基础字段即可启动:patient_id,department,doctor,drug_name,treatment_item,amount,settlement_date。我们不强制要求字段名完全匹配,而是在graph_builder.py中预留映射配置,例如将医院HIS导出的dept_name字段映射到department,或把medication映射为drug_name。这种设计使系统能快速适配不同区域医保平台的导出格式。未来扩展方向明确:
-新增节点类型:如增加“检验科室”“耗材品牌”节点,只需在FundNode子类中定义新类型,并在FundFlowBuilder中补充映射规则;
-增强异常规则:如加入“同一患者7日内跨科室高频结算”规则,可直接在AnomalyDetector中新增检测方法,不影响可视化层;
-输出对接anomaly_details_*.csv的字段设计已预留original_system_id(原始系统单据号)列,便于与医院结算系统做 ID 对接。

限制与说明

本系统有明确的能力边界,我们不掩盖也不夸大:
-不替代专业审核:检测出的breakpoint(断点)节点需人工判断是数据缺失还是真实违规,系统只负责标记“此处逻辑断裂”;
-不处理时间序列深度分析:不预测未来流向,不建模月度趋势,所有分析基于单批次结算数据快照;
-图布局为示意性:D3 力导向图的物理位置无业务含义,仅用于视觉分组,判断依据始终是节点度数、金额、连接关系等结构化指标;
-模拟数据生成逻辑公开npm run generate产生的数据遵循真实医保分布规律(如门诊药品占比、科室结算集中度),但数值为模拟,不可用于正式审计。

异常类型判定规则已在项目文档中逐条说明,例如circular_flow(资金闭环)定义为:存在至少3个节点 A→B→C→A 的有向路径,且每条边金额均大于阈值,这排除了因数据噪声导致的两节点互指误报。

项目地址:
https://github.com/nexorin9/medical-insurance-trail-map

http://www.jsqmd.com/news/919636/

相关文章:

  • 2026年养老保姆推荐平台排名,价格透明吗? - mypinpai
  • MobileNet-Yolo深度解析:超轻量级实时目标检测的终极实战指南
  • 朱光亚与一个民族最深沉的精神底色(潜龙在渊)
  • 终极指南:如何免费获取和使用Poppins多语言字体
  • 如何快速掌握MoviePilot批量重命名:完整操作指南与实战技巧
  • 038、替换激活函数能涨几个点?SiLU、Mish、GELU、ReLU 在 YOLO 上的消融实验
  • 大模型核心基础知识(12)—机器学习的基本概念与常见方法
  • MapLibre GL JS第31课:添加实时数据
  • 告别手动对账:3步实现美团饿了么百度外卖订单自动化采集 [特殊字符]
  • OBS-Multi-RTMP:一键同步多平台直播,让内容传播效率提升300%
  • 2026年适配维普AI智能降重工具横评:亲测8款工具,把AIGC率稳控在安全线内
  • 039、卷积模块替换实验:GhostConv、DSConv、DynamicConv 的精度-速度权衡
  • 实验一 常用网络命令的使用
  • TrafficMonitor插件完全指南:如何将Windows任务栏打造成全能信息中心
  • Arduino雨水监测系统:从传感器原理到物联网报警实现
  • 2026年徐州讯灵AI品牌推荐 - mypinpai
  • Display Driver Uninstaller:彻底解决显卡驱动残留问题的系统管理员必备工具
  • 【新手保姆级教程】OpenClaw v2.7.8 一键安装教程,Windows 环境快速部署(包含安装包)
  • 因民事养老金管理失误,英国政府拒绝向Capita授予5.63亿英镑合同
  • Vue3日期时间选择器终极指南:如何在5分钟内构建现代化表单界面
  • 拆解Linux 0.11的键盘驱动:从‘按回车’到‘读字符’的底层发生了什么?
  • [开源] 多部门会签文档进度自动重建系统:面向医院行政与临床协同的OCR+状态机追踪工具
  • 终极QMCFLAC转MP3解决方案:突破QQ音乐加密格式限制
  • 2026年吸气式感烟火灾探测器口碑排名 - mypinpai
  • Qt圆角窗口的两种实现方案详解
  • 基于波前编码的红外系统焦深延拓特性解析方案【附代码】
  • 2026Q2四川园林景观雕塑生产基地选型技术指南:GRG异形雕塑成都厂家、四川一站式雕塑设计制作厂家、四川不锈钢雕塑定制厂家选择指南 - 优质品牌商家
  • AnyFlip下载器:三步实现电子书PDF转换的跨平台解决方案
  • 老Mac焕新记:手把手教你用U盘和Ghost镜像给iMac安装纯净版Win7
  • 实战测试10款降AI率工具:找到导师推荐的“无痕降AIGC”终极方案