Disclaimer

Actually this is not really the draft of my upcoming “opinion” for use in an application to the CCRC in the Ben Geen case - it is a mixture of text which I plan to use in that “opinion”, also some statistics and graphics which I plan to use; but also my R computer code for making those pictures and computing those numbers. It also contains a lot of “background” description of the data. There is a lot of stuff which should move to an appendix, or a technical supplement … if it is kept at all.

BTW, the answer to the question turns out to be a resounding no: respiratory arrest in the Emergency Department (ED) is not rare at all. Just a bit less common than cardiac arrest, that’s all. Calling something which is a bit less common than something else “rare” is misleading. In a court of law it is dangerous, if not disastrous. Cf. Lucia de B…

What this is is what it is: an R html notebook, “work in progress”.

Anyway, let’s get started.

Description of the data

First we input the data. It is in a csv file called “Hdf.csv”. The file has monthly data (146 months) on each of 22 hospitals so it has 22 x 146 rows. “Hdf” stands for Hospital data file.

Then I will remove six hospitals from the file: the data on one of those hospitals seems a bit weird, the other five did not supply the monthly number of admissions to ED. This will result in a smaller file called “HdfMin” with just 16 hospitals.

Data from Horton General Hospital is not included: all these analyses have been performed before even obtaining any data from that hospital.

The file “Hdf.csv” was laboriously created from many separate data sets, acquired through FOI requests, from around 30 different hospitals and/or hospital trusts, supposed to be similar to Horton. Most of that work was done by my student-assistant Mark van der Werf. That “pre-processing” of the data will be documented elsewhere. It should be mentioned that data from eight trusts did not make it into the present data-sets for various purely administrative reasons. We hope to rectify that, later.

# Hdf <- read.csv("http://www.math.leidenuniv.nl/~gill/Data/Hdf.csv")  # cloud
Hdf <- read.csv("Hdf.csv")                                         # local
months <- c("Jan", "Feb", "Mar", "Apr", "May", "Jun", 
            "Jul", "Aug", "Sep", "Oct", "Nov", "Dec")
Hdf$Month <- ordered(Hdf$Month, levels = months)  # Order months by calendar not alphabet

Weird <- "Hertfordshire"
NoAandE <- c("Stoke", "Wycombe", "Darlington", "UHN Durham", "Barking")
Remove <- c(NoAandE, Weird)
HdfMin <- Hdf[!(Hdf$Hospital %in% Remove), ]

HdfMin$Hospital <- as.factor(as.character(HdfMin$Hospital)) ## trick to remove missing levels

names(Hdf)            # Names of the variables
##  [1] "Year"       "Month"      "CardioTot"  "CardioED"   "HypoTot"   
##  [6] "HypoED"     "RespTot"    "RespED"     "Admissions" "AllCases"  
## [11] "MonthNr"    "Hospital"

What are we measuring

In this report, we will study only the variables “Admissions”, “CardioED”, and “RespED”. The original F.O.I. Act requests defined these data as follows:

Admissions: The number of patients admitted to Hospital/Trust X Emergency Departments, by month, from November 1999 to the present.

CardioED: The number of patients admitted to Hospital/Trust X Critical Care Units with cardio-respiratory arrest from the Emergency Department, by month, from November 1999 to the present.

RespED: The number of patients admitted to Hospital/Trust X Critical Care Units with respiratory arrest from the Emergency Department, by month, from November 1999 to the present.

The variable “Admissions” therefore counts total admissions to ED, and gives us information about the size of the hospital. Moreover, we are specifically interested in events happening in ED which lead to transfer to CC (Critical Care units, including Intensive Care units). Therefore “size of ED”, as measured by rates of admission to ED is more relevant than “size of hospital” measured in number of beds, say.

“CardioEd” and “RespED” are just two of a collection of altogether six variables whose names are formed by combining a prefix “Cardio”, “Resp”, or “Hypo” with a suffix “ED” or “Tot”. The suffix “ED” stands for Emergency Department (Accident and Emergency, A&E): the number of such admissions which are from ED. The suffix “Tot” stands for total: the total number of admissions to critical care units from anywhere, with the corresponding diagnosis. The variable “AllCases” is the sum of “CardioTot”, “RespTot” and “HypoTot”, but it is not used here.

