计算机系统应用  2020, Vol. 29 Issue (7): 33-39   PDF    
基于多色集合理论的医院异常工作流处理建模
冉梅梅1, 王晓华2, 何焱1, 杨敏2     
1. 遵义医药高等专科学校 信息技术网络管理中心, 遵义 563006;
2. 遵义医科大学 医学信息工程学院, 遵义 563006
摘要:本文通过扩展多色集合与多色图的成分对医院异常工作流进行建模. 首先, 介绍工作流异常的研究进展情况; 其次, 阐述本文形式化所需理论—多色集合与多色图, 并且根据研究对象的特殊性, 扩展了多色集合中的成分, 构建个人颜色与体的围道矩阵, 表示异常事件与异常类型之间的关系, 多色图中新增了边与对象的围道矩阵, 描述异常处理行为弧的起始点与终止点, 构建了基于多色图的医院异常工作流处理模型; 最后, 以医院门诊挂号流程异常处理为例进行验证模型的正确性.
关键词: 医院异常工作流    多色集合    多色图    
Modeling of Abnormal Workflow in Hospital Based on Polychromatic Set Theory
RAN Mei-Mei1, WANG Xiao-Hua2, HE Yan1, YANG Min2     
1. Information Technology Network Management Center, Zunyi Medical and Pharmaceutical College, Zunyi 563006, China;
2. School of Medical Information Engineering, Zunyi Medical University, Zunyi 563006, China
Foundation item: National Natural Science Foundation of China (61861047); Science and Technology Project of Honghuagang District, Zunyi City ((2017)13)
Abstract: This study models the abnormal workflow in hospitals by extending the components of polychromatic sets and polychromatic graph. First, the research progress of abnormal workflows is introduced. Second, the theories needed for formalization of this study—polychromatic sets and polychromatic graph are described. According to the particularity of the research object, the components in the polychromatic sets are expanded to construct personal colors and the enclosure matrix of the volume represents the relationship between anomalous events and anomaly types. The enclosure matrix of edges and objects has been added to the polychromatic diagram to describe the starting point and ending point of the arc of abnormal handling behavior, constructed an hospital abnormal workflow processing model based on polychromatic graph. Finally, the hospital outpatient registration process exception handling is used as an example to verify the correctness of the model.
Key words: hospital abnormal workflow     polychromatic sets     polychromatic graph    

工作流异常是指通过一定的技术手段, 根据某种处理机制与相关的处理方法来解决工作流中的异常情况, 使得工作流程能够恢复到正常状态, 正确的执行[1].

异常事件有数据异常事件、时态异常事件、WF异常事件、外部异常事件、不一致异常事件、系统/应用程序异常事件[2]. 刘琼昕在文献[3]中提出了一种基于ECA和案例推理的工作流异常处理模型, 该模型既保持了ECA规则的高效性,又具有案例推理的灵活性和自学习性. 王全峰在文献[4]中对异常进行了分类, 并且利用工具实现了可预见异常处理模块. 麻亚翰文献[5]主要是针对数据异常进行了定义与分类, 并提出了系统遍历图算法. 张婷等在文献[6]中采用着色Petri网的建模工具CPN Tools建立了层次化的工作流异常处理机制模型. 于万钧等在文献[7]中基于OWL建立了任务异常与处理模式之间的映射关系. 张春辉在文献[8]中阐述了案例推理技术的自学习能力可以使案例库随着异常次数的增加而增大, 扩大异常处理的范围. 冯复剑在文献[9]中从工作流时间角度提出了一种工作流时间异常处理方法. 白红梅在文献[10]中扩展了UML活动图, 提出了T型工作流恢复算法. 崔磊在文献[11]中提出基于事务的异常处理优化策略. 文献[12]中提出了一种支持异常处理的灵活工作流模型和相应的QoS性能分析方法. 文献[13]中基于异常效率的考虑而重构流程模型可以提高业务流程的整体生产率.

目前, 由于医院异常工作流较为复杂, 异常大部分是不可预见的, 多色集合理论主要是用于对产品概念设计[14]、立体车库分区管理[15]、数控机床故障[16]等进行建模研究, 还未有相关学者采用多色集合对医院工作流异常进行建模处理, 只有利用Petri Nets对工作流异常进行了建模, 采用Petri-net、谓词表达式等描述工作流虽然较为严密, 但是对于形式多样的工作流进行异常处理的描述过于复杂、缺乏智能性等方面的缺点[17].

