當(dāng)前位置:工程項(xiàng)目OA系統(tǒng) > 領(lǐng)域應(yīng)用 > 醫(yī)院管理OA系統(tǒng) > 門診收費(fèi)管理系統(tǒng)
O racle X M L D B和D B 2 p ure X M L在
申請(qǐng)免費(fèi)試用、咨詢電話:400-8352-114
隨著醫(yī)療信息化發(fā)展,醫(yī)院信息化已從傳統(tǒng)的以財(cái)務(wù)管理為核心的醫(yī)院管理信息系統(tǒng)向以病人為中心的臨床信息系統(tǒng)轉(zhuǎn)變。在這個(gè)轉(zhuǎn)變過程中,電子病歷軟件系統(tǒng)的實(shí)施將起到核心作用。從某種意義上說,電子病歷軟件系統(tǒng)成功與否在很大程度上決定了臨床信息系統(tǒng)的成敗。
然而,一方面由于病人病情復(fù)雜性和多變性,決定電子病歷結(jié)構(gòu)的靈活性;另一方面,由于醫(yī)療、教學(xué)和科研工作對(duì)電子病歷要求的側(cè)重點(diǎn)不同,要求病歷不但要具有良好結(jié)構(gòu)和完整內(nèi)容,還必須具有對(duì)某些關(guān)鍵數(shù)據(jù)良好查詢性能。這種結(jié)構(gòu)的靈活性和對(duì)不同類型數(shù)據(jù)要求的多樣性,對(duì)基于傳統(tǒng)關(guān)系型模型的數(shù)據(jù)庫管理系統(tǒng)軟件提出強(qiáng)有力挑戰(zhàn)。
1 Oracle XML DB和DB2 pure XML概述
隨著計(jì)算機(jī)技術(shù)發(fā)展,XML技術(shù)以其結(jié)構(gòu)和內(nèi)容的自我定義和自我描述等特性成為電子病歷實(shí)現(xiàn)的主要技術(shù)手段。但是隨著大量基于XML電子病歷的產(chǎn)生,如何對(duì)這些XML文件進(jìn)行高效管理,如何提高對(duì)海量XML病歷文件的查詢性能,如何使XML病歷文件和已有關(guān)系數(shù)據(jù)進(jìn)行良好融合,成為擺在各大數(shù)據(jù)庫軟件開發(fā)商面前一個(gè)嚴(yán)峻的挑戰(zhàn)。在XML數(shù)據(jù)文件管理以及如何將XML數(shù)據(jù)和已有的關(guān)系數(shù)據(jù)進(jìn)行良好的融合,建立一個(gè)可同時(shí)管理關(guān)系數(shù)據(jù)和XML數(shù)據(jù)的混合性數(shù)據(jù)庫方面,Oracle公司和IBM公司都提供了各自解決方案,就是分別以O(shè)racle XML DB和DB2 pure XML為代表的數(shù)據(jù)庫管理系統(tǒng)。它們都采用了W3C (World WideWeb Consortium)的XML數(shù)據(jù)模型,都提供了對(duì)XML Schema和XPath等技術(shù)標(biāo)準(zhǔn)的支持,都可以對(duì)關(guān)系型數(shù)據(jù)和XML數(shù)據(jù)提供良好支持。但是,它們?cè)谠O(shè)計(jì)和實(shí)現(xiàn)方面還是存在一定差別。DB2 pureXML中XML數(shù)據(jù)是以一個(gè)列的形式存儲(chǔ)在關(guān)系表中,這種混合數(shù)據(jù)庫采用兩種不同的解析方式來處理SQL和XQuery,即一個(gè)編譯器可以同時(shí)處理兩種語言,各種應(yīng)用可以通過DB2 9的編譯器和優(yōu)化器同時(shí)管理關(guān)系數(shù)據(jù)和XML數(shù)據(jù)。文中圖表顯示DB2pure XML框架,見圖1。Oracle XML DB是將XML數(shù)據(jù)轉(zhuǎn)化為SQL對(duì)象,利用關(guān)系數(shù)據(jù)的處理方法來處理XML數(shù)據(jù)。XML數(shù)據(jù)可以存儲(chǔ)在XMLTYPE表中,也可以存儲(chǔ)在含有XML—TYPE的數(shù)據(jù)列的表或者視圖中。對(duì)于有些基于Schema的XML數(shù)據(jù)可以通過Schema映射到相應(yīng)的表中,對(duì)于有些XML數(shù)據(jù)可以以CLOB字段形式存儲(chǔ)。圖表顯示了OracleXML DB的框架,見圖2
本文將從存儲(chǔ)、建立索引和查詢3個(gè)角度來對(duì)兩個(gè)XML數(shù)據(jù)庫在電子病歷的實(shí)現(xiàn)方面進(jìn)行對(duì)比。
2 兩種數(shù)據(jù)庫存儲(chǔ)機(jī)制差別明顯
2.1 DB2 pure XML存儲(chǔ)機(jī)制相對(duì)簡單
DB2 pure XML就是完整地保存XML數(shù)據(jù),整個(gè)XML數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)表中,XML數(shù)據(jù)對(duì)象是獨(dú)立于其父表單獨(dú)存儲(chǔ)的,對(duì)于XML數(shù)據(jù)類型的列的每一行都有一個(gè)XML數(shù)據(jù)標(biāo)識(shí)符(XML DataSpecifier(XDS))存儲(chǔ)在表中。XDS中存儲(chǔ)著如何訪問硬盤的XML數(shù)據(jù)的信息?。圖3顯示了各種結(jié)構(gòu)之間的關(guān)系。如執(zhí)行SQL語句:
CREATE TABLE OPERATE (ID INTEGER NOTNULL,DOC XML);建立手術(shù)記錄表(Operate)其中DOC是XML數(shù)據(jù)列,用于記錄手術(shù)記錄。2.2 Oracle XML DB基于對(duì)數(shù)據(jù)要求的不同采用3種不同存儲(chǔ)機(jī)制
(1)對(duì)于有些數(shù)據(jù),只需要保存良好的結(jié)構(gòu)和數(shù)據(jù)的完整,這種數(shù)據(jù)就以CLOB的形式進(jìn)行存儲(chǔ)。
(2)對(duì)于有些數(shù)據(jù),對(duì)查詢的性能和更新的力度要求非常高,和傳統(tǒng)的關(guān)系型數(shù)據(jù)類似,這種數(shù)據(jù)需要先定義XML數(shù)據(jù)的模式XML Schema,在Schema中定義每個(gè)數(shù)據(jù)的數(shù)據(jù)類型,然后注冊(cè)這個(gè)Schema,根據(jù)注冊(cè)的Schema將XML數(shù)據(jù)拆分映射到對(duì)應(yīng)的關(guān)系數(shù)據(jù)表中,采用完全結(jié)構(gòu)化的存儲(chǔ)機(jī)制。
(3)對(duì)于有些數(shù)據(jù),其中一部分滿足上述第1種情況,而另一部分滿足上述第2種情況,是一種半結(jié)構(gòu)化的混合數(shù)據(jù),這種情況采用的機(jī)制和第2種方法類似,就是將非結(jié)構(gòu)化部分的數(shù)據(jù)類型定義為CLOB 。
例如:創(chuàng)建一個(gè)半結(jié)構(gòu)化的手術(shù)記錄的XMLSchema。其中手術(shù)名稱、麻醉方式、診斷名稱、手術(shù)時(shí)間和手術(shù)醫(yī)生,這些都是比較重要的需要結(jié)構(gòu)化存儲(chǔ)的數(shù)據(jù),采用和結(jié)構(gòu)化數(shù)據(jù)相同的SQL映射方式。然而手術(shù)過程,只是記錄手術(shù)的過程,是不需要結(jié)構(gòu)化的數(shù)據(jù),其SQL映射屬性xdb:SQLType為“CLOB”,表示這部分的XML數(shù)據(jù)以非結(jié)構(gòu)化的形式存儲(chǔ)。
綜上所述,在數(shù)據(jù)存儲(chǔ)方面,DB2 pure XML和Oracle XML DB各有特點(diǎn),采用DB2 pure XML的存儲(chǔ)機(jī)制,XML文檔的內(nèi)容和結(jié)構(gòu)可以更加靈活,醫(yī)生可以根據(jù)病人和病情不同設(shè)計(jì)不同的內(nèi)容和結(jié)構(gòu)的病歷。而Oracle XML DB雖然是基于已經(jīng)注冊(cè)的Schema的,結(jié)構(gòu)相對(duì)固定,但是對(duì)于不同的數(shù)據(jù)采用了不同的存儲(chǔ)方式,特別是對(duì)于那些對(duì)醫(yī)學(xué)科研有重要意義的數(shù)據(jù)采用結(jié)構(gòu)化的存儲(chǔ)方式,理論上在查詢等方面具有更好的性能。
3 建立索引
從海量存儲(chǔ)的XML病歷文件中快速檢索出滿足一定條件的病歷,為臨床科研和教學(xué)工作服務(wù),這是電子病歷比較重要的特點(diǎn)之一。通過建立索引的方式,可以提高XML病歷的查詢性能,DB2 pureXML和Oracle XML DB都為XML建立索引,提高XML文件的查詢性能方面提供自己的解決方案。(1)DB2 pure XML支持3種XML相關(guān)索引:XML域索引,XML列路徑索引和在XML列上創(chuàng)建索引,前兩種索引是在XML文檔插入數(shù)據(jù)庫中時(shí)系統(tǒng)自動(dòng)建立的,第3種索引是根據(jù)具體情況對(duì)查詢的關(guān)鍵數(shù)據(jù)進(jìn)行索引。DB2采用了基于Xpath標(biāo)準(zhǔn)的XMLPATrERN關(guān)鍵字來創(chuàng)建索引?。如執(zhí)行下列SQL語句:CREATE INDEX OPERATIONINDEX ON OPER.ATE (DOC)GENERATE KEY USING XMLPATFERN‘/Operation/OperationName’ AS SQL VARCHAR(200);
就是在手術(shù)表(OPERATE)上的手術(shù)記錄XML列(DOC)上的手術(shù)名稱上面建立索引。
(2)Oracle XML DB也可以建立索引,一般是對(duì)于結(jié)構(gòu)化的數(shù)據(jù)建立索引,采用和關(guān)系數(shù)據(jù)庫類似的形式。如執(zhí)行如下SQL語句:CREATE INDEX OPERATIONINDEX ON MED— —OPERATION (XMLDATA. “0PERAT10N”);可以對(duì)手術(shù)表(MED— OPERA.ON)上的手術(shù)名稱建立索引。對(duì)于非結(jié)構(gòu)化的數(shù)據(jù),還可以利用基于Xpath標(biāo)準(zhǔn)的一些函數(shù)(如:Extract)等建立函數(shù)索引。
4 查詢
查詢方面,兩者都對(duì)關(guān)系數(shù)據(jù)查詢和XML數(shù)據(jù)查詢進(jìn)行很好結(jié)合,可以對(duì)兩種數(shù)據(jù)進(jìn)行混合查詢。
(1)在DB2 pure XML中,提供了Xquery的查詢,利用基于Xpath等標(biāo)準(zhǔn)的函數(shù)進(jìn)行查詢,查詢中利用了DB2的“FLWOR” (for,let,where,or—der by和return)表達(dá)式。For表示以綁定的一個(gè)變量表示一個(gè)序列,Let是為變量進(jìn)行賦值,Where表示利用各種條件對(duì)結(jié)果進(jìn)行過濾,Order by表示排序,Return 表示返回的結(jié)果集合??梢岳肧QLQUERY函數(shù)在Xquery中插入SQL語句進(jìn)行查詢。也可以利用XMLTable函數(shù),將Xquery查詢中的XML數(shù)據(jù)轉(zhuǎn)化為關(guān)系數(shù)據(jù),采用關(guān)系查詢語法和其他關(guān)系數(shù)據(jù)進(jìn)行混合查詢? 。如執(zhí)行下列代碼:SELECT inpatient. id, name,home, operationFROM inpatient, OPERATE, XMLTABLE ( ‘f0r$oper in $a/Operation return $oper’passing OPER-ATE.doc as“a”COLUMNS operation varchar(200)path ‘OperationName’ as T where inpatient. id =1 and inpatient. id=operate. id將operate表中的XML文檔利用XMLTable函數(shù)轉(zhuǎn)化為關(guān)系數(shù)據(jù)和病人表(Inpatient)進(jìn)行聯(lián)合查詢。
(2)Oracle XML DB中針對(duì)不同類型的數(shù)據(jù),提供了不同的查詢方法,對(duì)于結(jié)構(gòu)化的數(shù)據(jù),可以利用XMLDATA的屬性進(jìn)行類似結(jié)構(gòu)化的查詢和利用extract(),extractValue (), 和existsNode ()等基于Xpath的函數(shù),對(duì)于非結(jié)構(gòu)化的數(shù)據(jù)只能利用基于Xpath的函數(shù)進(jìn)行查詢。當(dāng)然也可以將對(duì)XML查詢和對(duì)關(guān)系數(shù)據(jù)查詢混合起來進(jìn)行使用。執(zhí)行下列代碼可以執(zhí)行類似結(jié)構(gòu)化查詢,可以對(duì)病歷號(hào)和診斷進(jìn)行查詢。Select t.XMLData. “PatientID”as病歷號(hào),t.XMLData.“Diagnose”as診斷from operation t執(zhí)行下列代碼可以對(duì)非結(jié)構(gòu)化數(shù)據(jù)進(jìn)行查詢。Select extractValue (e. record,’/work/doc-tor’) Doctor, extractValue (e. record,’/work/date’)datetime from work e where e. patient— id =‘ZY1001’綜上所述,Oracle XML DB和DB2 pure XML都是可以將關(guān)系型數(shù)據(jù)和XML數(shù)據(jù)進(jìn)行混合管理的數(shù)據(jù)庫軟件。都可以在管理傳統(tǒng)關(guān)系數(shù)據(jù)的同時(shí),管理XML數(shù)據(jù)。它們之間最大的區(qū)別在于OracleXML DB可以針對(duì)不同應(yīng)用的需要把XML數(shù)據(jù)轉(zhuǎn)化為傳統(tǒng)的關(guān)系數(shù)據(jù),利用傳統(tǒng)關(guān)系數(shù)據(jù)來完成各種數(shù)據(jù)操作,這樣的機(jī)制具有更強(qiáng)的針對(duì)性。而DB2pure XML是嚴(yán)格地按照層次結(jié)構(gòu)來管理XML數(shù)據(jù)的,這樣的機(jī)制具有更強(qiáng)的普遍性和靈活性,兩者都可以作為電子病歷的數(shù)據(jù)庫軟件,但是究竟哪一個(gè)更勝一籌,還需要通過實(shí)踐來檢驗(yàn)。
參考文獻(xiàn)
1 DB29pureXMLGuide[EB/OL).http://www.redbooks.ibm.com/.
2 Introducing Oracle XML DB [EB/OL].http://download— east. oracle. com/docs/cd/B10501一O1/appdev. 920/a96620/xdbO1 int.htm#1047 17 1.
3 Using Oracle XML DB [EB/OL].http://download—east. oracle. com/docs/cd/B10501— 0l/appdev. 920/a96620/xdb03usg.htm#1656.
- 1我院電子病歷系統(tǒng)功能與應(yīng)用體會(huì)
- 2國電子病歷檔案發(fā)展壩狀
- 3護(hù)理電子病歷的設(shè)計(jì)和質(zhì)量控制
- 4淺談電子病歷管理的現(xiàn)狀與發(fā)展
- 5實(shí)施his系統(tǒng)門診醫(yī)生工作站中的流程再造
- 6中小型醫(yī)院HIS系統(tǒng)更換的前期準(zhǔn)備與體會(huì)
- 7電子病案模版客戶定制技術(shù)研究
- 8電子病歷應(yīng)用中的問題及需求
- 9ISO質(zhì)量管理和病歷質(zhì)控系統(tǒng)ISO質(zhì)量管理和病歷質(zhì)控系統(tǒng)
- 10醫(yī)院信息管理系統(tǒng)在醫(yī)院管理中的作用
- 11PDCA循環(huán)在婦幼保健院電子病歷系統(tǒng)中的應(yīng)用
- 12只有16%的醫(yī)生通過電子方式轉(zhuǎn)診病人
- 13探究病院客戶關(guān)系治理系統(tǒng)的概念和意義
- 14新一代卒中電子病歷系統(tǒng)的建立與應(yīng)用
- 15國內(nèi)醫(yī)療IT廠商應(yīng)以信息技術(shù)推動(dòng)新醫(yī)改
- 16電子病歷“有效使用”的原則設(shè)置
- 17門診醫(yī)生工作站的應(yīng)用效果
- 18醫(yī)療信息系統(tǒng)的構(gòu)建
- 19醫(yī)院信息管理系統(tǒng)分析
- 20無線網(wǎng)絡(luò)的美麗新世界
- 21電子病歷系統(tǒng)設(shè)計(jì)及病歷交換
- 22淺析電子病歷內(nèi)涵質(zhì)量的主要影響因素與對(duì)策
- 23區(qū)域醫(yī)療信息共享平臺(tái)研究與實(shí)現(xiàn)
- 24門診收費(fèi)管理系統(tǒng)現(xiàn)狀
- 25武漢啟動(dòng)“智慧醫(yī)療工程”
- 26IT療信息化
- 27試論門診醫(yī)生工作站上線
- 28結(jié)構(gòu)化電子病歷與臨床科研
- 29電子病歷是醫(yī)院管理和增加競爭的必然趨勢
- 30電子病歷系統(tǒng)功能規(guī)范(試行)
成都公司:成都市成華區(qū)建設(shè)南路160號(hào)1層9號(hào)
重慶公司:重慶市江北區(qū)紅旗河溝華創(chuàng)商務(wù)大廈18樓