国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于IHC染色機(jī)系統(tǒng)原理

2009-01-28 05:41
企業(yè)導(dǎo)報(bào) 2009年12期
關(guān)鍵詞:控制算法

楊 剛

【摘要】 重點(diǎn)研究自動(dòng)IHC染色機(jī)的工作原理、控制軟件及其實(shí)現(xiàn)方法,控制軟件包括IHC染色規(guī)程的制定、抗體與試劑的選擇、玻片與試劑的自動(dòng)定位、染色規(guī)程的自動(dòng)運(yùn)行與實(shí)時(shí)監(jiān)控等功能。實(shí)驗(yàn)證明該染色效率有顯著提高。

【關(guān)鍵詞】 自動(dòng)染色機(jī);控制軟件;控制算法

計(jì)算機(jī)技術(shù)的廣泛應(yīng)用,使現(xiàn)代醫(yī)療器械的自動(dòng)化、智能化、數(shù)字化、微型化程度得到了極大的提高,更能受到市場(chǎng)的歡迎。全自動(dòng)免疫組化染色儀具有標(biāo)準(zhǔn)化程度高、重復(fù)性好、自動(dòng)化程度高、染色結(jié)果可靠、環(huán)保健康等優(yōu)點(diǎn),是病理工作者的好幫手。研究自動(dòng)IHC染色機(jī),就是把各種計(jì)算機(jī)技術(shù)運(yùn)用于IHC(Immunohistochemistry)染色實(shí)驗(yàn)的精密醫(yī)療實(shí)驗(yàn)儀器。

一、自動(dòng)IHC染色系統(tǒng)組成

一個(gè)完整的自動(dòng)IHC染色系統(tǒng)由控制計(jì)算機(jī)、運(yùn)動(dòng)控制卡、染色主機(jī)及輔助設(shè)備組成(如圖1所示)。各組成部分在系統(tǒng)中的作用概括如下:

(1)計(jì)算機(jī)。實(shí)驗(yàn)人員通過(guò)操作安裝于計(jì)算機(jī)中的控制軟件,編制染色規(guī)程,選擇抗體與試劑,識(shí)別玻片與試劑的位置,監(jiān)控染色規(guī)程的運(yùn)行;控制軟件通過(guò)驅(qū)動(dòng)與編程接口,根據(jù)實(shí)驗(yàn)人員輸入的染色信息生成控制指令通過(guò)PCI(Peripheral Component Interconnect)總線傳送給運(yùn)動(dòng)控制卡,根據(jù)運(yùn)動(dòng)控制卡返回的狀態(tài)信息進(jìn)行監(jiān)控。

(2)運(yùn)動(dòng)控制卡。系統(tǒng)的核心控制元件,一方面它從計(jì)算機(jī)接收控制指令,并譯碼成相應(yīng)的控制脈沖,控制染色機(jī)的各種執(zhí)行機(jī)構(gòu)完成染色動(dòng)作,另一方面檢測(cè)染色機(jī)某些功能元件的狀態(tài),返回到計(jì)算機(jī)。

(3)染色機(jī)。自動(dòng)染色的執(zhí)行機(jī)構(gòu),具有自動(dòng)染色所需的運(yùn)動(dòng)機(jī)構(gòu)、控制機(jī)構(gòu)、以及相關(guān)輔助機(jī)構(gòu)。通過(guò)控制箱中和各種板卡接收運(yùn)動(dòng)控制卡的各上控制脈沖和信號(hào),控制各機(jī)構(gòu)和元件自動(dòng)完成各種染色動(dòng)作。

(4)輔助設(shè)備。主要包括二維條碼打印機(jī)以及普通打印機(jī),二維條碼打印機(jī)通過(guò)串行接口連接到控制計(jì)算機(jī),負(fù)責(zé)打印用于在染色過(guò)程中識(shí)別玻片和試劑的二維條碼標(biāo)簽。普通打印機(jī)通過(guò)并口連接到控制計(jì)算機(jī),方便實(shí)驗(yàn)人員打印實(shí)驗(yàn)結(jié)果。

二、染色動(dòng)作軟件實(shí)現(xiàn)

整個(gè)染色過(guò)程被分解為一系列的基本染色動(dòng)作,包括清洗探針、沖洗玻片、吹干玻片、試劑加樣等。在自動(dòng)染色機(jī)的控制軟件中,通過(guò)對(duì)運(yùn)動(dòng)控制卡編程控制,實(shí)現(xiàn)這些染色動(dòng)作的自動(dòng)執(zhí)行,主要有如下過(guò)程:

