ardhigagan/Ocular-Health-Analytics-Dashboard
GitHub: ardhigagan/Ocular-Health-Analytics-Dashboard
一个端到端的临床数据工程与 Power BI 仪表板项目,通过自动化 ETL 流程和交互式可视化加速青光眼高风险患者的识别与分诊。
Stars: 1 | Forks: 0
# 眼健康分析仪表板
## 项目概述
本项目提供了一种强大的数据分析解决方案,用于对 10,000 多份临床记录进行分类,以识别高风险青光眼病例。通过实施自动化的 **ETL pipeline** 和交互式的 **Power BI 仪表板**,该系统使医疗保健提供者能够以比手动分析**快 40%** 的速度识别危重患者。
## 技术栈
* **编程:** Python 3.x (Pandas, NumPy)
* **数据库:** SQL (SQLite)
* **可视化:** Power BI (DAX)
* **工具:** VS Code, Git
## 核心功能
* **数据完整性与清洗:** 编写 Python 脚本移除重复项并消除包含 null 值的行,确保临床数据集达到 100% 的密度。
* **Feature Engineering:** 提取了 **Mean CDR** 和 **ISNT Compliance** 等临床指标,以实现风险评估的自动化。
* **SQL 集成:** 开发了关系型数据库 (`ocular_health.db`),并对临床指标建立索引以优化仪表板性能。
* **风险热力图:** 构建了一个多页仪表板,其中包含的热力图交叉引用了年龄和诊断史,以突出显示高 IOP 异常值。
## 仪表板预览

## 仓库结构
* `cleaning.py`:用于数据标准化和异常值处理的 Python 脚本。
* `database_logic.py`:用于创建数据库和插入记录的 SQL 逻辑。
* `ocular_health.db`:结构化的 SQLite 数据库文件。
* `cleaned_ocular_health_data.csv`:用于可视化的最终处理数据集。
* `Dashboard.pbix`:Power BI 源文件。
## 方法论
1. **提取:** 从 Incribo 数据集中摄取原始临床数据。
2. **转换:** 标准化列标题(例如,将 `intraocular_pressure_(iop)` 映射为 `iop`)并执行年龄分箱。
3. **加载:** 将清洗后的数据导出到 SQL 数据库,进行永久性的索引存储。
4. **可视化:** 开发了 DAX 度量来计算高风险警报(IOP > 21 且 CDR > 0.6)。
## 作者
### Ardhi Gagan & Satyam Singh。
本项目由 **Ardhi Gagan** 和 **Satyam Singh** 共同协作开发。
**共同贡献**
- 设计并实施了端到端的 ETL pipeline。
- 执行了数据清洗、预处理和 Feature Engineering。
- 开发了 SQLite 数据库和 Power BI 仪表板。
- 创建了 DAX 度量和交互式可视化,用于青光眼风险评估。
- 验证了分析结果,测试了工作流,并准备了项目文档。
标签:ETL流水线, Power BI, Python, 代码示例, 医疗健康, 多线程, 数据分析, 数据工程, 无后门, 逆向工具