摘要:對(duì)我國(guó)現(xiàn)有的基于XML技術(shù)的電子病歷數(shù)據(jù)存儲(chǔ)方案進(jìn)行調(diào)研分析,結(jié)合我院電子病歷系統(tǒng)的建設(shè)經(jīng)驗(yàn),分析了XML電子病歷數(shù)據(jù)的特點(diǎn),提出了優(yōu)化電子病歷存儲(chǔ)的構(gòu)想。經(jīng)過實(shí)踐有效地提高電子病歷系統(tǒng)的整體性能,使醫(yī)院信息化建設(shè)水平上了一個(gè)新的臺(tái)階。
關(guān)鍵詞:電子病歷;XML技術(shù);數(shù)據(jù)存儲(chǔ)
Discussion on Data Storage Scheme of Electronic Medical Record Based on XML
HUANG Jie,PAN Yu-jia
(Guigang People's Hospital,Guigang 537000,Guangxi,China)
Abstract:To conduct research and analysis of existing data storage solutions based on electronic medical records XML technology,combined with experience in building our hospital electronic medical records system,and analyzes the characteristics of XML data in electronic medical records,electronic medical records presented the idea to optimize storage.Proven effective in improving the overall performance of the electronic medical record system,so the level of hospital information construction on a new level.
Key words:Electronic medical record;XML technology;Data storage
電子病歷(Eletronic Medical Record,EMR)作為醫(yī)院的財(cái)富,它的價(jià)值體現(xiàn)在“長(zhǎng)期、大量”的病歷信息作為醫(yī)療科研的數(shù)據(jù)基礎(chǔ)。醫(yī)院管理和醫(yī)院信息化面臨的重要問題就是應(yīng)該如何對(duì)病歷數(shù)據(jù)進(jìn)行有序保存和高效利用。我院從2009年開始進(jìn)行以電子病歷為核心的醫(yī)院信息化建設(shè),通過逐步地完善與優(yōu)化電子病歷數(shù)據(jù)存儲(chǔ)方案,對(duì)提升電子病歷系統(tǒng)的整體性能發(fā)揮一定的作用。
1 基于XML的電子病歷系統(tǒng)
XML(Extensible Markup Language,可擴(kuò)展的標(biāo)記語言)是一種定義語義標(biāo)記的規(guī)則,這些標(biāo)記將文檔分成許多部件并且對(duì)分散的部件加以標(biāo)識(shí)。XML也用于定義其他與特定領(lǐng)域有關(guān)的、語義的、結(jié)構(gòu)化的標(biāo)記語言的句法的元標(biāo)記語言。
電子病歷信息來源于CIS系統(tǒng)、LIS系統(tǒng)、PACS系統(tǒng)等,數(shù)據(jù)可能存在不同類型的數(shù)據(jù)庫中,其中包含大量不確定的、非結(jié)構(gòu)化的信息,對(duì)擴(kuò)展性要求很高。傳統(tǒng)的關(guān)系型數(shù)據(jù)庫很難滿足此類醫(yī)療數(shù)據(jù)的存儲(chǔ)和應(yīng)用。XML技術(shù)因?yàn)槠浔旧砭哂凶晕叶x、自我描述、良好擴(kuò)展性等優(yōu)點(diǎn),早已成為醫(yī)療信息描述、轉(zhuǎn)換的得力工具。XML在電子病歷應(yīng)用過程中,其核心作用是數(shù)據(jù)交換,其次是數(shù)據(jù)描述與存儲(chǔ)。XML電子病歷系統(tǒng)提供的功能主要分為信息采集、整理歸檔、訪問服務(wù)、WEB瀏覽服務(wù)及管理服務(wù)等,基于XML的電子病歷系統(tǒng)的模型結(jié)構(gòu)見圖1。
2 電子病歷數(shù)據(jù)的特點(diǎn)
2.1電子病歷數(shù)據(jù)內(nèi)容涉及廣泛 廣泛地說,電子病歷數(shù)據(jù)包括:門診病歷、住院病歷、病程記錄、手術(shù)記錄、會(huì)診記錄、出院記錄、病案首頁、護(hù)理記錄、護(hù)理評(píng)估單、體溫單等,甚至可包含PACS圖文報(bào)告,LIS檢驗(yàn)結(jié)棍,病理報(bào)告,等等。
2.2電子病歷數(shù)據(jù)結(jié)構(gòu)和樣式的復(fù)雜性
2.2.1電子病歷數(shù)據(jù)的結(jié)構(gòu)和樣式的幾種類型分別是:文本型(如入院記錄),表格型(如護(hù)理記錄單),圖文混排型(如外科手術(shù)記錄、PACS圖文報(bào)告),圖形數(shù)據(jù)(如護(hù)理體溫單)等,見圖2。
2.2.2由于各患者的病情不同,即使用同一個(gè)模板書寫出的病歷,在內(nèi)容和細(xì)節(jié)上差也會(huì)很大。
2.2.3電子病歷數(shù)據(jù)的樣式由于當(dāng)前書寫習(xí)慣上的共識(shí)也決定了其復(fù)雜性,如產(chǎn)科病歷中“39+3w”等,說明了病歷的樣式上還需要通過類似上下角標(biāo)的字體來表達(dá)它特點(diǎn)的意義。
2.3電子病歷本身的特殊要求也增加了數(shù)據(jù)的復(fù)雜性 電子病歷執(zhí)行著三級(jí)檢診痕跡保留,因此對(duì)于檢診產(chǎn)生的修改和刪除的痕跡,即便是所見即所得的檢診方式也需要特殊的語法來存儲(chǔ)這些電子病歷數(shù)據(jù)。
2.4電子病歷數(shù)據(jù)量和長(zhǎng)期存儲(chǔ)特性 按照我國(guó)《醫(yī)療機(jī)構(gòu)管理?xiàng)l例實(shí)施細(xì)則》第53條規(guī)定,醫(yī)療機(jī)構(gòu)的門診病歷的保存期不得少于15年,住院病歷的保存期不得少于30年。從紙質(zhì)病歷延伸到電子病歷,就必須實(shí)現(xiàn)長(zhǎng)期在線存儲(chǔ)并實(shí)時(shí)應(yīng)用于臨床和科研。隨著時(shí)間的推移,醫(yī)療管理和醫(yī)療技術(shù)將會(huì)不斷變化與更新,病歷格式、內(nèi)容等也會(huì)隨之出現(xiàn)較大的變換,因此電子病歷系統(tǒng)需要解決如何適應(yīng)變換和保持電子病歷的連續(xù)性的問題。
2.5結(jié)構(gòu)化電子病歷標(biāo)準(zhǔn)術(shù)語不完善性 國(guó)內(nèi)結(jié)構(gòu)化電子病歷經(jīng)過幾年的發(fā)展,目前電子病歷書寫文書的標(biāo)準(zhǔn)已有很多,但CPOE(computerized physician order entry)的標(biāo)準(zhǔn)卻鮮見。由于電子處方系統(tǒng)CPOE在信息化中是一個(gè)中軸線,醫(yī)療行為在醫(yī)囑上基本都會(huì)得到體現(xiàn),但在缺乏標(biāo)準(zhǔn)的情況下,電子病歷與HIS的數(shù)據(jù)將無法交互。雖然1987年美國(guó)國(guó)家標(biāo)準(zhǔn)局公布了HL7(healthlevel7),為醫(yī)療信息系統(tǒng)提供統(tǒng)一的信息接口標(biāo)準(zhǔn),并且在美國(guó)所有醫(yī)療信息系統(tǒng)中強(qiáng)制執(zhí)行該標(biāo)準(zhǔn)。但我國(guó)目前尚未制定一個(gè)相對(duì)完善的標(biāo)準(zhǔn)化體系,仍然缺乏一致的標(biāo)準(zhǔn)和對(duì)標(biāo)準(zhǔn)的支持。所以說一個(gè)可以滿足將來術(shù)語擴(kuò)展的電子病歷系統(tǒng)是關(guān)鍵技術(shù)之一。
3 XML存儲(chǔ)方式
當(dāng)前我國(guó)XML數(shù)據(jù)存儲(chǔ)方法主要有:關(guān)系數(shù)據(jù)庫方式、文件系統(tǒng)方式、Native XML數(shù)據(jù)庫存儲(chǔ)方式。
3.1關(guān)系數(shù)據(jù)庫存儲(chǔ)方式 關(guān)系數(shù)據(jù)庫存儲(chǔ)方式是指將XML半結(jié)構(gòu)數(shù)據(jù)轉(zhuǎn)換為結(jié)構(gòu)化數(shù)據(jù)后存儲(chǔ)于二維表中,利用關(guān)系數(shù)據(jù)庫的成熟技術(shù)來實(shí)現(xiàn)XML數(shù)據(jù)的存儲(chǔ)和管理。存儲(chǔ)的過程首先確定XML文檔到關(guān)系數(shù)據(jù)庫的映射策略,創(chuàng)建關(guān)系模式,然后使用DMO/SAX/SQL方法拆分XML文檔,將拆分后的數(shù)據(jù)存儲(chǔ)到已創(chuàng)建的關(guān)系數(shù)據(jù)庫的相應(yīng)字段中。以下這些都是基于關(guān)系型數(shù)據(jù)庫的大字段存儲(chǔ),如Microsoft 公司的sqlserver數(shù)據(jù)庫中text/image,瑞典MySQL AB 公司的mysql數(shù)據(jù)庫中text/longtext/clob/blob,甲骨文公司的oracle數(shù)據(jù)庫中l(wèi)ong/blob/clob。
3.2文件系統(tǒng)方式 文件系統(tǒng)方式相對(duì)比較簡(jiǎn)單,它把XML文檔以文本文件的形式存放到相應(yīng)的文件夾中,通過操作系統(tǒng)自身文件管理體系來管理其中的XML數(shù)據(jù)。這種方法通常是通過DOM和SAX等編程接口直接來實(shí)現(xiàn)應(yīng)用程序?qū)ML數(shù)據(jù)的訪問和存取。
3.3原生(native)XML數(shù)據(jù)庫存儲(chǔ)方式 原生XML數(shù)據(jù)庫專門用于存儲(chǔ)XML文檔的數(shù)據(jù)庫,XML文檔是基本存儲(chǔ)單元,由于XML數(shù)據(jù)無需經(jīng)過映射,在物理結(jié)構(gòu)和邏輯結(jié)構(gòu)一致,所以保持了數(shù)據(jù)的完整性。將電子病歷的元素內(nèi)容以XML文檔方式保存到支持XML結(jié)構(gòu)的數(shù)據(jù)庫中,從目前的主流數(shù)據(jù)庫Oracle、SQLServer、DB2這些大型數(shù)據(jù)來說,都支持xml文件存儲(chǔ)。這些數(shù)據(jù)庫的功能為基于XQuery查詢的XML 數(shù)據(jù)檢索提供了良好的底層。
4 XML電子病歷數(shù)據(jù)的存儲(chǔ)方式分析
4.1關(guān)系數(shù)據(jù)庫存儲(chǔ)方式不利于長(zhǎng)期存儲(chǔ)電子病歷數(shù)據(jù) 衛(wèi)生部規(guī)定住院病歷至少要保存30年,所以電子病歷的數(shù)據(jù)量相當(dāng)龐大。由于面向結(jié)構(gòu)化數(shù)據(jù)的關(guān)系型數(shù)據(jù)庫無法直接處理電子病歷中存在的半結(jié)構(gòu)化數(shù)據(jù),所以基于XML的電子病歷系統(tǒng)與醫(yī)院管理信息系統(tǒng)間需要數(shù)據(jù)格式的轉(zhuǎn)換。
由于XML文檔和數(shù)據(jù)庫模式之間的轉(zhuǎn)換會(huì)耗費(fèi)一定時(shí)間,如果把文件直接存儲(chǔ)到數(shù)據(jù)庫的大字段類型中,隨著數(shù)據(jù)的日益增長(zhǎng)將會(huì)嚴(yán)重影響列表顯示和統(tǒng)計(jì)的效率。
影響查詢速度的原因,除了行數(shù),還包括表所占的物理空間的大小。當(dāng)表空間內(nèi)的數(shù)據(jù)量較小時(shí),在查詢方面感覺不到明顯的差異。但是如果大字段所存儲(chǔ)的數(shù)據(jù)都是大型文本或較大的文件時(shí),會(huì)導(dǎo)致數(shù)據(jù)庫表的物理空間快速增大,所占用的空間甚至可達(dá)到整表所占空間的90%以上。當(dāng)龐大的記錄數(shù)占用了大量的表空間后,數(shù)據(jù)查詢的速度必將受到影響,即使通過提高服務(wù)器本身的硬件性能和優(yōu)化索引,但根本問題其實(shí)并沒有得到解決。
4.2完全采用XML數(shù)據(jù)庫來存儲(chǔ)XML文件有一定的缺陷
4.2.1很難滿足動(dòng)態(tài)的XML病歷保存及樣式顯示。電子病歷由于有字體、表格等格式的存在,每個(gè)患者的病歷內(nèi)容幾乎不同,因此實(shí)現(xiàn)樣式和XML數(shù)據(jù)分離的方式存在一定難度。如懷孕“39+3w”,此節(jié)點(diǎn)在XML文件里是一個(gè)元素,如果在單個(gè)元素內(nèi)實(shí)現(xiàn)樣式是比較困難的。我們?cè)倏匆粋€(gè)例子,見圖3,“婚育史”在結(jié)構(gòu)中不是一個(gè)單獨(dú)的結(jié)點(diǎn),它將展開一個(gè)婚育史的子樹,詳細(xì)描述年齡、子女?dāng)?shù)等。因此數(shù)據(jù)庫方式很難用一個(gè)固定的Scheme和相對(duì)的樣式來保證這些變化。除非犧牲類似這種展開節(jié)點(diǎn)的粒度,但同時(shí)也就失去了結(jié)構(gòu)化電子病歷的意義。
4.2.2很難滿足電子病歷升級(jí)數(shù)據(jù)兼容的需求。XML文檔的結(jié)構(gòu)和內(nèi)容要遵循XML基本語法,符合相應(yīng)的文檔規(guī)則,還受到一定模式的約束。國(guó)內(nèi)出現(xiàn)過很多基于數(shù)據(jù)庫存儲(chǔ)電子病歷升級(jí)不兼容的問題,原有數(shù)據(jù)庫的開發(fā)都是基于既定的XML schema 進(jìn)行。因?yàn)閄ML schema沒有數(shù)據(jù)類型的支持,在大多數(shù)應(yīng)用環(huán)境下表現(xiàn)能力不足,而且結(jié)構(gòu)不夠結(jié)構(gòu)化,重用的代價(jià)相對(duì)較高,為滿足升級(jí)需求不得不放棄兼容原來的數(shù)據(jù),完全采用XML數(shù)據(jù)庫存儲(chǔ)數(shù)據(jù)就發(fā)生過這種情況。如果因?yàn)橄到y(tǒng)升級(jí)就導(dǎo)致電子病歷原有數(shù)據(jù)不能兼容,查看舊版系統(tǒng)的病歷還必須使用舊版本系統(tǒng)進(jìn)行,電子病歷升級(jí)也完全失去了意義。
4.2.3各歷史階段病歷樣式版本管理困難。隨著時(shí)間的推移,由于病歷樣式和內(nèi)容的變換,電子病歷系統(tǒng)需要管理大量的樣式。如何很好的管理這些樣式是一大難題,一旦樣式丟失,就不能正確按照原來格式復(fù)原顯示病歷,于是又產(chǎn)生了新的問題。
4.2.4電子病歷痕跡管理困難。痕跡實(shí)際上是一種樣式,這種樣式的隨機(jī)性非常大而且無法預(yù)計(jì),樣式相同的概率幾乎為零,導(dǎo)致的后果就是不得不為每份病歷文件都保留一份樣式,因此數(shù)據(jù)庫中樣式和內(nèi)容分離的優(yōu)勢(shì)就徹底的消失了。所以說基于數(shù)據(jù)庫的XML文檔來存儲(chǔ)電子病歷非常適合國(guó)外的電子病歷系統(tǒng),它們格式固定,內(nèi)容簡(jiǎn)潔;但相對(duì)于目前國(guó)內(nèi)電子病歷系統(tǒng)多樣性與復(fù)雜性來說就格格不入,這也是為什么國(guó)外電子病歷系統(tǒng)引進(jìn)到國(guó)內(nèi)卻不能直接使用的原因。
4.3文件系統(tǒng)存儲(chǔ)方式存儲(chǔ)容易修改數(shù)據(jù)難 文件系統(tǒng)存儲(chǔ)方式的XML文件是ASCII文件,沒有直接經(jīng)過壓縮處理,存儲(chǔ)信息量大并占用系統(tǒng)大量?jī)?nèi)存。查詢時(shí)不能獲取文檔內(nèi)部信息,不利于查詢和修改,重要的是難以管理這些缺乏一致性和完整性的龐大數(shù)據(jù)。
另外,如果采用文件服務(wù)器來集中存儲(chǔ)電子病歷的XML文件,客戶端則透過通用Internet文件系統(tǒng)CIFS(Common Internet File System)或網(wǎng)絡(luò)文件系統(tǒng)NFS(Network File System)協(xié)議來讀寫文件服務(wù)器。但因文件服務(wù)器不是為了應(yīng)付大量文件讀寫而設(shè)計(jì),特別是類似三甲的大型綜合性醫(yī)院對(duì)電子病歷數(shù)據(jù)的并發(fā)訪問量需求非常高,在大量客戶端同時(shí)讀寫的情況下該存儲(chǔ)方式表現(xiàn)明顯不佳。
5 優(yōu)化方案
根據(jù)上述關(guān)于電子病歷數(shù)據(jù)存儲(chǔ)的問題,結(jié)合我院的電子病歷系統(tǒng)的建設(shè)經(jīng)驗(yàn),總結(jié)了以下優(yōu)化方案。
5.1 XML文件的層次化結(jié)構(gòu)與以患者為中心,由多部分內(nèi)容組成的病歷結(jié)構(gòu)相符,所以一個(gè)XML文件對(duì)應(yīng)一個(gè)患者的病歷信息,方便數(shù)據(jù)管理。對(duì)于原有數(shù)據(jù)庫的純文本醫(yī)療文檔,可以通過語義識(shí)別功能將文本信息轉(zhuǎn)化為XML模式,這樣便實(shí)現(xiàn)了病歷文檔的連續(xù)性。
5.2采用加密的壓縮的XML文件來實(shí)現(xiàn)病歷內(nèi)容和樣式保存。加密的XML文件保證了病歷安全性,在非授權(quán)的情況下無法查看和更改病歷;由于XML文件的壓縮率可高達(dá)70%(即100K可以壓縮到30K),壓縮后的XML文件可以提高網(wǎng)絡(luò)傳輸速率。通過采用上述方法既緩解了醫(yī)院的網(wǎng)絡(luò)壓力,同時(shí)通過加密傳輸,保證了病歷的傳輸安全性,見圖4。
5.3采用基于Message Queue (消息隊(duì)列技術(shù))的分布式、Remoting通訊機(jī)制開發(fā)的中間件技術(shù)實(shí)現(xiàn)分布式的3層架構(gòu)。其中服務(wù)層機(jī)制包括:消息服務(wù)、文件服務(wù)與接口服務(wù)三部分。消息服務(wù)提供了客戶端系統(tǒng)訪問認(rèn)證機(jī)制和系統(tǒng)內(nèi)的轉(zhuǎn)換消息流,文件服務(wù)器用于認(rèn)證與獲取醫(yī)療檔案,接口服務(wù)用于驗(yàn)證用戶登陸驗(yàn)證,數(shù)據(jù)庫連接獲取等。
5.4 XML文件采用分布式存儲(chǔ)方式。該技術(shù)將醫(yī)院內(nèi)網(wǎng)網(wǎng)絡(luò)中各機(jī)器訪問服務(wù)器資源中的硬盤空間集合并構(gòu)成一個(gè)虛擬的存儲(chǔ)設(shè)備,數(shù)據(jù)資源其實(shí)分散存儲(chǔ)在醫(yī)院每一個(gè)客戶終端。如此便解決了長(zhǎng)期海量存儲(chǔ)問題的同時(shí)也保證了系統(tǒng)快速響應(yīng)問題。
5.5歸檔后的病歷信息由于占用存儲(chǔ)空間大而且需要長(zhǎng)期離線存儲(chǔ),所以適合使用文件方式存儲(chǔ)。如電子病歷中的PACS圖片,病理報(bào)告等數(shù)據(jù)以多媒體文件的方式存儲(chǔ)在服務(wù)器中,采用XLink技術(shù)將多媒體文件與XML文檔關(guān)聯(lián),多媒體文件統(tǒng)一采用關(guān)系表建立索引實(shí)施管理。
6 結(jié)論
電子病歷通過應(yīng)用XML技術(shù),使醫(yī)療數(shù)據(jù)實(shí)現(xiàn)離線存儲(chǔ)、在線調(diào)用、包裝遷移,避免了使用單一數(shù)據(jù)庫存儲(chǔ)產(chǎn)生的各種問題。如數(shù)據(jù)庫訪問速度跟數(shù)據(jù)量增長(zhǎng)成正比,病歷數(shù)據(jù)無法離線存儲(chǔ),數(shù)據(jù)庫結(jié)構(gòu)不一致無法實(shí)現(xiàn)遠(yuǎn)程共享傳輸?shù)取?/p>
由于電子病歷系統(tǒng)長(zhǎng)期存儲(chǔ)代替紙張病歷提供的醫(yī)療信息,這需要建立記錄數(shù)據(jù)的長(zhǎng)期存儲(chǔ)和管理體系。建立長(zhǎng)期存儲(chǔ)系統(tǒng)的目的就是解決如何讓相同的病歷數(shù)據(jù)在不同時(shí)期與不同數(shù)據(jù)庫結(jié)構(gòu)能否兼容的問題。其數(shù)據(jù)管理系統(tǒng)應(yīng)支持患者信息累積式增加,支持相同的病歷數(shù)據(jù)在不同數(shù)據(jù)庫環(huán)境中的遷移和備份。
參考文獻(xiàn):
[1]劉穎,張玉芳,熊忠陽.XML文檔在關(guān)系數(shù)據(jù)庫中的存儲(chǔ)方法[J].計(jì)算機(jī)應(yīng)用,2004,04.
[2]王秋云.XML數(shù)據(jù)存儲(chǔ)方法的研究[J].重慶科技學(xué)院學(xué)報(bào)(自然科學(xué)版),2007,129(4).
[3]陳健,徐雅斌.基于XML的電子病歷系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].北京信息科技大學(xué)學(xué)報(bào),2009, 09,24(3).
[4]楊澤輝,劉長(zhǎng)春.電子病歷結(jié)構(gòu)化模型分析與設(shè)計(jì)[J].中國(guó)數(shù)字醫(yī)學(xué),2011,6(7):46-48.
編輯/成森