Skip to content

Commit 67fcf1e

Browse files
committed
Add recurrent conditions to exclusions
1 parent b1b755b commit 67fcf1e

File tree

1 file changed

+25
-6
lines changed

1 file changed

+25
-6
lines changed

analysis/measures_definition_pf_codes_conditions.py

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,25 @@
110110
.date
111111
)
112112

113+
# Create function to count number of diagnosis of a condition, and the length of time window
114+
def condition_history(condition_code, month):
115+
return (
116+
clinical_events.where(clinical_events.snomedct_code.is_in(condition_code))
117+
.where(clinical_events.date.is_on_or_between(INTERVAL.start_date - months(month), INTERVAL.start_date))
118+
.count_for_patient()
119+
)
120+
121+
# Call function to create variables which contain the number of repeated diagnoses
122+
urt_code = ["1090711000000102"]
123+
impetigo_code = ["48277006"]
124+
acute_sinusitis_code = ["15805002"]
125+
acute_otitis_code = ["3110003"]
126+
urt_6m = condition_history(urt_code, 6)
127+
urt_12m = condition_history(urt_code, 12)
128+
impetigo_12m = condition_history(impetigo_code, 12)
129+
acute_otitis_6m = condition_history(acute_otitis_code, 6)
130+
acute_otitis_12m = condition_history(acute_otitis_code, 12)
131+
113132
# Select clinical events in interval date range
114133
selected_events = clinical_events.where(
115134
clinical_events.date.is_on_or_between(INTERVAL.start_date, INTERVAL.end_date)
@@ -154,15 +173,15 @@
154173
intervals=months(monthly_intervals).starting_on(start_date),
155174
)
156175

157-
# Create denominator variables for each clinical condition based on NHS England rules using sex, age and pregnancy status
158-
# Exclusions have not been added to these rules yet
159-
denominator_uncomplicated_uti = (age>=16) & (age<=64) & patients.sex.is_in(["female"]) & pregnancy_status.is_null()
176+
# Create denominator variables for each clinical condition based on NHS England rules using sex, age, pregnancy status and repeated diagnoses
177+
# The following exclusions have not been added: urinary catheter for URT, bullous impetigo, chronic sinusitis and immunosuppressed individuals for acute sinusitis
178+
denominator_uncomplicated_uti = (age>=16) & (age<=64) & (patients.sex.is_in(["female"]) & pregnancy_status.is_null()) | (urt_6m<2) | (urt_12m<3)
160179
denominator_shingles = (age>=18) & pregnancy_status.is_null()
161-
denominator_impetigo = (age>=1) | (pregnancy_status.is_not_null() & (age>=16))
180+
denominator_impetigo = (age>=1) | (pregnancy_status.is_not_null() & (age>=16)) | (impetigo_12m<2)
162181
denominator_infected_insect_bites = (age>=1) | (pregnancy_status.is_not_null() & (age>=16))
163182
denominator_acute_sore_throat = (age>=5) | (pregnancy_status.is_not_null() & (age>=16))
164-
denominator_acute_sinusitis = ((age>=12) | (pregnancy_status.is_not_null() & (age>=16)))
165-
denominator_acute_otitis_media = (age>=1) & (age<=17) | (pregnancy_status.is_not_null() & (age>=16))
183+
denominator_acute_sinusitis = (age>=12) | (pregnancy_status.is_not_null() & (age>=16))
184+
denominator_acute_otitis_media = (age>=1) & (age<=17) | (pregnancy_status.is_not_null() & (age>=16)) |(acute_otitis_6m<3) | (acute_otitis_12m<4)
166185

167186
# Create dictionary for clinical condition denominators
168187
pf_condition_denominators = {

0 commit comments

Comments
 (0)