Skip to content

Job request: 23294

Organisation:
Bennett Institute
Workspace:
waiting-list
ID:
4fnwq7zpn4l6wk2d

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 in the project, within a secure environment.

By cross-referencing the list of jobs with the pipeline section below, you can infer what security level various outputs were written to. Researchers can never directly view outputs marked as highly_sensitive ; they can only request that code runs against them. Outputs marked as moderately_sensitive can be viewed by an approved researcher by logging into a highly secure environment. Only outputs marked as moderately_sensitive can be requested for release to the public, 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:04:08

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

Job information

Status
Succeeded
Backend
TPP
Workspace
waiting-list
Requested by
Andrea Schaffer
Branch
main
Force run dependencies
No
Git commit hash
e021e85
Requested actions
  • opioid_prescribing

Code comparison

Compare the code used in this Job Request