吵吵   2016-10-09  阅读:1,817

东华LIS的主程序,包括技师工作站、标本接收排样、部分安装在电脑本地的接口等使用VB开发的程序,
多是用的VISM.OCX控件进行开发的。

OCX控件是需要注册的,但是实际上注册一个OCX控件可能是并不够用的,它可能调用了一些动态库等,
所以如果需要使用OCX控件的话,先把技师工作站给装好了,如果技师工作站能够运行了,
基本上这个控件就能够运行了。

一、控件的加载

控件在VB里面的使用这里就不再说了,通过我的测试,将控件引用到VS里面,用c#来开发这个程序也是可以的。

在工具箱里面右键“选择项”,“COM组件”中添加VISM.ocx文件,那么工具箱里面就会有一个正方形方块的控件了。

二、VISM控件使用

在C#里面,我们首先要考虑的问题就是如果断线重连要怎么实现,通常来说,我们实现这个机制是采用多线程去跑的,
断了线程自己去连接就好了。

那么这个控件能否在线程中创建呢?我试了一下,发现是不行的,你只能在展示窗口里面把控件拉进来,动态创建不行的,
这个控件依赖主进程。
那么真正要实现断线重连其实是这样的:

if (vism.Error!= 0) 则证明连接是断了,然后你再去连接就好了,无法实现多线程,则程序会假死。

三、VISM控件的函数和参数
首先是VISM的连接代码:
private bool Connect()
{
vism.MServer = labServer;

if (vism.Error != 0)
{
AddText(“连接服务器失败Code:” +
vism.Error.ToString() + “;Name:” + vism.ErrorName);
return false;

}
else
{

vism.NameSpace = labNamespace;
AddText(“连接服务器成功”);
return true;
}

}
其次是VISM的方法:VISM提供了P0-P9这10个参数,用于在M中执行函数时候进行传参,如果数据多的话还有一个PLIST。

我们看看是如何执行的:
vism.P1 = labMachine;
vism.P2 = epis;
vism.P3 = res1;
vism.P4 = res2;

vism.Execute(“d file^MIFEMX3000(P1,P2,P3,P4)”);

东华LIS接口

先传入参数 P1-P4,然后执行MIFEMX30000.mac文件中的file函数,传入的参数就是P1到P4

i $l(epis),$l(result)
d file^MIF000(mi,sample,epis,surname,result,date,time,QC,mi1)

file^MIF000(“EEPPDORF”,”10000″,”10000″,
“”,”HIV\12,”,””,””,””,”EZ4800″)

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

吵吵 吵吵

发表评论

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