Skip to content

Job request: 21794

Organisation:
Bennett Institute
Workspace:
waiting-list
ID:
5pf2n55h7rdi6wg4

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

  # 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

  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

  # 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:00:48

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
6467662
Requested actions
  • ortho_clockstops_prescribing

Code comparison

Compare the code used in this Job Request