7.3 Prepare diabetic kidney disease code dictionary
7.3.1 Define Keywords
Define inclusion keywords.
<- "chronic kidney|chronic renal|ckd|glomerul|kidney failure|renal failure|uraemi|uremi|nephropath|proteinuri|albuminuri|nephrotic|nephrosis|nephritic|renal manifestation|renal complication|end stage renal|end stage kidney|esrd" inclusion_keyword_patterns
Define inclusion keywords for case.
<- "stage 3|stage 4|stage 5|end stage|chronic renal failure|chronic kidney failure|chronic uraemia|G3|G4|G5|A3|diabetes|diabetic|persistent proteinur|persistent albuminur|persistent microalbuminur|persistent macroalbuminur|ns - nephrotic syndrome$|^nephrotic syndrome NOS$"
inclusion_keyword_patterns_case
<- c("Nephrotic syndrome") inclusion_keywords_case
Define exclusion keywords.
<- "nephritic factor|antibody|disease screening|rate testing|predicted stage|acute|induced by|metals|cadmium|lead|mercury|toxic|abortion|pregnancy|gestational|delivery|calculated by|^glomerular filtration rate$|nephropathy screen|invite|incipient|rate using|laboratory study|monitoring administration|Glomerular function test|benign|haemolytic|B12 deficiency|pyonephrosis|analgesic|Exercise|Adrenal|test strip|proteinuria negative|test urine sample" exclusion_keyword_patterns
7.3.2 Define codes
Import diabetic kidney disease code lists and define inclusion codes.
<- fread("raw_data/kd_code_lists/opensafely-kidney-transplant-2020-07-15.csv") %>%
ckd_codelist full_join(fread("raw_data/kd_code_lists/opensafely-dialysis-2020-07-16.csv")) %>%
full_join(fread("raw_data/kd_code_lists/opensafely-chronic-kidney-disease-2020-04-14.csv")) %>%
::rename(term_description = CTV3PreferredTermDesc) %>%
dplyr::rename(code = CTV3ID)
dplyr<- ckd_codelist$code inclusion_codes
7.3.3 Create diabetic kidney disease code dictionary
Create kidney disease dictionary.
<- full_dict %>%
kidney_disease_dict filter(grepl(inclusion_keyword_patterns,term_description, ignore.case = T) |
%in% inclusion_codes) %>%
code filter(!grepl(global_exclusion_keyword_patterns, term_description, ignore.case = T) &
!grepl(exclusion_keyword_patterns, term_description, ignore.case = T))
Filter to terms that actually appeared in the PC data to expedite review.
<- kidney_disease_dict %>%
kidney_disease_actual filter(code %in% terms_actual$code)
Generate kidney disease dictionary.
<- kidney_disease_actual %>%
kidney_disease_case_dict filter(grepl(inclusion_keyword_patterns_case,term_description,ignore.case = T)|
%in% inclusion_keywords_case) term_description
Review terms.
<- kidney_disease_case_dict %>%
kidney_disease_case_review distinct(code, term_description) %>%
distinct(code, .keep_all = T)
See if there are any additional mapped terms. For kidney disease cases, there are none.
<- left_join(kidney_disease_case_dict, read_map) %>%
kidney_disease_case_terms_map filter(!is.na(mapped_code)) %>%
filter(!(mapped_code %in% kidney_disease_case_dict$code)) %>%
arrange(code) %>%
select(-terminology_note) %>%
left_join(full_dict %>%
::rename(mapped_code = code, mapped_description = term_description,
dplyrmapped_terminology=terminology)) %>%
group_by(mapped_code) %>%
slice(1) %>%
distinct()
kidney_disease_case_terms_map
Generate kidney disease control exclusion dictionary.
<-
kidney_disease_control_exclusion_dict %>% filter(!(code %in% kidney_disease_case_dict$code)) kidney_disease_actual
Review terms.
<-
kidney_disease_control_exclusion_review %>%
kidney_disease_control_exclusion_dict distinct(code, term_description) %>%
distinct(code, .keep_all =T)
See if there are any additional mapped terms.
<- left_join(kidney_disease_control_exclusion_dict, read_map) %>%
kidney_disease_control_exclusion_terms_map filter(!is.na(mapped_code)) %>%
filter(!(mapped_code %in% kidney_disease_control_exclusion_dict$code)) %>%
arrange(code) %>%
select(-terminology_note) %>%
left_join(full_dict %>%
::rename(mapped_code = code, mapped_description = term_description,
dplyrmapped_terminology=terminology)) %>%
group_by(mapped_code) %>%
slice(1) %>%
distinct()
kidney_disease_control_exclusion_terms_map
Combine the new terms with the original kidney disease control exclusion dictionary.
<- rbind(kidney_disease_control_exclusion_dict,
kidney_disease_control_exclusion_dict_final %>%
kidney_disease_control_exclusion_terms_map select(code = mapped_code, term_description = mapped_description,
terminology = mapped_terminology, terminology_note)
)
Save kidney disease case dictionary and kidney disease control exclusion code dictionary.
saveRDS(kidney_disease_case_dict,"generated_data/kidney_disease_case_dict.RDS")
saveRDS(kidney_disease_control_exclusion_dict_final,"generated_data/kidney_disease_control_exclusion_dict.RDS")