The prefixes “Cardio”, “Resp” and “Hypo” stand for cardiac or more precisely, cardio-respiratory arrest, respiratory arrest, and hypoglycaemic arrest.

The intention was that the variables “CardioED”, “RespED” and “HypoED” should count events in ED causing transfer to CC, rather than diagnosis (events in the recent medical history) of the patient when transferred from ED to CC. In other words, they were intended to count events occurring after the patient was admitted to ED, whose occurrence in ED was the direct cause of transfer from ED to CC. This should be compared to the variables “CardioTot”, “RespTot” and “HypoTot”, which were intended to count patients entering CC with the respective diagnoses, irrespective of when the corresponding event had occurred and what was the immediate reason for the admission to CC. We can only hope that most hospitals did interpret the F.O.I. request as intended. It is quite likely that many hospitals simply do not have the desired data available.

It is not entirely clear whether any particular patient only has one diagnosis, or can have several. Cardio-respiratory arrest is heart-failure (cardiac arrest) together with respiratory failure because the former caused the latter. When your heart stops beating your lungs rapidly stop breathing, so a cardiac arrest without respiratory arrest is essentially impossible, except perhaps in IC (think of a patient in a breathing machine).

Suppose a patient comes into ED who has already been resuscitated after a cardiac arrest. Suppose this patient subsequently (while in ED) also suffers a respiratory arrest. He or she now has both diagnoses (both these things have recently happened to him or her). If this patient is now admitted to CC, is he or she counted both as an admittance to CC with cardio-respiratory arrest and as an admittance to CC with respiratory arrest?

The intention was that cardio-respiratory and respiratory arrest should be mutually exclusive categories, but the F.O.I. does not make that explicit, though one can consider it implicitly implied when one considers all seven questions togetherr. Fortunately, we will be able to take finesse this particular difficulty.

Summary of issues around diagnosis

So far in this section I have discussed difficulties interpreting the data revolving around the fact that the condition(s) a patient has when transferred to CC is not the same as the immediate cause of the transfer. In principle, a patient can have experienced both cardio-respiratory and respiratory arrest, in either order. These events can happen before admission to the hospital Emergency department, or during stay in Emergency. Possibly, one event led to admission to ED, the next event to transfer to CC. What we wanted to count were transfers to CC caused directly either by a respiratory arrest in ED, or by a cardio-respiratory arrest in ED.

This all turns around the difference between the little words “in” and “with”, and whether, when one asks for numbers of patients in different categories, administrators (or their data-base software) will understand that the categories should be understood as mutually exclusive. It depends on what information actually is in the data-base. I do not know how the the FOI requests have been interpreted by the hospital administrators who have kindly supplied us all this data. We can go back and ask. Or we can ask medical experts what they think those questions actually mean, and what data they think these questions would they actually ellicit.

On the other hand, we are missing cardio-respiratory and respiratory arrests in ED which do not result in transfer to CC, if that is possible. Many events occur in hospital wards which do not end up in the hospital data-base. If a patient has suffered either arrest in ED and is immediately succesfully resuscitated there, does that person necessarily go directly to a critical care unit?

Finally we should be aware that the records stored in hospital data-bases were not collected for the purpose of answering our questions, but are the results of an administrative system which collects some information about some of the processes going on in the hospital, but not all. Many events do not find their way into the data-base at all. Many events are wrongly classified. In any case, the classification can be somewhat subjective. The system allows only a small collection of possible categories and choosing just one of them might well not do justice to the complex state of any particular patient. So an administrator picks one out of habit or for convenience. Registered rates of various kinds of event can change because culture changes, policy changes, staff changes, staff start “seeing” a new kind of event happen more often because they have been alerted to it by a notable occurrence; thus awareness of particular categories of events changes in response to occurrence of other events.

Which Hospitals?

