APP下载

基于二维码的护士站输液系统研究

2017-11-21

传感器世界 2017年1期
关键词:输液泵上位二维码

北京信息科技大学,北京 100192

一、引言

静脉输液以其疗效好、起效快等特点被广泛应用于临床,尤其对于纠正水电解失调、营养补充、休克抢救等效果更为明显。但是,静脉输液也会引起各种不良反应,比如静脉炎、肺水肿、空气栓塞等,往往造成严重的后果[1]。

临床上根据患者的情况和药物的不同,输液速度也不一样,合适的输液速度是使患者得到有效治疗的重要保证。输液速度过快,患者轻则可能中毒,重则可能水肿或心力衰竭;而输液速度过慢,虽然不会像过快那样造成生命威胁,但会使药量不够从而延长输液时间,增加治疗时间和治疗费用[2]。

在传统的输液中,输液速率主要由有经验的护士进行确定,他们会根据患者的年龄、病情、药物的种类等多方面的情况设定不同的输液速率,一旦速率出现过快或过慢,护士只能依靠手动夹子控制输液流速,工作量很大,这样就增加了很多安全隐患,容易造成医患事故。医院每天接待大量的输液患者,如何提高输液室的工作效率以及保障病人能够得到安全有效的护理成了现代医院工作的重中之重。

本文对现代医院的输液流程进行了改进,利用Visual Studio2013软件和SqlServer2008数据库,开发出一款能够实现在电脑终端一键核对输液信息、设置输液速度的护士站系统软件。护士通过用扫描器扫描患者手腕和输液瓶签上的二维码,将相应的信息传输到上位机端,在数据库中进行比对,从而实现信息核对的目的。系统软件能够根据病人的一次输液量和预计输液时间,通过输液速度算法计算出相应合理的输液速度。经过验证,该软件能够有效的减轻护士的工作量,提高护士的工作效率。

二、对传统输液流程改进

在现代中小型医院的门诊输液过程中,根据护士的“三查七对”,可将输液过程分为3个阶段[3-4]。首先,护士根据病人的刷卡信息或病历本核对病人的输液药品,并手工的制作一份或多份输液瓶签;其次,当病人需要换瓶时,护士根据瓶签进行信息核对,以防止换错药液而发生危险;最后,输液完成,护士再次进行信息核对,确认病人信息,查看输液完成进度,防止漏输药液的情况。在输液过程中,虽然护士反复的进行“三查七对”,但还是不可避免的出现各种的危机病人健康安全乃至生命安全的情况,比如因病人同名同音同字或者药物通用名称的更换,甚至于因护士不能有效的执行繁杂的“三查七对”等,都给医院的护理工作带来极大的安全隐患。

结合输液泵的WIFI技术和二维码技术,改进后的输液流程如图2所示,当病人刷卡之后,在护士站的软件上会显示病人的基本信息和药物信息,护士只需在软件上为其分配相应的座位号并设置好输液速度,连接护士站软件的打印机就会打印出病人相应的瓶签和腕带,瓶签和腕带上包括含有病人信息的二维码,当护士为病人输液是只需扫描病人腕带上的二维码,二维码的信息就会上传到数据库中,并在数据库中寻找相应的病人,如果信息一致,扫描器会闪烁绿灯,并发出“信息一致”的提示,否则,扫描器会闪烁红灯,发出“信息不一致,请重新扫描”的提示。

三、二维码的编码原理分析

QR Code全称 Quick Response Code,即快速反应的码,是近几年来在移动设备上十分流行的一种编码方式,它不仅能表示更多的数据类型,比如:字符,数字,日文,中文等等,还比传统的条形码(Bar Code)能存储更多的信息。日常生活中所见到的二维码基本都是QR Code,以下以QR Code为例介绍二维码的编码原理[5-6]。

QR码的基本结构如图3所示,各部分的功能和含义如下:

位置探测图形、位置探测图形分隔符、定位图形:起到定位的作用,统称为定位图形,这些“定位图形”在二维码图案上的相对位置是恒定不变的。

校正图形:仅在版本2以上的二维码中存在,由三个黑白相间的小正方形嵌套组成,便于确定中心,纠正扭曲,其相对位置和数量主要由二维码的规格大小确定。

格式信息:主要作用是纠错,又称为纠错级别,对于QR码而言,共有L、M、Q、H四个纠错级别。

