Akitha-Chanupama/Mediagraphy_ECG

GitHub: Akitha-Chanupama/Mediagraphy_ECG

一款基于Flutter的移动应用,用于捕获和可视化医疗级ECG数据,支持实时信号处理和分析,主要面向教育和研究用途。

Stars: 16 | Forks: 0

# 医疗级心电监测应用 一款功能全面的 Flutter 应用,用于实时心电监测,具备医疗级信号滤波、信号质量评估和高级分析功能。 ## 🏥 医疗级特性 ### 高级信号处理 - **多级数字滤波**:巴特沃斯高通、低通和陷波滤波器 - **直流偏移消除**:基线漂移校正 - **工频干扰消除**:50Hz/60Hz 陷波滤波 - **实时信号质量评估**:信号完整性持续监测 - **自适应降噪**:基于信号条件的动态滤波 ### 临床合规性 ### 实时分析 - **心率检测**:先进的 R 波检测算法 - **心律失常检测**:基本的心律分析能力 - **导联连接监测**:实时电极状态 - **电池监测**:设备电量追踪 ## 🚀 快速开始 ### 前置条件 - Flutter SDK (>=3.8.1) - Dart SDK - Android Studio / VS Code - 支持经典蓝牙的心电设备 ### 安装说明 1. **克隆仓库** ``` git clone cd ecg_bl ``` 2. **安装依赖** ``` flutter pub get ``` 3. **配置蓝牙权限** **Android** (`android/app/src/main/AndroidManifest.xml`): ``` ``` 4. **运行应用** ``` flutter run ``` ## 📱 应用架构 ### 核心组件 #### 1. 增强型心电控制器 (`lib/services/enhanced_ecg_controller.dart`) - 管理心电数据流的中心控制器 - 集成滤波、分析和 UI 更新 - 处理设备连接和数据记录 #### 2. 高级心电滤波器 (`lib/services/advanced_ecg_filter.dart`) - 医疗级数字信号处理 - 符合医疗标准的多级滤波器 - 实时信号质量评估 #### 3. 心电数据解析器 (`lib/services/ecg_data_parser.dart`) - 带验证的健壮数据包解析 - 错误检测与恢复 - 统计监测 #### 4. 蓝牙服务 (`lib/services/bluetooth_service.dart`) - 可靠的蓝牙通信 - 自动重连 - 连接健康监测 ### 数据模型 (`lib/models/ecg_data.dart`) - **ECGLead**:综合的导联定义 - **ECGPacket**:经过验证的数据包 - **ECGSample**:处理后的 12 导联样本 - **ECGSettings**:可配置参数 ## 🔧 配置 ### 滤波器设置 ``` // Diagnostic ECG (0.05-150 Hz) ECGSettings( filterType: ECGFilterType.filter150Hz, gain: 1, enableNotchFilter: true, notchFrequency: 50.0, // or 60.0 for US ) // Patient Monitoring (0.5-40 Hz) ECGSettings( filterType: ECGFilterType.filter40Hz, gain: 2, enableNotchFilter: true, ) ``` ### 设备连接 ``` final controller = EnhancedECGController(); await controller.initialize(); final devices = await controller.scanForDevices(); await controller.connectToDevice(devices.first); ``` ## 📊 信号质量指标 该应用提供全面的信号质量评估: - **信噪比 (Signal-to-Noise Ratio)**:以 dB 为单位 - **基线稳定性**:百分比 (0-100%) - **幅度一致性**:R 波幅度变化 - **噪声水平**:高频内容评估 - **综合质量**:综合评分 (0-100%) ### 质量等级 - **优秀** (80-100%):医疗级质量 - **良好** (60-79%):适用于监测 - **一般** (40-59%):临界质量 - **较差** (20-39%):存在明显伪迹 - **不可接受** (0-19%):信号无效 ## 🏥 医疗合规说明 ### ⚠️ 重要免责声明 1. **不可用于临床诊断**:本应用仅用于教育和研究目的 2. **医疗器械法规**:未经 FDA 或其他监管机构批准 3. **专业人员指导**:应在医疗专业人员指导下使用 4. **紧急情况**:不适用于急救或危重监护 ### 标准合规性 - **IEC 60601-2-25**:心电设备安全要求 - **AAMI EC11**:诊断用心电设备标准 - **AHA/ACC 指南**:12 导联心电图解读标准 ## 🔍 故障排除 ### 常见问题 1. **蓝牙连接失败** - 确保设备已配对并在范围内 - 检查蓝牙权限 - 重启蓝牙服务 2. **信号质量差** - 检查电极连接 - 确认皮肤准备是否得当 - 调整滤波器设置 3. **噪声水平高** - 启用陷波滤波器以消除工频干扰 - 检查电磁干扰源 - 确认接地是否正确 ### 调试模式 启用调试日志以进行详细诊断: ``` debugPrint('ECG Debug: ${controller.getStatistics()}'); ``` ## 📈 性能优化 ### 实时处理 - 针对 250 Hz 采样率优化 - 高效的循环缓冲区 - 最小内存分配 - 60 FPS UI 更新 ### 内存管理 - 自动缓冲区大小管理 - 垃圾回收优化 - 资源释放时清理 ## 🧪 测试 ### 单元测试 ``` flutter test ``` ### 集成测试 ``` flutter test integration_test/ ``` ### 信号处理验证 - 滤波器频率响应验证 - 信号质量算法验证 - 性能基准测试 ## 📚 API 参考 ### 关键类 #### 增强ECG控制器 ``` // Initialize and connect await controller.initialize(); await controller.connectToDevice(device); // Start/stop recording controller.startRecording(); controller.stopRecording(); // Get real-time data final samples = controller.getFilteredSamples(ECGLead.leadII); final quality = controller.getSignalQuality(ECGLead.leadII); final heartRate = controller.getCurrentHeartRate(); ``` #### 高级ECG过滤器 ``` // Create filter with preset final filter = AdvancedECGFilter( sampleRate: 250.0, preset: ECGFilterPreset.diagnostic, ); // Process sample final result = filter.process(rawSample); print('Filtered: ${result.filteredValue}'); print('Quality: ${result.signalQuality.overallQuality}%'); ``` ### 代码标准 ## 📄 许可证 本项目采用 MIT 许可证 - 详情请参阅 LICENSE 文件。 ## ⚖️ 法律声明
标签:Android权限, Butterworth滤波器, Dart, ECG监测, Flutter, 临床合规, 临床监测, 信号处理, 信号质量评估, 医疗健康, 医疗设备连接, 医院级, 后端开发, 命令控制, 噪声消除, 实时图表, 实时数据可视化, 心律失常检测, 心率检测, 数字信号处理, 数据采集, 滤波器, 生物医学工程, 电极监控, 电池监控, 移动医疗应用, 移动应用开发, 自定义图表绘制, 蓝牙经典连接, 跨平台应用, 陷波滤波器