Skip to content

GrayLand119/ecgi_ring_sdk_ios

Repository files navigation

说明

版本说明:

  • 0.3.3

    • 扩展心率计算范围到 30~240BPM

    • 修复 diagnose函数返回的心电图开始位置波形震荡的问题

  • 0.3.2

    • 增加静态库资源搜索的兼容性, 兼容手动添加Framework 的工程
  • 0.3.1

    • 修复噪声过多数据, 导致没有检测到足够的 R 波, 从而导致崩溃的问题;
  • 0.3.0

    • 增加静态库版本 ECGSDKStatic

    • 增加噪声评估、掩膜算法;

    • 保持MIT-BIH ECG数据库数据准确率的情况下提升智能戒指实际采集的 I 导联,带较大噪声和伪影数据的诊断优化;

  • 0.2.0

    • 优化实时滤波算法
    • 首次调用continueProcess时将自动填充数据
  • 0.1.2

    • 修复continueProcess不返回数据的问题
  • 0.1.0

    • 添加 AI 算法
    • 添加内建缓冲区的实时算法 continueProcess
    • 添加试用 keyAPI, 有效期至 2024年 12 月 31 日
      • 使用SDK 前请先调用register方法
  • 0.0.1

    • 半成品, 提供主要的 SDK 框架以便提前做集成工作
    • 无鉴权, 3 个月后自动失效

使用说明

0x01 引入Framework

支持 CocoaPod 引入和直接引入.

CocoaPod 引入

  use_frameworks!
  # (Dynamic Framework)
  # Improt from local 
  pod 'ECGSDK', :path => './ECGSDK'
  # or
  # Import from github
  # pod 'ECGSDK', :path => 'https://github.com/GrayLand119/ecgi_ring_sdk_ios.git'
  
  # (Static Framework)
  pod 'ECGSDKStatic', :path => './ECGSDKStatic'
  # or
  # Import from git
	#  pod 'ECGSDKStatic', :path => 'https://github.com/Shenzhen-Simo-Technology-co-LTD/ecgi_ring_sdk_ios.git'

直接引入

Project -> TARGETS -> Build Phases -> Link Binary With Libraries -> 选择 ECGSDK.xcframework 即可

0x02 使用 SDK

添加引用:

import ECGSDK	

必须通过shared方法使用单例来调用接口:

// 必须使用单例, sdk = SMEcgSdk() 创建的实例,调用诊断接口将返回错误
let sdk = SMEcgSdk.shared()

// Load datas from csv file.
let path=Bundle.main.path(forResource: "normal100", ofType: "csv")!
let ecgData: Array = sdk.readCSV(path)
// Realtime process
let result = sdk.realtimeProcess(ecgData, fs: 250.0)
// Filtered datas
let filtered = result[0] as! Array<Any>
// Mean Heart Rate
let hr = result[1] as? Double ?? 0.0

使用方法具体见 Demo.

接口说明

/// 实时算法
/// 实时采集心电时可以调用此算法
/// - Parameters:
///   - rawData: 原始心电数据
///   - fs: 采样率
/// - Returns:
///     - array[0]: 处理后的心电数据
///     - array[1]: 平均心率
- (NSArray *)realtimeProcess:(NSArray<NSNumber *> *)rawData fs:(double)fs;

/// 诊断算法
/// 传入 30~300 秒的心电数据, 计算后返回诊断结果
/// - Parameters:
///   - rawData: 原始心电数据
///   - fs: 采样率
/// - Returns:
///   - resultArray 一组数据, 其中:
///   - resultArray[0]: 处理后的心电数据
///   - resultArray[1]: 心率相关信息 see [README#心率相关信息]
///   - resultArray[2]: 心律(节律)相关信息 see [README#节律相关信息]
- (NSArray<NSArray<NSNumber *> *>*)diagnose:(NSArray<NSNumber *> *)rawData fs:(double)fs;

心率相关信息

  1. minHR
  2. meanHR
  3. maxHR
  4. minRR(ms)
  5. meanRR(ms)
  6. maxRR(ms)
  7. PR间期(ms)
  8. QRS 波宽(ms)
  9. SDNN
  10. RMSSD
  11. 漏搏数量
  12. 室性早搏数量
  13. 室上性早搏数量

节律相关信息

  1. TypeIndex, 诊断结果(0~5) 0. 正常
    1. 房扑
    2. 房颤
    3. 室颤/室扑
    4. 其他心律不齐
    5. 噪声
    6. 含有室上性早搏
    7. 含有室性早搏
  2. 置信度(0.0~1.0)

About

智能戒指单导联心电数据分析算法iOS SDK

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published