版本信息:又称为二维码的规格大小,对矩阵式编码的QR码而言,可细分为40中不同的规格,又称为40种不同的版本。版本1是21×21矩阵,版本40是177×177矩阵,递增的版本相应的边长增加4个矩阵,即(V-1)× 4 + 21(V表示版本号)。

数据和纠错码字:数据表示二维码中保存的真实的经过一系列规则转换的信息,而纠错码字的作用是纠正因二维码图案损坏或被覆盖而导致的信息不能正常读取,这也是二维码具有最大的性能优势的原因所在。

四、算法分析和设计

精准控制输液速度是智能输液泵的本质所在,而输液泵能够精确控制流速的核心是其中的步进电机。输液泵之所以能够精确的控制流速,主要是通过步进电机控制蠕动排,使其挤压输液导管,使其达到精确输液的目的。因此可以说实际上的输液速度ml/h在输液泵中的步进电机上指的是step/s。而输液泵中步进电机运行每一步而排出液体的量也有一定的换算规则[7-8]。

步进电机的实际精度可以通过精度方程求出,当步进电机存在无效步数是,精度方程为:

其中,FACT_STEPS_PER_ML——表示步进电机的实际精度,单位:step/ml;

INVALID_STEPS——表示步进电机在运行过程中无效步数,单位;step;

VALID_STEPS——表示电机的有效步数,单位:step;

STEPS_PER_ML——表示电机的有效精度,步进电机的固有属性,单位:step/ml。

由方程(1)可得到步进电机以固定流速走1h需要实际电机步数方程为:

其中,FACT_STEPS_PER_HOUR——表示步进电机以固定流速运行的步速,单位:step/h;

ML_PER_HOUR——表示输液速度,单位:ml/h。

由方程(2)可得到1s走的电机步数方程为:

由方程(1)~(3)可以计算出步进电机的步速FACT_STEPS_PER_S和输液速度ML_PER_HOUR的关系方程:

智能输液泵的输液速度模式可以分为两种,ml/h模式和gtt/min模式。在ml/h模式下,输液速度的准确性在±5%以内,而gtt/min模式下,输液速度的准确性在±3%以内。考虑到实际的可操作性,大部分输液泵的输液速度模式都被设置为ml/h。在已知一次输液总量和预计输液时间的情况下,输液速度方程为:

其中,Dose——表示一次输液液体总量,单位:ml;

ΔT——表示预计输液时间,单位:h。

由(4)~(5)方程可以求得在已知输液总量和预计输液时间的情况下的步进电机的步速,进而达到精确控制输液精度的要求[9]。

一般情况下,输液病人收到的医嘱并不是直观的输液速度,而是比如300ml生理盐水和26ml消炎药,预计输液时间2h,需要将医嘱通过正则表达式进行处理,得到只有数字的输液总量Dose和预计输液时间ΔT,然后由专门的护士核对输液信息,若信息正确,护士点击“确认”,自动计算输液速度并通过WiFi传输到病人相对应的输液泵上,由输液泵内部的电机步速算法求出电机步速FACT_STEPS_PER_S。 算法的内部处理逻辑如图4所示。

五、系统架构

护士站系统的架构从大的方面来说分为两部分,一部分是Database Server(数据库服务器),另一部分是Client(客户端)。

Database Server运行环境为SqlServer2008,它不仅可以对数据进行查询、搜索、同步、报告和分析之类的操作,而且可以将结构化、半结构化和非结构化文档的数据直接存储到数据库中,更重要的是它允许在使用 Microsoft. NET 和Visual Studio开发的自定义应用程序中使用数据。Database Server的主要作用有三点,一是存储管理病人信息、输液信息等数据,二是和HIS Database(医院总数据库)进行数据的交互,三是独立的Database可以很大程度上减轻整个软件的运行压力。

Client包括大致六个界面,分别是User Login(用户登录),Patient Information(病人信息),Infusion Setting(输液设置),Infusion progress(输液进度),Infusion Information(输液信息),User Management(用户管理)等,除了Patient Information界面既与HIS Database相连接,实现对待输液病人信息的接收,又与Database Server相连接,将待输液病人的基本信息存储到相应数据库的表中,实现后续的逻辑处理[10]。

六、多通道上位机socket设计

TCP/IP是一组用于实现网络互连的通信协议。Internet网络体系结构以TCP/IP为核心。基于TCP/IP的参考模型将协议分成四个层次,它们分别是:网络访问层、网际互联层、传输层(主机到主机)、和应用层。上位机应用程序处于模型最顶层的应用层,而在其下面的传输层中有两种协议为其提供连接通信传输数据服务,分别是TCP(Transmission Control Protocol,传输控制协议)和UDP(User Datagram Protocol,用户数据报协议)。

