Skip to content

Job request: 4510

Organisation:
Bennett Institute
Workspace:
sro-measures
ID:
6jhdpt3msgz7otwu

This page shows the technical details of what happened when the authorised researcher Louis Fisher 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

  • Action:
    generate_study_population_1
    Status:
    Succeeded
    Job identifier:
    adofh5szpiluo6zk
  • Action:
    generate_study_population_3
    Status:
    Succeeded
    Job identifier:
    6h4kw5ee4c455ill
  • Action:
    generate_study_population_2
    Status:
    Succeeded
    Job identifier:
    ksat6lm7mfxtqubx
  • Action:
    generate_study_population_ethnicity
    Status:
    Succeeded
    Job identifier:
    y5qkurcbkruphr4r
  • Action:
    join_ethnicity
    Status:
    Succeeded
    Job identifier:
    wdsrduyfnq6dj4wf
  • Action:
    get_patient_count
    Status:
    Succeeded
    Job identifier:
    cht3mkjgb2rnpqtp
  • Action:
    get_population_count
    Status:
    Succeeded
    Job identifier:
    4o5sxca3i2fveto6
  • Action:
    generate_measures
    Status:
    Succeeded
    Job identifier:
    fuqhr7h5h2bs4d5c
  • Action:
    get_practice_count
    Status:
    Succeeded
    Job identifier:
    atfhuwkecdfpn6l3
  • Action:
    generate_measures_cleaned
    Status:
    Succeeded
    Job identifier:
    4jjft4kw62ttunp3
  • Action:
    generate_notebook
    Status:
    Succeeded
    Job identifier:
    wx6yijyi6o45bw53

Pipeline

Show project.yaml
version: '3.0'

expectations:
  population_size: 1000
   
    
actions:

  generate_study_population_1:
    run: cohortextractor:latest generate_cohort --study-definition study_definition --index-date-range "2019-01-01 to 2019-11-01 by month" --output-dir=output --output-format=feather
    outputs:
      highly_sensitive:
        cohort: output/input_*.feather

  generate_study_population_2:
    run: cohortextractor:latest generate_cohort --study-definition study_definition --index-date-range "2019-12-01 to 2020-10-01 by month" --output-dir=output --output-format=feather
    outputs:
      highly_sensitive:
        cohort: output/input*.feather

  generate_study_population_3:
    run: cohortextractor:latest generate_cohort --study-definition study_definition --index-date-range "2020-11-01 to 2021-10-01 by month" --output-dir=output --output-format=feather
    outputs:
      highly_sensitive:
        cohort: output/inpu*.feather
        
  get_patient_count:
    run: python:latest python analysis/get_patients_counts.py
    needs: [generate_study_population_1, generate_study_population_2, generate_study_population_3]
    outputs:
      moderately_sensitive:
        text: output/patient_count.json
        

  generate_study_population_ethnicity:
    run: cohortextractor:latest generate_cohort --study-definition study_definition_ethnicity --output-dir=output --output-format=feather
    outputs:
      highly_sensitive:
        cohort: output/input_ethnicity.feather

  join_ethnicity:
    run: python:latest python analysis/join_ethnicity.py
    needs: [generate_study_population_1, generate_study_population_2, generate_study_population_3, generate_study_population_ethnicity]
    outputs:
      highly_sensitive:
        cohort: output/inp*.feather

 
        
  get_practice_count:
    run: python:latest python analysis/get_practice_count.py
    needs: [join_ethnicity]
    outputs:
      moderately_sensitive:
        text: output/practice_count.json
        
  generate_measures:
    run: cohortextractor:latest generate_measures --study-definition study_definition --output-dir=output
    needs: [join_ethnicity]
    outputs:
        moderately_sensitive:
          measure_csv: output/measure_*_rate.csv

  generate_measures_cleaned:
    run: python:latest python analysis/clean_measures.py
    needs: [generate_measures]
    outputs:
        moderately_sensitive:
          measure_csv: output/measure_cleaned_*.csv
          

  generate_measures_demographics:
    run: python:latest python analysis/calculate_measures.py
    needs: [join_ethnicity]
    outputs:
      moderately_sensitive:
        measure: output/combined_measure_*.csv
    
  
  generate_notebook:
    run: jupyter:latest jupyter nbconvert /workspace/analysis/sentinel_measures.ipynb --execute --to html --template basic --output-dir=/workspace/output --ExecutePreprocessor.timeout=86400 --no-input
    needs: [generate_measures, get_practice_count, get_patient_count]
    outputs:
      moderately_sensitive:
        notebook: output/sentinel_measures.html
        subplots: output/sentinel_measures_subplots.png
  

  generate_notebook_demographics:
    run: jupyter:latest jupyter nbconvert /workspace/analysis/sentinel_measures_demographics.ipynb --execute --to html --template basic --output-dir=/workspace/output --ExecutePreprocessor.timeout=86400 --no-input
    needs: [generate_measures, generate_measures_demographics]
    outputs:
      moderately_sensitive:
        notebook: output/sentinel_measures_demographics.html

  get_population_count:
    run: python:latest python analysis/population_counts.py
    needs: [join_ethnicity]
    outputs:
      moderately_sensitive:
        text: output/*_count.csv

  demographic_changes:
    run: python:latest python analysis/demographic_change.py
    needs: [generate_measures_demographics]
    outputs:
      moderately_sensitive:
        csv: output/demographics_differences.csv
        csv_sorted: output/demographics_differences_sorted.csv
        

#   run_tests:
#     run: python:latest python -m pytest --junit-xml=output/pytest.xml --verbose
#     outputs:
#       moderately_sensitive:
#         log: output/pytest.xml

Timeline

  • Created:

  • Started:

  • Finished:

  • Runtime: 37:36:57

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

Job request

Status
Succeeded
Backend
TPP
Workspace
sro-measures
Requested by
Louis Fisher
Branch
master
Force run dependencies
No
Git commit hash
b65d1e3
Requested actions
  • generate_study_population_1
  • generate_study_population_2
  • generate_study_population_3
  • get_patient_count
  • generate_study_population_ethnicity
  • join_ethnicity
  • get_practice_count
  • generate_measures
  • generate_measures_cleaned
  • generate_notebook
  • get_population_count

Code comparison

Compare the code used in this job request