Skip to content

Commit b1b755b

Browse files
committed
Add pregnancy codelist and pregnancy rules to denominators
1 parent b71d105 commit b1b755b

File tree

5 files changed

+74
-10
lines changed

5 files changed

+74
-10
lines changed

analysis/codelists.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,10 @@
1313
column="snomedcode",
1414
category_column="Grouping_6",
1515
)
16+
17+
# Import pregnancy codelist
18+
pregnancy_codelist = codelist_from_csv(
19+
"codelists/nhsd-primary-care-domain-refsets-preg_cod.csv",
20+
column="code",
21+
category_column="term",
22+
)

analysis/measures_definition_pf_codes_conditions.py

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
addresses,
77
ethnicity_from_sus,
88
)
9-
from codelists import pharmacy_first_conditions_codelist, ethnicity_codelist
9+
from codelists import pharmacy_first_conditions_codelist, ethnicity_codelist, pregnancy_codelist
1010

1111
measures = create_measures()
1212
measures.configure_dummy_data(population_size=1000)
@@ -101,6 +101,15 @@
101101
otherwise="Missing",
102102
)
103103

104+
# Create variable which when not null, indicates patient is pregnant
105+
pregnancy_status = (
106+
clinical_events.where(clinical_events.snomedct_code.is_in(pregnancy_codelist))
107+
.where(clinical_events.date.is_on_or_between(INTERVAL.start_date, INTERVAL.end_date))
108+
.sort_by(clinical_events.date)
109+
.last_for_patient()
110+
.date
111+
)
112+
104113
# Select clinical events in interval date range
105114
selected_events = clinical_events.where(
106115
clinical_events.date.is_on_or_between(INTERVAL.start_date, INTERVAL.end_date)
@@ -145,15 +154,15 @@
145154
intervals=months(monthly_intervals).starting_on(start_date),
146155
)
147156

148-
# Create denominator variables for each clinical condition based on NHS England rules using sex and age
157+
# Create denominator variables for each clinical condition based on NHS England rules using sex, age and pregnancy status
149158
# Exclusions have not been added to these rules yet
150-
denominator_uncomplicated_uti = (age>=16) & (age<=64) & (patients.sex.is_in(["female"]))
151-
denominator_shingles = age>=18
152-
denominator_impetigo = age>=1
153-
denominator_infected_insect_bites = age>=1
154-
denominator_acute_sore_throat = age>=5
155-
denominator_acute_sinusitis = age>=12
156-
denominator_acute_otitis_media = (age>=1) & (age<=17)
159+
denominator_uncomplicated_uti = (age>=16) & (age<=64) & patients.sex.is_in(["female"]) & pregnancy_status.is_null()
160+
denominator_shingles = (age>=18) & pregnancy_status.is_null()
161+
denominator_impetigo = (age>=1) | (pregnancy_status.is_not_null() & (age>=16))
162+
denominator_infected_insect_bites = (age>=1) | (pregnancy_status.is_not_null() & (age>=16))
163+
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))
157166

158167
# Create dictionary for clinical condition denominators
159168
pf_condition_denominators = {

codelists/codelists.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,12 @@
1111
"url": "https://www.opencodelists.org/codelist/opensafely/ethnicity-snomed-0removed/2e641f61/",
1212
"downloaded_at": "2024-10-03 11:34:59.878387Z",
1313
"sha": "8b849b5b785d80306e488d0109640c8c1d2da01b"
14+
},
15+
"nhsd-primary-care-domain-refsets-preg_cod.csv": {
16+
"id": "nhsd-primary-care-domain-refsets/preg_cod/20200812",
17+
"url": "https://www.opencodelists.org/codelist/nhsd-primary-care-domain-refsets/preg_cod/20200812/",
18+
"downloaded_at": "2024-10-10 13:27:57.825804Z",
19+
"sha": "4a1cbc5c12ce8589030b376905ac47f5a68b2503"
1420
}
1521
}
1622
}

codelists/codelists.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
user/chriswood/pharmacy-first-clinical-pathway-conditions/7ec97762
2-
opensafely/ethnicity-snomed-0removed/2e641f61
2+
opensafely/ethnicity-snomed-0removed/2e641f61
3+
nhsd-primary-care-domain-refsets/preg_cod/20200812
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
code,term
2+
10231000132102,In-vitro fertilization pregnancy
3+
1109951000000101,Pregnancy insufficiently advanced for reliable antenatal screening
4+
1109971000000105,Pregnancy too advanced for reliable antenatal screening
5+
1148801000000108,Monochorionic monoamniotic triplet pregnancy
6+
1148811000000105,Trichorionic triamniotic triplet pregnancy
7+
1148821000000104,Dichorionic triamniotic triplet pregnancy
8+
1148841000000106,Dichorionic diamniotic triplet pregnancy
9+
1149411000000103,Monochorionic diamniotic triplet pregnancy
10+
1149421000000109,Monochorionic triamniotic triplet pregnancy
11+
134781000119106,High risk pregnancy due to recurrent miscarriage
12+
16356006,Multiple pregnancy
13+
169488004,Contraceptive intrauterine device failure - pregnant
14+
169501005,"Pregnant, diaphragm failure"
15+
169508004,"Pregnant, sheath failure"
16+
169560008,Pregnant - urine test confirms
17+
169561007,Pregnant - blood test confirms
18+
169562000,Pregnant - vaginal examination confirms
19+
169563005,Pregnant - on history
20+
169564004,Pregnant - on abdominal palpation
21+
169565003,Pregnant - planned
22+
169566002,Pregnancy unplanned but wanted
23+
237238006,Pregnancy with uncertain dates
24+
237239003,Low risk pregnancy
25+
276367008,Wanted pregnancy
26+
314204000,Early stage of pregnancy
27+
439311009,Intends to continue pregnancy
28+
444661007,High risk pregnancy due to history of preterm labor
29+
459166009,Dichorionic diamniotic twin pregnancy
30+
459167000,Monochorionic twin pregnancy
31+
459168005,Monochorionic diamniotic twin pregnancy
32+
459171002,Monochorionic monoamniotic twin pregnancy
33+
47200007,High risk pregnancy
34+
60810003,Quadruplet pregnancy
35+
64254006,Triplet pregnancy
36+
65147003,Twin pregnancy
37+
713575004,Dizygotic twin pregnancy
38+
713576003,Monozygotic twin pregnancy
39+
72957006,Diamniotic-monochorionic twins
40+
77386006,Pregnant
41+
80997009,Quintuplet pregnancy

0 commit comments

Comments
 (0)