Skip to content

Job request: 22213

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

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_clockstops:
    run: ehrql:v1 generate-dataset analysis/dataset_definition_clockstops.py 
      --output output/data/dataset_clockstops.csv.gz
      #--dummy-data-file dummy/dummy_ortho_clockstops.arrow
    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_stratified:
  #   run: ehrql:v1 generate-measures analysis/measures_opioid_stratified.py 
  #     --output output/measures/measures_opioid_stratified.csv
  #     --
  #     --codelist "opioid_codes"
  #   outputs:
  #     moderately_sensitive:
  #       measure_csv: output/measures/measures_opioid_stratified.csv

  # Combine measures
  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
  
  # 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_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:
        exclusions1: output/clockstops/cohort_full_exclusions.csv
        exclusions2: output/clockstops/exclude_ortho.csv
        
  ortho_clockstops_wait_time:
   run: r:latest analysis/clockstops/ortho_clockstops_wait_time.R
   needs: [final_cohort_clockstops]
   outputs:
      moderately_sensitive:
        data1: output/clockstops/rtt_dates_ortho.csv
        data2: output/clockstops/wait_time_pcent_ortho.csv
        data3: output/clockstops/wait_time_ortho.csv
        data4: output/clockstops/wait_by_group_ortho.csv

  ortho_clockstops_freq_dist:
   run: r:latest analysis/clockstops/ortho_clockstops_freq_dist.R
   needs: [final_cohort_clockstops]
   outputs:
      moderately_sensitive:
        data1: output/clockstops/cat_var_dist_ortho.csv
        data2: output/clockstops/cat_var_dist_ortho_prior.csv

  ortho_clockstops_prescribing:
   run: r:latest analysis/clockstops/ortho_clockstops_prescribing.R
   needs: [final_cohort_clockstops]
   outputs:
      moderately_sensitive:
        data1: output/clockstops/med_by_period_ortho.csv
       # data2: output/clockstops/meds_dist_ortho.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

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

Timeline

  • Created:

  • Started:

  • Finished:

  • Runtime: 00:40:29

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

Job request

Status
Failed
Backend
TPP
Workspace
waiting-list
Requested by
Andrea Schaffer
Branch
main
Force run dependencies
No
Git commit hash
5103081
Requested actions
  • ortho_clockstops_wait_time
  • ortho_clockstops_freq_dist
  • ortho_clockstops_prescribing

Code comparison

Compare the code used in this job request