LIS系统与仪器进行通信

news/2024/11/6 0:10:15/文章来源:https://www.cnblogs.com/childeQ/p/18528054

本文主要介绍医疗检测仪器与LIS系统之间的通信,两者之间的通信还是比较简单的,两者通过通信方式连接成功后,对接收到的数据按照特定的协议进行解析,拿到我们需要的数据保存到LIS系统,或者将LIS中的数据传到仪器上即可。

下面介绍一下比较常用的通信方式及协议。详细的协议请查看仪器厂家给的文档,那才是最详细的文档。具体的通信方式和协议解析如何编码,这里先不介绍。

1. 通信方式

1.1. 网口

仪器或LIS主机一个作为Socket的服务端,一个作为客户端,两者以(TCP/IP Socket局域网内通信)的形式连接成功后进行数据交互。

1.2. 串口

仪器和LIS主机之间使用串口线进行连接,使用COM口进行数据传输。串口通信需要设置好波特率、数据位、停止位、奇偶校验。

1.3. 读取仪器的数据库

LIS主机直接连接仪器软件的数据库,读取数据库中的相关数据,同步到LIS系统中。目前仪器数据库使用比较多的是ACCESS数据库,连接数据库时可以使用ORM(如:SqlSugar)或者自己写DBHelper

1.4. 解析仪器导出来的文件

有的仪器可以将测试的结果数据导出为文件(如:TXT、CSV格式的文件),我们通过解析文件的内容从中获取到相关信息

2. 通信协议

  • HL7协议 (有不同的版本,使用比较多的是2.3.1、2.4版本,2.3.1版本使用更多一些)
  • ASTM协议
  • 仪器自定义协议

2.1. 注意事项:

  • 一个仪器可以以通信方式中的任意一种方式传输数据,数据的格式可以是通信协议中的任意一种格式,在开发时要结合仪器所支持的实际情况选择合适的通信方式和协议。
  • 不同仪器可能采用相同的协议和版本,但相同数据位置所代表的信息内容可能不一样
  • 使用网口通信时有的仪器端既可以作为服务端也可以作为客户端,有的仪器只能作为服务端或者只能作为客户端。具体要看仪器的支持情况。所以LIS端要可以作为服务端也要可以作为客户端。

3. 各协议数据示例

3.1. HL7

HL7 是一个为住院病人提供护理的电子数据交换标准。最初它由美国定义,现在已经被很多国家采用。
HL7 底层协议TCP/IP是一个字节流协议,它并不提供消息边界。HL7作为上层协议是基于消息的,但它也没有提供消息终止机制。为了确定消息边界,HL7使用最小的底层协议。 

3.1.1. 通讯层

消息被以下面的格式传送:
<SB>ddddd<EB><CR>
其中:
<SB>是ASCII <VT>, 即, <0x0B>。 不要和ASCII 中的字符SOH 或 STX 混淆
ddddd是HL7消息。只包括ISO8859-1字符(十六进制值20-FF)和,不包括其它控制和不能打印的字符。
<EB>是ASCII <FS>,即,<0x1C>
<CR>是回车换行, ASCII回车符,即,<0x0D>。

3.1.2. 示例

  一条完整的消息格式如下图:(注意:图中黑色突出的字符是不可见字符)

上图中的示例是博科全自动生化分析仪使用HL7 2.3.1版本的协议推送测试结果到LIS的数据,我们要做的就是从以上数据中解析出我们需要的信息,基本的信息包含样本的编号或流水号、检测项目、项目的结果。

HL7消息分为不同的消息段,消息开头的字母(MSH、PID、OBR、OBX)代表消息的类型。一个类型的消息里又使用 “|”分隔成不同的段,每段里存放不同含义的数据,我们在解析消息时要做的就是根据仪器厂家提供的文档,从对应的消息段里找到我们需要的数据

下面大致描述一下上图中各消息段表示的意思,意在帮助你理解HL7协议的消息:

MSH:HL7消息所有的消息都是以MSH段开头一般位于消息的最前面。该消息段用于定义消息的来源、消息类型、版本号、消息编码等信息PID:消息表示病人的信息,里边会包含有病人的姓名、病历号、床号等病人的基本信息OBR:消息表示的是一些医嘱的信息,里边包含有样本的编号或流水号等信息OBX:消息表示的是检测项目的信息,里边会包含有检测项目(ALB、ALP、ALT等)、检测结果(1.86448165477651、2.68249424273179、0.1722214354275等)、结果单位(g/L、U/L、U/L等)、参考范围(35\~55、45\~135、0~41等)等信息

3.1.3. 解析结果

从上边的示例中我们可以解析到如下的数据:

3.2. ASTM

3.2.1. 通讯层

消息被以下面的格式传送:
<ENQ><STX>消息内容<ETX><EOT>

以上格式中尖括号内的内容表示控制代码,是不可见的字符,其表示的相关含义如下:

字符 含义 对应的ASCII(十六进制)
<ENQ> 请求 0x05
<ACK> 确认回应 0x06
<STX> 本文开始 0x02
<STX> 本文结束 0x03
<EOT> 传输结束 0x04

一般都是<ENQ>作为开始,从<STX>开始解析,<EOT>作为结束。具体信息代表的什么意思,可以参考ASTM通讯协议,基本都是一致的。

