王秀民, 孫霜青, 李春玲, 魯效慶, 胡松青
(中國石油大學(華東) 理學院, 山東 青島 266580)
理化實驗室管理信息系統的研究與實現
王秀民, 孫霜青, 李春玲, 魯效慶, 胡松青
(中國石油大學(華東) 理學院, 山東 青島 266580)
為了滿足材料物理與化學實驗室科學管理的需求,采用C#語言、Microsoft Visual Studio軟件開發工具和Microsoft Access數據庫技術,設計開發了一套包括用戶管理、藥品庫存管理、儀器設備管理、實驗室消耗品庫存管理和庫存余量預警管理模塊的實驗室管理信息系統。經過試用證明,該系統實用性強、操作簡單、運行穩定,能夠保證實驗室的高效運行。
管理信息系統; 實驗室管理; 消耗品管理; C#語言; 數據庫
隨著我國高等教育事業的發展,高校實驗室的建設呈現出規模大型化、結構綜合化、系統復雜化、設備高檔化的趨勢[1]。高校實驗室不僅承擔著實驗教學、畢業設計教學等項工作,還要承擔大學生科技創新實驗和教師科研任務[2-4]。實驗室的科學化管理是完成教學任務和開展科研工作的有效保障。隨著計算機技術的快速發展和普及,我國高校實驗室管理信息系統的設計與研發不斷取得新的進展[5-7]。中國石油大學(華東)材料腐蝕與防護專業實驗室經過前期教學與科研成果的積累,現在已經進入高速發展期[8]。在學校經費的支持下,實驗室購置了一些大型實驗儀器設備,實驗室承擔的教學和科研任務也在加重,實驗所需藥品及儀器配件的數量快速增加。面對越來越復雜的實驗室管理問題,僅僅利用Word、Excel等計算機辦公軟件已不能滿足實驗室高效運行的管理需求。為此,筆者從實驗室管理者的角度,開發了一套適合實驗室管理的數字化實驗室管理信息系統。
1.1 需求分析
實驗室管理信息系統的使用者主要是實驗室管理者、指導學生實驗和進行科研工作的教師。實驗室的管理者和使用者可以通過共享信息系統中實驗設備的使用情況、實驗消耗品的存量狀況等信息,實現實驗設備和消耗品的高效利用。
實驗室管理信息系統主要包括用戶管理模塊、藥品庫存管理模塊、實驗室消耗品庫存管理模塊、儀器設備管理模塊以及庫存余量預警模塊等。使用該系統的教師需要書面向系統管理者申請使用權限;系統管理者通過管理系統提供用戶的賬號,用戶通過賬號、密碼登錄系統。實驗室管理者可通過查看系統自動生成的數據報表,方便地了解實驗設備以及實驗消耗品的使用情況,及時提出采購計劃。軟件系統的開發,促使實驗室藥品、配件、設備的管理實現數字化和系統化,更加科學、規范和高效[9-12]。
1.2 軟件開發環境
實驗室管理信息系統使用Microsoft Visual Studio工具開發,利用該工具包編寫的應用程序能用于所有微軟平臺[13]。利用Visual Studio數據窗口,先在短時間內建立系統應用原型,然后對原型系統進行需求迭代,不斷修正和改進,力求操作容易、界面美觀,直到形成穩定、實用、可行的管理信息系統。整個系統的開發過程嚴格遵循軟件工程的要求,做到模塊化分析、模塊化設計和代碼編寫的模塊化。
實驗室管理信息系統中的多個子模塊都涉及大量的數據。為了便于數據的分析、處理、存儲和輸出等功能的實現,系統的部分子模塊選擇Microsoft Access作為數據開發工具。Microsoft Access的用戶不用編寫代碼,就可以方便地開發出一個功能強大而且相當專業的數據庫,并且該數據庫界面友好、易學好用、開發簡單、接口靈活。
2.1 數據庫設計
在數據庫建立過程中,以藥品信息數據庫為例,首先要對實驗室內各種藥品分類(例如固態、氣態、刺激性氣味等),然后判斷需要存儲的內容,做到每項數據都有必要,所有的記錄不沖突,不出現重疊的信息或模糊的信息。
根據材料物理各類專業實驗室以及系統管理需要,建立數據庫并確定各數據庫的內容如下:
(1) 用戶信息數據庫:姓名、管理權限、登錄密碼、聯系方式、備注;
(2) 藥品信息數據庫:中英文名稱、規格、產地、存放地、庫存總量、警戒庫存量、入庫量、備注;
(3) 藥品使用記錄數據庫:中英文名稱、使用量、使用者、使用目的、提取時間、備注;
(4) 儀器設備信息數據庫:名稱、品牌、資產號碼、產地、存放地、儀器數量、購買時間、設備單價、設備用途、備注;
(5) 儀器設備使用記錄數據庫:名稱、資產號碼、使用時間、故障信息、備注;
(6) 儀器設備借用記錄數據庫:名稱、借用量、借用者、使用地點、借用時間、歸還時間、使用目的、儀器狀況、備注。
2.2 軟件系統設計
軟件框架設計是以數據庫為核心,將實驗室藥品和藥品使用信息、儀器設備使用信息、儀器設備借用信息等都存儲在數據庫里(見圖1),軟件各個模塊直接與數據庫交換數據,及時記錄藥品及消耗品的使用情況。實驗室各藥品庫存可以通過系統的查詢功能方便得到;通過數據操作工具可以很方便地生成、查看、打印各類數據報表。