医院异常工作流种类较多、不可预测, 多色集合理论建模优势是能够对复杂对象建立统一的数学模型, 并且多色集合的围道矩阵可以从横、纵两个维度进行扩展来描述异常工作流. 因此本文提出了基于多色集合理论的医院异常工作流处理建模, 主要是在课题组前期基于多色集合理论的医院工作流建模的基础上[18, 19], 扩展多色集合理论对医院异常工作流建模. 根据异常事件与异常类型以及活动节点之间的关系, 建立围道推理矩阵, 最终根据异常工作流推理规则推理出多色图模型, 该模型具有统一性、可扩展性、智能性, 根据推理规则能够推理出异常流程处理方法.

1 基本理论 1.1 多色集合

多色集合(polychromatic sets)是在传统集合的基础上结合模糊数学、数理逻辑以及矩阵知识形成的, 其特点是能够采用统一的数学模型来对复杂对象建模. 典型的多色集合主要包含6种成分[20], 如下式(1)所示.

$PS = (A,F(A),F(a),[A \times F(A)],[A \times F(a)],[A \times A(F)])$ (1)

其中, A表示研究对象的集合, F(A)是对象的统一着色, F(a)表示集合中元素的个人颜色.

1.2 多色图

多色图的边与节点都是由多色集合构成的, 丰富了节点与边的表达能力. 主要由3部分组成[21], 如下式(2)所示.

