任凱 江蘇省腫瘤醫(yī)院 (南京 210009)
醫(yī)院信息系統(tǒng)(HIS,Hospital Information System)自上世紀90年代末開始正式在國內(nèi)各大醫(yī)院啟用,至今已摸索運行了十多年。我院于2000年3月經(jīng)過招標,選擇一家當時公司規(guī)模較大、用戶較多的專業(yè)開發(fā)HIS的廠商,2007年由于該公司資產(chǎn)重組后經(jīng)營理念發(fā)生變化,對軟件開發(fā)部門投入逐步減少,開發(fā)人員相繼離職,幾個核心軟件工程師另立門戶,成立了新的軟件公司,導致一些用戶陸續(xù)更換HIS。
為此,醫(yī)院相關(guān)部門對是否更換HIS進行調(diào)研和論證。經(jīng)過反復討論,大家認為,我院是一所三級甲等腫瘤??漆t(yī)院,復查病人比例較高,如果將信息系統(tǒng)推倒重來,七年來的數(shù)據(jù)無法導入新系統(tǒng),將會給醫(yī)院造成較大的信息資源浪費;同時,系統(tǒng)運行正常,各科室的使用人員已熟練掌握了現(xiàn)有系統(tǒng)的操作,如果更換新軟件,從購買到培訓再到使用將投入大量人才物力和時間,將給醫(yī)院造成較大的經(jīng)濟損失。最后決定不換HIS,與新公司簽訂維保協(xié)議,走引進吸收、自主創(chuàng)新之路。
如何保持軟件的生命力,是軟件工程界經(jīng)常 思考的問題。20世紀90年代美國科學家將軟件再工程理論引入軟件工程方法學,所謂軟件再工程是對一次工程后的成品軟件進行再次開發(fā),它面對的是既存軟件,即從既存軟件開發(fā)出新軟件的過程。
軟件再工程是對既存對象系統(tǒng)進行調(diào)查,并將其重構(gòu)為新形式代碼的開發(fā)過程,最大限度地重用既存系統(tǒng)的各種資源是再工程的最重要特點之一。再工程主要分三個階段,即再分析、再編碼和再測試。
再分析階段的主要任務(wù)是對既存系統(tǒng)的規(guī)模、體系結(jié)構(gòu)、外部功能、內(nèi)部算法等進行調(diào)查分析,這一階段最直接的目的就是調(diào)查和預測工程涉及的范圍。再工程分析者最終提出的重用范圍和重用策略將成為再工程成敗的關(guān)鍵因素。
根據(jù)再分析階段做成再工程設(shè)計書,再編碼過程將在系統(tǒng)整體再分析基礎(chǔ)上對代碼做進一步分析,產(chǎn)生編碼設(shè)計書。
如果能夠重用原有的測試用例及運行結(jié)果,將能大大降低再工程成本。對于重用部分,特別是可重用的局部系統(tǒng),可以免測試,這也是重用技術(shù)被高度評價的關(guān)鍵原因之一。
隨著醫(yī)院對信息系統(tǒng)的依賴和需求越來越高,從2008年開始,我院著手對現(xiàn)有的信息系統(tǒng)進行升級改造。原HIS系統(tǒng)是由Visual FoxPro(簡稱VFP)開發(fā),VFP是桌面型數(shù)據(jù)庫管理開發(fā)工具,控件貧乏簡單,因此程序的界面相當單調(diào),不夠美觀,另外,VFP無法勝任系統(tǒng)級開發(fā)與大型數(shù)據(jù)庫開發(fā)的能力。現(xiàn)在,VFP屬于非主流軟件開發(fā)工具,熟練掌握該工具的工程師越來越少,為今后的系統(tǒng)維護工作帶來隱患。
通過調(diào)研,我們選擇了目前使用較廣泛的開發(fā)工具——C#,它是一種精確、簡單、類型安全、面向?qū)ο蟮恼Z言,C#基于C語言和Microsoft.NET平臺開發(fā),它使得程序員可以快速地編寫各種基于Microsoft.NET平臺的應(yīng)用程序,主要應(yīng)用在網(wǎng)絡(luò)編程、數(shù)據(jù)庫和窗體編程等領(lǐng)域。
表1. 醫(yī)院信息系統(tǒng)再工程項目各階段的重用率
我們將既存HIS系統(tǒng)劃分成界面、邏輯、數(shù)據(jù)三個層次,每個層次的再工程采用不同的策略以實現(xiàn)最大程度重用的重構(gòu)方法。再工程項目各階段的重用率見表1。
重新開發(fā)界面看上去沒有重用既存界面代碼,其實不然,新軟件的界面設(shè)計完全重用了原來的模式,只是做了一些優(yōu)化,不僅節(jié)省設(shè)計時間,而且操作員可輕易掌握。
通過對邏輯層的分解可以得到可重用和不可重用的兩部分代碼。對可重用部分可直接使用,對于不可重用部分則應(yīng)盡量通過各種封裝技術(shù)按統(tǒng)一標準將其改造成可重用構(gòu)件。
數(shù)據(jù)層的重用率最高的。邏輯和數(shù)據(jù)休戚相關(guān),如果改動數(shù)據(jù)庫,邏輯勢必不能正常運行,對邏輯部分的重用也就無從談起。如果非改不可的話,也要以保證最大限度的重用為原則,做到只增加數(shù)據(jù)表或表字段而不做刪除工作,以保證數(shù)據(jù)的完整性。
四年來,醫(yī)院信息系統(tǒng)的升級改造經(jīng)歷了從無到有、從簡單到復雜、從粗放到精細的過程, 系統(tǒng)模塊不斷完善,見表2、表3。
表2. 系統(tǒng)升級后特征表
表3. 系統(tǒng)模塊升級后情況
醫(yī)院信息系統(tǒng)建設(shè)是一個長期的系統(tǒng)工程,不可能一勞永逸,后期維護工作紛繁復雜,各部門需求永無止境,如果僅靠廠家的力量是不可能實現(xiàn)快捷優(yōu)質(zhì)的技術(shù)服務(wù)、不可能提高各部門對信息科的滿意度。為了保持信息系統(tǒng)可持續(xù)發(fā)展,更好地為臨床一線提供優(yōu)質(zhì)服務(wù),多年來,培養(yǎng)軟件開發(fā)人員成了我院信息科的重點工作之一,此次醫(yī)院信息系統(tǒng)再工程的順利實施,信息科的軟件工程師起到了關(guān)鍵作用。
軟件再工程是在原系統(tǒng)的基礎(chǔ)上再次開發(fā),由于服務(wù)器端數(shù)據(jù)庫基本保持不變,客戶端新舊程序可以并行,完全不影響醫(yī)院正常工作流程;同時,新程序和舊程序的操作局面基本一致,操作人員無須再次培訓即可熟練使用。
每家醫(yī)院都希望擁有一套好用、易用、耐用和高效的信息系統(tǒng),通過與兄弟醫(yī)院信息科的同行交流,了解到真正對HIS使用滿意的非常少,最不滿意的是服務(wù)跟不上,系統(tǒng)修改緩慢,影響信息化進程。因為對HIS不滿意,不少醫(yī)院更換了信息系統(tǒng),省內(nèi)有家醫(yī)院十年間更換了四家HIS廠商,仍然不滿意。可以說,輕易更換信息系統(tǒng)并非上策。
總之,充分利用已有的資源,才是最明智、最經(jīng)濟的做法,但在實際運作時,許多人會被所謂更具創(chuàng)造性的新東西所吸引,而不顧及是否有浪費的行為。實際上,越是龐大、悠久的系統(tǒng),沉積的歷史信息越豐富,越不能淘汰,繼承過去是軟件的立身之本,軟件不應(yīng)像硬件那樣徹底地更新?lián)Q代,而應(yīng)在再工程基礎(chǔ)上系統(tǒng)地不斷完善。
[1]計算機世界2002,918(44):B1-B7