找回密码
 立即注册
搜索
yeec近年来原创帖合集 本站基础知识下载汇总 yeec网站学习币充值链接 学习中心正式上线

[转发]全自动生化分析仪双向联机程序的开发

[复制链接]
郑振寰 发表于 2006-1-23 10:07 | 显示全部楼层 |阅读模式

注册登录才能更好的浏览或提问。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
1 引言

随着全自动生化分析仪的广泛应用,各种联机程序也应运而生[1,2],但目前开发的这些程序只有单向通讯的功能,只能接收生化分析仪的数据,而不能向生化分析仪发送数据。但是,很多型号的生化分析仪都具有双向通讯功能,如Technicon的RA系列,Dupont的Dimension系列,Abbott的Aeroset。为此,笔者针对Abbott的Aeroset全自动生化分析仪,开发了具有双向通讯功能的联机程序。现作如下简要介绍。
2 软硬件环境及硬件连接
(1)系统运行环境:操作系统为Win9x。

(2)硬件连接:检验仪器:雅培(Abbott)Aeroset全自动生化分析仪,通过遵循RS-323通讯协议的标准电缆与计算机串行口连接。
3 软件开发
编程语言应用Microsoft Visual Basic
6.0,数据库系统为Access。程序编译后直接在Win98操作系统下运行。
4 程序功能及实现
4.1 检验数据的接收

(1)检验数据包的采集:通过计算机串行端口采集生化分析仪发送的数据,如数据采集成功,联机程序向生化分析仪发送一个接收成功信号ACK(Affir
mative
Acknowledgement),生化分析仪发送下一个标本的结果,如不成功联机程序向生化分析仪发送一个信号NAD(Negative
Acknowledgement),生化分析仪重新发送,累计三次失败后进人下一个标本数据的发送。
(2)检验数据转换:将采集到的检验数据包转换成检验信息系统(Laboratory lnformation
System,LIS)能识别的代码,然后数据写入检验信息系统数据库中。
4.2 检验项目的发送

(1)检验项目的生成:笔者开发的检验信息系统能按照项目组合的方式一次性输人多个检验项目[3],譬如,输入肝功组合,就能生成与肝功能检测有关的总蛋白,白蛋白、胆红素、转氨酶等检验项目,快速完成检验项目的输入。组成项目组合的具体检验项目由用户定义。
(2)检验项目打包:检验项目生成后,将检验项目转换成生化分析仪能识别的代码,按照生化分析仪要求的格式打包。

(3)检验项目的发送:将打好包的检验项目通过计算机串行端口发送给生化分析仪,生化分析仪成功接收后,发送一个成功信号ACK给联机程序,进入下一标本检验项目的发送;如未成功接收,发送一个NAK信号给联机程序,联机程序重新发送,如累计三次失败,程序记下错误信息,并进入下一标本检验项目的发送。
5 讨论
(1)双向联机程序实现了接收分析仪传送的检验数据和向分析仪发送检验申请的功能,这样大大方便了操作人员,减轻了工作量。
(2)现在大部分检验仪器都具有双向通讯的功能,双向联机程序开发是发展的必然趋势。
(3)由于医院信息系统(Hospital
lnformationSystem,HIS)在医院的广泛使用,医生在医生工作站为病人下检验申请,医生的检验申请命令直接到达检验科的分析仪很快就可能实现。

(4)虽然很多检验仪器具有双向通讯的功能,但仪器与外接计算机只能进行纯数据交换,如果检验仪器能够处理外接计算机发送的一些命令,譬如开始操作、停止操作这样一些简单的命令,就会给操作者带来更多的方便。操作者可一边审核浏览检验数据同时,对分析仪进行一些简单的操作。
看贴要回是本分,有问必答是人才,解决问题回贴是公德.
医疗设备维修.维修咨询(请尽可能在论坛提问),协助维修,上门服务.
电话:13991827712