$\left\{ {\begin{array}{l} PG = (F(G),P{S_A},P{S_C}) \\ P{S_A} = (A,F(A),F(a),[A \times F(A)],[A \times F(a)],[A \times A(F)]) \\ P{S_c} = (C,F(C),F(c),[C \times F(C)],[C \times F(c)],[C \times C(F)]) \\ \end{array} } \right.$ (2)
2 医院工作流的形式化

医院异常工作流可以分为可预见与不可预见异常, 其中可预见异常是结构化的异常, 是能够预先知道哪个活动会发生异常; 不可预见异常是在活动运行过程中产生的异常, 是不可预见性的. 利用多色集合理论的围道矩阵与多色图对医院异常工作流进行建模, 围道矩阵能够清楚地描述异常与类型之间的关系, 多色图模型能够清楚地表示出流程活动之间异常的处理方法.

医院工作流出现异常节点之间都存在共同事件, 例如: 局域网异常、操作异常等. 因此, 在用对象集合的个人颜色表示事件时, 可以将共同的异常事件抽象为公共异常事件fp, 个人颜色f可以分割为<fp, fo>, 其中fp表示公共异常事件, fo表示其他异常事件.

2.1 正常运行的工作流活动节点顺序关系

原子活动: 是指不能够再被分为子活动的活动ai, 用节点集合A表示工作流中活动节点, $ \forall $ aiA; F(ai)→F(at): 活动ai在活动at之前执行.

起始活动: 无前驱活动, 只有后继活动的活动节点, 用符号a1表示, 可形式化为式(3).

$\exists {a_i}(F({a_i}) \to F({a_t})) \wedge \neg \exists {a_k}(F({a_k}) \to F({a_i}))$ (3)

终止活动: 只有前驱活动, 而无后继活动, 可以形式化为式(4).

$\exists {a_i}(F({a_t}) \to F({a_i})) \wedge \neg \exists {a_{{k}}}(F({a_i}) \to F({a_k}))$ (4)

与分关系: 一个活动执行后并行执行两个活动, 可以形式化为式(5).

$\exists {a_i}((F({a_i}) \to F({a_t})) \wedge (F({a_i}) \to F({a_k})))$ (5)

与合关系: 两个活动同时执行完成后再执行后续活动, 可以形式化为式(6).

$\exists {a_i}((F({a_t}) \to F({a_i})) \wedge (F({a_k}) \to F({a_i})))$ (6)

或分关系: 一个活动执行完成后再执行一个或多个活动, 可形式化为式(7).

$\exists {a_i}((F({a_i}) \to F({a_t})) \vee (F({a_i}) \to F({a_k})))$ (7)

或合关系: 一个活动或多个活动执行完后再执行后续活动, 可形式化为式(8).

$\exists {a_i}((F({a_t}) \to F({a_i})) \vee (F({a_k}) \to F({a_i})))$ (8)
2.2 医院工作流的多色图模型

若定义a1,a2,···,an是某系统的某项业务流程, 则a1是起始节点, an是结束节点, 假设该业务流程只存在顺序结构, 其多色图模型可以描述为图1.

图 1 医院工作流的多色图模型

[A×A]表示活动节点之间的顺序关系, 如活动关系围道矩阵所示:

$[A \times A] = \begin{array}{c|ccccc} {}& {{a_1}}&{{a_2}}& \cdots &{{a_k}}&{{a_n}} \\ \hline {{a_1}}& {{a_{11}}}&{{a_{12}}}& \cdots &{{a_{1k}}}&{{a_{1n}}} \\ {{a_2}}& {{a_{21}}}&{{a_{22}}}& \cdots &{{a_{2k}}}&{{a_{2n}}} \\ \vdots & \vdots & \vdots & \vdots & \vdots & \vdots \\ {{{{a}}_k}}& {{a_{k1}}}&{{a_{k2}}}& \cdots &{{a_{kk}}}&{{a_{kn}}} \\ {{a_n}}& {{a_{n1}}}&{{a_{n2}}}& \cdots &{{a_{nk}}}&{{a_{nn}}} \end{array}$
$ {\text{如果}}{{{a}}_{{{ij}}}} = \left\{ \begin{array}{l} 0,\;{\text{节点之间顺序}}{^{[18]}};\\ 1,\;{\text{节点之间是与分的关系}};\\ - 1,\;{\text{节点之间是或分的关系}};\\ 2,\;{\text{节点之间是与合的关系}};\\ - 2,\;{\text{节点之间是或合的关系}}. \end{array} \right. $
2.3 工作流的异常类型

工作流异常类型用对象的体A(F)来表示, 异常事件用对象的个人颜色F(a)表示, [F(aA(F)]围道矩阵表示异常事件与异常类型之间的关系, 如下矩阵(工作流异常类型围道矩阵)所示.

$\begin{array}{l} [F(a) \times A(F)] =\\ \begin{array}{c|cccccc} {}& {{A}({F_1})}&{{A}({F_2})}&{{A}({F_3})}& \cdots &{{A}({F_t})}&{{A}({F_k})} \\ \hline {{f_1}}& {a{f_{11}}}&{a{f_{12}}}&{a{f_{13}}}& \cdots &{a{f_{1t}}}&{a{f_{1k}}} \\ {{f_2}}& {a{f_{21}}}&{a{f_{22}}}&{a{f_{23}}}& \cdots &{a{f_{2t}}}&{a{f_{2k}}} \\ {{f_3}}& {a{f_{31}}}&{a{f_{32}}}&{a{f_{33}}}& \cdots &{a{f_{3t}}}&{a{f_{3k}}} \\ \vdots & \vdots & \vdots & \vdots & \cdots & \vdots & \vdots \\ {{f_m}}& {a{f_{m1}}}&{a{f_{n2}}}&{a{f_{m3}}}& \cdots &{a{f_{mt}}}&{a{f_{mk}}} \end{array} \end{array} $

如果afij=1, 第i行表示异常事件是哪些异常类型的组成部分, 第j列表示某异常类型是由哪些异常事件导致的, 即这些异常事件的其中某一个发生都会导致该种异常类型.

2.4 工作流的异常行为处理 2.4.1 无外部节点的异常处理

(1)挂起

挂起是指当运行某个工作流节点时, 相关的资源不能满足活动节点的需要, 活动节点就不能继续运行, 只能处于停滞状态, 即为挂起.

定义G(xa). 在满足x条件下活动a能够继续运行, 用逻辑表达式形式化为式(9), 用多色图可以描述为图2.

$\exists {f_i}(\neg G({f_{ia}}))$ (9)
图 2 挂起多色图模型

图2中工作流节点运行至a3时, 由于某种条件不能满足, 就不能继续向后运行a4活动节点了, 所以扩展多色图的边, 用来表示挂起状态. 直到活动节点的条件满足后, 才能取消挂起状态.

(2)向后回滚

定义 ${{{a}}_{{i}}}{\rm{,}}{{{a}}_{{j}}} \in {{A,}}$ ${{i}} > {{j,H(}}{{{x}}_{{i}}}{\rm{)}} \xrightarrow {{f}}{{H(}}{{{x}}_{{j}}}{\rm{)}} $ 表示在条件f不能满足的情况下, 使得活动节点从xi迁移至活动节点xj.

向后回滚又分为向后直接回滚与向后间接回滚.

① 直接回滚

是指由后一个活动节点回滚至前一个活动节点, 可以用逻辑表达式形式化为式(10), 用多色图可以描述为图3.

${{{a}}_{{i}}}{\rm{,}}\;{{{a}}_{{j}}} \in {{A,}}{\text{且}}{{i}} - {{j}} = {{1,H(}}{{{a}}_{{i}}}{\rm{)}}\xrightarrow {{{{f}}_{{t}}}}{{H(}} {{{a}}_{{j}}}{{)}}$ (10)
图 3 直接回滚多色图模型

② 间接回滚

是指工作流运行至某个节点时, 由于某种操作错误而需要回滚两个或两个以上的活动节点. 可以用逻辑表达式形式化为式(11), 用多色图表示为图4.

${{{a}}_{{i}}}{{,}}{{{a}}_{{j}}} \in {{A,}}\;{\text{且}}{{i}} - {{j}}\ge {{2,H(}}{{{a}}_{{i}}}{\rm{)}} \xrightarrow {{{f}}_{{t}}} {{H(}}{{{a}}_{{j}}}{{)}}$ (11)
图 4 间接回滚多色图模型

(3)向前跳跃

向前跳跃也可以分为向前直接跳跃与向前间接跳跃.

① 向前顺序跳跃

是指在当活动节点运行至ai时, ai不能够继续运行, 但是与后一个活动无数据交互时, 可以直接跳跃至ai+1的活动, 可以逻辑形式化为式(12), 用多色图表示为图5.

${{{a}}_{{i}}}{{,}}{{{a}}_{{j}}} \in {{A,}}{\text{且}}j - {{i}} = {{1,H(}}{{{a}}_{{i}}}{\rm{)}}\xrightarrow {{{f}}_{{t}}}{{H(}}{{{a}}_{{j}}}{\rm{)}}$ (12)
图 5 向后直接跳跃多色图模型

② 向前跨越

是指当活动节点运行至ai时, ai不能够继续运行, 后面第i+k活动节点不与前继活动发生数据交互, 则可以由活动ai跳跃至活动ai+k (k>0), 可以逻辑形式化为式(13)用多色图表示为图6.

${{{a}}_{{i}}}{{,}}{{{a}}_{{j}}} \in {{A,}}{\text{且}}j - {{i}}\ge {{2,H(}}{{{a}}_{{i}}}{\rm{)}} \xrightarrow {{{f}}_{{t}}} {{H(}}{{{a}}_{{j}}}{\rm{)}}$ (13)
图 6 向前间接跳跃多色图模型

异常关系围道矩阵可描述为如下异常关系围道矩阵:

$\begin{split} &\!\!\![ < {A_E},{A_E} > \times A(F)]=\\ &\!\!\!\begin{array}{c|cccccc} {}&\!\!\! {A({F_1})}&\!\!\!{A({F_2})}&\!\!\! \cdots &\!\!\!{A({F_k})}&\!\!\!{A({F_{k + 1}})}&\!\!\!{A({F_n})} \\ \hline { < {a_1},{a_2} > }&\!\!\! {{e_{11}}}&\!\!\!{{e_{12}}}&\!\!\! \cdots &\!\!\!{{e_{1k}}}&\!\!\!{{e_{1k + 1}}}&\!\!\!{{e_{1n}}} \\ { < {a_2}, \cdots > }&\!\!\! {{e_{21}}}&\!\!\!{{e_{22}}}&\!\!\! \cdots &\!\!\!{{e_{2k}}}&\!\!\!{{e_{2k + 1}}}&\!\!\!{{e_{2n}}} \\ \vdots &\!\!\! \vdots &\!\!\! \vdots &\!\!\! \vdots &\!\!\! \vdots &\!\!\! \vdots &\!\!\! \vdots \\ { < \cdots {\rm{,}}{{{a}}_k} > }&\!\!\! {{e_{k1}}}&\!\!\!{{e_{k2}}}&\!\!\! \cdots &\!\!\!{{e_{kk}}}&\!\!\!{{e_{kk + 1}}}&\!\!\!{{e_{kn}}} \\ { < {a_{k,}}{a_{k + 1}} > }&\!\!\! {{e_{k + 11}}}&\!\!\!{{e_{k + 12}}}&\!\!\! \cdots &\!\!\!{{e_{k + 1k}}}&\!\!\!{{e_{k + 1k + 1}}}&\!\!\!{{e_{k + 1n}}} \\ { < {a_{k + 1}},{a_n} > }&\!\!\! {{e_{n1}}}&\!\!\!{{e_{n2}}}&\!\!\! \cdots &\!\!\!{{e_{nk}}}&\!\!\!{{e_{nk + 1}}}&\!\!\!{{e_{nn}}} \end{array} \end{split}$
$ {{{e}}_{{{ij}}}} = \left\{ \begin{array}{l} 1,\;{{{f}}_{{j}}}{\text{表示节点}}{{{a}}_{{i}}}{\text{与}}{{{a}}_{{j}}}{\text{之间发生的异常事件}}\\ 0,\;i = j,\;{\text{或节点}}{{{a}}_{{i}}}{\text{与}}{{{a}}_{{j}}}{\text{之间无异常事件发生时}} \end{array} \right. $
2.4.2 有外部节点的异常处理

当系统出现异常时, 不是立即产生回滚操作或者向前跳跃操作, 需要外部事件参与处理异常, 满足节点运行条件后, 才能执行回滚、向前跳跃、节点重复等三类操作. 在描述回滚、向前跳跃、节点重复的多色图和围道矩阵时, 要加入外部节点aw. 受篇幅所限, 本小节仅以回滚操作为例(图7、外部事件围道矩阵), 当节点ak+1出现异常后, 需要外部节点aw处理后, 再回滚到上一节点ak.

外部事件围道矩阵如下所示, 其中wij表示具体外部处理事件的活动节点.

$\begin{split} &[{A_w} \times {A_w}] = \\ &\begin{array}{c|cccccc}{}& {{a_1}}&{{a_2}}& \cdots &{{a_k}}&{{a_{k + 1}}}&{{a_n}} \\ \hline {{a_1}}& {{w_{11}}}&{{w_{12}}}& \cdots &{{w_{1k}}}&{{w_{1k + 1}}}&{{w_{1n}}} \\ {{a_2}}& {{w_{21}}}&{{w_{22}}}& \cdots &{{w_{2k}}}&{{w_{2k + 1}}}&{{w_{2n}}} \\ \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots \\ {{{{a}}_k}}& {{w_{k1}}}&{{w_{k2}}}& \cdots &{{w_{kk}}}&{{w_{kk + 1}}}&{{w_{kn}}} \\ {{a_{k + 1}}}& {{w_{k + 11}}}&{{w_{k + 12}}}& \cdots &{{w_{k + 1k}}}&{{w_{k + 1k + 1}}}&{{w_{k + 1n}}} \\ {{a_n}}& {{w_{n1}}}&{{w_{n2}}}& \cdots &{{w_{nk}}}&{{w_{nk + 1}}}&{{w_{nn}}} \end{array} \end{split}$
图 7 调用外部事件的多色图模型

用多色集合中对象的统一着色F(A)来表示工作流异常状态, F1表示挂起状态, F2表示向前直接回滚状态, F3表示向前间接回滚状态, F4表示向后直接跳跃状态, F5表示向后间接跳跃状态. 因此F(A)表示为式(14):

$F(A) = \{ {F_1},{F_2},{F_3},{F_4},{F_5}\} $ (14)

异常事件处理围道矩阵可用如下矩阵表示:

$ \begin{array}{l} [F(a) \times F(A)] = \\ \begin{array}{c|cccccc} {}& {{F_1}}&{{F_2}}& \cdots &{{F_t}}& \cdots &{{F_n}} \\ \hline {{f_1}}& {{c_{11}}}&{{c_{12}}}& \cdots &{{c_{1t}}}& \cdots &{{c_{1n}}} \\ {{f_2}}& {{c_{21}}}&{{c_{22}}}& \cdots &{{c_{2t}}}& \cdots &{{c_{2n}}} \\ \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots \\ {{f_t}}& {{c_{t1}}}&{{c_{t2}}}& \cdots &{{c_{tt}}}& \cdots &{{c_{tn}}} \\ \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots \\ {{f_m}}& {{c_{m1}}}&{{c_{m2}}}& \cdots &{{c_{mt}}}& \cdots &{{c_{mn}}} \end{array} \end{array} $
$ {{{c}}_{{{ij}}}} = \left\{ \begin{array}{l} 1,\;{\text{表示事件}}{{{f}}_{{i}}}{\text{会导致}}{{{f}}_{{j}}}{\text{状态}}\\ 0,\;{\text{否则}} \end{array} \right. $

活动间异常弧道围道矩阵如下所示:

$ \begin{array}{l} [ < A,A > \times A] = \\ \begin{array}{c|cccccc} {}& {{a_1}}&{{a_2}}& \cdots &{{a_t}} \\ \hline { < {a_1},{a_2} > }& {f{a_{11}}}&{f{a_{12}}}& \cdots &{f{a_{1t}}} \\ { < {a_2},{a_3} > }& {f{a_{21}}}&{f{a_{22}}}& \cdots &{f{a_{2t}}} \\ \vdots & \vdots & \vdots & \vdots & \vdots \\ { < {a_m},{a_k} > }& {f{a_{k1}}}&{f{a_{k2}}}& \cdots &{f{a_{kt}}} \end{array} \end{array}$

上式中, 如果faij=1, 表示边<ai,aj>之间存在异常行为处理, 并且用弧线连接, 如果<ai,aj>与ai之间的值为1, 表示挂起状态.

异常工作流用多色集合理论可以形式化为式(15).

$ \left\{ {\begin{array}{l} PG = (P{S_A},P{S_C})\\ P{S_A} = (A,F(a),F(A),[F(a) \times F(A)],[ < F(a) \times A(F)])\\ P{S_C} = (C,[C \times A(F)],[C \times A]),{\text{其中}},\;C = [A \times A] \end{array}} \right. $ (15)
3 医院异常工作流实例化研究

医院工作流可能由于某个资源缺乏或病人不了解流程而导致流程不能按照预期运行, 以病人在门诊就诊为例, 流程可以用形式化为如下矩阵:

$[A \times A] = \begin{array}{c|ccccccccc} {}& {{a_1}}&{{a_2}}&{{a_3}}&{{a_4}}&{{a_5}}&{{a_6}}&{{a_7}}&{{a_8}}&{{a_9}} \\ \hline {{a_1}}& {}&0&{}&{}&{}&{}&{}&{}&{} \\ {{a_2}}& {}&{}&0&{}&{}&{}&{}&{}&{} \\ {{a_3}}& {}&{}&{}&0&{}&{}&{}&{}&{} \\ {{a_4}}& {}&{}&{}&{}&0&{}&{}&{}&{} \\ {{a_5}}& {}&{}&{}&{}&{}&0&{}&2&{} \\ {{a_6}}& {}&{}&{}&{}&{}&{}&1&1&{} \\ {{a_7}}& {}&{}&{}&{}&{}&{}&{}&2&{} \\ {{a_8}}& {}&{}&{}&{}&0&{}&{}&{}&{} \\ {{a_9}}& {}&{}&{}&{}&{}&{}&{}&{}&{} \end{array}$

活动节点名称、异常事件与异常事件类型用表分别用表1表2表3表示.

表 1 活动节点名称表

表 2 异常事件名称表

表 3 异常事件类型表

由于医院信息化已经普及, 大部分活动节点可能都会出现与系统相关的问题后, 从而导致异常. 因此, 异常事件可以分为共有事件与其他事件, 事件描述为式(16).

$ \left\{ {\begin{array}{l} F(a) = < {f_p},{f_o} > \\ {f_p} = \{ {f_{p1}},{f_{p2}},{f_{p3}},{f_{p4}},{f_{p5}},{f_{p6}}\} \\ {f_o} = \{ {f_{r7}},{f_{r8}},{f_{r9}},{f_{10}},{f_{11}},{f_{12}},{f_{13}},{f_{14}},{f_{15}},{f_{16}},{f_{17}},{f_{18}}\} \\ \end{array}} \right. $ (16)
$ [ < A,A > \times A(F)] = \begin{array}{c|ccccccc} {}& {A({F_1})}&{A({F_2})}&{A({F_3})}&{A({F_4})}&{A({F_5})}&{A({F_6})}&{A({F_7})} \\ \hline { < {a_2},{a_3} > }& 1&0&0&0&0&0&0 \\ { < {a_3},{a_4} > }& 0&1&0&0&0&0&0 \\ { < {a_4},{a_5} > }& 0&0&1&0&0&0&0 \\ { < {a_5},{a_6} > }& 0&0&0&1&0&0&0 \\ { < {a_6},{a_7} > }& 0&0&0&0&1&0&0 \\ { < {a_6},{a_8} > }& 0&0&0&0&1&0&0 \\ { < {a_8},{a_5} > }& 0&0&0&0&0&0&1 \\ { < {a_5},{a_9} > }& 0&0&0&0&0&0&0 \\ { < {a_7},{a_9} > }& 0&0&0&0&0&1&0 \end{array} $ (17)
$[F(a) \times A(F)] = \begin{array}{c|ccccccc} {}& {A({F_1})}&{A({F_2})}&{A({F_3})}&{A({F_4})}&{A({F_5})}&{A({F_6})}&{A({F_7})} \\ \hline {{f_p}}& 1&1&1&1&1&1&1 \\ {{f_{r7}}}& 1&0&0&0&0&0&0 \\ {{f_{r8}}}& 1&0&0&0&0&0&0 \\ {{f_{r9}}}& 1&0&0&0&0&0&0 \\ {{f_{r10}}}& 1&0&0&0&0&0&0 \\ {{f_{11}}}& 0&0&0&0&0&0&1 \\ {{f_{12}}}& 0&0&0&0&0&0&1 \\ {{f_{13}}}& 0&0&1&1&0&0&1 \\ {{f_{14}}}& 0&0&0&1&0&0&1 \\ {{f_{15}}}& 1&0&0&0&1&0&0 \\ {{f_{16}}}& 1&0&0&0&1&0&0 \\ {{f_{17}}}& 0&0&0&0&0&1&0 \\ {{f_{18}}}& 0&0&0&0&0&1&0 \end{array}$ (18)
$[F(A) \times F(a)] = \begin{array}{c|ccccccccccccc} {}& {{f_p}}&{{f_{r7}}}&{{f_{r8}}}&{{f_{r9}}}&{{f_{r10}}}&{{f_{11}}}&{{f_{12}}}&{{f_{13}}}&{{f_{14}}}&{{f_{15}}}&{{f_{16}}}&{{f_{17}}}&{{f_{18}}} \\ \hline {{F_1}}& 1&1&1&1&1&0&0&0&0&1&1&1&1 \\ {{F_2}}& 0&0&0&0&0&0&1&1&1&0&0&0&0 \\ {{F_3}}& 0&0&0&0&0&0&1&1&1&0&0&0&0 \\ {{F_4}}& 0&0&0&0&0&1&0&0&0&0&0&0&0 \\ {{F_5}}& 0&0&0&0&0&1&0&0&0&0&0&0&0 \end{array}$ (19)
$[ < A,A > \times A] = \begin{array}{c|cccccccc} {}& {{a_2}}&{{a_3}}&{{a_4}}&{{a_5}}&{{a_6}}&{{a_7}}&{{a_8}}&{{a_9}} \\ \hline { < {a_2},{a_3} > }& 1&0&0&0&0&0&0&0 \\ { < {a_3},{a_4} > }& 0&1&0&0&0&0&0&0 \\ { < {a_4},{a_5} > }& 1&0&1&0&0&0&0&0 \\ { < {a_5},{a_6} > }& 1&0&0&1&0&0&0&0 \\ { < {a_6},{a_7} > }& 0&0&0&0&1&0&0&0 \\ { < {a_6},{a_8} > }& 0&0&0&0&1&0&0&0 \\ { < {a_8},{a_5} > }& 1&0&0&0&0&1&0&0 \\ { < {a_5},{a_9} > }& 0&0&0&1&0&0&0&0 \\ { < {a_7},{a_9} > }& 0&0&0&0&0&1&0&0 \end{array}$ (20)

利用围道矩阵(17)来描述活动节点间异常事件的类型, 围道矩阵(19)描述异常事件与异常事件类型之间的关系. 在工作流中, 根据围道矩阵(17)与围道矩阵(19)能够知道活动节点间发生了哪些异常, 以及是什么导致异常的. 例如, 挂号活动a2与分诊活动a3之间的异常事件类型是A(F1), 在对应的围道矩阵(19)中可以识别出导致此次异常的事件有: fpfr7fr8fr9fr10f15f17.

根据矩阵(18)[F(aA(F)]、矩阵(19)[F(AF(a)]、矩阵(17)[<A,AA(F)]可以推理医院异常工作流多色图模型.

$ \begin{split} [ < A,A > \times A(F)]\xrightarrow{{ < {a_i},{a_j} > }}A(F)\xrightarrow{{A({F_i})}}\\ [F(a) \times A(F)]\xrightarrow{{{f_i}}}[F(A) \times F(a)] \to {F_i} \end{split}$

基于多色图的异常工作流模型推理规则:

(1) 根据活动围道矩阵[A×A]形式化出工作流正常运行流程多色图模型.

(2) 活动组<ai, aj>根据[<A,AA(F)]可以建立多色图基本连接模型, 并且可以推理出异常事件类型A(Fi);

(3) 异常事件类型A(Fi)根据围道矩阵[F(aA(F)]能够推理出异常事件fi;

(4) 根据围道矩阵[<A,AA]可以推理出活动之间异常处理为弧道;

(5) 最后, 异常事件再根据围道矩阵[F(AF(a)]就能够推理出异常事件的操作行为Fi.

图8就是根据以上推理规则得出的医院工作流异常多色图模型, 用集合的形式可以表示为式(21).

$ \left\{ {\begin{split} &PG = (PS{}_A,PS{}_C)\\ &P{S_A} = (A,F(A),F(a),[F(A) \times F(a)],[F(a) \times A(F)])\\ &P{S_C} = (C,[C \times A(F)],[C \times A]),{\text{其中}},\;C = < A,A > \end{split}} \right. $ (17)
图 8 基于多色图的门诊异常处理模型

4 总结

本文采用多色集合理论对医院异常工作流进行建模, 利用多色集合围道矩阵描述出活动节点、异常事件、异常事件类型之间的关系, 然后根据矩阵以及推理规则自动生成医院异常工作流多色图模型, 通过扩展典型多色集合与多色图的成分来形式化医院异常工作流, 对多色图的边进行扩展, 能够丰富多色图的表达能力, 使正常工作流的边与异常处理的边一目了然. 利用多色集合描述异常围道矩阵的优势是围道矩阵的横向与纵向能够根据活动节点的增加而增加, 根据多色图的推理规则自动生成多色图模型.

本文推理出的异常工作流推理模型是根据前面建立的围道矩阵进行推理的, 由于推理矩阵可以根据各医院的实际情况建立, 并且后期可以在围道矩阵的横向与纵向增加相应的异常事件与异常类型. 因此, 建立的异常工作流多色图模型具有可靠性、统一性、可扩展性、智能型, 根据多色图异常工作流模型可以推理处对特定异常事件作出的具体处理方法. 后期通过算法实现推理规则后, 能够提高医院异常事件处理效率.

参考文献
[1]
李伟平, 范玉顺. 工作流系统的异常处理. 高技术通讯, 2004, 14(12): 50-54. DOI:10.3321/j.issn:1002-0470.2004.12.011
[2]
Mourão H, Antunes P. Exception handling through a workflow. OTM Confederated International Conferences. Agia Napa, Cyprus. 2004. 37–54.
[3]
刘琼昕, 鲁学涛, 宋晔, 等. 工作流异常处理方法研究. 第九届全国信号和智能信息处理与应用学术会议论文集. 北京, 中国. 2015. 27–30, 44.
[4]
王全峰. 工作流引擎异常处理的研究与实现[硕士学位论文]. 北京: 北京邮电大学, 2011.
[5]
麻亚翰. 工作流中检测异常数据流的系统遍历图算法研究. 无线互联科技, 2017(11): 97-100. DOI:10.3969/j.issn.1672-6944.2017.11.043
[6]
张婷, 张鑫, 段新东, 等. 基于CPN的工作流异常处理模型设计. 计算机安全, 2014(3): 33-37. DOI:10.3969/j.issn.1671-0428.2014.03.008
[7]
于万钧, 金炳旭, 张宾, 等. 基于OWL的工作流异常处理建模方法. 吉林大学学报(工学版), 2011, 41(3): 739-744.
[8]
张春辉. 基于案例推理的工作流异常处理研究与实现[硕士学位论文]. 哈尔滨: 哈尔滨工程大学, 2011.
[9]
冯复剑. 基于关键路径的工作流时间异常处理算法. 工业控制计算机, 2015, 28(7): 128-129. DOI:10.3969/j.issn.1001-182X.2015.07.058
[10]
白红梅, 谢益武. 基于扩展UML活动图的工作流异常处理过程. 计算机应用, 2011, 31(1): 277-280, 285.
[11]
崔磊. 基于事务的工作流异常处理优化的研究与设计[硕士学位论文]. 北京: 北京邮电大学, 2013.
[12]
Zhu XY, Zhang JL, Wang B. QoS performance analysis for flexible workflow supporting exception handling. Proceedings of 8th International Conference on Algorithms and Architectures for Parallel Processing. Dalian, China. 2014. 571–580.
[13]
Golani M, Gal A. Optimizing exception handling in workflows using process restructuring. In: Dustdar S, Fiadeiro JL, Sheth AP, eds. Business Process Management. Berlin: Springer, 2013. 407–413.
[14]
张屹, 陈平, 孔亮, 等. 基于多色集合的产品概念设计建模与方案优选方法研究. 组合机床与自动化加工技术, 2016(4): 21-25.
[15]
李建国, 刘日, 王小农. 基于多色集合的立体车库车位分区管理建模与仿真. 兰州交通大学学报, 2018, 37(3): 21-26. DOI:10.3969/j.issn.1001-4373.2018.03.005
[16]
高新勤, 张艳平, 杨明顺, 等. 基于多色集合的数控机床故障诊断模型构建与推理方法. 西安理工大学学报, 2016, 32(3): 265-270.
[17]
宋言伟, 曾广周. 基于自动机的工作流异常处理的形式化描述. 智能信息技术应用学会. 长沙, 中国. 2011. 105–108.
[18]
冉梅梅. 基于多色集合理论的医院工作流建模研究[硕士学位论文]. 贵阳: 贵州大学, 2018.
[19]
冉梅梅, 王晓华, 杨敏, 等. 基于多色集合理论的工作流过程交互建模. 计算机系统应用, 2018, 27(2): 16-23. DOI:10.3969/j.issn.1003-3254.2018.02.004
[20]
李宗斌, 高新勤, 赵丽萍. 基于多色集合理论的信息建模与优化技术. 北京: 科学出版社, 2010. 7–9.
[21]
Yan CJ, Liao WH, Song Y, et al.. Bill of material modelling based on polychromatic graph. Information and Control, 2009, 38(1): 121-124, 128.