一种基于消息自动路由的多医疗信息系统集成方法
【专利摘要】本发明公开了一种基于消息自动路由的多医疗信息系统集成方法,各个医疗信息系统的接口行为和数据语义通过接口语义建模进行了明确的表达,通过如下步骤进行集成:识别需要进行消息交互的医疗信息系统的接口行为差异得到相应的行为异构模式;根据识别出的行为异构模式确定相应的路由解决方案,并添加到消息流对应的消息通道上;根据接收接口的接口行为和数据语义,按照路由设计规则中的参数设置规则配置路由器的路由参数即完成集成,所述路由参数包括路由目标和输出消息。本发明根据相交互的医疗信息系统的异构模型种类确定路由解决方案,要将EIP中路由器的选择和配置与其针对的协作场景特征建立起计算机化的对应关系,大大提升路由设计效率。
【专利说明】
一种基于消息自动路由的多医疗信息系统集成方法
技术领域
[0001] 本发明涉及信息系统集成技术领域,特别涉及医疗信息系统流程协作技术,具体 为一种基于消息自动路由的多医疗信息系统集成方法。
【背景技术】
[0002] 现代医疗信息密集,医疗活动复杂多样,且具有专业性,因此医疗IT环境涌现了大 量信息系统。为了支持医院的整体业务运行,需要将医疗过程中不同环节的医疗活动所使 用的医疗信息系统集成。而对于医疗信息系统来说,集成的主要目的包括信息共享和业务 协同。系统间业务协同的需求,包括功能整合和流程协同。医疗信息系统的功能体现为从外 部接收数据,处理后返回结果。这些功能可能是自动的计算和处理过程,也可能包含复杂人 工操作的工作流。
[0003] 为了实现更复杂、跨越系统边界的业务功能,往往需要将分布于多个信息系统中 的功能按照需要的业务流程进行整合。同时,在多个系统内部运行的复杂工作流之间,不仅 需要交换业务处理结果,还需要协调他们之间的业务依赖关系,从而实现流程之间的协同。 由于医疗信息系统的多样性和复杂性,它们之间在技术、数据和行为方面存在大量的异构 情况。其中,技术异构阻碍了系统间的技术互操作,数据异构阻碍了语义互操作,而行为异 构阻碍了流程互操作。
[0004] 当系统异构性无法避免时,由一个中间系统来在不同的接口间进行转换,这种方 法通常称为协调。通过协调来解决异构性问题为集成提供了更经济、更灵活的途径。为了解 决企业级信息系统(EIS)间的异构性问题,企业应用集成(EAI)-直是企业级IT技术发展的 核心关注点之一。实现EAI的主要技术是利用EAI中间件。对于医疗信息系统集成问题,主要 使用的技术手段是医疗集成引擎。医疗集成引擎是在通用EAI中间件的基础上,提供了一系 列医疗领域特定的连接适配器来连接到多样的医疗信息系统接口上,并在系统接口之间建 立消息通道,实现数据的传递,并通过消息路由协调异构流程的消息交换行为,以及通过消 息转换在异构数据之间进行翻译。
[0005] 不同集成场景的需求不同,系统接口本身的互操作特征也不同,所以需要针对具 体的集成需求和接口特征,设计并开发出具体的集成解决方案。EAI中间件将通用的集成功 能如消息转换和消息路由等封装成可复用、可配置的组件,使集成技术人员可以直接利用 这些组件进行组合和配置,从而构建出集成方案,无需从头开始进编码开发。而在利用集成 引擎的配置组件来设计并开发出集成解决方案时,消息的路由逻辑设计是非常重要的一个 环节。路由(routing)指将消息送到特定的目标系统。在根据业务需求确定了接口之间的连 接关系后,需要通过设计消息路由逻辑使数据在接口之间以符合集成需求的方式流动。
[0006] BPMN(business process modeling notation)是一种标准化建模语言,支持以协 作图和编舞图来分别面向连接的方式和面向交互的方式表达协作场景。BPMN流程模型通过 控制流(contro 1 -f 1 ow)元素连接流程中的多个活动(activi ty)。与外部进行消息交互的通 讯活动(communication activity)包括接受消息、发送消息、调用外部服务等。BPMN协作图 使用消息流(message flow)连接多个流程模型中的通讯活动,描述这些流程之间的协作关 系。BPMN编舞图使用编舞活动(choreographyactivity)代表交互单元,通过控制流表达交 互之间的依赖关系,并与协作图中的消息流关联。作为标准的流程建模语言,BPMN旨在为业 务专家和技术人员之间的沟通鸿沟提供一个标准化的桥梁。BPMN提供了容易被业务专家理 解的图形化标记,也具备明确定义的具有规范语义的元模型,而且具备足够的针对复杂流 程协作场景的表达能力。
[0007] BPMN协作图表达系统间的连接关系,然而,由于业务流程的差异,接口之间的行为 方式可能存在差异,这体现为行为模型之间并不是完全匹配的。因此,要在具备不匹配行为 的接口之间实现流程互操作,需要由集成引擎进行行为协调,将消息按照系统对消息交换 顺序和时机的要求进行路由。
[0008] 企业集成模式(EIPs)总结了集成设计中的一些常见的路由问题,并设计了添加了 特定类型的消息路由器(message router)如将一个整体的消息拆分为若干个部分的拆分 器(splitter),用于为路由设计提供可复用的解决方案。这些路由器可以通过参数配置呈 现出不同的数据接收、处理和发送特征。EIP表达了基本EAI功能,包括通过消息通道传输消 息、添加消息转换和路由等中间处理步骤。基于EIP的集成设计将一个复杂的集成问题分解 为若干个子问题,并采用"分而治之"(divide-and-conquer)的策略针对每个子问题找出合 适的解决方案,并组合为针对原始问题的解决方案。
[0009] 虽然BPMN可以很好描述系统间的协作关系,基于EIP来设计集成解决方案,但是集 成配置过程安全依赖于集成人员的人工理解,这就要求集成人员一方面需要理解对协作场 景中不同系统行为提出的路由需求,另一方面需要准确掌握不同类型的路由器功能特征和 配置方式。要提升路由设计效率,需要将EIP中路由器的选择和配置与其针对的协作场景特 征建立起计算机化的对应关系,从而使医学信息系统集成更加容易。
【发明内容】
[0010] 本发明提供了一种基于消息自动路由的医疗信息系统集成方法,解决了进行交互 的医疗信息系统之间存在行为异构,开发人员需要人工识别行为不匹配案例并设计相应的 协调,以及为集成引擎设计路由效率低等问题。
[0011] -种基于消息自动路由的多医疗信息系统集成方法,各个医疗信息系统的接口行 为和数据语义通过接口语义建模进行了明确的表达,通过如下步骤进行集成:
[0012] (1)识别需要进行消息交互的医疗信息系统的接口行为差异得到相应的行为异构 模式;
[0013] (2)根据识别出的行为异构模式确定相应的路由解决方案,并添加到消息流对应 的消息通道上;
[0014] (3)根据接收接口的接口行为和数据语义,按照路由设计规则中的参数设置规则 配置路由器的路由参数即完成集成,所述路由参数包括路由目标和输出消息。
[0015] 本发明中要交互的医疗信息系统之间存在行为异构,并使用BPMN协作图来表述系 统的连接关系。本发明中要交互的医疗信息系统已经将接口的行为和数据语义都已经通过 接口语义建模进行了明确的表达,使计算机能够对集成场景中的行为差异特征进行分析, 识别出路由需求,自动应用相应的解决方案,并将解决方案组合起来,以满足整个集成场景 对集成引擎行为的要求。
[0016] 步骤(1)中识别行为异构模式时由计算机对一个接口连接模型进行检测,识别出 两个系统之间存在的行为异构模式实例。
[0017] 本发明中路由器参数,根据接收接口的行为模型(即接口行为)和消息语义,按照 路由设计规则中的参数设置规则,配置路由器参数,包括路由目标和输出消息的构建方法。
[0018] 本发明的方法当构建出的路由模型(即路由解决方案)仍然无法解决行为间的异 构时,由集成技术人员手工对模型进行调整和补充。比如,当消息发送方并没有提供消息接 收方期望的交互时,需要设计特定的消息构建方法用于交互。
[0019] 本发明的基于消息自动路由的医疗信息系统集成方法对每个BPMN协作图进行分 析,识别其中的行为不匹配模式,选择相应的路由器,其中行为异构模式为BPMN协作图形式 表达的系统连接关系中反复出现的行为异构场景。
[0020] 所述接口行为差异包括发送者和接收者之间的消息基数和顺序的差异。
[0021 ]所述的行为异构模式包括一对多异构模式、多对一异构模式和多对多异构模式; 其中,一对多异构模式包括循环接收者模式、顺序接收者模式、互斥接收者模式和多接收者 模式;多对一异构模式包括循环发送者模式和多发送者模式,多对多异构模式包括顺序差 异模式。
[0022]异构模式主要关注于发送者和接收者之间消息基数和顺序的差异,并将这些差异 分为一对多、多对一和多对多三种类型。针对每个模式,本发明定义了行为异构模式描述和 特征检测方法;行为异构模式主要包括:
[0023] 1)、行为模型的一对多异构模式:
[0024] A、循环接收者(loop-receiver)模式:交互中的发送端采用单个操作来发送包含 多个部分的消息,而接收端分多次来接收这个消息的局部内容。在BPMN中,该模式表现为一 个发送任务通过消息流连接到一个具备循环(loop)属性的接收任务上。该模式的检测特征 定义为:
[0025] LoopReceiver^{mf | loop (target (mf)) = true A InNum( target (mf))
[0026] = 1 八 loop (source (mf) )= false}
[0027 ]其中mf指连接发送方和接收方的消息流。
[0028] B、顺序接收者(sequence-receiver)模式:交互中发送消息的一方发送单次消息, 而接收一方多次、顺序地接受该消息的若干部分。在协作模型中,该模式表现为一个接口发 出的消息流连接到另一个接口的若干个具备顺序关系的接收任务上。该模式的检测特征定 义为:
[0029] SequenceReceivers^- {:m/},where: SequenceReceivers,
[0030] Source(mfi) = Source(mfj) Asequence(target(mfi) ,target(mfj))
[0031]其中,sequence函数判断两个task之间是否存在先后关系。
[0032] C、互斥接收者(exclusive-receivers)模式:一个接口发出的消息需要按一个的 条件发送到另一个系统的不同接口上。在BPMN模型中,体现为一个发送任务通过消息流连 接到由一个互斥网关(exclusive gateway)连接的多个receive task上。此模式的检测特 征定义为:
[0033] ExchisveReceivers^ \rtif where: ExclusveReceivers,
[0034] Source(mfi) = Source(mfj) Aexclusive(target(mfi) ,target(mfj))
[0035]其中,exclusive函数判断同一个流程模型中的两个任务之间是否存在互斥关系。 [0036]该模式可以细分为基于事件的互斥和基于数据的互斥:
[0037] ?基于事件的互斥:指目标系统无法预知将实际接收到哪种消息,而同时使用两 个接口操作来接收,当一种消息类型先到达时,另一种类型的消息将不再被接收。在BPMN行 为模型中,这种行为方式采用基于事件的互斥网关(event-basedexclusive gateway)连接 两个接收操作
[0038] ?基于数据的互斥:指目标系统可以根据已有消息的特征在多个互斥操作中选择 了一个来接收下一个消息。在BPMN中,目标系统的这种行为方式表现为一个基于数据的互 斥网关(data-basedexclusive gateway)来连接两个接收操作。
[0039] 0、多接收者模式(1111111:1口16-代〇6;[¥6^):-个参与方发出的消息同时存在多个消 息接收者。这体现了广播式发送的路由需求。在BPMN协作模型中,体现为一个流程的发送消 息任务通过多个消息流连接到位于多个不同流程中的接收任务上。通过以下特征来检测该 模式:
[ ] MuItipIeReceivers<-^mf\ l〇0p(so:uree(m/)) =ti uc} here: Ve MuUipleReeeivers,
[0041 ] Source (mfi ) = Source (mfj)八 process (target (mfi))辛process (targe t(mfj))
[0042]该表达式查询出具备同样的源节点而连接到不同行为模型中的目标节点上的消 息流。
[0043] 2)、行为模型的多对一异构模式:
[0044] A、循环发送者模式(loop-sender):接收方期待接收一个包含多个项目的整体消 息,而发送方采用循环的方式分多次发送消息的局部。在BPMN模型中,表现为由一个具备循 环属性的发送任务发出的唯一消息流连接到一个不具备循环属性的接收任务上。该模式的 检测特征为:
[0045] LoopSender^{mf | loop(source(mf)) =true A〇utNum(source(mf)) = 1A loop (target(mf))
[0046] =false}
[0047] B、多发送者模式(multiple-senders):来自不同系统的消息被发送到同一个系统 的同一个单次交互上。在BPMN模型中,这体现为不同行为模型中的发送任务同时发送消息 到一个非循环的接收任务上。该模式的检测特征如下(其中r是一个特定的接收任务):
[0048] MultipleSenders^{mf | target (mf) = r A l〇〇p(r) = false}
[0049] 3)、行为模型的多对多异构模式:
[0050] 该类型的典型异构场景是顺序差异(Order-mismatch)。在这种场景中,两个系统 在一次会话中存在多次相关联的消息交换,而双方的消息交互顺序不一致。在BPMN模型中, 这表现为两个消息流的接收任务的顺序与相应的发送任务的顺序不同。此模式的检测特征 为:
[0051 ] OrderMismatch<r- {mf\y^here Nmfi ,m.fj E Order Mismatch,
[0052] Seq(source(mfi),source(mfj))八Seq(target(mfi),target(mfj))?〇
[0053] 路由解决方案主要是针对不同的行为异构模式而选择相应特定类型的路由器。不 同的行为异构模式所需要的路由器分别是:
[0054] #循环接收者模式(loop-receiver):
[0055] 此模式需要将一次消息交换拆分成多次消息交换,在EIP中拆分器(splitter)实 现把一个整体消息拆分为多个局部消息并逐个发送。因此,对符合此模式的行为异构可以 使用拆分器进行路由。
[0056] #顺序接收者模式(sequence-receiver):
[0057]此模式将一个接口发出的消息流连接到另一个接口的若干具备顺序关系的任务 上。在EIP中,纸条路由器(routing slip)为消息添加一个包含具备顺序约束的目标接收者 列表(称为slip),使消息按照该顺序在这些目标之间传递。因此,这种异构模式的解决方式 是使用一个routing s 1 ip路由来控制消息发送的顺序。
[0058] #互斥接收者模式(exclusive-receivers):
[0059]此模式需要根据输入消息的特征将其路由到一个特定的目标接口上。在EIP中,基 于内容的路由器(CBR)根据消息的内容在多个可选目标中选择一个进行路由。因此,使用 CBR来协调该模式中不同的行为方式。
[0060] #多接收者模式(multiple-receivers):
[0061]此模式需要将同一个消息发送给多个接收者。该模式根据目标操作的功能语义有 不同的解决方案。1)当多个接收者的功能语义互斥时,这个模式代表了把一个请求发送到 实现不同类型功能的接收者的需求,因此,采用CBR根据接收者的功能类型进行路由。2)当 多个接收者具备同样或类似的功能时,该模式代表了将一个系统的消息发布给多个感兴趣 的系统的需求。在医疗领域,基于事件的发布-订阅是这种模式的最典型体现。针对这种需 求,采用EIP中的接收者列表(recipient list)路由器根据预定义的目标列表将一个消息 同时发布到多个接收者。
[0062] ?循环发送者模式(loop-sender)
[0063] 这个模式可以细分为两种特征。第一种特征考察消息定义间的结构关系:目标接 口的消息结构中包含多个发送接口的消息结构。这种情况表达了把多个局部消息整合为单 一消息的需求。在EIP中,聚合器(aggregator)用于实现多个局部消息的聚合。因此,用聚合 器解决这种需求。第二种情况考察双方功能语义间的关系,如果源操作的功能语义大于目 标操作的功能语义范围,意味着接收方会收到并不在自己功能范围内的消息。因此,需要对 超出目标功能范围的消息进行过滤。在EIP中,使用过滤器(filter)过滤掉不属于目标接口 功能范围的消息。
[0064] # 多发送者模式(multiple-senders)
[0065] 此协作场景体现了对多个消息进行选择和组合的路由需求,因此使用一个消息过 滤器和一个聚合器的组合来实现该需求,过滤器和聚合器的配置方式与上一模式相同。
[0066] #顺序差异模式(Order-mismatch)
[0067]这个异构模式体现了对多个消息的顺序关系进行重新排列的路由需求,在EIP中, 使用消息重排器(resequencer)对多个消息进行重新排序。
[0068]接口行为模型和消息语义假设已经通过接口语义建模进行了明确的表达。针对每 个行为异构模式的路由设计,制定了相应的参数设置规则。
[0069] #循环接收者模式(loop-receiver):
[0070] 拆分器通过设置其查询属性-queryRef,来查询源操作输出的消息中包含目标操 作消息的组成不烦,查询结果被逐个发送给目标操作。
[0071]假设目标接收操作的定义中已经使用本体表达了数据特征,可以使用SPARQL查询 (SPARQL Protocol And RDF Query Language)将整体的消息分割定义为面向目标接口的 局部信息。
[0072] #顺序接收者模式(sequence-receiver):
[0073] 纸条路由器(routing slip)可以通过设置Slip属性来保证源消息按照顺序在目 标之间传递。Slip属性可以定义多个目标操作的顺序,并以逗号分隔。
[0074] #互斥接收者模式(exclusive-receivers):
[0075] CBR的通过一系列分支配置,每个分支的配置属性包括判断条件和路由目标。通过 属性branchList来配置分支,该属性定义多个条件分支,每个分支的属性包括判断条件 (condition)和路由目标(target)组成。Condition 使用0WL 类型表达式(classexpress ion) 定义,target为目标行为模型中的接收任务对应的操作对象。
[0076] #多接收者模式(multiple-receivers):
[0077] 接收者列表的配置属性是一个列举目标接收者的列表。由于协作模型明确定义了 连接关系,该属性的取值由与消息流连接的接收任务对应的操作组成。配置属性 targetList说明了目标接收者列表,体现为一个或多个体现为一个或多个接收消息的操作 对象,使用逗号分隔。
[0078] ?循环发送者模式(loop-sender)
[0079] 聚合器的配置包括针对发送任务的循环接收属性和针对目标接收任务的消息构 建属性。其中属性completeCondition定义停止接收局部消息并开始执行聚合的条件,属性 queryRef用SPARQL查询定义消息聚合的方式。
[0080] 消息过滤器的配置方式是用类表达式判定需要过滤的消息类型,这样的表达式可 以通过对目标操作的消息类型进行逻辑取反(not)而自动获得。属性filterExpression判 定是否将消息过滤的表达式。
[0081 ] # 多发送者模式(multiple-senders)
[0082] 过滤器和聚合器的配置方式与上一模式相同。
[0083] #顺序差异模式(Order-mismatch)
[0084] 重排器的配置涉及对消息排序方法的指定,在本发明中,表现为从一个系统接收 消息的顺序和向另一个系统发送消息的顺序,可以根据发送系统和接收系统的行为模型自 动配置。其中属性receiveSequence定义接收消息的顺序(如"M2,Ml")。取值来自消息发送 端的行为模型顺序;属性sendSequence定义发送消息的顺序(如"Ml,M2")。取值来自消息接 收端行为模型的任务顺序。重排器具有内部状态,会按顺序查询发送顺序表达式中的每个 接收者所需的数据是否已经就绪。若已经就绪,则发送消息;否则,继续等待当一个消息流 出现于多个行为异构模式中时,需要考虑不同路由器在消息处理步骤中的顺序。
[0085] 综上所述,本发明针对不同的行为异构模式设置不同的路由解决方案:
[0086] 对于循环接收者模式,利用拆分器进行路由,
[0087]对于顺序接收者模式,利用纸条路由器进行路由,
[0088]对于互斥接收者模式,利用基于内容的路由器进行路由,
[0089] 对于循环发送者模式,利用聚合器或过滤器进行路由,
[0090] 对于多发送者模式,利用过滤器配合聚合器进行路由。
[0091] 作为优选,当存在跨越多个行为异构模式的消息流时,按照预设的顺序优先级对 路由解决方案进行组合串接,并添加到相应的消息通道上。
[0092] 进一步优选,预设的顺序优先级由高至低依次为循环发送者模式、多接收者模式、 顺序差异模式、顺序接收者模式、多发送者模式和循环接收者模式,且顺序接收者和互斥接 收者优先级别相同。
[0093] 本发明根据不同异构模式的特点,基于顺序优先级的路由方案组合规则:顺序优 先级以数字形式区分了不同路由方案在组合时的顺序差异。一个路由方案的优先级越高 (数字越小),它在组合中的位置就越靠前。这个规则按照系统间、系统、任务的级别顺序,为 不同的模式解决方案定义不同的顺序优先级:
[0094] # loop-sender和loop-receiver均是针对一个具体发送或接收操作的消息处理, 因此应该分别临近消息发送接口和消息接收接口,即分别具备最高和最低的顺序优先级。 [0095] ?Multi-receivers模式将一个系统的消息路由到多个系统,因此,其顺序优先级 高于针对单个目标系统的路由模式,而低于针对消息发送动作的loop-sender模式。
[0096] ?Order-mismatch模式获取多个消息,重新排序后发到一个特定的系统,因此,其 顺序优先级应该低于面向多个系统的multi-receiver模式,而高于针对单个目标系统的顺 序或互斥模式。
[0097] #5691161106-代06;[¥618和£1(31118;[¥6寸606;[¥618模式针对的都是一个特定系统的 行为,它们具备同样的顺序优先级,并且位于在发送者和接收者之间协调消息顺序的 order-mismatch 模式之后。
[0098] #Multi-senders模式将来自多个系统的消息汇聚到一个具体的接收任务上,因 此其顺序优先级低于针对同一个行为模型中多个任务间关系的模式。
[0099] 按照顺序优先级对路由器进行组合,从而得到了系统交互行为不匹配时消息传递 的路由逻辑设计。
[0100]与现有技术相比,本发明根据相交互的医疗信息系统的异构模型种类确定路由解 决方案,要将EIP中路由器的选择和配置与其针对的协作场景特征建立起计算机化的对应 关系,从而使医学信息系统集成更加容易,大大提升路由设计效率。
【附图说明】
[0101 ]图1(a)和(b)分别为本实施例的循环接收者(loop-receiver)模式的BPMN协作图 和该模式的路由解决方案;
[0102] 图2(a)和(b)分别为本实施例的顺序接收者(sequence-receiver)模式的BPMN协 作图以及该模式的路由解决方案;
[0103] 图3(a)和(b)分别为本实施例的互斥接收者(exclusive-receivers)模式的BPMN 协作图以及该模式的路由解决方案;
[0104] 图4(a)和(b)分别为本实施例的多接收者(multiple-receivers)模式的BPMN协作 图以及该模式的路由解决方案;
[0105]图5(a)和(b)分别为本实施例的循环发送者(loop-sender)模式的BPMN协作图以 及该模式的路由解决方案;
[0106] 图6(a)和(b)分别为本实施例的多发送者(multiple-senders)模式的BPMN协作图 以及该模式的路由解决方案;
[0107]图7(a)和(b)分别为本实施例的顺序差异(Order-mismatch)模式的BPMN协作图以 及该模式的路由解决方案;
[0108] 图8为本实施例的行为异构的集成连接模型示意图;
[0109] 图9为图8所示的行为异构的集成连接模型的路由解决方案示意图。
【具体实施方式】
[0110] 下面将结合附图和具体实施例对本发明进行详细说明。
[0111] -种基于消息自动路由的多医疗信息系统集成方法,各个医疗信息系统的接口行 为和数据语义通过接口语义建模进行了明确的表达,通过如下步骤进行集成:
[0112] (1)识别需要进行消息交互的医疗信息系统的接口行为差异得到相应的行为异构 模式;
[0113] 接口行为差异包括发送者和接收者之间的消息基数和顺序的差异。
[0114] (2)根据识别出的行为异构模式确定相应的路由解决方案,并添加到消息流对应 的消息通道上;
[0115] (3)根据接收接口的接口行为和数据语义,按照路由设计规则中的参数设置规则 配置路由器的路由参数即完成集成,所述路由参数包括路由目标和输出消息。
[0116] 本实施例中行为异构模式包括一对多异构模式、多对一异构模式和多对多异构模 式;其中,一对多异构模式包括循环接收者模式、顺序接收者模式、互斥接收者模式和多接 收者模式;多对一异构模式包括循环发送者模式和多发送者模式,多对多异构模式包括顺 序差异模式。
[0117] 针对不同的行为异构模式设置不同的路由解决方案:
[0118] 对于循环接收者模式,利用拆分器进行路由,
[0119] 对于顺序接收者模式,利用纸条路由器进行路由,
[0120] 对于互斥接收者模式,利用基于内容的路由器进行路由,
[0121] 对于循环发送者模式,利用聚合器或过滤器进行路由,
[0122] 对于多发送者模式,利用过滤器配合聚合器进行路由。
[0123] 图1(a)为本实施例的循环接收者(loop-receiver)模式的BPMN协作图。该集成连 接模型(即协作模型)包括医疗消息系统A和医疗消息系统B,其中,医疗消息系统A作为发送 端,医疗消息系统B作为接收端,交互中发送端(即医疗消息系统A)采用单个操作向接收端 (即医疗消息系统B)来发送包含多个部分(即局部消息M')的消息M,而接收端分多次来接收 消息M,每次接收一个局部消息M'。
[0124] 针对循环接收者(loop-receiver)模式,需要将一次消息交换拆分成多次消息交 换,因此针对该模式可以采用如图1(b)所示的路由解决方案在EIP中拆分器(splitter,即 拆分路由器)实现把医疗消息系统A发送的整体消息M拆分为多个局部消息M'并逐个发送。
[0125]图2(a)为本实施例的顺序接收者(sequence-receiver)模式的BPMN协作图,该集 成连接模型包括医疗消息系统A和医疗消息系统B,其中,医疗消息系统A作为发送端,医疗 消息系统B作为接收端,交互中发送消息的一方(即发送端)发送单次消息,而接收一方多 次、顺序地接受该消息的若干部分,如局部消息Ml,局部消息M2等。在该协作模型中表现医 疗消息系统A的接口发出的消息流连接到医疗消息系统B的接口的若干个具备顺序关系的 接收任务上。
[0126]针对顺序接收者(sequence-receiver)模式,需要将一个接口发出的消息流连接 到另一个接口的若干具备顺序关系的任务上,因此针对该模式可以采用如图2(b)所示的路 由解决方案使用一个routing slip路由来控制消息发送的顺序。在EIP中,纸条路由器 (routing slip)为消息M添加一个包含具备顺序约束的目标接收者列表(称为slip),使接 收方接收到的局部消息Ml、M2按照该顺序在这些目标之间传递。
[0127] 图3(a)为本实施例的互斥接收者(exclusive-receivers)模式的BPMN协作图,该 集成连接模型包括医疗消息系统A和医疗消息系统B,其中,医疗消息系统A作为发送端,医 疗消息系统B作为接收端,交互中发送消息的一方(发送端)发出的消息需要按一个的条件 发送到另一个系统(接收端)的不同接口上,本实施例中对于发送端发送的消息M,接收端需 要根据条件判断是接收消息Ml还是接收消息M2。在BPMN模型中,体现为一个发送任务通过 消息流连接到由一个互斥网关(exclusive gateway)连接的多个receive task上。
[0128]针对互斥接收者(61〇1118;^6-代〇6;^6^)模式,需要根据输入消息的特征将其路 由到一个特定的目标接口上,因此针对该模式可以采用如图3(b)所示的路由解决方案,在 EIP中,基于内容的路由器(CBR)根据消息的内容在多个可选目标中(消息Ml和消息M2)选择 一个进行路由。因此,使用CBR来协调该模式中不同的行为方式。
[0129] 图4(a)为本实施例的多接受者(mul tipi e-receivers)模式的BPMN协作图,该集成 连接模型包括医疗消息系统A、医疗消息系统B和医疗消息系统C,其中系统A为发送端,系统 B和C为接收端,交互中发送消息的一方(发送端)发送的消息同时存在多个消息接收者(接 收端),本实施例中对于发送端发送的消息M,接收端B和接收端都需要接收消息M。在BPMN协 作模型中,体现为一个流程的发送消息任务通过多个消息流连接到位于多个不同流程中的 接收任务上。
[0130] 针对多接受者模式,需要将一个消息广播到多个接收者接口上,因此针对该模式 可以采用如图4(b)所示的路由解决方案,在EIP中,接收者列表(recipient list)路由器根 据预定义的目标列表将一个消息(M)同时发布到多个接收者来接收消息(M)。
[0131] 图5(a)为本实施例的循环发送者(loop-sender)模式的BPMN协作图,该集成连接 模型包括医疗消息系统A和医疗消息系统B。其中,系统A为发送端,系统B为接收端,交互中 发送端(即医疗消息系统A)采用循环方式多次向接收端(即医疗消息系统B)发送消息的局 部(M'),而接收端需要一次接收包含多个局部消息(M')的整体消息(M)。在BPMN模型中,表 现为由一个具备循环属性的发送任务发出的唯一消息流连接到一个不具备循环属性的接 收任务上。
[0132] 针对循环发送者模式,需要将多个局部消息整合为单一消息,因此针对该模式可 以采用如图5(b)所示的路由解决方案。在EIP中,聚合器(aggregator)用于实现将多个局部 消息(M')聚合为一个整体消息(M)。如果发送端发送的消息功能语义大于接收端的功能语 义范围,即有些局部消息(M')不是接收者功能范围内的消息,就需要将这些这些局部消息 (M')过滤掉,在EIP中,使用过滤器(filter)过滤掉不属于目标接口功能范围的消息,然后 将过滤后的消息用聚合器(aggregator)整合为单一整体消息(M),针对此情况的循环发送 者模式的路由解决方案采用图6(b)所示。
[0133] 图6(a)为本实施例的多发送者(multiple-senders)模式的BPMN协作图,该集成连 接模型包括医疗消息系统A、医疗消息系统B和医疗消息系统C,其中系统A和B是消息发送 端,系统C为消息接收端,交互中消息发送端A和B分别发送消息Ml和M2给C的同一个单次交 互上,即C要接收一个消息M。在BPMN模型中,这体现为不同行为模型中的发送任务同时发送 消息到一个非循环的接收任务上。
[0134] 针对多发送者模式,需要将多个消息进行选择和组合,因此针对该模式可以采用 如图6(b)所示的路由解决方案。在EIP中,使用过滤器(filter)过滤掉不是C所需要的消息, 然后用聚合器(aggregator)将过滤后的消息整合为M。
[0135] 图7(a)为本实施例的顺序差异(Order-mismatch)模式的BPMN协作图,该集成连接 模型包括医疗消息系统A和医疗消息系统B。其中,系统A为发送端,系统B为接收端,在一次 交互中,发送端系统A先发送消息Ml,然后发送消息M2,而接收端系统B要先接收消息M2,继 而接收消息Ml。在BPMN模型中,这表现为两个消息流的接收任务的顺序与相应的发送任务 的顺序不同。
[0136] 针对顺序差异模式,需要对多个消息的顺序关系进行重新排列,因此针对该模式 可以采用如图7(b)所示的路由解决方案。在EIP中,使用消息重排器(resequencer)对多个 消息(消息Ml和消息M2)进行重新排序。
[0137] 本实施例的方法中当存在跨越多个行为异构模式的消息流时,按照预设的顺序优 先级对路由解决方案进行组合串接,并添加到相应的消息通道上。预设的顺序优先级由高 至低依次为循环发送者模式、多接收者模式、顺序差异模式、顺序接收者模式、多发送者模 式和循环接收者模式,且顺序接收者和互斥接收者优先级别相同。本实施例中不同行为异 构模式对应的顺序优先级以及路由方案(即路由解决方案)如表1所示。
[0138] 表1
[0140]针对图8中的接口连接模型,首先识别出如下行为异构模式:
[0141] ?在申请单请求的交互中,存在一对多的行为异构:
[0142] _SequenceReceivers= {mfl,mf2,mf3},CIS(Clinical Information System,临 床信息系统)向RIS(Radiology Information System,放射信息系统)下达(即发送)申请 单,而在RIS中要将该申请单进行三次操作,首先创建检查申请,然后为该申请添加检查项 目,最后将该申请提交(即提交申请)。该模型为图2所示的顺序接收者模式的实例。这里的 发送申请单即为发送一个消息M,而RIS中需要用3个功能模块来接收这个申请单,此次消息 交互即分为3个消息流(即mfl,mf2,mf3)。
[0143] _LoopReceiver= {mf2},CIS是通过单个操作发出了检查申请单,但RIS循环多次 来接收检查项目信息。该模型为如图1所示的循环接收者模式的实例。
[0144] #在报告交互中,存在多对一的行为异构:
[0145] LoopSender= {mf4},RIS向CIS发送检查报告时,RIS将单个项目的报告循环多次 发送给CIS,而CIS需要获得的是该检查整体的报告,即消息流mf4。该模型为如图5所示的循 环发送者模式的实例。
[0146] 计算机根据行为异构模式确定相应的路由方案(即路由解决方案),自动选用相应 的路由器进彳丁路由:
[0147] 1 ?针对sequence-receivers模式,生成Routing Slip路由器,用于指定消息被路 由的顺序。根据几个操作在行为模型中的顺序,该路由器的si ip属性自动设置为: "addOrderRequest,add0rderltem,closeRequest"。
[0148] 2 ?针对loop-receiver模式,生成Spl itter路由器,用于将一个整体的申请单拆分 为多个检查申请项目,并逐个发送到接收端口上。然后,利用路由设计规则中预定义的查询 模板,Splitter的queryRef属性自动设置为面向目标操作消息本体的查询("select?item where?item rdfs :Type0rderItem"),用于将一个整体消息拆分为使用目标系统的消息本 体(Or der 11 em)表达的局部消息。
[0149] 3.针对loop-sender模式,生成Aggregator路由器,等待多个消息后整合为同一个 消息进行发送。其中,聚合器的queryRef属性自动设置为面向目标操作消息本体的查询 ("construct?r where?r rdfs:Type Report and?rhasItem?item and?item rdfs: TypeReportltem"),用于聚合多个报告项目(Reportltem)构建出一个用目标接口的Report 本体表达的实例。
[0150] 4.按照顺序优先级规则,将参与同一消息流的路由器使用通道连接起来,构成整 体的路由逻辑模型,如图9所示。ClS发送申请单(消息流mf 1)到达纸条路由器(routing slip),然后纸条路由器将该消息按照严格的顺序发送给RIS的不同功能模块(即消息流 mfl,mf2,mf3),同时对于RIS循环多次接收检查项目信息,利用拆分器(splitter)将消息流 mf2的消息进行处理;RIS多次发送单个项目的报告(消息流mf4)到达聚合器(aggregator), 然后将这些单个项目的报告聚合成一份报告(消息流mf4)返回给CIS。
[0151]以上所述的【具体实施方式】对本发明的技术方案和有益效果进行了详细说明,应理 解的是以上所述仅为本发明的最优选实施例,并不用于限制本发明,凡在本发明的原则范 围内所做的任何修改、补充和等同替换等,均应包含在本发明的保护范围之内。
【主权项】
1. 一种基于消息自动路由的多医疗信息系统集成方法,各个医疗信息系统的接口行为 和数据语义通过接口语义建模进行了明确的表达,其特征在于,通过如下步骤进行集成: (1) 识别需要进行消息交互的医疗信息系统的接口行为差异得到相应的行为异构模 式; (2) 根据识别出的行为异构模式确定相应的路由解决方案,并添加到消息流对应的消 息通道上; (3) 根据接收接口的接口行为和数据语义,按照路由设计规则中的参数设置规则配置 路由器的路由参数即完成集成,所述路由参数包括路由目标和输出消息。2. 如权利要求1所述的基于消息自动路由的多医疗信息系统集成方法,其特征在于,所 述接口行为差异包括发送者和接收者之间的消息基数和顺序的差异。3. 如权利要求2所述的基于消息自动路由的多医疗信息系统集成方法,其特征在于,所 述的行为异构模式包括一对多异构模式、多对一异构模式和多对多异构模式;其中,一对多 异构模式包括循环接收者模式、顺序接收者模式、互斥接收者模式和多接收者模式;多对一 异构模式包括循环发送者模式和多发送者模式,多对多异构模式包括顺序差异模式。4. 如权利要求3所述的基于消息自动路由的多医疗信息系统集成方法,其特征在于,针 对不同的行为异构模式设置不同的路由解决方案: 对于循环接收者模式,利用拆分器进行路由, 对于顺序接收者模式,利用纸条路由器进行路由, 对于互斥接收者模式,利用基于内容的路由器进行路由, 对于循环发送者模式,利用聚合器或过滤器进行路由, 对于多发送者模式,利用过滤器配合聚合器进行路由。5. 如权利要求4所述的基于消息自动路由的多医疗信息系统集成方法,其特征在于,当 存在跨越多个行为异构模式的消息流时,按照预设的顺序优先级对路由解决方案进行组合 串接,并添加到相应的消息通道上。6. 如权利要求5所述的基于消息自动路由的多医疗信息系统集成方法,其特征在于,预 设的顺序优先级由高至低依次为循环发送者模式、多接收者模式、顺序差异模式、顺序接收 者模式、多发送者模式和循环接收者模式,且顺序接收者和互斥接收者优先级别相同。
【文档编号】G06F9/54GK105893162SQ201610186510
【公开日】2016年8月24日
【申请日】2016年3月29日
【发明人】段会龙, 吕旭东, 聂鸿超, 王菲菲
【申请人】浙江大学