TCP(Transmission Control Protocol,传输控制协议)是基于连接的协议,也就是说,在正式收发数据前,必须和对方建立可靠的连接。一个TCP连接必须要经过三次“对话”才能建立起来,这样做的目的是使连接十分安全、可靠。UDP(User Data Protocol,用户数据报协议)是与TCP相对应的协议。它是面向非连接的协议,它不与对方建立连接,而是直接就把数据包发送过去!UDP适用于一次只传送少量数据、对可靠性要求不高的应用环境。本项目的上位机软件的开发环境是C#和SqlServer2008,下位机是智能输液泵,基于安全考虑,在上位机和下位机的网络通信方面,采用TCP协议连接最为合适。在TCP/IP的网络通信中,Socket(套接字)应用的最为广泛,也是针对网口通信最有效的一种选择[11]。

一对一通信时,只有一个Server和一个Client,因此只需要一个Socket通道,无论是上位机还是下位机,在发送和接收数据的时候都不会存在数据乱发乱收的情况。在本项目中,一个护士站软件对应多个智能输液泵,也即是一个上位机对应多个下位机,所以需要护士站软件作为上位机的Server,下位机的多个智能输液泵作为Client。此时,需要特别注意的是在发送数据是就需要Server记录Client和其相应的Socket通道,以便进行后续的逻辑处理[12]。

首先需要建立一个Server和Client通信的类,

通信类ConSocket的作用不仅起到为Server和Client通信的作用,还能够避免IP等变量的重复定义。

然后,声明一个键值对,用于存储每个客户端对应的IP、端口号port和Socket。

在Server向指定的某一个Client传输数据时,仅仅需要对比当前的IP和端口号port是否和键值对中的值是否一致,就可以找到对应的Socker进行数据传输。

需要注意的是,在程序中无论是Server等待Client的连接还是接收Client发送的数据,都处在一个while(true)的死循环中,这样一旦链接或接收数据,就会造成程序出现卡死,最好的解决办法是新建一个线程。将“等待连接”“接收数据”等处于while(true)循环中的部分封装成一个“方法”,并将这些“方法”作为新线程的参数。

就C#的编译环境.NET而言,在程序开始运行时,会先检查跨线程的访问,默认情况下,跨线程访问都被认为是不合法的,而大多数情况下,跨线程访问又是必不可少的,所以需要下程序界面开始加载时取消跨线程访问的检查。

上位机与下位机交互流程如图6所示。

七、系统软件运行结果

护士站系统软件的用户是护士和护士长,不同的职位显示不同的界面,以护士长的身份登入软件会显示“用户管理”界面,护士长可以增加、删除软件用户。

首先显示的是病人的基本信息和输液信息,护士点击‘确认’按钮之后,软件会自动生成含有病人信息和输液信息的二维码。护士需要先为病人安排座位,界面右侧显示的是相应座位上输液泵的使用情况,颜色的不同代表不同的状态,然后点击‘打印’按钮,可以通过外接的打印机打印出所需要的腕带和标签。如果打印之前未为病人安排座位或者安排错误的座位,会有相应的提示信息[13]。

护士为病人安排好座位后需要在输液管理页面输入‘预计输液时间’,系统会根据之前通过正则表达式计算出的输液总量和相应的‘预计输液时间’在输液跟踪界面上开始计时,一旦输液时间结束,在相应病人的信息栏‘完成’按钮的边框会变成红色,提示护士准备为病人拔针。同时,输液完成的病人信息会从‘输液跟踪’界面消失,出现在‘输液完成’界面,方便后续的管理。

八、结束语

基于二维码的护士站系统能够根据现今医院的具体要求实现智能信息核对,输液自动报警提示等功能,符合现代医院的智能化发展。上位机软件界面友好,操作简单,通过与下位机设备结合,大大减轻了护士的工作量,提高了工作效率。该系统已经经过医院的测试,取得了良好的效果。

猜你喜欢

输液泵上位二维码
两款输液泵的输血安全性评估
二维码
小康二维码
集束化管理策略在输液泵安全管理中的应用
医院在用输液泵的质量控制与数据分析
特斯拉 风云之老阿姨上位
让严肃的二维码呆萌起来
“三扶”齐上位 决战必打赢
基于ZigBee和VC上位机的教室智能监测管理系统
二维码,别想一扫了之