楊麗琴,康國(guó)勝
(1.上海中醫(yī)藥大學(xué) 圖書(shū)館計(jì)算機(jī)綜合教研室,上海 201203;2.湖南科技大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院,湖南 湘潭 411201)
臨床實(shí)踐指南(Clinical Practice Guideline,CPG)是由官方機(jī)構(gòu)或?qū)W術(shù)組織撰寫(xiě)的、用于幫助臨床醫(yī)生和患者做出恰當(dāng)決策的指導(dǎo)性文件[1]。其中包含了針對(duì)某種特定臨床情況、有充分證據(jù)支持的、費(fèi)用合理的診療過(guò)程描述。指南的實(shí)施將有利于提高醫(yī)療質(zhì)量、控制醫(yī)療成本、為醫(yī)療檢查提供依據(jù)[2]。然而,大多數(shù)指南并未得到廣泛應(yīng)用[3]。為此,對(duì)CPG中的診療過(guò)程進(jìn)行建模,并使其被工作流引擎解釋執(zhí)行,便能夠?yàn)獒t(yī)生提供及時(shí)且針對(duì)性的臨床建議,為指南的實(shí)施提供技術(shù)保障。近年來(lái),一些學(xué)者開(kāi)始嘗試采用業(yè)務(wù)過(guò)程建模方法對(duì)診療過(guò)程進(jìn)行建模[4-6]。與普通的業(yè)務(wù)過(guò)程不同,診療過(guò)程包含豐富而復(fù)雜的業(yè)務(wù)規(guī)則(如:診斷規(guī)則、時(shí)間約束行為)和非結(jié)構(gòu)化子過(guò)程(即無(wú)法事先確定活動(dòng)的執(zhí)行順序)。因此,采用傳統(tǒng)業(yè)務(wù)過(guò)程建模方法會(huì)導(dǎo)致模型異常復(fù)雜,使其失去使用價(jià)值。文獻(xiàn)[7-11]的工作表明,采用BPMN[12]、DMN[13]和CMMN[14]三種建模語(yǔ)言相結(jié)合的方式表示的診療過(guò)程模型結(jié)構(gòu)清晰、易于維護(hù),能夠直接被工作流執(zhí)行引擎執(zhí)行。然而,完全采用人工方式對(duì)CPG中診療過(guò)程建模難度大、效率低。一是因?yàn)樵\療過(guò)程本身的復(fù)雜性導(dǎo)致建模工作量大;二是因?yàn)獒槍?duì)一些頻繁出現(xiàn)的診療行為并沒(méi)有可參考的建模方法。
為此,有必要提出一組適用于診療過(guò)程建模的診療模式并給出通用建模方法,為診療過(guò)程片段的建模提供可復(fù)用的模板。診療模式是診療過(guò)程中經(jīng)常出現(xiàn)的診療行為的抽象表示。它們不局限于特定疾病,是CPG診療過(guò)程中的通用診療模式。文中從不同的CPG診療過(guò)程中提取出五個(gè)診療模式并給出建模方法。在此基礎(chǔ)上,實(shí)現(xiàn)支持診療模式的建模工具。通過(guò)對(duì)真實(shí)CPG診療過(guò)程的建模和覆蓋率分析驗(yàn)證診療模式的可用性。
診療模式定義為CPG診療過(guò)程中經(jīng)常出現(xiàn)的診療行為的抽象表示。為保證模式的通用性,選用四種不同的中國(guó)臨床實(shí)踐指南作為診療模式來(lái)源。注意,針對(duì)不同病種或臨床情況的中文指南可能使用不同的名字,如“防治指南”、“診療指南”、“專(zhuān)家共識(shí)”或“臨床指南”等,但它們都屬于指南的范疇。四種CPG分別是:婦產(chǎn)科護(hù)理指南[15]、急性胸痛急診診療專(zhuān)家共識(shí)[16]、中國(guó)2型糖尿病防治指南[17]和原發(fā)性肺癌診療指南[18]。之所以選擇這四種CPG是因?yàn)樗鼈兏采w了不同的指南類(lèi)型,如:護(hù)理、手術(shù)、疾病防治和應(yīng)急處置;也覆蓋了不同的疾病類(lèi)型,如:癌癥、慢性病、胸痛和婦科疾病。采用BPMN、DMN和CMMN對(duì)CPG中的所有診療過(guò)程手動(dòng)建模。期間,為了更準(zhǔn)確地理解指南的內(nèi)容,團(tuán)隊(duì)成員咨詢(xún)了上海中醫(yī)藥大學(xué)附屬普陀醫(yī)院的醫(yī)生,對(duì)指南中不明確的部分進(jìn)行了討論并達(dá)成共識(shí),最終得到96個(gè)診療過(guò)程模型。診療模式提取過(guò)程如下:
(1)從診療過(guò)程模型中提取一組候選診療模式。根據(jù)診療模式的定義,候選模式至少在這些過(guò)程模型中出現(xiàn)兩次。
(2)計(jì)算候選模式在診療過(guò)程模型中的覆蓋率[19],并將它們從高到低排序,計(jì)算公式如下:
(1)
其中,F(xiàn)(P)表示使用了模式P的診療過(guò)程的個(gè)數(shù),N表示所有診療過(guò)程模型的個(gè)數(shù)。注意,如果模式P在同一個(gè)診療過(guò)程模型中出現(xiàn)多次,則按一次計(jì)數(shù)。
(3)選取前五個(gè)候選模式作為暫定的診療模式,因?yàn)閺牡诹鶄€(gè)候選模式開(kāi)始覆蓋率顯著下降。
(4)為了使提取到的診療模式具有更堅(jiān)實(shí)的理論基礎(chǔ),通過(guò)文獻(xiàn)調(diào)研,為五個(gè)診療模式在文獻(xiàn)[7-11]中找到了實(shí)證證據(jù),得到最終的五個(gè)診療模式。
五個(gè)診療模式分別為:“周期性治療行為”模式(模式1)、“限制時(shí)間治療行為”模式(模式2)、“診斷-治療”模式(模式3)、“動(dòng)態(tài)響應(yīng)”模式(模式4)和“限制性自由活動(dòng)”模式(模式5)。模式3的覆蓋率為64.6%,經(jīng)常用于建模診斷決策行為。模式5的覆蓋率為61.5%,經(jīng)常用于建模各種檢查行為。兩種行為在診療過(guò)程中非常常見(jiàn),因此模式3和模式5的覆蓋率也最高。模式1的覆蓋率為47.9%,常用于藥物治療和醫(yī)學(xué)監(jiān)測(cè)等周期行為的建模。模式2和模式4的覆蓋率相對(duì)較小,分別是15.6%和13.5%,它們分別用于建模應(yīng)急處置和圍手術(shù)期的診療行為。
本節(jié)將分別從描述、形式化定義和通用建模方法三個(gè)方面對(duì)診療模式做詳細(xì)介紹。因?yàn)樵\療模式是對(duì)診療行為的抽象表示,所以對(duì)診療模式通用模型中的活動(dòng)不指定具體類(lèi)型和個(gè)數(shù)。具體的活動(dòng)名稱(chēng)、類(lèi)型和個(gè)數(shù)在建模時(shí)根據(jù)具體需求做進(jìn)一步配置。
模式1(P1:周期治療行為):治療活動(dòng)每隔固定時(shí)間間隔進(jìn)行一次,直到療程結(jié)束或檢查指標(biāo)滿(mǎn)足終止條件。形式化定義如下:
定義1:周期治療行為模式P1=(MedicalTask,StartTime,TimeInterval,PeriodTime,Interrupt Condition),其中MedicalTask是治療活動(dòng),StartTime是開(kāi)始時(shí)間,TimeInterval是時(shí)間間隔,PeriodTime是持續(xù)時(shí)間,InterruptCondition是終止條件集合。
模式1的通用模型用BPMN[12]表示。按終止方式又分為兩種情況:如圖1(a)所示,子過(guò)程邊界上的時(shí)間中斷事件(Interrupting Timer Intermediate Event[12])用于設(shè)置治療活動(dòng)的持續(xù)時(shí)間,一旦時(shí)間到達(dá),則治療結(jié)束;如圖1(b)所示,子過(guò)程邊界上的條件中斷事件(Interrupting Condition Intermediate Event[12])用于設(shè)置治療活動(dòng)的中斷條件,如身體指標(biāo)達(dá)到某個(gè)值。
模式2(P2:限制時(shí)間治療行為):持續(xù)執(zhí)行治療活動(dòng)直到在特定時(shí)間段內(nèi)達(dá)到預(yù)期治療目標(biāo)。形式化定義如下:
定義2:限制時(shí)間治療行為模式P2=(MedicalTask,GL,ValPeriod,Task_v,Task_b,Task_f)其中,MedicalTask是治療活動(dòng),GL是表示治療目標(biāo)的條件集合,ValPeriod=(EarlestTime,LatestTime)是一個(gè)二元組,EarlestTime和LatestTime分別表示限制時(shí)間段的起止時(shí)刻。Task_v是在限制時(shí)間內(nèi)達(dá)到治療目標(biāo)后執(zhí)行的活動(dòng),Task_b是過(guò)早達(dá)到治療目標(biāo)時(shí)執(zhí)行的活動(dòng),Task_f是未達(dá)到治療目標(biāo)時(shí)執(zhí)行的活動(dòng)。
模式2的通用模型用BPMN的子過(guò)程表示。如圖2所示,子過(guò)程中的事件子過(guò)程(Event Sub Process[12])(圖中用虛線(xiàn)框表示)用于標(biāo)記是否到達(dá)最早開(kāi)始時(shí)間。子過(guò)程的正常結(jié)束表示達(dá)到治療目標(biāo)。通過(guò)Tag標(biāo)記可判斷是在限制時(shí)間內(nèi)(Tag=True)還是過(guò)早(Tag!=True)達(dá)到的治療目標(biāo)。如觸發(fā)時(shí)間中斷事件(Interrupting Timer Intermediate Event),則表示未達(dá)到治療目標(biāo)。
模式3(P3:診斷-治療):根據(jù)癥狀或檢查數(shù)據(jù)診斷決策后選擇不同的治療路徑。形式化定義如下:
定義3:設(shè)條件集合C={c|c=(attr,op,val)},其中,attr是屬性,op是運(yùn)算符,val是值,則診斷-治療模式P3=(MedicalTasks,Cond,F)。其中MedicalTasks是治療活動(dòng)集合,Cond是條件集C的冪集,F(xiàn)是關(guān)于條件到治療活動(dòng)的一組關(guān)聯(lián),F(xiàn)?Cond×MedicalTasks。如果一個(gè)關(guān)聯(lián)中的所有條件都滿(mǎn)足,則執(zhí)行相應(yīng)治療活動(dòng)。
模式3的通用模型使用BPMN過(guò)程片段表示。如圖3(a)所示,排它網(wǎng)關(guān)(圖中)表示基于診斷結(jié)果的分支邏輯。該模式將診斷決策過(guò)程從過(guò)程模型(即BPMN模型)中抽取出來(lái),用DMN[13]決策模型來(lái)表示,由Business Rule Task[12](圖中的“Diagnose”活動(dòng))調(diào)用。DMN模型的診斷決策表的通用形式如圖3(b)所示。
模式4(P4:動(dòng)態(tài)響應(yīng)):根據(jù)患者的狀態(tài)變化,持續(xù)動(dòng)態(tài)地采取相應(yīng)的治療措施。形式化定義如下:
定義4:設(shè)條件集合C={c|c=(attr,op,val)},其中attr是屬性,op是運(yùn)算符,val是值。設(shè)Cond是條件集C的冪集,則動(dòng)態(tài)響應(yīng)模式P4=(MedicalTasks,States,F,Ru),其中MedicalTasks是治療活動(dòng)集合,States是狀態(tài)集合,F(xiàn)?States×MedicalTasks是關(guān)于狀態(tài)到治療活動(dòng)的一組關(guān)聯(lián)。Ru={(cd,st)|cd∈Cond,st∈States}是診斷規(guī)則集合。當(dāng)一條診斷規(guī)則中的所有條件均為真,則到達(dá)對(duì)應(yīng)的狀態(tài)。
模式4的通用模型用CMMN的CasePlanModel[14]來(lái)實(shí)現(xiàn)。如圖4所示,每個(gè)治療活動(dòng)用一個(gè)“哨兵”(圖中◇)表示準(zhǔn)入標(biāo)準(zhǔn),對(duì)應(yīng)形式化定義中的狀態(tài)。必須達(dá)到準(zhǔn)入標(biāo)準(zhǔn)才可執(zhí)行對(duì)應(yīng)的治療活動(dòng)。該模式實(shí)例化后進(jìn)入激活狀態(tài),首先執(zhí)行診斷活動(dòng)(圖中“Decide Further Steps”活動(dòng)),該活動(dòng)指向一個(gè)DMN決策模型。DMN決策模型中存有診斷規(guī)則,它的輸出將被后續(xù)治療活動(dòng)的哨兵檢驗(yàn),如果滿(mǎn)足準(zhǔn)入條件則執(zhí)行該治療活動(dòng)。每個(gè)活動(dòng)都被標(biāo)記為“可重復(fù)的”(用#表示),一旦患者狀態(tài)發(fā)生變化則執(zhí)行一次診斷決策。
模式5(P5:限制性自由活動(dòng)):帶限制條件的自由診療活動(dòng)。形式化定義如下:
定義5:設(shè)條件集合C={c|c=(attr,op,val)},其中attr是屬性,op是運(yùn)算符,val是值。則限制性自由活動(dòng)模式P5=(MedicalTasks,E,EC,F,αt),其中MedicalTasks是治療活動(dòng)集合,E?MedicalTasks×MedicalTasks是連接兩個(gè)活動(dòng)的有向邊,表示前面的活動(dòng)執(zhí)行結(jié)束后才能執(zhí)行后面的活動(dòng)。EC是準(zhǔn)入標(biāo)準(zhǔn),是條件集C的冪集。F是關(guān)于準(zhǔn)入標(biāo)準(zhǔn)到治療活動(dòng)的一組關(guān)聯(lián),F(xiàn)?EC×MedicalTasks。αt:MedicalTasks→t是一個(gè)函數(shù),對(duì)于每個(gè)活動(dòng)mt∈MedicalTasks賦予一個(gè)類(lèi)型,t∈{basic_task,conditioned_basic_task, discretionary_basic_task, discretionary_task}。
模式5的通用模型用CMMN的CasePlanModel來(lái)實(shí)現(xiàn),如圖5所示?;净顒?dòng)(basic_task)是必須執(zhí)行的活動(dòng)(用實(shí)線(xiàn)圓角矩形表示);條件基本(conditioned_basic_task)是滿(mǎn)足準(zhǔn)入標(biāo)準(zhǔn)后必須執(zhí)行的活動(dòng)(用帶◇的實(shí)線(xiàn)圓角矩形表示);基本自由活動(dòng)(discretionary_basic_task)是滿(mǎn)足準(zhǔn)入標(biāo)準(zhǔn)后才可以選擇執(zhí)行的活動(dòng)(用帶◇的虛線(xiàn)圓角矩形表示)。自由活動(dòng)(discretionary_task)可在過(guò)程執(zhí)行時(shí)自由規(guī)劃(用虛線(xiàn)圓角矩形表示)。
Camunda BPM[20]平臺(tái)提供了一套圍繞BPM生命周期的組件。其中,Camunda Modeler是集成了BPMN、DMN和CMMN三種建模語(yǔ)言的過(guò)程建模工具。使用Camunda Modeler設(shè)計(jì)的過(guò)程模型可通過(guò)Camunda Engine解釋執(zhí)行。本節(jié)使用JavaScript對(duì)開(kāi)源建模工具Camunda Modeler進(jìn)行了擴(kuò)展,使其支持五個(gè)診療模式,源代碼可從https://github.com/cocoylq/develop下載。添加的功能是在建模平臺(tái)的調(diào)色板上加入第2節(jié)介紹的診療模式構(gòu)件。如圖6所示,調(diào)色板上的圖標(biāo)P1、P2和P3分別對(duì)應(yīng)模式1、模式2和模式3,這三個(gè)模式在BPMN建模平臺(tái)中。
如圖7所示,P4和P5在CMMN建模平臺(tái)中,分別對(duì)應(yīng)模式4和模式5。建模時(shí),點(diǎn)擊調(diào)色板上代表診療模式的圖標(biāo)并拖曳到主窗體中,便可快速獲得對(duì)應(yīng)的診療模式實(shí)例。然后利用基本的工作流元素對(duì)實(shí)例進(jìn)行配置從而得到過(guò)程模型片段。通過(guò)使用擴(kuò)展的支持診療模式的建模工具,建模者無(wú)需從零開(kāi)始設(shè)計(jì)診療過(guò)程模型。因此,使用該工具能夠提高診療過(guò)程建模的效率。
診療模式為診療過(guò)程片段的建模提供了可復(fù)用的模板。本節(jié)使用實(shí)現(xiàn)的建模工具對(duì)兩個(gè)真實(shí)CPG中的診療過(guò)程進(jìn)行建模,從而驗(yàn)證模式的可用性。
通過(guò)分析《中國(guó)高血壓防治指南》[21]和《眼科臨床指南》[22]的白內(nèi)障部分,分別提取出18和13個(gè)診療過(guò)程?,F(xiàn)以其中的非繼發(fā)性高血壓診療過(guò)程和老年性白內(nèi)障手術(shù)診療過(guò)程為例介紹如何使用診療模式建模,其余的診療過(guò)程采用同樣的方式建模。非繼發(fā)性高血壓診療過(guò)程中的診斷性評(píng)估、心血管分層、降壓治療和隨診子過(guò)程分別對(duì)應(yīng)模式5、建模3和模式1。老年性白內(nèi)障診療過(guò)程中的術(shù)前體檢、術(shù)眼準(zhǔn)備和控制血壓子過(guò)程分別對(duì)應(yīng)模式5、模式4和模式2。
通過(guò)建模工具實(shí)例化這些模式可快速得到模型片段的模板,再根據(jù)CPG中的描述將其配置成具體的過(guò)程模型片段。診療過(guò)程的其余部分用調(diào)色板中的基本構(gòu)件建模。非繼發(fā)性高血壓的診療過(guò)程模型如圖6所示,用到的診療模式(模式1、模式3、模式5)在圖中用虛線(xiàn)框表示。其中,診斷性評(píng)估子過(guò)程模型如圖7所示,它通過(guò)配置模式5得到。老年性白內(nèi)障的診療過(guò)程的術(shù)眼準(zhǔn)備子過(guò)程模型可通過(guò)配置模式4得到。術(shù)眼準(zhǔn)備子過(guò)程模型中又包含了控制血壓子過(guò)程模型,它可通過(guò)配置模式2得到。老年性白內(nèi)障的診療過(guò)程的所有模型可從網(wǎng)上獲得(https://github.com/cocoylq/CataractModel)。
通過(guò)計(jì)算診療模式在31個(gè)診療過(guò)程模型中的覆蓋率(見(jiàn)公式(1)),討論它們?cè)谶@些診療過(guò)程中的分布情況。計(jì)算結(jié)果如圖8所示,模式5(“限制性自由活動(dòng)”模式)和模式1(“周期治療行為”模式)的覆蓋率分別為83.9%和71%,是最常用的兩個(gè)模式。模式5適用于建模醫(yī)學(xué)檢查行為,如高血壓診療過(guò)程中的診斷性評(píng)估,白內(nèi)障手術(shù)診療過(guò)程中的術(shù)前體檢等。模式1適用于建模藥物治療行為,如高血壓診療過(guò)程中的降壓治療。模式3(“診斷-治療”模式)的覆蓋率為67.7%,適用于建模診斷決策行為,在高血壓診療過(guò)程中用于建模心血管風(fēng)險(xiǎn)分層、血栓栓塞評(píng)估等。模式2(“限制時(shí)間治療行為”模式)的覆蓋率為32.3%, 它用于建模高血壓急癥診療過(guò)程和白內(nèi)障手術(shù)中的控制血壓過(guò)程等。模式4(“動(dòng)態(tài)響應(yīng)”模式)的覆蓋率為29%,用于為手術(shù)期診療行為建模,如白內(nèi)障手術(shù)的術(shù)眼準(zhǔn)備等。
為了提高CPG診療過(guò)程的建模效率,從不同的CPG診療過(guò)程中提取出五個(gè)診療模式,并使用BPMN、DMN和CMMN給出了診療模式的通用建模方案。在此基礎(chǔ)上,通過(guò)擴(kuò)展Camunda Modeler建模工具開(kāi)發(fā)了支持診療模式的建模工具,為診療過(guò)程片段的建模提供可復(fù)用的模板?;诟哐獕汉桶變?nèi)障診療過(guò)程建模的案例研究驗(yàn)證了診療模式的可用性。雖然五個(gè)模式是通過(guò)大量建模實(shí)踐,從不同的CPG中提取出來(lái)的,但依然存在遺漏的可能性。未來(lái),將進(jìn)一步利用這些診療模式對(duì)其他新的CPG診療過(guò)程進(jìn)行建模。在建模過(guò)程中,存在發(fā)現(xiàn)新的診療模式的可能性。如果發(fā)現(xiàn)新的診療模式,將把它納入到診療模式的行列中來(lái)并在建模工具中做相應(yīng)擴(kuò)展。