首页> 中国专利> 一种对基于临床实践指南的活动图进行形式化的方法

一种对基于临床实践指南的活动图进行形式化的方法

摘要

本发明公开了一种对基于临床医学指南的活动图进行形式化的方法,通过形式化基于临床医疗指南的活动图,把实际的领域问题转化成活动图中搜索子图的问题。本方法首先用图论的方法对基于临床实践指南的活动图及子图进行符号定义,以便准确匹配到可以使用本方法的研究对象;然后对特定的研究对象,即活动图,给出回答集程序语言的表示方法;接着给出推理所需要的规则集,从而构建出完整的可供推理的回答集程序。整个过程直观自然,便于操作。

著录项

  • 公开/公告号CN103295064A

    专利类型发明专利

  • 公开/公告日2013-09-11

    原文格式PDF

  • 申请/专利权人 东南大学;

    申请/专利号CN201310266629.6

  • 发明设计人 王杰;张志政;

    申请日2013-06-27

  • 分类号G06N5/02(20060101);G06Q50/22(20120101);

  • 代理机构32250 江苏永衡昭辉律师事务所;

  • 代理人齐旺

  • 地址 210096 江苏省南京市四牌楼2号

  • 入库时间 2024-02-19 20:48:02

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-06-11

    未缴年费专利权终止 IPC(主分类):G06N5/02 授权公告日:20151202 终止日期:20180627 申请日:20130627

    专利权的终止

  • 2019-02-26

    专利权人的姓名或者名称、地址的变更 IPC(主分类):G06N5/02 变更前: 变更后: 申请日:20130627

    专利权人的姓名或者名称、地址的变更

  • 2015-12-02

    授权

    授权

  • 2013-10-16

    实质审查的生效 IPC(主分类):G06N5/02 申请日:20130627

    实质审查的生效

  • 2013-09-11

    公开

    公开

说明书

技术领域

本发明属于人工智能的知识表示领域,涉及一种对基于临床医学指南的活动 图形式化的方法。

背景技术

M.Gelfond和V.Lifschitz在1988年为非单调逻辑编程创建了Stable 模型语义(Stable Model Semantics),后来二人将该模型语义扩展到包含强否定 (Strong Negation)和弱否定(Weak Negation)的析取逻辑程序,并且将Stable 模型语义更名为Answer Set语义。由于回答集程序(answer set program,回答 集程序)语言在非单调推理方面的出众的表现,它被作为一种问题求解的程序设 计方式已经应用于多个领域,并且取得许多具体的应用成果,其中包括:模型检 测,诊断,生物信息,动物学和语言学等等。一个回答集程序是一些命题 (statements)的集合,其中这些命题是用来描述一个领域中的对象以及该领域中 的这些对象之间的关系。回答集程序语言还具有很强的可扩展性,许多研究小组 正在探索扩展回答集程序的语义,以不断强化回答集程序的表达能力和提高其在 解决特定领域问题的简洁性。例如基于经典回答集程序的扩展语言有带有偏好的 回答集程序,带有不确定性的回答集程序,认知回答集程序,CR-Prolog,动作 语言(action language,AL)等。

回答集程序是由如下形式的规则组成的:

l0:-l1,...,lm,not lm+1,...,not ln.

这里对于li都是一阶逻辑程序语言中的文字。{l0}是规则的头 部,{l1,...,lm}是规则的正规则体,{ll,...,lm}是规则的负规则体。回答集程序的 推理结果称为回答集。上述规则表达的意思是,“如果我们相信l1,...,lm,且没有 理由相信lm+1,...,ln,那么我们相信l0。”规则里的“not”称为“否定即失败”,它 的存在为我们表达带有异常的缺省信息提供了很大的便利。

目前,已有的回答集程序推理机有DLV,Clingo,Smodels等等。这些推理 机已经应用在许多知识表示推理的应用中。为了编程的方便,这些推理机还支 持许多扩展的回答集程序语法,聚合算子(aggregation operators)就是其中一类 重要的操作。例如,“每个学生注册的课程不能少于3门,且不能多于6门” 可以很方便的用下面的规则表示:

3{enroll(S,C):course(C)}6:-student(S).

其中,S表示学生集合中的任意元素,C表示课程集合中的任意元素。

发明内容

技术问题:本发明提供一种过程直观自然,便于操作,当遇到多个临床实 践指南并用时,便于扩展支持的对基于临床医学指南的活动图进行形式化的方 法。

技术方案:本发明的对基于临床实践指南的活动图进行形式化的方法,包 括如下步骤:

