1. lis接口主要作用:
lis接口直接作用就是下单,告诉仪器这个标本需要作什么,另一个就是回传结果,将该条码的的样本回传到lis系统中。当然lis接口还有下列作用:
a) 接收仪器的请求
b) 在lis系统中检索该条码的测试项目
c) 将测试项目转换为仪器的通道号,这种通道号在不同的仪器中是不同定义的,所以LIS中一定会有一个相关仪器的通道与测试项目的对应表。
d) 下单,将任务发送给仪器
e) 接收仪器传回来的结果
f) 将相应的通道号代码转换为lis中的测试项目
g) 将结果返回给lis系统
h) 所有的数据传输都需要按照它既定的框架来传输,
i) 框架如下:
l [STX][F#][TEXT][ETX][CHK1][CHK2][CR][LF]
l 其中TEXT就是传输内容,内容格式即为表现层内容。
l [STX]:ASCll为2,代表传输框架的开始
l [F#]:框架的序号。为数字的0到7,从1开始一直到2,3,4,5,6,7,0。如果多于8个包怎么办呢,没有关系直接循环用就好了。这个序号有什么用呢,可以判断你收到的包是不是有重复,或者有丢包。
l [ETX]:ASCII码为3,内容结束标志。
l [CHK1][CHK2]:这个叫做校验和的高四位和低四位,说起来会比较复杂,就是将从[STX]一直到[ETX](包括ETX)的字符值相加,然后除以256取余,得到这个数后转成一个8位的byte。然后高4位就是[CHK1],第四位就是[CHK2]。比如01111010用十六进制表示为7A,则[CHK1] = ‘7’,[CHK2]= ‘A’。
l [CR][LF]:ASCII码为13,10,框架结束标志。
注:封包最重要的一个用途就是要解决多个数据包的切割和重新组合的问题,以保证数据能够完整和顺序传输过去。
ASTM E1381-02 协议每个包的最大接收字节是64000byte,当传输包的字节大于63993的时候将包以63993为单位进行分割,判断数据接收完成的时候就要查看[ETX],数据没有接收完成的时候第1到n-1个包中的[ETX]不等于3,而是等于23,为[ETB],当接收数据包的标志为[ETB]的时候则继续接收,直至变成[ETX]则数据接收完成。
当ASTM传输应答超时将会中断传输,当发送者发送了一个数据包的后,接收者可以有以下反应:
A 发送[ACK],告诉发送者,我已经正确接收了,你可以继续发送或者结束了。
B 发送[NAK],告诉发送者,数据有问题或者我很忙。那么发送者会将上一次发送的包再发送出去,最多会尝试6次。
C 啥都不做。等15秒后,发送者无响应,直接中断传输了。
2. 结束传输:
结束传输则发送[EOT](ASCLL为4),代表本次会话结束,双方都回到空闲的状态,可以随时的收发数据。注:传输以IPU为主,所以IPU处理lis接口发个他的[EOT],他一律视为[ACK], 例如LIS接收了一个包后,不想接收后面的包了,因此LIS发送[EOT]给IPU,但是对不起,IPU会视为[ACK],然后继续给你发数据!
3. ASTM E1394-97协议:
从整体结构来说就是消息包含结构,结构包含字段;
ASTM消息是以Header record(H)开始的,以 termination record(L)结束的,也就是说,一条ASTM消息发过来,第一条一定是H record,而最后一条一定是L record。
4. ASTM的整体结构(高亮为主要):
a) Header Record:简写标识:H,这个结抅里面的信息包括发送者和接收者的相关信息
b) Patient information Record:简写标识:P,包含了病人信息。
c) Inquery Record:简写标识:Q,包含了请求信息?请求信息是干嘛用的呢?当然是IPU向LIS请求该条码应该做些什么项目啦。
d) Test Order Record:简写标识:O,订单信息,翻译的更加好一点,就是项目信息,LIS接口给IPU下发的命令,要做些什么项目。
e) Test Result Record:简写标识:R,这个不用说了吧,大名鼎鼎的结果信息啦,收到这个结果信息呢,你就去该将它保存到LIS数据库中去啦。
f) Comment Record:简写标识:C,评论信息。
g) Manufacturer Infomation Record:简写标识:M,厂商信息。
h) Scientific Information Record:简写标识:S,科学信息记录
i) Message Terminator Record:简写标识:L,代表信息结束了
起始记录(0级) H
病人记录(1级) P
订单记录(二级) O
结果记录(三级) R
查询记录(级别1) Q
终止记录(级别0) L
5. ASTM结构字段的共性:
a) 每个字段都用“|”来隔开
b) 一些字段有多个内容时用,比如结果中有多个项目时用“\”来隔开
c) 那么一个字段有不同内容怎么办呢?如项目名称后,紧接着结果,那就用“^”来隔开
举例:下列为化学发光传出文件的第一行文件:
H|\^&||PSWD|Maglumi1000|||||LIS||P|E1394-97|20200724
a) 其中H表示头结构,但了解到,H后边总是跟着|\^&,他是紧跟着头结构的。
b) 第二和第三个|中放的是消息控制ID
c) 第三第四是密码
d) 第四第五个之间是发送者的名字和ID,这里的格式一般是: 仪器名称^软件版本^仪器序列号^接口版本^逻辑ID号^NickName^PS code
e) 第五到第九个之间分别是:发送者地址,保留字段,发送者电话、发送者特点
f) 第九到第十为接收者
g) 第十到第十一为评论
h) 第十一到第十二为正在处理的ID
i) 第十二到第十三为ASTM协议版本号
j) 第十三到第十四为时间
ASCLL表:https://blog.csdn.net/haisheng95/article/details/7585291