DOI: 10.5061/dryad.m0cfxppdj
title: Lanes, clusters, lines of Sight: Modelling diagnostic eyecare clinics to improve patient flow

description: Lengthy waiting times for ophthalmology appointments in the UK National
 Health Service (NHS) increased further in the immediate aftermath of the
 Covid-19 pandemic, necessitating a different approach to triaging patients
 safely and at speed. Moorfields Eye Hospital NHS Trust therefore opened an
 additional diagnostic hub designed with a linear spatial layout and
 patient flow system, which is analyzed in this paper in comparison to an
 existing clinic. We integrate direct observations of patient flows, and an
 architectural layout analysis based on space syntax methods with queuing
 simulations from operations research and show that the two clinics operate
 differently and that both clinics have their advantages and disadvantages.
 The newly opened clinic with a lane system supports flows and coordination
 by line of sight between stations, which contrasts with a lack of
 sightlines in the existing clinic. The latter layout with clusters of
 stations compensates by enabling a more organic flow, especially in
 conjunction with experienced technicians, which is beneficial when the
 clinic gets busy. When high patient load is simulated in the queuing
 models, the lane system results in slightly bigger bottlenecks and longer
 clinic durations. An ideal allocation of the number of stations to
 diagnostic activities based on clusters is suggested. This work stands in
 the tradition of combining architectural and operations research. By
 reflecting on the variability of diagnostic processes found in our
 observations, we contribute to the understanding of routines as
 performative. We also add insight to the growing field of evidence-based
 design, particularly by highlighting the importance of line-of-sight
 relationships in ophthalmology.
description: Fieldwork was undertaken in June and July 2021 in two outpatient
 clinics of Moorfield Eye Hospital NHS Trust, the Cayton Street clinic and
 the Hoxton Hub. Two main data sets were collected for each clinic: 1) an
 up-to-date floor plan of each clinic including the locations and types of
 all diagnostic equipment marked up, and 2) direct observations of glaucoma
 patient flows, recorded on tablets, including exact time stamps of entry
 and exit of the clinic as well as start and end times for all diagnostic
 tests. For the observations, patients received a
 sticker with a study ID number at the reception desk, which was recorded
 by observers as an identifier. Over the course of ten days of
 observations, participant observers captured nine 4-hour shifts in the
 period from 8:30 to 17:00 in Hoxton, and six 4-hour day shifts and seven
 3-hour evening shifts between 8:30 and 20:00 in Cayton Street. 14 patients
 at Cayton Street and 11 patients at Hoxton were shadowed for the entirety
 of their journey through the clinics with an average duration of 36
 minutes (range 19-70min) and 37 minutes (range 26-79min) respectively. The
 majority of the data, however, was captured by additional, so called
 ‘zonal’ observations, where each observer was placed in a position to
 monitor a discrete space as well as all start and end times of diagnostic
 tests completed in this area, resulting in a total of 152 and 83 unique
 patients observed in the clinics respectively. From these data, full
 patient journeys were reconstructed using the patient identifiers.
 Aggregating data from both observation methods resulted in a sample size
 of 621 single data points of activity durations in Cayton Street and 485
 at Hoxton (which includes observed activities of standing and waiting),
 hence n=1106. This full data set contained a subsample of actual
 examinations at stations (excluding standing and waiting) of
 n=1007. Each observer was asked to record an identifier
 for each technician looking after a patient, i.e., the first two letters
 of the technician’s first name and the first two letters of their last
 name. Each technician was wearing a name tag which was visible to the
 observers. This was used in the analysis stage to understand technician
 workflows, for example, whether they guide a single patient through every
 stage of the diagnostic process, or whether they mainly stick to a
 particular diagnostic activity. Afterwards, all identifiers were
 anonymized. The observers were also asked to assess and
 record the fluency in English of each patient where they could choose from
 four levels: ‘fluent’, ‘few issues’, ‘many issues’, and ‘translator’.
 Using the patient ID numbers, which were cross-referenced by hospital
 staff to their patient database, additional information was obtained from
 the hospital including age, gender, and if the patient was a first-time or
 a follow-up patient. The observers also recorded anything they felt worth
 noting down in the form of a qualitative note. This included reasons for
 occurring delays, causes for waiting, patients with mobility difficulties,
 etc. In summary, for each diagnostic activity, the
 following data was collected: 1) patient ID, 2) date, 2) exact time stamps
 for the moment a patient sat down at each station (start time), and got up
 again (end time), 3) location (corridor, waiting area or station number),
 4) activity (exam, wait while sitting, wait while standing), 5) technician
 ID, 6) English proficiency, 7) qualitative notes (see supplemental
 material S1 on the observation protocol). The dataset
 has been processed in the following ways: 
 Floor plans have been analysed based on space syntax techniques
 to understand differences in architectural layout between the two
 clinics. The patient flow data has been analysed
 statistically using Jupyter Notebooks to understand how the two clinics
 operated. Queuing simulations have been run in R to
 understand how the diagnostic stations can be arranged differently, and
 what impact this would have on clinic effectiveness.
