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