| Literature DB >> 35627977 |
Gaute Terning1, Eric Christian Brun1, Idriss El-Thalji2.
Abstract
Emergency departments (EDs) had to considerably change their patient flow policies in the wake of the COVID-19 pandemic. Such changes affect patient crowding, waiting time, and other qualities related to patient care and experience. Field experiments, surveys, and simulation models can generally offer insights into patient flow under pandemic conditions. This paper provides a thorough and transparent account of the development of a multi-method simulation model that emulates actual patient flow in the emergency department under COVID-19 pandemic conditions. Additionally, a number of performance measures useful to practitioners are introduced. A conceptual model was extracted from the main stakeholders at the case hospital through incremental elaboration and turned into a computational model. Two agent types were mainly modeled: patient and rooms. The simulated behavior of patient flow was validated with real-world data (Smart Crowding) and was able to replicate actual behavior in terms of patient occupancy. In order to further the validity, the study recommends several phenomena to be studied and included in future simulation models such as more agents (medical doctors, nurses, beds), delays due to interactions with other departments in the hospital and treatment time changes at higher occupancies.Entities:
Keywords: agent-based modeling; emergency department; healthcare; pandemic decision support; patient flow; simulation modeling
Year: 2022 PMID: 35627977 PMCID: PMC9140766 DOI: 10.3390/healthcare10050840
Source DB: PubMed Journal: Healthcare (Basel) ISSN: 2227-9032
Figure 1Randers’ modeling methodology.
Figure 2Model conceptualization process defined by Albin [20] and the associated systems engineering tools.
Figure 3A generic purpose tree and its KPIs decomposition.
Figure 4Generic interface diagram.
Figure 5A generic flow chart of a process containing three linearly connected subprocesses.
Figure 6Simple illustration of a sequence diagram progressing through three subprocesses.
Figure 7In the process of modeling, the next step after the conceptual modeling is formulation.
Figure 8The data categories used in constructing, running, and validating the simulation model.
Figure 9Blueprint of the studied ED before the pandemic measures was put in place.
a. Patient crowding in the ED gathered from Smart Crowding for two regular days in a pre-pandemic situation. b. Patient crowding in the ED gathered from Smart Crowding for two separate days in a peri-pandemic situation.
| a | ||
|---|---|---|
| Day 1 | Day 2 † | |
| Real data |
|
|
|
| ||
|
|
| |
| Real data |
|
|
† Graph “Day 2” is not immediately the following day after “Day 1” as the naming may suggest.
Figure 10Purpose tree breakdown structure and KPIs for ED operations.
Figure 11N2 diagram for ED facilities under pre- and peri-pandemic conditions.
Figure 12Flow chart for patient flow under the pre-and peri-pandemic situation.
Figure 13Effect on patient flow operation illustrated in sequence diagram pre- and peri-pandemic situation.
Description of the elements (states, transitions and initial conditions) of the patient agent statechart.
| Name | Description | Logic | Code |
|---|---|---|---|
| Patient arrival will be arriving according to the numerical data attained from the case organization. Arrivals can be programmed based on a probability distribution that will make for a stochastical model. Alternatively, arrivals can be programmed according to recorded arrival times; the model will then be deterministic. | |||
|
| State-Stay: The sole purpose of this state-block is to calculate the length of stay of patients throughout their lifetime, i.e., the entire statechart. Timer3 here does the counting. No other logic is contained within this state block. | Timeout for each second in simulation in order to increment the timer value within Timer3 according to criteria in the code. Variables: (integer) v_LOS | Action: v_LOS += inState(Stay) ? 1: 0; |
|
| State-Pre-treatment: First compound state in the overall patient flow. This state contains all the states for the pre-treatment activities a patient is undergoing. Like the previous state, counting is performed. It is worth noting counter is placed here instead of the ‘Stay’ state block to reduce the calculation power needed for each discrete increment. | Timeout for each second in simulation in order to increment the timer value within Timer1 according to code. Variables: v_time_in_PreTriage, v_time_in_WR | Action: v_time_in_PreTriage += inState(PreTriage)? 1: 0; |
|
| State-Incidence: Patient agent takes place into the statechart after being transferred from the ‘Exit’ block in DES ( | - | - |
|
| Transition: Patient agent arrives from the DES. Transition is triggered on the string message “occurrence,” which is sent from the ‘Exit’-block in the DES model. | - | - |
|
| State–PreTriage: Patient agent is getting moved from the entry node to the Pre-triage node, i.e., light green field in | The patient agent initiates movement from the Entry node to the te pre triage node. | Action: moveTo(main.PreTriageNode); |
|
| Transition: Transition from the state PreTriage to branch B1. | Transition is executed periodically for every fixed time interval in order to ensure. Parameter used: main.p_RegistrationCheckInterval | |
|
| Branch: This branch carries out the selection for what path the patient agent should proceed in. | Three different outgoing transitions: (1) If there is a suspicion that the patient is contaminated, the patient will go to S2. (2) If the patient agent is found not to be contaminated, the patient will go to the waiting room after a specified waiting time, i.e., state s1-3. (3) T3: If the patient agent has virus suspicion and there are no more treatment rooms, the patient must wait in the Pre-triage. | (1) Condition: p_contaminated && !f_is_TR_full() |
|
| State–WalkingToWR: Patient agent walking to the waiting room from the pre triage. | The patient agent walks along the path between the pre-triage and waiting room shown in | Action: moveTo(main.waitingRoomNode); |
|
| Transition: The patient agent is simply transitioning between walking to the waiting room and waiting in the waiting room. | This transition is triggered once the patient agent stops walking and arrives at its place in the waiting room. | - |
|
| State–WaitingInWR: This state for the patient agents when waiting in the waiting room (WR); see the node in | - | - |
|
| Transition: Here, the patient agent will attempt to see if it is ready to proceed. | This transition will trigger periodically. It will check if it can fulfill any of the transitions branch B4 for each periodic interval. | - |
|
| Branch: This is the pathway forward after the PreTreatment state. Patient agents from here either have to go to the treatment room, triage or wait further if the above-mentioned is full. | Three outgoing transitions: (1) T1–Going to triage if there are no more treatment rooms left, | (1) Conditions: f_is_TR_full() && |
|
| State–IntraTreatment: This is the second major compound state of the overall patient flow. As the name suggests, this is where the patient finally undergoes treatment. The patient agent is released from the treatment room seizing pathway shown in the DES block diagram ( | The treatment is simulated by the patient agent waiting inside the treatment room. The treatment time differs according to whether the patient has suspicion of virus contamination. (1) Timer variable: v_time_in_TR. (2) Counter variable: main.p_number_room_exit | v_time_in_TR += inState(Treatment) ? 1: 0; |
|
| State–WalkingToAndSeizingTR: This is the state the patient agent is contained within until it has been transferred from the seize-path, as mentioned earlier. | - | - |
|
| Transition–The patient agent is transitioned to the next state once the message is received from the | The patient agent is transitioned to the next state once the message is received from the | - |
|
| State–Treatment: This is the state in which the patient agent is under treatment. | The patient agent stays in this state while the counter is increasing. | - |
|
| Transition–Transition out of treatment leads to a branch where there are three options possible. | This transition is cyclical and repeats every second during model runtime for patients’ agents that stay within the treatment state. | - |
|
| Branch: This branch leads the patient agent to go to the waiting zone, leave the ED, or stay to continue the treatment. | The branch is leading to three outgoing transitions (1) T6: Patient agents pause the treatment and makes the patient go to the waiting zone. (2) T7: Patient agent has completed treatment and will head to exit the ED. (3) Treatment is not carried out, and it will proceed until it is either completed or has to pause because the treatment room needs to be seized by a patient suspicious of contamination. | (1) Action: main.enter_seize_WZ.take(this); |
|
| State–Triage: Compound state element emulating the patient standing by in the triage until there is room for the patient in the treatment rooms. | Time is tracked. Variable: v_time_in_Triage | v_time_in_Triage += inState(Triage) ? 1: 0; |
|
| State-WalkingToTriage: The patient agent walks from the waiting room node to the triage node. The patient agent is retrieved from the DES path shown in | - | - |
|
| Transition–Transition is executed once the patient agent is transferred from the DES flow chart. | - | - |
|
| State–WaitingInTriage: | This state emulates the waiting time in the triage. | - |
|
| Transition: Transition for checking if it is time to leave the triage. Decision-making through the branch (B5) in the next row. | Transition executed periodically; every second patient stays state ‘WaitingInTriage.’ | - |
|
| Branch: Checking if the patient agent can leave the triage to go to a treatment room. | The branch is leading to two outgoing transitions. (1) Transition for when there is a treatment room ready. (2) No treatment room is available for the patient agent, returning to the previous state. | (1) Condition: !f_is_TR_full() && |
|
| State-WaitingZone: This is the compound state encompassing the states that emulate the waiting zone for the patient agents. | This compound statement has no time counters as the time is directly relevant for when a patient agent will leave this state. However, as seen in the outgoing transition (T5), the patient agent can leave once there is room again for the patient agent to return to the treatment room. | - |
|
| State–GoingToWZ: The patient is retrieved from the DES chart, it has been allocated to a waiting zone, and walking to the spot it has been granted. | - | main.enter_seize_WZ.take(this); |
|
| Transition: Patient agent is finished walking to the waiting zone and will proceed by waiting in the waiting zone. | This transition is carried out once the patient agent has arrived at the granted waiting zone spot. This transition is executed by receiving a message from the DES-chart | - |
|
| State-WaitingInWZ: The patient agent is waiting in the waiting zone. | - | - |
|
| Transition: Transition going out from waiting in the waiting zone. | This transition is periodically executed every second of runtime. | - |
|
| Branch: Branch for going further to the treatment room or keep on waiting. | This branch does have two outgoing transitions for the patient agents staying in the triage (1) T4–Going to the IntraTreatment state. (2) Keep on waiting in the triage. | (1) Condition: !f_is_TR_full() && |
|
| State–Discharge: Patient agent is here on its way out of the model. The state does not do anything besides being a mediator between the two states. | - | - |
Figure 15Statechart of patient flow behavior at the studied ED.
a. Model output validation comparing graphs of patient crowding in the ED in a pre-pandemic situation. (a) Actual patient crowding data gathered from SmartCrowding, (b) Simulated patient crowding. b. Model output validation comparing graphs of patient crowding in the ED in a peri-pandemic situation. (a) Actual patient crowding data gathered from SmartCrowding, (b) Simulated patient crowding.
| a | ||
|---|---|---|
| Day 1 | Day 2 † | |
| ( |
|
|
| ( |
|
|
|
| ||
|
|
| |
| ( |
|
|
| ( |
|
|
† Graph “Day 2” is not the immediately following day after “Day 1” as the naming may suggest.
Figure 16Snapshot of simulated KPI of patient flow in a pre-pandemic setting.
Figure 17Snapshot of simulated KPIs of patient flow in a peri-pandemic setting.