Incidence series surveillance of elevated liver transaminases
A series of cases of severe hepatitis in young children was recognised in central Scotland in March 2022. By the end of May, WHO had identified 650 cases worldwide, in some cases leading to liver transplant or death. The cause is unknown. It is possible that this outbreak has been more widespread. In particular, milder, self-limiting disease may not have been recognised, but might be evident from larger numbers of children having abnormal liver function tests.
In this analysis we are trying to detect changes in abnormal liver function tests (elevated AST/ALT), population wide, using non-disclosive summary data that is easily obtained and shared. Our pilot data (see below) suggests that an increase in abnormal AST/ALT values occurred in 2022, concurrently with an increase in life-threatening hepatitis of unknown cause. At larger scale this might reveal the geographical and temporal patterns in unexplained hepatitis in children.
The SALT analysis uses summary tables of data, of the type which are routinely published in academic journals and management reports. By using only summary data tables, we avoid the risk of disclosing any confidential clinical information about a person. We have generated a simple script to make it easy to extract the necessary summary tables from a large table of lab results. There is a team of research administrators and computational scientists available to support data collection - they can be contacted through ccp@ed.ac.uk
Analyses will be conducted in partnership with national public health agencies throughout the project.
Contribute data from your centre
We urgently need clinical biochemists, paediatricians and public health agencies to contribute data from their regions to help track this outbreak worldwide.
Script
We have written a script to read through a table of blood results and create a summary table in the right format for this analysis. The script works even if there are tens of millions of lines. It runs on your computer, doesn’t communicate with the internet in any way, and creates simple summary tables (see below) which you can then share with us.
The script is written in a computing language called python. Because python doesn’t come pre-installed on windows computers, we’ve bundled our script with a python version that can be used without any installation or special permissions.
OPERATING SYSTEM | DOWNLOAD LINK |
---|---|
Windows (standalone) | download_windows |
Windows (script only) | download_script |
Mac/Linux | download_script |
To read more about the script, please see the README.md file
Data collection
In order to comply with information governance requirements, eliminate the risk of confidential disclosure, and make use of routine lab data, the following summary data will be collected in csv format from hospitals:
We will count the number of hospital inpatients tested for blood levels of AST or ALT for whom the result was >200iu/l on at least one occasion, and the total number of patients for whom AST or ALT was measured. We will also calculate the mean and variance of these measurements. So count, mean and variance will be collected for:
- each month from Jan 2012 and March 2022 to the present
- each age bracket in this list: <3wks, 3wks-5y, 6-10y, 11-16y, 17-30y, 31-50y, 51-70y, >70
Where the same patient has more than one result, the first result over the threshold is counted, or the first result from that patient, if no results over the threshold are present.
Sending data
If you are sending data from multiple hospitals, please use a separate file for each one. Please send your summary data files only, containing no patient identifiers, to this email address: ccp@ed.ac.uk
Please also include the following details so that we can credit you appopriately with your contribution:
- location of hospital
- institutional email addresses of contributing scientists
Ethical approval
This work is surveillance for public health using summary data only and so does not require ethical approval.
Summary table format
The table below shows the format of the summary data to be collected from each contributing laboratory. This can be downloaded in csv format here.
statistic | test | age_group | Jan-15 | Feb-15 |
---|---|---|---|---|
count | AST_all_tests | <3wks | 0 | 0 |
count | AST_all_tests | 3wks-5y | 0 | 0 |
count | AST_all_tests | 6-10y | 0 | 0 |
count | AST_all_tests | 11-16y | 0 | 0 |
count | AST_all_tests | 17-30y | 0 | 0 |
count | AST_all_tests | 31-50y | 0 | 0 |
count | AST_all_tests | 51-70y | 0 | 0 |
count | AST_all_tests | >70y | 0 | 0 |
mean | AST_all_tests | <3wks | 0 | 0 |
mean | AST_all_tests | 3wks-5y | 0 | 0 |
mean | AST_all_tests | 6-10y | 0 | 0 |
mean | AST_all_tests | 11-16y | 0 | 0 |
mean | AST_all_tests | 17-30y | 0 | 0 |
mean | AST_all_tests | 31-50y | 0 | 0 |
mean | AST_all_tests | 51-70y | 0 | 0 |
mean | AST_all_tests | >70y | 0 | 0 |
var | AST_all_tests | <3wks | 0 | 0 |
var | AST_all_tests | 3wks-5y | 0 | 0 |
var | AST_all_tests | 6-10y | 0 | 0 |
var | AST_all_tests | 11-16y | 0 | 0 |
var | AST_all_tests | 17-30y | 0 | 0 |
var | AST_all_tests | 31-50y | 0 | 0 |
var | AST_all_tests | 51-70y | 0 | 0 |
var | AST_all_tests | >70y | 0 | 0 |
count | AST_above200 | <3wks | 0 | 0 |
count | AST_above200 | 3wks-5y | 0 | 0 |
count | AST_above200 | 6-10y | 0 | 0 |
count | AST_above200 | 11-16y | 0 | 0 |
count | AST_above200 | 17-30y | 0 | 0 |
count | AST_above200 | 31-50y | 0 | 0 |
count | AST_above200 | 51-70y | 0 | 0 |
count | AST_above200 | >70y | 0 | 0 |
mean | AST_above200 | <3wks | 0 | 0 |
mean | AST_above200 | 3wks-5y | 0 | 0 |
mean | AST_above200 | 6-10y | 0 | 0 |
mean | AST_above200 | 11-16y | 0 | 0 |
mean | AST_above200 | 17-30y | 0 | 0 |
mean | AST_above200 | 31-50y | 0 | 0 |
mean | AST_above200 | 51-70y | 0 | 0 |
mean | AST_above200 | >70y | 0 | 0 |
var | AST_above200 | <3wks | 0 | 0 |
var | AST_above200 | 3wks-5y | 0 | 0 |
var | AST_above200 | 6-10y | 0 | 0 |
var | AST_above200 | 11-16y | 0 | 0 |
var | AST_above200 | 17-30y | 0 | 0 |
var | AST_above200 | 31-50y | 0 | 0 |
var | AST_above200 | 51-70y | 0 | 0 |
var | AST_above200 | >70y | 0 | 0 |
count | ALT_all_tests | <3wks | 0 | 0 |
count | ALT_all_tests | 3wks-5y | 0 | 0 |
count | ALT_all_tests | 6-10y | 0 | 0 |
count | ALT_all_tests | 11-16y | 0 | 0 |
count | ALT_all_tests | 17-30y | 0 | 0 |
count | ALT_all_tests | 31-50y | 0 | 0 |
count | ALT_all_tests | 51-70y | 0 | 0 |
count | ALT_all_tests | >70y | 0 | 0 |
mean | ALT_all_tests | <3wks | 0 | 0 |
mean | ALT_all_tests | 3wks-5y | 0 | 0 |
mean | ALT_all_tests | 6-10y | 0 | 0 |
mean | ALT_all_tests | 11-16y | 0 | 0 |
mean | ALT_all_tests | 17-30y | 0 | 0 |
mean | ALT_all_tests | 31-50y | 0 | 0 |
mean | ALT_all_tests | 51-70y | 0 | 0 |
mean | ALT_all_tests | >70y | 0 | 0 |
var | ALT_all_tests | <3wks | 0 | 0 |
var | ALT_all_tests | 3wks-5y | 0 | 0 |
var | ALT_all_tests | 6-10y | 0 | 0 |
var | ALT_all_tests | 11-16y | 0 | 0 |
var | ALT_all_tests | 17-30y | 0 | 0 |
var | ALT_all_tests | 31-50y | 0 | 0 |
var | ALT_all_tests | 51-70y | 0 | 0 |
var | ALT_all_tests | >70y | 0 | 0 |
count | ALT_above200 | <3wks | 0 | 0 |
count | ALT_above200 | 3wks-5y | 0 | 0 |
count | ALT_above200 | 6-10y | 0 | 0 |
count | ALT_above200 | 11-16y | 0 | 0 |
count | ALT_above200 | 17-30y | 0 | 0 |
count | ALT_above200 | 31-50y | 0 | 0 |
count | ALT_above200 | 51-70y | 0 | 0 |
count | ALT_above200 | >70y | 0 | 0 |
mean | ALT_above200 | <3wks | 0 | 0 |
mean | ALT_above200 | 3wks-5y | 0 | 0 |
mean | ALT_above200 | 6-10y | 0 | 0 |
mean | ALT_above200 | 11-16y | 0 | 0 |
mean | ALT_above200 | 17-30y | 0 | 0 |
mean | ALT_above200 | 31-50y | 0 | 0 |
mean | ALT_above200 | 51-70y | 0 | 0 |
mean | ALT_above200 | >70y | 0 | 0 |
var | ALT_above200 | <3wks | 0 | 0 |
var | ALT_above200 | 3wks-5y | 0 | 0 |
var | ALT_above200 | 6-10y | 0 | 0 |
var | ALT_above200 | 11-16y | 0 | 0 |
var | ALT_above200 | 17-30y | 0 | 0 |
var | ALT_above200 | 31-50y | 0 | 0 |
var | ALT_above200 | 51-70y | 0 | 0 |
var | ALT_above200 | >70y | 0 | 0 |