yeec维修网视频培训资料购买链接
BeckmanCoulter DXA系列培训资料
Ortho VITROS 系列培训资料
Ortho enGen_ThermoFisher TCA 实验室自动化系统培训资料
Roche Cobas 实验室自动化系统培训资料
Roche Cobas modular系列分析仪培训资料
Horiba-ABX Yumizen系列培训资料
DiaSorin Liaison系列培训资料
Advia2120培训资料
Inpeco-Aptio系列培训资料
Atellica Solution系列培训资料
Siemens Immunoassay系列培训资料 西门子化学发光系列
SIEMENS Advia系列培训资料 西门子生化系列
Toshiba/Abbott系列培训资料 东芝雅培生化系列
Abbott Architect 系列培训资料 雅培生化化学发光系列
ACL TOP 系列培训资料 沃芬TOP血凝系列
BeckmanCoulter Immunoassay系列培训资料 贝克曼化学发光系列
BeckmanCoulter DXH 系列培训资料 贝克曼DXH血球系列
BeckmanCoulter自动样品处理系统介绍性培训资料 贝克曼前后处理流水线系列
BeckmanCoulter AU系列培训资料 贝克曼AU生化系列
BeckmanCoulter DXC系列培训资料 贝克曼DXC生化系列
LaboSpect003/008/AS 7100/7180分析仪培训资料
Horiba-ABX系列培训资料 Horiba-ABX血球系列
Sysmex 血凝系列培训(CA/CS)
Sysmex 尿液分析系列培训(UF1000/5000/UC3500)
Sysmex 血球系列培训(KX21/POCH/XS/XT/XE)
Sysmex XN系列培训(XN-L/XN1000/XN2000/XN3000/XN9000)
Sysmex HISCL系列培训
可直接淘宝店铺购买https://yeec.taobao.com,或咨询手机/微信:13991827712,QQ:67708237
 

 楼主| 郑振寰 发表于 2006-1-23 10:10 | 显示全部楼层
1 引言

全自动生化分析仪Ⅱ型机是基于I型机的换代产品,它具有了许多I型机不具备的优点。其中一个改进就是增加了网络支持功能,即在用户需要或者仪器发生故障时,可选择登录公司网站,或寻求详细的故障信息,或选择远程故障诊断,或进行网上升级等等。本文介绍了Visual
C++下的一种网络支持程序,可在需要时自动登录公司网站。
2 网络支持程序完成的功能

在用户需要或仪器发生故障时,调用设置对话框,由用户来完成拨号网络的设置;完成设置并确定后进行拨号;显示拨号过程的当前状态并可随时断开连接;连接完成后,直接调用Ⅲ完成浏览公司网站。
3 程序的实现过程
(1)设置对话框:

创建设置对话框资源和类,并加入EditBox控件,再添加与该控件相关联的成员变量m_Usemame(用户名)、m_Password(密码)、m_Phonenum(电话号码)。

可以将用户输入值保存到注册表,以便再次调用时成为默认值。先在注册表中新建一个主键及该主键下欲保存用户输入的三个串值,UserName、PassWord、PhoneNumber。
欲对一个指定键进行操作,先用RegOpenKeyEx函数打开,用RegSetValueEx设置注册表中键的值。
在设置对话框的初始化中,将注册表中保存的值赋予控件变量,即读取默认值:

m_Usemame=UserName,m_Password=PassWord,m_Pho-nenum=PhoneNumber。
(2)拨号连接:
使用调制解调器拨号进行连接。Visual C++为我们提供了包含RAS
APl声明的ras.h头文件。要在程序中实现拨号上网功能,可以使用RasDial函数。其原型如下:
DWORD RasDial
LPRASDIALEXTENSIONS lpRasDialExtensions.//Windows
NT下有效,Windows 98下置为NULL
LPCTSTR lpszPhonebook,//Windows NT下有效,Windows 98下置为NULL
LPRASDIALPARAMS lpRasDialParams,
DWORD dwNotifierType,//Windows NT下有效,Windows 98下置为NULL
LPVOID IpvNotifier,//指定处理确认信息的窗口或回调函数
LPHRASCONN
lphRasConn);//指向类型为LPHRAS-CONN的变量,调用RasDial前需指定为NULL

