Job request: 25884
- Organisation:
- University of Nottingham
- Workspace:
- measures-testing
- ID:
- 3mfucv5i4dguiolw
This page shows the technical details of what happened when the authorised researcher Weiyao Meng 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
-
- Job identifier:
-
3zz554jocrpzm366
Pipeline
Show project.yaml
version: '4.0'
actions:
# generate_dataset:
# run: ehrql:v1 generate-dataset analysis/dataset_definition_patients.py --output output/dataset_patients.csv.gz
# outputs:
# highly_sensitive:
# dataset: output/dataset_patients.csv.gz
generate_dataset_preg_2024_11_01:
run: ehrql:v1 generate-dataset analysis/dataset_definition_pregnancy.py --output output/dataset_preg_2024_11_01.csv.gz -- --start_date 2024-11-01
outputs:
highly_sensitive:
dataset: output/dataset_preg_2024_11_01.csv.gz
generate_dataset_preg_2025_11_01:
run: ehrql:v1 generate-dataset analysis/dataset_definition_pregnancy.py --output output/dataset_preg_2025_11_01.csv.gz -- --start_date 2025-11-01
outputs:
highly_sensitive:
dataset: output/dataset_preg_2025_11_01.csv.gz
generate_dataset_preg_measures:
run: ehrql:v1 generate-measures analysis/dataset_definition_pregnancy_measures.py --output output/measures/:csv
outputs:
moderately_sensitive:
dataset: output/measures/*.csv
analyse_preg_measures:
run: python:v2 analysis/pregnancy_checks.py --output output/measures/pregnancy_checks.csv --input output/measures/*.csv
needs:
[generate_dataset_preg_measures]
outputs:
moderately_sensitive:
dataset: output/measures/*by_year.csv
charts: output/measures/*by_year.png
# generate_dataset_practices:
# run: ehrql:v1 generate-dataset analysis/dataset_definition_practices.py --output output/dataset_practices.csv.gz
# outputs:
# highly_sensitive:
# dataset: output/dataset_practices.csv.gz
generate_patient_dataset_2024_02_01:
run: ehrql:v1 generate-dataset analysis/dataset_definition_patients.py --dummy-tables dummy-folder --output output/dataset_patients_2024-02-01.csv.gz -- --start_date 2024-02-01
outputs:
highly_sensitive:
dataset: output/dataset_patients_2024-02-01.csv.gz
generate_patient_dataset_2024_03_01:
run: ehrql:v1 generate-dataset analysis/dataset_definition_patients.py --dummy-tables dummy-folder --output output/dataset_patients_2024-03-01.csv.gz -- --start_date 2024-03-01
outputs:
highly_sensitive:
dataset: output/dataset_patients_2024-03-01.csv.gz
# combine monthly tables
combine_monthly_patient_gz:
run: python:v2 analysis/preprocess_combine_gz.py --output output/dataset_patients_combined.csv.gz
needs: [generate_patient_dataset_2024_02_01, generate_patient_dataset_2024_03_01]
outputs:
highly_sensitive:
dataset: output/dataset_patients_combined.csv.gz
# patient-level measures for sense checking; not final measures for analysis
# local testing with dummy tables
generate_patient_measures:
run: ehrql:v1 generate-measures analysis/measures_patient.py --dummy-tables dummy-folder --output output/patient_measures.csv
outputs:
moderately_sensitive:
measure_tables: output/patient_measures.csv
# practice-level data step 1: run patient dataset measures
generate_patient_measures_for_practices:
run: ehrql:v1 generate-measures analysis/measures_practice.py --dummy-tables dummy-folder --output output/practice_measures.csv
outputs:
highly_sensitive:
measure_tables: output/practice_measures.csv
# practice-level data step 2: aggregate patient measures to practice-level data
process_measures_to_practice_dataset:
run: python:v2 analysis/process_measures_to_practice_dataset.py --output output/practice_level_data.csv
needs: [generate_patient_measures_for_practices]
outputs:
moderately_sensitive:
practice_level_data: output/practice_level_data.csv
# practice-level data step 3: extract info from practice-level data
process_practice_dataset:
run: python:v2 analysis/process_practice_dataset.py --output output/practice_summary_by_stp.csv
needs: [process_measures_to_practice_dataset]
outputs:
moderately_sensitive:
practice_level_data: output/practice_summary_by_stp.csv
# https://actions.opensafely.org/actions/safetab/v3.0.2/
# safetabs: create two-way tables for the specified variables; redact results for small numbers
generate_safetabs:
run: safetab:v3.0.2 output/dataset_patients_combined.csv.gz
needs: [combine_monthly_patient_gz]
config:
output_path: output
redaction_limit: 2
tables:
two_way:
tab_type: 2-way
variables:
- sex
- region
outputs:
moderately_sensitive:
safetab_log: output/dataset_patients_combined.csv_tables/table_log.txt
safetab_two_way: output/dataset_patients_combined.csv_tables/two_way/*.md
# https://actions.opensafely.org/actions/cohort-report/v3.0.0/
# generate cohort report; require all variable_types
# generate_cohort_report:
# run: cohort-report:v3.0.0 output/dataset_patients_combined.csv.gz
# needs: [combine_monthly_patient_gz]
# config:
# variable_types:
# start_date: date
# index_date: date
# registered_start: categorical
# registered_index: categorical
# alive: categorical
# sex: categorical
# age: int
# date_of_birth: date
# imd: categorical
# ethnicity: categorical
# region: categorical
# outputs:
# moderately_sensitive:
# reports: cohort_reports_outputs/descriptives_dataset_patients_combined.csv.html
# figures: cohort_reports_outputs/*.png
# https://actions.opensafely.org/actions/dataset-report/v0.0.29/
# dataset report
generate_dataset_report:
run: >
dataset-report:v0.0.29
--input-files output/dataset_patients_combined.csv.gz
--output-dir output
needs: [combine_monthly_patient_gz]
outputs:
moderately_sensitive:
dataset_report: output/dataset_patients_combined.html
Timeline
-
Created:
-
Started:
-
Finished:
-
Runtime: 00:52:24
These timestamps are generated and stored using the UTC timezone on the TPP backend.
Job request
- Status
-
Succeeded
- Backend
- TPP
- Workspace
- measures-testing
- Requested by
- Weiyao Meng
- Branch
- main
- Force run dependencies
- No
- Git commit hash
- b356e14
- Requested actions
-
-
generate_patient_measures
-
Code comparison
Compare the code used in this job request
- No previous job request available for comparison