按键精灵链接数据库自动打印免疫组化玻片标签论文_刘盛均,刘丹,陈杨(通讯作者)

(四川省绵阳市中心医院病理科 四川 绵阳 621000)

【摘要】 运用按键精灵编程,链接病理数据库,自动录入免疫组化切片各类信息,并以玻片打号机打印免疫组化玻片,适用于手工及自动免疫组化染色机进行免疫组化及特殊染色。

【关键词】 免疫组化;数据库;按键精灵;标签;玻片书写仪

【中图分类号】R197.3 【文献标识码】A 【文章编号】2095-1752(2019)05-0052-03

Key sprite link database to automatic print the of immunohistochemical slide label

Liu Shengjun, Liu Dan, Chen Yang.

Department of Pathology Mianyang Central Hospital,Mianyang,Sicuan 621000,China

【Abstract】key Sprite programming was used to link the pathological database, automatically input all kinds of information of immunohistochemistry sections, and print immunohistochemistry slides by a glass plate marking machine, which is suitable for manual and automatic immunohistochemistry staining machine for immunohistochemistry and special staining.

【Key words】Immunohistochemistry; Database; Key Sprite;label; Slide Printer

病理科的免疫组化染色,通过手工或自动免疫组化染色机进行[1]。在切片准备阶段,均需对玻片进行编号及抗体标记物名称书写。现阶段,手工染色一般以铅笔书写,自动免疫组化机染色以手工录入电脑,标签打号机打印防水标签,再粘贴于玻片。均存在操作繁琐,易于出现差错遗漏,不易辨识等缺点[2]。我科运用按键精灵编程,链接病理数据库,实现免疫组化玻片自动打印,现介绍如下。

1.材料

办公电脑(WINDOWS XP),按键精灵(2014版),琅伽病理数据库(PATHQC1.0),玻片书写仪(PASSMARCH),防脱玻片(迈新SLI-20010601)。

2.方法

2.1 标签及打印界面设置(图1),并抓取相应屏幕点位(图2、图3、图4)。

2.2 按键精灵程序,设置启动键CTRL+F10,暂停CTRL+F11,终止CTRL+F12。

//主模块,定义变量并赋值屏幕点位,测试数据库链接。

Delay 1000

Dim ret,rets

Dim getdata, d_blh, groupdata

Dim p1,p2,p3,p4,p5,p6,p7,p8,p9,p10

p1 = array(339,705)

p2 = array(762,255)

p3 = array(1049,484)

p4 = array(1049,530)

p5 = array(1102,159)

p6 = array(1102,198)

p7 = array(1102,239)

p8 = array(1102,322)

p9 = array(1102,279)

p10 = array(1126,587)

ret = Plugin.SQLServer.connect("数据库网址,端口", "用户名", "密码", "数据库名")

Delay 1000

If ret = false Then

MsgBox "数据库链接失败,请检查后再试!",16+0+4096,"绵阳市中心医院-错误提示"

Else

Call startapp

End If

//启动模块,初始化打印界面。

Sub startapp

Delay 500

MoveTo p1(0),p1(1)

Delay 500

LeftClick 1

Delay 1000

MoveTo p2(0),p2(1)

Delay 500

LeftClick 1

Delay 3500

Call opendata

End Sub

//数据处理模块,链接数据库获取数据。

Sub opendata

d_blh = inputbox("1、检查打印机玻片、色带及状态。" & vbcrlf & "2、输入需要打印切片的免疫组化号,按ENTER开始搜索数据并自动打印。" & vbcrlf & "3、打印期间勿随意移动鼠标及点击键盘。" & vbcrlf & "4、运行中终止运行按CTRL+F12,暂停/继续按CTRL+F11。" & vbcrlf & "5、输入all搜索所有未打印数据并打印(慎用)。" & vbcrlf & "6、输入@+免疫组化号搜索已执行与未执行数据并打印。", "绵阳市中心医院-免疫组化玻片打印")

If d_blh = "" Then

ret = Plugin.SQLServer.Close()

MsgBox "切片标签录入完毕,即将退出程序!",16+0+4096,"绵阳市中心医院-温馨提示!"

Else

If d_blh = "all" Then

getdata = Plugin.SQLServer.SelectData("T_TJYZ", "F_BLH,F_LKH,F_BJW,F_TJYZH,F_BZ", "F_YZLX = '特殊染色' and F_YZZT = ''")

Delay 1000

If getdata = "" Then

MsgBox "数据库内没有查询到任何未执行数据,请检查再试或手工录入打印。", 16+0+4096, "绵阳市中心医院-错误提示"

Else

Call printdata

End If

Else

If left(d_blh, 1) = "@" Then

