Job request: 25923
- Organisation:
- UKHSA
- Workspace:
- study-result-resistant-bsi
- ID:
- noz4sq5txua5ns5w
This page shows the technical details of what happened when the authorised researcher Billy Zhong requested one or more actions to be run against real patient data within a secure environment.
By cross-referencing the list of jobs with the pipeline section below, you can infer what security level the outputs were written to.
The output security levels are:
-
highly_sensitive
- Researchers can never directly view these outputs
- Researchers can only request code is run against them
-
moderately_sensitive
- Can be viewed by an approved researcher by logging into a highly secure environment
- These are the only outputs that can be requested for public release via a controlled output review service.
Jobs
-
- Action:
- generate_dataset
- Status:
- Succeeded
- Job identifier:
-
w6iu6jbse53onqhq
-
- Action:
- generate_dataset_combined
- Status:
- Succeeded
- Job identifier:
-
ptmxjv6ewpt3fhbu
-
- Action:
- generate_measures
- Status:
- Succeeded
- Job identifier:
-
e7iu6vvebewv4duj
-
- Action:
- generate_controls
- Status:
- Succeeded
- Job identifier:
-
mnstia4huynfytjz
Pipeline
Show project.yaml
version: '5.0'
actions:
generate_dataset:
run: ehrql:v1 generate-dataset analysis/dataset_definition.py
--output output/dataset.csv.gz
outputs:
highly_sensitive:
dataset: output/dataset.csv.gz
# Step 2a: Sepsis trend analysis (monthly counts, resistant %)
sepsis_trend_analysis:
run: r:v2 analysis/sepsis_trend_analysis.R
needs: [generate_dataset]
outputs:
moderately_sensitive:
table_monthly: output/tables/table_sepsis_monthly.csv
table_annual: output/tables/table_sepsis_annual.csv
fig_monthly_trend: output/figures/fig_sepsis_monthly_trend.png
fig_annual_trend: output/figures/fig_sepsis_annual_trend.png
# Step 1b: Combined dataset (ICD-10 hospital + SNOMED primary care BSI)
generate_dataset_combined:
run: ehrql:v1 generate-dataset analysis/dataset_definition_combined.py
--output output/dataset_combined.csv.gz
outputs:
highly_sensitive:
dataset: output/dataset_combined.csv.gz
# Step 2b: Descriptive analysis (hospital-only, original)
descriptive_analysis:
run: r:v2 analysis/descriptive_analysis.R
needs: [generate_dataset]
outputs:
moderately_sensitive:
table1: output/tables/table1_overall.csv
table1_period: output/tables/table1_by_period.csv
table_mortality: output/tables/table_mortality.csv
table_amr: output/tables/table_amr_codes.csv
table_covid: output/tables/table_covid_status.csv
fig_annual: output/figures/fig_cases_by_year.png
fig_monthly: output/figures/fig_cases_by_year_month.png
fig_age: output/figures/fig_age_distribution.png
fig_comorb: output/figures/fig_comorbidity_prevalence.png
fig_region: output/figures/fig_region_distribution.png
fig_ethnicity: output/figures/fig_ethnicity_distribution.png
fig_imd: output/figures/fig_imd_distribution.png
fig_mortality: output/figures/fig_mortality_by_period.png
# Step 2c: Descriptive analysis (combined: ICD-10 + SNOMED primary care)
descriptive_analysis_combined:
run: r:v2 analysis/descriptive_analysis_combined.R
needs: [generate_dataset_combined]
outputs:
moderately_sensitive:
table1: output/tables_combined/table1_overall.csv
table1_period: output/tables_combined/table1_by_period.csv
table_mortality: output/tables_combined/table_mortality.csv
table_amr: output/tables_combined/table_amr_codes.csv
table_covid: output/tables_combined/table_covid_status.csv
table_source: output/tables_combined/table_bsi_source.csv
fig_annual: output/figures_combined/fig_cases_by_year.png
fig_monthly: output/figures_combined/fig_cases_by_year_month.png
fig_age: output/figures_combined/fig_age_distribution.png
fig_comorb: output/figures_combined/fig_comorbidity_prevalence.png
fig_region: output/figures_combined/fig_region_distribution.png
fig_ethnicity: output/figures_combined/fig_ethnicity_distribution.png
fig_imd: output/figures_combined/fig_imd_distribution.png
fig_mortality: output/figures_combined/fig_mortality_by_period.png
fig_source: output/figures_combined/fig_cases_by_source.png
# Step 3: Measures (monthly BSI rates per registered population)
generate_measures:
run: ehrql:v1 generate-measures analysis/measures_definition.py
--output output/measures/:csv
outputs:
moderately_sensitive:
bsi_rate: output/measures/bsi_rate.csv
resistant_bsi_rate: output/measures/resistant_bsi_rate.csv
bsi_rate_by_imd: output/measures/bsi_rate_by_imd.csv
resistant_bsi_rate_by_imd: output/measures/resistant_bsi_rate_by_imd.csv
bsi_rate_by_region: output/measures/bsi_rate_by_region.csv
bsi_rate_by_age: output/measures/bsi_rate_by_age.csv
bsi_rate_by_sex: output/measures/bsi_rate_by_sex.csv
# Step 4: Control cohort (no-BSI population for matching)
generate_controls:
run: ehrql:v1 generate-dataset analysis/dataset_definition_controls.py
--output output/dataset_controls.csv.gz
outputs:
highly_sensitive:
dataset: output/dataset_controls.csv.gz
Timeline
-
Created:
-
Started:
-
Finished:
-
Runtime: 13:53:19
These timestamps are generated and stored using the UTC timezone on the TPP backend.
Job request
- Status
-
Succeeded
- Backend
- TPP
- Workspace
- study-result-resistant-bsi
- Requested by
- Billy Zhong
- Branch
- main
- Force run dependencies
- No
- Git commit hash
- 7a86e78
- Requested actions
-
-
generate_dataset -
generate_dataset_combined -
generate_measures -
generate_controls
-
Code comparison
Compare the code used in this job request