吳開霞 陳雪
摘要摘要:免疫分析儀是臨床免疫檢驗學不可或缺的檢測設備,實時監控免疫分析儀使用狀態對提高產品質量非常重要。免疫分析儀作為獨立的系統,在運行中產生大量的系統日志、樣本數據、校準數據、質控數據。設計了一款質控網站,收集存儲這些信息,對這些數據進行處理、統計、分析,從機器日志信息中提取機器的錯誤代碼,統計錯誤代碼按時間、機器的分布,統計出樣本使用量隨時間的分布,從質控校準數據中統計不同項目試劑批次的質控校準結果,為查找設計缺陷和質量問題,制定生產銷售策略提供依據。
關鍵詞關鍵詞:免疫分析儀;阿里云;AngularJS;MongoDB;數據庫
DOIDOI:10.11907/rjdk.171104
中圖分類號:TP319
文獻標識碼:A文章編號文章編號:16727800(2017)005010303
0引言
在軟件開發中,日志系統[1]是一個基礎組件,應用十分廣泛。免疫分析儀系統軟件運行過程中會產生系統日志,包含機器執行的指令、用戶操作的步驟、機器定標信息、樣本信息、運行指令的錯誤代碼等,這些數據存儲在本地,無法使用和分析,儀器出現問題,廠家只能派售后工程師現場維修,整個過程周期長、反應慢。因此,對這些數據的存儲、分析、統計對儀器生產廠家有著非常大的意義。錯誤代碼的統計結果可以發給研發部門優化產品設計,給售后部門作為儀器質量監控,用量統計提供給市場部門做市場分析。
免疫分析儀質控系統搭建在阿里云服務器上,后端使用MongoDB 和Mysql 協同備份方案[2],前端使用最流行的AngularJS框架[3]。本文從需求分析、技術結構、數據庫設計等方面闡述了免疫分析儀系統設計過程。
1需求分析
1.1用戶需求
系統有用戶登陸界面、功能列表、裝機信息錄入界面、日志查詢界面、質控校準查詢界面、質控校準統計結果查詢界面、錯誤信息統計查詢界面等。
1.2配套軟件和數據需求
免疫分析儀質控網站產生的日志數據文件分為qualityLog.txt、qualitiSample.txt、qualityControl.txt 、qualityCailibration.txt 四類文件。 qualityLog文件記錄了儀器運行時的指令名稱、指令完成時間、指令錯誤代碼。日志信息用結構語言描述[4];qualitiSample記錄了免疫分析儀的樣本使用信息,包括樣本時間、樣本容器、樣本項目、試劑批號、樣本結果、樣本錯誤代碼;qualityControl記錄了免疫分析儀的質控結果,包括質控時間、質控項目、質控品批號、質控錯誤代碼;qualityCailibration記錄了免疫分析儀的校準結果,包括校準時間、校準品批號、校準錯誤碼。質控系統搭建在阿里云服務器端。免疫分析儀系統軟件將這4份文件分裝成小包,通過自動適配3G/4G 網絡的DTU發送到服務器端。
1.3數據存儲需求
存儲機器每天運行產生的基礎數據qualityLog、qualitySample、qualityControl、qualityCailibration等,從基礎數據統計出有價值的信息。數據存儲要安全、穩定,數據處理要迅速流暢。
使用Mysql存儲,對基礎數據預處理,從日志信息中提取錯誤代碼,樣本信息中提取樣本使用量,分析結果采用MongoDB存儲。MongoDB集合中數據是“鍵-值”對格式,因此日志數據也轉換為“鍵-值”對的格式。
1.4系統功能需求
Machine 表記錄裝機信息,有增刪改查篩選功能。Log表存儲日志信息,可以按時間、machine id查詢;樣本信息表存儲qualitiSample.txt 信息,可以按時間、machine id查詢;質控表存儲qualityControl.txt,可以按時間machine id查詢;校準表存儲QualityCailibration.txt, 可以按時間machine id查詢。
按照錯誤代碼、時間、machine id統計錯誤信息;按照項目、時間、machine id統計樣本使用數量;按照時間、省份統計試劑使用數量;按照項目、時間、machine id結果分布統計質控結果;按照項目、時間、machine id結果分布統計校準結果。
2關鍵技術分析
2.1Web前端使用AngularJS框架
AngularJS[5] 是一個為動態Web應用設計的結構框架,使用HTML作為模板語言,通過擴展HTML的語法,能更清楚、簡潔地構建應用組件。它的創新點在于利用數據綁定和依賴注入,不用再寫大量代碼。這些都通過瀏覽器端的Javascript實現,這也使得它能夠完美地和任何服務器端技術結合。AngularJS特點如下:
(1)數據的雙向綁定。綁定時其中之一發生更改,另一方會隨之變化,但不用寫任何代碼。
(2)依賴注入。將后端語言的設計模式賦予前端代碼,意味著前端代碼可以提高重用性和靈活性,未來的模式可能將大量操作放在客戶端,服務端只提供數據來源和其它客戶端無法完成的操作。
(3)代碼模塊化。每個模塊的代碼獨立擁有自己的作用域、model、controller等。
(4)強大的directive可以將很多功能封裝成HTML的tag、屬性或者注釋等,這大大美化了HTML結構,增強了可閱讀性。
2.2MongoDB 和Mysql 協同備份方案
每臺機器產生的數據時刻都在增加,為了緩解存儲壓力,提高數據檢索效率,采用非結構化數據庫MongoDB 和結構化數據褲Mysql協同備份的方案,用Mysql 存儲裝機信息、日志信息、檢測的樣本信息、試劑定標信息、機器質控信息等基礎數據,用MongoDB存儲樣本統計、項目統計、質控統計、校準統計。
3系統設計與實現
3.1系統功能設計
本系統的核心功能就是存儲機器的基礎數據,統計分析這些基礎數據,功能展示如圖1所示。
由于文章篇幅有限,本文只舉例說明統計功能的實現。基礎數據部分只展現裝機信息表、日志信息、質控信息。預處理部分只針對日志信息的預處理,數據統計部分只展現用量統計和校準統計
3.2前端框架設計
前端框架開發必須使用的庫有:angularjs1.2.13庫、bootstrap3.3.5庫、css庫、jquery庫。js 代碼設計:將通用指令寫到direction.js, 將同樣服務寫入service.js,將路由控制寫入route.js,所有js代碼在index.html中加載。
3.3系統流程設計
系統分為登陸模塊、功能導航模塊、儀器注冊功能模塊、log查詢模塊、樣本查詢模塊、質控查詢模塊、校準查詢模塊、試劑用量統計、錯誤統計、質控統計、校準統計等。
使用用戶名密碼登陸系統,登陸后展現給用戶的是功能導航模塊。根據功能導航鏈接,分別進入不同的功能模塊。比如點擊進入儀器注冊模塊,填寫儀器注冊信息,可對注冊的信息進行查詢、修改、刪除。又比如,點擊進入校準統計模塊,輸入時間、項目批號、machine id ,點擊查詢,即可展現該機器的校準結果隨時間的分布圖。
其它模塊工作流程基本類似。
3.4數據庫設計
Mysql總共設計了7張表用來存儲基礎數據。Machine 表用于記錄裝機信息;log表用于存放客戶端發送來的qualityLog.txt數據;sample表用于存放qualitiSample.txt數據;Calibration表用于存放QualityCailibration.txt數據;qualitycontrol表用于存放QualityCailibration.txt數據;User表用于存放系統用戶信息(見表1)。
MongoDB 旨在為Web應用提供可擴展的高性能數據存儲解決方案[6]。MongoDB 將數據存儲為一個文檔,數據結構由鍵值(key→value)對組成。MongoDB 文檔類似于 JSON 對象。字段值可以包含其它文檔、數組及文檔數組。Mongo支持豐富的查詢表達式。查詢指令使用JSON形式標記,可輕易查詢文檔中內嵌的對象及數組。
MongoDB總共設計4張表:①LogStatistic StatusAction 對日志信息做預處理,通過正則匹配從日志中提取用量、錯誤代碼;②ErrorCodeStatisticCount用于存儲統計出來的錯誤信息;③MachineStatisticCount 用于統計機器使用時間、區域;④MachineUsageCount統計機器用戶量、成功率和失敗率(見表2)。
3.5系統實現
軟件的運行結果:進入項目統計界面,輸入測試機器的機器名:測試機,機器的ID號:23,測試的項目:PCT,點擊Count, 圖2為23號機器PCT項目本周內的使用量分布。
校準統計。進入校準統計界面,輸入統計的起始截至時間,輸入統計的試劑批號,點擊chart即可得到結果。圖3展現了所有注冊機器的001306151521(PCT)校準結果分布。
4結語
本文從需求分析、業務流程、數據設計、核心技術等方面,對免疫分析儀質控系統作了詳細的分析和研究。該系統可以分析客戶行為、輔助制定營銷策略,查找設計缺陷和質量問題。但系統功能還不夠完善,還有很多有價值的信息沒有挖掘出來,后期會繼續開展相關研究。
參考文獻參考文獻:
[1]任凱, 鄧武, 俞琰. 基于大數據技術的網絡日志分析系統研究[J]. 現代電子技術, 2016(2):3941.
[2]YOON J, JUNG D W, KANG C H, et al. Forensic investigation framework for the document store NoSQL DBMS: MongoDB as a case study[J]. Digital Investigation,2016(6):122125.
[3]任樂樂. 基于AngularJS框架的送簽系統設計和實現 [D]: 上海:東華大學,2016.
[4]張之宣. 云計算環境下實時日志分析系統的設計與實現 [D].杭州:浙江大學,2016.
[5]FREEMAN A. Your first angularjs App: apress[EB/OL]. http://www.doc88.com/p2456832438574.html.
[6]MIRANSKYY A, HAMOULHADJ A, CIALINI E, et al. Operationallog analysis for big data systems: challenges and solutions[J]. IEEE Software. 2016,33(2):151156.
責任編輯(責任編輯:杜能鋼)