圖1 軟件框架設計
通過實驗室管理信息系統,實驗室管理者可以對實驗室運行情況進行數據分析,在余量預警工具的幫助下,及時補充庫存低于警戒線的藥品或配件,保證實驗教學的正常開展。
余量預警源代碼如下:
//建立數據庫連接
OleDbConnection^ MyConnection = gcnew OleDbConnection(″Provider=Microsoft.Jet.OLEDB.4.0;Data Source=″+Application::StartupPath+″\Lib.mdb″);
MyConnection->Open();
//判斷最低藥品
try
OleDbCommand^ MyCommand = gcnew OleDbCommand(″SELECT Drugs_code,Drugs_name_CH,Current_number ,Min_number,Storage_where FROM drugs where Current_number<=Min_number″,MyConnection);
OleDbDataAdapter^ MyAda = gcnew OleDbDataAdapter(MyCommand->CommandText,MyConnection );
DataSet^ MyDS = gcnew DataSet();
MyAda->Fill(MyDS);
dataGridView1->DataSource = MyDS->Tables[0]->DefaultView;
for(int i=0;i<5;i++) dataGridView1->Columns[i]->Width=100; dataGridView1->Columns[0]->HeaderText=″編號″;
dataGridView1->Columns[1]->HeaderText=″名稱″;
dataGridView1->Columns[2]->HeaderText=″當前庫存″;
dataGridView1->Columns[3]->HeaderText=″最小庫存″;
dataGridView1->Columns[4]->HeaderText=″存放位置″;
catch(Exception^ MyEx)
MessageBox::Show(″獲取數據表信息出現錯誤:″+MyEx->Message,″信息提示″,MessageBoxButtons::OK,MessageBoxIcon::Information);
//最低藥品end
系統對儀器設備的使用情況進行記錄和及時跟蹤,提供類似預約方式的管理,這樣不僅能有效地提高設備的利用率,也有利于儀器設備的管理與維護。
系統還提供了操作日志,每次對數據庫的操作都存儲于數據庫中。當數據記錄出現問題,或者某設備管理出現問題時,可以提取日志查找原因,包括一些錯誤記錄導致庫存異常,也能很方便地查詢出錯原因。系統的操作日志功能為實驗室管理提供了可靠保障。
2.3 軟件的實現
根據實驗室管理信息系統的框架設計編寫數據庫操作代碼。操作代碼是整個管理系統的聯系紐帶,通過數據庫操作代碼,可以任意調用數據庫里的信息,這些信息可以顯示在系統界面上,也可以用于軟件模塊內分析。數據庫操作代碼還具有把界面上任意信息添加到數據庫的功能,即將存儲數據記錄到數據庫中。修改和更新數據庫內數據信息源代碼如下:
//修改更新數據
int CurrentNum,MaxNum,MinNum;
try
CurrentNum=System::Convert::ToInt32(this->textBox4->Text->Trim());
MaxNum=System::Convert::ToInt32(this->textBox5->Text->Trim());
MinNum=System::Convert::ToInt32(this->textBox6->Text->Trim());
//連接數據庫
OleDbConnection^ MyConnection = gcnew OleDbConnection(″Provider=Microsoft.Jet.OLEDB.4.0;Data Source=″+Application::StartupPath+″\Lib.mdb″);
寶玉爹喜歡坐一把木質靠背椅,這椅子很沉,墨黑墨黑的,后面的靠背呈弧形,上面雕了花,還有獸物什么的,據說是他祖上留下來的,人稱太師椅。可惜的是,文化大革命的時候,一夜間當上了“全無敵”戰斗兵團司令的二狗伢,說那是四舊,封、資、修,派了兩個打手,強行將椅子搶走,砸爛,燒了,那是后話。
MyConnection->Open();
//組織數據庫查詢字符串
String^ MyUpStr=″UPDATE drugs Set drugs_name_CH=′″+this->textBox2->Text->Trim()+″′,drugs_name_EN=′″+this->textBox3->Text->Trim()+″′″;
MyUpStr+=″,Current_number=″+ CurrentNum+″ ,Max_number=″+ MaxNum+″, Min_number=″+ MinNum;
MyUpStr+=″,Mylevel=′″+this->textBox7->Text+″′,state=′″+this->textBox8->Text+″′,storage_where=′″+this->textBox9->Text+″′″;
MyUpStr+=″,Unit=′″+this->textBox10->Text+″′,Others=′″+this->richTextBox1->Text+″′″;
MyUpStr+=″ where drugs_code=′″+this->textBox1->Text->Trim()+″′″;
OleDbCommand^ MyUpdataCom=gcnew OleDbCommand(MyUpStr,MyConnection);
MyUpdataCom->ExecuteNonQuery();
MessageBox::Show(″數據修改成功!″,″信息提示″,MessageBoxButtons::OK,MessageBoxIcon::Information);
//更新數據庫數據
OleDbCommand^ MyCommand1 = gcnew OleDbCommand(″SELECT * FROM drugs″,MyConnection);
OleDbDataAdapter^ MyAda = gcnew OleDbDataAdapter(MyCommand1->CommandText,MyConnection );
DataSet^ MyDS = gcnew DataSet();
MyAda->Fill(MyDS);
dataGridView1->DataSource = MyDS->Tables[0]->DefaultView;
for(int i=0;i<10;i++)
dataGridView1->Columns[i]->Width=70;
dataGridView1->Columns[0]->HeaderText=″編號″;
dataGridView1->Columns[1]->HeaderText=″中文名″;
dataGridView1->Columns[2]->HeaderText=″英文名″;
dataGridView1->Columns[3]->HeaderText=″庫存″;
dataGridView1->Columns[4]->HeaderText=″最大庫存″;
dataGridView1->Columns[5]->HeaderText=″最小庫存″;
dataGridView1->Columns[6]->HeaderText=″級別″;
dataGridView1->Columns[7]->HeaderText=″狀態″;
dataGridView1->Columns[8]->HeaderText=″存放位置″;
dataGridView1->Columns[9]->HeaderText=″單位″;
dataGridView1->Columns[10]->HeaderText=″備注″;
//數據更新end
//操作日志記錄
logAddC l(″修改藥品信息″);
l.Add();
//處理完畢、關閉數據庫連接
MyConnection->Close();
catch(Exception^ MyEx) //輸出操作異常信息 MessageBox::Show(″數據修改失敗:″+MyEx->Message,″信息提示″,MessageBoxButtons::OK,MessageBoxIcon::Information);
//修改end實驗室管理信息系統的設計和實現,均征求了專業教師和實驗室管理員的意見。目前,該系統已正式投入使用,開放對象是本專業實驗管理員。后期,將根據系統使用者的反饋意見對系統進行完善升級。
加強實驗室資源的管理,尤其是加強大型儀器設備的共享管理,充分發揮其使用效率,是高校教學、科研及社會服務工作的重要保證。實驗室管理信息系統提高了大規模實驗室的管理效率,為實驗室資源共享、科學使用提供了較好的解決方案。
References)
[1] 左鐵鏞.高等學校實驗室建設的作用與思考[J].實驗室研究與探索,2011,30(4):2-6.
[2] 劉青,李華,趙克.基于ASP的開放式實驗管理系統的研究[J].實驗技術與管理,2004,21(5):71-73.
[3] 魏偉,胡瑋.高校實驗教學管理系統的創新與實踐[J].實驗技術與管理,2014,31(11):130-132.
[4] 韓東太,宋正昶,陳寧,等.實驗室面向畢業設計開放[J].實驗室研究與探索,2013,32(1):155-157.
[5] 楊官平.B/S結構的實驗儀器設備管理系統的研究[J].計算機工程與設計,2007,28(21):5238-5240.
[6] 梁瑾,聶瑞華.基于NET的隨機庫存管理信息系統設計與實現[J].計算機工程與應用,2004(17):212-217.
[7] 孫紅敏,沈維政.高校實驗室設備管理系統的設計與開發[J],佳木斯大學學報:自然科學版,2007,25(2):234-238.
[8] 孫霜青.材料腐蝕與防護實驗教學改革[J].科技信息,2012(12):125-126.
[9] 謝雪梅,趙彬彬.高校實驗室管理系統的研究[J].科技信息,2008(35):26-27.
[10] 郭濤,謝琨.高校實驗室建設的探索與實踐[J].實驗室研究與探索,2013,32(9):222-224.
[11] 高俊敏,袁榮煥,劉元元.加強高校實驗儀器設備管理,提高實驗設備利用效率[J].實驗技術與管理,2008,25(9):173-175.
[12] 張立.C#寶典[M].北京:電子工業出版社,2007.
[13] 盧少然,俞守華.高校設備管理決策支持系統的設計與開發[J].實驗技術與管理,2006,23(10):143-146.
Research and realization of management information system of physics and chemistry laboratory
Wang Xiumin, Sun Shuangqing, Li Chunling, Lu Xiaoqing, Hu Songqing
(College of Science, China University of Petroleum, Qingdao 266580, China)
To meet the needs of scientific management of material physics and chemistry laboratory, a laboratory management information system was designed using the C# language, the Microsoft Visual Studio software development tools and the Microsoft Access database technology. There are five different modules in this system, including user management,medicine inventory management, instruments and equipment management, laboratory consumables inventory and inventory balance early warning. After the trial, the system runs stably and can ensure the efficient operation of the laboratory.
management information system; laboratory management; C# language; database
2014- 12- 25
山東省自然科學基金項目(ZR2014EL003);中國石油大學(華東)教學實驗技術改革類項目(SY-B201403;SY-B201215)
王秀民(1976—),男,山東壽光,碩士,實驗師,從事實驗室管理工作.
E-mail:wangxiumin@upc.edu.cn
TG311
B
1002-4956(2015)8- 0134- 03