劉麗華,石彥芳
(河北軟件職業技術學院,河北 保定 071000)
隨著計算機技術和網絡技術的快速發展,醫院實施管理信息系統已成為必然。傳統的醫院管理都是依靠手工操作,耗費大量的人力資源來記錄和查詢信息,而且大量紙質資料需要大型資料庫來保存,信息的查詢耗時又耗力,很不方便。醫院管理信息系統的建立是醫療現代化的重要標志,現代化的醫院管理系統采用高效的信息技術和管理理念,把人員從繁重瑣事中解脫出來,把醫院的各種資料分門別類的存儲起來,以便在需要的時候能夠及時有效地查詢所需信息,讓病人得到及時的治療,也促進了信息共享和管理水平的提高。
J2EE(Java 2 platform enterprise edition)是由Sun公司提出的多層、分布式、基于組件的企業級應用模型標準。J2EE是為支持Java語言服務器端部署而提供的一種與平臺無關的、可移植的、多用戶的、安全和標準的企業級平臺。隨著技術的不斷成熟,現己逐漸成為企業應用開發的主流設計之一。
(1)Servlet
Servlet是可部署在Web服務器上的Java程序,它提供了用來擴展和增強Web服務器功能的技術,以及一種與協議和平臺無關的、可移植的并為Web客戶端和服務器傳遞動態內容的方法。它從客戶端瀏覽器接收請求,動態產生應答,然后發送到客戶端瀏覽器。
(2)JSP
Servlet通常嵌入表現為HTML頁面的表示邏輯和為完成某項任務而操作數據的業務邏輯中,任何部分代碼的變動將導致程序的重新部署。Java Server Page(JSP)和 Servlet功能非常相似,服務器端的JSP腳本第一次接收到客戶端的請求是先編譯形成一個相應的Servlet類,然后加載到服務器,處理客戶端請求。兩者間最大的不同是,JSP不是純Java代碼,而是一種腳本語言,JSP更注重表示邏輯,JSP頁面可以包含HTML、Java代碼及JavaBean組件。JSP頁面可通過使用自定義標簽、表達式語言、Struts標簽及Tiles模板等來消除Java代碼,實現頁面布局管理,提高了頁面的可重用性、可擴展性的可維護性。
MVC 是“Model-View-Controller”的縮寫,即模型-視圖-控制器。它的模式是Xerox PARC在20世紀80年代為編程語言Smalltalk—80設計的一種軟件設計模式。MVC把應用程序分為3個部分:模型、視圖和控制器,它們分別擔負不同的任務,圖1顯示了這幾個模塊各自的功能以及它們的相互關系。

圖1 MVC模型
如圖1所示,視圖是客戶與服務器端交互的界面。通過視圖可以向用戶顯示用戶所請求的數據,并接受用戶的輸入,但是它并不進行任何實際的業務處理。模型是應用程序的主題,是用來處理客戶端請求數據的業務邏輯模塊,一個模型可以為多個視圖提供數據,也可以被多個視圖重用。控制器接收用戶的輸入并調用相應的模型和視圖去完成用戶的請求。當用戶提交Web頁面發送HTML請求時,控制器接收用戶請求并決定調用哪個相應的模型組件去處理用戶請求,根據處理結果調用相應的視圖組件來顯示模型返回的數據。
Struts是目前JavaWeb開發中比較成熟的一種框架,它通過把 Servlet、JSP、JavaBean、自定義標簽和信息資源整合到一個統一的框架中,為Web開發提供了具有高可配置性的MVC開發模式。本文在MVC模式的指導下設計并實現了一個基于Struts框架的醫院管理系統。實踐表明,采用這種方法開發應用軟件能擴大軟件代碼的復用率,提高軟件代碼的復用質量和開發效率。
醫院管理信息系統的有效運行,將提高醫院各項工作的效率和質量,減少各類事務性工作,使他們騰出更多的精力和時間來服務于病人,改善經營管理,保證病人和醫院的經濟利益,并為醫院創造經濟效益。
本系統采用當前比較流行的基于J2EE的MVC設計模式,圖2給出了本系統采用的B/S三層架構。

