Modelling the Preoperative Surgical Journey

An introduction to Business Process Management for Healthcare (BPM+ Health)

Presented at the BCS Health and Care by

John Svirbely, MD, CMIO, Trisotech
Denis Gagne, CEO & CTO, Trisotech

This webinar provides an introduction to BPM+ using the Preoperative Surgical Journey as an example.

Speakers demonstrate visual modelling and automation for the Preoperative Surgical Journey based on the three open standards that make up BPM+.

BPM+ Health is a multidisciplinary initiative, with high levels of participation from clinicians, to improve the quality and consistency of healthcare delivery. It is achieving this by applying business process modelling standards to clinical best practices, care pathways and workflows directly at the point of care.

Further information on BPM+ Health can be found at



View all

Bruce Silver's blog post - BPMN's Magic Event Type
Bruce Silver

BPMN’s Magic Event Type

By Bruce Silver

Read Time: 3 Minutes

Occasionally in my BPMN Method and Style training, a student will submit a Certification exercise containing a Conditional event. I have always rejected that. Conditional events are not part of Method and Style, and that’s because I have always considered them to mean “some magic occurs”.

According to the spec, a Conditional event may be used either as the Start event of a process or event subprocess, a Catching Intermediate event, or a Boundary event, triggered when its Boolean expression attribute becomes true.But what data can that expression reference? This is the problem, because the spec does not say. In fact, the only place where the BPMN 2.0 spec speaks to it is in the context of a process Start event, where no instance data yet exists!

For that, it says:
This type of event is triggered when a condition such as S&P 500 changes by more than 10% since opening, or Temperature above 300C become true. The condition Expression for the Event MUST become false and then true before the Event can be triggered again. The Condition Expression of a Conditional Start Event MUST NOT refer to the data context or instance attribute of the Process (as the Process instance has not yet been created). Instead, it MAY refer to static Process attributes and states of entities in the environment. The specification of mechanisms to access such states is out of scope of the standard.

Here you should interpret the term “out of scope” to mean undefined, or to use my word, “magic.”

If you were a generous sort, you might infer that for other Conditional events, the expression references the “data context”, i.e. what we call process data. And it turns out that this is exactly how Trisotech has implemented Conditional events. Because non-executable processes, our focus in Method and Style, do not define process data, I will continue to avoid Conditional events there. But in Business Automation, they enable some event-triggered behaviors that are otherwise more complicated to model.Recall from previous posts that in Trisotech BPMN, process data and expressions are defined using FEEL, the Low-Code language defined in the DMN spec. The condition expression of a Conditional event is thus a FEEL Boolean expression referencing instance data.A Conditional event is triggered when the value of one or more process variables change such that the condition expression becomes true.

So when can that occur?

Except for cloud datastores, which may be updated from outside the process, the value of a process variable is changed only when its incoming data association occurs, i.e. at the completion of the activity or event at the source of that connector. Thus it is always possible that Conditional event behaviors could alternatively be modeled more conventionally using gateways, sometimes in combination with Signal events. For example, suppose we have an established decision service Validate Input, but starting in 2023 we want to perform additional validations under certain conditions. We could model this using a non-interrupting Conditional event subprocess, as shown below.

However, we could model the same logic more conventionally using an OR gateway leading to a regular subprocess.

In the BPMN Method and Style training we discuss two ways a process can receive information from outside: either via a message or shared data. In Business Automation, using shared data is probably more common. If that shared data used a cloud datastore (as opposed to an external app or database), you might think you could wait for a condition on the datastore to become true. Unfortunately, the Conditional event cannot be used for this. At least on the Trisotech platform today, the datastore update must be caused by a data association from within the process, not externally. For example, the scenario below, in which a Service request process waits for payment via a separate Payment process, does not work with Conditional events. Changes to the datastore Orders are not visible to the Conditional event.

But we could put the Payment process inside our main process using a call activity, which would allow the wait-for-Condition to work:

Although one could debate the point, on balance this solution is probably better than the more conventional alternative using a Signal event thrown by Payment process.

If you are willing to have Payment process throw a Signal, throwing a Message is even simpler.

Conditional boundary events have the same basic issue. Because the condition cannot be triggered from outside the process, it must be caused by a parallel thread of execution within the process. (In the absence of parallel flow, a simple gateway testing the condition is always going to be simplest.) So again, the modeler’s choice is between a Conditional boundary event testing shared process data and Signal throw-catch. And again, I believe that in this case the Conditional event solution is better.

Bottom line, while Conditional events appear useful on the surface, their utility is in practice limited to scenarios in which actions on one parallel thread of a process control actions on another thread.

Follow Bruce Silver on Method & Style.

Blog Articles

Bruce Silver

View all

