孙金平
(天津医科大学 生物医学工程与技术学院,天津 300070)
远程心电监护在心脏病的诊断和救治方面发挥着重要作用。其获得的动态心电图可提高对非持续性异位心律,尤其是对一过性心律失常及短暂的心肌缺血发作的检出率,是诊断心肌缺血、心律失常,评估起搏器功和药物疗效的有效指标[1]。同时24 h 连续能监测,可快速发现异常信号,给予病人及时的救治[2]。
监护中心软件开发环境采用LabVIEW 2010。LabVIEW 由美国国家仪器(NI)公司研制开发,是一种用图标代替文本行创建应用程序的图形化编程语言,广泛地被工业界、学术界和研究实验室所接受。其不仅局限在测试测量领域的应用,且具备了开发应用软件能力,集成了大量常用控件,可方便地创建用户界面,同时,提供众多不同模块的开发工具包,大幅节省了软件开发周期[3]。本文即以此为平台进行监护中心的开发。
动态心电监护系统包括动态心电采集系统(Holter)和监护中心软件平台两个部分[4-5],如图1 所示。
图1 远程心电监护系统图
动态心电采集系统采用型号为TMS320C5515 的DSP(Digital Signal Processor)作为主处理器,包括的主要模块有:心电采集模块、数据存储模块、LCD 显示模块、实时数据检测模块、无线通讯模块、电源管理模块等。LCD 屏同时显示3 个不同导联的心电数据,通过按钮切换,可以任意选择当前显示导联。当前时间、收到的医生诊断信息、心电检测模块检测的心率均会实时显示在屏幕上。为了节省用电量,每隔2 min 按钮没有响应,LCD 屏即进入休眠状态。实时心电数据检测模块检测出异常数据时,无线通讯模块将异常点附近一段时间的心电数据通过GPRS 网络发送给远程监护中心服务器,医护人员根据接收到的心电数据进行诊断,并反馈用户相应的指导意见。同时,若检测没有异常,无线通讯模块也会每隔15 min 将一段时间的心电数据发送至监护中心服务器。SD 卡(Secure Digital Memory Card)进行24 h 连续不断的心电信号存储,以供医生进行心电数据分析。
监护中心软件在LabVIEW 2010 开发环境中进行开发,同时建立SQL Server 数据库,数据库中创建多个表,包含医院信息、Holter 信息、患者信息、接收数据信息、医生信息、用户密码信息等。在程序中调用相应的函数来进行查询、插入、修改等操作。
服务器程序是整个监护中心的最重要部分,其完成的功能有GPRS 数据接收、心电数据发送给医生客户端、医生客户端诊断意见发送给相应的Holter。服务器与Holter、医生客户端、数据库的连接关系如图2所示。
图2 监护中心各模块数据传输结构图
为了保证数据传输的完整性和可靠性,服务器与Holter 以及服务器和医生客户端之间的通讯均采用TCP/IP 协议。同时为使通讯过程相对简洁,在服务器端使用3 个TCP 通讯端口。服务器与Holter 通讯接口负责接收Holter 的GPRS 数据,并将医生诊断信息发送给Holter。服务器与医生客户端的命令传输端口收发医生客户端登陆、患者登记以及其他命令状态信息。服务器与医生客户端数据传输端口进行GPRS 和24 h动态心电数据的传输。
2.1.1 GPRS 数据接收
GPRS 数据接收模块负责接收Holter 发送来的数据,并将数据保存至文件,填写数据库中相应的表,并告知客户端有新数据需要处理。为了提高数据处理的速度,数据接收采用LabVIEW 的生产者消费者循环模式(见图3)。
图3 生产者消费者模式数据接收
首先创建一空的队列和两个线程,生产者线程循环接收Holter 发来的数据,并将数据和TCP 连接信息放入队列。同时,消费者线程循环读取队列中的信息,进行解码处理[6-8]。GPRS 心电数据在被Holter 发送之前已被编码为统一格式,消费者线程接收到GPRS心电数据后可解码出该Holter 的编号,由此编号便可从数据库中的患者信息表中查询到该佩戴者的详细信息。解码出的心电数据存入数据库相应位置,数据接收完毕后,更新数据库Holter 使用信息,同时触发转发数据给医生客户端的线程。
2.1.2 数据分发模块
服务器数据分发模块将接收到的心电数据转发给医生客户端进行处理,程序流程图见图4。服务器上实时储存着所有与该服务器连接的医生客户端TCP连接信息,数据分发线程触发时,服务器会将消息发送给每个正在连接的客户端,并将数据发送给最先回应的客户端。同时,对其他客户端发送取消数据发送的信息。
图4 医生客户端收到的服务器接收数据提示
医生客户端完成患者信息登记、心电数据处理等功能。程序启动界面为一登陆界面,只有获得用户名和密码的医生才有权限进入数据接收处理的界面。进入软件后,医生便可进行患者登记、修改登记信息、实时接收服务器转发数据等。医生客户端接收到心电数据后进入显示操作界面,图5 所示为程序运行时心电数据显示效果,其中白色背景部分心电为接收到的心电的全览图,红格背景部分数据为全览图中选择的蓝色部分的心电信号。同时提供时间测量、幅值测量、放大等工具按钮,允许用户改变走纸速度、幅值放大、显示导联。根据文件中保存的从Holter 模块中的SIM900 获取的经纬度信息,调用百度地图API[9-10],即可实现地图定位,获取佩戴者的位置信息,方便对突发病人的紧急救治。医生可将诊断结果或意见建议等信息经服务器发送给Holter。客户端还提供历史数据查询功能,只需提供病人登记号,即可向服务器查询该使用者一段时间内所有无线发送的心电数据。
图5 医生客户端心电数据显示界面
图6 调用百度地图显示位置
本文在LabVIEW 2010 开发环境下设计完成了远程心电监护系统中监护中心平台的软件设计。经过测试,较好地实现了预期的设计需求。同时,将LabVIEW 应用于大型软件开发,缩短了开发周期,并提升了软件设计效率。
[1] 李萍,王瑞,鉏振伟,等.远程心电监护系统研究的发展与展望[J].当代医学,2011(22):18-20.
[2] 王伟,李章勇.动态心电监护仪中心电信号采集与无线收发系统的设计[J].生物医学工程研究,2005(2):95-97.
[3] 吴宝明,李刚,朱凌云,等.移动远程心电监护系统监护中心的设计[J].北京生物医学工程,2005(6):23-26,37.
[4] 万里,张跃,张龙飞.远程无线心电监护仪的心电数据处理机制[J].计算机工程,2010(15):291-293.
[5] 路亚峰,陈义军,温新岐,等.虚拟仪器技术研究现状与展望[J].国外电子测量技术,2010(11):35-37.
[6] 张石,王军辉,袁韶谦,等.远程心电监护系统中监护中心软件的实现[J].中国医疗器械杂志,2006(6):428-430.
[7] 王惠强,胡景春,卢小文,等.基于LabView 的以太网数据的传输[J].微计算机信息,2008(33):145-146,142.
[8] 丁硕.基于LabVIEW 的远程数据通信技术的实现[J].电子科技,2008(5):42-44,48.
[9] 杜传明.百度地图API 在小型地理信息系统中的应用[J].测绘与空间地理信息,2011(2):152-153,156.
[10]王红崧,周海晏.基于百度地图API 的旅游地理信息系统开发[J].现代计算机:专业版,2012(23):60-63.