Latest News

COVID-19 drive-through testing – simulation tutorial

Christoph Werner  /   Mar 30, 2020

During the COVID-19 crisis, we’re providing free support and simulation resources to anyone directly or indirectly working with the healthcare sector. In this post, I’ll show you how to utilize simulation to help ensure you have the resources and equipment in place to maximize COVID-19 drive-through testing sites.

We know that simulation can be an invaluable tool during this challenging time, so as well as offering pro-bono support to anyone working on reducing the impact on peoples’ health and lives, we want to continue providing useful example simulations and resources to the community, including our recent COVID-19 ICU Preparation Simulation.

In almost all countries that are affected by the outbreak of COVID-19, a key strategy to understanding the size of the affected population and control the virus spread is through the use of testing. It has been mentioned as a vital approach for counteracting the virus’ spread by several global experts, including the World Health Organization (WHO). As a result, many countries have begun or are now in the process of expanding COVID-19 testing activities.

In normal circumstances, clinical tests would usually be done by appointment at a local outpatient clinic or hospital, but given the severity of the situation many governments have introduced faster, safer options to get as many people tested for COVID-19 as possible.

One of the most successful ways to do this is via drive-through testing processes, such as the example below in South Korea – which has been hailed by the WHO as a model for others to emulate.

At SIMUL8, we have a lot of experience with building simulations that inform the design of efficient testing processes. Shout It Now, based in South Africa, is one of the most prominent examples of our work. Simulation was used by the organization to streamline walk-in HIV testing processes, without the need to visit a hospital or other type of clinic.

Based on this simulation and information on the necessary steps in the COVID-19 testing procedure shown in the clip above, I’ve created a simple drive-through simulation. This example demonstrates how you could use SIMUL8 to help inform the design of a testing process. It will enable you to maximize the number of people tested within a day at a site, while also considering the constraints of resources, such as testing kits and staff.

For the purposes of this example, we’ve used placeholder data but this can be replaced with your own. If you’re already a SIMUL8 user, you can start straight away by inserting your own assumptions and data, add detail and run various scenarios. If you are new to simulation, you’re not a SIMUL8 user or if you have any questions, please let us know – we’d be happy to help.

Let’s get started by downloading a copy of the simulation.

574Kb .S8 file

Using and editing the COVID-19 drive-through testing simulation

The example works as follows:

  • People to be tested arrive in a car (you can set the number of arrivals per hour using the Settings button).
  • Each arriving car could have up to four people in it.
  • Everyone in a car must be tested.

So with these in mind, we’ll assume the distribution of passenger numbers per car is as follows:

The information of how many passengers are in a particular car is stored in a Label called “lbl_PassengerPerCar” which value is sampled from the above distribution.

Once a car has arrived, everyone will be registered so that they can be informed about the test result and advised on next steps later. The number of passengers in a car determines the time it takes for registering everyone and the detail of the timing is shown here:

This means that if a car with only one person arrives, it takes two minutes to register while it takes six minutes for a car with four passengers. In SIMUL8, you can set this up as using the Activity Timing by Label feature.

Next, we need to collect the required number of testing kits needed for each person in a car so we can include the number of available swabs as a potential constraint in our process. We can do this by using the Variable Collect feature. Note, the Activity ‘dmy_Take Test Kits’ only serves for the purpose of keeping track of and reducing the number of available test kits in case these will limit how long we can test each day. We’ve made this a ‘dummy Activity’ with zero processing time so that it won’t affect the waiting time results and throughput numbers.

The actual testing task includes two tests, one for measuring a patient’s temperature and following that, a nasal swab test. The same member of staff will conduct both of these tests. See our ‘Resource Moves With Work Item’ for more on how to achieve this.

The Activities ‘Temperature Testing’ and ‘Swab Testing’ depend on the number of people in a car as each passenger will have to do these tests. The set-up is the same as for the activity ‘Registration’, just with slightly different numbers, as you can see in the simulation.

The amount of tests that can be done in parallel depends on the number of available staff available as we’ll assume that in a drive-through testing set-up that the physical space for parking cars is not a limiting factor. Learn more about how to use resources as constraints to a process.

Lastly, we want to re-route a certain percentage of cars out of the simulation after completing the temperature measurement test. This is to show how we could include details like the percentage of cars carrying a passenger with fever, and hence needing special attention.

You can try out different scenarios of the simulation by using the Settings button. In the pop up dialog, you can modify settings including arrivals per hour, available test kits, the number of testing staff and the percentage of cars that should leave the simulation after the temperature measurement is taken.

For other changes like timings and passenger numbers per car, you can refer to the tutorials above to change these.

After running the simulation, you can inspect various results by switching over to the Results tab.

You can see results for the overall time in the system for all cars together with staff utilization.

Or likewise, you can inspect the waiting behaviour for the registration and testing activities.

We hope you’ll find this testing simulation example useful. If you’re working on helping to reduce the impact of this crisis and want to use simulation to help, please reach out – we’d love to help wherever we can!

About the author

Christoph Werner

Christoph Werner

Christoph Werner has an MSc in Operational Research (distinction) from the University of Strathclyde. In 2018, he completed his PhD. Since 2018, Christoph has been working as part of our Simulation Excellence team where he has helped Simul8 users with numerous simulation projects in automotive, defense, healthcare and other service sectors.