Skip to content

Commit

Permalink
Run ruff format
Browse files Browse the repository at this point in the history
  • Loading branch information
milanwiedemann committed Jan 29, 2025
1 parent 78d2eb3 commit a9e9b5e
Show file tree
Hide file tree
Showing 8 changed files with 159 additions and 159 deletions.
5 changes: 3 additions & 2 deletions analysis/codelists.py
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,8 @@
# Community Pharmacy Pharmacy First Service
"pf_consultation_cp_service": pf_consultation_cp_service,
"pf_consultation_services_combined": pf_consultation_cp_minorillness
+ pf_consultation_service + pf_consultation_cp_service,
+ pf_consultation_service
+ pf_consultation_cp_service,
}

uti_code = ["1090711000000102"]
Expand All @@ -96,4 +97,4 @@
otitismedia_code = ["3110003"]
sorethroat_code = ["363746003"]
shingles_code = ["4740000"]
impetigo_code = ["48277006"]
impetigo_code = ["48277006"]
49 changes: 37 additions & 12 deletions analysis/dataset_definition_table1.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
get_numerator,
get_latest_ethnicity,
get_age_band,
get_imd
get_imd,
)
from pf_variables_library import select_events
import codelists
Expand All @@ -27,15 +27,21 @@
dataset = create_dataset()

registration = practice_registrations.for_patient_on(index_date)
selected_events = clinical_events.where(clinical_events.date.is_on_or_before(index_date))
selected_events = clinical_events.where(
clinical_events.date.is_on_or_before(index_date)
)

# Columns for demographics table
dataset.sex = patients.sex
dataset.age_band = get_age_band(patients, index_date)
dataset.region = registration.practice_nuts1_region_name
dataset.imd = get_imd(addresses, index_date)
dataset.ethnicity = get_latest_ethnicity(
index_date, selected_events, codelists.ethnicity_group16_codelist, ethnicity_from_sus, grouping=16
index_date,
selected_events,
codelists.ethnicity_group16_codelist,
ethnicity_from_sus,
grouping=16,
)


Expand Down Expand Up @@ -65,17 +71,36 @@
index_date, selected_events, codelists.pregnancy_codelist
)

dataset.uti_numerator = get_numerator(selected_events, codelists.uti_code, dataset.uti_denominator)
dataset.sinusitis_numerator = get_numerator(selected_events, codelists.sinusitis_code, dataset.sinusitis_denominator)
dataset.insectbite_numerator = get_numerator(selected_events, codelists.insectbite_code, dataset.insectbite_denominator)
dataset.otitismedia_numerator = get_numerator(selected_events, codelists.otitismedia_code, dataset.otitismedia_denominator)
dataset.sorethroat_numerator = get_numerator(selected_events, codelists.sorethroat_code, dataset.sorethroat_denominator)
dataset.shingles_numerator = get_numerator(selected_events, codelists.shingles_code, dataset.shingles_denominator)
dataset.impetigo_numerator = get_numerator(selected_events, codelists.impetigo_code, dataset.impetigo_denominator)
dataset.uti_numerator = get_numerator(
selected_events, codelists.uti_code, dataset.uti_denominator
)
dataset.sinusitis_numerator = get_numerator(
selected_events, codelists.sinusitis_code, dataset.sinusitis_denominator
)
dataset.insectbite_numerator = get_numerator(
selected_events, codelists.insectbite_code, dataset.insectbite_denominator
)
dataset.otitismedia_numerator = get_numerator(
selected_events, codelists.otitismedia_code, dataset.otitismedia_denominator
)
dataset.sorethroat_numerator = get_numerator(
selected_events, codelists.sorethroat_code, dataset.sorethroat_denominator
)
dataset.shingles_numerator = get_numerator(
selected_events, codelists.shingles_code, dataset.shingles_denominator
)
dataset.impetigo_numerator = get_numerator(
selected_events, codelists.impetigo_code, dataset.impetigo_denominator
)

pf_consultation_events = select_events(selected_events, codelist=codelists.pf_consultation_events_dict["pf_consultation_services_combined"])
pf_consultation_events = select_events(
selected_events,
codelist=codelists.pf_consultation_events_dict["pf_consultation_services_combined"],
)
has_pf_consultation = pf_consultation_events.exists_for_patient()

