基于C#的心脏起搏器自动检测系统
2017-08-08翟建波雷莎莎刘磊刘琰张红芹乐普医学电子仪器股份有限公司西安市710075
【作 者】翟建波,雷莎莎,刘磊,刘琰,张红芹乐普医学电子仪器股份有限公司, 西安市, 710075
基于C#的心脏起搏器自动检测系统
【作 者】翟建波,雷莎莎,刘磊,刘琰,张红芹乐普医学电子仪器股份有限公司, 西安市, 710075
心脏起搏器的工作参数较多,生产检验工作复杂,单纯依靠人工手动检测,检测效率低,成为起搏器批量生产的瓶颈。因此,如何提高心脏起搏器的检测效率,成为该文的研究重点。该文中系统的上位机软件利用C#语言编程,通过连机设置设备及连机检测设备对待检心脏起搏器进行程控,查询,参数测量,并将测量数据纳入数据库(SQL 2000)管理。测试结果表明,系统各项功能运行良好,界面友好,具有较强的容错机制,提高了生产检验的效率。
起搏器自动检测;C#;串口通信; SQL Sever
0 引言
心脏起搏器是一种永久植入人体的有源医疗器械,属于三类器械,起到了生命支撑的作用,因此起搏器生产中检测是一项非常重要的工作,但是传统的人工检测方法费时费力,效率较低。人均日监测不到1台起搏器,成为起搏器批量生产的瓶颈。为了满足量化生产的需求,提高制造的智能化程度,本文介绍一种心脏起搏器自动检测系统,能够充分地解放人力,提高效率。本系统的上位机软件与底层设备之间的通信方式为串行通信,串行通信是一种传统的计算机之间,以及计算机与数字化仪器和设备之间的通信方式,尤其在工业控制领域广泛应用[1]。
由于使用Windows API编程比较繁琐,本系统上位机软件使用C#编程语言在Visual Studio 2010环境下完成,Visual Studio 2010 .NET集成了大量实用的类库[2],本软件主要使用Serial Port和Thread类库进行串口通信和线程的编程。
1 系统整体方案和组成
系统整体是由安装了上位机软件的主控计算机,连机检测设备,连机设置设备以及工装夹具、柜、台组成。主控计算机与连机检测设备、连机设置设备通过485串行总线通信。起搏器设置查询命令、检测环境设置命令以及检测命令经由485总线发给连机检测设备。其中,检测环境设置命令以及检测命令由连机检测设备执行,起搏器设置查询命令经过连机检测设备传送给连机设置设备执行。上行命令传输路径与下行命令相同,方向相反。连机设置设备与待检测起搏器通过NFC的方式通信,对待检测起搏器进行设置、查询。通信路径如图1所示。一台主控计算机被设计为连接50套检测终端,一套终端由一台连机检测设备、一台连机设置设备和一套待检测起搏器的工装夹具组成。
图1 通信路径示意框图Fig.1 The communication diagram of system
2 上位机软件设计
本设计中上位机软件开发环境为Windows XP操作系统,开发工具使用Visual Studio 2010,开发语言为C#。主要使用了Serial Port和Thread类库进行串口通信和线程的编程。数据库模块采用广泛使用的SQL Server 2000来管理数据。Serial Port类为应用程序提供了通过串口收发数据的简便方法,具有功能强大,通信快速,实时性好等特点[3]。Thread类提供创建线程、启动、终止以及挂起线程的接口,操作简单,编码简单。上位机软件设计总体如图2所示。
图2 自动检测系统上位机软件设计总体框图Fig.2 The overall diagram for user-control software of cardiac pacemaker automatic detection system
2.1 功能模块
上位机软件主要包括以下几个模块:
(1) 系统配置
所有系统配置信息均保存在系统配置文档中,配置完成并保存后,环境不改变的情况下无需再次配置。
串口参数设置,用来更改或保存串口号,默认的通信端口号为COM1。
最大终端数设置,用于在扫描终端时,停止扫描的最大数量,终端的地址范围为与最大终端数对应。最大终端数限定为50。
(2) 检测流程控制
起搏器自动检测部分,是起搏器自动检测系统上位机软件设计的主要部分。软件自动检测,如何做到省时高效的检测流程是设计的重点。
(3) 数据管理
每次开始测量后,系统自动将每个待检测起搏器的测量记录保存。每一个参数测量点检测完成后,系统自动将检测结果保存。
检测结束后,根据报表模板,从数据库中提取数据自动生成检测报告。
提供友好的数据查询人机界面,实现数据查询功能。
2.2 主要检测流程设计
2.2.1 扫描终端
终端就是连机检测设备、连机设置设备及工装夹具组合的一套可执行程控的设置检测的设备。扫描终端就根据通信协议,按照地址搜索确认一个或多个终端在线并安装了待检起搏器。上位机软件会将搜索到的起搏器信息,包括起搏器终端序号、起搏器型号及序列号,记录下来与终端编号绑定,并显示到上位机软件的主界面上。
2.2.2 加载命令队列
一项检测的操作顺序有四种情况,分别为:设置—测量—读取,设置…设置—测量—读取,设置…设置—读取,设置—测量(参数1)—读取(参数2)。软件设计一次检测采用命令队列控制的形式,每一条命令包括:要执行的动作、要执行的参数、设置值、测量项等,整个命令队列由所有既定的检测项的全部命令组成 。
操作人员根据检测需要,输入需要检测的项目和各项目的检测点、选择检测类型、待检测的终端后,软件自动生成加载命令队列到执行序列。
开始测量后,检测线程根据命令队列的执行序列依次进行检测。
2.2.3 检测线程
检测线程开始前,所有扫描到的终端的状态都为在线状态,在检测过程中,当终端有连续三次通信失败后,程序会将当前终端的状态置为离线状态,当命令队列中的命令再次指向此终端,将被忽略并统计为检测失败命令。在设备安装之后,设备的通信状况应该是保持较好的状态。终端出现连续多次通信失败现象时,将此终端判定为损坏或失效,设置为离线状态,后续检测将不再操作此终端,以避免反复在通信太差的终端上耗费时间。
本文采用命令队列的形式进行检测,因此,命令之间的关系以及命令的执行状态就是一个设计的重点。每条命令执行前,应判断当前命令与上一条命令的关系,如果当前命令与上条命令无关,直接执行当前命令。如果有关,判断上一条命令是成功还是失败,如果成功,执行当前命令,如果失败,不执行当前命令。每条命令执行完成后,必须设置执行状态为成功或失败。命令的执行状态是下一条命令或者下一个动作是否执行的依据。如图3为检测系统的检测主线程。
检测过程中,所有终端的加载的检测命令是同一个命令队列。考虑到在检测过程中参数的测量是需要一定时间,每个终端都执行设置测量操作后,等待测量完成读取结果后,再进行下一项检测,会造成时间和总线资源的浪费。因为在当前终端测量期间,上位机软件在等待读取当前终端的测量结果,除了当前正在测量的终端,其他终端和总线都是在空闲状态。因此本文中检测的线程主要处理方式是终端的设置,测量以及结果读取命令被作为单独命令在命令队列中排序,设置和测量命令顺序发放完毕,再轮巡读取每个终端的测量结果。这样处理,节省了时间和资源,提高了检测效率。
图3 检测主线程Fig.3 The main thread for detecting
3 主要界面和运行效果
本系统操作简单,具有良好的人机交互界面。
程序启动时,需要操作人员的登录,根据不同操作权限,可进行系统配置、标定计量、数据管理、检测等不同权限级别的操作。
进入检测系统主界面,具有管理员权限的用户,可在系统配置界面做通讯端口设置、终端数量设置、系统运行环境的设置。
所有用户可在主界面中,进行加载终端、配置检测任务、开始/停止检测的操作。在下面的提示信息区,滚动显示检测过程中系统状态的实时提示信息。用户也可以选择停止检测或者暂停检测等操作。
检测数据的查询管理,用户可根据搜索条件查询到每个起搏器的测量记录,点选中一条记录,该条记录的参数项测试结果会自动显示此条起搏器测试的所有参数测量点。用户可以根据需要设置不同的查询条件进行组合查询,以了解确定起搏器、工作台或检测批次的检测数据。
本文中设计软件最大的优势,就是采用命令队列的形式,这样如果测量的参数需要变动,设计人员只需要修改命令队列,很大程度上简化了设计难度,可维护性大大提高。
本软件经过数十次,数百台起搏器的检测,检测起搏器功能正常,能够实现高效率的检测,达到了设计预期的效果。表1 为起搏器电路例行检测结果。从表1中可以看出,本系统的检测效果较好,达到了预期的效果。
表1 起搏器电路例行检测结果Tab.1 The testing results for pacemaker circuit
4 结束语
经过长期测试,本文所设计的起搏器自动检测系统上位机软件运行良好,性能稳定,操作简便,较好地解决了人工手动检测时效率低的问题。表2是人工检测与系统检测关于部分参数测量的时间对比。
系统投用后,提高了生产制造的智能化,顺应了工业4.0的发展趋势;投用后提高了起搏器的生产效率,为起搏器的国产化、平民化以及医疗事业的发展添砖加瓦。
表2 人工检测与系统检测时间对比Tab.2 The time contrast of testing between manually and automatic detection system
[1] 刘明, 陈治, 张洪彦. C#多线程串行通信方法和应用[J]. 昆明冶金高等专科学校学报, 2008, 24(1): 11-15.
[2] 成洁. 基于C#的极低功耗无线网络温度监测系统的上位机软件设计[J]. 计算机时代, 2010(9), 22-24.
[3] 马斌, 张娜, 郭强, 等. C#串行类在PC机与IC卡读写器串行通信中的作用[J]. 沈阳建筑大学学报(自然科学版), 2008, 24(3): 508-511.
[4] 明日科技. C#从入门到精通[M]. 北京: 清华大学出版社, 2008.
[5] 胡德尔顿. C#数据库入门经典[M] . 杨浩, 译. 北京: 清华大学出版社, 2006.
Automatic Detection System for Cardiac Pacemakers Based on C#
【 Writers 】ZHAI Jianbo, LEI Shasha, LIU Lei, LIU Yan, ZHANG Hongqin
LE PU Medical Electronics Technology Co. Ltd, Xi’an, 710075
pacemaker automatically detect, C#, serial port communication, SQL sever
TP311.5
A
10.3969/j.issn.1671-7104.2017.04.008
1671-7104(2017)04-0264-03
2016-12-20
雷莎莎,E-mail: 461677450@qq.com
【 Abstract 】There are a little more working parameters and complex factory inspection of cardiac pacemaker, for this reason, the efficiency of manual testing is very low, which becomes the bottleneck of pacemaker batch production. Therefore, how to improve the detection efficiency of cardiac pacemaker becomes key point of this paper. C# programming language is used in the user-control software of this system, the user-control software of this system control the cardiac pacemaker through the setting device and the testing device to set, query and test, and to store the measurement results into the database(SQL 2000). The test results show that the system functions is well, the user interface is friendly, and the fault tolerance mechanism is strong, the efficiency of the factory inspection also has been improved.