彭 程
(上海交通大學(xué)安泰經(jīng)濟與管理學(xué)院,上海200030)
隨著醫(yī)療相關(guān)部門的信息化,目前各醫(yī)院數(shù)據(jù)庫中積存了大量病人的診療數(shù)據(jù),醫(yī)療數(shù)據(jù)集成成為醫(yī)療信息化建設(shè)中的重要任務(wù).通過對病人的診療歷史數(shù)據(jù)進行融合分析,建立居民的電子健康檔案,充分利用現(xiàn)有資源逐步建立醫(yī)院之間和基層醫(yī)療機構(gòu)的信息互聯(lián)互通的機制,通過統(tǒng)一的數(shù)據(jù)訪問,對于提高醫(yī)療服務(wù)質(zhì)量和醫(yī)療決策分析有著重要意義[1-5].
但是由于醫(yī)療領(lǐng)域存在大量遺留系統(tǒng),醫(yī)院內(nèi)不同信息系統(tǒng)之間、不同醫(yī)院之間、醫(yī)院與各相關(guān)服務(wù)管理部門之間數(shù)據(jù)格式不統(tǒng)一,數(shù)據(jù)的自治性使得數(shù)據(jù)源可能在不通知集成系統(tǒng)的情況下就改變自身的數(shù)據(jù)或者數(shù)據(jù)結(jié)構(gòu),給數(shù)據(jù)集成提出了挑戰(zhàn).其次,醫(yī)療診治和醫(yī)療服務(wù)是一個跨學(xué)科領(lǐng)域的綜合服務(wù)體系,不同醫(yī)療科室之間數(shù)據(jù)含義差異明顯,不同職能管理部門對數(shù)據(jù)分析的角度不同,導(dǎo)致數(shù)據(jù)模型復(fù)雜,語義異構(gòu)性強.針對以上問題,本文主要以醫(yī)院關(guān)系數(shù)據(jù)庫為數(shù)據(jù)源,利用本體技術(shù),通過對數(shù)據(jù)庫的映射關(guān)系以及主外鍵等屬性分析,研究關(guān)系數(shù)據(jù)庫到電子健康檔案的本體模型的映射方法[6-8].
關(guān)系數(shù)據(jù)庫是當(dāng)前數(shù)據(jù)庫領(lǐng)域最重要的數(shù)據(jù)模式,有著廣泛的應(yīng)用.一個關(guān)系模式包括:1)關(guān)系的有限集合R;2)屬性的有限集合A;3)基本的數(shù)據(jù)類型集合T;4)關(guān)系的屬性 att:R→2A,給出關(guān)系的屬性集合;5)獲取關(guān)系主鍵 key:R→2A,說明哪些屬性是關(guān)系的主鍵;6)獲取屬性數(shù)據(jù)類型type:A→T給出屬性的數(shù)據(jù)類型;7)獲取關(guān)系中屬性值data:2A→V,給出關(guān)系中屬性的取值集合.
此外還有完整性約束特征,包括:1)實體完整性,如主鍵值不能為空等;2)參照完整性,關(guān)系間的引用關(guān)系.
基于本體的靜態(tài)屬性,本文對以上的數(shù)據(jù)模式進行映射.
本體的結(jié)構(gòu)是一個五元組
其中:C中的元素稱為概念,可以指任何事物,從語義上來講,它表示的是對象的集合.R中的元素稱為關(guān)系,表示概念間的部分與整體、子類與父類、實例與類、實例與對象的關(guān)系;F表示函數(shù),即前n-1個元素惟一決定第n個元素;A表示公理,它是對類的永真斷言;I表示實例,代表概念類的具體實體.
在完成映射之后,本體與關(guān)系數(shù)據(jù)庫的差別在于:1)任何事物在本體中都是概念,2)在本體中,屬性和關(guān)聯(lián)在本體中不作區(qū)分,3)在本體中構(gòu)建層次關(guān)系,表現(xiàn)更多語義.
模式信息的抽取可通過標(biāo)準(zhǔn)ODBC或JDBC等的API來獲得,本體的構(gòu)建主要通過關(guān)系、屬性、主外鍵之間的關(guān)聯(lián)進行映射來完成.轉(zhuǎn)換的過程有一定的先后順序,本體也是逐步創(chuàng)建完成過的.在局部本體的建立中,從關(guān)系映射、屬性及參照完整性映射和實體完整性映射幾個方面描述轉(zhuǎn)換過程.
關(guān)系模式如下:
關(guān)系數(shù)據(jù)庫中關(guān)系間的映射有 1∶1、1∶N、N∶N三種類型,針對不同的類型,在本體創(chuàng)建過程中類的建立有所不同.
1)1∶1 的關(guān)系
如Patient表和 Patient_Info是1∶1的映射關(guān)系,實際上表達的都是患者信息,只不過信息被分散在兩張表里.因此只需創(chuàng)建一個類.所創(chuàng)建的類包含兩個表中所有屬性.見圖1.
圖1 一對一關(guān)系
2)1∶N 的關(guān)系
如Doctor和Inpatient_Record是1∶N的關(guān)系,創(chuàng)建為兩個類,兩個類通過連接兩個表的屬性(DoctorID)構(gòu)成屬性關(guān)聯(lián);見圖2.
圖2 一對多的映射
3)N∶N 關(guān)系
在以上數(shù)據(jù)庫中,Inpatient_Record連接了Patient和Doctor兩個表,其中 Patient和 Doctor即為N∶N的關(guān)系,Inpatient_Record即為中間表.如果中間表只包含外鍵,那么只需為兩端的兩張表創(chuàng)建類,而不需要為中間表創(chuàng)建.倘若中間表包含外鍵以外的屬性,那么在為兩個表創(chuàng)建類的同時,為中間表也創(chuàng)建一個類.因此根據(jù)以上規(guī)則,將Inpatient_Record映射為本體中的類.見圖3.
圖3 多對多的映射
經(jīng)過以上步驟,本體模型中類的建立基本完成.在此基礎(chǔ)上,對屬性和完整性約束進行映射,完成本體的構(gòu)建.
關(guān)系數(shù)據(jù)庫中的屬性根據(jù)主鍵、外鍵和普通字段進行映射.
1)主鍵
主鍵作為標(biāo)識數(shù)據(jù)表匯總每一條元組,在同一數(shù)據(jù)庫中保證元組的惟一性.主鍵映射為 data property.
2)外鍵
外鍵是其他關(guān)系中的主鍵,是聯(lián)系兩個數(shù)據(jù)表的屬性.當(dāng)外鍵所屬的關(guān)系已建立概念,則映射為所屬概念的object property,定義域為外鍵字段所引用的實例,值域映射至被引用的實例.
3)普通字段
對于數(shù)據(jù)庫中的普通字段,在診療信息中都具有豐富的語義,因此并不將普通字段映射為本體中的data property,而是將為其創(chuàng)建概念.比如Patient中的CardType(卡類型)和CardNo(卡號),在健康檔案本體中,卡類型和卡號是集成患者在不同醫(yī)院的診療信息的關(guān)鍵,因此,為 CardType和CardNo創(chuàng)建Card概念.
觸發(fā)器是一種特殊的存儲過程,在用戶對數(shù)據(jù)庫進行插入、更新、刪除操作時,被自動執(zhí)行.為了使得本體信息的準(zhǔn)確完整性,本文考慮將觸發(fā)器映射至本體中.關(guān)系數(shù)據(jù)庫中常見的觸發(fā)器的格式如下:
在數(shù)據(jù)庫中,Condition完全由即時的update觸發(fā)的,在本體中,根據(jù)2.1和2.2節(jié)的映射規(guī)則,將觸發(fā)器中的condition分解至每一個本體中的屬性,對于執(zhí)行的pl/sql-fragment語句也相應(yīng)的映射至概念及屬性上,并建立相應(yīng)的公理規(guī)則.
對于關(guān)系數(shù)據(jù)庫中實體完整性,如 key,unique,not null等的映射是必不可少的,實體完整性轉(zhuǎn)移至本體,主要通過公理來表示.如下是對主鍵約束的公理描述.
此時,關(guān)系數(shù)據(jù)庫全部映射至本體模型中,但是為了應(yīng)用本體的強大的語義功能,對于映射生成的本體模型還需要進行進一步的調(diào)整和層次劃分.在這一部分,需要對關(guān)系數(shù)據(jù)庫模式以及存儲的數(shù)據(jù)進行分析.
本體概念的泛化主要是針對找出不同繼承路徑上的兩個概念的共有特征.在數(shù)據(jù)庫中,Inpatient_Record和Outpatient_Record兩張表的主鍵均為JZLSH(就診流水號),屬性也有 DoctorID,PatientID,DepartmentID以及Statue重疊,但是兩張表的數(shù)據(jù)并沒有重疊.在這種情況下,利用概念的泛化,建立擁有 JZLSH、DoctorID、PatientID、DepartmentID和Statue屬性的概念Record,Inpatient_Re-cord和Outpatinet_Record繼承父類Record的以上屬性.
本體創(chuàng)建完之后,將關(guān)系數(shù)據(jù)庫中的數(shù)據(jù)轉(zhuǎn)移至本體模型中.先將不包含外間的關(guān)系的數(shù)據(jù)進行轉(zhuǎn)移,然后轉(zhuǎn)移其他關(guān)系數(shù)據(jù).數(shù)據(jù)轉(zhuǎn)移包括兩個步驟:
1)本體實例的創(chuàng)建,每個實例的創(chuàng)建的同時給予一個惟一的標(biāo)識;
2)依據(jù)參照完整性,創(chuàng)建實例間的關(guān)系.
3)系統(tǒng)實現(xiàn)與驗證
本文采用Jena-OWL-Model與Pellet推理機作為本體模型的實現(xiàn)技術(shù),開發(fā)了相應(yīng)的原型系統(tǒng)以驗證本文所提方法的可行性與有效性.該原型系統(tǒng)首先需要配置待映射的關(guān)系型數(shù)據(jù)庫,如圖4所示.
根據(jù)映射規(guī)則,數(shù)據(jù)庫中的關(guān)系模式、數(shù)據(jù)庫屬性、Trigger、完整性關(guān)聯(lián)將被映射至本體模式中.圖5在原型系統(tǒng)中展示了由“jdbc:sqlserver://192.168.0.150:1433;databaseName=HR_sys”數(shù)據(jù)庫生成的本體模型的對象屬性及對象約束.
圖4 關(guān)系數(shù)據(jù)庫連接配置
圖5 本體模型中的對象屬性及約束
在本體模式中,實例數(shù)據(jù)查詢轉(zhuǎn)變?yōu)榱艘許PARQL為代表的關(guān)系匹配查詢,為了驗證模式轉(zhuǎn)換結(jié)果的等價性,在此設(shè)計了SPARQL語義查詢語句,應(yīng)用于轉(zhuǎn)換生成的本體和原數(shù)據(jù)庫,查詢在某醫(yī)院中屬于住院部并使用某種特定藥物的患者信息,如圖6所示.
圖6 數(shù)據(jù)庫查詢與本體關(guān)系匹配查詢
本文通過對醫(yī)療信息系統(tǒng)中的關(guān)系型數(shù)據(jù)庫的模式進行分析,將數(shù)據(jù)庫模型映射生成相應(yīng)的本體結(jié)構(gòu),并將數(shù)據(jù)從關(guān)系數(shù)據(jù)庫中轉(zhuǎn)移至本體模型中.在此過程中,盡量保持了數(shù)據(jù)的完整性,實現(xiàn)了診療信息集成的第一步,創(chuàng)建本體.
但通過此種方法建立的本體模型并不完整,各個醫(yī)院的系統(tǒng)的存儲形式不僅是關(guān)系數(shù)據(jù)模型,且存儲的數(shù)據(jù)格式也不相同,因此由關(guān)系數(shù)據(jù)庫抽取生成的本體只能成為局部本體.另外除了存在于醫(yī)院信息系統(tǒng)中的醫(yī)療數(shù)據(jù),大量的醫(yī)療生物領(lǐng)域數(shù)據(jù)及其他相關(guān)數(shù)據(jù)同樣能夠豐富電子健康檔案本體,這兩點都需要進一步研究.
[1]DOU D J,LEPENDU P,KIM S W.Integrating databases into the semantic web through an ontology-based framework[C]//IEEE on Computer Science,Atlanta,GA,USA,2006:302 -320.
[2]DRAGUT E,LAWRENCE R.Composing mappings between schemas using a reference ontology[J].Lecture Notes in Computer Science,2004,3290:783-800.
[3]DERAY T,VERHEYDEN P.Towards a semantic integration of medical relational databases by using ontologies:a case study[J].Lecture Notes in Computer Science,2003,2889:137 -150.
[4]STOJANOVIC L,STOJANOVIC N,VOLZ R.Migrating dataintensive web sites into the semantic web[C]//Proceedings of the 2002 ACM symposium on Applied computing,ACM New York,2002,1100-1107.
[5]ASTROVA I.Reverse engineering of relational database to ontology[J].Lecture Notes in Computer Science,2004,3053:327-341.
[6]MAY W,ALFERES J J,AMADOR R.An ontology-and resources-based approach to evolution and reactivity in the semantic web[J].Lecture Notes in Computer Science,2005,3761:1553-1570.
[7]PUUSTJ?RVI J,PUUSTJ RVI L.Designing and implementing an active personal health record system[C]//eTELEMED,Gosier,Guadeloupe,F(xiàn)rance,2011:101-107.
[8]魚 濱,鄭婭封.基于本體的異構(gòu)數(shù)據(jù)集成方法及實現(xiàn)[J].計算機應(yīng)用與軟件,2007,24(9):30-32.