Skip to content

Job request: 23374

Organisation:
Bennett Institute
Workspace:
waiting-list
ID:
dbhozon7kxdi3uon

This page shows the technical details of what happened when the authorised researcher Andrea Schaffer 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

Pipeline

Show project.yaml
version: '3.0'

expectations:
  population_size: 100000

actions:

  ##### Dataset definitions #####

  # Closed (completed) RTT pathways
  generate_dataset_full:
    run: ehrql:v1 generate-dataset analysis/dataset_definition_full.py
      --output output/data/dataset_full.arrow
      #--dummy-data-file dummy/dummy_ortho_clockstops.arrow
    outputs:
      highly_sensitive:
        cohort: output/data/dataset_full.arrow
  
  # Closed (completed) RTT pathways
  generate_dataset_ortho:
    run: ehrql:v1 generate-dataset analysis/dataset_definition_ortho.py
      --output output/data/dataset_ortho.arrow
      #--dummy-data-file dummy/dummy_ortho_clockstops.arrow
    outputs:
      highly_sensitive:
        cohort: output/data/dataset_ortho.arrow
  
  #### Check number of pathways over time ####
  measures_checks:
    run: ehrql:v1 generate-measures analysis/measures_checks.py 
      --output output/measures/measures_checks.csv
    outputs:
      moderately_sensitive:
        measure_csv: output/measures/measures_checks.csv


  ##### Opioid measures - closed pathways #####
  measures_any_opioid:
    run: ehrql:v1 generate-measures analysis/measures_opioid_all.py 
      --output output/measures/measures_any_opioid.csv
      --
      --codelist "opioid_codes"
    outputs:
      highly_sensitive:
        measure_csv: output/measures/measures_any_opioid.csv

  measures_long_opioid:
    run: ehrql:v1 generate-measures analysis/measures_opioid_all.py 
      --output output/measures/measures_long_opioid.csv
      --
      --codelist "long_opioid_codes"
    outputs:
      highly_sensitive:
        measure_csv: output/measures/measures_long_opioid.csv

  measures_short_opioid:
    run: ehrql:v1 generate-measures analysis/measures_opioid_all.py 
      --output output/measures/measures_short_opioid.csv
      --
      --codelist "short_opioid_codes"
    outputs:
      highly_sensitive:
        measure_csv: output/measures/measures_short_opioid.csv
  
  measures_weak_opioid:
    run: ehrql:v1 generate-measures analysis/measures_opioid_all.py 
      --output output/measures/measures_weak_opioid.csv
      --
      --codelist "weak_opioid_codes"
    outputs:
      highly_sensitive:
        measure_csv: output/measures/measures_weak_opioid.csv

  measures_moderate_opioid:
    run: ehrql:v1 generate-measures analysis/measures_opioid_all.py 
      --output output/measures/measures_moderate_opioid.csv
      --
      --codelist "moderate_opioid_codes"
    outputs:
      highly_sensitive:
        measure_csv: output/measures/measures_moderate_opioid.csv

  measures_strong_opioid1:
    run: ehrql:v1 generate-measures analysis/measures_opioid_all.py 
      --output output/measures/measures_strong_opioid1.csv
      --
      --codelist "strong_opioid_codes1"
    outputs:
      highly_sensitive:
        measure_csv: output/measures/measures_strong_opioid1.csv

  measures_strong_opioid2:
    run: ehrql:v1 generate-measures analysis/measures_opioid_all.py 
      --output output/measures/measures_strong_opioid2.csv
      --
      --codelist "strong_opioid_codes2"
    outputs:
      highly_sensitive:
        measure_csv: output/measures/measures_strong_opioid2.csv

  # Combine measures
  opioids_by_week:
    run: r:latest analysis/clockstops/opioids_by_week.R
    needs: [measures_any_opioid, measures_weak_opioid, measures_strong_opioid1, measures_strong_opioid2, measures_moderate_opioid, measures_long_opioid, measures_short_opioid]
    outputs:
      moderately_sensitive:
        data: output/clockstops/opioid*.csv
      
       
  ##### Analysis - closed pathways #####
  
  # checks_cohort_clockstops:
  #  run: r:latest analysis/clockstops/checks_cohort_clockstops.R
  #  needs: [generate_dataset_clockstops]
  #  outputs:
  #     moderately_sensitive:
  #       data: output/clockstops/check*.csv

  final_cohort_exclusions:
   run: r:latest analysis/clockstops/final_cohort_exclusions.R
   needs: [generate_dataset_full, generate_dataset_ortho]
   outputs:
      highly_sensitive:
        cohort: output/data/cohort*.csv.gz
      moderately_sensitive:
       #exclusions1: output/clockstops/cohort_full_exclusions.csv
        exclusions2: output/clockstops/exclude*.csv
        
  wait_time:
   run: r:latest analysis/clockstops/wait_time.R
   needs: [final_cohort_exclusions]
   outputs:
      moderately_sensitive:
        data1: output/clockstops/rtt_dates.csv
        data2: output/clockstops/wait_by_group.csv
        data3: output/clockstops/num_weeks.csv

  frequency_tables_all:
   run: r:latest analysis/clockstops/frequency_tables_all.R
   needs: [final_cohort_exclusions]
   outputs:
      moderately_sensitive:
        data1: output/clockstops/cat_var_dist_ortho.csv
        
  frequency_tables_routine:
   run: r:latest analysis/clockstops/frequency_tables_routine.R
   needs: [final_cohort_exclusions]
   outputs:
      moderately_sensitive:
        data1: output/clockstops/cat_var_dist_prior.csv
        data2: output/clockstops/age_stats.csv
        data3: output/clockstops/procedures.csv
  
  check_no_admission:
   run: r:latest analysis/clockstops/check_no_admission.R
   needs: [final_cohort_exclusions]
   outputs:
      moderately_sensitive:
        data1: output/clockstops/check_no_admission.csv

  opioid_prescribing:
   run: r:latest analysis/clockstops/opioid_prescribing.R
   needs: [final_cohort_exclusions]
   outputs:
      moderately_sensitive:
        data1: output/clockstops/med_by_period.csv
        data2: output/clockstops/med_by_period_wait.csv
        #data3: output/clockstops/total_rx_wait.csv

  ######################################################################################

Timeline

  • Created:

  • Started:

  • Finished:

  • Runtime: 00:02:43

These timestamps are generated and stored using the UTC timezone on the TPP backend.

Job request

Status
Succeeded
Backend
TPP
Workspace
waiting-list
Requested by
Andrea Schaffer
Branch
main
Force run dependencies
No
Git commit hash
9603b0c
Requested actions
  • final_cohort_exclusions
  • frequency_tables_routine

Code comparison

Compare the code used in this job request