d_blh = replace(d_blh, "@", "")

getdata = Plugin.SQLServer.SelectData("T_TJYZ", "F_BLH,F_LKH,F_BJW,F_TJYZH,F_BZ", "F_YZLX = '特殊染色' and F_BLH = '" & d_blh & "'")

Delay 500

Else

getdata = Plugin.SQLServer.SelectData("T_TJYZ", "F_BLH,F_LKH,F_BJW,F_TJYZH,F_BZ", "F_YZLX = '特殊染色' and F_BLH = '" & d_blh & "' and F_YZZT = ''")

Delay 500

End if

If getdata = "" Then

MsgBox "数据库内没有查询到 " & d_blh & " 相关未执行数据,请检查再试或手工录入打印。", 16+0+4096, "绵阳市中心医院-错误提示"

Else

Call printdata

End If

End If

Call resetapp

End if

End Sub

Sub resetapp

Delay 500

Call opendata

End Sub

//打印模块,将获取的数据自动输出到文本框并打印玻片。

Sub printdata

Call clearall

Dim dataindex,last_blh,last_lkh

dataindex = 0

last_blh = 0

last_lkh = 0

getdata=Replace(getdata,"#","")

groupdata = split(getdata, "|")

For i = 0 To ubound(groupdata) - 1

dataindex = dataindex + 1

Select case dataindex

Case 1

If groupdata(i) = last_blh Then

Else

Delay 500

MoveTo p5(0),p5(1)

If last_blh = 0 Then

Delay 500

LeftClick 1

Delay 500

Else

Call cleartext

Call cleartext

End If

SayString lcase(groupdata(i))

Delay 1500

last_blh=groupdata(i)

End If

Case 2

If groupdata(i) = last_lkh Then

Else

Delay 500

MoveTo p6(0),p6(1)

If last_lkh = 0 Then

Delay 500

LeftClick 1

Delay 500

Else

Call cleartext

Call cleartext

End If

SayString groupdata(i)

Delay 1500

last_lkh=groupdata(i)

End If

Case 3

Delay 500

MoveTo p7(0),p7(1)

Call cleartext

SayString groupdata(i)

Delay 500

Case 4

Delay 500

MoveTo p9(0),p9(1)

Call cleartext

SayString Right(groupdata(i),2)

Delay 500

rets = Plugin.SQLServer.UpdateData("T_TJYZ", "F_YZZT = '已执行'", "F_YZLX = '特殊染色' and F_TJYZH = '" & groupdata(i) & "'")

Case 5

Delay 500

MoveTo P8(0), p8(1)

Call cleartext

SayString groupdata(i)

Delay 500

dataindex = 0

MoveTo p10(0),p10(1)

Delay 500

LeftClick 1

Delay 1000

Call checkerror

End select

Next

End Sub

//重置模块,清理所有文本框数据。

Sub clearall

Delay 500

MoveTo p3(0),p3(1)

Delay 500

LeftClick 1

Delay 500

MoveTo p4(0),p4(1)

Delay 500

LeftClick 1

Delay 1000

End Sub

//清理模块,清除文本框数据。

Sub cleartext

Delay 500

LeftClick 1

Delay 500

KeyPress "backspace", 10

Delay 500

End Sub

//错误检测模块,检测打印机错误并处理。

Sub checkerror

Hwnd = Plugin.Window.find(0, "FormError")

sWindow = Plugin.window.iswindow(Hwnd)

If sWindow = 1 Then

MsgBox "发生打印机错误,请排除错误,按ENTER继续", 16 + 0 + 4096, "绵阳市中心医院-错误提示"

Delay 2000

End If

End Sub

3.总结

我科应用此方法,打印免疫组化玻片50000余张,玻片信息丰富,标志清晰,适用于手工及自动免疫组化机染色。该程序经有限改动,可适配于各型自动免疫组化染色机及玻片书写仪,进行玻片或防水标签的自动打印。

【参考文献】

[1]陈志忠,陈小岩,陈冰.免疫组化染色流程四阶段分法及其要点简介[J].诊断病理学杂志,2015,22(11):26.

[2]周建云,何松,刘玉山.全自动免疫组化染色仪染色失败的常见原因及改进措施[J].临床与实验病理学杂志,2013,(29)3:345-346.

论文作者:刘盛均,刘丹,陈杨(通讯作者)

论文发表刊物:《医药前沿》2019年5期

论文发表时间:2019/4/17

标签:;  ;  ;  ;  ;  ;  ;  ;  

按键精灵链接数据库自动打印免疫组化玻片标签论文_刘盛均,刘丹,陈杨(通讯作者)
下载Doc文档

猜你喜欢