dataset.define_population(
registration.exists_for_patient() & patients.sex.is_in(["male", "female"]) & has_pf_consultation
registration.exists_for_patient()
& patients.sex.is_in(["male", "female"])
& has_pf_consultation
)
29 changes: 21 additions & 8 deletions analysis/measures_definition_pf_breakdown.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,10 @@

from pf_dataset import get_latest_ethnicity
from codelists import pf_consultation_events_dict
from config import start_date_measure_pf_breakdown, monthly_intervals_measure_pf_breakdown
from config import (
start_date_measure_pf_breakdown,
monthly_intervals_measure_pf_breakdown,
)
from pf_variables_library import select_events

measures = create_measures()
Expand Down Expand Up @@ -59,12 +62,15 @@
otherwise="Missing",
)

pharmacy_first_ids = select_events(clinical_events, codelist=pf_consultation_events_dict["pf_consultation_services_combined"]).consultation_id
pharmacy_first_ids = select_events(
clinical_events,
codelist=pf_consultation_events_dict["pf_consultation_services_combined"],
).consultation_id

# # Select clinical events in interval date range
selected_events = select_events(clinical_events, start_date=INTERVAL.start_date, end_date=INTERVAL.end_date).where(
clinical_events.consultation_id.is_in(pharmacy_first_ids)
)
selected_events = select_events(
clinical_events, start_date=INTERVAL.start_date, end_date=INTERVAL.end_date
).where(clinical_events.consultation_id.is_in(pharmacy_first_ids))

# Breakdown metrics to be produced as graphs
breakdown_metrics = {
Expand All @@ -75,11 +81,18 @@
"ethnicity": ethnicity_combined,
}

pf_consultation_events = select_events(selected_events, codelist=pf_consultation_events_dict["pf_consultation_services_combined"])
pf_consultation_events = select_events(
selected_events,
codelist=pf_consultation_events_dict["pf_consultation_services_combined"],
)
has_pf_consultation = pf_consultation_events.exists_for_patient()

# Define the denominator as the number of patients registered
denominator = registration.exists_for_patient() & patients.sex.is_in(["male", "female"]) & has_pf_consultation
denominator = (
registration.exists_for_patient()
& patients.sex.is_in(["male", "female"])
& has_pf_consultation
)

# Create measures for pharmacy first services
for pharmacy_first_event, codelist in pf_consultation_events_dict.items():
Expand Down Expand Up @@ -150,4 +163,4 @@
denominator=pf_condition_denominators[condition_name],
group_by={breakdown: variable},
intervals=months(monthly_intervals).starting_on(start_date),
)
)
25 changes: 16 additions & 9 deletions analysis/measures_definition_pf_condition_provider.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,10 @@
imd_quintile,
)
from codelists import pf_consultation_events_dict
from config import start_date_measure_condition_provider, monthly_intervals_measure_condition_provider
from config import (
start_date_measure_condition_provider,
monthly_intervals_measure_condition_provider,
)
from pf_variables_library import select_events

measures = create_measures()
Expand All @@ -20,10 +23,15 @@

registration = practice_registrations.for_patient_on(INTERVAL.end_date)

selected_events = select_events(clinical_events, start_date=INTERVAL.start_date, end_date=INTERVAL.end_date)
selected_events = select_events(
clinical_events, start_date=INTERVAL.start_date, end_date=INTERVAL.end_date
)

# Create variable which contains boolean values of whether pharmacy first event exists for patient
has_pharmacy_first = select_events(selected_events, codelist=pf_consultation_events_dict["pf_consultation_services_combined"]).exists_for_patient()
has_pharmacy_first = select_events(
selected_events,
codelist=pf_consultation_events_dict["pf_consultation_services_combined"],
).exists_for_patient()