圖2 醫院管理信息系統三層架構圖
從圖2中可看出,系統架構以Web瀏覽器作為客戶端,由Web服務器容器的控制器Action-Servlet接收客戶端請求,根據請求調用相應的模型類處理請求并選擇合適的Jsp視圖作出響應,數據庫則采用傳統的大型企業級數據庫Oracle作為數據庫服務器。處理過程如下:客戶端(即Web瀏覽器)向Web服務器提出服務請求,Web服務器接收到客戶請求后把客戶請求傳遞給Web容器中的核心控制器ActionServlet,ActionServelt查詢Struts配置文件,根據配置文件選擇適當的Action類處理客戶端請求,驗證用戶提交信息,并選擇相應的視圖文件向客戶做出應答或選擇適當的模型類處理數據,根據模型類數據處理結果選擇所對應的視圖文件顯示在客戶端。
通過系統分析,本系統的用戶有前臺操作人員、醫生、病人、管理員、高級管理人員等。我們將醫院管理信息系統分解成若干個子系統,分別是住院管理、門診管理、藥品管理、主數據維護、高級管理人員查詢等子系統,設計過程中充分考慮了醫院特殊的業務管理方式,如急診業務、醫保病人業務、內部職工業務等。各模塊的功能具體如下:
(1)住院管理子系統:實現病人的入院和出院管理、病人住院期間電子病案、醫生診療、病房和床位管理、查詢、報表等功能。
(2)門診管理子系統:實現門診病人的掛號、醫生診療處方管理、生成賬單、退藥管理、查詢、報表等功能。
(3)藥品管理子系統:實現藥品庫房管理、藥品維護、查詢、報表、銷量統計等。
(4)主數據維護子系統包括:提供醫務人員數據、病人列表、化驗室服務列表、病房列表管理等功能。
(5)高級管理層查詢子系統:給高級管理人員提供各部門信息報告。
數據庫在一個醫院管理系統中占有非常重要的地位,數據庫結構設計的好壞將直接對應用系統的效率以及實現產生影響。合理的數據庫結構設計可以提高數據存儲的效率,保證數據的完整和一致。醫院管理信息系統所需要收集的數據范圍廣、種類多、數量大,系統數據庫的海量存儲量和安全問題是極其重要的。因此,本系統采用Ora-cle數據庫系統解決方案實現面向主題的、集成的、穩定的、隨時間變化的數據倉庫,使用數據挖掘技術支持決策分析,同時完善數據庫的雙機備份及恢復機制,全天候安全保障,運行可靠[4]。
數據庫表設計遵循E-R圖和3NF(范式)要求,對數據庫中關鍵字以及數據表之間的關系仔細斟酌,保證數據庫結構化、規范化和標準化,盡量實現數據的獨立性和可維護性,充分考慮共享數據資源的正確性和一致性,建立用戶權限設計和雙機熱備份機制以保證數據的安全性。
根據以上原則,本系統設計了系統用戶信息表、醫護人員信息表、病人信息表、病人結賬表、醫院檢驗表、檢驗結果表、門診病人拿藥信息表、藥品信息表、病床信息表、病房信息表等10個表用來存儲系統數據。
本系統視圖組件的實現采用JSP頁面。在JSP頁面里,可以加入JavaScript代碼用于頁面驗證,從而節省服務器資源并提高響應時間。另外,在JSP頁面里大量使用自定義標記符、JSTL和表達式語言,盡量不使用腳本語言,簡化了JSP頁面,增加了頁面的可讀性。在控制器Action類處理用戶提交的request請求之前,使用ActionForm類進行數據檢索、轉換及數據驗證,增強了軟件的靈活性。例如住院管理的病人注冊管理頁面add_Patie nt.jsp,提交請求/admin/add_Patient.do,ActionServlet接受請求,首先將用戶提交的病人數據給AddPatientForm進行驗證,如果有錯,返回頁面,如果驗證沒錯,提交給AddPatientAction處理數據。
模型組件是系統中最重要的一部分,它包含了業務實體和業務規則,負責訪問和更新持久化數據,本系統的模型組件使用JavaBean類和服務組件實現,實現了 User、MedicalStaff、Patient、Medicine、LabService、LabResult、Wards、Beds、Report、Bill等幾個JavaBean域對象類和相應的數據表相對應,還有各個Bean類相對應的DAO類用來封裝JDBC API技術實現數據庫的訪問,使用XXXService組件類實現業務邏輯,使業務邏輯和數據訪問邏輯分離,有利于應用程序的維護。
控制器由Struts框架的核心控制器Action-Servlet類和自定義的Action類實現,ActionServlet接收所有的HTTP請求,根據配置文件struts-config.xml的配置信息,檢查是否有相關聯的表單,如果有,則在指定作用域內創建或定位相應的表單,使用請求參數的數據填充表單Bean,調用驗證方法驗證請求信息,驗證沒有錯誤,把請求分發給相應的Action,調用Action對象的execute方法處理用戶請求。
(1)RFID技術與醫院綜合管理系統的集成應用。通過RFID技術可以進行患者的身份識別、醫院工作人員的身份識別、藥品識別以及醫療設備識別等,系統應用RFID技術,能夠高效地進行藥品、資產、患者和醫院工作人員的管理。
(2)觸摸屏查詢軟件的應用。配置觸摸屏等信息查詢設備,讓客戶及時方便地了解醫院科室分布情況,普通病人和醫保病人等就診流程,專家介紹、專家就診時間,價格查詢,醫院相關規定等,提高了系統的查詢效率,有利于醫務公開。
(3)提供與銀行連接的財務收費系統連接以支持病人的信用卡劃卡消費。
系統采用基于J2EE平臺的MVC設計思想,按照現代醫院管理模式進行設計,覆蓋了醫院醫療診治各環節和醫院管理各主要方面,使系統具有很好的開放性和可擴展性,能夠高效率地適應各類醫院管理不斷變化的需求。醫院對醫療信息管理以病人為中心,實現了醫院管理的人性化、數字化、智能化、管理規范化的目標,醫保管理信息接口可以使醫保病人的費用數據和診療信息直接傳遞到當地的勞動保障部門。而且,基于Web界面的客戶端操作方便,查詢、統計信息快捷,極大地提高了工作效率。
[1]NIIT公司.使用Servlet和JSP技術開發Web組件(NIIT公司培訓教材)[Z].上海:NIIT公司,2009.
[2]閆術卓,楊強.struts 2技術詳解[M].北京:電子工業出版社,2008.
[3]何菊.基于UML的醫院信息系統建模[J].醫學信息,2005,18(9):1047-1049.
[4]蘇強,姚曉耘,厲譞.醫院客戶關系管理模型及系統設計[J].上海交通大學學報,2006,40(8):1422-1427.
[5]彭晏飛,楊德權.基于MVC+Struts的H I S設計與實現[J].計算機與現代化,2008(2):113-115.
[5]劉麗華,李丹.基于J2EE平臺的客戶關系管理系統設計[J].中國商貿,2010(23).