1)用图论中边上带有标签的有向图,对基于临床实践指南的活动图的进行 符号定义,定义的结果为(CN∪AN∪DN0∪DNx,E,l:E→L),其中:

CN,AN,DN0,DNx,L是互不相交的集合,

CN={x},x称为上下文节点,

集合AN,DN0,DNx,L的元素分别称为动作节点、逻辑或决策节点、排斥或决 策节点和标签,

这里的V=CN∪AN∪DN0∪DNx,集合E的一个元素(x,y)称为 一条边,是节点y的输入边,节点x的输出边,对于上下文节点没有输入边,对 于任意非决策节点只能有至多一条输出边,

l是标签函数,是边到标签的部分函数,即不是所有的边上都有标签,对于 如果x是决策节点,则l((x,y))总是存在的;

2)假定临床实践指南中的候选治疗方案反应在活动图中是一个子图,用图 论的方法定义子图,定义的结果为:

活动图G的上下文节点属于子图H,

子图H中的任意节点都是从上下文节点可达的,

对于子图H中的任意节点x,必定存在至少一个节点y,y是活动图中的叶 子节点,且节点x到节点y是可达的,

对于子图H中的任意排斥或决策节点x,只有一条输出边在子图H中;

3)用回答集程序表示活动图,记为回答集程序的动态模块∏ag,具体方法为, 在回答集程序中添加以下事实,构成动态模块∏ag

分别用下列事实来对应表示活动图ag中的每个上下文节点ct,其中cNode是 逻辑谓词名:

cNode(ag,ct).;

分别用下列事实来对应表示活动图ag中的每个动作节点action,其中aNode 是逻辑谓词名:

aNode(ag,action).;

分别用下列事实来对应表示活动图ag中的每个逻辑或决策节点orDecision, 其中oNode是逻辑谓词名:

oNode(ag,orDecision).;

分别用下列事实来对应表示活动图ag中的每个排斥或决策节点orDecision, 其中xNode是逻辑谓词名:

xNode(ag,xorDecision).;

分别用下列事实来对应表示活动图ag中的每条边,其中edge是逻辑谓词名, x、y分别为节点名称:

edge(ag,x,y).;

分别用下列事实来对应表示活动图ag中的每个带有标签的边(x,y),其中 label为逻辑谓词名,x、y分别为节点名称,l为标签名:

label(ag,x,y,l).;

4)在回答集程序中添加推理规则,记为回答集程序的核心模块∏core,具体 方法为,在回答集程序中添加如下规则,构成核心模块∏core

用如下规则定义活动图Ag中的节点X,其中decisionNode和node是新引入的 逻辑谓词名:

decisionNode(Ag,X):-xNode(Ag,X).

decisionNode(Ag,X):-oNode(Ag,X).

node(Ag,X):-cNode(Ag,X).;

node(Ag,X):-aNode(Ag,X).

node(Ag,X):-decisionNode(Ag,X).

用如下规则定义活动图Ag中的叶子节点lNode(Ag,X)和非叶子节点 nLNode(Ag,X):

nLNode(Ag,X):-edge(Ag,X,Y),node(Ag,X),node(Ag,Y).,

lNode(Ag,X):-node(Ag,X),not nLNode(Ag,X).

其中Y是 表示任意节点的变量;

用如下规则定义活动图中的候选边,所述活动图中的候选边,即子图H中的 边:

对于每个排斥或决策节点xNode(Ag,X),至多选择它的一条输出边 edge(Ag,X,Y)作为候选边candidateEdge(Ag,X,Y),即

0{candidateEdge(Ag,X,Y):edge(Ag,X,Y)}1:-xNode(Ag,X).,

对于每个逻辑或决策节点oNode(Ag,X),选择它的所有输出边 edge(Ag,X,Y)的任意子集作为候选边candidateEdge(Ag,X,Y),即

{candidateEdgee(Ag,X,Y):edge(Ag,X,Y)}:-oNode(Ag,X).,

对于除决策节点以外的每个节点,它的输出边edge(Ag,X,Y)随机的 选为候选边candidateEdge(Ag,X,Y),即

0{candidateEdge(Ag,X,Y):edge(Ag,X,Y)}1:-node(Ag,X),not decisionNode(Ag,X). ;

用如下规则定义子图包含的节点:

nodeInTreatment(Ag,X):-candidateEdge(Ag,X,Y).,

nodeInTreatment(Ag,Y):-candidateEdge(Ag,X,Y).

其中Ag,X,Y 是变量,nodeInTreatment是新引入的逻辑谓词名;

用如下规则定义子图中节点间的可达性:

