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