From f33744a233476570f6ae64e23a8387a945f69bee Mon Sep 17 00:00:00 2001 From: Jaidip Gill <78973716+JaidipGill@users.noreply.github.com> Date: Fri, 23 Aug 2024 09:47:11 +0000 Subject: [PATCH 1/3] fix: Correcting dataset definition rule --- analysis/dep_reg_dataset.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/analysis/dep_reg_dataset.py b/analysis/dep_reg_dataset.py index 95bba39..7e117c0 100644 --- a/analysis/dep_reg_dataset.py +++ b/analysis/dep_reg_dataset.py @@ -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) From 36ef70e64f9fddca026bef33227d319a49e536aa Mon Sep 17 00:00:00 2001 From: Jaidip Gill <78973716+JaidipGill@users.noreply.github.com> Date: Fri, 23 Aug 2024 09:47:41 +0000 Subject: [PATCH 2/3] Adding basic test file for depression definition --- analysis/test_dep_reg_dataset.py | 66 ++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 analysis/test_dep_reg_dataset.py diff --git a/analysis/test_dep_reg_dataset.py b/analysis/test_dep_reg_dataset.py new file mode 100644 index 0000000..036c693 --- /dev/null +++ b/analysis/test_dep_reg_dataset.py @@ -0,0 +1,66 @@ +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)}], + "patients": { + "date_of_birth": date(1990, 1, 1) + }, + "expected_in_population": True + } +} \ No newline at end of file From 16195b7067154cb30ce3ddcc9e92b6984c19a3c9 Mon Sep 17 00:00:00 2001 From: Jaidip Gill <78973716+JaidipGill@users.noreply.github.com> Date: Tue, 17 Sep 2024 14:57:46 +0000 Subject: [PATCH 3/3] Fixing snomed codes and adding yaml action --- analysis/dep_reg_dataset.py | 2 +- analysis/test_dep_reg_dataset.py | 25 ++++++++++++++++++------- project.yaml | 4 +++- 3 files changed, 22 insertions(+), 9 deletions(-) diff --git a/analysis/dep_reg_dataset.py b/analysis/dep_reg_dataset.py index 7e117c0..94b8a36 100644 --- a/analysis/dep_reg_dataset.py +++ b/analysis/dep_reg_dataset.py @@ -61,4 +61,4 @@ ) 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) diff --git a/analysis/test_dep_reg_dataset.py b/analysis/test_dep_reg_dataset.py index 036c693..a14da6d 100644 --- a/analysis/test_dep_reg_dataset.py +++ b/analysis/test_dep_reg_dataset.py @@ -8,7 +8,7 @@ "start_date": date(2010, 1, 1), }], "clinical_events": [{ - "snomedct_code": 104851000119103, + "snomedct_code": "104851000119103", "date": date(2005, 1, 1) }], "patients": { @@ -24,10 +24,10 @@ }], "clinical_events": [ { - "snomedct_code": 104851000119103, + "snomedct_code": "104851000119103", "date": date(2009, 1, 1)}, { - "snomedct_code": 196381000000100, + "snomedct_code": "196381000000100", "date": date(2010, 1, 1) }], "patients": { @@ -42,7 +42,7 @@ }], "clinical_events": [ { - "snomedct_code": 104851000119103, + "snomedct_code": "104851000119103", "date": date(2009, 1, 1)}], "patients": { "date_of_birth": date(2008, 1, 1) @@ -56,11 +56,22 @@ }], "clinical_events": [ { - "snomedct_code": 104851000119103, - "date": date(2009, 1, 1)}], + "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_in_population": True, + "expected_columns": { + "pat_age": 34, + "depr_dat": date(2009, 1, 1), + "depres_dat": date(2008, 1, 1) + } } } \ No newline at end of file diff --git a/project.yaml b/project.yaml index daac3bb..edd0fb9 100644 --- a/project.yaml +++ b/project.yaml @@ -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