胡玉敏, 肖 亮, 陳海風(fēng)
(湖北工業(yè)大學(xué)計(jì)算機(jī)學(xué)院, 湖北 武漢 430068)
?
規(guī)則驅(qū)動(dòng)的多Agent系統(tǒng)的研究
胡玉敏, 肖亮, 陳海風(fēng)
(湖北工業(yè)大學(xué)計(jì)算機(jī)學(xué)院, 湖北 武漢 430068)
[摘要]為提高臨床決策的高效性、科學(xué)性,設(shè)計(jì)出一種基于規(guī)則驅(qū)動(dòng)的多Agent系統(tǒng),它使用結(jié)構(gòu)化的XML定義臨床知識(shí),集成規(guī)則執(zhí)行引擎、動(dòng)態(tài)界面生成引擎和多Agent系統(tǒng),指導(dǎo)醫(yī)生做出迅速,準(zhǔn)確地臨床診斷,符合現(xiàn)實(shí)環(huán)境,提高了臨床決策的實(shí)效性。
[關(guān)鍵詞]臨床知識(shí); 規(guī)則驅(qū)動(dòng); XML; 多Agent系統(tǒng)
隨著云計(jì)算,數(shù)字化醫(yī)學(xué)等一系列技術(shù)的發(fā)展和融合,醫(yī)療信息化在醫(yī)療能力建設(shè)方面正在扮演重要角色。目前,由于我國在醫(yī)療信息化領(lǐng)域缺乏足夠的關(guān)注度,臨床決策的安全性和準(zhǔn)確性無法保證。雖有臨床指南的支持,但是仍不能滿足臨床決策的應(yīng)用需求,主要體現(xiàn)在:1)臨床指南發(fā)布時(shí)通常是基于文本形式的,這使得其很難被處理;2)將臨床指南轉(zhuǎn)化為計(jì)算機(jī)可執(zhí)行的格式?jīng)]有統(tǒng)一的標(biāo)準(zhǔn)[1]。因此,需要設(shè)計(jì)一種結(jié)構(gòu)化和標(biāo)準(zhǔn)化的臨床指南,為臨床決策提供更好、更高效地支持。
近年來,在臨床指南的結(jié)構(gòu)化表達(dá)研究方面已經(jīng)取得一系列成果,其中影響較大的是John Fox教授提出的可執(zhí)行的過程建模語言PROforma[2]。PROforma能夠以計(jì)算機(jī)所能理解的形式獲取臨床指南的結(jié)構(gòu)與內(nèi)容。該語言的形成為開發(fā)和發(fā)布可執(zhí)行的臨床指南奠定了基礎(chǔ)。雖然PROforma可以準(zhǔn)確地將以文本形式存儲(chǔ)的臨床指南轉(zhuǎn)換成計(jì)算機(jī)可執(zhí)行的形式,但它有一定的缺陷,主要體現(xiàn)在:1)不適用于分布式環(huán)境中;2)當(dāng)臨床指南內(nèi)容改變時(shí),軟件不容易擴(kuò)展和維護(hù);3)用戶不能迅速便捷的連接到所需要的資源;4)不同部門的醫(yī)生在做決策時(shí),無法同步數(shù)據(jù)操作。因此,系統(tǒng)的協(xié)同度很低。
針對(duì)PROforma出現(xiàn)的問題,提出了將臨床指南XML[3]化。臨床決策系統(tǒng)不因臨床指南的改變而發(fā)生大的變動(dòng)。同時(shí),設(shè)計(jì)實(shí)現(xiàn)一個(gè)規(guī)則執(zhí)行引擎,能動(dòng)態(tài)執(zhí)行結(jié)構(gòu)化的臨床指南,輔助醫(yī)生做出決策。設(shè)計(jì)實(shí)現(xiàn)一個(gè)基于規(guī)則的動(dòng)態(tài)界面生成引擎,用來收集患者必要的癥狀信息,解決臨床決策過程中因數(shù)據(jù)不足而出現(xiàn)的推導(dǎo)阻塞問題。將結(jié)構(gòu)化的臨床指南、規(guī)則執(zhí)行引擎以及基于規(guī)則的動(dòng)態(tài)界面生成引擎集成到多Agent系統(tǒng)中,集規(guī)則的循證性與Agent的智能性為一體,提高臨床決策的高效性與科學(xué)性。
1系統(tǒng)設(shè)計(jì)
在定義了規(guī)則后,需要設(shè)計(jì)一個(gè)規(guī)則解析引擎對(duì)該規(guī)則進(jìn)行解析、執(zhí)行,給醫(yī)生決策提供參考。使用JDOM來對(duì)XML文檔進(jìn)行解析,并引入數(shù)據(jù)結(jié)構(gòu)的多叉樹存儲(chǔ)的思想,將文檔中的節(jié)點(diǎn)構(gòu)造成具有多叉樹結(jié)構(gòu)的節(jié)點(diǎn)樹,初始化一個(gè)隊(duì)列來存儲(chǔ)樹中的葉子節(jié)點(diǎn),并以此判斷樹的每一個(gè)分支是否通路,結(jié)果記錄在決策支持隊(duì)列或決策反對(duì)隊(duì)列中,計(jì)算權(quán)值,最終給出最優(yōu)決策。
使用規(guī)則引擎解析規(guī)則后,系統(tǒng)還需要一個(gè)動(dòng)態(tài)界面生成引擎,動(dòng)態(tài)地、實(shí)時(shí)地收集患者的檢查信息。同樣使用JDOM解析規(guī)則,從規(guī)則中解析出執(zhí)行規(guī)則所需的所有條件,如果條件會(huì)出現(xiàn)重復(fù),使用哈希表去重算法進(jìn)行去重。在收集患者癥狀信息過程中可能出現(xiàn)已經(jīng)就診情況,需要從電子病歷庫中調(diào)取該患者的電子病歷,從中解析出已有的所有信息的屬性名稱,與從規(guī)則中解析、去重后的屬性名稱取補(bǔ)集,從而動(dòng)態(tài)給出人機(jī)交互界面(臨床信息采集界面)中應(yīng)當(dāng)顯示的信息。
最后一個(gè)重要的實(shí)現(xiàn)目標(biāo)是,將規(guī)則驅(qū)動(dòng)的臨床決策系統(tǒng)即規(guī)則、規(guī)則執(zhí)行引擎,以及基于規(guī)則的動(dòng)態(tài)界面生成引擎嵌入到多Agent系統(tǒng)中,由結(jié)構(gòu)化的臨床指南驅(qū)動(dòng)代理,從規(guī)則庫中匹配出相應(yīng)的規(guī)則,進(jìn)行解析與執(zhí)行,由基于規(guī)則的動(dòng)態(tài)頁面生成引擎為每一個(gè)Agent生成特定的臨床信息采集界面。臨床信息采集完成后,由規(guī)則執(zhí)行引擎結(jié)合規(guī)則和病人信息,指導(dǎo)Agent快速、高效的做出決策,從而驅(qū)動(dòng)下一個(gè)代理的執(zhí)行。
圖 1 系統(tǒng)框架圖
為了完成上述目標(biāo),將系統(tǒng)框架設(shè)計(jì)圖1所示。圖1中包含四個(gè)層次,從下往上依次是:多Agent系統(tǒng),規(guī)則執(zhí)行引擎,基于規(guī)定的動(dòng)態(tài)界面生成引擎,電子病歷服務(wù),外包系統(tǒng)和病人信息錄入者。
2案例分析
隨著對(duì)乳腺癌的深入研究,人們引入了乳腺癌三級(jí)評(píng)估的概念[4],用以確認(rèn)一個(gè)疑似乳腺癌患者是否有惡性或良性乳腺疾病。乳腺癌的三重評(píng)估過程包括圖像檢查(乳房X光檢查和超聲波檢查)、活檢、癌癥證實(shí)后的管理,通過這三個(gè)部分的決策來獲取患者一個(gè)較為全面的病史。其中也包括遺傳風(fēng)險(xiǎn)評(píng)估。對(duì)上述三個(gè)過程,分配了三種代理通過協(xié)作的方式共同完成乳腺癌三重評(píng)估的目標(biāo),分別是外科Agent、圖像科Agent、病理科Agent。
圖2是從乳腺癌臨床指南中關(guān)于全科醫(yī)生作進(jìn)一步?jīng)Q策的決策分支節(jié)選部分,在此片段中,描述患者有關(guān)年齡、性別、腫塊、疼痛等相關(guān)的乳腺癌癥狀的數(shù)據(jù)信息,醫(yī)生根據(jù)臨床指南做出最優(yōu)決策。
圖 2 乳腺癌臨床指南片段
3系統(tǒng)實(shí)現(xiàn)
3.1規(guī)則定義
將臨床指南定義為具有統(tǒng)一標(biāo)準(zhǔn)的、機(jī)器可執(zhí)行的XML文檔,包括行為規(guī)則和推導(dǎo)規(guī)則兩個(gè)部分。行為規(guī)則用于指導(dǎo)Agent做出決策,比較抽象[5]。推導(dǎo)規(guī)則注重邏輯關(guān)系的定義,更加詳細(xì),它能夠根據(jù)已有的知識(shí)推導(dǎo)出新的知識(shí),這些知識(shí)作為行為規(guī)則的條件,提供給行為規(guī)則作出正確的處理。本文詳細(xì)闡述推導(dǎo)規(guī)則的定義。
推導(dǎo)規(guī)則是對(duì)臨床指南中邏輯關(guān)系的一種詳細(xì)定義,它能夠根據(jù)已有的知識(shí)推導(dǎo)出額外的知識(shí),這些知識(shí)是行為規(guī)則的條件,能夠促使行為規(guī)則作出正確處理[6]。
表1 操作符含義對(duì)照表
圖 3 乳腺癌三級(jí)評(píng)估的推導(dǎo)規(guī)則節(jié)選
3.2規(guī)則執(zhí)行引擎
用JDOM解析推導(dǎo)規(guī)則,并將其轉(zhuǎn)換成多叉樹。解析推導(dǎo)規(guī)則的deciesionTree標(biāo)簽,deciesionTree標(biāo)簽下的每一個(gè)候選項(xiàng)condidate標(biāo)簽的內(nèi)容都能構(gòu)造成一棵多叉樹。示例第一個(gè)候選分支condidate標(biāo)簽中,構(gòu)造的節(jié)點(diǎn)樹見圖4,節(jié)點(diǎn)樹的構(gòu)造步驟如下[6]:
圖 4 根據(jù)推導(dǎo)規(guī)則的第一個(gè)決策 候選分支構(gòu)造的節(jié)點(diǎn)樹
為推導(dǎo)規(guī)則的每一個(gè)決策候選分支構(gòu)建出節(jié)點(diǎn)樹(多叉樹)后,如何去遍歷,處理這些節(jié)點(diǎn)樹以完成規(guī)則執(zhí)行的任務(wù)是一個(gè)很重要的問題,過程描述如下:
1)首先創(chuàng)建一個(gè)候選項(xiàng)隊(duì)列,并做初始化。該隊(duì)列中包含了編號(hào)、英文描述、中文描述、權(quán)值(初始值為0)、支持理由列表、反對(duì)理由列表。
3)創(chuàng)建一個(gè)推導(dǎo)隊(duì)列,一個(gè)決策支持論據(jù)隊(duì)列和一個(gè)決策反對(duì)論據(jù)隊(duì)列,依次做初始化。
estExamination_lump, eq, yes、latest
Examination_nippleDischarge_bloodStained, eq, yes等存入到推導(dǎo)隊(duì)列中,并賦權(quán)值weight(假設(shè)所有支持論據(jù)的權(quán)值均為1,所有反對(duì)論據(jù)的權(quán)值均為-1)。
5)按照先進(jìn)先出的順序從推導(dǎo)隊(duì)列中取出節(jié)點(diǎn),例如,取出第一個(gè)節(jié)點(diǎn)familyHistoryRisk, eq, elevated作為當(dāng)前節(jié)點(diǎn),比對(duì)從電子病歷中獲取的familyHistoryRisk屬性的值為elevated,因此條件familyHistoryRisk==elevated為真,即該節(jié)點(diǎn)滿足,繼續(xù)判斷其父節(jié)點(diǎn)age, gt_eq, 35,讀到病人age屬性的值為37,即條件age=35為真,該節(jié)點(diǎn)也滿足,因此該條分支是一條通路。判斷該論據(jù)的type屬性的值為支持還是反對(duì),判斷結(jié)果為支持,則將當(dāng)前節(jié)點(diǎn)familyHistoryRisk, eq, elevated所屬的論據(jù)的編號(hào)aId屬性和描述reason屬性的值存入到?jīng)Q策支持論據(jù)隊(duì)列中,并且候選項(xiàng)的支持論據(jù)隊(duì)列的權(quán)值加1;假設(shè),type屬性的值為反對(duì),則將當(dāng)前節(jié)點(diǎn)所屬的論據(jù)argument的編號(hào)aId屬性和描述reason屬性的值存入到?jīng)Q策反對(duì)論據(jù)隊(duì)列中,并且候選項(xiàng)的反對(duì)論據(jù)隊(duì)列的權(quán)值加-1。
6)循環(huán)第5)個(gè)步驟,遍歷整棵節(jié)點(diǎn)樹。
7)當(dāng)該樹遍歷完后,用支持論據(jù)隊(duì)列的權(quán)值加上反對(duì)論據(jù)隊(duì)列的權(quán)值,即得出候選項(xiàng)do further investigation的權(quán)值,并將該權(quán)值賦給候選項(xiàng)權(quán)值。將決策支持論據(jù)隊(duì)列賦予候選項(xiàng)支持理由列表。將決策反對(duì)論據(jù)隊(duì)列賦予候選項(xiàng)反對(duì)理由列表。
8)以此方法,通過調(diào)用數(shù)據(jù)計(jì)算服務(wù),得出整個(gè)決策樹下各個(gè)決策候選分支的候選項(xiàng)隊(duì)列。并比較各候選項(xiàng)權(quán)值,按候選項(xiàng)權(quán)值對(duì)候選項(xiàng)列表進(jìn)行降序排列。例如:進(jìn)一步?jīng)Q策(further investigation decision)中,執(zhí)行結(jié)果為:作進(jìn)一步?jīng)Q策(Do further investigation)的權(quán)值為5,管理病人(Manage patient)的權(quán)值為3,不作任何處理(Discharge)的權(quán)值為0,因此執(zhí)行結(jié)果見圖5。
圖 5 推導(dǎo)規(guī)則執(zhí)行結(jié)果
3.3基于規(guī)則的動(dòng)態(tài)界面生成引擎
在臨床決策過程中,如果病人信息不充分,則會(huì)導(dǎo)致推導(dǎo)阻塞,進(jìn)而影響決策,因此,根據(jù)推導(dǎo)規(guī)則決策的實(shí)際情況,開發(fā)和設(shè)計(jì)一個(gè)與各代理相匹配的,基于規(guī)則的動(dòng)態(tài)問診界面生成引擎是本文的重點(diǎn)研究問題,其詳細(xì)設(shè)計(jì)方法與實(shí)現(xiàn)過程如下:
1)首先提取出執(zhí)行規(guī)則中所有的必要條件、屬性名稱,即獲取推導(dǎo)規(guī)則中所有不為空的con元素的值,存入集合listQuess中。使用哈希表去重算法[7],對(duì)listQuess集合去重。
2)當(dāng)病人首次進(jìn)入醫(yī)院做問詢檢查時(shí),需要通過動(dòng)態(tài)問詢界面采集的信息的屬性名稱為步驟2)中的listQuess中的屬性名稱,然后直接跳到第7)步。若病人曾經(jīng)去醫(yī)院做過問詢檢查,即電子病歷庫中有該病人的電子病歷記錄時(shí),按電子病歷id,從電子病歷庫中獲取該病人的電子病歷。
3)創(chuàng)建一個(gè)集合paQuess并初始化,將電子病歷中已有的問詢、檢查結(jié)果記錄的屬性名稱存入到paQuess中。
4)取集合paQuess和集合listQuess的補(bǔ)集,并存儲(chǔ)在集合listQuess中,此時(shí)的listQuess即為基于規(guī)則的動(dòng)態(tài)問詢界面上應(yīng)該顯示的信息、屬性名稱。
圖 6 基于規(guī)則的動(dòng)態(tài)信息采集界面
5)以屬性名稱為參數(shù),調(diào)用數(shù)據(jù)定義服務(wù),獲取與該屬性名稱對(duì)應(yīng)的動(dòng)態(tài)問詢界面中,需要展示的問題列表,包括屬性說明、默認(rèn)值、數(shù)據(jù)類型、中文取值范圍、英文取值范圍、表單提交類型和屬性描述。
6)用Jsp頁面動(dòng)態(tài)顯示醫(yī)生在對(duì)該病人做出醫(yī)療決策時(shí),需要采集的充分且必要的信息。
基于進(jìn)一步?jīng)Q策的推導(dǎo)規(guī)則further_investigation_PR.xml的動(dòng)態(tài)信息采集界面見圖6。
4結(jié)束語
本文對(duì)規(guī)則驅(qū)動(dòng)的多Agent系統(tǒng)進(jìn)行了分析和設(shè)計(jì),并實(shí)現(xiàn)了臨床決策知識(shí)的規(guī)則化,臨床決策的自動(dòng)化,決策界面的動(dòng)態(tài)化。今后的工作將從兩方面展開。一是在規(guī)則定義中增加多癥狀屬性值計(jì)算,使規(guī)則在臨床決策支持過程中的使用更加靈活、方便。二是,引入Web服務(wù)技術(shù),減少本地引擎組件,為跨學(xué)科、跨科室的醫(yī)療工作與研究打下堅(jiān)實(shí)的基礎(chǔ)。
[參考文獻(xiàn)]
[1]王曉丹.當(dāng)前醫(yī)療信息化存在的問題及對(duì)策研究[J].醫(yī)學(xué)信息學(xué)雜志,2011(1):44-47.
[2]Fox J,Patkar V,Thomson R.Decision support for health care:the PROforma evidence base[J].Informatics in primary care, 2006, 14(1): 49-54.
[3]孫鑫. XML、XML Schema、XSLT 2.0和XQuery開發(fā)技術(shù)詳解[M].北京:電子工業(yè)出版社,2009:3-8.
[4]鄭瑩,吳春曉,張敏璐.乳腺癌在中國的流行狀況和疾病特征[J].中國癌癥雜志,2013:08-30.
[5]L Xiao,J Fox,H Zhu.An Agent-oriented approach to support multidisciplinary care decisions[C].Engineering of Computer Based Systems (ECBS-EERC),Eastern European Regional Conference on Budapest,Hungary: 2013: 8-17.
[6]Hu Y, Xiao L, Yan Z, Wei Q.Multi-agent based clinical knowledge representation with its dynamic parse and execution[C].Third International Conference, HIS Shenzhen China:2014,8423:261-273.
[7]張蒙,康建榮,賈瑩媛,等.基于二維哈希表的海量高程點(diǎn)數(shù)據(jù)去重算法設(shè)計(jì)[J].測(cè)繪科學(xué),2012,12-29.
[責(zé)任編校: 張巖芳]
Research of Rule-driven Multi-Agent System
HU Yumin,XIAO Liang,CHEN Haifeng
(SchoolofComputerScience,HubeiUniv.ofTech.,Wuhan430068,China)
Abstract:In recent years, with the development of evidence-based medicine, how to organize, make use of clinical knowledge, and make efficient and scientific clinical decisions has become an important research topic in the process of medical information in our country. This paper designed a rule-driven multi-agent system which uses a structured XML to define the clinical knowledge, integrates rule execution engine, rule-based dynamic interface generation engine and multi-agent system to guide doctors to make quick and correct clinical decisions. The results show that the system is in line with the reality of the environment and can improve the effectiveness of clinical decisions.
Keywords:Clinical guidelines; rule-driven; XML; Multi-agent system
[中圖分類號(hào)]TP311
[文獻(xiàn)標(biāo)識(shí)碼]:A
[文章編號(hào)]1003-4684(2016)01-0071-05
[通訊作者]肖亮(1979-),男,湖北武漢人,湖北工業(yè)大學(xué)教授,研究方向?yàn)檐浖赃m應(yīng)
[作者簡(jiǎn)介]胡玉敏(1990-), 女,湖北黃岡人,湖北工業(yè)大學(xué)碩士研究生,研究方向?yàn)檐浖こ膛c醫(yī)療信息化
[基金項(xiàng)目]國家自然科學(xué)基金(61151001),青年科學(xué)基金(61202101)
[收稿日期]2015-04-24