远程输液监测系统设计与实现

2021-10-11 15:28吴绍聪高常青余超曲爱涛杨波
中国医疗器械杂志 2021年5期
关键词:上位串口输液

【作 者】吴绍聪,高常青,余超,曲爱涛,杨波

济南大学,济南市,250022

0 引言

静脉输液作为医院治疗中最为常用的方式之一[1],保证输液安全是一项重要的工作。在传统静脉输液过程中,往往需要家属或者医护人员定时巡查病人输液情况,这不仅增加了医护人员的工作负担,同时存在工作效率低、耗时长、输液异常以及结束没有及时发现等问题[2-4]。随着我国医疗消费人群的增长,发展智能化医疗技术,提高医疗过程中的效率显得尤为重要。近年来,相关的医疗设备得到了发展改进,但是集可视化实时显示输液状态与报警的输液监测系统仍相对较少。

针对当前医疗输液的现状,设计了一种基于Visual Basic.NET(VB.NET)开发图形化界面的远程输液监测系统。系统以Arduino Nano微控制器作为核心,采用红外光电传感器检测药液流动,具有良好美观的界面,能够实现对多个输液监测终端的输液过程进行实时监测。当输液结束或出现异常情况时,护士站端的上位机软件平台将进行警报提示。监测医护人员不再需要定时观察病患的输液状态,节省了人力消耗,改善了医院的智能化水平和管理效率。

1 总体结构设计

整个系统主要由3个部分组成,分别为病房输液监测模块、Zigbee无线传输模块以及VB.NET输液监测软件。

结构框架如图1所示,首先输液监测模块中通过红外传感器检测出输液过程中药滴,利用Arduino微控制器进行处理获取计数、速度等信息,然后使用Zigbee无线传输模块实现输液自组网无线通信,将信息发送到PC主机,最终在VB.NET上位机软件中结合SQL Server数据库以图形化方式显示并进行报警,实现远程监测病人输液状态。

图1 系统总体构架Fig.1 Overall system architecture diagram

2 系统硬件设计

2.1 Arduino Nano主板

Arduino是一款来自意大利团队开发制作的开源电子原型平台,包括一系列的硬件部分以及软件程序代码部分(Arduino集成的开发环境)[5]。相比传统的单片机,其提供丰富的外围接口,可以直接通过USB接口上传程序。在软件层Arduino会进行封装部分底层参数,提供了U8G2、Wire、EEPROM等常用库[6],有利于提高项目的开发效率,因此得到广泛的应用。

本研究中选用的是主板为Arduino Nano控制板,相比较同类型开发板尺寸更加小巧。其最大的特点是USB接口为Mini-B型插座而且没有直流电流插口。Arduino Nano采用ATmega328P为处理器核心,具有较大的FLASH和RAM存储容量,工作电压为5 V,而输入电压为7~12 V电压。同时开发板包含8个模拟输入端口,6个PWM端口,14个数字输入/输出端口[7-8],可以方便传感器数据接收与信息处理。

2.2 输液监测终端

在实际输液过程中,病房中的输液监测终端由多个输液监测模块和Zigbee无线组网通信模块一起共同工作。其结构如图2所示。

图2 输液终端结构Fig.2 Structure diagram of infusion terminal

输液监测模块主要由Arduino Nano主控板、软串口连接的红外传感器、蜂鸣器以及OLED显示屏组成。其中,系统采用的红外传感器为红外发射以及光敏二极管模块,准确地对茂菲管中的药液进行检测;Arduino Nano主控板对检测的药液间隔时间和滴数进行处理,获取药液的速度以及剩余容量,并通过IIC接口协议将信息显示在OLED显示屏上。当出现输液异常或者低于余量时,OLED显示屏以及蜂鸣器进行报警提示。

无线组网通信模块采用TI 公司开发的CC2530芯片进行传输,本设计中病房之间的ZigBee无线模块采用网状拓朴结构,主要有终端节点,路由器以及协调器。Zigbee模块中的CC2530芯片通过串口与输液检测模块连接组成终端节点,实现对输液信号的采集,路由器主要负责信息的中转,通过多跳延长传输距离,PC机与Zigbee模块通过USB连接组成协调器,负责对病房的多个终端节点传输的数据进行汇总,并显示在上位机中。系统的输液检测终端效果如图3所示。

