醫(yī)院信息系統(tǒng)二次開發(fā)的思考
提供者:佚名
發(fā)布時間:2009/10/22 12:00
二次開發(fā)是指在原有系統(tǒng)的基礎上根據客戶需求所進行的修改或再開發(fā),以使得軟件更符合實際。在醫(yī)療信息系統(tǒng)(hospitalinformationsystem,HIS)建設中,醫(yī)院和軟件供應商面臨的最大困擾莫過于軟件的修改問題。醫(yī)院的差異化競爭決定了每個醫(yī)院的流程會越來越不一樣,因此需求也不盡相同。用戶在使用過程中對軟件系統(tǒng)理解逐漸加深,也會不斷提出優(yōu)化流程的要求。此外還有大量不合理但又必須滿足的修改要求,對這些需求的適應能力是考驗HIS技術水平的重要指標。
二次開發(fā)是軟件開發(fā)的生命周期所致,軟件維護是軟件生命周期中持續(xù)時間最長的階段。軟件的維護包括糾錯性維護和改進性維護兩個方面。在軟件開發(fā)完成并投入使用后,由于多方面的原因,軟件不能繼續(xù)適應用戶的要求。要延續(xù)軟件的使用壽命,就必須對軟件進行維護。
二次開發(fā)是用戶需要深化的必然要求[1]。用戶的需求會隨著應用的深入而不斷擴展。醫(yī)院信息化不像蓋大樓、購設備,需要在應用過程中不斷地動態(tài)調整。尤其是醫(yī)院業(yè)務流程更會隨著國家醫(yī)療政策的變化而發(fā)生變化,這需要我們在原有的醫(yī)院信息系統(tǒng)基礎上不斷地進行二次開發(fā)和必要的系統(tǒng)改造,做好系統(tǒng)的適應性維護和完善性維護,以使醫(yī)院管理信息系統(tǒng)隨著醫(yī)院的發(fā)展而發(fā)展,延長醫(yī)院信息系統(tǒng)的穩(wěn)定期和適用期,避免將管理信息系統(tǒng)推倒重來的惡果。軟件設計的不足日益顯現,任何軟件的設計都無法完全預料到未來的應用需求,因此軟件系統(tǒng)的二次開發(fā)是不可避免的。
1 二次開發(fā)的方式
1.1   依托信息系統(tǒng)的開發(fā)商進行系統(tǒng)的二次開發(fā),完成醫(yī)院的需求。牢固樹立”購買軟件就是購買服務”的觀念,在軟件購買期間對軟件開發(fā)商的能力、信譽、響應時間以及生存能力等進行調查,確保能有較長的合作周期。如有必要可以在購買合同中就售后及二次開發(fā)進行規(guī)定,避免不必要的麻煩。軟件是立足于自我開發(fā),還是全面買進,二者都被證明是不成功的選擇。在醫(yī)院信息系統(tǒng)應用初期,由于觀念影響,大多數醫(yī)院奉行自我開發(fā),由于醫(yī)院計算機技術力量薄弱,大多數系統(tǒng)是低水平重復,沒有形成一個象樣的綜合信息系統(tǒng),致使衛(wèi)生行業(yè)計算機應用發(fā)展緩慢;另一方面由于醫(yī)院間的管理差異,各有特色,很難有能適合各種醫(yī)院的通用軟件。實踐證明與社會上的專業(yè)力量合作,引進通用軟件,結合自身特點加以二次開發(fā)才是較為正確的選擇。
醫(yī)院應慎重選擇擬合作的計算機軟件開發(fā)公司,應注重合作公司的技術力量、開發(fā)經驗、維護能力及公司的專業(yè)發(fā)展能力,以及是否有成功的實例、是否有自主版權的商品化的HIS軟件、是否有繼續(xù)開發(fā)升級的能力。醫(yī)院選擇的合作單位最好是與醫(yī)院在同一地區(qū),或在該地區(qū)有響應機構的公司。應由醫(yī)院與合作單位共同研究訂出系統(tǒng)的目標、構造、平臺的選擇及分步實施的方案,再談判價格問題。
因應用系統(tǒng)有一個試用期和維護期,且信息系統(tǒng)是逐步擴大、增長的,管理上提出的要求也是變化的,合作公司需到醫(yī)院進行實地調研,醫(yī)院人員應自始至終參與工程的規(guī)劃、安裝、調試,這對日后醫(yī)院HIS維護開發(fā)有極大好處。
1.2 依靠醫(yī)院自身信息人才自行進行二次開發(fā),此方式適合于有比較長時間的信息系統(tǒng)應用經驗和有一支長期致力于醫(yī)院信息系統(tǒng)維護的富有開發(fā)經驗的信息隊伍的醫(yī)院。
2 二次開發(fā)的做法
常見二次開發(fā)主要有3種做法,修改源代碼,采用中間件,利用數據庫表結構,實現數據的共享。
2.1 修改源程序,能夠擁有系統(tǒng)的源代碼自然是許多程序開發(fā)人員夢寐以求的事情,但是由于我們目前許多程序員在程序編寫上的不規(guī)范,造成讀他人的程序是一個相當困難和頭痛的事情。在源程序上修改的優(yōu)點是能夠完全無縫連接,缺點為若源代碼編寫不規(guī)范,對源代碼的理解和再編寫工作量大,且不容易完成,而且一般的醫(yī)院也無法得到系統(tǒng)的源代碼。
2.2 采用數據庫中間件技術。
2.2.1 中間件是一種獨立的系統(tǒng)軟件或服務程序,分布式應用軟件借助這種軟件在不同的技術之間共享資源[1]。中間件位于客戶機”服務器的操作系統(tǒng)之上,管理計算機資源和網絡通訊。目前對中間件的應用是數據庫開發(fā)的熱點。
2.2.2 數據庫中間件方法的優(yōu)點:移植性好,中間件封裝了各種與平臺有關的細節(jié),使更換操作系統(tǒng)和通訊協議等底層的配置無需改變應用程序代碼。集成方便,中間件可以非常容易地集成到應用開發(fā)環(huán)境中,無需大的代碼改動。易于擴充,中間件的局部改進和整體升級只要保持對外接口不變就不會影響到系統(tǒng)的其他部分,在功能上對應用程序實現了透明性;使用簡單,中間件對各種數據源使用統(tǒng)一的訪問方法,使用戶不必關心數據庫選擇等操作。
2.2.3 數據庫中間件方法的缺點:數據庫操作比較集中,統(tǒng)一由中間件負責數據間的同步和點對點的通訊,對中間件的可靠性要求高,一旦中間件出現問題,所有的數據連接將斷掉,導致數據庫癱瘓,這種方法不適合高性能的應用處理。
2.3 利用數據庫表結構的方式實現數據的共享,此方法適合于對系統(tǒng)非常熟悉,包括其表結構和數據流程、業(yè)務流程,能夠準確地提取出需要的數據,并將結果數據回填,方便原有系統(tǒng)的應用來調用。此方法最為簡單。缺點:由于無法嵌套入原有的程序中,客戶在使用上存在不方便。若對數據結構和流程不了解,會出現錯誤的結果,影響數據的使用。
3 二次開發(fā)應注意的問題
3.1 未雨綢繆,在簽軟件購買合同的時候,將相關文檔的提供寫入合同中,能提供程序源代碼作為合同重要款項,實施和驗收時,保存好相關技術文檔,為二次開發(fā)打好基礎。開發(fā)文檔的規(guī)范性書寫和開發(fā)軟件的測試保存,代碼編制遵照<程序編制規(guī)范.doc>標準[2]。主要有變量命名規(guī)范、窗口和窗口相關Datawindow命名規(guī)范、函數的命名規(guī)范、數據窗口命名規(guī)范、類的命名規(guī)范、界面設計風格規(guī)范、庫(PBL)命名規(guī)范、字段名通用命名規(guī)范。定期整理需求和相關代碼鼓勵程序員建設客戶化支持庫,部門定期統(tǒng)一歸檔整理最終成為標準產品。充分利用好程序注釋,增加程序的可讀性。
3.2 在以自力更生為主進行合作開發(fā)的同時建立定型軟件集中保存管理制度,避免因人員的流動導致軟件維護和開發(fā)的中斷。
3.3 應以不改變軟件主體結構為前提,在保證現有應用的前提下做好二次開發(fā)。
3.4 二次開發(fā)應在充分理解和消化現有系統(tǒng)的基礎上完成,而不是盲目開發(fā)造成項目沒有上成又耗費了人力物力。