“Hospital” is the name (more precisely: my “short name”) of the hospital, or in some cases the trust. A table will be supplied separately, giving full names of hospitals and trusts.

Here are the names of the hospitals we started with, and the names of the hospitals after reduction to those hospitals which did report the numbers of admissions to ED.

levels(Hdf$Hospital)  # Names of the hospitals (rather: short names)
##  [1] "Barking"          "C Manchester"     "Darlington"      
##  [4] "Doncaster & B"    "Frenchay"         "Good Hope"       
##  [7] "Heartlands"       "Hertfordshire"    "Hexham"          
## [10] "Hull & E Yorksh"  "Leicester"        "Maidstone"       
## [13] "N Tyneside"       "Nottingham"       "Oxford Radcliffe"
## [16] "R Liverpool"      "Sandwell"         "Solihull"        
## [19] "Stoke"            "UHN Durham"       "Wansbeck"        
## [22] "Wycombe"
levels(HdfMin$Hospital)
##  [1] "C Manchester"     "Doncaster & B"    "Frenchay"        
##  [4] "Good Hope"        "Heartlands"       "Hexham"          
##  [7] "Hull & E Yorksh"  "Leicester"        "Maidstone"       
## [10] "N Tyneside"       "Nottingham"       "Oxford Radcliffe"
## [13] "R Liverpool"      "Sandwell"         "Solihull"        
## [16] "Wansbeck"

The six hospitals which have been omitted to form the smaller data set “HdfMin” are Barking, Darlington, Stoke, UHN Durham, Wycombe, and Hertfordshire. The first five, because the number of admissions to ED is missing; the sixth, Hertfordshire, because the numbers there do not make much sense at all, and probably had not been processed correctly.

It was actually very hard to deduce whether missing fields in tables of numbers in the files provided by some hospitals meant “zero” or “not available”. As we will later see, another four hospitals (Sandwell, Solihull, Heartlands, Good Hope) need to be removed from the presently remaining 16. On the other hand, for the final step of our analysis, we do not use “total admissions to ED” so we could just as well have put Barking, Darlington, Stoke, UHN Durham, Wycombe, and Hertfordshire back in. We will do that in an appendix. It turns out that our substantive conclusions do not change at all.

Which Time Period?

We have monthly data from each hospital from various periods of time, but all within the overall period November 1999 to December 2011. That’s 12 years and 2 months, or altogether 146 months. The variable “MonthNr” measures time, by months, starting with month -1 = November 1999, month 0 = December 1999, month 1 = January 2000, …, month 144 = December 2011.

The variables “Year” and “Month” contain the year and the name of the month, respectively.

Most hospitals could only supply data for (varying) parts of the period named in the FOI request. This will be clearly visible in the graphics shown later in this report.

Are the hospitals comparable?

I have deliberately avoided studying data from Horton General Hospital so far, in order to avoid personal bias. Roughly speaking, they vary in size by a factor of up to 5: we have quite a few hositals with around 250 beds, quite a few around 500, a few with around 750, and just a couple with more than 1000 beds. Horton General belongs at the low end of the scale, among Hexham, Solihull, Wansbeck, Wycombe.

Visualisation of the Data

For the time being we look at 16 hospitals, partly for the opportunistic reason that 16 = 4 x 4; very convenient for graphical displays in which we can see the individual data of each hospital separately.

Let us plot just three of these variables against time (“MonthNr”). The three variables of most interest are “Admissions”, “CardioED”, and “RespED”.

library(lattice)

xyplot(Admissions ~ MonthNr | Hospital, 
    type = "l", main = "Admissions to ED by time", data = HdfMin, layout = c(4, 4))

plot of chunk unnamed-chunk-3

BigAdmissions <- c("Nottingham", "Leicester", "Doncaster and B")

mean(HdfMin$Admissions[HdfMin$Hospital  %in% BigAdmissions], na.rm = TRUE)
## [1] 11196
mean(HdfMin$Admissions[!(HdfMin$Hospital %in% BigAdmissions)], na.rm = TRUE)
## [1] 2838