图3 输液检测终端Fig.3 Infusion detection terminal

3 输液监测软件设计

输液系统的监测终端部分采用C语言进行开发,而输液监测上位机软件在Visual Studio平台上采用Visual Basic.NET语言进行开发,VB.NET是微软推出的基于.NET Framework之上的面向对象的编程语言,与之前的VB语言相比,提高了在面向对象方面的支持,成为了完全面向对象的灵活高效、稳定的编程语言[9-10]。

3.1 下位机主流程设计

输液监测终端的功能主要是实现输液数据采集以及报警提示。首先,系统在初始化以后,开始在单位时间内判断药液是否滴落并实现输液过程中数据的采集;微控制器对采集的数据进行处理,如果滴速超过设定范围,则通过显示器和蜂鸣器进行报警提示;如果输液余量低于预警值,则传送至上位机软件提醒工作人员进行处理。下位机主流程,如图4所示。

图4 下位机主流程Fig.4 Main flow chart of lower machine

3.2 组网与传输协议

输液监测系统的Zigbee组网通信流程,如图5所示。传输节点在建网开始时,先判断设备类型。终端节点或路由器在初始化后,向协调器申请加入网络并配置ID;协调器在初始化后配置信道和建立网络,并接收传输节点申请,组建网络通信,利用串口与上位机进行数据传输。

图5 Zigbee组网流程Fig.5 ZigBee networking flow chart

3.3 VB.NET监测软件开发

3.3.1 VB.NET监测软件功能设计

输液监测系统软件主要包括用户管理模块、输液监控模块、病人档案模块和系统配置模块四大模块,软件功能结构,如图6所示。

图6 上位机软件功能结构Fig.6 Upper computer software function structure diagram

用户管理模块主要为进行用户登陆、用户密码修改等操作。输液监控模块是上位机软件的主要部分,主要分为数据显示以及预警提示两个部分。病人信息模块主要实现连接数据库获取新增病患以及管理病患档案的功能。系统配置模块主要实现串口端口、波特率等参数配置以及串口开关的功能。

3.3.2 软件流程设计及方法实现

为了实现输液监测的功能,本系统中在监测软件端工作流程设计分为串口配置、数据读取与处理以及数据库连接与信息显示三个步骤。

(1)串口信息配置

微软从.NET Framework 2.0开始在Visual Studio中提供了用于控制串行端口的类System.IO.Ports.SerialPort。SerialPort类的使用开发,具有通信快、实时性强、功能强大的特点,为开发者提供了多种串口操作的简单方法[11-12]。

在软件串口通信中,首先需要在工程中添加system.IO.ports名称空间,为了与协调器端口一致,利用SerialPort.GetPortNames从软件端获取连接端口值。在对串口初始化后,通过open函数可以实现串口通信的连接,进一步针对串口对象可以配置串口端口、波特率、校验位、数据位等参数实现与协调器的连接。

(2)数据的读取与处理

①数据读取

针对实际检测中,如果终端数量很多,软件串口端需要同时接收多个数据。因此,软件通过调用DataReceived事件来读取窗口缓冲区的数据,当串口接收到数据,系统会自动触发DataReceived事件处理程序函数。

在串口接收数据时,为了解决串口接收事件属于单独线程,控件无法在main主线程中调用数据的问题,采用invoke委托方式访问main主线程中的数据。

Me.Invoke(New EventHandler(AddressOf Sp_Receiving))

②数据处理

在本软件端接收来自协调器的数据以字节型数组形式读取,因此需要将其转换为字符型。同时由于String类无法允许内容变动,所以需要使用StringBuilder字符串构造类型对字节数据进行转换处理。

(3)数据库连接与信息显示

系统接收数据后需要与数据库建立连接进行信息存储,本设计中上位机软件采用ADO.NET(Active Data Objects)方式连接SQL Server数据库。实现与SQL Server数据库的连接,需要经过三步:即首先获取连接字符串,通过SqlConnection类处理数据库连接;其次为创建连接命令,利用SqlCommmand向数据库发送操作命令;最后为数据集的处理操作,使用数据集DataSet进行内存中数据的分布,通过数据适配对象SqlDataAdapter的Fill方法对数据集DataSet中的数据进行修改来更新数据源中的数据。