All Blog Articles

Read our experts’ blog

View all

BPM+ Virtual Coffee
5 min Intro to BPMN

A short introduction to the Business Process Model and Notation (BPMN)

Presented by

Denis Gagne, CEO & CTO at Trisotech

Good day everybody and welcome to our BPM+ Health Virtual Coffee session. The topic for today is a five-minute introduction to BPMN. So, without any further ado, let me go ahead and do this quick introduction. BPMN stands for Business Process Model and Notation and it’s a standard published by the Object Management Group, which is a Standard Development Organization. BPMN is an open standard, meaning that anybody can go and access the specification. The URL is here. You can go and download this specification.

BPMN offers a single visual process knowledge artifact for both humans and machine. On the one hand, it offers a visual story of what needs to be done, and on the other hand, for machines, it offers a portable execution semantic for automation. So, it enables this duality for us.

Why BPMN matters?

Because BPMN offers an unambiguous format for modeling processes. It also offers a file format that can be interchanged between the different vendor products, and it provides a common and readily transferable set of skills that are learned by subject matter experts. I’ve been arguing for many years now that this third point here is the most important. The BPMN standard is being taught by many different organizations. There are plenty of books, I think there’s over 100 books on BPMN. People can easily learn BPMN and, whenever someone from your organization leaves, and he is a BPMN expert, the next BPMN expert can be found in the market. So, this is a very important factor for all organizations.

What is BPMN?
  • BPMN is fundamentally a language for describing operations. It basically prescribes the next task to do.
  • It’s a mean to an end. Meaning that we should model for a purpose. Whether your purpose is for documentation or for automation, this will drive how you use BPMN.
  • It’s a tool not a solution. Meaning that you require domain knowledge and modeling skills to properly create BPMN models.

What is very nice about BPMN is that there are only four basic shapes that you need to know:

  • Whenever you see a circle in BPMN it means an event. There are various types of circles but they’re all events.
  • Whenever you see a rounded rectangle shape that means an activity. Again, there are different types of activities, but whenever you see a rounded rectangle, it’s an activity.
  • Whenever you see a diamond, it is about routing. It is a routing gateway, and a little note here is that a routing gateway is not the decision in itself, the decision needs to happen before the gateway. The gateway only depicts the possible routes and the logic for taking those routes.

There is also a whole set of markers and decorators that are used for more expressiveness in BPMN. But if you know how to read these four shapes, you know how to read BPMN, or if you know how to write or draw these four shapes, you know how to draw BPMN.

Going back to one of the first point presented, it is a visual story about what needs to be done next. We have a single artifact that is both for the subject matter expert and for the automation. The shape at the top here is a pool, meaning/representing some external participant. The start event, which is a circle, is the event that triggers the instance. The rounded squares or rectangles are tasks to be completed. The gear marker here says that this is a service task. The arrow shows us what to do next. The next task is a PMML or Predictive Model task (an AI kind of task). Next, we have a CQL task. Next, here we have a little table marker (meaning that this is a decision task), and as I mentioned before, the decision is taken prior to the routing behavior. The x in the gateway mean it is an exclusive choice between the two routes. We then have a case task and a sub process with the plus marker meaning that there is a further breakdown of this activity that is defined in more details. The dog ear document shape represents the data coming in. Where the dotted arrow is a data flow, and the dash line with an open arrowhead is an external communication via message flow. The double circle is an intermediate event, and again another type of circle, a think border circle is an end event. So, circles are events, rounded rectangles are activities, diamond shapes are routings, and the arrows are depicting the flow. BPMN has a token semantic. That means that you have to think of a token traversing a path, and then when the token gets to a routing point, if it is an exclusive choice like here, it will take only one path all the way to the end. So, that’s how the semantic of execution of BPMN works.

Now BPMN, as I mentioned in the introduction, is both for documentation and automation. What’s the difference? Basically, most of the time you are modeling for documentation. Your goal is then to make the diagram as unambiguous and clear at specifying the logic of the process. We do recommend the BPMN Method and Style approach promoted by Bruce Silver. There is a series of books on Method and Style that will help you make sure that your BPMN model captures everything that you wanted to communicate. When you are looking at automation, automation requires explicit specification of the data and their types. That may not be needed when you are doing documentation, but certainly needed when you are doing modeling for automation. Then the BPMN engine will orchestrate the next task to be completed. Getting back to the notion of a traversing token I was mentioning before, the engine basically moves the token for you and either get the next activity completed by some service, or offers it to a use, or group of users, to complete. There is a nice blog post here that discusses the difference between modeling for documentation and modeling for automation. And that is basically it for my introduction to BPMN in five minutes.

View the slides


Recorded webinars

View all videos
Attend a live webinar