王連根,任慧朋,周 睿
(1. 解放軍第九八醫(yī)院信息科 浙江 湖州 313000;2.南京政治學(xué)院軍事信息管理系 上海200433)
醫(yī)院信息系統(tǒng)是利用電子計(jì)算機(jī)和通訊設(shè)備, 為醫(yī)院所屬各部門提供病人診療信息和行政管理信息的收集、存儲(chǔ)、處理、提取和數(shù)據(jù)交換的能力,并滿足所有授權(quán)用戶的功能需求。 醫(yī)院的目標(biāo)、任務(wù)和性質(zhì)決定了醫(yī)院信息系統(tǒng)是目前企業(yè)級(jí)信息系統(tǒng)中最復(fù)雜的類型之一。 醫(yī)療衛(wèi)生行業(yè)信息化建設(shè)起步較早,90 年代初, 隨著網(wǎng)絡(luò)技術(shù)的日益成熟和醫(yī)院管理的迫切需要,于是一些醫(yī)院依靠自己的計(jì)算機(jī)技術(shù)人員開(kāi)始開(kāi)發(fā)本院的信息系統(tǒng),那時(shí)的信息系統(tǒng)主要應(yīng)用于醫(yī)院的收費(fèi)管理和物資管理方面,以減少漏費(fèi)、跑費(fèi)和物資積壓等現(xiàn)象。 隨著醫(yī)院信息系統(tǒng)的不斷推廣和信息化步伐的加快,信息系統(tǒng)開(kāi)發(fā)項(xiàng)目日益增加,軟件傳統(tǒng)開(kāi)發(fā)模式下的一些不足問(wèn)題比較突出,主要表現(xiàn)為:一是開(kāi)發(fā)力量分散,一般1~2 個(gè)人負(fù)責(zé)一個(gè)軟件開(kāi)發(fā)項(xiàng)目;二是重復(fù)開(kāi)發(fā)項(xiàng)目多,軟件通用性較差,一般重復(fù)率可達(dá)70%左右;三是沒(méi)有統(tǒng)一開(kāi)發(fā)平臺(tái),團(tuán)隊(duì)協(xié)作無(wú)法展開(kāi),導(dǎo)致版本控制與管理困難,開(kāi)發(fā)周期長(zhǎng),開(kāi)發(fā)效益低。 因此,兩年前筆者有一個(gè)想法油然而生:為中小型醫(yī)院提供一個(gè)B/S(Browser/Server)三層架構(gòu)的智能信息系統(tǒng)通用開(kāi)發(fā)平臺(tái)(簡(jiǎn)稱醫(yī)信通),變得十分迫切。
為了解決傳統(tǒng)開(kāi)發(fā)模式存在的這些問(wèn)題,改善信息系統(tǒng)的易開(kāi)發(fā)性、易擴(kuò)充性和易維護(hù)性,筆者所在醫(yī)院的開(kāi)發(fā)團(tuán)隊(duì)結(jié)合長(zhǎng)期從事醫(yī)院管理與醫(yī)院信息系統(tǒng)開(kāi)發(fā)的經(jīng)驗(yàn),對(duì)中小型醫(yī)院信息系統(tǒng)的共性特點(diǎn)進(jìn)行分析研究[1],把應(yīng)用軟件分為設(shè)計(jì)、編程、測(cè)試、發(fā)布、維護(hù)、服務(wù)等6 個(gè)環(huán)節(jié),對(duì)軟件開(kāi)發(fā)中的各類人員、各項(xiàng)技術(shù)、各種資源實(shí)行一體化管理,設(shè)計(jì)一個(gè)集角色管理、用戶管理、模塊管理、數(shù)據(jù)表管理等公用模塊為一體,并為二次開(kāi)發(fā)者提供專用模塊管理的醫(yī)信通平臺(tái)。 通過(guò)這個(gè)醫(yī)信通平臺(tái)不僅像是建立了一條現(xiàn)代化的軟件開(kāi)發(fā)生產(chǎn)流水線,而且各類人員可以在同一個(gè)醫(yī)信通平臺(tái)并行工作,只是因角色不同而面對(duì)不同的界面和功能,每個(gè)角色看似有自己獨(dú)立的虛擬軟件環(huán)境, 可以各行其事各負(fù)其責(zé),使軟件開(kāi)發(fā)管理發(fā)生深刻變化,能極大地提高軟件開(kāi)發(fā)與維護(hù)的質(zhì)量、速度和效益。
MVC (Model View Controller), 是模型 (model)-視圖(view)-控制器(controller)的縮寫,這種模式用一種業(yè)務(wù)邏輯、數(shù)據(jù)、界面顯示分離的方法組織代碼,將業(yè)務(wù)邏輯聚集到一個(gè)部件里面,而且界面和用戶圍繞數(shù)據(jù)的交互能被改進(jìn),個(gè)性化定制而不需要重新編寫業(yè)務(wù)邏輯[2]。 MVC 開(kāi)發(fā)模式是現(xiàn)階段主流的項(xiàng)目開(kāi)發(fā)模式之一, 可使整個(gè)項(xiàng)目的各個(gè)層次獨(dú)立出來(lái),這樣開(kāi)發(fā)人員和美工人員可以同步開(kāi)發(fā),也為日后項(xiàng)目的功能擴(kuò)展與維護(hù)提供極大方便。 本文以國(guó)產(chǎn)開(kāi)源的PHP 語(yǔ)言的MVC 框架,實(shí)現(xiàn)對(duì)醫(yī)信通平臺(tái)的設(shè)計(jì),如圖1 所示。
圖1 MVC 模式架構(gòu)示意圖Fig. 1 Schema diagram of MVC model
PHP 即 超 文 本 預(yù) 處 理 器 ( 英 文 名:Hypertext Preprocessor),是一種通用的公開(kāi)源代碼的腳本語(yǔ)言,運(yùn)行于WEB 服務(wù)端,具有很強(qiáng)的跨平臺(tái)運(yùn)行、執(zhí)行速度快、占用資源少的特點(diǎn)。 近年來(lái),由于其強(qiáng)大的表單處理功能和對(duì)多種數(shù)據(jù)庫(kù)廣泛支持,逐漸向應(yīng)用軟件領(lǐng)域擴(kuò)展,目前絕大多數(shù)醫(yī)院選擇了Oracle 來(lái)支持關(guān)鍵應(yīng)用, 我們正是利用PHP 提供的從Web 充分訪問(wèn)Oracle 的有力手段, 在醫(yī)信通平臺(tái)開(kāi)發(fā)中達(dá)到PHP 與Oracle 數(shù)據(jù)庫(kù)的完美結(jié)合[3]。
PEAR 是PHP 擴(kuò) 展 與 應(yīng) 用 庫(kù) (the PHP Extension and Application Repository)的縮寫,它是PHP 面向?qū)ο髷U(kuò)展及應(yīng)用的一個(gè)代碼庫(kù),Stig S. Bakken 在1999 年創(chuàng)立了PEAR 項(xiàng)目。對(duì)于開(kāi)發(fā)者來(lái)說(shuō),如果每一次開(kāi)發(fā)PHP 程序,從無(wú)到有都要完全靠自己來(lái)編寫的話, 雖然可以鍛煉程序編寫能力,但效率太低,成本也太高了。 若一些常用的功能可以用代碼庫(kù)的方式來(lái)處理,將可以為開(kāi)發(fā)者解決許多困難,因此引用代碼庫(kù)的開(kāi)發(fā)方式已經(jīng)漸漸成為一種趨勢(shì)。 PEAR 就像是已經(jīng)針對(duì)你的需求而準(zhǔn)備好了預(yù)制件,你只要運(yùn)用創(chuàng)意將它們組合起來(lái)就可以了。 我們?cè)赑HP 開(kāi)發(fā)醫(yī)信通平臺(tái)過(guò)程中引入PEAR,不僅大幅縮減撰寫程序代碼的工作量和時(shí)間,而且用簡(jiǎn)單的方法就得到許多強(qiáng)大的動(dòng)態(tài)網(wǎng)頁(yè)功能[4]。 例如PEAR其中的一個(gè)包PEAR::DB 就很受歡迎, 我們用它編寫出適用于Oracle、MySQL 等腳本,增強(qiáng)了擴(kuò)展性和靈活性。
平臺(tái)的具體開(kāi)發(fā)環(huán)境,如表1 所示。
表1 平臺(tái)開(kāi)發(fā)環(huán)境Tab.1 Environment of platform development
通過(guò)醫(yī)信通平臺(tái)的設(shè)計(jì)思想和需求分析,平臺(tái)根據(jù)功能模塊可劃分為公用模塊和專用模塊,公用模塊主要包括角色管理、用戶管理、模塊管理、數(shù)據(jù)表管理等模塊,專用模塊是指根據(jù)業(yè)務(wù)功能創(chuàng)建的個(gè)性化功能模塊。 在開(kāi)發(fā)信息系統(tǒng)時(shí),只要?jiǎng)?chuàng)建不同業(yè)務(wù)功能的專用模塊,再通過(guò)平臺(tái)的公用模塊管理確定角色、用戶權(quán)限等,對(duì)專用模塊實(shí)現(xiàn)管理并與公用模塊智能組合,就快速形成不同的信息系統(tǒng)。 平臺(tái)主界面設(shè)計(jì)成一個(gè)動(dòng)態(tài)的網(wǎng)頁(yè),導(dǎo)航條主要由公用模塊與專用模塊的欄目菜單組成,用戶通過(guò)不同的帳號(hào)登錄時(shí),根據(jù)該用戶的角色權(quán)限生成一個(gè)動(dòng)態(tài)網(wǎng)頁(yè): 當(dāng)用戶有管理權(quán)限時(shí),就展現(xiàn)一個(gè)管理平臺(tái);登錄用戶沒(méi)有管理權(quán)限而只有業(yè)務(wù)功能模塊權(quán)限時(shí),就展現(xiàn)一個(gè)醫(yī)院信息系統(tǒng)界面給用戶。
3.2.1 角色管理
角色管理模塊主要定義角色的操作權(quán)限。 單擊“增加角色”,輸入角色名稱,再單擊“權(quán)限設(shè)置”文本框,選擇相應(yīng)的權(quán)限后增加角色完成。 對(duì)已有角色,還可編輯或刪除操作。
3.2.2 用戶管理
用戶管理模塊主要定義用戶的帳號(hào)與角色。 增加用戶窗口顯示,如圖2 所示。
3.2.3 模塊管理
模塊管理主要用于根據(jù)業(yè)務(wù)功能增加專用模塊,并定義顯示的菜單欄。 在增加功能模塊窗口,輸入模塊名稱、執(zhí)行頁(yè)面等即增加模塊完成。
3.2.4 數(shù)據(jù)表管理
根據(jù)顯示格式要求,事先定義設(shè)置所要查詢表(已建好的Oracle 表)的結(jié)構(gòu)及參數(shù),包括指定表的英文名、中文名,字段的英文名、中文名、寬度,以及默認(rèn)顯示哪些字段。
圖2 用戶管理界面Fig. 2 Interface of users management
借助于醫(yī)信通平臺(tái)開(kāi)發(fā)醫(yī)院信息系統(tǒng), 實(shí)際上是二次開(kāi)發(fā)者通過(guò)創(chuàng)建個(gè)性化功能模塊和模塊智能組合而快速形成信息系統(tǒng)的過(guò)程。 下面結(jié)合《醫(yī)院高值耗材管理系統(tǒng)》的入庫(kù)管理模塊開(kāi)發(fā)實(shí)例,簡(jiǎn)要說(shuō)明開(kāi)發(fā)過(guò)程。 系統(tǒng)運(yùn)行主界面,如圖3 所示。
圖3 系統(tǒng)運(yùn)行主界面Fig. 3 Main interface of system running
運(yùn)行模塊管理后,單擊“增加功能模塊”,在增加功能模塊窗口, 錄入模塊名稱 “入庫(kù)管理”、 執(zhí)行頁(yè)面“mtrl_import.php”等。保存后增加模塊完成[5]。根據(jù)需要可任意定義下級(jí)模塊及菜單的級(jí)別深度。 高值耗材入庫(kù)單錄入后,界面顯示如圖4 所示。
圖4 高值耗材入庫(kù)單顯示界面Fig. 4 Interface of warehouse warrant of high-value consumable
當(dāng)今醫(yī)院信息系統(tǒng)的應(yīng)用規(guī)模與復(fù)雜程度史無(wú)前例,傳統(tǒng)的軟件開(kāi)發(fā)模式的瓶頸逐步顯現(xiàn)。 該醫(yī)信通平臺(tái)自從兩年前形成雛形以來(lái),我們邊開(kāi)發(fā)邊完善,利用它已經(jīng)成功開(kāi)發(fā)了《醫(yī)院高值耗材管理系統(tǒng)》等系列軟件,實(shí)踐證明,該醫(yī)信通基本滿足了中小型醫(yī)院信息系統(tǒng)通用開(kāi)發(fā)和跨平臺(tái)的需求,達(dá)到了縮短軟件開(kāi)發(fā)周期、降低軟件服務(wù)成本的目的,使信息系統(tǒng)的開(kāi)發(fā)更安全、更高效,從而極大地提高了中小型醫(yī)院信息系統(tǒng)的開(kāi)發(fā)與維護(hù)效率[6]。
[1] 張昌明,朱紅. .NET技術(shù)在醫(yī)院信息系統(tǒng)中的應(yīng)用研究[J].醫(yī)學(xué)信息學(xué)雜志,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] 任鳳仙,李強(qiáng),張振華. 利用PHP的MVC框架開(kāi)發(fā)電子書(shū)庫(kù)的設(shè)計(jì)實(shí)踐[J].電子設(shè)計(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] 魏秋紅.基于應(yīng)用服務(wù)復(fù)用開(kāi)發(fā)平臺(tái)的CMS研究與實(shí)現(xiàn)[J].計(jì)算機(jī)與數(shù)字工程,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] 王德廣,張軍卒,王超. 基于數(shù)據(jù)字典的通用開(kāi)發(fā)平臺(tái)的研究[J].微型電腦應(yīng)用,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] 李尤豐.工程類系統(tǒng)通用開(kāi)發(fā)平臺(tái)的研究與設(shè)計(jì)[J].計(jì)算機(jī)技術(shù)與發(fā)展,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混合軟件體系結(jié)構(gòu)在醫(yī)院信息系統(tǒng)設(shè)計(jì)中的應(yīng)用[J].醫(yī)學(xué)信息,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.