reachable(Ag,X,X):-node(Ag,X).

reachable(Ag,X,Y):-candidateEdge(Ag,X,Y).,

reachable(Ag,X,Y):-reachable(Ag,X,Z),reachable(Ag,Z,Y).

其中 Ag,X,Y是变量,reachable是新引入的逻辑谓词名;

用如下规则定义子图满足的约束条件:

子图中必有上下文节点Cn,即

:-cNode(Ag,Cn),not nodeInTreatment(Ag,Cn).,

任意节点X必定从上下文节点Cn可达,即

:-nodeInTreatment(Ag,X),cNode(Ag,Cn),not reachable(Ag,Cn,X).

任意节点X必定可达至少一个叶子节点,即

reachLeaf(Ag,X):-reachable(Ag,X,Y),lNode(Ag,Y).,

:-nodeInTreatment(Ag,X),not reachLeaf(Ag,X).

其中 Ag,X,Y是变量,reachLeaf是新引入的逻辑谓词名;

对于子图H中的动作节点定义一个辅助规则:对活动图中的任意动作节点, 如果在子图中,就满足actionInTreatment(D,X),即

actionInTreatment(D,X):-nodeInTreatment(Ag,X),aNode(Ag,X),ag(D,Ag). 。

有益效果:本发明与现有技术相比,具有以下优点:

本发明的形式化基于临床实践指南的活动图的方法,形式化后的结果是计算 机可执行的。因此可以将基于本发明形式化的结果,应用到自动化医疗辅助决策 系统中。目前很多研究小组正致力于临床实践指南的形式化,但是还没有一种语 言成为统一被采用的业界标准。已广泛使用的形式化方法中有些是不可用计算机 执行的,这些语言主要关注于对基本的医疗流程算法的形式化,还有一些不适合 形式化复杂的,多步骤的指南结构。

本发明通过形式化基于临床医疗指南的活动图,把实际的领域问题转化成活 动图中搜索子图的问题。本发明方法首先用图论的方法对基于临床实践指南的活 动图及子图进行符号定义,以便准确匹配到可以使用本方法的研究对象;然后对 特定的研究对象,即活动图,给出回答集程序语言的表示方法;接着给出推理所 需要的规则集,从而构建出完整的可供推理的回答集程序。整个过程直观自然, 便于操作。本发明得到的回答集程序是计算机可执行的,目前已广泛使用的推理 机有smodels,clingo,DLV等。实际应用中,将得到的回答集程序送入上诉推 理机,输出结果即为活动图中包含的所有符合条件的子图。由于活动图本身是基 于医疗领域的临床实践指南,而在本发明中定义的子图则对应临床实践指南中的 治疗方案,所以本发明可以用于自动的医疗决策系统中,来辅助医疗领域工作人 员做决策。

本发明方法基于纯描述逻辑的方法,具有较强的可扩展性,适合形式化复杂 的,多步骤的指南结构,另外上述回答集程序分为动态模块和核心模块两个模块, 其中核心模块是不依赖于特定活动图的,具有可复用的特点。此外,由于回答集 程序本身的非单调特性,本发明公开的方法具有较高的容变能力,这意味着,首 先,可以很自然的表达医疗领域频繁出现的异常情况;其次,当遇到多个临床实 践指南并用时,本发明的方法便于扩展支持。

附图说明

图1为回答集程序形式化基于临床实践指南的活动图的流程图。

图2为基于十二指肠溃疡的临床实践指南的活动图。

图3为基于短暂性脑缺血的临床实践指南的活动图。

具体实施方式

下面给出对这两个活动图进行形式化的具体实例,分别记最终得到的回答集 程序为∏(du),∏(tia)。

1)用图论中边上带有标签的有向图,对基于临床实践指南的活动图的进行 符号定义,定义的结果为(CN∪AN∪DN0∪DNx,E,l:E→L),其中:

CN,AN,DN0,DNx,L是互不相交的集合,

CN={x},x称为上下文节点,

集合AN,DN0,DNx,L的元素分别称为动作节点、逻辑或决策节点、排斥或决 策节点和标答,

这里的V=CN∪AN∪DN0∪DNx,集合E的一个元素(x,y)称为 一条边,是节点y的输入边,节点x的输出边,对于上下文节点没有输入边,对 于任意非决策节点只能有至多一条输出边,

l是标签函数,是边到标签的部分函数,即不是所有的边上都有标签,对于 如果x是决策节点,则l((x,y))总是存在的;

2)假定临床实践指南中的候选治疗方案反应在活动图中是一个子图,用图 论的方法定义子图,定义的结果为:

