ECG数据处理系统及方法
技术领域
本发明涉及医疗技术领域,尤其是一种ECG数据处理系统及方法。
背景技术
如今3G手机、PAD、IPTV等智能终端逐渐普遍化,功能越来越强大,各种多媒体娱乐和商务应用相应出台。随着互联网和移动互联网业务用户的扩大,运营商已逐渐从它自身的领域向其他的产业扩张。移动医疗改变了过去人们只能前往医院“看病”的传统生活方式。无论在家里还是在路上,人们都能够随时听取医生的建议,或者是获得各种与健康相关的资讯。医疗服务因为移动通信技术的加入,不仅将节省之前大量用于挂号、排队等候乃至搭乘交通工具前往的时间和成本,而且会更高效地引导人们养成良好的生活习惯,变治病为防病。
心电图(ECG)对各种心律失常和传导阻滞的诊断分析具有肯定价值,有助诊断,对冠心病的诊断具有重大意义。心电图主要反映心脏激动的电学活动,心肌受损、供血不足、药物和电解质紊乱都可能引起一定的心电图变化,特征性的心电图改变和演变是诊断心肌梗死的可靠实用方法。移动医疗方式的出现,对心电图应用的发展也带来了机遇和挑战。
长时间的进行心电数据的记录及分析有利于提高心脏类疾病的诊出率。但是,长时间的记录及分析,使得多导联的心电数据的数据量较大,不利于传输与分析。通常的做法是将海量的数据进行压缩,再在分析平台上进行解压缩后进行分析,然而,这种压缩解压的方式会使原始的心电信号受损,对分析结果的准确性产生一定的影响。
举例说明,一个导联,以256Hz采样率的设备,2进制的存储方式,每个点占2个字节,1小时的数据量为1.8Mb,10天的数据约有440Mb,如果使用3导联,提高采样率到512的话,整个数据量达到约2.6GB,数据量非常大,要处理这些数据,对这些数据进行归类,进而进行疾病地判别,使用现有的单机的处理方式会非常地耗时耗力。
因此,需要一种更为高效地处理方式,能够快速并准确无误地处理这些海量的ECG数据。
发明内容
本发明的目的在于提供一种ECG数据处理系统及方法,以快速处理海量的ECG数据并对所述ECG数据进行分类。
为了达到上述目的,本发明提供了一种ECG数据处理系统,用于处理ECG数据,包括:
ECG分布式存储模块,用于分布式存储所述ECG数据;
ECG预处理模块,用于提取分布式存储于所述ECG分布式存储模块上的ECG数据,制定任务并分配所述任务;
ECG处理模块,用于接收并执行所述ECG预处理模块制定的任务;以及
ECG分类统计模块,用于对所述ECG处理模块执行任务的结果进行统计分析,并将统计分析的结果发送至所述ECG分布式存储模块。
优选的,在上述的ECG数据处理系统中,所述ECG处理模块执行所述ECG预处理模块制定的任务的过程包括:对所述ECG预处理模块制定的任务中包含的数据进行分类。
优选的,在上述的ECG数据处理系统中,对所述ECG预处理模块制定的任务中包含的数据进行分类的类别包括:正常、房颤、心动过缓、心动过速、早搏、心律不齐以及不能分析中的一种或多种。
优选的,在上述的ECG数据处理系统中,对所述ECG预处理模块制定的任务中包含的数据进行分类的过程包括:按特定时间段将所述ECG预处理模块制定的任务中包含的数据分割为与多个特征波分别对应的多个子数据,对每个特征波对应的所示子数据进行伪差检测,当未出现伪差时,则判定所述特征波对应的所述子数据的类别为不能分析;否则对所述特征波对应的所述子数据进行心率检测。
优选的,在上述的ECG数据处理系统中,所述心率检测的过程包括:
当心率检测的结果规律时,则对心率检测值进行统计分析,否则,对所述特征波对应的所述子数据进行房颤检测。
优选的,在上述的ECG数据处理系统中,对心率检测值进行统计分析的过程包括:
当心率检测值小于一第一心率检测值时,则判定所述特征波对应的所述子数据的类型为心动过缓;
当心率检测值大于一第二心率检测值时,则判定所述特征波对应的所述子数据的类型为心动过速;
否则,则判定所述特征波对应的所述子数据的类型为正常。
优选的,在上述的ECG数据处理系统中,所述第一心率检测值为50-70。
优选的,在上述的ECG数据处理系统中,所述第二心率检测值为90-100。
优选的,在上述的ECG数据处理系统中,对所述ECG预处理模块制定的任务中包含的数据进行分类的过程还包括:当所述心率检测的结果不规律时,还进行房颤检测,当检测结果呈现房颤特点时,则判定该特征波对应的所述子数据的类型为房颤,否则进行早搏检测。
优选的,在上述的ECG数据处理系统中,所述早搏检测的过程包括:当检测结果呈现早搏特点时,则判定所述特征波对应的所述子数据的类型为早搏;否则,判定所述特征波对应的所述子数据的类型为心律不齐。
优选的,在上述的ECG数据处理系统中,所述ECG数据处理系统基于Hadoop,所述ECG分布式存储模块的功能由Hadoop中的HDSF模块实现,所述ECG预处理模块的功能由Hadoop中的Map模块实现,所述ECG分类统计模块的功能由Hadoop中的Reduce模块实现。
本发明还提供了一种ECG数据处理方法,包括以下步骤:
ECG分布式存储模块接收ECG数据,并对其进行分布式存储;
ECG预处理模块提取分布式存储于所述ECG分布式存储模块上的所述ECG数据,制定任务并分配所述任务;
ECG处理模块接收并执行所述ECG预处理模块制定的任务,并将执行的结果发送至ECG分类统计模块;
所述ECG分类统计模块接收所述执行的结果并对其进行统计分析,然后将统计分析的结果发送至所述ECG分布式存储模块。
优选的,在上述的ECG数据处理方法中,所述ECG处理模块执行所述ECG预处理模块制定的任务的步骤包括:对所述ECG预处理模块制定的任务中包含的数据进行分类,对所述ECG预处理模块制定的任务中包含的数据进行分类的类别包括:正常、房颤、心动过缓、心动过速、早搏、心律不齐以及不能分析中的一种或多种。
优选的,在上述的ECG数据处理方法中,对所述ECG预处理模块制定的任务中包含的数据进行分类的类别分别用不同的代号进行表示。
优选的,在上述的ECG数据处理方法中,所述ECG处理模块对所述ECG预处理模块制定的任务中包含的数据进行分类的步骤包括:
按特定时间段将所述ECG预处理模块制定的所述任务中包含的数据的分割为分别与多个特征波对应的多个子数据;
对每个特征波对应的所述子数据进行伪差检测,当未出现伪差时,则判定所述特征波对应的所述子数据的类别为不能分析;否则,则对所述特征波对应的所述子数据进行心率检测;
当心率检测的结果规律时,则对心率检测值进行统计分析;否则,对所述特征波对应的所述子数据进行房颤检测;
如果检测结果呈现房颤特点时,则判定所述特征波对应的所述子数据的类型为房颤,否则,则对所述特征波对应的所述子数据进行早搏检测;如果检测结果呈现早搏特点时,则判定所述特征波对应的所述子数据的类型为早搏,否则判定所述特征波对应的所述子数据的类型为心律不齐。
优选的,在上述的ECG数据处理方法中,当心率检测的结果规律时,则对心率检测值进行统计分析的步骤还包括:
当心率检测值小于一第一心率检测值时,则判定所述特征波对应的所述子数据的类型为心动过缓;
当心率检测值大于一第二心率检测值时,则判定所述特征波对应的所述子数据的类型为心动过速;
否则,则判定所述特征波对应的所述子数据的类型为正常。
优选的,在上述的ECG数据处理方法中,所述第一心率检测值为50-70。
优选的,在上述的ECG数据处理方法中,所述第二心率检测值为90-110。
优选的,在上述的ECG数据处理方法中,所述ECG预处理模块制定任务时制定的任务数由以下公式获得:
任务数=ECG数据量/分割块的大小。
优选的,在上述的ECG数据处理方法中,所述任务数为正整数,且1≤任务数≤10000。
优选的,在上述的ECG数据处理方法中,所述任务数大于100。
优选的,在上述的ECG数据处理方法中,所述ECG数据处理方法基于Hadoop,所述ECG分布式存储模块的功能由Hadoop中的HDSF模块实现,所述ECG预处理模块的功能由Hadoop中的Map模块实现,所述ECG分类统计模块的功能由Hadoop中的Reduce模块实现。
在本发明提供的ECG数据处理系统及方法中,ECG分布式存储模块对需要处理的ECG数据进行分布式存储;ECG预处理模块提取分布式存储于所述ECG分布式存储模块上的所述ECG数据,制定任务并分配任务;每个从节点上均有一个ECG处理模块,接收所述ECG预处理模块制定的任务并执行,并将执行的结果发送至所述ECG分类统计模块;所述ECG分类统计模块接收所述执行的结果并对其进行统计分析,然后将统计分析的结果发送至所述ECG分布式存储模块。本发明提高了对需要处理的海量ECG数据的处理速度。
附图说明
图1为本发明实施例中ECG数据处理系统的结构示意图;
图2为本发明实施例中ECG数据处理系统进行数据处理的过程示意图;
图3为本发明实施例中ECG数据处理方法的流程图;
图4为图3中步骤S3的流程图。
具体实施方式
下面将结合示意图对本发明的具体实施方式进行更详细的描述。根据下列描述和权利要求书,本发明的优点和特征将更清楚。需说明的是,附图均采用非常简化的形式且均使用非精准的比例,仅用以方便、明晰地辅助说明本发明实施例的目的。
Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且,其提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。具体的,Map是把输入分解成中间的Key/Value对,Reduce把Key/Value合成最终输出。
本发明实施例提供了一种ECG数据处理系统,用于处理海量ECG数据。本发明所提供的ECG数据处理系统不仅可以基于上述的Hadoop结构,还可以基于类似于上述Hadoop架构的其他架构,在此不再赘述。在本发明实施例中,所述ECG数据处理系统基于上述的Hadoop架构。请参考图1和图2,图1为本发明实施例中ECG数据处理系统基于Hadoop架构的结构示意图,图2为本发明实施例中ECG数据处理系统进行数据处理的过程示意图,在图2中,(1)是应用层请求数据上传,(2)表示应用层请求数据分析/或上传后由大数据平台请求数据分析,(3)表示ECG数据预处理模块分解任务,确定任务数,分配给次节点,(4)表示ECG分类统计模块汇总所述ECG处理模块的结果,并根据需要的统计方式进行输出。所述ECG数据处理系统包括:ECG分布式存储模块、ECG预处理模块、ECG处理模块和ECG分类统计模块;所述ECG分布式存储模块的功能由Hadoop中的HDSF模块实现,所述ECG预处理模块的功能由Hadoop中的Map模块实现,所述ECG分类统计模块的功能由Hadoop中的Reduce模块实现。所述HDSF模块用于分布式存储所述ECG数据。所述Map模块用于提取分布式存储于所述HDSF模块上的ECG数据,制定任务并分配任务。所述ECG处理模块用于接收并执行所述Map模块制定的任务。所述Reduce模块用于对所述ECG处理模块执行任务的结果进行统计分析,并将统计分析的结果发送至所述HDSF模块。
作为一个非限定性的例子,所述ECG处理模块执行所述Map模块制定的任务的过程包括:对所述Map模块制定的任务中包含的数据进行分类。所述ECG处理模块对所述Map模块制定的任务中包含的数据进行分类的类别包括但不限于:正常、房颤、心动过缓、心动过速、早搏、心律不齐以及不能分析中的一种或多种。这些类别可以用不同的代号进行表示。在本实施例中,用不同的数字进行表示。例如,用0表示正常,1表示房颤,2表示心动过缓,3表示心动过速,4表示早搏,5表示心律不齐以及用9表示不能分析。当然,在本发明的其他实施例中,并不以此为限,还可以用其他的数据作为代号进行表示。比如,可以用十进制中的其他数字进行表示。再比如,可以用其他进制的数字进行表示,例如,以十六进制而言,还可以用A来表示正常等。
需要说明的是,所述分类的类别包括但不限于上述的正常、房颤、心动过缓、心动过速、早搏、心律不齐以及不能分析,因此,在本发明的其他实施例中,用来表示类别的数字的个数也并不限于上述的7个。当所述分类的类别增多时,相应的,用来表示类别的数字的个数也将增多。
本发明实施例还提供了一种使用上述的系统对ECG数据进行处理的方法,如图3所示,图3为本发明实施例中ECG数据处理方法的流程图。具体的,包括以下步骤:
步骤S1,HDSF模块接收ECG数据,并对其进行分布式存储;
步骤S2,Map模块提取分布式存储于所述HDSF模块上的所述ECG数据,制定任务并分配任务;
步骤S3,ECG处理模块接收所述Map模块制定的任务并执行,并将执行的结果发送至Reduce模块;以及
步骤S4,所述Reduce模块接收所述执行的结果并对其进行统计分析,然后将统计分析的结果发送至所述HDSF模块。
接下来,结合图3和图4对上述的各步骤进行详细的说明。
在步骤S1中,HDSF模块接收ECG数据,并对其进行分布式存储。
Hadoop集群包括多个服务器,所述多个服务器可以是物理服务器也可以是虚拟服务器,主要提供物理的存储空间和快速的计算能力。所述Hadoop集群采用Master-Slave构架,即,在所述Hadoop集群中有主节点和从节点。主节点主要起监督、分解任务以及分配任务的功能,从节点主要完成主节点分配的任务。
将需要处理的ECG数据上传至所述Hadoop集群,所述HDSF模块接收到需要处理的ECG数据后,对需要处理的ECG数据进行分割。所述HDSF模块对需要处理的ECG数据按照分割块的大小进行分割,并将分割后的数据进行分布式存储。
在本发明实施例中,所述分割块的大小为64MB,在本发明的其他实施例中,所述分割块的大小还可以根据需要处理的ECG数据的大小进行调整。例如,所述分割块的大小还可以为32M、128M、16M、256M以及其他值,在此不再赘述。
在步骤S2中,Map模块提取分布式存储于所述HDSF模块上的需要处理的ECG数据,制定任务并分配任务。
所述Map提取分布式存储于所述HDSF模块上的需要处理的ECG数据,根据所述Hadoop集群的性能制定任务。其中,制定的任务的任务数由以下公式获得:任务数=ECG数据量/分割块的大小。
所述分割块的大小即为上述步骤S1中的分割块的大小,在本实施例中,其为64MB,在本发明的其他实施例中,还可以根据需要处理的ECG数据的大小进行调整。一般的,所述任务数的范围在1-10000之间,具体的,所述任务数为正整数,且1≤任务数≤10000。较优的,所述任务数大于100。一般来说,任务数越多,分割到的数据量越小,处理效率越高,但同时会占用大量地CPU计算空间,影响到其他程序的运行,因此,在设计时需要进行平衡地考虑。
在步骤S3中,ECG处理模块接收所述Map模块制定的任务并执行,并将执行的结果发送至Reduce模块。
所述ECG处理模块执行所述Map模块制定的任务的步骤包括:对所述Map模块制定的任务中包含的数据进行分类。所述ECG处理模块对所述Map模块制定的任务中包含的数据进行分类的类别包括但不限于:正常、房颤、心动过缓、心动过速、早搏、心律不齐以及不能分析。这些类别可以用不同的代号进行表示。在本实施例中,用不同的数字进行表示。例如,用0表示正常,1表示房颤,2表示心动过缓,3表示心动过速,4表示早搏,5表示心律不齐以及用9表示不能分析。当然,在本发明的其他实施例中,并不以此为限,还可以用其他的数据进行表示。也可以用十进制中的其他数字进行表示。还可以用其他进制的数字进行表示,例如,以十六进制而言,还可以用A来表示正常等。
需要说明的是,所述分类的类别包括但不限于上述的正常、房颤、心动过缓、心动过速、早搏、心律不齐以及不能分析,因此,在本发明的其他实施例中,用来表示类别的数字的个数也并不限于上述的7个。当所述分类的类别增多时,相应的,用来表示类别的数字的个数也将增多。
进一步的,在所述Hadoop集群的每个从节点上均布置有一ECG处理模块,以对该从节点上的数据进行分类。在所述Hadoop集群中,有多少个任务就有多少个从节点。由上述步骤S2中的描述可知,在本实施例中,任务数=ECG数据量/分割块的大小,则所述Hadoop集群中就有(ECG数据量/分割块的大小)个从节点。具体的处理过程如下所述。
步骤S31:所述ECG处理模块提取该从节点中的数据的一特定时间段内的特征波。
在此之前,需要对该从节点上的数据进行滤波处理,以去掉该从节点上的数据中的噪声。在滤波去噪之后,先对该从节点上的数据进行特征波定位,然后提取一特定时间段内的特征波。在本实施例中,所述特定时间段为6秒。当然,在本发明的其他实施例中,所述特定时间段还可以是其他的数值,在此并不以此为限。
所述ECG预处理模块按所述特定时间段将所述任务中包含的数据分割为与多个特征波分别对应的多个子数据。
所述特征波包括但不限于P波,QRS波,T波或其他波。
步骤S32:对提取的特征波对应的子数据进行伪差检测。
当提取的特征波对应的子数据未出现伪差时,则判定所述特征波对应的所述子数据的类别为不能分析,该类别对应的数字为9。否则,即当所述特征波对应的子数据出现伪差时,执行步骤S33。
步骤S33:检测心率检测值是否规律。
当心率检测的结果为规律时,则执行步骤S34。否则,则执行步骤S35。
步骤S34:对心率检测值进行统计分析。
当心率检测值小于一第一心率检测值时,则判定该特征波对应的所述子数据的类型为心动过缓;当心率检测值大于一第二心率检测值时,则判定该特征波对应的所述子数据的类型为心动过速;否则,则判定该特征波对应的数据的类型为正常。在本实施例中,所述第一心率检测值为50-70,较优的,在本实施例中,所述第一心率检测值为60,所述第二心率检测值为90-110,较优的,在本实施例中,所述第二心率检测值为100,当然,在本发明的其他实施例中,并不以此为限。在本实施例中,当检测的心率检测值小于60时,判定该特征波对应的子数据的类型为心动过缓,对应的数字为2。当检测的心率检测值在60和100之间时(大于等于60且小于等于100),判定该特征波对应的子数据的类型为正常,对应的数字为0。当检测的心率检测值大于100时,判定该特征波对应的数据的类型为心动过速,对应的数字为3。
步骤S35:房颤检测。
当检测结果呈现房颤特点时,则判定该特征波对应的子数据的类型为房颤,其对应的数字为1。否则,则执行步骤S36。
步骤S36:进行早搏检测。
当检测结果呈现早搏特点时,判定该特征波对应的子数据的类型为早搏,其对应的数字为4。否则,判定该特征波对应的子数据的类型为心律不齐,对应的数字为5。
每个从节点的数据被所述ECG处理模块处理后最终会输出一串数字来表示这一段ECG数据的分类结果,如一段30秒的ECG数据,经所述ECG处理模块处理后得到10012,代表30秒的ECG分类成了5段,第一段分类结果为1,即房颤;第二段分类结果为0,即正常;第三段分类结果为0,即正常;第四段分类结果为1,即房颤;第五段分类结果为2,即心动过缓。当然,该节点的数据被分成的段数可以进行调整,即所述特定时间段可以调整,优选为6秒或15秒。当所述特定时间段为6秒时,30秒的数据输出5个结果。当所述特定时间段为15秒时,30秒的数据输出2个结果。
在步骤S4中,所述Reduce模块接收所述执行的结果并对其进行统计分析,然后将统计分析的结果发送至所述HDSF模块。
所述ECG处理模块将每个从节点的数据进行处理的结果发送至所述Reduce模块,所述Reduce模块将所有从节点得到的数据进行汇总并统计。统计的结果可以根据实际需要进行设置。例如,其中一个统计结果1要求把是类型为0的全部统计出来,一共有多少个0,统计结果2要求把类型为1的全部统计出来,一共多少个1,在哪些位置产生了1等等,然后再把统计的结果在分布式存储于HDSF模块,方便之后的调用。
综上,在本发明实施例提供的ECG数据处理系统及方法中,HDSF模块对需要处理的ECG数据进行分布式存储;Map模块提取分布式存储于所述HDSF模块上的所述ECG数据,制定任务并分配任务;Hadoop集群中的每个从节点上均有一个ECG处理模块,接收所述Map模块制定的任务并执行,并将执行的结果发送至Reduce模块;所述Reduce模块接收所述执行的结果并对其进行统计分析,然后将统计分析的结果发送至所述HDSF模块。提高了对需要处理的ECG数据的处理速度。
上述仅为本发明的优选实施例而已,并不对本发明起到任何限制作用。任何所属技术领域的技术人员,在不脱离本发明的技术方案的范围内,对本发明揭露的技术方案和技术内容做任何形式的等同替换或修改等变动,均属未脱离本发明的技术方案的内容,仍属于本发明的保护范围之内。