心电图常见协议

魔法师LQ

背景

ECG(Electrocardiogram 或electrocardiograph)表示记录心脏活动引起的电活动记录(心电图)的过程[1]。

目前一般的检测方法为12联ECG,测试时将10个电极置于受试者四肢和胸部表面,以12个不同的角度(“导联”)测量一段时间内心脏电位幅度的改变[1]。

ECG中最重要的波形是三类,P波,QRS复合(complex)波,T波。

正常窦性心律的心脏心电图 正常心电图波的动画

进一步细分为[1]:

  • O 周期原点或基准点
  • P 心房收缩期收缩脉搏
  • Q 心室收缩前心电减小
  • R 心室收缩电位达到高峰
  • S 心室收缩后心电减小
  • T 心室恢复
  • U T波后的波,时常不可见

格式和协议

现有较为权威的ECG数据库有MIT-BIHAHA,欧洲ST-T,更多来源可以访问PhysioBank DatabasesTHEW

现有的心电格式主要有一下几种,

DICOM更注重医学影像的交换和传递,对于如心电图仪、检验类仪器等非图像设备数据的交互共享不太适用[4]。

SCP-ECG

现有的数字心电图标准各具特点,其中以欧 洲CEN推广的标准心电数据交换协议(Standard Communication Protocol for Computer-assisted Electrocardiography,SCP-ECG) 标准最具代表性[4]。SCP-EGC标准是目前为止可选的最全面的心电信息标准化通讯协议,SCP-ECG本身格式以二进制存储。

SCP格式采用如图2所示编码结构,其数据编码采用循环冗余校验的方法有效保证数据传输的正确性和完整性。 标准消息格式使用2字节的循环冗余校验位和4字节的记录长度位作为文件头,记录数据文件的循环冗余校验信息以及文件长度信息。字段则同样采用16字节的字段标识符头标识其循环冗余校验位、子段标识符、字段长度等信息,同时根据该字段长度可获取相应字段的数据信息。

该标准格式以字段为单位,其包括循环冗余校验校验位、数据总长度位、段指针表以及包含患者信息、心电采集信息的头信息段等4个必要字段,同时根据心电测量和波形压缩技术等的需要,分别记录其哈弗曼压缩编码表、ECG导联定义、 QRS波形位置、参考节律编码数据、剩余ECG压缩编码数据、总测量结果、诊断结果、厂家自定义测量结果、导联测量结果、通用诊断代码等可选字段。

MIT-BIT

数据库记录包含三个文件,分别是头文件(.hea)、数据文件(.dat)、注释文件(.atr)。

  • 头文件详细说明了与它关联的数据文件 的名字及其属性, 存储方式为 ASCⅡ码字符
  • 数据文件是以自定义的格式按二进制存储的信号原始数据,每三个字节存储两个数,一个数12bit
  • 注释文件是记录心电诊断专家对信号分析的结果 , 主要包括心跳 /节律和信号质量等 , 以二进制存储 , 格式有MIT和AHA两种

使用MATLAB从原始的数据中恢复心电图图像。

数据下载地址:https://www.physionet.org/cgi-bin/atm/ATM

PhysionBankATM提供了多种格式的心电数据,从Input选项中选择mitdb,toolbox中可以选择不同的格式。

同时不同的格式,其提供了部分不同的命令行或者处理程序,

The WFDB Software Package,提供了若干种命令行工具,如上图所示。

当从ATM下载不同格式的原始数据时,下方会提供相应的命令行程序,或者数据预览。

数据的基本字段如上图所示,本质是时间序列。

physionet首页右侧还提供了一些工具,

对MIT-BIH格式数据的支持比较良好。

此外还使用了python库,wfdb进行了恢复。

https://github.com/MIT-LCP/wfdb-python

HL7aECG

HL7aECG以可扩展标记语言(eXtensible Markup Language, XML)语言标识心电检查中的一组或多组心电序列信息、其层次嵌套结构和简单文本描述,HL7aEGC也叫 FDAXML。

讨论

当前ECG格式众多,有相应的阅读器实现了相应的协议,

  • EcgViewer:支持SCP-ECG, OMRON ® 801 (Read-only), GE MUSE ® XML (Read-only), Philips ® XML (Read-only), MIT-BIH (Read-only), Binary and OEM proprietary .
  • MIT-BIH官网上提供了一个rddata.m将记录保存为Matlab可以读的数据
  • C# ECG Toolkit

不同心电图监测设备的数据和显示波形的软件, 数据中的主要信息包括病人信息、导联数、采样频率等, 而占用存储空间最大的部分则为检测到的心电数据. 不同厂家在心电检测的采样频率、 增益等, 以及信息与数据存放的格式这些方面, 都不尽相同[5]。[5]采用的方法,

对于显示波形所用软件, 本文采用软件逆向工程的方法对其进行分析. 首先要在心电数据及软件中,找到相应信息以及数据的存放位置. 对于数据的存放格式, 要对显示心电波形的软件进行跟踪, 只要找到软件对数据文件的读取方式, 就可以得到其存放格式.大多数心电数据的存放格式相似, 所存储的文件格式都是按照采样时间点顺序存储。

为之后的统一格式和处理提供了思路。

结论

根据调研,现有医疗器械传输采用SCP-ECG较多,涉及网络的应用HL7aECG较多。后续讲进一步细化和调研集中协议和格式。

参考

[1] Electrocardiography, 2019. . 维基百科.

[2] Moody, G. B. & Mark, R. G. MIT-BIH Arrhythmia Database. (1992). doi:10.13026/C2F305

[3] 基于Android的远程心电检测系统.pdf. Available at:PDF. (Accessed: 25th March 2019)

[4] 吴书裕. 基于健康信息交换第七层协议的心电图仪信息化研究. Available at: PDF. (Accessed: 25th March 2019)

[5] 心电数据格式解析与转换系统 [WWW Document], n.d. URL (accessed 3.25.19).