/* Program reads data on mental disorder diagnoses */

libname lib1 "W:\Uudet_datat\Hilmo_ja_kela\";
libname lib100 "W:\Tutkimusprojektit\Kirjanpito\Dokumentaatio\JAR\Datat\";
run;

* Merges mental disorder diagnosis data from 1996 to 2022;

* Mental disorder diagnosis data  1996 ->;

data hilmo_1996;
set lib1.suoj_u0599_hilmo;

keep shnro hilmoid tupva lpvm spaltu; 

run;

data hilmo_1996_2;
set lib1.u0599_icd10;

Koodi_1CHR = substr (Koodi,1,1);

if Koodi_1CHR = 'F';

keep hilmoid koodi n kentta; 

run;

proc sort data = hilmo_1996;
by hilmoid;
run;

proc sort data = hilmo_1996_2;
by hilmoid koodi;
run;

data hilmo_1996_22;
set hilmo_1996_2;

if (hilmoid = lag(hilmoid) and koodi = lag(koodi)) then delete;

run;

proc transpose data = hilmo_1996_22 out = hilmo_1996_222 prefix = DG;
by hilmoid;
var koodi;

run;

data hilmo_1996_3;
merge hilmo_1996 hilmo_1996_222;
by hilmoid;

if DG1 = '' then delete;

drop _name_;

run;

* Saves data;

data lib100.hilmot9622;
set hilmo_1996_3;

drop hilmoid;

run;

* AVOHilmot;

data avohilmo_2011;
set lib1.suoj_u0599_avohilmo_11;

keep shnro avohilmoid kaynti_alkoi kaynti_loppui spaltu; 

run;

data avohilmo_2012;
set lib1.suoj_u0599_avohilmo_12;

keep shnro avohilmoid kaynti_alkoi kaynti_loppui spaltu; 

run;

data avohilmo_2013;
set lib1.suoj_u0599_avohilmo_13;

keep shnro avohilmoid kaynti_alkoi kaynti_loppui spaltu; 

run;

data avohilmo_2014;
set lib1.suoj_u0599_avohilmo_14;

keep shnro avohilmoid kaynti_alkoi kaynti_loppui spaltu; 

run;

data avohilmo_2015;
set lib1.suoj_u0599_avohilmo_15;

keep shnro avohilmoid kaynti_alkoi kaynti_loppui spaltu; 

run;

data avohilmo_2016;
set lib1.suoj_u0599_avohilmo_16;

keep shnro avohilmoid kaynti_alkoi kaynti_loppui spaltu; 

run;

data avohilmo_2017;
set lib1.suoj_u0599_avohilmo_17;

keep shnro avohilmoid kaynti_alkoi kaynti_loppui spaltu; 

run;

data avohilmo_2018;
set lib1.suoj_u0599_avohilmo_18;

keep shnro avohilmoid kaynti_alkoi kaynti_loppui spaltu; 

run;

data avohilmo_2019;
set lib1.suoj_u0599_avohilmo_19;

keep shnro avohilmoid kaynti_alkoi kaynti_loppui spaltu; 

run;

data avohilmo_2020;
set lib1.suoj_u0599_avohilmo_20;

keep shnro avohilmoid kaynti_alkoi kaynti_loppui spaltu; 

run;

data avohilmo_2021;
set lib1.suoj_u0599_avohilmo_21;

keep shnro avohilmoid kaynti_alkoi kaynti_loppui spaltu; 

run;

data avohilmo_2022;
set lib1.suoj_u0599_avohilmo_22;

keep shnro avohilmoid kaynti_alkoi kaynti_loppui spaltu; 

run;

data avohilmo_kaikki;
set avohilmo_2011 avohilmo_2012 avohilmo_2013 avohilmo_2014 avohilmo_2015 avohilmo_2016
avohilmo_2017 avohilmo_2018 avohilmo_2019 avohilmo_2020 avohilmo_2021 avohilmo_2022;
run;

data avohilmo_koodi;
set lib1.u0599_ah_kayntisyy;

icd10_1CHR = substr (icd10,1,1);

if icd10_1CHR = 'F';

keep avohilmoid jarjestys icd10; 
rename jarjestys = N icd10 = koodi;

run;

proc sort data = avohilmo_kaikki;
by avohilmoid;
run;

proc sort data = avohilmo_koodi;
by avohilmoid koodi;
run;

data avohilmo_koodi_2;
set avohilmo_koodi;;

if (avohilmoid = lag(avohilmoid) and koodi = lag(koodi)) then delete;

run;

proc transpose data = avohilmo_koodi_2 out = avohilmo_koodi_22 prefix = DG;
by avohilmoid;
var koodi;

run;

data avohilmo_kaikki_2;
merge avohilmo_kaikki avohilmo_koodi_22;
by avohilmoid;

if DG1 = '' then delete;

drop _name_;

run;

* Save data;

data lib100.avohilmot_kaikki;
set avohilmo_kaikki_2;

drop avohilmoid spaltu;

run;
