﻿
**Diabetes Algorithm
cd "..filePath...\CDM_files"

*****1)Hospital Discharge
use "..filePath...\sdo2007_2023.dta", clear
count

gen diabete_ricoveri=0
foreach var of varlist diag diagsec* {
	replace diabete_ricoveri=1 if substr(`var',1,3)=="250" 
}
gen annodimissione = year(data_dim)
collapse (min) data_amm (max) diabete_ricoveri, by(codice annodimissione)
keep if diabete_ricoveri == 1

**giro a paziente
reshape wide diabete_ricoveri data_amm, i(codice) j(annodimissione) 

tempfile ric
save `ric', replace

*****2)Drug Prescriptions
use "..filePath...\F_A10_2007_2023.dta", clear
**seleziono i farmaci da algoritmo -> tutti gli A10
keep if substr(atc, 1, 3) == "A10" 

**collasso i days per soggetto e per anno
collapse (min) data_erog (sum) f_n_erog, by(codice f_anno_erog)

**criterio delle 2 prescrizioni in un anno
keep if f_n_erog > 1

**giro a paziente
reshape wide f_n_erog data_erog, i(codice) j(f_anno_erog) string

*****creo una dummy (di prevalenza) diabete sì/no per ogni anno
forvalues i = 2007(1)2023 {
          gen diabete_farma`i' = 1 if f_n_erog`i' != .
          }	
forvalues i = 2007(1)2023 {
          tab diabete_farma`i', m
          }	
tempfile farm
save `farm', replace

/* 3) Exemption for Pathology*/
use "..filePath...\esenzioni.dta", clear

keep if substr(cod_esen, 1, 3) == "013" 

gen esenzioni_diabete=1
collapse (max) esenzioni_diabete (min) data_inizio, by(codice)
tempfile ese
save `ese', replace

**4) Merge	
merge 1:1 codice using `farm', nogenerate
merge 1:1 codice using `ric', nogenerate

**combino farmaci e sdo per ogni anno
forvalues i = 2007(1)2023 {
          gen diabete`i' = 1 if diabete_ricoveri`i' == 1 | diabete_farma`i' == 1 
          }	
**creo la data minore fra sdo e farmaci per ogni anno
forvalues i = 2007(1)2023 {
          gen diabete_onset`i' = min(data_erog`i', data_amm`i') if diabete`i'== 1  
          }	
*format
forvalues i = 2007(1)2023 {
          format diabete_onset`i' %dD/M/CY  
          }	
*qui inserisco anche la data minima di inizio esenzione (data_inizio)	 
gen diabete_onset = min(data_ inizio, diabete_onset2007, diabete_onset2008, diabete_onset2009, diabete_onset2010, diabete_onset2011, /// 
                        diabete_onset2012, diabete_onset2013, diabete_onset2014, diabete_onset2015, diabete_onset2016, diabete_onset2017, ///
                        diabete_onset2018, diabete_onset2019, diabete_onset2020, diabete_onset2021, diabete_onset2022, diabete_onset2023)  
format diabete_onset %dD/M/CY					
gen diabete = 1
keep codice diabete diabete_onset
gen anno_diabete = year(diabete_onset)
save "..filePath...\Diabete.dta", replace



