摘 要: 電子病例系統(tǒng)研究是醫(yī)院信息系統(tǒng)和建立數(shù)字化醫(yī)院的關(guān)鍵課題。首先,討論了作為醫(yī)院管理系統(tǒng)實現(xiàn)信息化的重要環(huán)節(jié)——電子病例管理系統(tǒng)的定義和作用。由于B/S結(jié)構(gòu)具有伸縮性、維護性和擴展性等多方面的優(yōu)勢,因此系統(tǒng)開發(fā)采用B/S結(jié)構(gòu);其次,對電子病歷管理系統(tǒng)的系統(tǒng)功能進行分析和功能模塊劃分;再次,進行數(shù)據(jù)庫的需求分析、概念結(jié)構(gòu)分析以及邏輯結(jié)構(gòu)分析,并對數(shù)據(jù)庫進行實現(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ī)療科研、教學和醫(yī)院管理方面起著提供數(shù)據(jù)源的重要作用。紙張病歷在服務(wù)方面是被動式的,而電子病案則可以是主動式的,包括病案檢索、智能知識庫、醫(yī)療質(zhì)量統(tǒng)計、醫(yī)療評價、經(jīng)濟統(tǒng)計分析等等,這是電子病歷的服務(wù)功能。
電子病歷內(nèi)涵應(yīng)包括:一是信息共享。醫(yī)院各個部門、科室在任何時間和地點都能調(diào)閱到病人所在醫(yī)院的全部病歷記錄;二是具有預(yù)警功能,對藥物配伍禁忌、醫(yī)療方法不當進行提示;三是支持醫(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)進行數(shù)據(jù)交換和傳遞;最上面的是客戶端,用戶可以通過瀏覽器進行使用。
當醫(yī)生選中其中的某個病人時,可以進入到該病人的詳細病歷資料的頁面,查看病人已往的病情記錄、當前臨床病癥和檢查結(jié)果,并據(jù)此做出診斷,并填寫病歷詳細資料中的診斷信息。
病人在掛號后,系統(tǒng)生成病人的病歷號碼,并且初始化病人的登錄密碼和病歷號碼一致,病人根據(jù)病案號碼和登錄密碼登錄到相應(yīng)的病歷信息中。
3 數(shù)據(jù)庫設(shè)計
3.1 數(shù)據(jù)庫需求分析
通過對醫(yī)院門診部門的實際運作和管理流程進行分析,設(shè)計的數(shù)據(jù)結(jié)構(gòu)如下:
?。?)掛號處掛號員登錄信息:包括的數(shù)據(jù)項有姓名和密碼。
?。?)醫(yī)生登錄信息:包括的數(shù)據(jù)項有科室選擇、醫(yī)生姓名和登錄密碼。
(3)掛號處登記的病人基本信息:包括的數(shù)據(jù)項目有患者姓名、患者年齡、患者性別、身份證號碼、住宅電話、移動號碼、入院科室、家庭地址和診斷時間。
?。?)病人病歷詳細信息:包括的數(shù)據(jù)項有患者姓名、患者年齡、患者性別、身份證號碼、住宅電話、移動號碼、入院科室、家庭地址、診斷時間、病歷號碼、總費用、胸透檢查、血檢結(jié)果、B超檢查結(jié)果、臨床癥狀、家族病史、診斷結(jié)果、病人處方、手術(shù)方案、手術(shù)情況、用戶密碼的修改以及既往病史等。
(5)病人登錄信息:包括的數(shù)據(jù)項有病歷號和登錄密碼。
3.2 數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計
在需求分析的基礎(chǔ)上,設(shè)計出能滿足用戶需求的各種實體以及它們之間的關(guān)系,為邏輯結(jié)構(gòu)設(shè)計打下基礎(chǔ)。本文采用E-R圖的方法來進行數(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)登錄時,輸入用戶名和密碼進入主要功能頁面,包括:病人登錄,醫(yī)生登錄和掛號員登錄。
?。?)病人進入醫(yī)院,填寫紙質(zhì)的病歷,填寫病人的基本的信息,病人將紙質(zhì)的病歷交給信息錄入員后,錄入員登錄到錄入界面,錄入病人的基本信息,并根據(jù)病人選擇的科室給病人分配一個病案號,這樣相應(yīng)科室的醫(yī)生一旦登錄,就能馬上調(diào)出其所在科室的所有病人的基本信息列表。
?。?)醫(yī)生登錄時,輸入其所在的部門科室的名稱、姓名和密碼就能夠進入到下一個頁面,這里的關(guān)鍵字是部門科室,系統(tǒng)根據(jù)填寫的部門科室的名稱自動調(diào)出該部門科室的所有病人的基本信息列表,醫(yī)生能大致了解該科室的病人的狀況。醫(yī)生可以選擇某一個病人,選擇后進入詳細信息頁面,即病人病情頁面。
(3)病人第一次進入系統(tǒng)的時候,根據(jù)分配的病案號和密碼填寫并登錄到病人的詳細信息頁面中了解自己的病癥狀況,但是病人無權(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)進行了系統(tǒng)功能分析和功能模塊劃分,設(shè)計了服務(wù)端、客戶端以及數(shù)據(jù)庫,所開發(fā)的系統(tǒng)用戶界面友好、使用方便。
參考文獻
[1] 柳永坡,劉雪梅,趙長海.JSP應(yīng)用開發(fā)[M].北京:人民郵電出版社,2005.
[2] 柏亞軍.JSP編程基礎(chǔ)及應(yīng)用實例集錦[M].北京:人民郵電出版社,2001.
[3] 馬斗,邱哲,王駿標.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].北京:清華大學出版社,2010.
[10] 張倍,趙國鋒.JSP數(shù)據(jù)庫通用模塊開發(fā)與系統(tǒng)移植[M].北京:清華大學出版社,2007.
[11] 張銀鶴,劉治國,張豪.JSP動態(tài)網(wǎng)站開發(fā)實踐教程[M].北京:清華大學出版社,2007.
[12] 王永茂,JSP程序設(shè)計—用JSP開發(fā)WEB應(yīng)用[M].北京:清華大學出版社,2010.