|
|
(17 välissä olevaa versiota 5 käyttäjän tekeminä ei näytetä) |
Rivi 1: |
Rivi 1: |
| [[Luokka:Juomavesi]]
| | #REDIRECT [[Vesiopas]] |
| [[Luokka:Malli]]
| |
| [[Luokka:Vesiopas]]
| |
| {{arviointi|moderator = Päivi Meriläinen}}
| |
| Tällä sivulla kehitetään Vesiopas 2-mallia
| |
| | |
| | |
| = Vesiopas - Arviointi juomaveden laadun terveysvaikutuksista =
| |
| | |
| | |
| '''Arviointi laadun terveysvaikutuksista''' käsittelee juomaveden mahdollisia mikrobiologisia terveysriskejä. Mikrobiologisten riskien taustana on raakaveden kontaminoituminen mikrobeilla joista aiheutuu mahdollista terveyshaittaa vesijohtovettä käyttäville ihmisille, sekä juomaveden käsittelyprosessien tehokkuus, joka voi olla riittämätön poistamaan haitalliset mikrobit juomavedestä. Arvioinnilla määritetään, minkä suuruinen mahdollinen terveysriski on tietyillä raakaveden mikrobeilla. Arviointi perustuu matemaattiselle Vesiopas-mallille, joka esitellään alla.
| |
| | |
| === Vesiopas-malli ===
| |
| | |
| <rcode
| |
| name="answer"
| |
| variables="
| |
| name:i.raw.class|description:Raakaveden luokitus|type:selection|
| |
| options:
| |
| 'Pohjavesi - Puhdas';Pohjavesi - Puhdas;
| |
| 'Pohjavesi - Pintavesikuormitus';Pohjavesi - Pintavesikuormitus;
| |
| 'Pintavesi - Vähäinen kuormitus';Pintavesi - Vähäinen kuormitus;
| |
| 'Pintavesi - Keskisuuri kuormitus';Pintavesi - Keskisuuri kuormitus;
| |
| 'Pintavesi - Suuri kuormitus';Pintavesi - Suuri kuormitus|
| |
| category:Raakavesi: Patogeenien pitoisuudet|
| |
| name:i.raw.pat.conc.Kamp|description:Kampylobakteeri-pitoisuus arvio (mikrobia/l)|default:'Luokituksen mukainen'|
| |
| name:i.raw.pat.conc.Ecoli|description:E.coli O157:H7 -pitoisuus arvio (mikrobia/l)|default:'Luokituksen mukainen'|
| |
| name:i.raw.pat.conc.Rota|description:Rotavirus-pitoisuus arvio (mikrobia/l)|default:'Luokituksen mukainen'|
| |
| name:i.raw.pat.conc.Noro|description:Norovirus-pitoisuus arvio (mikrobia/l)|default:'Luokituksen mukainen'|
| |
| name:i.raw.pat.conc.Crpt|description:Cryptosporidium-pitoisuus arvio (mikrobia/l)|default:'Luokituksen mukainen'|
| |
| name:i.raw.pat.conc.Giardia|description:Giardia-pitoisuus arvio (mikrobia/l)|default:'Luokituksen mukainen'|
| |
| name:i.treat.used|description:Käytössä olevat puhdistusmenetelmät|type:checkbox|
| |
| options:
| |
| 1;Koagulaatio/flotaatio;
| |
| 2;Koagulaatio toimii hyvin;
| |
| 3;Koagulaatio on tehostettu;
| |
| 4;Hiekkasuodatus;
| |
| 5;Kalkkikivisuodatus;
| |
| 6;Aktiivihiili|
| |
| default:1;4;5;6|category:Vedenpuhdistus: Puhdistusprosessi ja klooraus|
| |
| name:Cl.dose|default:1.5|description:Klooriannos (mg/l)|
| |
| name:Cl.delay|default:12|description:Viipymäaika (h)|
| |
| name:Cl.byprod.t|default:18|description:Sivutuotteiden muodostumisaika (h)|
| |
| name:Cl.pH|default:8|description:pH|
| |
| name:Cl.temp|default:15|description:Lämpötila|
| |
| name:Cl.Br|default:1300|description:Bromidipitoisuus (mg/l)|
| |
| name:Cl.DOC|default:7|description:DOC (mg/l)|
| |
| name:i.city|description:Kaupungin oletusarvot|default:'Custom'|type:selection|
| |
| options:
| |
| 'Custom';Käytä yllä määriteltyjä arvoja;
| |
| 'Op_fi2603';Kuopio|
| |
| name:v.kulutus|default:1153|description:veden kulutus (ml)|category:Verkosto ja kuluttajat|
| |
| name:vaeston.koko|default:100000|description:Altistuvan väestön koko
| |
| "
| |
| >
| |
| # UV-puhdistus poistettiin vaihtoehdoista, koska siinä jokin ongelma.
| |
| library(OpasnetBaseUtils)
| |
| library("xtable")
| |
| | |
| # Input korjailua basesta, jos niin halutaan
| |
| | |
| if(!(i.city == "Custom")) {
| |
| city.default.inputs <- op_baseGetData("opasnet_base", i.city)
| |
|
| |
| if(!is.na(city.default.inputs$Result[city.default.inputs$Havainto == "arvo" & city.default.inputs$Parametri == "Cl.dose"])) {
| |
| Cl.dose <- city.default.inputs$Result[city.default.inputs$Havainto == "arvo" & city.default.inputs$Parametri == "Cl.dose"]}
| |
| if(!is.na(city.default.inputs$Result[city.default.inputs$Havainto == "arvo" & city.default.inputs$Parametri == "Cl.delay"])) {
| |
| Cl.delay <- city.default.inputs$Result[city.default.inputs$Havainto == "arvo" & city.default.inputs$Parametri == "Cl.delay"]}
| |
| if(!is.na(city.default.inputs$Result[city.default.inputs$Havainto == "arvo" & city.default.inputs$Parametri == "Cl.byprod.t"])) {
| |
| Cl.byprod.t <- city.default.inputs$Result[city.default.inputs$Havainto == "arvo" & city.default.inputs$Parametri == "Cl.byprod.t"]}
| |
| if(!is.na(city.default.inputs$Result[city.default.inputs$Havainto == "arvo" & city.default.inputs$Parametri == "Cl.pH"])) {
| |
| Cl.pH <- city.default.inputs$Result[city.default.inputs$Havainto == "arvo" & city.default.inputs$Parametri == "Cl.pH"]}
| |
| if(!is.na(city.default.inputs$Result[city.default.inputs$Havainto == "arvo" & city.default.inputs$Parametri == "Cl.temp"])) {
| |
| Cl.temp <- city.default.inputs$Result[city.default.inputs$Havainto == "arvo" & city.default.inputs$Parametri == "Cl.temp"]}
| |
| if(!is.na(city.default.inputs$Result[city.default.inputs$Havainto == "arvo" & city.default.inputs$Parametri == "Cl.Br"])) {
| |
| Cl.Br <- city.default.inputs$Result[city.default.inputs$Havainto == "arvo" & city.default.inputs$Parametri == "Cl.Br"]}
| |
| if(!is.na(city.default.inputs$Result[city.default.inputs$Havainto == "arvo" & city.default.inputs$Parametri == "Cl.DOC"])) {
| |
| Cl.DOC <- city.default.inputs$Result[city.default.inputs$Havainto == "arvo" & city.default.inputs$Parametri == "Cl.DOC"]}
| |
| }
| |
| | |
| # Vesiopas -malli
| |
| | |
| # Niputetaan raakaveden ja sen käsittelyn inputit siistiksi
| |
| | |
| i.raw.pat.conc.val <- list(i.raw.pat.conc.Kamp, i.raw.pat.conc.Ecoli, i.raw.pat.conc.Rota, i.raw.pat.conc.Noro, i.raw.pat.conc.Crpt,
| |
| i.raw.pat.conc.Giardia)
| |
| | |
| # Annetaan raakaveden konsentraatiolle joku arvo inputtien perusteella, 2 mahdollista metodia: estimaatti, kirjallisuus
| |
| | |
| ## Luokitukset
| |
| | |
| raw.pat.conc.lit <- op_baseGetData("opasnet_base", "Op_fi2655")
| |
| | |
| ##
| |
| | |
| Pathogen <- c("Kampylobakteeri","E.coli O157:H7","Rotavirus","Norovirus","Cryptosporidium","Giardia")
| |
| | |
| raw.pat.conc <- data.frame(Pathogen, Raw.pat.conc = NA)
| |
| for(i in 1:length(i.raw.pat.conc.val)) {
| |
| if(is.character(i.raw.pat.conc.val[[i]])) raw.pat.conc[i,2] <- raw.pat.conc.lit[raw.pat.conc.lit$Luokitus == i.raw.class &
| |
| raw.pat.conc.lit$Patogeeni == Pathogen[i], "Result"] else raw.pat.conc[i,2] <- i.raw.pat.conc.val[[i]]
| |
| }
| |
| | |
| # Rakennetaan objekti, joka kertoo mitkä puhdistusmenetelmät ovat käytössä ja miten tehokkaita ne ovat
| |
| | |
| treat.used <- data.frame(Treatment = c("Perinteinen puhdistus","Hyvin toimiva puhdistus","Tehostettu puhdistus","Hidas hiekkasuodatus",
| |
| "Kalkkikivisuodatus","Aktiivihiilisuodatus","UV"), Active = 0)
| |
| treat.used$Active[i.treat.used] <- 1
| |
| if(1 %in% i.treat.used) {if(2 %in% i.treat.used) {if(3 %in% i.treat.used){treat.used$Active[c(1,2)] <- 0} else {treat.used$Active[c(1,3)] <- 0}}
| |
| else {treat.used$Active[c(2,3)] <- 0}} else {treat.used$Active[c(1,2,3)] <- 0}
| |
| | |
| treat.pat.eff <- op_baseGetData("opasnet_base", "Op_fi2656")
| |
| treat.pat.eff <- treat.pat.eff[,c("Patogeeni", "Vedenpuhdistusmenetelmä","Result")]
| |
| colnames(treat.pat.eff)[1:2] <- c("Pathogen", "Treatment")
| |
| | |
| treat.pat.reduct <- merge(treat.pat.eff, treat.used)
| |
| | |
| treat.pat.reduct$active.reduct <- treat.pat.reduct$Result * treat.pat.reduct$Active
| |
| | |
| treat.pat.reduct.tot <- as.data.frame(as.table(tapply(treat.pat.reduct$active.reduct, treat.pat.reduct$Pathogen, sum))) # lasketaan käytössä olevat
| |
| # log vähenemät yhteen
| |
| colnames(treat.pat.reduct.tot) <- c("Pathogen", "Treat.pat.reduct")
| |
| | |
| # Desinfiointi, klooraus
| |
| | |
| Cl.test.sens <- 0
| |
| | |
| f.Cl.pat.red <- function(ct, sens) { # Free chlorine disinfection log reduct estimation function
| |
| out <- NA
| |
| if (sum(sens) == 0) out <- 0
| |
| if (ct < sens[1] & sens[1] > 0) {out <- ct * (1 / sens[1])}
| |
| if (ct >= sens[1] & sens[1] > 0) {out <- 1 + (ct - sens[1]) * (1 / (sens[2] - sens[1]))}
| |
| if (ct >= sens[2] & sens[2] > 0) {out <- 2 + (ct - sens[2]) * (1 / (sens[3] - sens[2]))}
| |
| if (ct >= sens[3] & sens[3] > 0 & sens[4] > 0) {out <- 3 + (ct - sens[3]) * (1 / (sens[4] - sens[3]))}
| |
| if (ct >= sens[3] & sens[3] > 0 & sens[4] == 0) {out <- 3 + (ct - sens[3]) * (1 / (sens[3] - sens[2]))}
| |
| if (ct >= sens[4] & sens[4] > 0 & sens[5] > 0) {out <- 4 + (ct - sens[4]) * (1 / (sens[5] - sens[4]))}
| |
| if (ct >= sens[4] & sens[4] > 0 & sens[5] == 0) {out <- 4 + (ct - sens[4]) * (1 / (sens[4] - sens[3]))}
| |
| if (ct >= sens[5] & sens[5] > 0) {out <- 5}
| |
| out
| |
| }
| |
| | |
| f.tap.tthm.conc <- function(Method, ph, temp, doc, react.time, free.cl.dose, br.conc) { # TTHM concentration estimation function
| |
| if(Method == "Amy") return(0.0412 * (doc ^ 1.098) * (free.cl.dose ^ 0.152) * (br.conc ^ 0.068) * (temp ^ 0.609) * (ph ^ 1.601) * (react.time ^ 0.263))
| |
| if(Method == "Rodriguez") return(0.044 * (doc ^ 1.030) * (react.time ^ 0.262) * (ph ^ 1.149) * (free.cl.dose ^ 0.277) * (temp ^ 0.968))
| |
| }
| |
| | |
| #if(Cl.used == 1) { # parameter to be removed
| |
| Mrt <- 12
| |
| N.cstr <- 6
| |
| Ttimes <- c(0.001,0.01,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1,1.1,1.2,1.3,1.4,1.5,1.6,2,2.5,4)
| |
| Times <- Ttimes * Mrt
| |
| Times.inc <- Times - c(0,Times[1:20])
| |
| Probability <- (Times^(N.cstr - 1) * exp(-N.cstr * Times / Mrt))/(factorial(N.cstr - 1) * (Mrt / N.cstr) ^ N.cstr)
| |
| if(Cl.test.sens == 1) Cl.conc <- 0 else Cl.conc <- Cl.dose
| |
| Cl.t.inact <- 0.13
| |
| Cl.conc.t <- Cl.conc * exp(-Cl.t.inact * Times)
| |
| Cl.conc.t.inc <- Cl.conc.t * Times.inc
| |
| Cl.conc.t.cum <- cumsum(Cl.conc.t.inc)
| |
| Cl.conc.t.dist <- mean(sample(Cl.conc.t.cum, 10000, TRUE, Probability))
| |
| Cl.sens.pat <- data.frame(Cl.credits = rep(1:5, each = 6), Pathogen, Cl.sens = c(0.152,0.17,0.12,0.09,0,75,0.294,0.34,0.16,0.18,0,150,0.436,
| |
| 0.52,0.2,0.245,0,216,0,1.06,0.3,0.314,0,0,0,0,0,0,0,0)) # log reductions for different "credits"
| |
| Cl.pat.reduct <- NA
| |
| for (i in 1:length(levels(Cl.sens.pat$Pathogen))) {
| |
| Cl.pat.reduct[i] <- f.Cl.pat.red(Cl.conc.t.dist, Cl.sens.pat[Cl.sens.pat$Pathogen == Pathogen[i], "Cl.sens"]) # epärobustia koodia
| |
| }
| |
| Cl.pat.reduct <- data.frame(Pathogen, Cl.pat.reduct)
| |
| tthm.tap.conc <- f.tap.tthm.conc("Amy", Cl.pH, Cl.temp, Cl.DOC, Cl.byprod.t, Cl.dose, Cl.Br)
| |
| tthm.tap.conc <- data.frame(Tthm.tap.con = tthm.tap.conc)
| |
| #}
| |
| | |
| # Vedenkulutus
| |
| | |
| k.v.kulutus <- 0.67 * v.kulutus / 1000 # keittämättömän veden kulutus (l)
| |
| | |
| # Patogeeneille altistuminen, pääketju
| |
| | |
| Exposure <- merge(raw.pat.conc, treat.pat.reduct.tot)
| |
| Exposure <- merge(Exposure, Cl.pat.reduct)
| |
| Exposure <- merge(Exposure, tthm.tap.conc)
| |
| Exposure$Tap.pat.conc <- Exposure$Raw.pat.conc * 10 ^ (-(Exposure$Treat.pat.reduct + Exposure$Cl.pat.reduct))
| |
| Exposure$Exp.pat <- Exposure$Tap.pat.conc * k.v.kulutus
| |
| | |
| # Terveysvaikutukset
| |
| | |
| # vaeston rakenne, yht 99.17678 %, problem?
| |
| | |
| vaesto <- op_baseGetData("opasnet_base", "Op_fi2652")[,c("Ikä","Result")]
| |
| colnames(vaesto) <- c("Age", "Osuus")
| |
| | |
| vaesto$Populaatio <- vaesto$Osuus * vaeston.koko
| |
| | |
| odotettu.elinika <- 81
| |
| | |
| f.exact.beta.poisson <- function(Param1, Param2, Dose) 1 - exp(-(Param1 / (Param1 + Param2)) * Dose)
| |
| f.beta.poisson.approx <- function(Param1, Param2, Dose) 1 - (1 + Dose / Param2)^(-Param1)
| |
| f.exponential <- function(Param1, Dose) 1 - exp(-Param1 * Dose)
| |
| f.alt.exponential <- function(Param1, Param2, Dose) 1 - (1 + (Dose / Param1))^(Param2)
| |
| | |
| dose.response <- op_baseGetData("opasnet_base", "Op_fi2653")
| |
| dose.response <- data.frame(Pathogen = unique(dose.response$Pathogen), Method = dose.response$Result.Text[dose.response$Parameter ==
| |
| "Function type"], Parameter1 = dose.response$Result[dose.response$Parameter == "Param1"], Parameter2 = dose.response$Result[
| |
| dose.response$Parameter == "Param2"])
| |
| | |
| dose.response <- merge(dose.response, Exposure[, c("Pathogen", "Exp.pat")])
| |
| | |
| for (i in 1:nrow(dose.response)) {
| |
| if(dose.response$Method[i] == "Exact beta Poisson") dose.response$P.inf[i] <- f.exact.beta.poisson(dose.response$Parameter1[i],
| |
| dose.response$Parameter2[i], dose.response$Exp.pat[i])
| |
| if(dose.response$Method[i] == "Beta Poisson approximation") dose.response$P.inf[i] <- f.beta.poisson.approx(dose.response$Parameter1[i],
| |
| dose.response$Parameter2[i], dose.response$Exp.pat[i])
| |
| if(dose.response$Method[i] == "Exponential") dose.response$P.inf[i] <- f.exponential(dose.response$Parameter1[i],
| |
| dose.response$Exp.pat[i])
| |
| if(dose.response$Method[i] == "Alternative exponential") dose.response$P.inf[i] <- f.alt.exponential(dose.response$Parameter1[i],
| |
| dose.response$Parameter2[i], dose.response$Exp.pat[i])
| |
| }
| |
| | |
| # infektioiden terveysvaikutukset
| |
| | |
| P.ill.g.inf <- data.frame(Pathogen, P.ill.g.inf = c(0.33, 1 - (270 / 1540), 0.9, 0.7, 0.71, 1)) # todennäköisyys sairastua kun saa infektion
| |
| | |
| # Kampylobakteeri, DALYt per infektio
| |
| | |
| P.treat.g.ill.Kamp.Gastr <- data.frame(Pathogen = Pathogen[c(1,1,1)], Outcome = "Gastroenteritis", ill.treat = c("Untreated",
| |
| "General practitioner", "Hospitalised", "Unspecified")[c(1,2,3)], P.treat.g.ill = c(0.7627, 0.2373, 0.0097))
| |
| | |
| P.treat.ill.g.inf.Kamp.Gastr <- merge(P.treat.g.ill.Kamp.Gastr, P.ill.g.inf)
| |
| P.treat.ill.g.inf.Kamp.Gastr$P.treat.ill.g.inf <- P.treat.ill.g.inf.Kamp.Gastr$P.ill.g.inf *
| |
| P.treat.ill.g.inf.Kamp.Gastr$P.treat.g.ill
| |
| | |
| duration.ill.treat.Kamp.Gastr <- data.frame(Outcome = c("Gastroenteritis"), ill.treat = c("Untreated", "General practitioner",
| |
| "Hospitalised", "Unspecified")[c(1,2,3)], dur.ill = c(5.1 / 365, 8.4 / 365, 14.39 / 365))
| |
| | |
| severity.ill.treat.Kamp.Gastr <- data.frame(Outcome = c("Gastroenteritis"), ill.treat = c("Untreated", "General practitioner",
| |
| "Hospitalised", "Unspecified")[c(1,2,3)], sev.ill = c(0.067, 0.393, 0.393))
| |
| | |
| daly.ill.treat.Kamp.Gastr <- merge(P.treat.ill.g.inf.Kamp.Gastr, duration.ill.treat.Kamp.Gastr)
| |
| daly.ill.treat.Kamp.Gastr <- merge(daly.ill.treat.Kamp.Gastr, severity.ill.treat.Kamp.Gastr)
| |
| daly.ill.treat.Kamp.Gastr$dalys <- daly.ill.treat.Kamp.Gastr$P.treat.ill.g.inf * daly.ill.treat.Kamp.Gastr$dur.ill *
| |
| daly.ill.treat.Kamp.Gastr$sev.ill
| |
| | |
| | |
| P.death.g.ill.Gastr <- 0.0004
| |
| P.death.g.inf.Gastr <- P.death.g.ill.Gastr * P.ill.g.inf$P.ill.g.inf[P.ill.g.inf$Pathogen == "Kampylobakteeri"]
| |
| death.Gastr.life.lost <- 13.2
| |
| daly.death.Kamp.Gastr <- P.death.g.inf.Gastr * death.Gastr.life.lost
| |
| | |
| ## GBS Kamp.
| |
| | |
| P.gbs.g.ill <- 2e-004
| |
| P.gbs.g.inf <- P.gbs.g.ill * P.ill.g.inf$P.ill.g.inf[P.ill.g.inf$Pathogen == "Kampylobakteeri"]
| |
| dur.sev.factor.gbs <- data.frame(Outcome = c("Clinical GBS", "Residual GBS"), dur.sev.factor = c(0.29, 5.8)) # duration * severity * fraction?
| |
| daly.Kamp.gbs <- data.frame(dur.sev.factor.gbs$Outcome, dalys = dur.sev.factor.gbs$dur.sev.factor * P.gbs.g.inf)
| |
| | |
| P.death.g.gbs <- 0.08 / 3 # triangular 0.01, 0.02, 0.05
| |
| P.death.g.inf.gbs <- P.death.g.gbs * P.gbs.g.inf
| |
| death.gbs.life.lost <- 18.7
| |
| daly.death.Kamp.gbs <- P.death.g.inf.gbs * death.gbs.life.lost
| |
| | |
| ## reactive arthritis Kamp.
| |
| | |
| P.arth.g.ill <- 0.02 # triangluar 0.01, 0.02, 0.03
| |
| P.arth.g.inf <- P.arth.g.ill * P.ill.g.inf$P.ill.g.inf[P.ill.g.inf$Pathogen == "Kampylobakteeri"]
| |
| duration.arth <- 6 / 52
| |
| severity.arth <- 0.21
| |
| daly.Kamp.arth <- P.arth.g.inf * duration.arth * severity.arth
| |
| | |
| # E.coli
| |
| | |
| P.wd.g.ill <- 0.53 # watery diarrhea
| |
| P.wd.g.inf <- P.wd.g.ill * P.ill.g.inf$P.ill.g.inf[P.ill.g.inf$Pathogen == "E.coli O157:H7"]
| |
| severity.wd <- 0.067
| |
| duration.wd <- 3.4 / 365
| |
| daly.wd.Ecoli <- P.wd.g.inf * severity.wd * duration.wd
| |
| | |
| P.hc.g.ill <- 0.47
| |
| P.hc.g.inf <- P.hc.g.ill * P.ill.g.inf$P.ill.g.inf[P.ill.g.inf$Pathogen == "E.coli O157:H7"]
| |
| severity.hc <- 0.39
| |
| duration.hc <- 5.6 / 365
| |
| daly.hc.Ecoli <- P.hc.g.inf * severity.hc * duration.hc
| |
| | |
| P.death.g.ill.Ecoli <- 0.00027
| |
| P.death.g.inf.Ecoli <- P.death.g.ill.Ecoli * P.ill.g.inf$P.ill.g.inf[P.ill.g.inf$Pathogen == "E.coli O157:H7"]
| |
| age.death.Ecoli <- 81 - 13.2
| |
| daly.death.Ecoli <- P.death.g.inf.Ecoli * (odotettu.elinika - age.death.Ecoli)
| |
| | |
| ## Haemolytic uraemic syndrome (HUS)
| |
| | |
| P.hus.g.ill <- 0.01
| |
| P.hus.g.inf <- P.hus.g.ill * P.ill.g.inf$P.ill.g.inf[P.ill.g.inf$Pathogen == "E.coli O157:H7"]
| |
| severity.hus <- 0.93
| |
| duration.hus <- 21 / 365
| |
| daly.hus.Ecoli <- P.hus.g.inf * severity.hus * duration.hus
| |
| | |
| P.death.g.hus <- 0.04
| |
| P.death.hus.g.inf <- P.death.g.hus * P.hus.g.inf
| |
| age.death.hus.Ecoli <- 81 - 26.2
| |
| daly.death.hus.Ecoli <- P.death.hus.g.inf * (odotettu.elinika - age.death.hus.Ecoli)
| |
| | |
| ## End Stage Renal Disease (ESRD)
| |
| | |
| P.esrd.g.hus <- 0.118
| |
| P.esrd.g.inf <- P.hus.g.inf * P.esrd.g.hus
| |
| severity.duration.hus <- 8.7 # severity * duration
| |
| daly.esrd.Ecoli <- P.esrd.g.inf * severity.duration.hus
| |
| | |
| P.death.g.esrd <- 0.0252
| |
| P.death.esrd.g.inf <- P.esrd.g.inf * P.death.g.esrd
| |
| age.death.esrd.Ecoli <- 81 - 34
| |
| daly.death.esrd.Ecoli <- P.death.esrd.g.inf * (odotettu.elinika - age.death.esrd.Ecoli)
| |
| | |
| # Rotavirus
| |
| | |
| P.treat.g.ill.Rotavirus <- data.frame(Pathogen = "Rotavirus", ill.treat = c("Untreated",
| |
| "General practitioner", "Hospitalised")[rep(1:3, each = 82)], Age = rep(0:81, 3), P.treat.g.ill = c(rep(0.82,5),
| |
| rep(0.95, 10), rep(0.99, 50), rep(0.97, 17), rep(0.137, 5), rep(0.0244, 5), rep(0.0511, 5), rep(0.0127, 50),
| |
| rep(0.0299, 17), rep(0.0416, 5), rep(0.0213, 5), rep(0, 72)))
| |
| | |
| P.treat.ill.g.inf.Rotavirus <- merge(P.treat.g.ill.Rotavirus, P.ill.g.inf)
| |
| P.treat.ill.g.inf.Rotavirus$P.treat.g.inf <- P.treat.ill.g.inf.Rotavirus$P.ill.g.inf * P.treat.ill.g.inf.Rotavirus$P.treat.g.ill
| |
| | |
| duration.ill.treat.Rotavirus <- data.frame(ill.treat = c("Untreated", "General practitioner","Hospitalised"), dur.ill = c(4.9 / 365,
| |
| 7.1 / 365, 7.7 / 365))
| |
| | |
| severity.ill.treat.Rotavirus <- data.frame(ill.treat = c("Untreated", "General practitioner", "Hospitalised"), sev.ill = c(0.067,
| |
| 0.393, 0.393))
| |
| | |
| daly.ill.treat.Rotavirus <- merge(P.treat.ill.g.inf.Rotavirus, duration.ill.treat.Rotavirus)
| |
| daly.ill.treat.Rotavirus <- merge(daly.ill.treat.Rotavirus, severity.ill.treat.Rotavirus)
| |
| daly.ill.treat.Rotavirus$dalys <- daly.ill.treat.Rotavirus$P.treat.g.inf * daly.ill.treat.Rotavirus$dur.ill *
| |
| daly.ill.treat.Rotavirus$sev.ill
| |
| | |
| | |
| P.death.Rotavirus <- data.frame(Age = 0:81, P.death.g.ill = c(rep(2.13e-005, 5), rep(0, 77)))
| |
| P.death.Rotavirus$P.death.g.inf <- P.death.Rotavirus$P.death.g.ill * P.ill.g.inf$P.ill.g.inf[P.ill.g.inf$Pathogen == "Rotavirus"]
| |
| P.death.Rotavirus$Life.lost <- odotettu.elinika - P.death.Rotavirus$Age
| |
| daly.death.Rotavirus <- data.frame(Age = P.death.Rotavirus$Age, dalys = P.death.Rotavirus$P.death.g.inf * P.death.Rotavirus$Life.lost)
| |
| | |
| # Norovirus
| |
| | |
| P.treat.g.ill.Norovirus <- data.frame(Pathogen = "Norovirus", ill.treat = c("Untreated",
| |
| "General practitioner", "Hospitalised")[rep(1:3, each = 82)], Age = rep(0:81, 3), P.treat.g.ill = c(rep(0.94876706,5),
| |
| rep(0.9902, 5), rep(0.98239, 5), rep(0.98434, 51), rep(0.992741, 16), rep(0.0448,5), rep(8.6e-003, 5), rep(0.0154, 5),
| |
| rep(0.0137, 51), rep(6.17e-003, 16), rep(6.43e-003,5), rep(1.2e-003, 5), rep(2.21e-003, 5), rep(1.96e-003, 51),
| |
| rep(8.85e-004, 16)))
| |
| | |
| P.treat.ill.g.inf.Norovirus <- merge(P.treat.g.ill.Norovirus, P.ill.g.inf)
| |
| P.treat.ill.g.inf.Norovirus$P.treat.g.inf <- P.treat.ill.g.inf.Norovirus$P.ill.g.inf * P.treat.ill.g.inf.Norovirus$P.treat.g.ill
| |
| | |
| duration.ill.treat.Norovirus <- data.frame(ill.treat = c("Untreated", "General practitioner","Hospitalised"), dur.ill = c(3.8 / 365,
| |
| 5.73 / 365, 7.23 / 365))
| |
| | |
| severity.ill.treat.Norovirus <- data.frame(ill.treat = c("Untreated", "General practitioner", "Hospitalised"), sev.ill = c(0.067,
| |
| 0.393, 0.393))
| |
| | |
| daly.ill.treat.Norovirus <- merge(P.treat.ill.g.inf.Norovirus, duration.ill.treat.Norovirus)
| |
| daly.ill.treat.Norovirus <- merge(daly.ill.treat.Norovirus, severity.ill.treat.Norovirus)
| |
| daly.ill.treat.Norovirus$dalys <- daly.ill.treat.Norovirus$P.treat.g.inf * daly.ill.treat.Norovirus$dur.ill *
| |
| daly.ill.treat.Norovirus$sev.ill
| |
| | |
| P.death.Norovirus <- data.frame(Age = 0:81, P.death.g.ill = c(rep(2.94e-006, 5), rep(0, 61), rep(2.04e-004, 16)))
| |
| P.death.Norovirus$P.death.g.inf <- P.death.Norovirus$P.death.g.ill * P.ill.g.inf$P.ill.g.inf[P.ill.g.inf$Pathogen == "Norovirus"]
| |
| P.death.Norovirus$Life.lost <- odotettu.elinika - P.death.Norovirus$Age
| |
| daly.death.Norovirus <- data.frame(Age = P.death.Norovirus$Age, dalys = P.death.Norovirus$P.death.g.inf * P.death.Norovirus$Life.lost)
| |
| | |
| # Cryptosporidium
| |
| | |
| P.treat.g.ill.Crypt <- data.frame(Pathogen = "Cryptosporidium", ill.treat = c("Untreated",
| |
| "General practitioner", "Hospitalised")[rep(1:3, each = 82)], Age = rep(0:81, 3), P.treat.g.ill = c(rep(0.9175730049999999,5),
| |
| rep(0.80937, 5), rep(0.6810499999999999, 5), rep(0.9774191, 50), rep(0.94706, 17), rep(0.082,5), rep(0.188, 5), rep(0.316, 5),
| |
| rep(0.0209, 50), rep(0.0367, 17), rep(4.26e-004,5), rep(2.63e-003, 5), rep(2.95e-003, 5), rep(1.66e-003, 50), rep(0.0146, 17)))
| |
| | |
| P.treat.ill.g.inf.Crypt <- merge(P.treat.g.ill.Crypt, P.ill.g.inf)
| |
| P.treat.ill.g.inf.Crypt$P.treat.g.inf <- P.treat.ill.g.inf.Crypt$P.ill.g.inf * P.treat.ill.g.inf.Crypt$P.treat.g.ill
| |
| | |
| duration.ill.treat.Crypt <- data.frame(ill.treat = c("Untreated", "General practitioner","Hospitalised"), dur.ill = c(3.5 / 365,
| |
| 7 /365, 18.4 / 365))
| |
| | |
| severity.ill.treat.Crypt <- data.frame(ill.treat = c("Untreated", "General practitioner", "Hospitalised"), sev.ill = c(0.067,
| |
| 0.393, 0.393))
| |
| | |
| daly.ill.treat.Crypt <- merge(P.treat.ill.g.inf.Crypt, duration.ill.treat.Crypt)
| |
| daly.ill.treat.Crypt <- merge(daly.ill.treat.Crypt, severity.ill.treat.Crypt)
| |
| daly.ill.treat.Crypt$dalys <- daly.ill.treat.Crypt$P.treat.g.inf * daly.ill.treat.Crypt$dur.ill *
| |
| daly.ill.treat.Crypt$sev.ill
| |
| | |
| P.death.Crypt <- data.frame(Age = 0:81, P.death.g.ill = c(rep(9.95e-007, 5), rep(0, 10), rep(2.09e-005, 50), rep(1.64e-003, 17)))
| |
| P.death.Crypt$P.death.g.inf <- P.death.Crypt$P.death.g.ill * P.ill.g.inf$P.ill.g.inf[P.ill.g.inf$Pathogen == "Cryptosporidium"]
| |
| P.death.Crypt$Life.lost <- odotettu.elinika - P.death.Crypt$Age
| |
| daly.death.Crypt <- data.frame(Age = P.death.Crypt$Age, dalys = P.death.Crypt$P.death.g.inf * P.death.Crypt$Life.lost)
| |
| | |
| # Giardia
| |
| | |
| P.treat.g.ill.Giardia <- data.frame(Pathogen = "Giardia", ill.treat = c("Untreated",
| |
| "General practitioner", "Hospitalised")[rep(1:3, each = 82)], Age = rep(0:81, 3), P.treat.g.ill = c(rep(0.9376,5),
| |
| rep(0.91034, 5), rep(0.72642, 5), rep(0.92486, 50), 0.54596, rep(0.5365, 16), rep(0.0609,5), rep(0.0852, 5), rep(0.272, 5),
| |
| rep(0.0721, 50), rep(0.451, 17), rep(1.5e-003,5), rep(4.46e-003, 5), rep(1.58e-003, 5), rep(3.04e-003, 51), rep(0.0125, 16)))
| |
| | |
| P.treat.ill.g.inf.Giardia <- merge(P.treat.g.ill.Giardia, P.ill.g.inf)
| |
| P.treat.ill.g.inf.Giardia$P.treat.g.inf <- P.treat.ill.g.inf.Giardia$P.ill.g.inf * P.treat.ill.g.inf.Giardia$P.treat.g.ill
| |
| | |
| duration.ill.treat.Giardia <- data.frame(ill.treat = c("Untreated", "General practitioner","Hospitalised"), dur.ill = c(10 / 365,
| |
| 10 /365, 30 / 365))
| |
| | |
| severity.ill.treat.Giardia <- data.frame(ill.treat = c("Untreated", "General practitioner", "Hospitalised"), sev.ill = c(0.067,
| |
| 0.393, 0.393))
| |
| | |
| daly.ill.treat.Giardia <- merge(P.treat.ill.g.inf.Giardia, duration.ill.treat.Giardia)
| |
| daly.ill.treat.Giardia <- merge(daly.ill.treat.Giardia, severity.ill.treat.Giardia)
| |
| daly.ill.treat.Giardia$dalys <- daly.ill.treat.Giardia$P.treat.g.inf * daly.ill.treat.Giardia$dur.ill *
| |
| daly.ill.treat.Giardia$sev.ill
| |
| | |
| # yhteenveto DALYistä
| |
| | |
| Health.effects <- vaesto[,c("Age","Populaatio")]
| |
| | |
| Health.effects$Untreated.Gastr.Kamp <- daly.ill.treat.Kamp.Gastr[daly.ill.treat.Kamp.Gastr$ill.treat == "Untreated", c("dalys")]
| |
| Health.effects$GP.Gastr.Kamp <- daly.ill.treat.Kamp.Gastr[daly.ill.treat.Kamp.Gastr$ill.treat == "General practitioner", c("dalys")]
| |
| Health.effects$Hospitalised.Gastr.Kamp <- daly.ill.treat.Kamp.Gastr[daly.ill.treat.Kamp.Gastr$ill.treat == "Hospitalised", c("dalys")]
| |
| Health.effects$Death.Gastr.Kamp <- daly.death.Kamp.Gastr
| |
| | |
| Health.effects$Clinical.GBS.Kamp <- daly.Kamp.gbs$dalys[1]
| |
| Health.effects$Residual.GBS.Kamp <- daly.Kamp.gbs$dalys[2]
| |
| Health.effects$Death.GBS.Kamp <- daly.death.Kamp.gbs
| |
| | |
| Health.effects$Arth.Kamp <- daly.Kamp.arth
| |
| | |
| Health.effects$WD.Ecoli <- daly.wd.Ecoli
| |
| Health.effects$HC.Ecoli <- daly.hc.Ecoli
| |
| Health.effects$Death.Ecoli <- daly.death.Ecoli
| |
| | |
| Health.effects$HUS.Ecoli <- daly.hus.Ecoli
| |
| Health.effects$Death.HUS.Ecoli <- daly.death.hus.Ecoli
| |
| | |
| Health.effects$ESRD.Ecoli <- daly.esrd.Ecoli
| |
| Health.effects$Death.ESRD.Ecoli <- daly.death.esrd.Ecoli
| |
| | |
| Health.effects <- merge(Health.effects, daly.ill.treat.Rotavirus[daly.ill.treat.Rotavirus$ill.treat == "Untreated", c("Age", "dalys")])
| |
| colnames(Health.effects)[ncol(Health.effects)] <- "Untreated.Rotavirus"
| |
| Health.effects <- merge(Health.effects, daly.ill.treat.Rotavirus[daly.ill.treat.Rotavirus$ill.treat == "General practitioner", c("Age", "dalys")])
| |
| colnames(Health.effects)[ncol(Health.effects)] <- "GP.Rotavirus"
| |
| Health.effects <- merge(Health.effects, daly.ill.treat.Rotavirus[daly.ill.treat.Rotavirus$ill.treat == "Hospitalised", c("Age", "dalys")])
| |
| colnames(Health.effects)[ncol(Health.effects)] <- "Hospitalised.Rotavirus"
| |
| Health.effects <- merge(Health.effects, daly.death.Rotavirus)
| |
| colnames(Health.effects)[ncol(Health.effects)] <- "Death.Rotavirus"
| |
| | |
| Health.effects <- merge(Health.effects, daly.ill.treat.Norovirus[daly.ill.treat.Norovirus$ill.treat == "Untreated", c("Age", "dalys")])
| |
| colnames(Health.effects)[ncol(Health.effects)] <- "Untreated.Norovirus"
| |
| Health.effects <- merge(Health.effects, daly.ill.treat.Norovirus[daly.ill.treat.Norovirus$ill.treat == "General practitioner", c("Age", "dalys")])
| |
| colnames(Health.effects)[ncol(Health.effects)] <- "GP.Norovirus"
| |
| Health.effects <- merge(Health.effects, daly.ill.treat.Norovirus[daly.ill.treat.Norovirus$ill.treat == "Hospitalised", c("Age", "dalys")])
| |
| colnames(Health.effects)[ncol(Health.effects)] <- "Hospitalised.Norovirus"
| |
| Health.effects <- merge(Health.effects, daly.death.Norovirus)
| |
| colnames(Health.effects)[ncol(Health.effects)] <- "Death.Norovirus"
| |
| | |
| Health.effects <- merge(Health.effects, daly.ill.treat.Crypt[daly.ill.treat.Crypt$ill.treat == "Untreated", c("Age", "dalys")])
| |
| colnames(Health.effects)[ncol(Health.effects)] <- "Untreated.Crypt"
| |
| Health.effects <- merge(Health.effects, daly.ill.treat.Crypt[daly.ill.treat.Crypt$ill.treat == "General practitioner", c("Age", "dalys")])
| |
| colnames(Health.effects)[ncol(Health.effects)] <- "GP.Crypt"
| |
| Health.effects <- merge(Health.effects, daly.ill.treat.Crypt[daly.ill.treat.Crypt$ill.treat == "Hospitalised", c("Age", "dalys")])
| |
| colnames(Health.effects)[ncol(Health.effects)] <- "Hospitalised.Crypt"
| |
| Health.effects <- merge(Health.effects, daly.death.Crypt)
| |
| colnames(Health.effects)[ncol(Health.effects)] <- "Death.Crypt"
| |
| | |
| Health.effects <- merge(Health.effects, daly.ill.treat.Giardia[daly.ill.treat.Giardia$ill.treat == "Untreated", c("Age", "dalys")])
| |
| colnames(Health.effects)[ncol(Health.effects)] <- "Untreated.Giardia"
| |
| Health.effects <- merge(Health.effects, daly.ill.treat.Giardia[daly.ill.treat.Giardia$ill.treat == "General practitioner", c("Age", "dalys")])
| |
| colnames(Health.effects)[ncol(Health.effects)] <- "GP.Giardia"
| |
| Health.effects <- merge(Health.effects, daly.ill.treat.Giardia[daly.ill.treat.Giardia$ill.treat == "Hospitalised", c("Age", "dalys")])
| |
| colnames(Health.effects)[ncol(Health.effects)] <- "Hospitalised.Giardia"
| |
| | |
| Health.effects <- reshape(Health.effects, idvar = c("Age"), times = colnames(Health.effects)[-c(1,2)], timevar = "Outcome",
| |
| varying = list(colnames(Health.effects)[-c(1,2)]), direction = "long")
| |
| colnames(Health.effects)[4] <- "P.daly.g.inf"
| |
|
| |
| Health.effects$Pathogen <- NA
| |
| Health.effects$Pathogen[grep(".Kamp", Health.effects$Outcome)] <- Pathogen[1]
| |
| Health.effects$Pathogen[grep(".Ecoli", Health.effects$Outcome)] <- Pathogen[2]
| |
| Health.effects$Pathogen[grep(".Rotavirus", Health.effects$Outcome)] <- Pathogen[3]
| |
| Health.effects$Pathogen[grep(".Norovirus", Health.effects$Outcome)] <- Pathogen[4]
| |
| Health.effects$Pathogen[grep(".Crypt", Health.effects$Outcome)] <- Pathogen[5]
| |
| Health.effects$Pathogen[grep(".Giardia", Health.effects$Outcome)] <- Pathogen[6]
| |
| | |
| Health.effects <- merge(Health.effects, dose.response[,c("Pathogen", "P.inf")])
| |
| Health.effects$DALYs <- (1 - (1 - Health.effects$P.inf * Health.effects$P.daly.g.inf)^365) * Health.effects$Populaatio
| |
| | |
| # TTHM terveysvaikutukset (ylimääräiset virtsarakon syövät) | |
| | |
| bladder.cancer.incidence <- data.frame(Age = 0:81, Incidence = c(rep(0, 5), rep(1.7, 5), rep(0, 5), rep(1.3, 5), rep(1, 5), rep(0, 5),
| |
| rep(1.1, 5), rep(5.5, 5), rep(11.7, 5), rep(30.6, 5), rep(53, 5), rep(85.2, 5), rep(173.7, 5), rep(245.3, 5), rep(304.6, 5),
| |
| rep(389.8, 5), rep(441.3, 2)))
| |
| | |
| bladder.cancer.slope <- log(1.006134)
| |
| bladder.cancer.OR <- data.frame(OR = exp(bladder.cancer.slope * tthm.tap.conc[1,1] * k.v.kulutus))
| |
| | |
| bladder.cancer.excess <- merge(bladder.cancer.incidence, vaesto)
| |
| bladder.cancer.excess <- merge(bladder.cancer.excess, bladder.cancer.OR)
| |
| | |
| bladder.cancer.excess$Cases <- bladder.cancer.excess$Populaatio * bladder.cancer.excess$Incidence * (bladder.cancer.excess$OR - 1) /
| |
| bladder.cancer.excess$OR / 100000
| |
| | |
| bladder.cancer.dalys <- bladder.cancer.excess[, c("Age", "Cases")]
| |
| bladder.cancer.dalys$Survival.rate <- c(rep(0.83, 55), rep(0.7, 10), rep(0.65, 10), rep(0.51, 7))
| |
| | |
| bladder.cancer.dalys$Survivors <- bladder.cancer.dalys$Cases * bladder.cancer.dalys$Survival.rate
| |
| bladder.cancer.dalys$Terminal.cases <- bladder.cancer.dalys$Cases * (1 - bladder.cancer.dalys$Survival.rate)
| |
| bladder.cancer.dalys <- reshape(bladder.cancer.dalys[,c("Age", "Survivors", "Terminal.cases")], idvar = "Age", times = c("Survivors",
| |
| "Terminal.cases"), timevar = "Cases", varying = list(c("Survivors", "Terminal.cases")), direction = "long")
| |
| colnames(bladder.cancer.dalys)[3] <- "Count"
| |
| | |
| cancer.clinical.free.dur <- data.frame(Cases = c("Survivors", "Terminal.cases"), Clinical.free.state = c(4.88, 2.55))
| |
| cancer.initial.treatment.dur <- data.frame(Initial.treatment = 0.12)
| |
| cancer.pre.terminal.dur <- data.frame(Cases = "Terminal.cases", Pre.terminal = 0.75)
| |
| cancer.terminal.dur <- data.frame(Cases = "Terminal.cases", Terminal = 0.08)
| |
| cancer.death.dur <- data.frame(Cases = "Terminal.cases", Age = 0:81, Death = 81:0)
| |
| | |
| cancer.dur <- merge(bladder.cancer.dalys[,c("Age", "Cases")], cancer.clinical.free.dur, all = TRUE)
| |
| cancer.dur <- merge(cancer.dur, cancer.initial.treatment.dur, all = TRUE)
| |
| cancer.dur <- merge(cancer.dur, cancer.pre.terminal.dur, all = TRUE)
| |
| cancer.dur <- merge(cancer.dur, cancer.terminal.dur, all = TRUE)
| |
| cancer.dur <- merge(cancer.dur, cancer.death.dur, all = TRUE)
| |
| | |
| cancer.dur <- reshape(cancer.dur, idvar = c("Age", "Cases"), times = colnames(cancer.dur)[-c(1,2)], timevar = "Outcome",
| |
| varying = list(colnames(cancer.dur)[-c(1,2)]), direction = "long")
| |
| colnames(cancer.dur)[4] <- "Duration"
| |
| | |
| cancer.clinical.free.sev <- data.frame(Clinical.free.state = 0.18)
| |
| cancer.initial.treatment.sev <- data.frame(Initial.treatment = 0.27)
| |
| cancer.pre.terminal.sev <- data.frame(Cases = "Terminal.cases", Pre.terminal = 0.64)
| |
| cancer.terminal.sev <- data.frame(Cases = "Terminal.cases", Terminal = 0.93)
| |
| cancer.death.sev <- data.frame(Cases = "Terminal.cases", Age = 0:81, Death = 1)
| |
| | |
| cancer.sev <- merge(bladder.cancer.dalys[,c("Age", "Cases")], cancer.clinical.free.sev, all = TRUE)
| |
| cancer.sev <- merge(cancer.sev, cancer.initial.treatment.sev, all = TRUE)
| |
| cancer.sev <- merge(cancer.sev, cancer.pre.terminal.sev, all = TRUE)
| |
| cancer.sev <- merge(cancer.sev, cancer.terminal.sev, all = TRUE)
| |
| cancer.sev <- merge(cancer.sev, cancer.death.sev, all = TRUE)
| |
| | |
| cancer.sev <- reshape(cancer.sev, idvar = c("Age", "Cases"), times = colnames(cancer.sev)[-c(1,2)], timevar = "Outcome",
| |
| varying = list(colnames(cancer.sev)[-c(1,2)]), direction = "long")
| |
| colnames(cancer.sev)[4] <- "Severity"
| |
| | |
| bladder.cancer.dalys <- merge(bladder.cancer.dalys, cancer.dur)
| |
| bladder.cancer.dalys <- merge(bladder.cancer.dalys, cancer.sev)
| |
| | |
| bladder.cancer.dalys$DALYs <- bladder.cancer.dalys$Count * bladder.cancer.dalys$Duration * bladder.cancer.dalys$Severity
| |
| | |
| # Matala syntymäpaino
| |
| | |
| syntymia.vuodessa <- vaeston.koko * 1170 / 1e5
| |
| sga.esiintyvyys <- syntymia.vuodessa * 0.1
| |
| | |
| sga.slope <- 0.0009955
| |
| sga.OR <- exp(sga.slope * tthm.tap.conc[1,1] * k.v.kulutus)
| |
| sga.excess <- (sga.OR - 1) * sga.OR * sga.esiintyvyys
| |
| | |
| #
| |
| | |
| temp <- merge(dose.response, P.ill.g.inf)
| |
| | |
| ############# TULOKSET #########################################################################################################
| |
| | |
| cat("<span style='font-size: 1.2em;font-weight:bold;'>Patogeenien konsentraatio raakavedessä</span>\n")
| |
| print(xtable(raw.pat.conc), type='html') # Patogeenien konsentraatio raakavedessä
| |
| cat("<span style='font-size: 1.2em;font-weight:bold;'>Patogeenien log vähenemä puhdistuksessa</span>\n")
| |
| print(xtable(treat.pat.reduct.tot), type='html') # Patogeenien log vähenemä puhdistuksessa
| |
| cat("<span style='font-size: 1.2em;font-weight:bold;'>Patogeeneille altistuminen ja infektion todennäköisyys</span>\n")
| |
| print(xtable(dose.response[,c("Pathogen", "Exp.pat", "P.inf")]), type="html") # Patogeeneille altistuminen ja infektion todennäköisyys
| |
| | |
| cat("<span style='font-size: 1.2em;font-weight:bold;'>Arvioitu terveysvaikutus</span>\n")
| |
| | |
| cat(sum((1 - (1 - temp$P.ill.g.inf * temp$P.inf)^365) * vaeston.koko), " vatsatautia vuodessa \n")
| |
| | |
| cat(sum(Health.effects$DALYs), " DALY:ä vatsataudeista \n")
| |
| #cat(sum(bladder.cancer.dalys$DALYs, na.rm = TRUE), " DALY:ä virtsarakon syövistä vuodessa johtuen TTHM pitoisuudesta \n")
| |
| #cat(sga.excess, " vastasyntynyttä vuodessa kärsii matalasta syntymäpainosta johtuen TTHM pitoisuudesta \n")
| |
| </rcode>
| |
| | |
| Malli on käännetty Analyticasta, R:lle. Alkuperäinen malli löytyy täältä: [[Tiedosto:Vesiopas.ANA]]. Mikäli "Patogeenipitoisuus arvio" -kenttä jätetään tekstimuotoiseksi, ladataan raakaveden [[Raakaveden patogeenipitoisuudet|luokituksen mukainen]] arvo tietokannasta.
| |
| | |
| == Käyttöohjeet Vesiopas-mallille ==
| |
| | |
| {{greenbox|
| |
| | |
| '''1. Valitse raakaveden luokitus'''
| |
| *Pohjavesi - Puhdas
| |
| **Puhdasta pohjavettä
| |
| *Pohjavesi - Pintavesikuormitus
| |
| **esim. rantaimeytymistä
| |
| *Pintavesi - Vähäinen kuormitus
| |
| **Suhteellisen puhdasta pintavettä
| |
| *Pintavesi - Keskisuuri kuormitus
| |
| **esim. pienehkö jätevesikuormitus
| |
| *Pintavesi - Suuri kuormitus
| |
| **esim. jätevesikuormitus
| |
| | |
| '''TAI'''
| |
| | |
| Kirjoita patogeenien pitoisuudet niiden laatikoihin. Jos "Patogeenipitoisuus arvio" -kenttä jätetään tekstimuotoiseksi, ladataan raakaveden [[Raakaveden patogeenipitoisuudet|luokituksen mukainen]] arvo tietokannasta.
| |
| | |
| }}
| |
| | |
| {{greenbox|
| |
| | |
| '''2. Valitse puhdistusprosessit.''' Huom! Voit valita monta vaihtoehtoa
| |
| | |
| }}
| |
| | |
| {{greenbox|
| |
| | |
| '''3. Valitse onko klooraus käytössä vai ei''' syöttämällä käytetty klooriannos (mg/l). Mikäli kloorausta ei ole, annokseksi tulee 0 mg/l. Klooraukseen liittyvät arvot on ilmoitettu oletusarvoina mutta niitä voi muuttaa haluttaessa. Jos valitset "Kaupungin oletusarvot", tulos lasketaan oletusarvojen perusteella huolimatta siitä onko niitä muutettu vai ei.
| |
| | |
| }}
| |
| | |
| {{greenbox|
| |
| | |
| '''4. Ilmoita juomaveden kulutus''' vuorokautta kohden millilitroina.
| |
| | |
| }}
| |
| | |
| {{greenbox|
| |
| | |
| '''5. Ilmoita kohdealueen väestön lukumäärä.'''
| |
| | |
| }}
| |
| | |
| {{greenbox|
| |
| | |
| 6. Tuloksen saa näkyviin uudelle sivulle "aja koodi" kohdasta.
| |
| | |
| }}
| |
| | |
| == Tulosten tulkinta ==
| |
| {{greenbox|
| |
| R-tools -nimiselle välilehdellä ilmoitetaan tulos. Kolmesta ensimmäisestä vihreästä laatikosta näkee millaisia lähtöarvoja malliin on syötetty. Kaksi alinta laatikko ilmoittavat mallin tulokset:
| |
| *Montako vatsatautitapausta alueella on vuodessa
| |
| *Monta DALYa eli toimintakyvyn vajaavuudella painotettua elinvuotta menetetään vatsatautitapausten vuoksi ko. alueella
| |
| }}
| |
| | |
| == Rajaus ==
| |
| | |
| Tässä tarkastellaan juomaveden mikrobiologisia riskejä sekä niiden aiheuttamia terveysvaikutuksia. Minkä tahansa malliin sopivan vedenpuhdistuslaitoksen tiedot voidaan syöttää arviointiin lähtötiedoiksi.
| |
| | |
| == Määritelmä ==
| |
| | |
| [[Tiedosto:Vesiopas.png]]
| |
| | |
| Talousveden laadulle on asetettu terveysperusteisia laatuvaatimuksia ja -suosituksia. Laatua koskevasta lainsäädännästä vastaa Sosiaali- ja terveysministeriö ja laadun valvonnasta kuntien terveydensuojeluviranomaiset. Hyvän veden laadun ylläpitäminen ja kehittäminen edellyttävät korkealaatuista tutkimusta ja yhteistyötä eri tahojen kanssa. Pohjavesiä tai tekopohjavesiä ei yleensä desinfioida. Raakaveden sisältämät kemikaalit, mikrobit tai talousveden valmistuksessa muodostuvat desinfioinnin sivutuotteet voivat aiheuttaa terveysriskejä talousveden käyttäjille. Vesilaitokselta lähtevä vesi saattaa viipyä pitkiäkin aikoja verkostossa. Mikäli olosuhteet ovat mikrobikasvustolle suotuisat, vesi voi muuttua verkostossa ja kiinteistöjen vesijärjestelmissä huonolaatuiseksi ja jopa terveydelle haitalliseksi. <ref>http://www.ktl.fi/portal/suomi/tietoa_terveydesta/elinymparisto/vesi</ref>
| |
| | |
| | |
| Talousvesi tuotetaan joko pohja- tai pintavedestä. Näillä on erilaiset ongelmat. Pintaveden käyttö vaatii aina varsinaisen vesilaitoksen perustamista ja siihen liittyvää tietoa, taitoa ja tekniikkaa sekä koulutettua valvontahenkilöstöä. Pohjavesi taas ei vaadi kovin monimutkaista käsittelyä, joten varsinaista vesilaitoshenkilökuntaa tarvitaan varsin vähän ja valvontakin on vähäisempää. Lisäksi meillä on nykyään useita vesilaitoksia, jotka valmistavat tekopohjavettä. Ominaisuuksiltaan tekopohjavedet saattavat olla hyvien pohjavesien kaltaisia, mutta usein vain keskitasoisen pintaveden veroisia.
| |
| | |
| | |
| Pohjaveden käsittelyyn kuuluu tavallisesti veden pH:n ja kovuuden nosto. Tähän voidaan käyttää erilaisia tekniikoita, joista pH:n säädössä kalsiumhydroksidin ja hiilidioksidin käyttö lienee yleisimpiä. Toisinaan tarvitaan lisäksi raudan tai mangaanin saostaminen vahvoilla hapettimilla kuten permanganaatilla tai kloorilla. Lisäksi heikkolaatuiset pohjavedet desinfioidaan.
| |
| | |
| | |
| Jotta pintavedestä saataisiin hyvää juomavettä, sitä joudutaan käsittelemään varsin rankasti. Vaikeinta on saada pintaveden humusainekset saostettua. Tähän käytetään erilaisten saostuskemikaalien lisäksi mm. pH:n säätöä ja humusaineksen pilkkomista voimakkailla hapettimilla kuten otsonilla. Lisäksi saostuskemikaalien (esim. alumiinin ja raudan suolat) jäämät on poistettava ja veden kovuutta nostettava niin, ettei putkisto aikojen kuluessa haperru. Väestö on myös suojattava pintavesissä aina piileviltä [http://fi.wikipedia.org/wiki/Mikrobi mikrobeilta], joten vesi täytyy desinfioida tautia aiheuttavien mikrobien, patogeenien, poistamiseksi.
| |
| | |
| | |
| Veden laatuun vaikuttavat myös verkoston kunto ja veden verkostossa viipymä aika. Jos verkostoon on kertynyt runsaasti saostumia, nämä sakat sisältävät erilaisten epäorgaanisten yhdisteiden lisäksi valtavasti bakteerimassaa. Verkoston saostumien ominaisuuksia ja niiden vaikutusta veden laatuun on Suomessa alettu tutkia vasta viime aikoina. <ref>http://www.ktl.fi/portal/suomi/julkaisut/kansanterveyslehti/lehdet_1999/2_1999/vesiepidemiat_voidaan_estaa_hyvalla_talousveden_kasittelylla/</ref>
| |
| | |
| | |
| Riskinarvioinnin tarkoituksena on tuottaa tietoa riskin todellisesta suuruudesta päätöksentekoa varten. Riskinarviointi on tieteellinen prosessi, jossa asiantuntijoilla on keskeinen rooli. Koska tutkittavia riskejä monenlaisia, riskinarviointiprosessit voivat olla hyvin erilaisia. Ympäristöterveyden alalla riskinarvioinnin katsotaan tavallisesti koostuvan neljästä vaiheesta:
| |
| *1. Vaaran tunnistaminen (aiheuttaako tutkittava tekijä vaaraa ihmiselle?)
| |
| *2. Annosvasteen arviointi (mikä on annoksen ja vaikutuksen suhde?)
| |
| *3. Altistumisen arviointi (kuinka paljon ihmiset altistuvat?)
| |
| *4. Riskin karakterisointi (kuinka suuri on terveysriski?)<ref>http://wanda.uef.fi/tkk/avoin/ymp_terveys/</ref>
| |
| | |
| | |
| Kaikkien vesilaitosten tulisi ajoittain tehdä talousvedelle riskinarviointi. Siinä selvitetään toimenpiteet eri kriisitilanteita varten ja laaditaan suunnitelmat eri ongelmatilanteita ja mahdollisia vahinkoja varten. Erilaiset vesilaitokset ja esimerkiksi lomakeskukset tarvitsevat erilaiset suunnitelmat ja toteutukset.
| |
| | |
| | |
| === Uutta koodia ===
| |
| <rcode>
| |
| | |
| variables="
| |
| name:i.raw.class|description:Raakaveden luokitus|type:selection|
| |
| options:
| |
| 'Pohjavesi - Puhdas';Pohjavesi - Puhdas;
| |
| 'Pohjavesi - Pintavesikuormitus';Pohjavesi - Pintavesikuormitus;
| |
| 'Pintavesi - Vähäinen kuormitus';Pintavesi - Vähäinen kuormitus;
| |
| 'Pintavesi - Keskisuuri kuormitus';Pintavesi - Keskisuuri kuormitus;
| |
| 'Pintavesi - Suuri kuormitus';Pintavesi - Suuri kuormitus|
| |
| category:Raakavesi: Patogeenien pitoisuudet|
| |
| name:Kampylo|description:Kampylobakteeri-pitoisuus arvio (mikrobia/l)|default:'Luokituksen mukainen'|
| |
| name:Ecoli|description:E.coli O157:H7 -pitoisuus arvio (mikrobia/l)|default:'Luokituksen mukainen'|
| |
| name:Rota|description:Rotavirus-pitoisuus arvio (mikrobia/l)|default:'Luokituksen mukainen'|
| |
| name:Noro|description:Norovirus-pitoisuus arvio (mikrobia/l)|default:'Luokituksen mukainen'|
| |
| name:Crypto|description:Cryptosporidium-pitoisuus arvio (mikrobia/l)|default:'Luokituksen mukainen'|
| |
| name:Giardia|description:Giardia-pitoisuus arvio (mikrobia/l)|default:'Luokituksen mukainen'|
| |
|
| |
|
| |
| name:Kaupunni|description:Kaupungin oletusarvot|default:'Custom'|type:selection|
| |
| options:
| |
| 'Custom';Käytä yllä määriteltyjä arvoja;
| |
| 'Op_fi2603';Kuopio|
| |
| name:Puhdistus|description:Käytössä olevat puhdistusmenetelmät|type:checkbox|
| |
| options:
| |
| 1;Koagulaatio/flotaatio;
| |
| 2;Koagulaatio toimii hyvin;
| |
| 3;Koagulaatio on tehostettu;
| |
| 4;Hiekkasuodatus;
| |
| 5;Kalkkikivisuodatus;
| |
| 6;Aktiivihiili;
| |
| 7;UV suodatus;
| |
| 8;Otsonointi;|
| |
| default:1;4;5;6|category:Vedenpuhdistus: Puhdistusprosessi ja klooraus|
| |
| name:Kloori|default:1.5|description:Klooriannos (mg/l)|
| |
|
| |
| name:VedKul|default:1153|description:veden kulutus (ml)|category:Verkosto ja kuluttajat|
| |
| name:Vaestonkoko|default:100000|description:Altistuvan väestön koko
| |
| "
| |
| #Vaestonkoko
| |
| new("ovariable",name = "inpVaestonkoko" , data = Vaestonkoko)
| |
|
| |
| #vedenkulutus
| |
| new("ovariable",name = "inpVedkul" , data = VedKul)
| |
| #Patogeenien pitoisuudet
| |
| patogeenienPitoisuudet = data.frame(c(Kampylo,Ecoli,Rota,Noro,Crypto,Giardia),c("Kampybakteeri","Ecoli",
| |
| "Rotavirus","Norovirus","Cryptosporidium","Giardia"))
| |
| names(PatogeeniPitoisuudet)[1:2] = c("Patogeenit","Pitoisuus")
| |
|
| |
| new("ovariable",name = inpPatogeenienPitoisuudet,output = patogeenienPitoisuudet)
| |
|
| |
| #Tehdaan inpKlooriAnnos ovariable Kloorauksen
| |
| Kloori = tidy(op_baseGetData("opasnet_base", "Op_fi2993"), objname = "VedDesTeh")
| |
| Kloori <- Kloori[Kloori$Menetelmä = "Klooraus",]
| |
| new("ovariable",output = InpAnnosKloori)
| |
|
| |
| #tehdaan inpVedKasTeh ovariable paalla olevista puhdistuksista
| |
| inpVedKasTeh = tidy(op_baseGetData("opasnet_base", "Op_fi2990"), objname = "VedKasTeh")
| |
| Desifiointi = tidy(op_baseGetData("opasnet_base", "Op_fi2993"), objname = "VedDesTeh")
| |
| #THIS IS GUD EXAMPLE LOOK HERE WHEN TRUPPEL ARISEZ
| |
| Desinfiointi <- Desinfiointi[Desinfiointi$Menetelmä =! "Klooraus",]
| |
| Puhdistus = data.frame(tottavaitarua = Puhdistus,Vedenpuhdistusmenetelmä = c("Perinteinen puhdistus","Hyvin toimva puhdistus","Tehostettu puhdistus",
| |
| "Hidas hiekkasuodatus","Aktiivihiilisuodatus","UV","Otsonointi"))
| |
| Puhdistus = merge(Puhdistus,Desifiointi)
| |
| InpVedKasTeh = merge(Puhdistus,InpVedKasTeh)
| |
| InpVedKasTeh$result = ifelse(InpVedKasTeh$tottavaitarua = false,InpVedKasTeh$result,0)
| |
| new("ovariable",output = InpVedKasTeh)
| |
| | |
| | |
| | |
| | |
| </rcode>
| |
| | |
| === Muuttujat ===
| |
| | |
| *[[Juomaveden patogeenit | Patogeenit]]
| |
| *[[Patogeenien pitoisuudet puhdistetussa juomavedessä]]
| |
| *[[Patogeeneille altistuminen]]
| |
| *[[Juomaveden patogeenien terveysvaikutukset | Patogeenien terveysvaikutukset]]
| |
| *[[Suomen ikäjakauma | Populaation koko]]
| |
| *[[Suomen ikäjakauma | Väestön ikärakenne]]
| |
| *[[Suomen ikäjakauma | Odotettu elinikä]]
| |
| *[[Infektion vuosittainen todennäköisyys]]
| |
| *[[Vatsatautien tapaukset]]
| |
| *[[Patogeenien DALYt vatsataudille]]
| |
| | |
| === Data ===
| |
| | |
| *[[Vedenkäsittelyn tehokkuus 2]]
| |
| *[[Raakaveden patogeenipitoisuudet 2]]
| |
| *[[Juomaveden desinfiointi]]
| |
| *[[Suomen ikäjakauma]]
| |
| *[[Patogeenien annosvasteet 2]]
| |
| *[[Paikkakuntakohtaiset tiedot talousveden käsittelyyn]]
| |
| | |
| === Paikkakuntakohtaiset tiedot ===
| |
| | |
| *[[:heande:Polaris:Raakaveden patogeenipitoisuudet/Lahti]]
| |
| *[[:heande:Polaris:Raakaveden patogeenipitoisuudet/Mikkeli]]
| |
| *[[:heande:Polaris:Raakaveden patogeenipitoisuudet/Kirkkonummi]]
| |
| *[[:heande:Polaris:Paikkakuntakohtaiset tiedot talousveden käsittelyyn/Lahti]]
| |
| *[[:heande:Polaris:Paikkakuntakohtaiset tiedot talousveden käsittelyyn/Mikkeli]]
| |
| *[[:heande:Polaris:Paikkakuntakohtaiset tiedot talousveden käsittelyyn/Kirkkonummi]]
| |
| *[[:heande:Polaris:Juomaveden desinfiointi/Lahti]]
| |
| *[[:heande:Polaris:Juomaveden desinfiointi/Mikkeli]]
| |
| *[[:heande:Polaris:Juomaveden desinfiointi/Kirkkonummi]]
| |
| *[[:heande:Polaris:Vedenkäsittelyn tehokkuus/Lahti]]
| |
| *[[:heande:Polaris:Vedenkäsittelyn tehokkuus/Mikkeli]]
| |
| *[[:heande:Polaris:Vedenkäsittelyn tehokkuus/Kirkkonummi]]
| |
| | |
| == Katso myös ==
| |
| | |
| *[[Arviointi pohjavesilaitoksen mikrobiologisista riskeistä]]
| |
| *[[Arviointi juomaveden kloorifenolien terveysvaikutuksista]]
| |
| *[[Arviointi juomaveden laadun terveysvaikutuksista/Kuopio]]
| |
| *[[:heande:Kuovesi]]
| |
| | |
| *http://www.fao.org/docrep/006/y4666e/y4666e06.htm#TopOfPage
| |
| *http://wiki.camra.msu.edu/index.php?title=Main_Page
| |
| *http://www.medicina.fi/index.php?option=com_content&view=article&id=48&Itemid=56#I
| |
| | |
| ==Viitteet==
| |
| | |
| <references/>
| |
| | |
| ==Aiheeseen liittyviä tiedostoja==
| |
| | |
| {{mfiles}}
| |
| | |
| {{eracedu}}
| |