for condition_name, condition_code in pharmacy_first_conditions_codes.items():
condition_events = selected_events.where(
Expand All @@ -32,16 +40,15 @@

# Define the numerator as the count of events for the condition
numerator = condition_events.count_for_patient()
denominator = registration.exists_for_patient() & patients.sex.is_in(["male", "female"])
denominator = registration.exists_for_patient() & patients.sex.is_in(
["male", "female"]
)

# Measures for overall clinical services graph
measures.define_measure(
name=f"count_{condition_name}_total",
numerator=numerator,
denominator=denominator,
group_by={
"pf_status": has_pharmacy_first,
"imd": imd_quintile
},
group_by={"pf_status": has_pharmacy_first, "imd": imd_quintile},
intervals=months(monthly_intervals).starting_on(start_date),
)
)
16 changes: 7 additions & 9 deletions analysis/measures_definition_pf_consultation_med_counts.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,21 +25,19 @@

# Select Pharmacy First events during interval date range
pharmacy_first_events = select_events(
clinical_events,
start_date=INTERVAL.start_date,
end_date=INTERVAL.end_date).where(
clinical_events.snomedct_code.is_in(
pf_consultation_events_dict["pf_consultation_services_combined"]
)
clinical_events, start_date=INTERVAL.start_date, end_date=INTERVAL.end_date
).where(
clinical_events.snomedct_code.is_in(
pf_consultation_events_dict["pf_consultation_services_combined"]
)
)

pharmacy_first_ids = pharmacy_first_events.consultation_id
has_pf_consultation = pharmacy_first_events.exists_for_patient()

# Select Pharmacy First consultations during interval date range
selected_medications = select_events(
medications,
start_date=INTERVAL.start_date, end_date=INTERVAL.end_date
medications, start_date=INTERVAL.start_date, end_date=INTERVAL.end_date
).where(medications.consultation_id.is_in(pharmacy_first_ids))

# First medication for each patient
Expand All @@ -62,7 +60,7 @@

measures.define_measure(
name="pf_medication_count",
numerator = first_selected_medication.is_not_null(),
numerator=first_selected_medication.is_not_null(),
denominator=denominator,
group_by={
"dmd_code": first_selected_medication,
Expand Down
24 changes: 12 additions & 12 deletions analysis/measures_definition_pf_medications.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,27 +20,29 @@
registration = practice_registrations.for_patient_on(INTERVAL.end_date)

# Select Pharmacy First consultations during interval date range
pharmacy_first_events = select_events(clinical_events, start_date=INTERVAL.start_date, end_date=INTERVAL.end_date).where(
clinical_events.snomedct_code.is_in(pf_consultation_events_dict["pf_consultation_services_combined"])
pharmacy_first_events = select_events(
clinical_events, start_date=INTERVAL.start_date, end_date=INTERVAL.end_date
).where(
clinical_events.snomedct_code.is_in(
pf_consultation_events_dict["pf_consultation_services_combined"]
)
)

pharmacy_first_ids = pharmacy_first_events.consultation_id
has_pf_consultation = pharmacy_first_events.exists_for_patient()

# Select medications prescribed with PF consultation ID
selected_medications = select_events(medications, start_date=INTERVAL.start_date, end_date=INTERVAL.end_date).where(
medications.consultation_id.is_in(pharmacy_first_ids)
)
selected_medications = select_events(
medications, start_date=INTERVAL.start_date, end_date=INTERVAL.end_date
).where(medications.consultation_id.is_in(pharmacy_first_ids))

# Select first medication for group_by argument in measures
first_selected_medication = (
selected_medications.sort_by(medications.date).first_for_patient().dmd_code
)

# Check if a medication is from our PF codelists
has_pharmacy_first_medication = first_selected_medication.is_in(
pf_med_codelist
)
# Check if a medication is from our PF codelists
has_pharmacy_first_medication = first_selected_medication.is_in(pf_med_codelist)

# Numerator, patients with a PF medication
# This allows me to count all (first) medications linked to a PF consultation
Expand All @@ -58,8 +60,6 @@
name="pf_medication_count",
numerator=has_pharmacy_first_medication,
denominator=denominator,
group_by={
"dmd_code": first_selected_medication
},
group_by={"dmd_code": first_selected_medication},
intervals=months(monthly_intervals).starting_on(start_date),
)
Loading

0 comments on commit a9e9b5e

Please sign in to comment.