Skip to content

Job request: 14561

Organisation:
DataLab
Workspace:
strepa_scarlet
ID:
julhi3tdcyocgffa

This page shows the technical details of what happened when authorised researcher Christine Cunningham requested one or more actions to be run against real patient data in the project, within a secure environment.

By cross-referencing the indicated Requested Actions with the Pipeline section below, you can infer what security level various outputs were written to. Outputs marked as highly_sensitive can never be viewed directly by a researcher; 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:
  generate_study_population_report_ethnicity:
    run: cohortextractor:latest generate_cohort 
      --study-definition study_definition_ethnicity_report --output-dir output/report --output-format=csv.gz
    outputs:
      highly_sensitive:
        cohort: output/report/input_ethnicity_report.csv.gz

  ### Curation check ###
  curation_monthly:
    run: cohortextractor:latest generate_cohort
      --study-definition study_definition_report
      --index-date-range "2019-01-01 to 2019-01-01 by month"
      --param frequency=monthly
      --output-dir=output/curation
      --output-format=csv.gz
    outputs:
      highly_sensitive:
        cohort: output/curation/input_report_2019-01-01.csv.gz

  dataset_report_monthly:
      run: python:latest python analysis/dataset_report.py
           --input-files output/curation/input_report_2019-01-01.csv.gz
           --output-dir output/curation/
           --granularity "year"
      needs: [curation_monthly]
      outputs:
        moderately_sensitive:
          # Only output the single summary file
          cohort_report: output/curation/input_report_2019-01-01.html

  curation_weekly:
    run: cohortextractor:latest generate_cohort
      --study-definition study_definition_report
      --index-date-range "2022-07-01 to 2022-07-01 by week"
      --param frequency=weekly
      --output-dir=output/curation
      --output-format=csv.gz
    outputs:
      highly_sensitive:
        cohort: output/curation/input_report_2022-07-01.csv.gz

  dataset_report_weekly:
      run: python:latest python analysis/dataset_report.py
           --input-files output/curation/input_report_2022-07-01.csv.gz
           --output-dir output/curation/
           --granularity "day"
      needs: [curation_weekly]
      outputs:
        moderately_sensitive:
          # Only output the single summary file
          cohort_report: output/curation/input_report_2022-07-01.html
  ### End curation check ###

  ### MONTHLY ###
  generate_study_population_report_monthly_1:
    run: cohortextractor:latest generate_cohort
      --study-definition study_definition_report
      --index-date-range "2019-01-01 to 2019-12-01 by month"
      --param frequency=monthly
      --output-dir=output/report
      --output-format=csv.gz
    outputs:
      highly_sensitive:
        cohort: output/report/input_*-01.csv.gz

  generate_study_population_report_monthly_2:
    run: cohortextractor:latest generate_cohort
      --study-definition study_definition_report
      --index-date-range "2020-01-01 to 2020-12-01 by month"
      --param frequency=monthly
      --output-dir=output/report
      --output-format=csv.gz
    outputs:
      highly_sensitive:
        cohort: output/report/input*-01.csv.gz
  
  generate_study_population_report_monthly_3:
    run: cohortextractor:latest generate_cohort
      --study-definition study_definition_report
      --index-date-range "2021-01-01 to 2021-12-01 by month"
      --param frequency=monthly
      --output-dir=output/report
      --output-format=csv.gz
    outputs:
      highly_sensitive:
        cohort: output/report/inpu*-01.csv.gz

  generate_study_population_report_monthly_4:
    run: cohortextractor:latest generate_cohort
      --study-definition study_definition_report
      --index-date-range "2022-01-01 to 2022-12-01 by month"
      --param frequency=monthly
      --output-dir=output/report
      --output-format=csv.gz
    outputs:
      highly_sensitive:
        cohort: output/report/inp*-01.csv.gz

  join_cohorts_report:
    run: >
      cohort-joiner:v0.0.38
        --lhs output/report/input_report_20*.csv.gz
        --rhs output/report/input_ethnicity_report.csv.gz
        --output-dir output/report/joined
    needs: [
      generate_study_population_report_monthly_1, 
      generate_study_population_report_monthly_2,
      generate_study_population_report_monthly_3,
      generate_study_population_report_monthly_4,
      generate_study_population_report_ethnicity]
    outputs:
      highly_sensitive:
        cohort: output/report/joined/input_report_20*.csv.gz

  generate_measures_report:
    run: cohortextractor:latest generate_measures --study-definition study_definition_report --output-dir=output/report/joined
    needs: [join_cohorts_report]
    outputs:
      moderately_sensitive:
        measure_csv: output/report/joined/measure_event_*_rate.csv

  join_measures:
      run: python:latest python analysis/join_and_round.py
           --input-files output/report/joined/measure_*_rate.csv
           --output-dir output/report/results
           --output-name "measure_all.csv"
      needs: [generate_measures_report]
      outputs:
        moderately_sensitive:
          # Only output the single summary file
          measure_csv: output/report/results/measure_all.csv

  top_5_table_report:
    run: >
      python:latest python analysis/report/top_5_report.py
      --input-file output/report/results/measure_all.csv
      --output-dir output/report/results
    needs: [join_measures]
    outputs:
      moderately_sensitive:
        tables: output/report/results/top_5*.csv

  plot_measure_report:
    run: >
      python:latest python analysis/report/plot_measures_report.py
      --measure-path output/report/results/measure_all.csv
      --output-dir output/report/results
    needs: [join_measures]
    outputs:
      moderately_sensitive:
        measure: output/report/results/*measures*.jpeg

  panel_plots_any:
    run: >
      python:latest python analysis/report/panel_plots.py
      --input-file output/report/results/measure_all.csv
      --measures-pattern "event_medication_any*_rate"
      --output-dir output/report/results
      --output-name "medication_any_prescribing_by_subgroup"
      --scale "rate"
      --first "medication_event_any_rate"
    needs: [join_measures]
    outputs:
      moderately_sensitive:
        measure: output/report/results/medication_any_prescribing_by_subgroup.png

  panel_plots_amox:
    run: >
      python:latest python analysis/report/panel_plots.py
      --input-file output/report/results/measure_all.csv
      --measures-pattern "event_amoxicillin*_rate"
      --output-dir output/report/results
      --output-name "amoxicillin_prescribing_by_subgroup"
      --scale "rate"
      --first "event_amoxicillin_rate"
    needs: [join_measures]
    outputs:
      moderately_sensitive:
        measure: output/report/results/amoxicillin_prescribing_by_subgroup.png

  panel_plots_azithro:
    run: >
      python:latest python analysis/report/panel_plots.py
      --input-file output/report/results/measure_all.csv
      --measures-pattern "event_azithromycin*_rate"
      --output-dir output/report/results
      --output-name "azithromycin_prescribing_by_subgroup"
      --scale "rate"
      --first "event_azithromycin_rate"
    needs: [join_measures]
    outputs:
      moderately_sensitive:
        measure: output/report/results/azithromycin_prescribing_by_subgroup.png

  panel_plots_clarithro:
    run: >
      python:latest python analysis/report/panel_plots.py
      --input-file output/report/results/measure_all.csv
      --measures-pattern "event_clarithromycin*_rate"
      --output-dir output/report/results
      --output-name "clarithromycin_prescribing_by_subgroup"
      --scale "rate"
      --first "event_clarithromycin_rate"
    needs: [join_measures]
    outputs:
      moderately_sensitive:
        measure: output/report/results/clarithromycin_prescribing_by_subgroup.png

  panel_plots_pheno:
    run: >
      python:latest python analysis/report/panel_plots.py
      --input-file output/report/results/measure_all.csv
      --measures-pattern "event_phenoxymethypenicillin*_rate"
      --output-dir output/report/results
      --output-name "phenoxymethypenicillin_prescribing_by_subgroup"
      --scale "rate"
      --first "event_phenoxymethypenicillin_rate"
    needs: [join_measures]
    outputs:
      moderately_sensitive:
        measure: output/report/results/phenoxymethypenicillin_prescribing_by_subgroup.png

  panel_plots_erythro:
    run: >
      python:latest python analysis/report/panel_plots.py
      --input-file output/report/results/measure_all.csv
      --measures-pattern "event_erythromycin*_rate"
      --output-dir output/report/results
      --output-name "erythromycin_prescribing_by_subgroup"
      --scale "rate"
      --first "event_erythromycin_rate"
    needs: [join_measures]
    outputs:
      moderately_sensitive:
        measure: output/report/results/erythromycin_prescribing_by_subgroup.png

  panel_plots_scarlet:
    run: >
      python:latest python analysis/report/panel_plots.py
      --input-file output/report/results/measure_all.csv
      --measures-pattern "event_scarlet_fever*_rate"
      --output-dir output/report/results
      --output-name "scarlet_fever_diagnoses_by_subgroup"
      --scale "rate"
      --first "event_scarlet_fever_rate"
    needs: [join_measures]
    outputs:
      moderately_sensitive:
        measure: output/report/results/scarlet_fever_diagnoses_by_subgroup.png

  panel_plots_strp:
    run: >
      python:latest python analysis/report/panel_plots.py
      --input-file output/report/results/measure_all.csv
      --measures-pattern "event_strep_a_sore_throat*_rate"
      --output-dir output/report/results
      --output-name "strep_a_sore_throat_diagnoses_by_subgroup"
      --scale "rate"
      --first "event_strep_a_sore_throat_rate"
    needs: [join_measures]
    outputs:
      moderately_sensitive:
        measure: output/report/results/strep_a_sore_throat_diagnoses_by_subgroup.png

  panel_plots_igas:
    run: >
      python:latest python analysis/report/panel_plots.py
      --input-file output/report/results/measure_all.csv
      --measures-pattern "event_invasive_strep_a*_rate"
      --output-dir output/report/results
      --output-name "invasive_strep_a_diagnoses_by_subgroup"
      --scale "rate"
      --first "event_invasive_strep_a_rate"
    needs: [join_measures]
    outputs:
      moderately_sensitive:
        measure: output/report/results/invasive_strep_a_diagnoses_by_subgroup.png

  event_counts_report:
    run: >
      python:latest python analysis/report/event_counts.py --input-dir="output/report/joined/" --output-dir="output/report/results" --measures="amoxicillin,azithromycin,clarithromycin,erythromycin,phenoxymethypenicillin,scarlet_fever,strep_a_sore_throat,invasive_strep_a"
    needs: [join_cohorts_report]
    outputs:
      moderately_sensitive:
        measure: output/report/results/event_counts_*.json


### WEEKLY ###
  generate_study_population_report_weekly_1:
    run: cohortextractor:latest generate_cohort
      --study-definition study_definition_report
      --index-date-range "2022-09-01 to 2022-11-04 by week"
      --param frequency=weekly
      --output-dir=output/report/weekly
      --output-format=csv.gz
    outputs:
      highly_sensitive:
        cohort: output/report/weekly/input_*.csv.gz

  generate_study_population_report_weekly_2:
    run: cohortextractor:latest generate_cohort
      --study-definition study_definition_report
      --index-date-range "2022-11-11 to 2023-01-08 by week"
      --param frequency=weekly
      --output-dir=output/report/weekly
      --output-format=csv.gz
    outputs:
      highly_sensitive:
        cohort: output/report/weekly/input*.csv.gz

  join_cohorts_report_weekly:
    run: >
      cohort-joiner:v0.0.38
        --lhs output/report/weekly/input_report_20*.csv.gz
        --rhs output/report/input_ethnicity_report.csv.gz
        --output-dir output/report/weekly/joined
    needs: [generate_study_population_report_weekly_1, generate_study_population_report_weekly_2, generate_study_population_report_ethnicity]
    outputs:
      highly_sensitive:
        cohort: output/report/weekly/joined/input_report_20*.csv.gz

  generate_measures_report_weekly:
    run: cohortextractor:latest generate_measures --study-definition study_definition_report --output-dir=output/report/weekly/joined
    needs: [join_cohorts_report_weekly]
    outputs:
      moderately_sensitive:
        measure_csv: output/report/weekly/joined/measure_event_*_rate.csv

  join_measures_weekly:
      run: python:latest python analysis/join_and_round.py
           --input-files output/report/weekly/joined/measure_*_rate.csv
           --output-dir output/report/weekly/results
           --output-name "measure_weekly.csv"
      needs: [generate_measures_report_weekly]
      outputs:
        moderately_sensitive:
          # Only output the single summary file
          measure_csv: output/report/weekly/results/measure_weekly.csv

  top_5_table_report_weekly:
    run: >
      python:latest python analysis/report/top_5_report.py
      --input-file output/report/weekly/results/measure_weekly.csv
      --output-dir output/report/weekly/results
    needs: [join_measures_weekly]
    outputs:
      moderately_sensitive:
        tables: output/report/weekly/results/top_5*.csv

  plot_measure_report_weekly:
    run: >
      python:latest python analysis/report/plot_measures_report.py
      --measure-path output/report/weekly/results/measure_weekly.csv
      --output-dir output/report/weekly/results
    needs: [join_measures_weekly]
    outputs:
      moderately_sensitive:
        measure: output/report/weekly/results/*measures*.jpeg

  panel_plots_any_weekly:
    run: >
      python:latest python analysis/report/panel_plots.py
      --input-file output/report/weekly/results/measure_weekly.csv
      --measures-pattern "event_medication_any*_rate"
      --output-dir output/report/weekly/results
      --output-name "medication_any_prescribing_by_subgroup"
      --scale "rate"
      --first "event_medication_any_rate"
    needs: [join_measures_weekly]
    outputs:
      moderately_sensitive:
        measure: output/report/weekly/results/medication_any_prescribing_by_subgroup.png

  panel_plots_amox_weekly:
    run: >
      python:latest python analysis/report/panel_plots.py
      --input-file output/report/weekly/results/measure_weekly.csv
      --measures-pattern "event_amoxicillin*_rate"
      --output-dir output/report/weekly/results
      --output-name "amoxicillin_prescribing_by_subgroup"
      --scale "rate"
      --first "event_amoxicillin_rate"
    needs: [join_measures_weekly]
    outputs:
      moderately_sensitive:
        measure: output/report/weekly/results/amoxicillin_prescribing_by_subgroup.png

  panel_plots_azithro_weekly:
    run: >
      python:latest python analysis/report/panel_plots.py
      --input-file output/report/weekly/results/measure_weekly.csv
      --measures-pattern "event_azithromycin*_rate"
      --output-dir output/report/weekly/results
      --output-name "azithromycin_prescribing_by_subgroup"
      --scale "rate"
      --first "event_azithromycin_rate"
    needs: [join_measures_weekly]
    outputs:
      moderately_sensitive:
        measure: output/report/weekly/results/azithromycin_prescribing_by_subgroup.png

  panel_plots_clarithro_weekly:
    run: >
      python:latest python analysis/report/panel_plots.py
      --input-file output/report/weekly/results/measure_weekly.csv
      --measures-pattern "event_clarithromycin*_rate"
      --output-dir output/report/weekly/results
      --output-name "clarithromycin_prescribing_by_subgroup"
      --scale "rate"
      --first "event_clarithromycin_rate"
    needs: [join_measures_weekly]
    outputs:
      moderately_sensitive:
        measure: output/report/weekly/results/clarithromycin_prescribing_by_subgroup.png

  panel_plots_pheno_weekly:
    run: >
      python:latest python analysis/report/panel_plots.py
      --input-file output/report/weekly/results/measure_weekly.csv
      --measures-pattern "event_phenoxymethypenicillin*_rate"
      --output-dir output/report/weekly/results
      --output-name "phenoxymethypenicillin_prescribing_by_subgroup"
      --scale "rate"
      --first "event_phenoxymethypenicillin_rate"
    needs: [join_measures_weekly]
    outputs:
      moderately_sensitive:
        measure: output/report/weekly/results/phenoxymethypenicillin_prescribing_by_subgroup.png

  panel_plots_erythro_weekly:
    run: >
      python:latest python analysis/report/panel_plots.py
      --input-file output/report/weekly/results/measure_weekly.csv
      --measures-pattern "event_erythromycin*_rate"
      --output-dir output/report/weekly/results
      --output-name "erythromycin_prescribing_by_subgroup"
      --scale "rate"
      --first "event_erythromycin_rate"
    needs: [join_measures_weekly]
    outputs:
      moderately_sensitive:
        measure: output/report/weekly/results/erythromycin_prescribing_by_subgroup.png

  panel_plots_scarlet_weekly:
    run: >
      python:latest python analysis/report/panel_plots.py
      --input-file output/report/weekly/results/measure_weekly.csv
      --measures-pattern "event_scarlet_fever*_rate"
      --output-dir output/report/weekly/results
      --output-name "scarlet_fever_diagnoses_by_subgroup"
      --scale "rate"
      --first "event_scarlet_fever_rate"
    needs: [join_measures_weekly]
    outputs:
      moderately_sensitive:
        measure: output/report/weekly/results/scarlet_fever_diagnoses_by_subgroup.png

  panel_plots_strp_weekly:
    run: >
      python:latest python analysis/report/panel_plots.py
      --input-file output/report/weekly/results/measure_weekly.csv
      --measures-pattern "event_strep_a_sore_throat*_rate"
      --output-dir output/report/weekly/results
      --output-name "strep_a_sore_throat_diagnoses_by_subgroup"
      --scale "rate"
      --first "event_strep_a_sore_throat_rate"
    needs: [join_measures_weekly]
    outputs:
      moderately_sensitive:
        measure: output/report/weekly/results/strep_a_sore_throat_diagnoses_by_subgroup.png

  panel_plots_igas_weekly:
    run: >
      python:latest python analysis/report/panel_plots.py
      --input-file output/report/weekly/results/measure_weekly.csv
      --measures-pattern "event_invasive_strep_a*_rate"
      --output-dir output/report/weekly/results
      --output-name "invasive_strep_a_diagnoses_by_subgroup"
      --scale "rate"
      --first "event_invasive_strep_a_rate"
    needs: [join_measures_weekly]
    outputs:
      moderately_sensitive:
        measure: output/report/weekly/results/invasive_strep_a_diagnoses_by_subgroup.png

  # create_notebook:
  #   run: python:latest python analysis/report/create_notebook.py
  #   outputs:
  #     moderately_sensitive:
  #       notebook: output/report/report.ipynb

  # generate_notebook:
  #   run: jupyter:latest jupyter nbconvert /workspace/output/report/report.ipynb --execute --to html --output-dir=/workspace/output/report --ExecutePreprocessor.timeout=86400 --no-input
  #   needs: [create_notebook, event_counts_report, deciles_chart_report, top_5_table_report, plot_measure_report]
  #   outputs:
  #     moderately_sensitive:
  #       notebook: output/report/report.html

Timeline

  • Created:

  • Started:

  • Finished:

  • Runtime: 170:56:01

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

Job information

Status
Succeeded
Backend
TPP
Workspace
strepa_scarlet
Requested by
Christine Cunningham
Branch
main
Force run dependencies
Yes
Git commit hash
5876cf2
Requested actions
  • generate_study_population_report_ethnicity
  • generate_study_population_report_monthly_1
  • generate_study_population_report_monthly_2
  • generate_study_population_report_monthly_3
  • generate_study_population_report_monthly_4
  • join_cohorts_report
  • generate_measures_report
  • join_measures
  • top_5_table_report
  • plot_measure_report
  • panel_plots_any
  • panel_plots_amox
  • panel_plots_azithro
  • panel_plots_clarithro
  • panel_plots_pheno
  • panel_plots_erythro
  • panel_plots_scarlet
  • panel_plots_strp
  • panel_plots_igas
  • event_counts_report
  • generate_study_population_report_weekly_1
  • generate_study_population_report_weekly_2
  • join_cohorts_report_weekly
  • generate_measures_report_weekly
  • join_measures_weekly
  • top_5_table_report_weekly
  • plot_measure_report_weekly
  • panel_plots_any_weekly
  • panel_plots_amox_weekly
  • panel_plots_azithro_weekly
  • panel_plots_clarithro_weekly
  • panel_plots_pheno_weekly
  • panel_plots_erythro_weekly
  • panel_plots_scarlet_weekly
  • panel_plots_strp_weekly
  • panel_plots_igas_weekly