Skip to content

Job request: 21626

Organisation:
Bennett Institute
Workspace:
waiting-list
ID:
3ggqyawzt5ogsmfm

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: 1000

actions:

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

  # Closed (completed) RTT pathways
  generate_dataset_clockstops:
    run: ehrql:v1 generate-dataset analysis/dataset_definition_clockstops.py 
      --output output/data/dataset_clockstops.csv.gz
    outputs:
      highly_sensitive:
        cohort: output/data/dataset_clockstops.csv.gz  


  # Open (incomplete) RTT pathways
  # generate_dataset_openpathways:
  #   run: ehrql:v1 generate-dataset analysis/dataset_definition_openpathways.py 
  #     --output output/data/dataset_openpathways.csv.gz
  #   outputs:
  #     highly_sensitive:
  #       cohort: output/data/dataset_openpathways.csv.gz  

  #### Check missing end date ####
  generate_dataset_clockstops_missing:
    run: ehrql:v1 generate-dataset analysis/dataset_definition_clockstops_missing.py 
      --output output/data/dataset_clockstops_missing.csv.gz
    outputs:
      highly_sensitive:
        cohort: output/data/dataset_clockstops_missing.csv.gz  

  checks_missing_clockstops:
   run: r:latest analysis/clockstops/checks_missing_clockstops.R
   needs: [generate_dataset_clockstops_missing]
   outputs:
      moderately_sensitive:
        data: output/clockstops/check_missing_dates.csv 
  
  #### 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

  checks_overall_clockstops:
   run: r:latest analysis/clockstops/checks_overall_clockstops.R
   needs: [measures_checks]
   outputs:
      moderately_sensitive:
        data: output/clockstops/chec*.csv


  ##### Opioid measures - closed pathways #####

  measures_any_opioid:
    run: ehrql:v1 generate-measures analysis/measures_opioid.py 
      --output output/measures/measures_any_opioid.csv
      --
      --codelist "opioid_codes"
    outputs:
      moderately_sensitive:
        measure_csv: output/measures/measures_any_opioid.csv

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

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

  measures_strong_opioid:
    run: ehrql:v1 generate-measures analysis/measures_opioid.py 
      --output output/measures/measures_strong_opioid.csv
      --
      --codelist "strong_opioid_codes"
    outputs:
      moderately_sensitive:
        measure_csv: output/measures/measures_strong_opioid.csv
      
  measures_opioid_weeks_during:
    run: ehrql:v1 generate-measures analysis/measures_opioid_weeks_during.py 
      --output output/measures/measures_opioid_weeks_during.csv
      --dummy-data-file dummy/dummy_opioid_weeks_during.csv
    outputs:
      moderately_sensitive:
        measure_csv: output/measures/measures_opioid_weeks_during.csv

  measures_opioid_weeks_post:
    run: ehrql:v1 generate-measures analysis/measures_opioid_weeks_post.py 
      --output output/measures/measures_opioid_weeks_post.csv
      --dummy-data-file dummy/dummy_opioid_weeks_post.csv
    outputs:
      moderately_sensitive:
        measure_csv: output/measures/measures_opioid_weeks_post.csv

  opioids_by_week:
   run: r:latest analysis/clockstops/opioids_by_week.R
   needs: [measures_any_opioid, measures_weak_opioid, measures_strong_opioid, measures_long_opioid, measures_short_opioid]
   outputs:
      moderately_sensitive:
        data: output/clockstops/opioid*.csv
  
  opioids_by_week_group:
   run: r:latest analysis/clockstops/opioids_by_week_group.R
   needs: [measures_opioid_weeks_during, measures_opioid_weeks_post]
   outputs:
      moderately_sensitive:
        data: output/clockstops/opioid_by_week_group.csv
        plots: output/clockstops/opioid_by_week_group*.png
        
       
  ##### 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_clockstops:
   run: r:latest analysis/clockstops/final_cohort_clockstops.R
   needs: [generate_dataset_clockstops]
   outputs:
      highly_sensitive:
        cohort: output/data/cohort*.csv.gz
      moderately_sensitive:
        exclusion: output/clockstops/cohort_full_exclusions.csv
        
  # full_stats_clockstops:
  #  run: r:latest analysis/clockstops/full_stats_clockstops.R
  #  needs: [final_cohort_clockstops]
  #  outputs:
  #     moderately_sensitive:
  #       data1: output/clockstops/rtt_dates_full.csv
  #       data2: output/clockstops/cat_var_dist_full.csv
  #       data3: output/clockstops/wait_time_pcent_full.csv
  #       data4: output/clockstops/wait_time_full.csv
  #       data5: output/clockstops/med_by_period_full.csv
  #       data6: output/clockstops/wait_by_group_full.csv
  #       plot1: output/clockstops/wait_time_full.png
  #       plot2: output/clockstops/rtt_dates_full.png

  ortho_stats_clockstops_priority:
   run: r:latest analysis/clockstops/ortho_stats_clockstops_priority.R
   needs: [final_cohort_clockstops]
   outputs:
      moderately_sensitive:
        data0: output/clockstops/exclude_ortho.csv
        data1: output/clockstops/rtt_dates_ortho.csv
        data2: output/clockstops/cat_var_dist_ortho.csv
        data3: output/clockstops/wait_time_pcent_ortho.csv
        data4: output/clockstops/wait_time_ortho.csv
        data5: output/clockstops/med_by_period_ortho.csv
        data6: output/clockstops/wait_by_group_ortho.csv

  # ortho_opioid_clockstops:
  #   run: r:latest analysis/clockstops/ortho_opioid_clockstops.R
  #   needs: [final_cohort_clockstops]
  #   outputs:
  #     moderately_sensitive:
  #       data1: output/clockstops/cumulative_opi.csv
  #       plot1: output/clockstops/cumulative_opi.png


  ##### Analysis - open pathways #####

  # checks_cohort_openpathways:
  #  run: r:latest analysis/openpathways/checks_cohort_openpathways.R
  #  needs: [generate_dataset_openpathways]
  #  outputs:
  #     moderately_sensitive:
  #       data: output/openpathways/chec*.csv

  # final_cohort_openpathways:
  #  run: r:latest analysis/openpathways/final_cohort_openpathways.R
  #  needs: [generate_dataset_openpathways]
  #  outputs:
  #     highly_sensitive:
  #       cohort: output/data/cohor*.csv.gz

  # full_stats_openpathways:
  #  run: r:latest analysis/openpathways/full_stats_openpathways.R
  #  needs: [final_cohort_openpathways]
  #  outputs:
  #     moderately_sensitive:
  #       data1: output/openpathways/rtt_dates_full.csv
  #       data2: output/openpathways/cat_var_dist_full.csv
  #       data3: output/openpathways/wait_time_pcent_full.csv
  #       data4: output/openpathways/wait_time_full.csv
  #       data5: output/openpathways/wait_by_group_full.csv
  #       plot1: output/openpathways/wait_time_full.png
  #       plot2: output/openpathways/rtt_dates_full.png

  # ortho_stats_openpathways:
  #  run: r:latest analysis/openpathways/ortho_stats_openpathways.R
  #  needs: [final_cohort_openpathways]
  #  outputs:
  #     moderately_sensitive:
  #       data0: output/openpathways/exclude_ortho.csv
  #       data1: output/openpathways/rtt_dates_ortho.csv
  #       data2: output/openpathways/cat_var_dist_ortho.csv
  #       data3: output/openpathways/wait_time_pcent_ortho.csv
  #       data4: output/openpathways/wait_time_ortho.csv
  #       data5: output/openpathways/wait_by_group_ortho.csv
  #       plot1: output/openpathways/wait_time_ortho.png
  #       plot2: output/openpathways/rtt_dates_ortho.png

Timeline

  • Created:

  • Started:

  • Finished:

  • Runtime: 00:08:00

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
f859fb0
Requested actions
  • generate_dataset_clockstops_missing
  • checks_missing_clockstops

Code comparison

Compare the code used in this Job Request