Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 5 additions & 3 deletions analysis/dep_reg_dataset.py
Original file line number Diff line number Diff line change
Expand Up @@ -55,8 +55,10 @@
# Latest episode of depression is not followed by a depression resolved code.
# Must be aged 18 or over on the achievement date

dep1_reg_r1 = ((dataset.depr_dat.is_on_or_after(min_date))
& (dataset.depres_dat.is_null()))
dep1_reg_r1 = (
(dataset.depr_dat.is_on_or_after(min_date)) &
( (dataset.depres_dat.is_null()) | (dataset.depres_dat < dataset.depr_dat) )
)
dep2_reg_r2 = dataset.pat_age >= 18

dataset.define_population(has_registration & dep1_reg_r1 & dep2_reg_r2)
dataset.define_population(has_registration & dep1_reg_r1 &dep2_reg_r2)
77 changes: 77 additions & 0 deletions analysis/test_dep_reg_dataset.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
from datetime import date
from dep_reg_dataset import dataset

test_data = {
# Test rule 1: Patient excluded due to case before April 2006
1: {
"practice_registrations": [{
"start_date": date(2010, 1, 1),
}],
"clinical_events": [{
"snomedct_code": "104851000119103",
"date": date(2005, 1, 1)
}],
"patients": {
"date_of_birth": date(1950, 1, 1)
},
"expected_in_population": False,
},
# Test rule 2: Patients excluded due to depression resolved code
# after depression incident case
2: {
"practice_registrations": [{
"start_date": date(1950, 1, 1)
}],
"clinical_events": [
{
"snomedct_code": "104851000119103",
"date": date(2009, 1, 1)},
{
"snomedct_code": "196381000000100",
"date": date(2010, 1, 1)
}],
"patients": {
"date_of_birth": date(1950, 1, 1)
},
"expected_in_population": False
},
# Test rule 3: Patients excluded due to being under 18
3: {
"practice_registrations": [{
"start_date": date(1950, 1, 1)
}],
"clinical_events": [
{
"snomedct_code": "104851000119103",
"date": date(2009, 1, 1)}],
"patients": {
"date_of_birth": date(2008, 1, 1)
},
"expected_in_population": False
},
# Patient who passess all rules
4: {
"practice_registrations": [{
"start_date": date(1950, 1, 1)
}],
"clinical_events": [
{
"snomedct_code": "104851000119103",
"date": date(2009, 1, 1)
},
{
"snomedct_code": "196381000000100",
"date": date(2008, 1, 1)
}
],
"patients": {
"date_of_birth": date(1990, 1, 1)
},
"expected_in_population": True,
"expected_columns": {
"pat_age": 34,
"depr_dat": date(2009, 1, 1),
"depres_dat": date(2008, 1, 1)
}
}
}
4 changes: 3 additions & 1 deletion project.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,9 @@ actions:
highly_sensitive:
measure: output/dep/dep_jaidip.csv.gz
generate_dep_reg_dataset:
run: ehrql:v1 generate-dataset analysis/dep_reg_dataset.py --output output/dep/dep_reg_dataset.csv.gz
run: ehrql:v1 generate-dataset analysis/dep_reg_dataset.py
--output output/dep/dep_reg_dataset.csv.gz
--test-data-file analysis/test_dep_reg_dataset.py
outputs:
highly_sensitive:
dataset: output/dep/dep_reg_dataset.csv.gz