基于串口的医学实验室流水线分析仪接口通信设计研究
扫描二维码
随时随地手机看文章
0引言
全自动化是临床实验室的发展趋势[1],实验室流水线是检验全流程自动化、智能化的基础平台。各种分析仪通过整合后连接到流水线中,完成信息交互、样本检测以及结果上报等功能,是实验室全自动化的重要组成部分。
目前,不同厂商、不同类型的分析仪器通信方式均不统一,在不经过适配开发的情况下,无法接入其他厂商的流水线产品应用。这种信息交流的壁垒,导致实验室系统封闭,降低了校验效率,同时也增加了实验室的空间和资源浪费。
综合各厂家分析仪接口逻辑功能和通信接口类型,实现一套统一的分析仪接口通信设计迫在眉睫。该设计应可兼容主流分析仪接口的应用场景,满足各分析仪接口的通信需求,进而在流水线厂商和分析仪厂商之间形成行业标准和共识,实现实验室流水线分析仪接口通信的标准化设计,其意义重大,影响长远,将推动医学实验室的自动化和智能化发展。
1 分析仪接口通信总体设计方案
1.1 医学实验室整体通信概述
在医学实验室中,实验室信息管理系统、分析仪器和实验室流水线存在多方通信,实验室流水线整体通信图如图1所示。实验室信息管理系统是根据医学检验部门的工作实际设计出的信息软件系统,被广泛应用于对医学检验过程的跟踪和监控,并记录在此环节中产生的清单、样本采集、样本运转处理以及生成检验结果等信息[2]。管理系统和分析仪器大多采用网口通信,实现与分析仪器之间的工单交互和结果、耗材等信息互通;和实验室流水线通信,从而为样本调度等提供数据支撑;实验室流水线和分析仪器之间信息交互,完成样本转运等功能。
实验室信息管理系统功能和通信大致已经统一,由院方确定。实验室流水线和分析仪器之间的通信方式则不尽相同,往往流水线厂商只针对自家的分析仪器进行适配,没有统一的标准和规则。这种现状严重制约着流水线和分析仪器的发展,本文着重解决此问题。
1.2 分析仪接口通信总体设计方案
1.2.1通信方式
分析仪接口和实验室流水线的通信接口主流为RS—232串口和网口两种。具体分析对比如表1所示。
由于分析仪器接入流水线是点对点通信,且距离大多较短,通信内容较简单,适合选择协议开销及成本较低,且在工业控制、仪器仪表领域具有很大优势的串口通信。
1.2.2通信内容设计
通信内容囊括流水线和分析仪器常用业务流程,基本包括状态数据查询和上报、样本条码上报、样本到达抽样位置及抽样状态。
1.2.2.1状态数据查询和上报
消息由流水线发起,可周期发送,发送信息包含流水线状态信息。分析仪器接口回复分析仪器状态,包含可接受样本和不可接受样本两种状态,在可接受样本时流水线可以将样本转运至分析仪器;如果为不可接受样本,代表分析仪器状态异常,流水线不可将样本转运至分析仪器。同时,分析仪器通过解析查询指令,获取流水线状态,可以对已注册位检验样本做废除处理。
1.2.2.2样本条码上报
为保障分析仪器通量,设定样本条码上报指令,由流水线发起。将样本ID发送给分析仪器,以便于分析仪器提前获取测试信息。
1.2.2.3样本到达抽样位置及抽样状态
当样本到达抽样位置,发送样本到达指令,包含样本ID。然后等待分析仪器下发样本抽样完成指令,分析仪器抽样完成指令包含样本条码(用来校验)和抽样状态(体现可移走样本和不可移走样本等信息)。发送指令后,接收方应在2S内向发送方回复ACK指令,如收到消息解析失败,向发送方回复NAK指令。在未接收到ACK之前,不再发送新的指令。
2 系统设计方案
2.1通信协议设计
首先根据消息体量,约束好RS—232通信规则,具体参数如表2所示。
2.2基本通信格式设计
设计基础协议帧内容和ACK以及NAK协议内容如表3~5所示,消息长度为信息类型和数据位长度之和。
2.3 业务通信协议设计
2.3.1状态数据查询和上报
状态查询指令由流水线发起,通信内容如表6所示。
分析仪器收到查询指令后,如果数据检验无问题发送ACK指令,然后发送状态指令给流水线,消息内容如表7所示;如果数据校验异常,则发送NAK,结束本次查询。
2.3.2样本条码上报
样本条码上报消息由流水线发起,通信内容如表8所示。
分析仪器收到查询指令后,如果数据检验无问题,则发送ACK指令;如果数据校验异常,则发送NAK。
2.3.3样本到达抽样位置及抽样状态
样本到达抽样位置指令由流水线发起,通信内容如表9所示。
分析仪器收到查询指令后,如果数据检验无问题则发送ACK指令,然后等待接收样本抽样结果指令,通信内容如表10所示;如果数据校验异常,则发送NAK,结束本次查询。
3基于多线程异步的消息发送和处理机制
为提高通信效率,采用异步全双工的形式实现通信。状态查询、ID上报和抽样位置到达并行处理,发送消息和接收消息并行处理。
3.1基于线程锁的消息发送处理设计
消息发送处理设计采用互斥线程锁保障线程间的同步,具体流程如图2所示。
互斥线程锁应用基本接口如下:
pthread—mutex—t mutex =PTHREAD—MUTEx—INITIALIZER;
pthread—mutex—lock(&mutex);
pthread—mutex—unlock(&mutex);
pthread—mutex—destroy(&mutex);
在发送数据后,设置标志位为FALSE,不可再发送指令。如果收到分析仪设备回复的ACK指令则置位变量,设置标志位为TRUE。通过线程锁的方式确保发送功能实现多线程的异步处理。
3.2基于事件驱动的消息接收处理设计
基于通信效率需求,采用多线程处理机制,分为接收线程和处理线程,具体流程如图3所示。
在接收线程中循环接收串口消息,在接收消息达到正常消息的阈值时,进入消息处理流程,如果有消息匹配则从数据缓冲中去除相应数据,改变相关状态量,供逻辑调度使用。
4结束语
本文提供了一种通用的医学实验室流水线分析接口通信解决方案,采用异步全双工通信方式,囊括了主流分析仪器接入流水线的业务逻辑内容,可满足分析仪器接入流水线的高阶通信需求。
该方案已在数种类型、多台设备上稳定运行,可作为基于串口的医学实验室流水线分析仪接口的通用通信设计方法,对分析仪接口对接流水线有重要参考价值。
[参考文献]
[1]王志伟,杨汝.临床实验室自动化流水线引进前的评估[J].中国医疗设备,2009,24(12):85—86.
[2]张雅丽.实验室信息管理系统在医学检验中的创新应用与实践[J].实验室检测,2025,3(13):163—165.
《机电信息》2025年第22期第15篇