description: # Lanes, Clusters, Lines of Sight: Modelling diagnostic eyecare clinics to
 improve patient flow
 [https://doi.org/10.5061/dryad.m0cfxppdj](https://doi.org/10.5061/dryad.m0cfxppdj) ## Description of the data and file structure ### **Data and analysis description** To replicate our analysis, the following three pieces of work need to be completed: first, the spatial analysis of the layout; second, the analysis of the observational data on patient flows and timings; and third, the simulation of patient flow, which provides an indication of the ideal type and number of required machines. The following steps in each piece of work need to be completed. ### Spatial analysis **1) Perform VGA and Step Depth Analysis** Prepare a dxf file of a floor plan following the instructions in the Depthmap_VGA_HowToGuide.pdf, using the floor plan we have provided in the *VGA model* folder as an example. Download DepthmapX to run Visibility Graph Analysis (VGA) and visual Step Depth (SD) from the same station type. For the latest version of the software use the following link [https://github.com/SpaceGroupUCL/depthmapX/releases](https://github.com/SpaceGroupUCL/depthmapX/releases). Follow the steps in the Depthmap_VGA_HowToGuide.pdf (Supplemental Information) to produce a VGA and SD analysis. Use a 0.6m by 0.6m grid and exclude the furniture when running the analysis. You can check the attributes table of the mean depth measure to obtain the minimum, average, maximum and standard deviation. The VGA models for the two sites are stored as *.graph* files in the *VGA model* folder. **2) J-Graph** Use any graphics software (e.g. Illustrator or Autocad) to construct a j-graph by representing as nodes each of the individual stations, the entrance and the corridors leading from the entrance to the stations. Use the clinic’s entrance as a base point and then organize the rest of the points visually starting from the base and then all points with depth 1 from that point aligned immediately above it, all points at depth 2 from that point above those at depth 1 and so one until all levels of depth from the entrance are accounted for. For an automated process, use R for depthmap available from [https://github.com/pklampros/rdepthmap](https://github.com/pklampros/rdepthmap). The igraph library allows plotting a graph as a tree from a specific node. Full details can be found here: [https://github.com/pklampros/space_syntax_analysis_in_r/blob/main/4_advanced_j_graphs.Rmd](https://github.com/pklampros/space_syntax_analysis_in_r/blob/main/4_advanced_j_graphs.Rmd) ### Observational data **3) Direct Observations** Conduct direct observations of patient flows using a tablet. For detailed explanation of the observations use the *S1_Sailer_et_al_observationprotocol.docx* file and the *Journey_OBS_template.xlsx* and *Zonal_OBS_template.xlsx* template (in the *Data Collection Templates* folder) for data collection. The *example_overview_schedule.xlsx* (in the Data Collection Templates folder) provides an example of an observational schedule for three observers and two observational sites. **4) Patient Information** Obtain patient information such as age group, gender and patient type from the hospital. **5) Construct Patient Journeys** Use the Jupyter notebooks to construct patient journeys from the zonal observations and combine the observational data with the patient information in a single csv file following the structure in the file *CLEAN_Cayton_Zonal_OBS.csv* in *Jupyter/Cayton_Zonal* folder. We have used Jupyter Lab on Python 3.12. **6) Analysis** Use the Jupyter notebooks to run the analysis. All the notebooks and the data needed for analysis are saved in the *Jupyter* folder. To perform the descriptive analysis and the t-tests presented in Table 2 in the paper, please refer to the *DescripStats_T-test.ipynb* file. The same analysis with the 95% trimmed data set (as reported in the paper / presented in supplemental material) can be produced by referring to the *DescripStats_T-test_95trimmed.ipynb* file. To produce histograms presented in Figure 5a-j, please refer to the *Histogram.ipynb* file. To produce the bar charts of Figure 6 and 7, please refer to the *BarCharts.ipynb* file. To produce the Sankey diagrams presented in Figure 8, please refer to *SankeyDiagram.ipynb* file. ### Queuing Simulation **7) Analysis** The queuing simulation in the paper is performed using R version 4.2.2. The data and scripts to reproduce the analysis are saved in the *Queuing simulation* folder. Information on compliance with the STRESS guidelines for simulation studies in operational research is included in the folder as well. ## **Files and variables** #### File: Data\_Collection\_Templates.zip **Description:** This folder contains two files to support researchers in conducting their own observations of patient flows in outpatient clinics: 1. *example_overview_schedule.pdf* provides a template from our observation planning covering three weeks of observation and various clinic shifts. 2. *OBS_template.csv* shows the structure of how we gathered data on site. All colums in the .csv are explained in detail in the supplemental file *S1_Sailer_et_al_observationprotocol.pdf*. Note: we used iPads and Microsoft Excel to collect the data. We prepared the Excel sheet as follows: I) the columns *Start Time* and *End Time* were pre-programmed with the formula =now(), so that upon clicking the cell, the current time was entered. II) We disabled the automatic updating of all cells so that the start and end times retained their original values when new entries were made. III) We used dropdown menus and a lookup function for the columns *Location*, *Activity*, and *Patient English* to ease the load on the participant observers and to ensure consistent data entry. #### File: VGA\_model.zip **Description:**  This folder contains five files to enable researchers to re-analyze our floor plans and spatial layout models, and to support researchers in conducting their own spatial layout analysis with own floor plans of different outpatient clinics: 1. *Depthmap_VGA_HowToGuide.pdf* provides a step-by-step instruction on how to conduct a Visibility Graph Analysis (VGA) and Step Depth (SD) Analysis using the open-source software depthmapX. Links to download depthmapX are provided in the file. [Note this is hosted on Zenodo under Supplemental Information link] 2. *Cayton.dxf* and *Hoxton.dxf* contain the simplified, line-based floor plans of the two clinics we studied. The file format .dxf is an open format that can be read by a variety of CAD and vector-based drawing programmes. We used AutoCad to clean up floor plans for the analysis. depthmapX reads .dxf files for the analysis. 3. *Cayton_visibility.graph* and *Hoxton_visibility.graph* are output files from depthmapX. They contain the detailed analysis we conducted. ## **Code/software** #### File: Jupyter.zip **Description**: This folder contains five Jupyter notebooks and all input files needed for the analysis. A description of the processes we used is provided in the above. We used Jupyter Lab on Python 3.12. #### File: Queuing simulation.zip **Description**: This folder contains two .R files and two .csv input files needed to replicate our queuing simulation analysis, as well as a .pdf file outlining the compliance of our modelling and data sharing with the STRESS guidelines developed for operational research. A description of the processes and variables we used is provided in supplemental file *S2_Sailer_et_al_pseudocode.pdf*. ## **Access information** No other publicly accessible data was used.