Sysmex和LIS的通讯是使用文件传输进行的,labman和LIS约定一个固定的文件夹,然后互相写入和读取文件。

以前我们用的接口在结果传输的时候总会堵住,然后一看labman的“2”文件夹下,就会发现有一堆的cdf结果文档在那里,只好把这些结果都删除掉,然后再次启动接口,文件才能正常的被LIS接口读走了。

为了解决这个问题,就仔细观察了一下labman生成结果文件的机制:

1、先生成.TMP的文件。

2、往TMP文件中写入数据。

3、写完数据后,再把TMP文件重命名成.cdf文件。

然后,我们发现堵的原因是当labman生成.TMP文件还没有来的及写入数据的时候,LIS接口打开了TMP文件,所以堵住的都是0K的TMP文件。那么要解决这个问题也就很简单了,在LIS接口进行搜索的时候,直接只搜索.cdf的文件就可以了,不要去管.TMP文件。

跟踪一段时间后发现不会再堵了,2 文件夹下面也没有TMP那种0k的文件了。

然后是LIS给labman下单的问题,例如血常规的XN9000,我们要让仪器做网织红细胞就要写入一个条码加要做的项目的.RET文件,这个文件直接写入到labman文件夹下面,labman发现了这个.RET的文件就及时读取,读取完就删掉,等待下一次读取。

科室的老师反应,网织红经常有时候成功,有时候不成功,不清楚什么原因。

仔细观察后发现,原来是LIS接口在写入.RET文件的时候没有提前判断一下这个文件是否被labman读取走了,如果文件还在,就等于是后一个文件覆盖了前一个文件,那么前一个条码给仪器下单就失败了!

解决的思路也很简单:
while (File.Exists(file))
{
Thread.Sleep(200);
}
就是等一等就好了。

经过几天的观察,没有下单偶尔失败的情况了。

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

吵吵 吵吵

发表评论

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