Improving the usability of open health service delivery simulation models using Python and web apps

NIHR Open Res. 2023 Oct 5:3:48. doi: 10.3310/nihropenres.13467.1. eCollection 2023.

Abstract

One aim of Open Science is to increase the accessibility of research. Within health services research that uses discrete-event simulation, Free and Open Source Software (FOSS), such as Python, offers a way for research teams to share their models with other researchers and NHS decision makers. Although the code for healthcare discrete-event simulation models can be shared alongside publications, it may require specialist skills to use and run. This is a disincentive to researchers adopting Free and Open Source Software and open science practices. Building on work from other health data science disciplines, we propose that web apps offer a user-friendly interface for healthcare models that increase the accessibility of research to the NHS, and researchers from other disciplines. We focus on models coded in Python deployed as streamlit web apps. To increase uptake of these methods, we provide an approach to structuring discrete-event simulation model code in Python so that models are web app ready. The method is general across discrete-event simulation Python packages, and we include code for both simpy and ciw implementations of a simple urgent care call centre model. We then provide a step-by-step tutorial for linking the model to a streamlit web app interface, to enable other health data science researchers to reproduce and implement our method.

Keywords: Discrete-Event Simulation; Health Services Research; Model Reuse; Open Science; Python; Reproducibility; Web Applications.

Plain language summary

Simulation models provide a quantitative way for researchers to make predictions about complex health services, for example to assess the effects of changes to patient care pathways. The most common approach used for health services research is discrete-event simulation. Historically, research has used software that must be purchased and has restrictive licensing. This can make it difficult for other researchers, and NHS staff such as managers and clinicians, to use the model to help with their planning and resourcing decisions. One aim of Open Science is to increase the accessibility of research. Free and Open Source Software (FOSS) such as Python offers a way for research teams to share their models with other researchers and NHS decision makers. Although the code for simulation models can be shared alongside publications, it may require specialist skills to use and run. Building on work from other health disciplines, we propose that web apps offer a user-friendly interface for healthcare models that increase the accessibility of research. A web app runs in the browser of a computer and allows users to update model parameters, run different experiments, and explore the impact on the health service that is being studied. We focus on a package called streamlit. To increase uptake of these methods, we provide an approach to structuring model code in Python to enable the model to be easily integrated into streamlit. The method does not depend on a specific discrete-event simulation package. To illustrate this, we developed simulations using two Python packages called simpy and ciw of a simple urgent care call centre. We then provide a step-by-step tutorial for linking the model to the streamlit web app interface. This enables other health data science researchers to reproduce our method for their own simulation models and improve the accessibility and usability of their work.

Grants and funding

This report is independent research supported by the National Institute for Health Research Applied Research Collaboration South West Peninsula.