通信时整个流程大致是,仪器先发送<ENQ>给LIS端,LIS端接收到消息后回复<ACK>,仪器收到回复的<ACK>后开始发送后续的内容,一条完整的信息从<STX>开始,到<ETX>结束,LIS端接收到<EOT>时,表示一条完整的消息传输完成,我们需要解析接收的内容中<STX><ETX>之间的内容接口。可以使用字符串截取的方式来解析。

3.2.2. 示例:

一条完整的消息格式如下图:(注意:图中黑色突出的字符是不可见字符)

从以上示例中可以解析到如下消息:

3.3. 仪器自定义协议

有的仪器厂商会有自己定义的协议,这种的就没有标准的规范了,具体就得看厂家给的协议文档,按照文档进行解析就行。比如尿液分析仪,每个厂商个格式都不一样,有的相同的仪器,不同的型号之间也是不一样的。

下图是一个完整的尿液分析仪传输的数据(注意:图中黑色突出的字符是不可见字符)

上图中的数据中包含样本标识(NO0002)、检测时间(2023-05-19 13:59)、检测项目(LEU、NIT、URO...等)、项目检测结果、结果值单位等信息

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/827418.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

0-1搭建 账务自动化集成系统

对财务人员来说,记账是一项非常繁琐又麻烦的工作,每天/月重复,要求还高;如果能实现自动化入账,绝对能提高不少工作效率。这篇文章,我们就来讨论下这个问题。在企业的财务管理中,会计工作是核心环节,会计是基于经济业务活动的根据会计法、会计准则等法律法规,通过记账、…

清结算中台系统设计

在当今复杂的金融交易环境中,清结算中台作为核心的基础设施,扮演着至关重要的角色。它不仅能够确保交易的准确性、安全性和及时性,还能提高金融机构的运营效率,降低风险。 本文将深入探讨清结算中台的定义、流程、模型以及产品功能,为读者全面展示这一重要金融工具的设计与…

linux 中 sort -k选项

001、简单测试[root@PC1 test1]# ls a.txt [root@PC1 test1]# cat a.txt ## 测试数据 01 02 03b 34 05 86 87a 98 09 10 41b 12 13 54 15i 16 17 18 19a 20 [root@PC1 test1]# sort -k 4 a.txt ## 按照第四列进行排序 09 10 41b 12 13 54 15i 16 1…

LM Studio让你的Mac秒变AI神器!

0 前言 M芯片Mac想跑大模型,强烈推荐LM Studio。因为它支持专门为M系列芯片优化过的模型文件,运行速度快了不止亿点点!intel mac 不支持哦! 本地运行大模型的工具中,LM Studio和Ollama是最受欢迎的两款。最近LM Studio新增了对MLX的支持。 1 MLX是啥? 苹果公司开源的一个…

Mybatis Plus MySql json类型操作

在数据库表定义json字段; 在实体类加上@TableName(autoResultMap = true) 在JSON字段映射的属性加上@TableField(typeHandler = JacksonTypeHandler.class);本文来自博客园,作者:VipSoft 转载请注明原文链接:https://www.cnblogs.com/vipsoft/p/18529092

高级程序语言设计第六次作业

作业属于哪个课程:https://edu.cnblogs.com/campus/fzu/2024C/ 作业要求在哪里: https://edu.cnblogs.com/campus/fzu/2024C/homework/13303 学号:102400115 姓名:洪育豪 第一题 问题:指针自增忘记加()第二题 问题:无第三题 问题:无第四题 问题:scanf里的%d后面多了个空…

Clion使用注释快捷键总是在行首而不是最靠近代码缩进

本文来自博客园,作者:海_纳百川,转载请注明原文链接:https://www.cnblogs.com/chentiao/p/18529078,如有侵权联系删除

MQC

1.背景 随着网络中QoS业务的不断丰富,在网络规划时若要实现对不同流量(如不同业务或不同用户)的差分服务,会使部署比较复杂。MQC的出现,使用户能对网络中的流量进行精细化处理,用户可以更加便捷的针对自己的需求对网络中的流量提供不同的服务,完善了网络的服务能力。 2.…

SpringBoot项目使用AOP及自定义注解保存操作日志

SpringBoot项目使用AOP及自定义注解保存操作日志@目录概述:特色使用方式注意点代码第一步:pom引入AOP第二步:创建自定义注解、Bean实体、枚举、常量类第三步:Controller层方法使用自定义注解标识第四步:新建一个日志操作类LogAopAction,专门用来处理操作保存日志第五步:…

基于Java+SpringBoot心理测评心理测试系统功能实现二

三、部分系统功能试卷信息实体类Entity、试卷答题信息实体类Entity、留言信息实体类Entity、公告信息实体类Entity、心理测试信息实体类Entity一、前言介绍: 1.1 项目摘要 心理测评和心理测试系统在当代社会中扮演着越来越重要的角色。随着心理健康问题日益受到重视,心理测评…

关于 IntelliJ IDEA 2024 安装激活教程(亲测有效~)

第一步速度慢的点击这里进行下载 第二步点击xx 关掉程序! 第三步 点击获取补丁文件 打开标注的文件注意: 以后这个文件夹不要动 点击 进入 /scripts点击【确定】按钮后,过程大概 5- 30 秒,如看到弹框提示 Done 时,表示成功完成,之后打开idea 输入 6G5NXCPJZB-eyJsaWNlbnN…