陳 晶,羅 俊,肖 鵬,龐延輝,周虹茹
武漢市疾病預(yù)防控制中心信息管理科,湖北武漢 430015
實驗室管理信息系統(tǒng)的樣品登記模塊是檢測樣品進入實驗室管理的入口,為統(tǒng)一規(guī)范化收樣,只有登記并提交樣品信息,該樣品的記錄才會進入實驗室管理流程。填寫樣品信息之前,應(yīng)先將樣品歸入正確的檢測類別中。因此,樣品登記模塊的頁面中,需要一個目錄用于顯示檢測類別。而樹形結(jié)構(gòu)的目錄,層次清晰,方便快捷,用鼠標(biāo)在樹形目錄中點擊,就能在界面右邊顯示其內(nèi)容。所以,在樣品登記模塊頁面采用構(gòu)建目錄樹的方法來顯示檢測類別。
目錄樹一般采用C#中的TreeView Editor 生成,但這種方法生成的目錄樹是靜態(tài)的。動態(tài)目錄樹一次只加載一級目錄,當(dāng)鼠標(biāo)點擊展開某節(jié)點時,才會加載下一級的節(jié)點數(shù)據(jù)[1]。動態(tài)目錄樹比靜態(tài)目錄樹響應(yīng)速度快,數(shù)據(jù)量小[2]。動態(tài)目錄樹使用ASP.NET 服務(wù)器控件Tree View 生成。
TreeView 組件是用分層的形式向用戶展示信息,可以用來生成分層的文件夾視圖。此組件是Microsoft Internet Explorer WebControl 控件中的一個,使用前需安裝Microsoft Internet Explorer WebControl 控件。下載安裝后自動在C:Program Files 下建立IE Web Controls 文件夾,執(zhí)行此文件夾中的bulid.bat 文件。然后將buildRuntime 中的內(nèi)容復(fù)制到Web 應(yīng)用程序的/WEBctrl_client/1_0 目錄中,再將(MicrosoftWEB.UI.WEBControls.dll)復(fù)制到WEB 應(yīng)用程序的/bin 中。在.Net 框架組件中添加TreeView 組件,添加后就可以在.NET 中使用了[3]。
Tree View 組件與數(shù)據(jù)庫中檢測類別數(shù)據(jù)表相連,實現(xiàn)動態(tài)目錄樹。數(shù)據(jù)表中存放檢測類別,包括大類和小類。在界面初始化時,控件與后臺進行交互,調(diào)用檢測類別數(shù)據(jù)表中的數(shù)據(jù),在收樣界面中把檢測類別分級列出,再把樣品檢測申請/受理單中的檢測類別和檢測項目等控件和相應(yīng)的檢測類別條目進行掛接。當(dāng)選中該條目時,自動彈出與此條目相連的樣品檢測申請/受理單。這樣當(dāng)檢測類別變更時,系統(tǒng)會根據(jù)數(shù)據(jù)表中的內(nèi)容自動生成新的目錄樹。同時,在樣品檢測申請/受理單中也會自動變更檢測項目。檢測類別數(shù)據(jù)表的結(jié)構(gòu)如表1 所示。
序號字段名說明類型描述1*strCategoryId 檢測類別代碼 VARCHAR(64) 主鍵
表1 檢測類別數(shù)據(jù)表
目錄樹的程序執(zhí)行流程為,當(dāng)頁面初始化時,TreeView組件從檢測類別數(shù)據(jù)表中取出檢測類別名稱和檢測子類別名稱,顯示在界面中,如圖1 所示。
圖1 生成樹流程圖
用部分程序偽代碼表述檢測類別目錄樹節(jié)點的生成,偽代碼如下所示。
開始初始化;
打開檢驗類別數(shù)據(jù)表;
統(tǒng)計總類別數(shù);For(變量A=0;變量A < 總類別數(shù);變量A 自增1){ 生成一個新類別節(jié)點; 統(tǒng)計該類別下子類別數(shù); For (變量B=0;變量B < 該類別下的子類別總數(shù);變量B 自增1){ 生成一個新的子類別節(jié)點; }}生成目錄樹;結(jié)束;
利用本文介紹的目錄樹的生成方法運用到實驗室管理信息系統(tǒng)的開發(fā)中,用戶登錄到樣品登記模塊后,該模塊界面顯示出樹形的目錄菜單,運行結(jié)果如圖2 所示。
圖2 目錄樹運行結(jié)果
[1]李樹賢,范太華,韓永國.WEB模式下借助樹形目錄實現(xiàn)動態(tài)報表.計算機與數(shù)字工程,2005,33(9):122-124
[2]彭鳳梅.在ASP.NET中構(gòu)建樹形目錄.科技廣場,2005(5):66-69.
[3]屈澤明.NET平臺下角色的動態(tài)樹形目錄的設(shè)計與實現(xiàn). 電腦編程技巧與維護,2009(24):36-39.