王連根,任慧朋,周 睿
(1. 解放軍第九八醫院信息科 浙江 湖州 313000;2.南京政治學院軍事信息管理系 上海200433)
醫院信息系統是利用電子計算機和通訊設備, 為醫院所屬各部門提供病人診療信息和行政管理信息的收集、存儲、處理、提取和數據交換的能力,并滿足所有授權用戶的功能需求。 醫院的目標、任務和性質決定了醫院信息系統是目前企業級信息系統中最復雜的類型之一。 醫療衛生行業信息化建設起步較早,90 年代初, 隨著網絡技術的日益成熟和醫院管理的迫切需要,于是一些醫院依靠自己的計算機技術人員開始開發本院的信息系統,那時的信息系統主要應用于醫院的收費管理和物資管理方面,以減少漏費、跑費和物資積壓等現象。 隨著醫院信息系統的不斷推廣和信息化步伐的加快,信息系統開發項目日益增加,軟件傳統開發模式下的一些不足問題比較突出,主要表現為:一是開發力量分散,一般1~2 個人負責一個軟件開發項目;二是重復開發項目多,軟件通用性較差,一般重復率可達70%左右;三是沒有統一開發平臺,團隊協作無法展開,導致版本控制與管理困難,開發周期長,開發效益低。 因此,兩年前筆者有一個想法油然而生:為中小型醫院提供一個B/S(Browser/Server)三層架構的智能信息系統通用開發平臺(簡稱醫信通),變得十分迫切。
為了解決傳統開發模式存在的這些問題,改善信息系統的易開發性、易擴充性和易維護性,筆者所在醫院的開發團隊結合長期從事醫院管理與醫院信息系統開發的經驗,對中小型醫院信息系統的共性特點進行分析研究[1],把應用軟件分為設計、編程、測試、發布、維護、服務等6 個環節,對軟件開發中的各類人員、各項技術、各種資源實行一體化管理,設計一個集角色管理、用戶管理、模塊管理、數據表管理等公用模塊為一體,并為二次開發者提供專用模塊管理的醫信通平臺。 通過這個醫信通平臺不僅像是建立了一條現代化的軟件開發生產流水線,而且各類人員可以在同一個醫信通平臺并行工作,只是因角色不同而面對不同的界面和功能,每個角色看似有自己獨立的虛擬軟件環境, 可以各行其事各負其責,使軟件開發管理發生深刻變化,能極大地提高軟件開發與維護的質量、速度和效益。
MVC (Model View Controller), 是模型 (model)-視圖(view)-控制器(controller)的縮寫,這種模式用一種業務邏輯、數據、界面顯示分離的方法組織代碼,將業務邏輯聚集到一個部件里面,而且界面和用戶圍繞數據的交互能被改進,個性化定制而不需要重新編寫業務邏輯[2]。 MVC 開發模式是現階段主流的項目開發模式之一, 可使整個項目的各個層次獨立出來,這樣開發人員和美工人員可以同步開發,也為日后項目的功能擴展與維護提供極大方便。 本文以國產開源的PHP 語言的MVC 框架,實現對醫信通平臺的設計,如圖1 所示。
圖1 MVC 模式架構示意圖Fig. 1 Schema diagram of MVC model
PHP 即 超 文 本 預 處 理 器 ( 英 文 名:Hypertext Preprocessor),是一種通用的公開源代碼的腳本語言,運行于WEB 服務端,具有很強的跨平臺運行、執行速度快、占用資源少的特點。 近年來,由于其強大的表單處理功能和對多種數據庫廣泛支持,逐漸向應用軟件領域擴展,目前絕大多數醫院選擇了Oracle 來支持關鍵應用, 我們正是利用PHP 提供的從Web 充分訪問Oracle 的有力手段, 在醫信通平臺開發中達到PHP 與Oracle 數據庫的完美結合[3]。
PEAR 是PHP 擴 展 與 應 用 庫 (the PHP Extension and Application Repository)的縮寫,它是PHP 面向對象擴展及應用的一個代碼庫,Stig S. Bakken 在1999 年創立了PEAR 項目。對于開發者來說,如果每一次開發PHP 程序,從無到有都要完全靠自己來編寫的話, 雖然可以鍛煉程序編寫能力,但效率太低,成本也太高了。 若一些常用的功能可以用代碼庫的方式來處理,將可以為開發者解決許多困難,因此引用代碼庫的開發方式已經漸漸成為一種趨勢。 PEAR 就像是已經針對你的需求而準備好了預制件,你只要運用創意將它們組合起來就可以了。 我們在PHP 開發醫信通平臺過程中引入PEAR,不僅大幅縮減撰寫程序代碼的工作量和時間,而且用簡單的方法就得到許多強大的動態網頁功能[4]。 例如PEAR其中的一個包PEAR::DB 就很受歡迎, 我們用它編寫出適用于Oracle、MySQL 等腳本,增強了擴展性和靈活性。
平臺的具體開發環境,如表1 所示。
表1 平臺開發環境Tab.1 Environment of platform development
通過醫信通平臺的設計思想和需求分析,平臺根據功能模塊可劃分為公用模塊和專用模塊,公用模塊主要包括角色管理、用戶管理、模塊管理、數據表管理等模塊,專用模塊是指根據業務功能創建的個性化功能模塊。 在開發信息系統時,只要創建不同業務功能的專用模塊,再通過平臺的公用模塊管理確定角色、用戶權限等,對專用模塊實現管理并與公用模塊智能組合,就快速形成不同的信息系統。 平臺主界面設計成一個動態的網頁,導航條主要由公用模塊與專用模塊的欄目菜單組成,用戶通過不同的帳號登錄時,根據該用戶的角色權限生成一個動態網頁: 當用戶有管理權限時,就展現一個管理平臺;登錄用戶沒有管理權限而只有業務功能模塊權限時,就展現一個醫院信息系統界面給用戶。
3.2.1 角色管理
角色管理模塊主要定義角色的操作權限。 單擊“增加角色”,輸入角色名稱,再單擊“權限設置”文本框,選擇相應的權限后增加角色完成。 對已有角色,還可編輯或刪除操作。
3.2.2 用戶管理
用戶管理模塊主要定義用戶的帳號與角色。 增加用戶窗口顯示,如圖2 所示。
3.2.3 模塊管理
模塊管理主要用于根據業務功能增加專用模塊,并定義顯示的菜單欄。 在增加功能模塊窗口,輸入模塊名稱、執行頁面等即增加模塊完成。
3.2.4 數據表管理
根據顯示格式要求,事先定義設置所要查詢表(已建好的Oracle 表)的結構及參數,包括指定表的英文名、中文名,字段的英文名、中文名、寬度,以及默認顯示哪些字段。
圖2 用戶管理界面Fig. 2 Interface of users management
借助于醫信通平臺開發醫院信息系統, 實際上是二次開發者通過創建個性化功能模塊和模塊智能組合而快速形成信息系統的過程。 下面結合《醫院高值耗材管理系統》的入庫管理模塊開發實例,簡要說明開發過程。 系統運行主界面,如圖3 所示。
圖3 系統運行主界面Fig. 3 Main interface of system running
運行模塊管理后,單擊“增加功能模塊”,在增加功能模塊窗口, 錄入模塊名稱 “入庫管理”、 執行頁面“mtrl_import.php”等。保存后增加模塊完成[5]。根據需要可任意定義下級模塊及菜單的級別深度。 高值耗材入庫單錄入后,界面顯示如圖4 所示。
圖4 高值耗材入庫單顯示界面Fig. 4 Interface of warehouse warrant of high-value consumable
當今醫院信息系統的應用規模與復雜程度史無前例,傳統的軟件開發模式的瓶頸逐步顯現。 該醫信通平臺自從兩年前形成雛形以來,我們邊開發邊完善,利用它已經成功開發了《醫院高值耗材管理系統》等系列軟件,實踐證明,該醫信通基本滿足了中小型醫院信息系統通用開發和跨平臺的需求,達到了縮短軟件開發周期、降低軟件服務成本的目的,使信息系統的開發更安全、更高效,從而極大地提高了中小型醫院信息系統的開發與維護效率[6]。
[1] 張昌明,朱紅. .NET技術在醫院信息系統中的應用研究[J].醫學信息學雜志,2013(5):28-30.
ZHANG Chang-min, ZHU Hong, Research on application of.Net technology in the HIS [J].Journal of Medical Informatics,2013(5):28-30.
[2] 任鳳仙,李強,張振華. 利用PHP的MVC框架開發電子書庫的設計實踐[J].電子設計工程,2014(16):25-27.
REN Feng-xian,LI Qiang,ZHANG Zhen-hua.Design practice with the MVC framework of PHP to develop E-book stack room [J].Electronic Design Engineering,2014(16):25-27.
[3] 魏秋紅.基于應用服務復用開發平臺的CMS研究與實現[J].計算機與數字工程,2013(1):151-154.
WEI Qiu-hong.Study and implementation of application service reuse development platform-base content management system[J].Computer&Digital Engineering,2013(1):151-154.
[4] 王德廣,張軍卒,王超. 基于數據字典的通用開發平臺的研究[J].微型電腦應用,2010(5):19-22.
WANG De-guang,ZHANG Jun-zu,WANG Chao.Research on common development platform -base data dictionary [J].Microcomputer Applications,2010(5):19-22.
[5] 李尤豐.工程類系統通用開發平臺的研究與設計[J].計算機技術與發展,2013,23(2):162-164.
LI You-feng.Research and design of an integrated development platform of project system [J].Computer Technology and Development,2013,23(2):162-164.
[6] 陳麗欣,張榮霞,張昭.C/S與B/S混合軟件體系結構在醫院信息系統設計中的應用[J].醫學信息,2010(6):1584-1585.
CHEN Li-xin,ZHANG Rong-xia,ZHANG Zhao.Application of C/S and B/S hybrid architecture in hospital information system[J].Medical Information, 2010(6):1584-1585.