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, 临床合规, 临床监测, 信号处理, 信号质量评估, 医疗健康, 医疗设备连接, 医院级, 后端开发, 命令控制, 噪声消除, 实时图表, 实时数据可视化, 心律失常检测, 心率检测, 数字信号处理, 数据采集, 滤波器, 生物医学工程, 电极监控, 电池监控, 移动医疗应用, 移动应用开发, 自定义图表绘制, 蓝牙经典连接, 跨平台应用, 陷波滤波器