*********************************************************************************************************************************************************** *************************************Algorithms for the adjudication of diabetes status in UK Biobank****************************************************** *********************************************************************************************************************************************************** ///Produces 2 key variables: adj_dmstatus_bl (adjudicated baseline diabetes status, using data from self-report by touchscreen questionnaire and nurse interview) /// and adj_probposs_t2dm (adjudicated baseline probable/ possible type 2 diabetes , using data from self-report by touchscreen questionnaire and nurse interview) *****************************Selection of dataset - vary with name of dataset use "UK Biobank baseline dataset" set more off *****************************Demographic information necessary for algorithms to run ***Sex gen sex=n_31_0_0 lab var sex "Sex" lab def sexlabel 1"Male" 0"Female" lab val sex sexlabel ***Ethnicity *All ethnic groups gen ethnic_all=n_21000_0_0 label define ethnic_alllab 4001 "Caribbean" 3001 "Indian" 1 "White" 2001 "White and Black Caribbean" 1001 "British" 3002 "Pakistani" 2 "Mixed" 4002 "African" 1002 "Irish" 2002 "White and Black African" 3003 "Bangladeshi" 3 "Asian or Asian British" 4003 "Any other Black background" 1003 "Any other white background" 2003 "White and Asian" 3004 "Any other Asian background" 4 "Black or Black British" 2004 "Any other mixed background" 5 "Chinese" 6 "Other ethnic group" -1 "Do not know" -3 "Prefer not to answer" lab val ethnic_all ethnic_alllab *Main ethnic groups ///(NB this makes some assumptions i.e. British is white, and does not include mixed, Chinese or other Asian) gen ethnic=n_21000_0_0 recode ethnic 1001=1 1002=1 1003=1 3=2 3001=2 3002=2 3003=2 4=3 4001=3 4002=3 4003=3 2=4 2001=4 2002=4 2003=4 2004=4 3004=4 5=4 6=4 -1=. -3=. lab var ethnic "Ethnicity: main groups" lab def ethniclab 1"White European" 2"South Asian" 3"African Caribbean" 4"Mixed or other" lab val ethnic ethniclab tab ethnic, mis tab n_21000_0_0, mis *SA and AFC vs all other variable gen ethnic_sa_afc=0 replace ethnic_sa_afc=1 if ethnic==2|ethnic==3 replace ethnic_sa_afc=. if ethnic_all==. tab ethnic_sa_afc, mis lab var ethnic_sa_afc"South Asian/ African Caribbean vs European/other ethnicity" lab def ethnic_sa_afclab 0"European/ other" 1"South Asian/ African Caribbean" lab val ethnic_sa_afc ethnic_sa_afclab *****************************Derivation of diabetes variables from master dataset *****1) Self-report variables *Self-report of gestational DM ///NB analyses with this variable will not capture those who had GDM, then went on to get T2DM as well ??? in HES data gen dm_gdmonly_sr_bl=n_4041_0_0 recode dm_gdmonly_sr_bl -2=0 -3=. -1=. lab var dm_gdmonly_sr_bl "Gestational diabetes only - denominator women with diabetes, baseline self-report" lab def dm_gdmonly_sr_bllab 0"No" 1"Yes" lab val dm_gdmonly_sr_bl dm_gdmonly_sr_bllab gen dm_gdmvsall_sr_bl=0 replace dm_gdmvsall_sr_bl=. if sex==1 replace dm_gdmvsall_sr_bl=. if n_4041_0_0==-3 replace dm_gdmvsall_sr_bl=. if n_4041_0_0==-1 replace dm_gdmvsall_sr_bl=0 if n_4041_0_0==0 replace dm_gdmvsall_sr_bl=1 if n_4041_0_0==1 tab dm_gdmvsall_sr_bl lab var dm_gdmvsall_sr_bl "Gestational diabetes only - denominator all women, baseline self-report" lab def dm_gdmvsall_sr_bllab 0"No" 1"Yes" lab val dm_gdmvsall_sr_bl dm_gdmvsall_sr_bllab *Current insulin Rx gen dm_drug_ins_men=0 replace dm_drug_ins_men=1 if n_6177_0_0==3|n_6177_0_1==3|n_6177_0_2==3 replace dm_drug_ins_men=. if n_6177_0_0==.|n_6177_0_0==-3|n_6177_0_0==-1 tab dm_drug_ins_men, mis gen dm_drug_ins_women=0 replace dm_drug_ins_women=1 if n_6153_0_0==3|n_6153_0_1==3|n_6153_0_2==3 replace dm_drug_ins_women=. if n_6153_0_0==.|n_6153_0_0==-3|n_6153_0_0==-1 tab dm_drug_ins_women, mis gen dm_drug_ins_bl_sr=. replace dm_drug_ins_bl_sr=0 if dm_drug_ins_men==0|dm_drug_ins_women==0 replace dm_drug_ins_bl_sr=1 if dm_drug_ins_men==1|dm_drug_ins_women==1 tab dm_drug_ins_bl_sr, mis lab var dm_drug_ins_bl_sr "On insulin" labe def dm_drug_ins_bl_srlab 0"No" 1"Yes" lab val dm_drug_ins_bl_sr dm_drug_ins_bl_srlab drop dm_drug_ins_men dm_drug_ins_women *Age diagnosis gen dm_agediag_sr_bl=n_2976_0_0 lab var dm_agediag_sr_bl "Age diabetes diagnosed by doctor" replace dm_agediag_sr_bl=. if dm_agediag<0 sum dm_agediag_sr_bl *Insulin within 12/12 diagnosis gen dm_insat1yr=n_2986_0_0 recode dm_insat1yr -3=. -1=. lab var dm_insat1yr "Insulin started within 1 yr of diagnosis" lab def dm_insat1yrlab 0"No" 1"Yes" lab val dm_insat1yr dm_insat1yrlab *****2) Medication variables *Derived from "parent" medication variables from self-report nurse interview data: n_20003_0_0 to n_20003_0_47 *Codes used to define the different classes of medication(contained in the above variables in wide format): ///Insulins (all, non-specified): 1140883066 ///Metformin (generic name, trade name, combinations): 1140884600 | 1140874686 | 1141189090 ///Sulfonylureas (generic names, trade names): 1140874718 | 1140874744 | 1140874746 | 1141152590 | 1141156984 | 1140874646 | 1141157284 | 1140874652 | 1140874674 | 1140874728 ///Others (acarbose generic, acarbose trade, Glucotard trade): 1140868902 |1140868908 | 1140857508 ///Meglitinides (generic names, trade names):1141173882 | 1141173786 | 1141168660 ///Glitazones (generic names, trade names): 1141171646 | 1141171652 | 1141153254 | 1141177600 | 1141177606 ///Non-metformin OADs (including above 4 drug classes): *1140874718 | 1140874744 | 1140874746 | 1141152590 | 1141156984 | 1140874646 | 1141157284 | 1140874652 | 1140874674 | 1140874728 | *1140868902 |1140868908 | 1140857508 | 1141173882 | 1141173786 | 1141168660 | 1141171646 | 1141171652 | 1141153254 | 1141177600 | 1141177606 *Derivation of classes: ///Insulins; dm_drug_ins_ni_bl gen dm_drug_ins_ni_bl=. forvalues i=0/47 { replace dm_drug_ins_ni_bl=1 if n_20003_0_`i'==1140883066 } * lab var dm_drug_ins_ni_bl "Taking insulin, baseline nurse interview" recode dm_drug_ins_ni_bl .=0 lab def dm_drug_ins_ni_bllab 0"No insulin" 1"On insulin" lab val dm_drug_ins_ni_bl dm_drug_ins_ni_bllab tab dm_drug_ins_ni_bl ///Metformin; dm_drug_metf_ni_bl gen dm_drug_metf_ni_bl=. forvalues i=0/47 { replace dm_drug_metf_ni_bl=1 if n_20003_0_`i'==1140884600 replace dm_drug_metf_ni_bl=1 if n_20003_0_`i'==1140874686 replace dm_drug_metf_ni_bl=1 if n_20003_0_`i'==1141189090 } * lab var dm_drug_metf_ni_bl "Taking metformin, baseline nurse interview" recode dm_drug_metf_ni_bl .=0 lab def dm_drug_metf_ni_bllab 0"No metformin" 1"On metformin" lab val dm_drug_metf_ni_bl dm_drug_metf_ni_bllab tab dm_drug_metf_ni_bl ///Sulfonylureas; dm_drug_su_ni_bl gen dm_drug_su_ni_bl=. forvalues i=0/47 { replace dm_drug_su_ni_bl=1 if n_20003_0_`i'==1140874718 replace dm_drug_su_ni_bl=1 if n_20003_0_`i'==1140874744 replace dm_drug_su_ni_bl=1 if n_20003_0_`i'==1140874746 replace dm_drug_su_ni_bl=1 if n_20003_0_`i'==1141152590 replace dm_drug_su_ni_bl=1 if n_20003_0_`i'==1141156984 replace dm_drug_su_ni_bl=1 if n_20003_0_`i'==1140874646 replace dm_drug_su_ni_bl=1 if n_20003_0_`i'==1141157284 replace dm_drug_su_ni_bl=1 if n_20003_0_`i'==1140874652 replace dm_drug_su_ni_bl=1 if n_20003_0_`i'==1140874674 replace dm_drug_su_ni_bl=1 if n_20003_0_`i'==1140874728 } * lab var dm_drug_su_ni_bl "Taking sulfonylurea, baseline nurse interview" recode dm_drug_su_ni_bl .=0 lab def dm_drug_su_ni_bllab 0"No sulfonylurea" 1"On sulfonylurea" lab val dm_drug_su_ni_bl dm_drug_su_ni_bllab tab dm_drug_su_ni_bl ///Other OAD; dm_drug_other_oad_ni_bl gen dm_drug_other_oad_ni_bl=. forvalues i=0/47 { replace dm_drug_other_oad_ni_bl=1 if n_20003_0_`i'==1140868902 replace dm_drug_other_oad_ni_bl=1 if n_20003_0_`i'==1140868908 replace dm_drug_other_oad_ni_bl=1 if n_20003_0_`i'==1140857508 } * lab var dm_drug_other_oad_ni_bl "Taking other oral anti-diabetic (acarbose, guar gum), baseline nurse interview" recode dm_drug_other_oad_ni_bl .=0 lab def dm_drug_other_oad_ni_bllab 0"Not on other oral anti-diabetic" 1"On other oral anti-diabetic" lab val dm_drug_other_oad_ni_bl dm_drug_other_oad_ni_bllab tab dm_drug_other_oad_ni_bl ///Meglitinides; dm_drug_meglit_ni_bl gen dm_drug_meglit_ni_bl=. forvalues i=0/47 { replace dm_drug_meglit_ni_bl=1 if n_20003_0_`i'==1141173882 replace dm_drug_meglit_ni_bl=1 if n_20003_0_`i'==1141173786 replace dm_drug_meglit_ni_bl=1 if n_20003_0_`i'==1141168660 } * lab var dm_drug_meglit_ni_bl "Taking meglitinide, baseline nurse interview" recode dm_drug_meglit_ni_bl .=0 lab def dm_drug_meglit_ni_bllab 0"No meglitinide" 1"On meglitinide" lab val dm_drug_meglit_ni_bl dm_drug_meglit_ni_bllab tab dm_drug_meglit_ni_bl ///Glitazones; dm_drug_glitaz_ni_bl gen dm_drug_glitaz_ni_bl=. forvalues i=0/47 { replace dm_drug_glitaz_ni_bl=1 if n_20003_0_`i'==1141171646 replace dm_drug_glitaz_ni_bl=1 if n_20003_0_`i'==1141171652 replace dm_drug_glitaz_ni_bl=1 if n_20003_0_`i'==1141153254 replace dm_drug_glitaz_ni_bl=1 if n_20003_0_`i'==1141177600 replace dm_drug_glitaz_ni_bl=1 if n_20003_0_`i'==1141177606 } * lab var dm_drug_glitaz_ni_bl "Taking glitazone, baseline nurse interview" recode dm_drug_glitaz_ni_bl .=0 lab def dm_drug_glitaz_ni_bllab 0"No glitazone" 1"On glitazone" lab val dm_drug_glitaz_ni_bl dm_drug_glitaz_ni_bllab tab dm_drug_glitaz_ni_bl ///Non-metformin OADs (including above 4 drug classes): dm_drug_nonmetf_oad_ni_bl gen dm_drug_nonmetf_oad_ni_bl=. replace dm_drug_nonmetf_oad_ni_bl=1 if dm_drug_su_ni_bl==1 | dm_drug_other_oad_ni_bl==1==1 | dm_drug_meglit_ni_bl==1 | dm_drug_glitaz_ni_bl==1 lab var dm_drug_nonmetf_oad_ni_bl "Taking non-metformin oral anti-diabetic drug, baseline nurse interview" recode dm_drug_nonmetf_oad_ni_bl .=0 lab def dm_drug_nonmetf_oad_ni_bllab 0"No non-metformin oral anti-diabetic drug" 1"On non-metformin oral anti-diabetic drug" lab val dm_drug_nonmetf_oad_ni_bl dm_drug_nonmetf_oad_ni_bllab tab dm_drug_nonmetf_oad_ni_bl ///Any medication gen dm_anydmrx_ni_sr_bl=0 replace dm_anydmrx_ni_sr_bl=1 if dm_drug_ins_ni_bl==1|dm_drug_metf_ni_bl==1|dm_drug_nonmetf_oad_ni_bl==1|dm_drug_ins_bl_sr==1 lab var dm_anydmrx_ni_sr_bl "Any reported diabetes medication" tab dm_anydmrx_ni_sr_bl *****3) Nurse interview variables *Nurse interview report of gestational DM gen dm_gdm_ni_bl=. gen dm_agediag_gdm_ni_bl=. forvalues i=0/28 { replace dm_gdm_ni_bl=1 if n_20002_0_`i'==1221 replace dm_agediag_gdm_ni_bl= n_20009_0_`i' if n_20002_0_`i'==1221 } lab var dm_gdm_ni_bl "GDM, baseline nurse interview" lab def dm_gdm_ni_bllab 1"GDM present" lab val dm_gdm_ni_bl dm_gdm_ni_bllab lab var dm_agediag_gdm_ni_bl"Age at GDM diagnosis, baseline nurse interview" *Nurse interview - all DM gen dm_alldm_ni_bl=. gen dm_agediag_alldm_ni_bl=. forvalues i=0/28 { replace dm_alldm_ni_bl=1 if n_20002_0_`i'==1220 replace dm_agediag_alldm_ni_bl= n_20009_0_`i' if n_20002_0_`i'==1220 } lab var dm_alldm_ni_bl "Diabetes non-specified, baseline nurse interview" lab def dm_alldm_ni_bllab 1"Diabetes present" lab val dm_alldm_ni_bl dm_alldm_ni_bllab lab var dm_agediag_alldm_ni_bl "Age at diagnosis non-specified diabetes, baseline nurse interview" *Nurse interview - type 1 DM gen dm_t1dm_ni_bl=. gen dm_agediag_t1dm_ni_bl=. forvalues i=0/28 { replace dm_t1dm_ni_bl=1 if n_20002_0_`i'==1222 replace dm_agediag_t1dm_ni_bl= n_20009_0_`i' if n_20002_0_`i'==1222 } tab dm_t1dm_ni_bl lab var dm_t1dm_ni_bl "T1DM, baseline nurse interview" lab def dm_t1dm_ni_bllabe 1"T1DM present" lab val dm_t1dm_ni_bl dm_t1dm_ni_bllabe lab var dm_agediag_t1dm_ni_bl "Age at T1DM diagnosis, baseline nurse interview" *Nurse interview - type 2 DM gen dm_t2dm_ni_bl=. gen dm_agediag_t2dm_ni_bl=. forvalues i=0/28 { replace dm_t2dm_ni_bl=1 if n_20002_0_`i'==1223 replace dm_agediag_t2dm_ni_bl= n_20009_0_`i' if n_20002_0_`i'==1223 } tab dm_t2dm_ni_bl lab var dm_t2dm_ni_bl "T2DM, baseline nurse interview" lab def dm_t2dm_ni_bllab 1"T2DM present" lab val dm_t2dm_ni_bl dm_t2dm_ni_bllab lab var dm_agediag_t2dm_ni_bl "Age at T2DM diagnosis, baseline nurse interview" /// This converts 10 people with T1 and T2 diagnoses to non-specific gen dummy_t1t2dm=. replace dummy_t1t2dm=1 if dm_t1dm_ni_bl==1 & dm_t2dm_ni_bl==1 replace dm_alldm_ni_bl=1 if dummy_t1t2dm==1 replace dm_t1dm_ni_bl=. if dummy_t1t2dm==1 replace dm_t2dm_ni_bl=. if dummy_t1t2dm==1 *NI report of any dm or T1 or T2 DM gen dm_anynsgt1t2_ni_bl=. replace dm_anynsgt1t2_ni_bl=1 if dm_alldm_ni_bl==1|dm_gdm_ni_bl==1|dm_t1dm_ni_bl==1|dm_t2dm_ni_bl==1 tab dm_anynsgt1t2_ni_bl lab var dm_anynsgt1t2_ni_bl"Nurse interview: non-specific/ GDM/ T1DM/ T2DM reported" *Ages combined from TS and NI gen dm_agedm_ts_or_ni= dm_agediag_alldm_ni_bl replace dm_agedm_ts_or_ni=dm_agediag_sr_bl if dm_agediag_alldm_ni_bl==. & dm_agediag_t1dm_ni_bl==. & dm_agediag_t2dm_ni_bl==. & dm_gdmonly_sr_bl!=1 replace dm_agedm_ts_or_ni=dm_agediag_t1dm_ni_bl if dm_t1dm_ni_bl==1 replace dm_agedm_ts_or_ni=dm_agediag_t2dm_ni_bl if dm_t2dm_ni_bl==1 replace dm_agedm_ts_or_ni=. if dm_agediag_sr_bl==. & dm_agediag_alldm_ni_bl==. & dm_agediag_t1dm_ni_bl==. & dm_agediag_t2dm_ni_bl==. replace dm_agedm_ts_or_ni=. if dm_agedm_ts_or_ni<0 **********************************************************Flowchart 1:Starting categories for Diabetes Classification *************************1.1 generate rule_1_1_continue=0 replace rule_1_1_continue=1 if dm_gdmonly_sr_bl==1 | dm_alldm_ni_bl==1 | dm_gdm_ni_bl==1| dm_t1dm_ni_bl==1 |dm_t2dm_ni_bl==1 | dm_drug_ins_ni_bl==1 |dm_drug_ins_bl_sr==1 | dm_drug_metf_ni_bl==1|dm_drug_nonmetf_oad_ni_bl==1 replace rule_1_1_continue=0 if dm_gdmonly_sr_bl==1 & sex==1 replace rule_1_1_continue=0 if dm_gdm_ni_bl==1 & sex==1 tabulate rule_1_1_continue, missing generate rule_1_1_exit=rule_1_1_continue recode rule_1_1_exit 1=0 0=1 tabulate rule_1_1_exit, missing *************************1.2 generate rule_1_2_exit=0 replace rule_1_2_exit=1 if dm_gdmonly_sr_bl==1 & dm_anydmrx_ni_sr_bl!=1 & dm_t1dm_ni_bl!=1 & dm_t2dm_ni_bl!=1 replace rule_1_2_exit=1 if dm_gdm_ni_bl==1 & dm_agediag_gdm_ni_bl<50 & dm_anydmrx_ni_sr_bl!=1 & dm_t1dm_ni_bl!=1 & dm_t2dm_ni_bl!=1 replace rule_1_2_exit=. if rule_1_1_continue!=1 tabulate rule_1_2_exit, missing generate rule_1_2_continue=rule_1_2_exit recode rule_1_2_continue 0=1 1=0 tabulate rule_1_2_continue, missing *************************1.3 generate rule_1_3_exit=0 replace rule_1_3_exit=1 if dm_drug_nonmetf_oad_ni_bl==1 replace rule_1_3_exit=. if rule_1_2_continue!=1 tabulate rule_1_3_exit, missing generate rule_1_3_continue=rule_1_3_exit recode rule_1_3_continue 0=1 1=0 tabulate rule_1_3_continue, missing *************************1.4 generate rule_1_4_continue=0 replace rule_1_4_continue=1 if dm_agedm_ts_or_ni!=. & dm_agedm_ts_or_ni>0 & dm_agedm_ts_or_ni<31 & ethnic_sa_afc==1 replace rule_1_4_continue=1 if dm_agedm_ts_or_ni!=. & dm_agedm_ts_or_ni>0 & dm_agedm_ts_or_ni<37 & ethnic_sa_afc==0 replace rule_1_4_continue=. if rule_1_3_continue!=1 tabulate rule_1_4_continue, missing generate rule_1_4_exit=rule_1_4_continue recode rule_1_4_exit 1=0 0=1 tabulate rule_1_4_exit, missing *************************1.5 generate rule_1_5_poss_t1=0 replace rule_1_5_poss_t1=1 if dm_drug_ins_bl_sr==1 | dm_drug_ins_ni_bl==1 | dm_insat1yr==1 | dm_t1dm_ni_bl==1 replace rule_1_5_poss_t1=. if rule_1_4_continue!=1 tabulate rule_1_5_poss_t1, missing generate rule_1_5_poss_t2=rule_1_5_poss_t1 recode rule_1_5_poss_t2 1=0 0=1 tabulate rule_1_5_poss_t2, missing ************************Creating flowchart 1 exit variables generate fc1_no_diabetes=rule_1_1_exit label variable fc1_no_diabetes "Diabetes unlikely" label define fc1_no_diabeteslabel 1"Diabetes unlikely" 0"Possible diabetes" label value fc1_no_diabetes fc1_no_diabeteslabel tabulate fc1_no_diabetes, missing generate fc1_poss_gdm=rule_1_2_exit label variable fc1_poss_gdm "Possible gestational diabetes" recode fc1_poss_gdm .=0 label define fc1_poss_gdmlabel 0"Gestational diabetes unlikely/impossible" 1"Possible gestational diabetes" label value fc1_poss_gdm fc1_poss_gdmlabel tabulate fc1_poss_gdm, missing generate fc1_poss_t2dm=0 replace fc1_poss_t2dm=1 if rule_1_3_exit==1 replace fc1_poss_t2dm=1 if rule_1_4_exit==1 replace fc1_poss_t2dm=1 if rule_1_5_poss_t2==1 label variable fc1_poss_t2dm "Possible type 2 diabetes, post-flowchart 1" label define fc1_poss_t2dmlabel 0"T2DM unlikely" 1"Possible T2DM" label value fc1_poss_t2dm fc1_poss_t2dmlabel tabulate fc1_poss_t2dm generate fc1_poss_t1dm=0 replace fc1_poss_t1dm=1 if rule_1_5_poss_t1==1 label variable fc1_poss_t1dm "Possible type 1 diabetes, post-flowchart 1" label define fc1_poss_t1dmlabel 0"T1DM unlikely" 1"Possible T1DM" label value fc1_poss_t1dm fc1_poss_t1dmlabel tabulate fc1_poss_t1dm **********************************************************Flowchart 2:Type 1 categories for Diabetes Classification *Starting point (from FC1): fc1_poss_t1dm==1 **********Rule 2.1 generate rule_2_1_exit=0 replace rule_2_1_exit=1 if dm_t1dm_ni_bl==1 replace rule_2_1_exit=. if rule_1_5_poss_t1!=1 tabulate rule_2_1_exit, missing generate rule_2_1_continue=rule_2_1_exit recode rule_2_1_continue 0=1 1=0 tabulate rule_2_1_continue, missing **********Rule 2.2 generate rule_2_2_prob_t1=0 replace rule_2_2_prob_t1=1 if dm_drug_ins_bl_sr==1 & dm_insat1yr==1 replace rule_2_2_prob_t1=1 if dm_drug_ins_ni_bl==1 & dm_insat1yr==1 replace rule_2_2_prob_t1=. if rule_2_1_continue!=1 tabulate rule_2_2_prob_t1, missing generate rule_2_2_poss_t1=rule_2_2_prob_t1 recode rule_2_2_poss_t1 0=1 1=0 tabulate rule_2_2_poss_t1, missing *********Creating post-flowchart 2 variables generate fc2_prob_t1dm=0 replace fc2_prob_t1dm=1 if rule_2_1_exit==1 replace fc2_prob_t1dm=1 if rule_2_2_prob_t1==1 label variable fc2_prob_t1dm "Probable type 1 diabetes, post-flowchart 2" label define fc2_prob_t1dmlabel 0"T1DM unlikely" 1"Probable T1DM" label value fc2_prob_t1dm fc2_prob_t1dmlabel tabulate fc2_prob_t1dm generate fc2_poss_t1dm=0 replace fc2_poss_t1dm=1 if rule_2_2_poss_t1==1 label variable fc2_poss_t1dm "Possible type 1 diabetes, post-flowchart 2" label define fc2_poss_t1dmlabel 0"T1DM unlikely/ definite" 1"Possible T1DM" label value fc2_poss_t1dm fc2_poss_t1dmlabel tabulate fc2_poss_t1dm **********************************************************Flowchart 3:Type 2 categories for Diabetes Classification *Starting point (from FC1): fc1_poss_t2dm==1 **********Rule 3.1 generate rule_3_1_exit=0 replace rule_3_1_exit=1 if dm_drug_metf_ni_bl==1 replace rule_3_1_exit=0 if dm_drug_ins_bl_sr==1 |dm_drug_ins_ni_bl==1|dm_drug_nonmetf_oad_ni_bl==1 replace rule_3_1_exit=. if fc1_poss_t2dm!=1 tabulate rule_3_1_exit, missing generate rule_3_1_continue=rule_3_1_exit recode rule_3_1_continue 0=1 1=0 tabulate rule_3_1_continue, missing **********Rule 3.2 generate rule_3_2_exit=0 replace rule_3_2_exit=1 if dm_anynsgt1t2_ni_bl!=1 replace rule_3_2_exit=. if rule_3_1_exit!=1 tabulate rule_3_2_exit, missing generate rule_3_2_continue=rule_3_2_exit recode rule_3_2_continue 0=1 1=0 tabulate rule_3_2_continue, missing **********Rule 3.3 generate rule_3_3_exit=. replace rule_3_3_exit=0 if rule_3_1_continue==1|rule_3_2_continue==1 replace rule_3_3_exit=1 if dm_drug_nonmetf_oad_ni_bl==1 tabulate rule_3_3_exit, missing generate rule_3_3_continue=rule_3_3_exit recode rule_3_3_continue 0=1 1=0 tabulate rule_3_3_continue, missing **********Rule 3.4 generate rule_3_4_exit=0 replace rule_3_4_exit=1 if dm_drug_ins_bl_sr!=1 & dm_drug_ins_ni_bl!=1 replace rule_3_4_exit=. if rule_3_3_continue!=1 tabulate rule_3_4_exit, missing generate rule_3_4_continue=rule_3_4_exit recode rule_3_4_continue 0=1 1=0 tabulate rule_3_4_continue, missing **********Rule 3.5 generate rule_3_5_poss_t1=0 replace rule_3_5_poss_t1=1 if dm_t1dm_ni_bl==1 replace rule_3_5_poss_t1=. if rule_3_4_continue!=1 tabulate rule_3_5_poss_t1, missing generate rule_3_5_poss_t2=rule_3_5_poss_t1 recode rule_3_5_poss_t2 0=1 1=0 tabulate rule_3_5_poss_t2, missing ********Creating post-flowchart 3 variables generate fc3_no_diabetes=rule_3_2_exit label variable fc3_no_diabetes "Diabetes unlikely" label define fc3_no_diabeteslab 1"Diabetes unlikely" 0"Possible diabetes" label value fc3_no_diabetes fc3_no_diabeteslab tabulate fc3_no_diabetes, missing generate fc3_prob_t2dm=0 replace fc3_prob_t2dm=1 if rule_3_3_exit==1 replace fc3_prob_t2dm=1 if rule_3_4_exit==1 label variable fc3_prob_t2dm "Probable type 2 diabetes, post-flowchart 3" label define fc3_prob_t2dmlab 0"T2DM unlikely" 1"Probable T2DM" label value fc3_prob_t2dm fc3_prob_t2dmlab tabulate fc3_prob_t2dm generate fc3_poss_t2dm=0 replace fc3_poss_t2dm=1 if rule_3_5_poss_t2==1 label variable fc3_poss_t2dm "Possible type 2 diabetes, post-flowchart 3" label define fc3_poss_t2dmlabel 0"T2DM unlikely" 1"Possible T2DM" label value fc3_poss_t2dm fc3_poss_t2dmlabel tabulate fc3_poss_t2dm generate fc3_prob_t1dm=0 replace fc3_prob_t1dm=1 if rule_3_5_poss_t1==1 label variable fc3_prob_t1dm "Probable type 1 diabetes, post-flowchart 3" label define fc3_prob_t1dmlabel 0"T1DM unlikely" 1"Probable T1DM" label value fc3_prob_t1dm fc3_prob_t1dmlabel tabulate fc3_prob_t1dm *************************************************Consolidation of algorithm ending states *Diabetes unlikely; sr_unlikely_diabetes generate sr_unlikely_diabetes=fc1_no_diabetes replace sr_unlikely_diabetes=1 if fc3_no_diabetes==1 label variable sr_unlikely_diabetes "Diabetes unlikely" label define sr_unlikely_diabeteslabel 1"Diabetes unlikely" 0"Possible diabetes" label value sr_unlikely_diabetes sr_unlikely_diabeteslabel tab sr_unlikely_diabetes *Possible gestational diabetes;sr_poss_gest_diabetes generate sr_poss_gest_diabetes=fc1_poss_gdm label variable sr_poss_gest_diabetes "Possible gestational diabetes" label define sr_poss_gest_diabeteslabel 0"Gestational diabetes unlikely/impossible" 1"Possible gestational diabetes" label value sr_poss_gest_diabetes sr_poss_gest_diabeteslabel tabulate sr_poss_gest_diabetes, missing *Possible type 2 diabetes;sr_poss_t2_diabetes generate sr_poss_t2_diabetes=fc3_poss_t2dm label variable sr_poss_t2_diabetes "Possible type 2 diabetes" label define sr_poss_t2_diabeteslabel 0"Type 2 diabetes unlikely" 1"Possible type 2 diabetes" label value sr_poss_t2_diabetes sr_poss_t2_diabeteslabel tabulate sr_poss_t2_diabetes, missing *Probable type 2 diabetes;sr_prob_t2_diabetes generate sr_prob_t2_diabetes=fc3_prob_t2dm label variable sr_prob_t2_diabetes "Probable type 2 diabetes" label define sr_prob_t2_diabeteslabel 0"Type 2 diabetes unlikely" 1"Probable type 2 diabetes" label value sr_prob_t2_diabetes sr_prob_t2_diabeteslabel tabulate sr_prob_t2_diabetes, missing *Possible type 1 diabetes;sr_poss_t1_diabetes generate sr_poss_t1_diabetes=fc2_poss_t1dm label variable sr_poss_t1_diabetes "Possible type 1 diabetes" label define sr_poss_t1_diabeteslabel 0"Type 1 diabetes unlikely" 1"Possible type 1 diabetes" label value sr_poss_t1_diabetes sr_poss_t1_diabeteslabel tabulate sr_poss_t1_diabetes, missing *Probable type 1 diabetes;sr_prob_t1_diabetes generate sr_prob_t1_diabetes=fc2_prob_t1dm replace sr_prob_t1_diabetes=1 if fc3_prob_t1dm==1 label variable sr_prob_t1_diabetes "Probable type 1 diabetes" label define sr_prob_t1_diabeteslabel 0"Type 1 diabetes unlikely" 1"Probable type 1 diabetes" label value sr_prob_t1_diabetes sr_prob_t1_diabeteslabel tabulate sr_prob_t1_diabetes, missing *Combine all into 1 var gen adj_dmstatus_bl=. replace adj_dmstatus_bl=0 if sr_unlikely_diabetes==1 replace adj_dmstatus_bl=1 if sr_poss_gest_diabetes==1 replace adj_dmstatus_bl=2 if sr_prob_t1_diabetes==1 replace adj_dmstatus_bl=3 if sr_poss_t1_diabetes==1 replace adj_dmstatus_bl=4 if sr_prob_t2_diabetes==1 replace adj_dmstatus_bl=5 if sr_poss_t2_diabetes==1 tab adj_dmstatus_bl lab var adj_dmstatus_bl"Adjudicated baseline diabetes status: touchscreen/ interview self-report" lab def adj_dmstatus_bllab 0"Diabetes unlikely" 1"Possible gestational diabetes" 2"Probable type 1 diabetes" 3"Possible type 1 diabetes" 4"Probable type 2 diabetes" 5"Possible type 2 diabetes" lab val adj_dmstatus_bl adj_dmstatus_bllab tab adj_dmstatus_bl *Create poss/ prov T1DM and poss/ prob T2 dm var: adj_probposs_t1dm adj_probposs_t2dm gen adj_probposs_t1dm=1 if adj_dmstatus_bl==2| adj_dmstatus_bl==3 recode adj_probposs_t1dm .=0 lab var adj_probposs_t1dm"Adjudicated baseline self-report probable/ possible type 1 diabetes" gen adj_probposs_t2dm=1 if adj_dmstatus_bl==4| adj_dmstatus_bl==5 recode adj_probposs_t2dm .=0 lab var adj_probposs_t2dm"Adjudicated baseline self-report probable/ possible type 2 diabetes" tab adj_probposs_t2dm