OpenSAFELY-TPP database builds

This report provides information about data import dates and recent activity in the OpenSAFELY-TPP database.
Get in touch and tell us how you use this report or new features you'd like to see: [email protected]
First published
06 Jan 2021
Last updated
08 Oct 2021

Import dates and date coverage for OpenSAFELY-TPP data sources

This OpenSAFELY notebook provides data import dates and counts of raw event data for externally linked data sources in the OpenSAFELY-TPP database. It is part of the technical documentation for users of the OpenSAFELY platform to guide analyses and it should not be used for inference about any aspect of the pandemic, public health, or health service activity. For the avoidance of doubt: any clinical or epidemiological interpretation of this raw information is likely to be a misinterpretation.

If you would like to apply to use the OpenSAFELY platform please read our documentation, the principles of the platform, and information about our pilot programme for onboarding external users.

If you want to see the Python code used to create this notebook, you can view it on GitHub.

Data sources

The core SystmOne primary care datasets are held in the S1 tables in the OpenSAFELY-TPP database. The delay from events being recorded in SystmOne to being available in OpenSAFELY-TPP is around 2 - 9 days. Reducing this to one day is possible for urgent queries where necessary.

All externally-linked data sources are listed below, with the table name given in brackets:

  • All positive or negative SARS-CoV2 tests, from SGSS (SGSS_AllTests_Positive and SGSS_AllTests_Negative)
  • First-ever positive or negative SARS-CoV2 test, from SGSS (SGSS_Positive and SGSS_Negative)
  • A&E attendances, from SUS Emergency Care data (EC)
  • In-patient hospital admissions, from SUS Admitted Patient Care Spells data (APCS)
  • Out-patient hospital appointments, from SUS (OPA)
  • Covid-related ICU admissions, from ICNARC (ICNARC)
  • Covid-related in-hospital deaths, from CPNS (CPNS)
  • COVID-19 Infection Survey, from ONS (ONS_CIS)
  • All-cause registered deaths, from ONS (ONS_Deaths)
  • High cost drugs (HighCostDrugs)
  • Unique Property Reference Number, used for deriving household variables (UPRN)
  • Master Patient Index (MPI)
  • Health and Social Care Worker identification, collected at the point of vaccination (HealthCareWorker)

Some of these tables are accompanied by additional tables with further data. For instance, OPA contains the core out-patient appointment event data, and is supplemented by the OPA_Cost, OPA_Diag, OPA_Proc tables. See the data schema notebook for more information.

Notebook run date

This notebook was run on 8 October 2021. The information below reflects the state of the OpenSAFELY-TPP as at this date.

Latest dataset import dates

TPP create a snapshot of the primary care information captured in the SystmOne database which is processed (for example unstructured free-text is removed and other OpensAFELY-specific tables are created) before being imported into the OpenSAFELY-TPP database. TPP also receive (or "ingest") external datasets from NHS Digital, ONS, etc., which are processed and imported into OpenSAFELY-TPP. Each imported dataset over-writes previously-imported data.

Once a dataset has been imported, it can be queried immediately in the secure environment. SystmOne data is imported approximately weekly. External datasets are usually imported within a few days after they have been received by TPP. Each external dataset is received at different times, sometimes irregularly or with unexpected delays.

The dates in the table below reflect when the datasets were last imported into the OpenSAFELY-TPP database. They do not reflect when the data were received by TPP nor when the latest clinical or administrative events captured in each dataset occurred.

datasource latest_import
0 APCS 2021-09-10 13:08:47.060
1 CPNS 2021-09-24 08:34:01.480
2 EC 2021-09-24 09:09:17.150
3 ECDS 2020-04-21 14:48:09.543
4 HealthCareWorker 2021-09-24 09:09:31.420
5 HighCostDrugs 2020-11-27 14:15:31.460
6 ICNARC 2021-01-21 11:21:12.623
7 MPI 2020-08-05 11:26:13.247
8 ONS_CIS 2021-04-28 14:59:47.487
9 ONS_Deaths 2021-09-24 09:10:19.877
10 OPA 2021-09-13 10:24:45.160
11 S1 2021-10-01 11:00:00.147
12 SGSS_AllTests_Negative 2021-09-24 09:53:15.820
13 SGSS_AllTests_Positive 2021-09-24 09:39:09.197
14 SGSS_Negative 2021-09-24 09:38:18.253
15 SGSS_Positive 2021-09-24 09:36:28.020
16 UPRN 2020-08-05 11:30:17.087

All dataset import dates

The figure below shows all dataset import dates for SystmOne and external datasets, up until the date this notebook was run (the vertical black line).

Text(0.5, 1.0, 'Latest dataset import dates as at 8 October 2021')

Event activity in external datasets

In the figures below, event activity (counts of events such as hospital admissions and deaths) is reported for external data sources from 1 February 2020 up to the notebook run date (left plot), and for the latest 30 days of activity up to the most recent event date (right plot).

The left plots can be used to gain a rough idea of event activity over time and helps to sense-check event frequencies and/or population counts in extracted datasets; it should not be used for direct clinical or epidemiological inference. The right plots can be used to gauge the latest reliable date for events recorded in each data source, i.e., a cut-off beyond which the data may be incomplete.

Note that the OpenSAFELY-TPP database only includes people who were ever registered at a GP practice using TPP's SystmOne clinical information system (roughly 40% of GP practices) on or after 1 January 2009, including those who have since deregistered or died. The data therefore captures activity for these patients only.

Counts of five or less are redacted.

Recurrent events / repeat patient IDs

Some datasets may have multiple rows per patient, for instance if the patient was admitted to hospital more than once. Currently a study definition can return either the first event, the last event, or the count of events occurring during the period of interest. The tables below count recurrent events for each dataset from 1 February onwards, up to 5 events.

patients_with_at_least_1_events is the number of unique patients in the dataset. This is the number of events that can be returned by a study variable that takes the first event or the last event, from 1 February onwards.

Repeat events in APCS

0 9709360
patients_with_at_least_X_events patients_with_exactly_X_events
1 4568483 2807750
2 1760733 906438
3 854295 361014
4 493281 172127
5 321154 92142

Repeat events in OPA

0 70624786
patients_with_at_least_X_events patients_with_exactly_X_events
1 10848069 2327163
2 8520906 1661512
3 6859394 1240447
4 5618947 955830
5 4663117 744444

Repeat events in CPNS

0 37798
patients_with_at_least_X_events patients_with_exactly_X_events
1 37798 37798

Repeat events in EC

0 13085811
patients_with_at_least_X_events patients_with_exactly_X_events
1 7174734 4415585
2 2759149 1525059
3 1234090 603772
4 630318 275874
5 354444 136971

Repeat events in ICNARC

0 11273