医护人员可以通过LINQ方式对本地数据库进行数据查询以及存储[13-14],同时在界面的DataGirdView控件中显示。

软件监测系统需要同时显示多个病房的信息,其中包括每个病人的基本信息、输液速度以及输液进度等信息。为了解决在显示界面中将来自各个监测终端的输液信息有效地显示在相应控件,在VB.NET中提供了基于键值的快速查找元素的泛类,本软件中利用dictionary类对同类型控件和信息进行对应分类,通过调用相应的dictionary就可以将对应病人床号的输液信息显示出来。

4 系统测试与主要界面

4.1 实验设计

为了有效验证系统的准确性,选取了单个终端设备,配合路由器和协调器进行工作。输液监测系统实验测试有两部分,分别为滴速检测准确性测试和传输距离测试。

4.2 实验结果与讨论

输液滴速检测准确性测试在实验过程中,选用250 mL容量的0.9%氯化钠,手动调控多组不同的输液速度,以人眼观察计算的实际滴速为实验参照,与监测系统OLED显示屏上显示的输液速度进行对比。为了减少偶然误差,每个滴速进行了5次测量,间隔 1 min,见表1。

表1 滴速检测准确性测试Tab.1 Measurement of drop rate detection

结果表明,两者的最大误差相差±1滴/min,能够有效准确地反应输液状态。而且每次剩余药液余量低过设定值5%时,系统能够进行报警,达到系统的基本要求,整体性能可靠稳定。

在无线传输距离测试方面,采用CC2530通信模块,其单个模块之间理论传输距离可达70 m。经过测试,在空旷空间下75 m范围内信号良好,在75 m到240 m之间信号较差,超过240 m以后将无法进行信号传输。在医院环境中测试,单个模块之间的通信距离可以相隔5个病房。在走廊处加上路由器进行多跳后,可以在同楼层9个病房之间进行数据通信,满足医院中病房之间数据传输的需求。

4.3 主要界面

本设计软件主界面包括实时监测、系统配置、病人档案处理以及新增病患等功能按键,如图7所示。监护病人信息界面提供了病人档案存储以及管理的功能,工作人员可以在本界面中访问数据库,查询数据库中监护病人的信息,进一步对病人信息进行修改和保存,监护病人信息界面,如图8所示。

图7 上位机主界面Fig.7 Host computer main interface

图8 监护病人信息界面Fig.8 Monitoring patient information interface

上位机软件在工作过程中连接数据库,获取病人基本信息,采用图形界面直观地反应病人的输液状态,其中包括病号、输液速度、进度等信息。同时,当病人的输液余量低于总容量的5%时,病人对应的状态界面也会转变为红色用于实时报警,提示医护人员,上位机输液监测软件应用界面,如图9所示。

图9 上位机输液监测软件Fig.9 Host computer infusion monitoring software diagram

5 结语

设计了一套远程静脉输液监测系统,通过Arduino控制板和红外光电传感器构成监测装置检测相关信息,同时通过Zigbee无线传感技术进行数据传输,并上传至VB.NET设计的上位机监测软件。整个系统稳定可靠,能够实现远程实时监测输液的状态,具有良好的人机交互界面以及图形化报警提示功能,从而减轻医护人员的工作负担,提高医疗工作效率。

猜你喜欢
上位串口输液
浅谈AB PLC串口跟RFID传感器的通讯应用
自灸也能预防输液发热反应
特斯拉 风云之老阿姨上位
六合丹防治输液性静脉炎的Meta分析
在为老年患者静脉输液时应用留置针改良固定法进行输液的效果
“三扶”齐上位 决战必打赢
基于ZigBee和VC上位机的教室智能监测管理系统
数字电源内部数据传输的串口通信方法实现
USB接口的多串口数据并行接收方法探索
基于蓝牙串口适配器的GPS接收机与AutoCAD的实时无线通信