李林超 徐文龙 徐冰俏
(中国计量大学信息工程学院 浙江 杭州 310018)
在临床医学诊断中,多参数生命监护仪能够为医生提供病患的生理参数[1],其测量准确性格外重要。依据国家计量检定规程JJG760-2003《心电监护仪》(以下简称“规程”),多参数生命监护仪检定主要通过两个步骤完成:(1) 按照规程要求的检定参数和步骤,检定人员首先连接标准信号源输出端和多参数监护仪输入端,然后触发标准信号源产生待检定标准信号,同时依据待检定标准信号类型调整多参数生命监护仪的测量模块,经测量、读取等方法得到心电监护仪上检定参数的信息,记录下来,填入原始数据记录表;(2) 检定工作人员对采集得到的数据依据规程中数据处理要求进行数据处理、分析,得出检定结论,将检定需求的数据和结论填入原始记录表中和检定证书内。由于检定参数有30多个[1-2],完成检定需15 min,检定周期不得超过一年,且一个三甲医院的多参数监护仪数量可达上千台,因此周期性检定的工作量非常大。同时,由于数据记录和分析结果填入都是靠人工完成,由于主客观因素,检测数据的真实性和检定结果的权威性容易受到质疑。
随着计算机软、硬件技术和仪器仪表通信接口协议的发展[3],以及虚拟仪器技术不断的提高,本文设计了一套以LabVIEW虚拟仪器为开发平台的多参数监护仪心电功能模块自动检定系统,完成计算机对多参数监护仪和标准源的控制,从而实现自动检定。
根据医疗机构在用的生命监护仪实际情况,本文检定对象选用深圳迈瑞生物有限公司iMEC8系列型号多参数监护仪,它通过RJ45接口与外界通信。标准信号源采用Fluke公司型号为Promsim8生命体征模拟器,它能够产生多参数监护仪测量的各项检定参数,通过5导联连接线发送待检定标准信号给多参数监护仪,并具有与计算机连接的迷你系列B型USB接口。计算机是整个检定系统的核心,可模拟检定工作人员对多参数监护仪测量参数模块的调整和对标准信号源的触发,采集数据,分析数据,得出结论,自动生成原始记录表和检定证书等。硬件框架如图1所示。
图1 多参数监护仪检定/校准系统检定硬件框架图
多参数监护仪心电功能模块自动检定系统结合计算机硬件的发展,可以在检定系统的控制协调下同时运行多个检定程序[4-6]。在心电监护仪检定之前,自动检定系统通过系统中的驱动程序对多参数生命监护仪和信号标准源进行“握手”操作。在确定各个仪器可正常传输之后,检定系统通过数据线按照检定规程要求对信号标准源进行触发产生待检定标准信号;信号标准能源通过五导联连接线把待检定标准信号发送到多参数生命监护仪。多参数监护仪测量到待检定标准信号,将测量得到的信号通过网线传输回自动检定系统。自动检定系统采集到返回信号,提取信号有效信息,依据规程中算法对数据进行处理、分析,得出检定结论,重复上述操作,直到获取最后一个检定参数。依据检定数据和检定结论生成原始记录和检定证书[5-6]。
多参数监护仪心电功能模块自动检定系统采用LabVIEW2015开发。LabVIEW具有模块化、结构化的特性[7],提高编程效率。依据LabVIEW软件的特性,整个检定系统按功能可划分为4个独立模块:界面模块、检测模块、数据处理分析和数据储存模块、报表生成和打印模块。工作流程如图2所示。
图2 检定/校准系统工作流程图
自动检定系统采用编程模式是异步多循环[8]的“生产者/消费者”结构。这种模式基于队列和堆、栈的方式建立,具有缓冲循环传递消息的能力。它可以调节各个模块之间的运行速率,将指令的生成模块和指令的运行模块按不同的功能运行,提高了不同模块之间数据交互和共享能力。这种结构模式本质是非线性、带缓冲的多任务结构,可以防止用户的发送指令丢失,而且能够使程序的运行效率更高,是一种多指令发送、多任务处理,对实时和连续性要求严格的程序框架。
依据“生产/消费”结构(见图3),整个检定程序被分成2个循环,分别为事件生产循环和事件消费循环。事件生产循环含有事件结构来收集各种事件响应的请求。作为对事件的响应,当相对事件发生以后,就把与之对应的命令输入队列之中等待处理,是消息的“生产者”。事件消费循环:程序不断从队列中取出等待处理事件,用条件结构来处理。检定过程中,事件生产循环依据检定规程在界面模块、检测模块、数据处理分析和数据储存模块、报表生成和打印模块生产事件,将所产生的事件存入队列中,并向事件消费循环发送事件处理信息。事件消费循环读取队列中的事件,以条件结构形式进行处理,从而保证检定结果的准确性。
图3 主程序方框图
NI公司开发的LabVIEW分为UI界面和程序框图界面。在UI界面上,研发人员可以调用LabVIEW前面板中的控件按钮,模拟仪器设备的操作界面,也可以根据用户的需求制定用户要求的操作界面,使人机交互性更好[9-10]。
自动检定系统界面分为:登录界面和检定界面。登录界面:自动检定系统利用LabVIEW function 中的LabSQL模块对数据库检定工作人员信息进行提取,验证该人员身份,以确保检定操作过程的准确性以及原始记录表和检定证书的权威性。检定界面:检定工作人员可以根据自己的需求在检定界面中的选择“检定类型”,并观察到自动检定系统运行到具体环节,测得参数值、相对误差以及该误差值是否合格,得到心电监护仪检定报表中的各项检定信息如检定日期、原始记录号、检定证书号、仪器型号、仪器编号等。另外,当心电监护仪自动检定系统完成了所有参数的检定,系统会自动给检定工作人员提示检定结束,如图4所示。
图4 心电监护仪检定系统界面
检测模块主要是对信号标准源和多参数监护仪的控制。对信号标准源的操作主要有:对多功能标准源USB接口的配置,依据程序设定的检定步骤发送操作信号给信号标准源,产生待检定标准信号给多参数监护仪。对多参数生命监护仪的操作主要有:对监护仪的网络接口的配置,实现检定系统与心电监护仪的互相连接进行通信,调整监护仪测量范围,采集监护仪经测量所得到的待检定标准信号的数据。
自动检定系统利用驱动程序的数据接口协议和总线技术,调用LabVIEW function函数编程,使设备仪器之间能够进行信号传输和数据采集。检定系统主要运用两种驱动程序,分别为:
(1) 对信号标准源进行驱动程序编程,采用虚拟仪器软件规范VISA(Virtual instruments software architecture)接口进行编程[11,13]。在LabVIEW软件中,调用VISA函数,首先采用VISA OPEN函数对信号标准源进行连接,然后利用VISA WRITE函数和VISA READ函数,实现检定系统对信号标准源进行信号写入和数据读取。
如图5所示,检定系统能够触发信号标准源产生标准信号,首先调用VISA OPEN函数,打开VISA资源名称指定设备的会话句柄并返回会话句柄标识符,该标识符可用于调用该设备的其他操作。接着调用VISA CLEAN函数对缓冲区的数据进行删除、清零,防止上一次的程序运行后残留在缓存区的数据对这次运行所造成的影响。图5中的VISA Waiter Event函数和VISA Enable Event函数主要功能是为了防止数据量过大溢出。信号标准源对检定系统反馈已经成功运行信号。检定系统通过调用VISA WRITE函数,采集信号标准源是否成功响应,如果检定系统接收到“ERR”信号,检定系统将重新发送该次操作指令,若超过10次,则系统发出报警。若接收到“OK”响应,表示信号标准源已经成功运行,对多参数监护仪发出待检定标准信号。
图5 标准源响应模块
(2) 采用TCP/IP协议对多参数监护仪RJ45接口进行编程,从而使计算机与多参数监护仪进行信号传输。在LabVIEW程序框图函数工具栏中调用TCP STM函数库[12],对计算机和多参数监护仪进行编程。在仪器设备中建立服务器和客户端,从而实现计算机对多参数操作信号发送,使心电监护仪能够自动完成检定任务。
在调用LabVIEW中TCP listern函数时,要将计算机和多参数监护仪通过路由器连接,在“网路地址”填写多参数监护仪的IP地址。写入多参数监护仪网络的端口号,检定系统创建侦听器并等待位于指定端口号的已接收TCP连接,如图6所示。检定系统利用LabVIEW function中的TCP Write函数在数据端口输入操作指令,通过TCP Write读取多参数监护仪反馈信号,由正则表达式对反馈信号进行解码提取。
图6 创建侦听
由于检定系统无法确定多参数监护仪和信号标准源之间的信号发送和接收,所以系统采用延时方法对设备进行信号采集,以保证读取操作的稳定,且不丢失数据包。
如图7所示,在数据缓冲程序框图中增加了两个Tick Count函数主要是对系统运行进行计时,防止数据包溢出和计算机端口被占用,使检定系统处于瘫痪状态。
图7 数据缓冲程序框图
该模块主要功能是自动检采集心电监护仪传输回来的监测信号,对检测信号通过正则表达式的方法进行解码,提取有效数。利用LabVIEW中的MathScript[13]对规程中给定公式进行编程,对已经排除可疑值的有效数据进行数据处理和数据分析,进行误差判断。检定系统通过NI的数据库连接包和ADO来创建数据,使用“DBTools Open Connection.vi”建立连接,创建数据库,并将分析的结果存储到数据库中。
通过拉依达准则对解码后的数据进行提取。其原理是用心电监护仪对信号标准源发出的每一个规程中检定的参数进行多次的测量,得到每一个参数的n个独立值,再由x1,x2,…,xn算出平均值x及剩余误差vi=xi-x(i=1,2,…,n),并按照贝赛尔公式算出标准误差σ,然后得到心电监护仪检测值xk的剩余误差vk(1≤k≤n)。若vk满足 |vk|=|xk-x|>3σ,则认为xk是含有粗大误差的可疑值,需要剔除。
图8是依据拉依达准则程序方框图。
图8 拉依达准则方框图
当获取所有检定参数,检定系统在Microsoft Word中严格按照规程中的原始记录表和检定证书的文本格式建立Word模板。调用LabVIEW function中的报表函数[14-16],读取存储在数据库中的参数,将参数自动填充到Word模板中,存储到指定文件夹中,待检定工作人员审阅后。审阅通过后,进行打印。
用本文的自动检定系统和人工检定分别对10台多参数监护仪各进行10次检定,记录检定时长,电压测量误差,噪声电平等数据。实验对比结果(见表1)表明,自动检定系统能够完成多参数监护仪心电功能模块的检定任务,并且该系统对信号标准源操作实现自动化,在检定过程中直接对数据进行处理分析,减少后期数据处理时间。测试表明平均每台监护仪的心电参数检定时长减少5 min。在检定过程中人工连接电极后实现自动化,排除人为主客观干扰,检定系统对数据进行多次读取,数据来源更加可靠。
表1 自动检定与人工检定结果的对照
多参数监护仪心电功能模块自动检定系统是以LabVIEW虚拟仪器软件为开发平台,大大简化人工检定操作的繁琐过程。自动检定功能的开发实现数据的自动采集。检定证书的自动生成,不仅提高了检定效率,还避免了人为干扰,提高了检定的真实性、可靠性。通过对心电功能自动检定的开发,为多参数生命监护仪其他功能的自动检定提供了案例,也为整机的自动检定积累了开发经验。
由于自动检定系统的功能是完成多参数监护仪心电功能模块检定,对血压和血氧的检定还未实现。因此,接下来的工作是实现多参数监护仪的血氧和血压自动检定功能。