活动图G的上下文节点属于子图H,

子图H中的任意节点都是从上下文节点可达的,

对于子图H中的任意节点x,必定存在至少一个节点y,y是活动图中的叶 子节点,且节点x到节点y是可达的,

对于子图H中的任意排斥或决策节点x,只有一条输出边在子图H中;

3)用回答集程序分别表示两个活动图,记为回答集程序的动态模块 ∏ag(du)和∏ag(tia),具体方法为,在回答集程序中添加以下事实,构成动态模块 ∏ag(du)和∏ag(tia):

ag(du)的构建过程:

分别用下列事实来对应表示活动图2中的每个上下文节,记图2为duAg, 图2中的上下文节点为du:

cNode(duAg,du).;

分别用下列事实来对应表示活动图2中的每个动作节点,图2中的动作节点 有5个,分别记为sa,et,ppi,sc,rs:

aNode(duAg,sa).

aNode(duAg,et).

aNode(duAg,ppi).;

aNode(duAg,sc).

aNode(duAg,rs).

分别用下列事实来对应表示活动图2中的每个逻辑或决策节点,图2中没有 出现逻辑或节点,故不加入任何事实;

分别用下列事实来对应表示活动图2中的每个排斥或决策节点,图2中的排 斥或决策节点有2个,分别记为hpyTest和ulcerHealed:

xNode(duAg,hpyTest).

xNode(dyAg,ulcerHealed).;

分别用下列事实来对应表示活动图2中的每条边edge(ag,x,y).,其中,x,y 分别为节点名称,图2中共有7条边,所连接的节点已在上面定义过:

edge(duAg,du,sa).

edge(duAg,sa,hpyTest).

edge(duAg,et,ulcerHealed).

edge(duAg,ppi,ulcerHealed).;

edge(duAg,hpyTest,et).

edge(duAg,hpyTest,ppi).

edge(duAg,ulcerHealed,sc).

分别用下列事实来对应表示活动图2中的每个边上的标签label(ag,x,y,l)., 其中,x、y分别为节点名称,l为标签名,图2中共有4条边上有标签,标 签名分别记为hpp,hpn,uh和unh,所涉及的节点已在上面定义过:

label(duAg,hpyTest,et,hpp).

label(duAg,hpyTest,ppi,hpn).

label(duAg,ulcerHealed,sc,uh).;

label(duAg ulcerHealed rs unh)

同理,∏ag(tia)的构建过程如下:

分别用下列事实来对应表示活动图3中的每个上下文节,记图2为tiaAg, 图3中的上下文节点为tia:

cNode(tiaAg,tia).;

分别用下列事实来对应表示活动图3中的每个动作节点,图3中的动作节点 有6个,分别记为ec,a,ts,pcs,d,nc:

aNode(tiaAg,ec).

aNode(tiaAg,a).

aNode(tiaAg,ts).

aNode(tiaAg,pcs).;

aNode(tiaAg,d).

aNode(tiaAg,nc).

分别用下列事实来对应表示活动图3中的每个逻辑或决策节点,图3中没有 出现逻辑或节点,故不加入任何事实;

分别用下列事实来对应表示活动图3中的每个排斥或决策节点,图3中的排 斥或决策节点有4个,分别记为hypCaemia,fast,neuSymResolved和riskStroke:

xNode(tiaAg,hypCaemia).

xNode(tiaAg,fast).

xNode(tiaAg,neuSymRe solved).;

xNode(tiaAg,riskStroke).

分别用下列事实来对应表示活动图3中的每条边edge(ag,x,y).,其中x,y分 别为节点名称,图3中其有12条边,所连接的节点已在上面定义过:

edge(tiaAg,tia,hypCaemia).

edge(tiaAg,a,riskStroke).

edge(tiaAg,ts,nc).

edge(tiaAg,d,nc).

edge(tiaAg,hypCaemia,fast).

edge(tiaAg,hypCaemia,ec).

edge(tiaAg,fast,pcs).;

edge(taiAg,fast,neuSymRe solved).

edge(tiaAg,neuSymRe solved,a).

edge(tiaAg,neuSymRe solved,ts).

edge(tiaAg,tiskStroke,pcs).

edge(tiaAg,riskStroke,d).

分别用下列事实来对应表示活动图3中的每个边上的标签label(ag,x,y,l).,

其中,x、y分别为节点名称,l为标签名,图3中共有8条边有标签,标签 名分别记为ha,hp,fn,fp,nsr,nsnr,rsn和rse,所涉及的节点已在上面定义过:

label(tiaAg,hypCaemia,fast,ha).