(1)染色規(guī)程運(yùn)行開(kāi)始必須對(duì)控制系統(tǒng)加電,運(yùn)行結(jié)束時(shí)必須將系統(tǒng)斷電。系統(tǒng)加電功能的偽代碼如下:

SendString(OmsHandle,“BL7;WQ”);//通過(guò)設(shè)置控制板卡用戶I/O引腳7為低電平加電;OmsWait(13000);// 等待13秒;

SendAndGetString(OmsHandle,“BX;WQ”, response);//讀取控制板卡用戶I/O引腳狀態(tài)到字符數(shù)組response;v = _tcstoul(response,0,16);// 使用庫(kù)函數(shù)將response轉(zhuǎn)成16進(jìn)制整數(shù)并傳給變量v;

if ((v & 01000000) != 01000000){// 判斷v的第7位是否為1;// 第7位是0,加電不成功提示用戶出錯(cuò);}

系統(tǒng)斷電功能的偽代碼如下:

SendAndGetString(OmsHandle,“BX;WQ”,response);

v=_tcstoul(response,0,16);

if(v & 01000000)== 01000000) {// 判斷v的第7位是否為1;

SendString(OmsHandle,“BH7;WT2000;WQ”);//當(dāng)v第7位為1,通過(guò)設(shè)置控制板卡用戶I/O引腳7為高電平關(guān)電;}

(2)運(yùn)動(dòng)控制。在染色規(guī)程運(yùn)行前,系統(tǒng)首先將各個(gè)軸移動(dòng)到原點(diǎn)位置,回原點(diǎn)使用專用命令“HR”,該命令需要配合硬件的原點(diǎn)傳感器來(lái)使用,從而使驅(qū)動(dòng)各個(gè)運(yùn)動(dòng)軸的步進(jìn)電機(jī)的脈沖計(jì)數(shù)歸位到0。X軸的回原點(diǎn)的偽代碼如下:

command.Format("AX;AC%d;VL%d;VB%d;WQ",xACHome,xVLHome,xVLbase);//編輯X軸的加速度、勻速度、和起始速度設(shè)置命令字符串command;

SendString(OmsHandle, command.GetBuffer(255));// 將速度設(shè)置命令

SendString(OmsHandle,“AX;HR;ID;WQ”);//使用HR命令讓X軸回到原點(diǎn),當(dāng)X軸回到原點(diǎn)時(shí)設(shè)置完成標(biāo)志;

CheckDoneFlags(OMS_X_AXIS);//通過(guò)檢驗(yàn)X軸的完成標(biāo)志等待X軸回到原點(diǎn)。

三、自動(dòng)定位多線程實(shí)現(xiàn)

多線程是同一個(gè)進(jìn)程中同時(shí)執(zhí)行多個(gè)任務(wù),方便進(jìn)行多個(gè)任務(wù)的并發(fā)控制。線程有兩種:用戶界面線程和工作線程。用戶界面線程擁有自己的消息循環(huán),工作線程則沒(méi)有??紤]到玻片與試劑的自動(dòng)定位功能需要花費(fèi)一定的時(shí)間,為方便在出現(xiàn)意外情況下中斷自動(dòng)定位的執(zhí)行流程,另開(kāi)啟一個(gè)工作線程來(lái)執(zhí)行自動(dòng)定位功能。當(dāng)主線程開(kāi)啟掃描線程之后,掃描線程進(jìn)入自己的執(zhí)行函數(shù)。在掃描線程執(zhí)行期間,主線程主要負(fù)責(zé)完成兩個(gè)工作:(1)當(dāng)掃描控件接收到DecodeDataAvailable事件,即條碼數(shù)據(jù)獲取事件,響應(yīng)該事件,保存條碼信息之后將條碼標(biāo)志置為真。條碼標(biāo)志是主線程與掃描掃描線程的共享對(duì)象,用于主線程通知掃描線程掃描儀在當(dāng)前試劑放置處獲得了條碼數(shù)據(jù),表示用戶在該處放置了試劑瓶。(2)監(jiān)控界面顯示,一旦發(fā)現(xiàn)染色主機(jī)在掃描過(guò)程中出現(xiàn)異常狀況,可立即中斷掃描線程的運(yùn)行。

