Is this an error event? If so how to implement it?


I’m imagining a triage process in a hospital where somebody is giving their details (or they are having their details taken down). After the details have been taken down, then the urgency of the patient is calculated and they are sent to the waiting room to wait their turn.

In one case it is obvious that the patient needs urgent treatment (i.e. loses consciousness, stops breathing etc.) in this case, the process cannot reach the normal conclusions. So I’m guessing that this is a business error event?

Modelled, would this look like a error boundary event on a manual activity of “Perform Triage”? If this is correct then how would it be implemented? Would there be some sort of “emergency” button on the form which the nurse is populating whilst collecting details from the patient?

Thanks in advance,


Edit: Actually that should read User Task and not Manual Task in the last para.

Hi Anthony Horner,

BPMN error is meant for business errors & “patient needs urgent treatment” couldn’t be considered as a business error.

Exclusive Gateways could be used to determine the following path based on the classification of the patient

See below example which I found through googling

1 Like

Hi Hassan,

Thanks for replying, the trouble I have with a gateway is that a patient could deteriorate at any point throughout the process. If a triage nurse is collecting information about a patient and they suddenly collapse how would an exclusive gateway send that person to the operating room, would the nurse still have to collect all the data required on the triage form (age, gender, blood pressure etc.) before being able to reach the gateway? That doesn’t seem very useful if I’ve understood it correctly.

Maybe an error event is not the correct element (maybe escalation?) but something where the form being filled in doesn’t require for it to be completed before an alert can be sent to the medics. What would that look like on a model? and how would it be implemented in Camunda?

Hi Anthony Horner,

You could have like a checkbox at the top of your task form indicates that the case is a red code case
Where when checked, no need to fill other data and gateway will route the token based on the value of the check box which is a process variable.

Or you could try the following in case a “red code case” could be detected at any point of the normal wokflow (I haven’t tried such a solution)

You could consider using (Message Boundary Event) “Interrupting boundary event” to be attached to a sub-process activity "assuming that you have a normal sub-process which while running would listening for the named message "red code case detected"

On the task form you should have a custom button which would trigger the message catching event “red code case detected” using the following Rest API call

Note that the custom button should close the task form & refresh the tasklist app after invoking the Rest service “deliver a message”

By the way the Rest service “deliver a message” could be invoked from any other system like having a custom page which lists all of running process instances with a corresponding button to trigger the “red code case detected” event

Yu might want to have a look into CMMN (case management). BPMN is very good for modelling processes, meaning you define certain paths in advance (modelling time) that are then taken under certain conditions (runtime). If you have requirements like “at any point, I always want to …” or “if x happens, I immediately need to, …” modelling a case might be your solution.

Thanks to both, I don’t know much about CMMN so I need to look into it. The interrupting message boundary event is something I think is what I was searching for originally.

Kind regards,