label(tiaAg,hypCaemia,ec,hp).

label(tiaAg,fast,pcs,fn).

label(tiaAg,fast,neuSymRe solved,fp).;

label(tiaAg,neuSymRe solved,a,nsr).;

label(tiaAg,neuSymRe solved,ts,nsnr).

label(tiaAg,riskStroke,pcs,rsn).

label(tiaAg,riskStroke,d,rse).

4)在回答集程序中添加推理规则,记为回答集程序的核心模块∏core,本模 块是可复用的,因此对活动图图2和图3添加的是相同的规则集。具体方法为, 在回答集程序中生成如下规则,构成核心模块∏core

用如下规则定义活动图Ag中的节点X:

decisionNode(Ag,X):-xNode(Ag,X).    (1)

decisionNode(Ag,X):-oNode(Ag,X).    (2)

node(Ag,X):-cNode(Ag,X).            (3),

node(Ag,X):-aNode(Ag,X).            (4)

node(Ag,X):-decisionNode(Ag,X).     (5)

其中规则(1),(2)表示“逻辑或节点和排斥或节点统称为决策节点”,

规则(3),(4),(5)表示“上下文节点,动作节点和决策节点统称 为节点”。

用如下规则定义活动图Ag中的叶子节点lNode(Ag,X)和非叶子节点 nLNode(Ag,X):

nLNode(Ag,X):-edge(Ag,X,Y),node(Ag,X),node(Ag,Y).    (6)

lNode(Ag,X):-node(Ag,X),not nLNode(Ag,X).               (7)

其中Y是表示任意节点的变量,规则(6)表示“对于活动图Ag中任 意节点X,如果存在节点X到节点Y的边,则节点X不是叶子节 点”,规则(7)表示“对于活动图Ag中任意节点X,如果没有证据 表明不是叶子节点,则认为是叶子节点”;

用如下规则定义活动图中的候选边,所述活动图中的候选边,即子图H中的 边:

对于每个排斥或决策节点xNode(Ag,X),至多选择它的一条输出边 edge(Ag,X,Y)作为候选边candidateEdge(Ag,X,Y),即

0{candidateEdge(Ag,X,Y):edge(Ag,X,Y)}1:-xNode(Ag,X).    (8)

对于每个逻辑或决策节点oNode(Ag,X),选择它的所有输出边 edge(Ag,X,Y)的任意子集作为候选边candidateEdge(Ag,X,Y),即

{candidateEdge(Ag,X,Y):edge(Ag,X,Y)}:-oNode(Ag,X).    (9),

对于除决策节点以外的每个节点,它的输出边edge(Ag,X,Y)随机的 选为候选边candidateEdge(Ag,X,Y),即

0{candidateEdge(Ag,X,Y):edge(Ag,X,Y)}1:- node(Ag,X),not decisionNode(Ag,X).    (10);

用如下规则定义子图包含的节点:

nodeInTreatment(Ag,X):-candidateEdge(Ag,X,Y).    (11)

nodeInTreatment(Ag,Y):-candidateEdge(Ag,X,Y).    (12)

其中Ag,X,Y是变量,规则(11),(12)表示“候选边连接的节点都在 子图中”;

用如下规则定义子图中节点间的可达性:

reachable(Ag,X,X):-node(Ag,X).                        (13)

reachable(Ag,X,Y):-candidateEdge(Ag,X,Y).               (14)

reachable(Ag,X,Y):-reachable(Ag,X,Z),reachable(Ag,Z,Y).  (15)

其中规则(13)表示“任意节点X到自身可达”,规则(14)表示“候 选边连接的节点间可达”,规则(15)表示“节点的可达性具有传递性, 即若节点X到节点Z可达,节点Z到节点Y可达,则节点X到节点Y可 达”;

用如下规则定义子图满足的约束条件:

子图中必有上下文节点Cn,即

:-cNode(Ag,Cn),not nodeInTreatment(Ag,Cn).,

任意节点X必定从上下文节点Cn可达,即

:-nodeInTreatment(Ag,X),cNode(Ag,Cn),not reachable(Ag,Cn,X).

任意节点X必定可达至少一个叶子节点,即

reachLeaf(Ag,X):-reachable(Ag,X,Y),lNode(Ag,Y).

:-nodeInTreatment(Ag,X),not reachLeaf(Ag,X).;

对于子图H中的动作节点定义一个辅助规则:对活动图中的任意动作节点, 如果在子图中,就满足actionInTreatment(D,X),即

actionInTreatment(D,X):-nodeInTreatment(Ag,X),aNode(Ag,X),ag(D,Ag). 。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号