掃描線程進(jìn)入執(zhí)行函數(shù)首先對(duì)染色主機(jī)進(jìn)行加電,并讓各個(gè)運(yùn)動(dòng)軸回到原點(diǎn)位置。這一點(diǎn)非常重要,如果掃描線程之前被主線程中斷,各個(gè)軸需要通過(guò)回原點(diǎn)位置來(lái)恢復(fù)運(yùn)動(dòng)控制卡的寄存器狀態(tài),否則會(huì)引起運(yùn)動(dòng)超程等錯(cuò)誤。在各運(yùn)動(dòng)軸回到原點(diǎn)之后,掃描線程嘗試通過(guò)串行接口連接操作頭部件中的條碼掃描儀,如果連接失敗,則提示用戶檢查錯(cuò)誤,并將染色主機(jī)斷電后從掃描線程返回。掃描儀連接成功后,對(duì)于試劑定位,在測(cè)定試劑容量時(shí)探針需要接觸試劑,為防止不同試劑互相混合,每測(cè)定一個(gè)試劑瓶前都必須先針探針進(jìn)行清洗。在玻片定位過(guò)程中,只需在整個(gè)掃描之前清洗一次探針?lè)乐固结樦袣埩粼噭┑温湓诓F稀?/p>

由前文可知,每個(gè)試劑架有40個(gè)試劑放置位置(4行,10列),事先通過(guò)校準(zhǔn)軟件測(cè)得試劑架第一個(gè)放置位置的坐標(biāo)(X0,Y0)以及各個(gè)放置位置之間的橫向間距(SX)和縱向間距(SY),通過(guò)這些參數(shù)可計(jì)算出每個(gè)試劑放置位置的坐標(biāo)(Xi,Yj),其計(jì)算公式為:Xi =X0+i*SX,Yj =Y0+j*SY。當(dāng)操作頭移動(dòng)到該坐標(biāo)處,掃描儀執(zhí)行一次掃描動(dòng)作后,如果用戶在該位置放置了貼有識(shí)別標(biāo)簽的試劑瓶,掃描儀的掃描系統(tǒng)獲取標(biāo)簽上的二維條碼圖像,經(jīng)過(guò)信號(hào)整形和譯碼后將數(shù)據(jù)傳送給主機(jī),觸發(fā)掃描控件產(chǎn)生DecodeDataAvailable事件。主線程捕獲該事件將數(shù)據(jù)保存在條碼信息變量中,將條碼標(biāo)志置為真。從掃描儀執(zhí)行掃描動(dòng)作到主線程獲得條碼信息,這一過(guò)程的執(zhí)行時(shí)間很短,在這段時(shí)間內(nèi)可將掃描線程掛起1秒以等待該過(guò)程結(jié)束,掃描結(jié)束等待結(jié)束后,判斷條碼標(biāo)志是否被置為真,如果非真,掃描下一個(gè)位置,如果為真,則認(rèn)定該坐標(biāo)處存在試劑瓶,根據(jù)獲取的條碼信息在本次IHC實(shí)驗(yàn)所需試劑中查找。

如果查找成功,則使用操作頭中的探針頭上的液面?zhèn)鞲衅?測(cè)定液面位置ZT,根據(jù)試劑瓶的瓶底位置ZB,及試劑瓶截面積S,可計(jì)算得到試劑容量V,其計(jì)算公式為V=(ZB-ZT)*S。至此完成一個(gè)試劑位置的掃描,最后將獲得的試劑的名稱和容量實(shí)時(shí)顯示在控制軟件的監(jiān)控界面上。在掃描完所有的試劑位置后,控制軟件將各個(gè)運(yùn)動(dòng)軸移回原點(diǎn)位,染色主機(jī)斷電,線程返回。主線程可根據(jù)掃描定位結(jié)果,計(jì)算出當(dāng)前各種試劑的容量,判斷是否足夠?qū)嶒?yàn)使用,如果不足,提示用戶添加。

四、染色規(guī)程自動(dòng)運(yùn)行技術(shù)

染色規(guī)程的自動(dòng)運(yùn)行是其核心,在此提出分割運(yùn)行算法和迭代運(yùn)行算法,經(jīng)實(shí)驗(yàn)比較起算法效率,提出確定使用迭代運(yùn)行算法的控制軟件進(jìn)行自動(dòng)IHC染色實(shí)驗(yàn)?zāi)軌虺浞痔岣呷旧男?。分割運(yùn)行算法是基于化繁為簡(jiǎn)的思想,將一個(gè)的父染色規(guī)程的分割成多個(gè)順序連接的子染色規(guī)程。除去染色規(guī)程開(kāi)始的預(yù)沖洗操作,其余的沖洗操作都是與它之前的滴加試劑操作相匹配的,根據(jù)這一特點(diǎn)可知,只包含一個(gè)滴加試劑操作步驟和一個(gè)沖洗操作步驟的染色規(guī)程是染色規(guī)程可分割的最小單元。

