吵吵   2015-01-10  阅读:2,171

听着“我是歌手”的演唱,开始写下这篇文章。

技术在变,社会在变,有些得到,有些荣誉,瞬间消散,唯一不变的,是我们当初坚持的梦想:“我是歌手”。

我是程序员,我享受哪些解决问题的成就感。

闲话还是少扯点,来看看CI1000这台仪器的通讯协议吧。

其实吵吵做这个协议,也是第一次做,其一是因为它是HL7的,其次,它提供的方式是网络连接的,也就是说要搞TCP/IP的socket了。

本文并不会仔细的讲解这个接口要怎么做,缺乏基础知识的请出门左转,去找吵吵LIS接口协议的系列教程。

一、底层框架:

[SB] ddddd [EB][CR]

相比于ASTM协议,HL7的底层框架显得非常简单,就简单的三个标识符,既没有分包要求,也没有校验的要求,获取到的内容是什么就是什么。
SB 的 ASCII [VT], 十六进制是 0x0B,十进制是 11
EB 的 ASCII [FS], 十六进制是 0x1C,十进制是 28
CR 就不用说了,应该很了解 0x0D 十进制是13 也就是回车了 c++里面就是\r。

二、消息的类别有ORU、ACK、QRY、QCK、DSR。

具体的消息结构有:

MSH:消息头
PID:病人信息
OBR:观察请求,具体就是条码等信息。
OBX:检查的结果,包括了项目以及结果信息。
MSA:消息确认。
QRD:查询定义
QRF:查询过滤
ERR:错误消息
QAK:查询确认

以一个OBX来看看吧
OBX|1|NM|101|TBil|100|umol/L|80-110|N|||F||100|20130917||||[CR]

OBX|1(OBX段序号,标识第几个OBX段)|NM(定量项目)|101(项目编号)|TBil(项目名称)|100(测试结果)|umol/L(结果单位)|80-110(正常值参考范围)|N(异常标志)|||F(观察结果状态,F表示为最后的结果)||100(原始结果)|20130917(测试日期)||||[CR]

三、传输过程

相比ASTM回复一个ACK就可以确认消息接收了,HL7消息回复就麻烦的多,非要回复一个整条的消息,而且时间不能超过一秒,否则就报错.

CI1000

看一个实际的例子吧,传输结果,然后回复结果:
2015-01-09 10:50:11: 收到所有:MSH|^~\&|LEADMAN|CI1000|||20150109105314||ORU^R01|49|P|2.3.1|【CR】PID|1||||||1899|M|||||||||||||||||||||||【CR】OBR|1|11|11|LEADMAN^CI1000||094946|20150109||||||||Ser/PI|||||||||||||||||||||||||||||||||【CR】OBX|1|NM|112|FT4|12.83|pg/mL|6.62-17.69|N|||F||329477.917947784|20150109||||【CR】

2015-01-09 10:50:11: 发送数据:【SB】 MSH|^~\&|||LEADMAN|CI1000|20150109105011||ACK^R01|49|P|2.3.1|【CR】MSA|AA|49|Message accepted|||0|【EB】【CR】

1、消息类型ACK^R01 回复的是 ORU^R01。
2、MessageID 即回复消息中的ID”49″对应接收消息中的“49”。
3、回复消息MSA中的ID”49″和MSH的消息ID也要相同。

这么看来回复消息确实不容易了。

至于其它的,就不讲了,自己研究吧,需要相关协议和资料,进入博客下方的QQ群吧。

吵吵微信朋友圈,请付款实名加入:

吵吵 吵吵

3条回应:“利德曼CI1000电化学发光分析仪LIS接口协议”

  1. 高深的知识。支持个。

  2. i博客说道:

    i博客138123168@qq.comwww.ibk.wang来这里交流学习,网站不错我也是广东这边的希望可以和你成为朋友谢谢!

  3. seo说道:

    我喜欢你的文章~~加油哈~

发表评论

电子邮件地址不会被公开。 必填项已用*标注