From 3acee4f2b64266b0f7ca07fa189cc66708137e24 Mon Sep 17 00:00:00 2001 From: Zoe Zou Date: Tue, 22 Sep 2026 09:18:41 +0100 Subject: [PATCH 1/2] Update fn-exclude_zero_consultation.R Exclude practices with consultation rates <= 0.005 --- .../fn-exclude_zero_consultation.R | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/analysis/dataset_clean_sensitivity/fn-exclude_zero_consultation.R b/analysis/dataset_clean_sensitivity/fn-exclude_zero_consultation.R index 15d4682..373f994 100644 --- a/analysis/dataset_clean_sensitivity/fn-exclude_zero_consultation.R +++ b/analysis/dataset_clean_sensitivity/fn-exclude_zero_consultation.R @@ -15,7 +15,7 @@ exclude_zero_consultation <- function(input, flow) { # Filter out practices with zero consultation rates ---------------------------- input <- input %>% - filter(is.na(cons_mean) | cons_mean != 0) + filter(is.na(cons_mean) | cons_mean > 0.005) n_after <- n_distinct(input$practice_id) @@ -23,13 +23,13 @@ exclude_zero_consultation <- function(input, flow) { flow <- bind_rows( flow, data.frame( - Description = "Sensitivity analysis: exclude practices with average monthly consultation rates = 0", + Description = "Sensitivity analysis: exclude practices with average monthly consultation rates <= 0.005", N = n_after, stringsAsFactors = FALSE ) ) - message("Practices excluded with zero consultation rates: ", n_before - n_after) + message("Practices excluded with consultation rates <= 0.005: ", n_before - n_after) message("Practices remaining for sensitivity analysis: ", n_after) print(flow[nrow(flow), ]) From 0e2678ee679bec26b1755a2032850c058b3a574c Mon Sep 17 00:00:00 2001 From: Zoe Zou Date: Tue, 22 Sep 2026 16:12:09 +0100 Subject: [PATCH 2/2] Only include practices starting to use TPP 1year before Oct for each cohort --- analysis/dataset_definition/measures_cohorts.py | 2 +- .../dataset_definition/variables_longitudinal.py | 13 +++++++++---- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/analysis/dataset_definition/measures_cohorts.py b/analysis/dataset_definition/measures_cohorts.py index 113f483..75e1214 100644 --- a/analysis/dataset_definition/measures_cohorts.py +++ b/analysis/dataset_definition/measures_cohorts.py @@ -14,7 +14,7 @@ # Import longitudinal variables (focusing on time period) from variables_longitudinal import generate_variables - variables_dynamic = generate_variables(INTERVAL.start_date, INTERVAL.end_date) + variables_dynamic = generate_variables(INTERVAL.start_date, INTERVAL.end_date, start_cohort - months(12)) # Extract variables from the dictionary so they can be directly used globals().update(variables_dynamic) diff --git a/analysis/dataset_definition/variables_longitudinal.py b/analysis/dataset_definition/variables_longitudinal.py index 823ff6d..9f0917b 100644 --- a/analysis/dataset_definition/variables_longitudinal.py +++ b/analysis/dataset_definition/variables_longitudinal.py @@ -8,14 +8,19 @@ ) # Define generate variables function -def generate_variables(interval_start, interval_end): +def generate_variables(interval_start, interval_end, start_cohort): ## Inclusion/exclusion criteria------------------------------------------------------------------------- ### Registered throughout the study period (for longitudinal measures, i.e. consultation rate/hospital admission) - inex_bin_reg_long = (practice_registrations.spanning_with_systmone( + inex_bin_reg_long = ( + practice_registrations.spanning_with_systmone( interval_start, interval_end - )).exists_for_patient() - + ).where( + practice_registrations.practice_systmone_go_live_date <= start_cohort + ) + .exists_for_patient() + ) + ## Exposure--------------------------------------------------------------------------------------------- ### Consultation rate during follow-up of exposure