楊艷麗 ,曹 巖 ,龐艷丹
(1.深圳大學(xué) 計(jì)算機(jī)與軟件學(xué)院,廣東 深圳 518060;2.西安工業(yè)大學(xué) 先進(jìn)制造工程研究所,陜西 西安 710032)
電子病歷 EMR(Electronic Medical Record)也稱(chēng)為算機(jī)化的病歷或基于計(jì)算機(jī)的病人記錄CMR(Computer Based Mdical Record),它是用電子設(shè)備保存、管理和傳輸數(shù)字化的病人醫(yī)療記錄,是取代手寫(xiě)紙張的病歷。對(duì)電子病歷一致的理解與定義目前尚未形成。病歷在醫(yī)療科研、教學(xué)和醫(yī)院管理方面起著提供數(shù)據(jù)源的重要作用。紙張病歷在服務(wù)方面是被動(dòng)式的,而電子病案則可以是主動(dòng)式的,包括病案檢索、智能知識(shí)庫(kù)、醫(yī)療質(zhì)量統(tǒng)計(jì)、醫(yī)療評(píng)價(jià)、經(jīng)濟(jì)統(tǒng)計(jì)分析等等,這是電子病歷的服務(wù)功能。
電子病歷內(nèi)涵應(yīng)包括:一是信息共享。醫(yī)院各個(gè)部門(mén)、科室在任何時(shí)間和地點(diǎn)都能調(diào)閱到病人所在醫(yī)院的全部病歷記錄;二是具有預(yù)警功能,對(duì)藥物配伍禁忌、醫(yī)療方法不當(dāng)進(jìn)行提示;三是支持醫(yī)療信息資料庫(kù),供醫(yī)療人員在工作時(shí)查詢(xún)使用。電子病歷是醫(yī)療信息的核心,病歷信息貫穿于病人在醫(yī)院就診的各個(gè)環(huán)節(jié),因此,電子病歷絕不僅是病案的電子存儲(chǔ),它實(shí)質(zhì)上是醫(yī)療過(guò)程的全面信息化,不是靜態(tài)的病案本身,而是動(dòng)態(tài)的智能信息源。
一般來(lái)講,基于B/S結(jié)構(gòu)模式[1-4]的電子病歷管理的應(yīng)用系統(tǒng)具有如圖1所示的三個(gè)層次。三層結(jié)構(gòu)中,底層是電子病歷的數(shù)據(jù)服務(wù)器,用于存儲(chǔ)和管理電子病歷數(shù)據(jù);中間層是應(yīng)用服務(wù)器和Web服務(wù)器,其中應(yīng)用服務(wù)器用于實(shí)現(xiàn)系統(tǒng)的業(yè)務(wù)邏輯,如電子病歷的管理、電子病歷的歸檔、電子病歷的查詢(xún)、統(tǒng)計(jì)報(bào)表等組建管理,還可以通過(guò)網(wǎng)關(guān)和外部系統(tǒng)進(jìn)行數(shù)據(jù)交換和傳遞;最上面的是客戶(hù)端,用戶(hù)可以通過(guò)瀏覽器進(jìn)行使用。
圖1 電子病歷管理的三層結(jié)構(gòu)
本文系統(tǒng)開(kāi)發(fā)采用B/S模式,系統(tǒng)結(jié)構(gòu)具有可伸縮、可維護(hù)性強(qiáng)、安全、“瘦”型客戶(hù)機(jī)可直接上網(wǎng)、投入成本較低等優(yōu)勢(shì)。開(kāi)發(fā)環(huán)境采用Eclipse[5-6]。
醫(yī)院的活動(dòng)圖2所示。首先,病人在掛號(hào)處領(lǐng)取一張病人資料表,填寫(xiě)自己的相關(guān)信息以及選擇的科室。醫(yī)院處的掛號(hào)員錄入病人的基本信息,這樣就建立了一個(gè)醫(yī)院病人的數(shù)據(jù),數(shù)據(jù)的存放將按照病人選擇的科室進(jìn)行歸類(lèi)放置在服務(wù)器端,當(dāng)某科室的醫(yī)生打開(kāi)自己的頁(yè)面的時(shí)候,該科室的病人的大致信息匯總將集中顯示在頁(yè)面上,這樣醫(yī)生就能了解到該科室病人的大致情況。
圖2 醫(yī)院的活動(dòng)圖
當(dāng)醫(yī)生選中其中的某個(gè)病人時(shí),可以進(jìn)入到該病人的詳細(xì)病歷資料的頁(yè)面,查看病人已往的病情記錄、當(dāng)前臨床病癥和檢查結(jié)果,并據(jù)此做出診斷,并填寫(xiě)病歷詳細(xì)資料中的診斷信息。
病人在掛號(hào)后,系統(tǒng)生成病人的病歷號(hào)碼,并且初始化病人的登錄密碼和病歷號(hào)碼一致,病人根據(jù)病案號(hào)碼和登錄密碼登錄到相應(yīng)的病歷信息中。
通過(guò)對(duì)醫(yī)院門(mén)診部門(mén)的實(shí)際運(yùn)作和管理流程進(jìn)行分析,設(shè)計(jì)的數(shù)據(jù)結(jié)構(gòu)如下:
(1)掛號(hào)處掛號(hào)員登錄信息:包括的數(shù)據(jù)項(xiàng)有姓名和密碼。
(2)醫(yī)生登錄信息:包括的數(shù)據(jù)項(xiàng)有科室選擇、醫(yī)生姓名和登錄密碼。
(3)掛號(hào)處登記的病人基本信息:包括的數(shù)據(jù)項(xiàng)目有患者姓名、患者年齡、患者性別、身份證號(hào)碼、住宅電話、移動(dòng)號(hào)碼、入院科室、家庭地址和診斷時(shí)間。
(4)病人病歷詳細(xì)信息:包括的數(shù)據(jù)項(xiàng)有患者姓名、患者年齡、患者性別、身份證號(hào)碼、住宅電話、移動(dòng)號(hào)碼、入院科室、家庭地址、診斷時(shí)間、病歷號(hào)碼、總費(fèi)用、胸透檢查、血檢結(jié)果、B超檢查結(jié)果、臨床癥狀、家族病史、診斷結(jié)果、病人處方、手術(shù)方案、手術(shù)情況、用戶(hù)密碼的修改以及既往病史等。
(5)病人登錄信息:包括的數(shù)據(jù)項(xiàng)有病歷號(hào)和登錄密碼。
在需求分析的基礎(chǔ)上,設(shè)計(jì)出能滿足用戶(hù)需求的各種實(shí)體以及它們之間的關(guān)系,為邏輯結(jié)構(gòu)設(shè)計(jì)打下基礎(chǔ)。本文采用E-R圖的方法來(lái)進(jìn)行數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)。
圖3為掛號(hào)信息的實(shí)體E-R關(guān)系圖,圖4為病歷信息的實(shí)體E-R關(guān)系圖。實(shí)體與實(shí)體之間的關(guān)系如圖5所示。
圖5 實(shí)體之間的關(guān)系E-R圖
電子病歷管理系統(tǒng)數(shù)據(jù)庫(kù)具備5個(gè)表格的設(shè)計(jì),分別是錄入員信息表、醫(yī)生信息表、病人登錄信息表、病人病歷基本信息表和病人既往病史信息表。
在需求分析、概念結(jié)構(gòu)設(shè)計(jì)的基礎(chǔ)上,就可以創(chuàng)建數(shù)據(jù)庫(kù)表格,然后將表格結(jié)構(gòu)導(dǎo)入數(shù)據(jù)庫(kù)系統(tǒng),這樣就實(shí)現(xiàn)了數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu)[7]。
網(wǎng)頁(yè)上各個(gè)請(qǐng)求的實(shí)現(xiàn)都需要連接數(shù)據(jù)庫(kù),下面的程序包文件中,DataSource是用來(lái)查找在struts架構(gòu)中定義的數(shù)據(jù)源,它是在jre/lib文件庫(kù)里定義的rt.jar,引入的Connection類(lèi)用來(lái)得到DataSource返回的連接;ResultSet用來(lái)獲取Statement對(duì)象執(zhí)行SQL語(yǔ)句后返回的數(shù)據(jù)信息;SQLException用來(lái)捕獲在執(zhí)行數(shù)據(jù)庫(kù)操作時(shí)產(chǎn)生的異常信息,以便拋出并讓用戶(hù)了解數(shù)據(jù)庫(kù)操作過(guò)程中的出錯(cuò)信息;Statement類(lèi)用來(lái)得到Connection類(lèi)創(chuàng)建的SQL語(yǔ)句陳述類(lèi)。
服務(wù)端的具體運(yùn)行過(guò)程如圖6所示。struts應(yīng)用程序中的所有組件在struts-config.xml文件中注冊(cè),配置文件struts-config.xml是整個(gè)struts應(yīng)用的核心。struts應(yīng)用在啟動(dòng)時(shí),就會(huì)自動(dòng)加載該文件到內(nèi)存中,以后用戶(hù)的每一次請(qǐng)求以及struts自身的每一次請(qǐng)求轉(zhuǎn)發(fā)都會(huì)依賴(lài)該文件。
圖6 服務(wù)端的具體運(yùn)行過(guò)程
其中,struts配置文件如下:
利用Dreamweaver實(shí)現(xiàn)了 JSP頁(yè)面[8-12]。系統(tǒng)登錄時(shí),輸入用戶(hù)名和密碼進(jìn)入主要功能頁(yè)面,包括:病人登錄,醫(yī)生登錄和掛號(hào)員登錄。
(1)病人進(jìn)入醫(yī)院,填寫(xiě)紙質(zhì)的病歷,填寫(xiě)病人的基本的信息,病人將紙質(zhì)的病歷交給信息錄入員后,錄入員登錄到錄入界面,錄入病人的基本信息,并根據(jù)病人選擇的科室給病人分配一個(gè)病案號(hào),這樣相應(yīng)科室的醫(yī)生一旦登錄,就能馬上調(diào)出其所在科室的所有病人的基本信息列表。
(2)醫(yī)生登錄時(shí),輸入其所在的部門(mén)科室的名稱(chēng)、姓名和密碼就能夠進(jìn)入到下一個(gè)頁(yè)面,這里的關(guān)鍵字是部門(mén)科室,系統(tǒng)根據(jù)填寫(xiě)的部門(mén)科室的名稱(chēng)自動(dòng)調(diào)出該部門(mén)科室的所有病人的基本信息列表,醫(yī)生能大致了解該科室的病人的狀況。醫(yī)生可以選擇某一個(gè)病人,選擇后進(jìn)入詳細(xì)信息頁(yè)面,即病人病情頁(yè)面。
(3)病人第一次進(jìn)入系統(tǒng)的時(shí)候,根據(jù)分配的病案號(hào)和密碼填寫(xiě)并登錄到病人的詳細(xì)信息頁(yè)面中了解自己的病癥狀況,但是病人無(wú)權(quán)修改。只有用戶(hù)密碼這一欄里,病人有修改的權(quán)限,病人在成功修改后,系統(tǒng)會(huì)有成功修改的提示,以后病人登錄的密碼將是修改后的密碼。
目前醫(yī)療信息系統(tǒng)正處于由傳統(tǒng)的面向醫(yī)院事務(wù)管理向與臨床醫(yī)療信息相結(jié)合的轉(zhuǎn)變過(guò)程,由于電子病歷是臨床醫(yī)療信息的出發(fā)點(diǎn)和醫(yī)院信息系統(tǒng)的核心,因此,電子病歷系統(tǒng)研究是醫(yī)院信息系統(tǒng)研究和建立數(shù)字化醫(yī)院的關(guān)鍵課題。本文對(duì)電子病歷管理系統(tǒng)進(jìn)行了系統(tǒng)功能分析和功能模塊劃分,設(shè)計(jì)了服務(wù)端、客戶(hù)端以及數(shù)據(jù)庫(kù),所開(kāi)發(fā)的系統(tǒng)用戶(hù)界面友好、使用方便。
[1]柳永坡,劉雪梅,趙長(zhǎng)海.JSP應(yīng)用開(kāi)發(fā)[M].北京:人民郵電出版社,2005.
[2]柏亞軍.JSP編程基礎(chǔ)及應(yīng)用實(shí)例集錦[M].北京:人民郵電出版社,2001.
[3]馬斗,邱哲,王駿標(biāo).JSP開(kāi)發(fā)答疑 200問(wèn)[M].北京:人民郵電出版社,2005.
[4]吳其慶.JSP編程思想與實(shí)踐[M].北京:冶金工業(yè)出版社,2003.
[5]GAMMA E, BECK K.Contributing to Eclipse中文版[M].熊節(jié),譯.北京:中國(guó)電力出版社,2003.
[6]張?jiān)茲?,龔?Eclipse精要與高級(jí)開(kāi)發(fā)技術(shù)[M].北京:電子工業(yè)出版社,2005.
[7]施威銘研究室.SQLServer2000中文版管理實(shí)務(wù) [M].北京:人民郵電出版社,2001.
[8]孫素華.Dreamweaver MX2004完美網(wǎng)頁(yè)設(shè)計(jì)[M].北京:中國(guó)青年出版社,2006.
[9]王黎.Flex+JSP Web應(yīng)用開(kāi)發(fā)實(shí)戰(zhàn)詳解[M].北京:清華大學(xué)出版社,2010.
[10]張倍,趙國(guó)鋒.JSP數(shù)據(jù)庫(kù)通用模塊開(kāi)發(fā)與系統(tǒng)移植[M].北京:清華大學(xué)出版社,2007.
[11]張銀鶴,劉治國(guó),張豪.JSP動(dòng)態(tài)網(wǎng)站開(kāi)發(fā)實(shí)踐教程[M].北京:清華大學(xué)出版社,2007.
[12]王永茂,JSP程序設(shè)計(jì)—用 JSP開(kāi)發(fā) WEB應(yīng)用 [M].北京:清華大學(xué)出版社,2010.