IpRasDialParams是一个LPRASDIALPARAMS结构指针,用于指定拨号连接的参数。其中,szEntryName可指定用户已在拨号网络里建立的连接,Modem将拨打其中设定的ISP号码,此时szPhoneNumber设为NULL。如果在程序中自行设定要拨打的ISP号码,szEntryName设定为NULL,此时szPhoneNumber应为ISP号码。
在确认用户输入后,调用RasDial函数即可拨号进行连接。
(3)拨号状态显示:

①建立状态显示对话框来处理确认消息。建立对话框资源和对应的对话框类CDIgStatus。在此对话框类的实现代码中定义一个新的Windows消息:
const UNIT WM-RASEVENT=::Register Window Message
(RASDIALEVENT);
②在MESSAGE
MAP中加入消息映射,如下:BEGIN_MESSAGE_MAP(CDIgStatus,CDialog)
file://((A隈-MSC-MAP(CDlgStatus)
ON_REGISTERED_MESSAGE(WM_RASEVENT,OnRas
DialEvent)-加入此句
file://))AFlMSLMAP
END_MESSAGE_MAPO
③在确认消息的对话框实现代码之后,加入成员函数处理消息:
LRESULT CDlgStatus::OnRasDialEvent(WPARAM wp,LPARAM Ip)
(RASCONNSTATE rasstate=(RASCONNSTATE)wp;
HRASCONN hRasConn;
switeh(rasstate)
{case RASCLOpenPort:
m_Status->SetWindowText(T(//正在打开端口…//));
case RASCS_Disconnected:
m_Status->SetWindowText(_T(//连接已经断开! file://));
hRasConn:NULL;

/定义类型为HRASCONN的成员变量m_hRasConn来保存RAS连接的句柄,调用RasDial时m_hRasConn指针作为lphRasConn的参数用来保存连接句柄,连接断开后应重置为NULL.
/
}
(4)断开连接:
在状态显示对话框的资源中加入Button控件,并创建消息响应函数。如下:
void CDleStatus::OnButton ()
{…
if (hRasConn!=NULL)
{ RasHangUp(hRasConn);
hRasConn=NULL;
::Sleep(2000); }
}
上述代码中的Sleepo函数是必需的,因为需要一定时间来断开连接,如不等一段时间,计算机有可能无法正常关闭端口,导致下一次拨号不能正常进行,那时只能重新启动Win-dows。
(5)浏览网页:
连接成功后,可直接用WinExec0函数来调用外部程序以实现调用IE完成浏览。
在OnRasDialEvent消息函数实现代码的CaseRASCS_Connected,中加入WinExec即可实现。case
RASCS_Connected:
m_Status->SetWindowText(_T(//连接成功!正在登录公司网站…//))
::WinExec(//C\\kProgramFiles\\IntemetExPlorer\\IEXPLOR
EEXE****,SW_MAXIMIZEISW_SHOW);
file://****为欲浏览的公司的网址
这样,一个完整的拨号上网程序完成了。本程序已在Windows 2000的Visual C++6.0下调试通过。

本程序属于全自动生化分析仪Ⅱ型机网络支持程序的一部分,主要用于用户在仪器发生故障时上网连接公司网站,以便于故障的排除。它相比于系统自带的拨号网络,有自动运行、操作直接、显示明了的特点。
看贴要回是本分,有问必答是人才,解决问题回贴是公德.
医疗设备维修.维修咨询(请尽可能在论坛提问),协助维修,上门服务.
电话:13991827712
xumihuo 发表于 2007-3-16 23:22 | 显示全部楼层
管理员,您好,我怎么看不到全文啊?
 楼主| 郑振寰 发表于 2007-3-16 23:41 | 显示全部楼层

那是你电脑的问题,换个电脑试试看。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|手机版|小黑屋|加入QQ群|注销账号|yeec维修网

GMT+8, 2024-11-24 13:12 , Processed in 0.595087 second(s), 33 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表