Three hospitals – Nottingham, Leicester, Doncaster & B – stand out as having apparently five times larger emergency departments than most of the others: the three big ones have around 10 000 admissions per month; the smaller ones only around 2 000. The regular seasonal fluctuations in the large admission numbers are particularly clear.

Nottingham and Leicester are both big teaching hospitals. Doncaster & B is a trust: my short name is short for “Doncaster and Bassetlaw hospitals”.

I draw the plot again, capping the admissions at 6000, so we can better see the 13 time series of lower numbers. Seasonal variation at Frenchay is very clear to see; less visible in the others. This too is only to be expected: by the law of small numbers (Poisson variation if not super-Poisson variation) random variation becomes proportionately larger when looking at low rates, hence more easily masks a given amount of systematic variation.

HdfMin$CappedAdmin <- pmin(HdfMin$Admissions, 6000)
xyplot(CappedAdmin ~ MonthNr | Hospital, 
    type = "l", main = "Admissions to ED by time (capped at 6000)", 
    data = HdfMin, layout = c(4, 4), ylim = c(0, 6500))

plot of chunk unnamed-chunk-4

Now we turn to the heart of the matter: admissions to CC (Critical Care units, Intensive Care) from ED (Emergency Department, aka A&E) because of (or at least: with) cardiac and/or respiratory arrest.

The intention was to count admissions to CC from ED caused by just one of those events. If both had occurred, then the first might be reasonably imagined to have triggered the second. In other words, we wanted to know the numbers of admissions to CC caused primarily by either type of arrest having occurred after admission to ED. However we do not know how exactly the hospitals have interpreted the request for data, or indeed, whether the interpretation was uniform. Fortunately, whether the counts are of cases “with”, or only cases “primarily caused by”, we will still be able to extract some very pertinent information from the data.

xyplot(CardioED ~ MonthNr | Hospital, 
    type = "l", main = "Cardio-respiratory arrest from ED to CC", data = HdfMin, layout = c(4, 4))

plot of chunk unnamed-chunk-5

xyplot(RespED ~ MonthNr | Hospital, 
    type = "l", main = "Respiratory arrest from ED to CC", data = HdfMin, layout = c(4, 4))

plot of chunk unnamed-chunk-5

Observations

Very globally, we can say that typically there are 0, 1, or 2 respiratory arrests per month (sometimes 3 or 4), and anything from 0 to 10 and upwards cardiac arrests. Transfer from ED to CC because of cardiac arrest is, on the whole, very common.

Four important features should be observed.

First feature: four hospitals stand out as not reporting any cardiac or respiratory arrests at all in ED: Sandwell, Solihull, Heartlands, and Good Hope.

Second feature: cardiac arrest is about five times more frequent than respiratory arrest. (Is this what a certain anaesthetist means when he says that the latter is “rare”?).

Third feature: within each hospital, the numbers per month are highly variable.

Fourth feature: there are clear differences in levels between different hospitals, up to perhaps a factor of 4 between the lowest and the largest numbers. Regarding the numbers of admissions to ED this is mainly accounted for by scale. Regarding the numbers of transfers to CC because of (or with) various diagnoses this is no doubt exacerbated by different interpretations of the events to be counted, different registration systems or cultures. This careful selection of “similar” hospitals is actually extremely inhomogenous, even taking account of scale (size). Inhomogeneity might be administrative and/or cultural in nature, rather than due to scale or case-mix differences.

Obviously, we should compare Horton General to similar hospitals. Regarding size, this means Hexham, Solihull, Wansbeck, and Wycombe. As we will see the data from Solihull is anomalous, so this leaves us with Hexham, Wansbeck, and Wycombe.

Dealing with Anomalies

The complete absence of cardiac arrest in Sandwell and WB, Solihull, Heartlands, and Good Hope must be caused by data-registration issues. It is inconceivable that there was not a single cardiac arrest in ED in all those years. I suspect we have incorrectly interpreted “blank” columns in a spreadsheet as zeroes rather than “not available”.

So I remove the hospitals with zero events – I am guessing that these are not true zeroes, but rather “not known”. In any case, hospital months when neither event happens do not tell us anything about whether respiratory without cardiac arrest is rare.