在分割運(yùn)行算法中,染色規(guī)程是分割成子染色規(guī)程逐個(gè)運(yùn)行的,這個(gè)先運(yùn)行結(jié)束的玻片仍然處于一個(gè)未完全運(yùn)行結(jié)束的子染色規(guī)程中,雖然此時(shí)染色機(jī)處于空閑等待狀態(tài),具備繼續(xù)運(yùn)行的條件,由于算法自身的缺陷該玻片將不會(huì)得到運(yùn)行。針對(duì)這一缺陷,對(duì)分割運(yùn)行算法進(jìn)行改進(jìn),設(shè)計(jì)出迭代運(yùn)行算法。由分割運(yùn)行算法的實(shí)現(xiàn)可知,通過(guò)一次循環(huán)將所有的子染色規(guī)程運(yùn)行結(jié)束。而迭代運(yùn)行算法在允許各個(gè)子染色規(guī)程交叉運(yùn)行的前提下一次循環(huán)中盡可能多地運(yùn)行子染色規(guī)程,整個(gè)過(guò)程由多次循環(huán)檢查運(yùn)行子染色規(guī)程完成。

五、算法分析與比較

以一個(gè)包含n個(gè)玻片、m步染色規(guī)程的染色規(guī)程為例,令第i個(gè)玻片執(zhí)行第j步染色操作的時(shí)間為Tij,在分割運(yùn)行算法中,染色規(guī)程的運(yùn)行時(shí)間為所有子染色規(guī)程的運(yùn)行時(shí)間之和,每一子染色規(guī)程的運(yùn)行時(shí)間取決該子染色規(guī)程中試劑反應(yīng)時(shí)間最長(zhǎng)的那個(gè)玻片。

六、結(jié)論

通過(guò)比較可以發(fā)現(xiàn),在染色規(guī)程的其它設(shè)置相同的情況下,隨著玻片數(shù)目與染色規(guī)程數(shù)的增加,試劑種類相應(yīng)增加,各種試劑與切片的反應(yīng)時(shí)間之間的差異相應(yīng)增大,按迭代運(yùn)行算法運(yùn)行染色程序比按分割運(yùn)行算法運(yùn)行所節(jié)省的運(yùn)行時(shí)間也越多。與分割運(yùn)行算法相比,迭代運(yùn)行算法在運(yùn)行復(fù)雜的染色規(guī)程時(shí)充分體現(xiàn)出了其優(yōu)越性,使用采用了迭代運(yùn)行算法的控制軟件進(jìn)行自動(dòng)IHC染色實(shí)驗(yàn)?zāi)軌虺浞痔岣呷旧墓ぷ餍省?/p>

參考文獻(xiàn)

[1]張福勇,潘傳明.計(jì)算機(jī)技術(shù)在現(xiàn)代醫(yī)療器械中的應(yīng)用[J].網(wǎng)絡(luò)與計(jì)算機(jī)技術(shù)應(yīng)用.2002(4):15~16

[2]羅小平,胡維維,伍尚金.全自動(dòng)免疫組化染色儀與人工操作的比較[J].醫(yī)械臨床.2007(4):59~60

[3]胡皓,周妮娜.基于Visual C++的運(yùn)動(dòng)控制系統(tǒng)開(kāi)發(fā)[J].電氣時(shí)代.2006(7):56~57

[4]魏仁選.PCI運(yùn)動(dòng)控制卡的訪問(wèn)方法[J].微型電腦應(yīng)用.2007(11):27~29

[5]周宇,沈建新.自動(dòng) IHC染色機(jī)核心控制算法的研究與實(shí)現(xiàn)[J].中國(guó)制造業(yè)信息化.2008

猜你喜歡
控制算法
紡織機(jī)械手專利瞄準(zhǔn)控制算法
電鍍電流的模糊PID控制算法
基于ARM+FPGA的模塊化同步控制算法研究
基于場(chǎng)景突變的碼率控制算法
X264多線程下碼率控制算法的優(yōu)化
一種優(yōu)化的基于ARM Cortex-M3電池組均衡控制算法應(yīng)用
滑??刂扑惴ㄔ谠诰€式大功率UPS高頻整流器中的應(yīng)用
基于梯度的CCSDS壓縮碼流控制算法研究
視頻服務(wù)器擁塞控制算法的研究與實(shí)現(xiàn)
一種非圓旋轉(zhuǎn)工件支撐裝置控制算法