NoArrest <- c("Sandwell", "Solihull", "Heartlands","Good Hope")

HdfMinMin <- HdfMin[!(HdfMin$Hospital %in% NoArrest), ]

Some Statistics

mean(HdfMinMin$RespED, na.rm = TRUE)    # 0.4592 Resp per month
## [1] 0.4592
mean(HdfMinMin$CardioED, na.rm = TRUE) # 2.207 Cardio per month
## [1] 2.207
round(2.207 / 0.4592) # 5 times as many Cardio as Resp
## [1] 5
sum((HdfMinMin$CardioED < HdfMinMin$RespED), na.rm = TRUE)  # 94 hospital-months with Resp > Cardio
## [1] 94
sum(is.na(HdfMinMin$CardioED), na.rm = TRUE)  # 415  hospital-months total
## [1] 415
(94/415)*12      # 2.718 months per year with Resp > Cardio
## [1] 2.718
0.4592371 * 12   # 5.511 Resp per year
## [1] 5.511

Analysis

In very round numbers, per hospital, there are on average about 3 months in every year with a respiratory but no cardiac arrest. Therefore at least 3 cases per year of respiratory without cardiac arrests. There are on average about 6 respiratory arrests per year. This means that
at least half of the respiratory arrests are not accompanied by cardiac arrest.

On average, per hospital, there are at least about 3 respiratory failures (unaccompanied by cardiac arrest) per year.

That can hardly be called rare.

It is true, but hardly relevant, that respiratory arrest is less common than cardiac arrest (about five times as infrequent).

Conclusion

Though some of what is called “respiratory arrest” in our data-sets might actually represent a combination of respiratory and cardiac arrest, in either order, it is absolutely clear that respiratory arrest (not caused by immediately preceding cardiac arrest) (and leading to transfer to CC) is not rare at all.

Respiratory arrest – leading to transfer to CC – is about five times less frequent than cardio-respiratory arrest. In a hospital of the same size as Horton General, there are on average 1 or 2 cases per month. Fluctuations are large.

Respiratory arrest not leading to transfer to CC has not been accounted for at all: the numbers are unknown, unregistered.

Appendix

Let’s check what happens when we put back the hospitals with no “admissions to ED” data.

HdfFinal <- Hdf[!(HdfMin$Hospital %in% c(NoArrest, Weird)), ]
HdfFinal$Hospital <- as.factor(as.character(HdfFinal$Hospital)) ## trick to remove missing levels
nrow(HdfFinal)/146
## [1] 17
levels(HdfFinal$Hospital)
##  [1] "Darlington"       "Frenchay"         "Good Hope"       
##  [4] "Hertfordshire"    "Hexham"           "Hull & E Yorksh" 
##  [7] "Leicester"        "Maidstone"        "N Tyneside"      
## [10] "Nottingham"       "Oxford Radcliffe" "R Liverpool"     
## [13] "Sandwell"         "Solihull"         "Stoke"           
## [16] "UHN Durham"       "Wycombe"
mean(HdfFinal$RespED, na.rm = TRUE)    # 0.3077 Resp per month
## [1] 0.3077
mean(HdfFinal$CardioED, na.rm = TRUE) # 1.563 Cardio per month
## [1] 1.563
round(2.207 / 0.4592) # 5 times as many Cardio as Resp
## [1] 5
sum((HdfFinal$CardioED < HdfFinal$RespED), na.rm = TRUE)  # 84 hospital-months with Resp > Cardio
## [1] 84
sum(is.na(HdfFinal$CardioED), na.rm = TRUE)  # 854  hospital-months total
## [1] 854
(84/854)*12      # 1.18 months per year with Resp > Cardio
## [1] 1.18
0.3077 * 12   # 3.692 Resp per year
## [1] 3.692

The hospitals we put back have reduced the overall rates both of cardiac and of respiratory arrest. However, we still see that with respect to this larger sample of hospitals, including more small hospitals, respiratory arrest without cardiac arrest accounts for at least one third of all respiratory arrests.