diff --git a/.RData b/.RData deleted file mode 100644 index 15b8859..0000000 Binary files a/.RData and /dev/null differ diff --git a/.Rhistory b/.Rhistory deleted file mode 100644 index f662916..0000000 --- a/.Rhistory +++ /dev/null @@ -1,512 +0,0 @@ -t_transitions <- theme_box(t_transitions) -t_transitions <- width(t_transitions, 1, 1.4) -t_transitions <- width(t_transitions, 2, 1.4) -t_transitions <- width(t_transitions, 3, 2.4) -t_transitions <- width(t_transitions, 4, 1.3) -t_transitions <- bg(t_transitions, i = c(1, 39, 46, 53, 76, 85, 91, 103, 110), bg = "#DDDDDD", part = "body") -t_transitions <- bold(t_transitions, i = c(1, 39, 46, 53, 76, 85, 91, 103, 110)) -t_transitions <- bg(t_transitions, bg = "#EAEAEA", part = "header") -#DALY CALCULATIONS -dt.daly <- rbind(dt_daly_params) -dt.daly[ , basecase_formatted := ifelse(format == "dollar", dollar(`Base case`, largest_with_cents = 1e2), -ifelse(format == "percent", paste0(signif(`Base case`,3)*100,"%"), -signif(`Base case`,3)))] -dt.daly[ , Low := ifelse(format == "dollar", dollar(Low, largest_with_cents = 1e2), -ifelse(format == "percent", paste0(signif(Low,3)*100,"%"), -signif(Low,3)))] -dt.daly[ , High := ifelse(format == "dollar", dollar(High, largest_with_cents = 1e2), -ifelse(format == "percent", paste0(signif(High,3)*100,"%"), -signif(High,3)))] -dt.daly[ , Value := ifelse(is.na(Low), basecase_formatted, paste0(basecase_formatted, " (", Low, "–", High, ")"))] -dt.daly <- dt.daly[ , c("Category", "Description", "Value", "Source")] -#Additional parameters for calculation disability-adjusteed life years (DALYs) -dt.daly <- as_grouped_data(dt.daly, groups = c("Category")) -t_daly <- as_flextable(dt.daly) -#t_daly <- set_header_labels(t_daly, Description = "") -t_daly <- compose(t_daly, i = ~ !is.na(Category), j = "Description", -value = as_paragraph(as_chunk(Category))) -t_daly <- align(t_daly, align = "left", part = "all") -t_daly <- set_header_labels(t_daly, values = list(Value = "Value (range)")) -t_daly <- fontsize(t_daly, size = 10, part = "all") -t_daly <- theme_box(t_daly) -t_daly <- width(t_daly, 1, 2.4) -t_daly <- width(t_daly, 2, 2.4) -t_daly <- width(t_daly, 3, 1.2) -t_daly <- bg(t_daly, i = c(1, 7, 10, 13, 17, 31, 49), bg = "#DDDDDD", part = "body") -t_daly <- bold(t_daly, i = c(1, 7, 10, 13, 17, 31, 49), part = "body") -t_daly <- bg(t_daly, bg = "#EAEAEA", part = "header") -t_daly <- font(t_daly, fontname = "Times", part = "all") -t_daly <- footnote(t_daly, i=1, part="body",ref_symbols = "1", -value = as_paragraph("Sepsis: Inpatient mortality weight applied to the increased duration of hospitalization (parameter in Table S2). Probability of post-hospitalization sequelae appled to patients surviving hospitalization.")) -t_daly <- footnote(t_daly, i=17, part="body",ref_symbols = "2", -value = as_paragraph("HCV: Assumed no disability from subclinical acute HCV. Assumed some disability from acute HCV on treatment due to side effects, calculated from the difference between the disability weights used for treatment at other disease stages.")) -t_daly <- footnote(t_daly, i=31, part="body",ref_symbols = "3", -value = as_paragraph("HBV: Assumed no disability for acute, immune tolerant, and inactive carrier disease states. We assumed the disability in the chronic HBeAg- HBV would be half that of immune reactive when not on AVT and would be equal to that of immune reactive when on AVT.")) -t_daly <- footnote(t_daly, i=49, part="body",ref_symbols = "4", -value = as_paragraph("HIV: We assumed no disability for undetected (subclinical) HIV. For undetected AIDS, we assumed patients experience symptoms that are less severe than average (otherwise they would be diagnosed), and we calculated their disability weight as 50% the typical disability weight for symptomatic pre-HIV AIDS. For patients initiating AVT with pre-AIDS HIV, we assume 50% had no symptoms and 50% have symptomatic HIV that typically becomes asymptomatic about 6 months after AVT initiation. We therefore calculated the average disability weight for the first year of HIV treatment as 75% of the 'receiving treatment' weight and 25% of the 'symptomatic HIV' weight. For patients initiating AVT with AIDS, we calculated their first-year disutility as 50% that of untreated AIDS and 50% that of a typical patient on treatment. We calculated their second-year disutility as 25% that of untreated AIDS and 75% that of a typical patient on treatment. For those with residual disability from their AIDS-related illness, we assumed their disutility remained the same for subsequent years on treatment.")) -# -# t_daly <- colformat_md(t_daly, j=4, -# pandoc_args=c('--csl', 'apa.csl')) -#Tornado diagram -bc_net_savings <- unlist(dt_bc_outcomes$net_savings) -dt_univ[ , name_range := paste0(Param_disp, "\n", Low, " – ", High)] -dt_univ[ , name_range := factor(name_range, levels = rev(unique(name_range)))] -#dt_univ[ , blank := pmin(net_savings_low, net_savings_high)] -dt_univ_plt <- rbind(setorder(dt_univ[abs_net_savings_range>5e5], -abs_net_savings_range)) -dt_univ_plt[, x:= nrow(dt_univ_plt):1] -ggplot(data = dt_univ_plt) + -geom_segment(aes(x = name_range, xend=name_range, y = net_savings_low, yend=net_savings_high), size=6, color="grey")+ -theme(legend.position = "None")+ -coord_flip()+ -geom_hline(yintercept = bc_net_savings)+ -geom_hline(yintercept = 0, alpha = 0.5, color = "red")+ -scale_alpha_manual(values = c(1, 0))+ -scale_y_continuous(labels = function(x){paste0("$",x/1e6,"M")}, -)+ -xlab("")+ -ylab("Net savings of WBPR")+ -annotate("text", x=.8, y=bc_net_savings+1.75e6, label=paste0("Basecase:", dollar(bc_net_savings)), size = 3.5) -ggsave("figs/tornado.png", -width=6.5, -height = 4, -units="in") -# #Cases&costs by AE -# dt_bc_outcomes -dt_outcome_quants <- dt_psa_outcomes[ , lapply(.SD, -function(x) -quantile(x, probs = c(0.025, 0.975)))] -# -# dt_case_cost_plot <- data.table( -# ae_abbrev = rep(ae_abbrevs, 2), -# outcome = rep(c("Cases reduced", -# "Healthcare spending reduced"), each = 7), -# value = numeric(), -# lb = numeric(), -# ub = numeric() -# ) -# for (ae in ae_abbrevs){ -# dt_case_cost_plot[ae_abbrev == ae & outcome == "Cases reduced", value:= dt_bc_outcomes[1, get(paste0(ae, ".cases_reduced"))]] -# dt_case_cost_plot[ae_abbrev == ae & outcome == "Cases reduced", lb:= dt_outcome_quants[1, get(paste0(ae, ".cases_reduced"))]] -# dt_case_cost_plot[ae_abbrev == ae & outcome == "Cases reduced", ub:= dt_outcome_quants[2, get(paste0(ae, ".cases_reduced"))]] -# dt_case_cost_plot[ae_abbrev == ae & outcome == "Healthcare spending reduced", value:= dt_bc_outcomes[1, get(paste0(ae, ".burden_reduced"))]] -# dt_case_cost_plot[ae_abbrev == ae & outcome == "Healthcare spending reduced", lb:= dt_outcome_quants[1, get(paste0(ae, ".burden_reduced"))]] -# dt_case_cost_plot[ae_abbrev == ae & outcome == "Healthcare spending reduced", ub:= dt_outcome_quants[2, get(paste0(ae, ".burden_reduced"))]] -# } -# -# max_case_reduct <- max(dt_case_cost_plot[outcome=="Cases reduced"]$ub) -# max_spend_reduct <- max(dt_case_cost_plot[outcome=="Healthcare spending reduced"]$ub) -# dt_case_cost_plot[ , val.perc := ifelse(outcome == "Cases reduced", value/max_case_reduct, value/max_spend_reduct)] -# dt_case_cost_plot[ , lb.perc := ifelse(outcome == "Cases reduced", lb/max_case_reduct, lb/max_spend_reduct)] -# dt_case_cost_plot[ , ub.perc := ifelse(outcome == "Cases reduced", ub/max_case_reduct, ub/max_spend_reduct)] -# -# ggplot(dt_case_cost_plot, aes(x = reorder(ae_abbrev, -value), y = value))+ -# geom_bar(position="dodge", stat="identity")+ -# geom_linerange(aes(ymin = lb, ymax = ub))+ -# facet_wrap(.~outcome, nrow = 2, scales = "free_y", strip.position = "left")+ -# ylab(NULL)+xlab("Adverse event")+ -# theme(strip.background = element_blank(), strip.placement = "outside") -#Net budget impact -dt_net_impact <- data.table( -outcome = factor(c("PI cost", -"Healthcare\nsavings", -"Net\nimpact"), levels = c("PI cost", -"Healthcare\nsavings", -"Net\nimpact")), -value = c(dt_bc_outcomes$prt_cost, --1*dt_bc_outcomes$all_ae.burden_reduced, --1*dt_bc_outcomes$net_savings), -lb = c(dt_outcome_quants[1,]$prt_cost, --1*dt_outcome_quants[1,]$all_ae.burden_reduced, --1*dt_outcome_quants[1,]$net_savings), -ub = c(dt_outcome_quants[2,]$prt_cost, --1*dt_outcome_quants[2,]$all_ae.burden_reduced, --1*dt_outcome_quants[2,]$net_savings) -) -ggplot(dt_net_impact, aes(x=outcome, y = value))+ -geom_bar(position="dodge", stat="identity", width = 0.5, fill="grey")+ -geom_errorbar(aes(ymin=lb, ymax=ub), width=0.2)+ -ylab("Net present cost")+xlab(NULL)+ -scale_y_continuous(labels = label_dollar())+ -geom_hline(yintercept = 0) -ggsave("figs/net_impact.png", -width=3, -height = 2.5, -units="in") -#PSA scatter -dt_psa_outcomes[, cost_saving := ifelse(net_savings>=0, "Cost saving", "Not cost saving")] -dt_psa_outcomes[, ICER:= -1*net_savings/all_ae.DALY_reduced] -ggplot(dt_psa_outcomes, aes(x=all_ae.DALY_reduced, y=-1*net_savings))+ -geom_point(aes(color=cost_saving), alpha=0.5)+ -geom_hline(yintercept=0, color="grey")+ -scale_y_continuous(labels = label_dollar(), name="Net incremental healthcare cost")+ -scale_x_continuous(labels = label_comma(), name="Incremental DALYs averted", limits = c(0, 170000))+ -#geom_abline(slope=100)+ -annotate("text", -label=paste0("WBPR was cost-saving\nin ", -percent(dt_psa_outcomes[net_savings>0, .N/nrow(dt_psa_outcomes)]), -" of iterations"), -x=120000, y = -1e6, color="forestgreen")+ -annotate("text", -label=paste0("WBPR never cost more\nthan ", -dt_psa_outcomes[, dollar(ceiling(max(ICER)))], -" per DALY"), -x=120000, y = 1e6, color="dodgerblue")+ -theme(legend.position = "None")+ -scale_color_manual(values=c("forestgreen", "dodgerblue")) -# annotate("label", -# label=paste0("WBPR cost <$100/DALY in ", -# percent(dt_psa_outcomes[, sum(-1*net_savings/all_ae.DALY_reduced<100)/.N]), -# " of iterations"), -# x=90000, y = 5.5e6) -ggsave("figs/cea_scatter.png", -width=6.5, -height = 4, -units="in") -t1 <- flextable(dt_results[c(1:6, 9, 12), c(1, 3:9)]) -t1 <- align(t1, align = "left", part = "all") -t1 <- set_header_labels(t1, values = list(Value_dist = "Value (range); distribution")) -t1 <- fontsize(t1, size = 10, part = "all") -t1 <- font(t1, fontname = "Times", part = "all") -t1 <- theme_box(t1) -t1 <- width(t1, 1, 1.3) -t1 <- width(t1, 2:8, 1.1) -t1 <- bg(t1, bg = "#EAEAEA", part = "header") -dt.t_calcs <- data.table(read_excel("../data/Ghana_hea_parameters.xlsx", sheet = "Microcost_eqns")) -t_calcs <- flextable(dt.t_calcs) -t_calcs <- fontsize(t_calcs, size = 10, part = "all") -t_calcs <- font(t_calcs, fontname = "Times", part = "all") -t_calcs <- theme_box(t_calcs) -t_calcs <- width(t_calcs, 1, 2.1) -t_calcs <- width(t_calcs, 2, 4.4) -t_calcs <- bg(t_calcs, bg = "#EAEAEA", part = "header") -dt_chronic_disease_states <- fread("../results/chronic_costs_by_disease_state.csv") -dt_chronic_state_lookup <- data.table(read_excel("../data/Ghana_hea_parameters.xlsx", sheet ="chronic_state_lookup")) -dt_chronic_disease_states <- dt_chronic_state_lookup[,c("Disease","Disease state", "state_disp")][dt_chronic_disease_states, -on = c("Disease", "Disease state")] -dt_chronic_disease_states[ ,`Disease state` := state_disp] -dt_chronic_disease_states[ ,state_disp := NULL] -dt_chronic_disease_states <- melt(dt_chronic_disease_states, id.vars = 1:4) -#dt_chronic_disease_states <- -dt_chronic_disease_states <- dcast(dt_chronic_disease_states, Disease+`Disease state`+`Annual cost` ~ variable+Cohort, sep=", ") -cols <- colnames(dt_chronic_disease_states)[3:7] -dt_chronic_disease_states[ , (cols) := lapply(.SD, "dollar"), .SDcols=3:7] -dt_chronic_disease_states <- as_grouped_data(dt_chronic_disease_states, groups = c("Disease")) -t_chron_disease_states <- as_flextable(dt_chronic_disease_states) -t_chron_disease_states <- compose(t_chron_disease_states, i = ~ !is.na(Disease), j = "Disease state", -value = as_paragraph(as_chunk(Disease))) -t_chron_disease_states <- align(t_chron_disease_states, align = "left", part = "all") -t_chron_disease_states <- fontsize(t_chron_disease_states, size = 10, part = "all") -t_chron_disease_states <- font(t_chron_disease_states, fontname = "Times", part = "all") -t_chron_disease_states <- theme_box(t_chron_disease_states) -#t_chron_disease_states <- width(t_chron_disease_states, 1, 2.1) -# t_chron_disease_states <- width(t_chron_disease_states, 2, 4.4) -t_chron_disease_states <- bg(t_chron_disease_states, bg = "#EAEAEA", part = "header") -t_chron_disease_states <- width(t_chron_disease_states, 1, 1.7) -t_chron_disease_states <- width(t_chron_disease_states, 2, 0.8) -t_chron_disease_states <- width(t_chron_disease_states, 3:6, 1) -t_chron_disease_states <- bg(t_chron_disease_states, i = c(1, 21, 37), bg = "#DDDDDD", part = "body") -disease_state_key_hiv <- dt_chronic_state_lookup[Disease == "HIV", paste0(`Disease state`, ", ", state_disp, collapse = "; ")] -disease_state_key_hbv <- dt_chronic_state_lookup[Disease == "HBV", paste0(`Disease state`, ", ", state_disp, collapse = "; ")] -disease_state_key_hcv <- dt_chronic_state_lookup[Disease == "HCV", paste0(`Disease state`, ", ", state_disp, collapse = "; ")] -ggplot(data = dt_univ_plt) + -geom_segment(aes(x = name_range, xend=name_range, y = net_savings_low, yend=net_savings_high), size=6, color="grey")+ -theme(legend.position = "None")+ -coord_flip()+ -geom_hline(yintercept = bc_net_savings)+ -geom_hline(yintercept = 0, alpha = 0.5, color = "red")+ -scale_alpha_manual(values = c(1, 0))+ -scale_y_continuous(labels = function(x){paste0("$",x/1e6,"M")}, -)+ -xlab("")+ -ylab("Net savings of WBPR")+ -annotate("text", x=.8, y=bc_net_savings+1.75e6, label=paste0("Basecase:", dollar(bc_net_savings)), size = 3.5) -ggplot(data = dt_univ_plt) + -geom_segment(aes(x = name_range, xend=name_range, y = net_savings_low, yend=net_savings_high), size=6, color="grey")+ -theme(legend.position = "None")+ -coord_flip()+ -geom_hline(yintercept = bc_net_savings)+ -geom_hline(yintercept = 0, alpha = 0.5, color = "red")+ -scale_alpha_manual(values = c(1, 0))+ -scale_y_continuous(labels = function(x){paste0("$",x/1e6,"M")}, -)+ -xlab("")+ -ylab("Net savings of WBPR")+ -annotate("text", x=.8, y=bc_net_savings+2.2e6, label=paste0("Basecase:", dollar(bc_net_savings)), size = 3.5) -ggsave("figs/tornado.png", -width=6.5, -height = 4, -units="in") -ggplot(data = dt_univ_plt) + -geom_segment(aes(x = name_range, xend=name_range, y = net_savings_low, yend=net_savings_high), size=6, color="grey")+ -theme(legend.position = "None")+ -coord_flip()+ -geom_hline(yintercept = bc_net_savings)+ -geom_hline(yintercept = 0, alpha = 0.5, color = "red")+ -scale_alpha_manual(values = c(1, 0))+ -scale_y_continuous(labels = function(x){paste0("$",x/1e6,"M")}, -)+ -xlab("")+ -ylab("Net savings of WBPR")+ -annotate("text", x=.8, y=bc_net_savings+2.6e6, label=paste0("Basecase:", dollar(bc_net_savings)), size = 3.5) -ggsave("figs/tornado.png", -width=6.5, -height = 4, -units="in") -ggplot(data = dt_univ_plt) + -geom_segment(aes(x = name_range, xend=name_range, y = net_savings_low, yend=net_savings_high), size=6, color="grey")+ -theme(legend.position = "None")+ -coord_flip()+ -geom_hline(yintercept = bc_net_savings)+ -geom_hline(yintercept = 0, alpha = 0.5, color = "red")+ -scale_alpha_manual(values = c(1, 0))+ -scale_y_continuous(labels = function(x){paste0("$",x/1e6,"M")}, -limits = c(-5e6, 7e6) -)+ -xlab("")+ -ylab("Net savings of WBPR")+ -annotate("text", x=.8, y=bc_net_savings+2.6e6, label=paste0("Basecase:", dollar(bc_net_savings)), size = 3.5) -ggsave("figs/tornado.png", -width=6.5, -height = 4, -units="in") -ggplot(data = dt_univ_plt) + -geom_segment(aes(x = name_range, xend=name_range, y = net_savings_low, yend=net_savings_high), size=6, color="grey")+ -theme(legend.position = "None")+ -coord_flip()+ -geom_hline(yintercept = bc_net_savings)+ -geom_hline(yintercept = 0, alpha = 0.5, color = "red")+ -scale_alpha_manual(values = c(1, 0))+ -scale_y_continuous(labels = function(x){paste0("$",x/1e6,"M")}, -limits = c(-5e6, 6e6) -)+ -xlab("")+ -ylab("Net savings of WBPR")+ -annotate("text", x=.8, y=bc_net_savings+2.6e6, label=paste0("Basecase:", dollar(bc_net_savings)), size = 3.5) -ggsave("figs/tornado.png", -width=6.5, -height = 4, -units="in") -ggplot(data = dt_univ_plt) + -geom_segment(aes(x = name_range, xend=name_range, y = net_savings_low, yend=net_savings_high), size=6, color="grey")+ -theme(legend.position = "None")+ -coord_flip()+ -geom_hline(yintercept = bc_net_savings)+ -geom_hline(yintercept = 0, alpha = 0.5, color = "red")+ -scale_alpha_manual(values = c(1, 0))+ -scale_y_continuous(labels = function(x){paste0("$",x/1e6,"M")}, -)+ -xlab("")+ -ylab("Net savings of WBPR")+ -annotate("text", x=.8, y=bc_net_savings+2.6e6, label=paste0("Basecase:\n", dollar(bc_net_savings)), size = 3.5) -ggsave("figs/tornado.png", -width=6.5, -height = 4, -units="in") -ggplot(data = dt_univ_plt) + -geom_segment(aes(x = name_range, xend=name_range, y = net_savings_low, yend=net_savings_high), size=6, color="grey")+ -theme(legend.position = "None")+ -coord_flip()+ -geom_hline(yintercept = bc_net_savings)+ -geom_hline(yintercept = 0, alpha = 0.5, color = "red")+ -scale_alpha_manual(values = c(1, 0))+ -scale_y_continuous(labels = function(x){paste0("$",x/1e6,"M")}, -)+ -xlab("")+ -ylab("Net savings of WBPR")+ -annotate("text", x=1.6, y=bc_net_savings+1.6e6, label=paste0("Basecase:\n", dollar(bc_net_savings)), size = 3.5) -ggsave("figs/tornado.png", -width=6.5, -height = 4, -units="in") -ggplot(data = dt_univ_plt) + -geom_segment(aes(x = name_range, xend=name_range, y = net_savings_low, yend=net_savings_high), size=6, color="grey")+ -theme(legend.position = "None")+ -coord_flip()+ -geom_hline(yintercept = bc_net_savings, color="red")+ -geom_hline(yintercept = 0, alpha = 0.5, color = "black")+ -scale_alpha_manual(values = c(1, 0))+ -scale_y_continuous(labels = function(x){paste0("$",x/1e6,"M")}, -)+ -xlab("")+ -ylab("Net savings of WBPR")+ -annotate("text", x=1.6, y=bc_net_savings+1.6e6, label=paste0("Basecase:\n", dollar(bc_net_savings)), -size = 3.5, color="red") -ggsave("figs/tornado.png", -width=6.5, -height = 4, -units="in") -ggplot(data = dt_univ_plt) + -geom_segment(aes(x = name_range, xend=name_range, y = net_savings_low, yend=net_savings_high), size=6, color="grey")+ -theme(legend.position = "None")+ -coord_flip()+ -geom_hline(yintercept = bc_net_savings, color="grey")+ -geom_hline(yintercept = 0, alpha = 0.5, color = "black")+ -scale_alpha_manual(values = c(1, 0))+ -scale_y_continuous(labels = function(x){paste0("$",x/1e6,"M")}, -)+ -xlab("")+ -ylab("Net savings of WBPR")+ -annotate("text", x=1.6, y=bc_net_savings+1.6e6, label=paste0("Basecase:\n", dollar(bc_net_savings)), -size = 3.5, color="darkgrey") -ggsave("figs/tornado.png", -width=6.5, -height = 4, -units="in") -ggplot(data = dt_univ_plt) + -geom_segment(aes(x = name_range, xend=name_range, y = net_savings_low, yend=net_savings_high), size=6, color="grey")+ -theme(legend.position = "None")+ -coord_flip()+ -geom_hline(yintercept = bc_net_savings, color="black")+ -geom_hline(yintercept = 0, alpha = 0.5, color = "black", linetype="dashed")+ -scale_alpha_manual(values = c(1, 0))+ -scale_y_continuous(labels = function(x){paste0("$",x/1e6,"M")}, -)+ -xlab("")+ -ylab("Net savings of WBPR")+ -annotate("text", x=1.6, y=bc_net_savings+1.6e6, label=paste0("Basecase:\n", dollar(bc_net_savings)), -size = 3.5, color="darkgrey") -ggsave("figs/tornado.png", -width=6.5, -height = 4, -units="in") -ggplot(data = dt_univ_plt) + -geom_segment(aes(x = name_range, xend=name_range, y = net_savings_low, yend=net_savings_high), size=6, color="grey")+ -theme(legend.position = "None")+ -coord_flip()+ -geom_hline(yintercept = bc_net_savings, color="black")+ -geom_hline(yintercept = 0, alpha = 0.5, color = "darkgrey", linetype="dashed")+ -scale_alpha_manual(values = c(1, 0))+ -scale_y_continuous(labels = function(x){paste0("$",x/1e6,"M")}, -)+ -xlab("")+ -ylab("Net savings of WBPR")+ -annotate("text", x=1.2, y=bc_net_savings+1.6e6, label=paste0("Basecase:\n", dollar(bc_net_savings)), -size = 3.5, color="black") -ggsave("figs/tornado.png", -width=6.5, -height = 4, -units="in") -ggplot(data = dt_univ_plt) + -geom_segment(aes(x = name_range, xend=name_range, y = net_savings_low, yend=net_savings_high), size=6, color="grey")+ -theme(legend.position = "None")+ -coord_flip()+ -geom_hline(yintercept = bc_net_savings, color="black")+ -geom_hline(yintercept = 0, alpha = 0.5, color = "darkgrey", linetype="dashed")+ -scale_alpha_manual(values = c(1, 0))+ -scale_y_continuous(labels = function(x){paste0("$",x/1e6,"M")}, -)+ -xlab("")+ -ylab("Net savings of WBPR")+ -annotate("text", x=0.7, y=bc_net_savings+1.5e6, label=paste0(dollar(bc_net_savings)), -size = 3.5, color="black") -ggsave("figs/tornado.png", -width=6.5, -height = 4, -units="in") -ggplot(data = dt_univ_plt) + -geom_segment(aes(x = name_range, xend=name_range, y = net_savings_low, yend=net_savings_high), size=6, color="grey")+ -theme(legend.position = "None")+ -coord_flip()+ -geom_hline(yintercept = bc_net_savings, color="black")+ -geom_hline(yintercept = 0, alpha = 0.5, color = "darkgrey", linetype="dashed")+ -scale_alpha_manual(values = c(1, 0))+ -scale_y_continuous(labels = function(x){paste0("$",x/1e6,"M")}, -)+ -xlab("")+ -ylab("Net savings of WBPR")+ -annotate("text", x=0.75, y=bc_net_savings+1.4e6, label=paste0(dollar(bc_net_savings)), -size = 3.5, color="black") -ggsave("figs/tornado.png", -width=6.5, -height = 4, -units="in") -ggplot(data = dt_univ_plt) + -geom_segment(aes(x = name_range, xend=name_range, y = net_savings_low, yend=net_savings_high), size=6, color="grey")+ -theme(legend.position = "None")+ -coord_flip()+ -geom_hline(yintercept = bc_net_savings, color="black")+ -geom_hline(yintercept = 0, alpha = 0.5, color = "red")+ -scale_alpha_manual(values = c(1, 0))+ -scale_y_continuous(labels = function(x){paste0("$",x/1e6,"M")}, -)+ -xlab("")+ -ylab("Net savings of WBPR")+ -annotate("text", x=0.75, y=bc_net_savings+1.4e6, label=paste0(dollar(bc_net_savings)), -size = 3.5, color="black") -ggsave("figs/tornado.png", -width=6.5, -height = 4, -units="in") -ggplot(dt_psa_outcomes, aes(x=all_ae.DALY_reduced, y=-1*net_savings))+ -geom_point(aes(color=cost_saving), alpha=0.5)+ -geom_hline(yintercept=0, color="grey")+ -scale_y_continuous(labels = label_dollar(), name="Net incremental healthcare cost")+ -scale_x_continuous(labels = label_comma(), name="Incremental DALYs averted", limits = c(0, 160000))+ -#geom_abline(slope=100)+ -annotate("text", -label=paste0("WBPR was cost-saving\nin ", -percent(dt_psa_outcomes[net_savings>0, .N/nrow(dt_psa_outcomes)]), -" of iterations"), -x=120000, y = -1.2e6, color="forestgreen")+ -annotate("text", -label=paste0("WBPR never cost more\nthan ", -dt_psa_outcomes[, dollar(ceiling(max(ICER)))], -" per DALY"), -x=120000, y = 1.2e6, color="dodgerblue")+ -theme(legend.position = "None")+ -scale_color_manual(values=c("forestgreen", "dodgerblue")) -ggsave("figs/cea_scatter.png", -width=6.5, -height = 4, -units="in") -ggplot(dt_psa_outcomes, aes(x=all_ae.DALY_reduced, y=-1*net_savings))+ -geom_point(aes(color=cost_saving), alpha=0.5)+ -geom_hline(yintercept=0, color="grey")+ -scale_y_continuous(labels = label_dollar(), name="Net incremental healthcare cost")+ -scale_x_continuous(labels = label_comma(), name="Incremental DALYs averted", limits = c(0, 160000))+ -#geom_abline(slope=100)+ -annotate("text", -label=paste0("WBPR was cost-saving\nin ", -percent(dt_psa_outcomes[net_savings>0, .N/nrow(dt_psa_outcomes)]), -" of iterations"), -x=120000, y = -1.8e6, color="forestgreen")+ -annotate("text", -label=paste0("WBPR never cost more\nthan ", -dt_psa_outcomes[, dollar(ceiling(max(ICER)))], -" per DALY"), -x=120000, y = 1.8e6, color="dodgerblue")+ -theme(legend.position = "None")+ -scale_color_manual(values=c("forestgreen", "dodgerblue")) -ggsave("figs/cea_scatter.png", -width=6.5, -height = 4, -units="in") -ggplot(dt_psa_outcomes, aes(x=all_ae.DALY_reduced, y=-1*net_savings))+ -geom_point(aes(color=cost_saving), alpha=0.5)+ -geom_hline(yintercept=0, color="grey")+ -scale_y_continuous(labels = label_dollar(), name="Net incremental healthcare cost")+ -scale_x_continuous(labels = label_comma(), name="Incremental DALYs averted", limits = c(0, 160000))+ -#geom_abline(slope=100)+ -annotate("text", -label=paste0("WBPR was cost-saving\nin ", -percent(dt_psa_outcomes[net_savings>0, .N/nrow(dt_psa_outcomes)]), -" of iterations"), -x=120000, y = -1.3e6, color="forestgreen")+ -annotate("text", -label=paste0("WBPR never cost more\nthan ", -dt_psa_outcomes[, dollar(ceiling(max(ICER)))], -" per DALY"), -x=120000, y = 1.3e6, color="dodgerblue")+ -theme(legend.position = "None")+ -scale_color_manual(values=c("forestgreen", "dodgerblue")) -ggsave("figs/cea_scatter.png", -width=6.5, -height = 4, -units="in") -range_sec_infections_buden_red -dt_univ[net_savings_low < 0 | net_savings_high < 0,] -dt_univ[rname=="c_PI", dollar(-1*net_savings_high, largest_with_cents = 1e+02)] -dt_univ[net_savings_low < 0 | net_savings_high < 0, .N]-2 -dt_univ[nmb_low < 0 | nmb_high < 0,] -dt_univ[net_savings_low < 0 | net_savings_high < 0, .N] -range_no_sepsis_net_cost diff --git a/.Rproj.user/0E787812/bibliography-index/biblio-files b/.Rproj.user/0E787812/bibliography-index/biblio-files deleted file mode 100644 index 290cf6b..0000000 --- a/.Rproj.user/0E787812/bibliography-index/biblio-files +++ /dev/null @@ -1 +0,0 @@ -1616596539:G:/My Drive/Projects/ghana_hea/manuscript/pathogen_inactivation.bib diff --git a/.Rproj.user/0E787812/bibliography-index/biblio-refblock b/.Rproj.user/0E787812/bibliography-index/biblio-refblock deleted file mode 100644 index e69de29..0000000 diff --git a/.Rproj.user/0E787812/bibliography-index/biblio.json b/.Rproj.user/0E787812/bibliography-index/biblio.json deleted file mode 100644 index 9eb73fb..0000000 --- a/.Rproj.user/0E787812/bibliography-index/biblio.json +++ /dev/null @@ -1,2326 +0,0 @@ -{ - "sources": [ - { - "DOI": "10.1016/S0140-6736(16)30579-7", - "ISSN": "1474547X", - "PMID": "27394647", - "URL": "https://pubmed.ncbi.nlm.nih.gov/27394647/ https://pubmed.ncbi.nlm.nih.gov/27394647/?holding=F1000&otool=stanford", - "abstract": "Background With recent improvements in vaccines and treatments against viral hepatitis, an improved understanding of the burden of viral hepatitis is needed to inform global intervention strategies. We used data from the Global Burden of Disease (GBD) Study to estimate morbidity and mortality for acute viral hepatitis, and for cirrhosis and liver cancer caused by viral hepatitis, by age, sex, and country from 1990 to 2013. Methods We estimated mortality using natural history models for acute hepatitis infections and GBD’s cause-of-death ensemble model for cirrhosis and liver cancer. We used meta-regression to estimate total cirrhosis and total liver cancer prevalence, as well as the proportion of cirrhosis and liver cancer attributable to each cause. We then estimated cause-specific prevalence as the product of the total prevalence and the proportion attributable to a specific cause. Disability-adjusted life-years (DALYs) were calculated as the sum of years of life lost (YLLs) and years lived with disability (YLDs). Findings Between 1990 and 2013, global viral hepatitis deaths increased from 089 million (95% uncertainty interval [UI] 086–094) to 145 million (138–154); YLLs from 310 million (296–326) to 416 million (391–447); YLDs from 065 million (045–089) to 087 million (061–118); and DALYs from 317 million (302–333) to 425 million (399–456). In 2013, viral hepatitis was the seventh (95% UI seventh to eighth) leading cause of death worldwide, compared with tenth (tenth to 12th) in 1990. Interpretation Viral hepatitis is a leading cause of death and disability worldwide. Unlike most communicable diseases, the absolute burden and relative rank of viral hepatitis increased between 1990 and 2013. The enormous health loss attributable to viral hepatitis, and the availability of effective vaccines and treatments, suggests an important opportunity to improve public health. Funding Bill & Melinda Gates Foundation.", - "author": [ - { - "family": "Stanaway", - "given": "Jeffrey D." - }, - { - "family": "Flaxman", - "given": "Abraham D." - }, - { - "family": "Naghavi", - "given": "Mohsen" - }, - { - "family": "Fitzmaurice", - "given": "Christina" - }, - { - "family": "Vos", - "given": "Theo" - }, - { - "family": "Abubakar", - "given": "Ibrahim" - }, - { - "family": "Abu-Raddad", - "given": "Laith J." - }, - { - "family": "Assadi", - "given": "Reza" - }, - { - "family": "Bhala", - "given": "Neeraj" - }, - { - "family": "Cowie", - "given": "Benjamin" - }, - { - "family": "Forouzanfour", - "given": "Mohammad H." - }, - { - "family": "Groeger", - "given": "Justina" - }, - { - "family": "Hanafiah", - "given": "Khayriyyah Mohd" - }, - { - "family": "Jacobsen", - "given": "Kathryn H." - }, - { - "family": "James", - "given": "Spencer L." - }, - { - "family": "MacLachlan", - "given": "Jennifer" - }, - { - "family": "Malekzadeh", - "given": "Reza" - }, - { - "family": "Martin", - "given": "Natasha K." - }, - { - "family": "Mokdad", - "given": "Ali A." - }, - { - "family": "Mokdad", - "given": "Ali H." - }, - { - "family": "Murray", - "given": "Christopher J. L." - }, - { - "family": "Plass", - "given": "Dietrich" - }, - { - "family": "Rana", - "given": "Saleem" - }, - { - "family": "Rein", - "given": "David B." - }, - { - "family": "Richardus", - "given": "Jan Hendrik" - }, - { - "family": "Sanabria", - "given": "Juan" - }, - { - "family": "Saylan", - "given": "Mete" - }, - { - "family": "Shahraz", - "given": "Saeid" - }, - { - "family": "So", - "given": "Samuel" - }, - { - "family": "Vlassov", - "given": "Vasiliy V." - }, - { - "family": "Weiderpass", - "given": "Elisabete" - }, - { - "family": "Wiersma", - "given": "Steven T." - }, - { - "family": "Younis", - "given": "Mustafa" - }, - { - "family": "Yu", - "given": "Chuanhua" - }, - { - "family": "El Sayed Zaki", - "given": "Maysaa" - }, - { - "family": "Cooke", - "given": "Graham S." - } - ], - "container-title": "The Lancet", - "id": "Stanaway2016", - "issue": "10049", - "issued": { - "date-parts": [ - [ - 2016, - 9 - ] - ] - }, - "keyword": "Abraham D Flaxman,Comment,Cost of Illness,Disabled Persons,Extramural,Global Health,Graham S Cooke,Hepatitis,Humans,Jeffrey D Stanaway,Life Expectancy*,MEDLINE,Morbidity,N.I.H.,NCBI,NIH,NLM,National Center for Biotechnology Information,National Institutes of Health,National Library of Medicine,Non-U.S. Gov’t,PMC5100695,PubMed Abstract,Quality-Adjusted Life Years*,Research Support,doi:10.1016/S0140-6736(16)30579-7,pmid:27394647", - "page": "1081-1088", - "publisher": "Lancet Publishing Group", - "title": "The global burden of viral hepatitis from 1990 to 2013: findings from the Global Burden of Disease Study 2013", - "type": "article-journal", - "volume": "388" - }, - { - "DOI": "10.4297/najms.2011.3329", - "ISSN": "19472714", - "URL": "/pmc/articles/PMC3336882/?report=abstract https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3336882/", - "abstract": "Background: Every year, millions of people are exposed to avoidable, life-threatening risks through the transfusion of unsafe blood. Aim: To determine the survival time of Treponema pallidum in banked donor blood. Material and Methods: Two groups of male Wistar rats (group A and B) were inoculated intratesticularly with 0.5ml of artificially infected donor blood (final density of Nichols treponemes: 5×105/ml) stored at 4°C for various periods of time. In group A, a pair each of the rats was injected every 12 hours, starting at 0 hr, up to a maximal storage time of 96 hr. In group B, the rats were injected after 72, 120, 192 and 336 hours of storage of the treponemes-blood mixture. Group C which is a control group was injected with blood only, while group D rats were injected with heat-killed treponemes suspended in blood every 12 hours. The detection of Treponema pallidum IgG/IgM was based on the principle of double antigen sandwich immunoassay, in which purified recombinant antigens are employed sufficiently to identify antibodies to Syphilis. The outcomes of interest included the proportion of Syphilis positive rats and the maximal survival hours of T. pallidum in banked blood. Results: 14 rats (77.8%) out of the 18 rats that were involved in group A developed orchitis and positive serology up to 72 hours of storage time, p<0.05. 2 rats (25%) in group B developed orchitis after 72hrs of storage time. All the 18 rats (100%) in the control group C and D showed neither clinical nor serological changes. Conclusion: It was concluded that the survival time of T. pallidum in banked donor blood lies between 72-120hrs in this study. Regardless of blood banking temperature, T. pallidum and other transfusion transmissible infections should be screened for prior to allogeneic transfusion.", - "author": [ - { - "family": "Adegoke", - "given": "Adeolu O." - }, - { - "family": "Akanni", - "given": "Olufemi E." - } - ], - "container-title": "North American Journal of Medical Sciences", - "id": "Adegoke2011", - "issue": "7", - "issued": { - "date-parts": [ - [ - 2011, - 7 - ] - ] - }, - "keyword": "Survival time,Syphilis,Treponema pallidum,Wistar rat", - "page": "329-332", - "publisher": "Wolters Kluwer – Medknow Publications", - "title": "Survival of treponema pallidum in banked blood for prevention of syphilis transmission", - "type": "article-journal", - "volume": "3" - }, - { - "author": [ - { - "family": "Allotey", - "given": "A" - } - ], - "container-title": "Africa Sanguine", - "id": "Allotey2019", - "issue": "1", - "issued": { - "date-parts": [ - [ - 2019 - ] - ] - }, - "page": "31", - "title": "Bacterial contamination of blood and blood components at the Accra area blood centre of the National Blood Service, Ghana", - "type": "article-journal", - "volume": "21" - }, - { - "DOI": "10.1016/S0140-6736(16)00581-X", - "ISBN": "0140-6736", - "ISSN": "1474547X", - "PMID": "27116282", - "abstract": "Background Transfusion-transmitted malaria is a frequent but neglected adverse event in Ghana. We did a randomised controlled clinical trial to assess the efficacy and safety of a whole blood pathogen reduction technology at preventing transfusion transmission of Plasmodium spp parasites. Methods For this randomised, double-blind, parallel-group clinical trial, eligible adult patients (aged ≥18 years) with blood group O+, who required up to two whole blood unit transfusions within 3 days of randomisation and were anticipated to remain in hospital for at least 3 consecutive days after initial transfusion, were enrolled from Komfo Anokye Teaching Hospital in Kumasi, Ghana. The main exclusion criteria were symptoms of clinical malaria, antimalaria treatment within 7 days before randomisation, fever, and haemorrhage expected to require transfusion with up to two units of whole blood during the 3 days following study entry. Eligible patients were randomly assigned 1:1 by computer-generated permuted block randomisation (block size four) list to receive transfusion with either pathogen-reduced whole blood (treated) or whole blood prepared and transfused by standard local practice (untreated). Patients, health-care providers, and data collectors were masked to treatment allocation. Patients in both groups received up to two whole blood unit transfusions that were retrospectively tested for parasitaemia. Pre-transfusion and post-transfusion blood samples (taken on days 0, 1, 3, 7, and 28) were tested for presence and amount of parasite genome, and assessed for haematological and biochemical parameters. The primary endpoint was the incidence of transfusion-transmitted malaria in non-parasitaemic recipients exposed to parasitaemic whole blood, defined as two consecutive parasitaemic post-transfusion samples with parasite allelic matching, assessed at 1-7 days after transfusion. Secondary endpoints included haematological parameters and a safety analysis of adverse events in patients. This study is registered with ClinicalTrials.gov, number NCT02118428, and with the Pan African Clinical Trials Registry, number PACTR201406000777310. Findings Between March 12, 2014, and Nov 7, 2014, 227 patients were enrolled into the study, one of whom was subsequently excluded because she did not meet the inclusion criteria. Of the 226 randomised patients, 113 were allocated to receive treated whole blood and 113 to receive standard untreated whole blood. 223 patients (111 treated and 112 untreated) received study-related transfusions, whereas three patients (two treated and one untreated) did not. 214 patients (107 treated and 107 untreated) completed the protocol as planned and comprised the per-protocol population. Overall, 65 non-parasitaemic patients (28 treated and 37 untreated) were exposed to parasitaemic blood. The incidence of transfusion-transmitted malaria was significantly lower for the pathogen-reduced (treated) patients (1 [4%] of 28 patients) than the untreated group (8 [22%] of 37 patients) in this population (p=0039). Overall, 92 (41%) of 223 patients reported 145 treatment-related emergent adverse events during the conduct of the study, with a similar incidence of adverse events between groups receiving untreated or treated whole blood. No transfusion-related deaths occurred in the trial. Interpretation Treatment of whole blood with the Mirasol pathogen reduction system for whole blood reduced the incidence of transfusion-transmitted malaria. The primary endpoint of the study was achieved in the population of non-parasitaemic patients receiving parasitaemic whole blood. The safety profile and clinical outcomes were similar across the two treatment groups. Funding Terumo BCT Inc.", - "author": [ - { - "family": "Allain", - "given": "Jean Pierre" - }, - { - "family": "Owusu-Ofori", - "given": "Alex K." - }, - { - "family": "Assennato", - "given": "Sonny Michael" - }, - { - "family": "Marschner", - "given": "Susanne" - }, - { - "family": "Goodrich", - "given": "Raymond P." - }, - { - "family": "Owusu-Ofori", - "given": "Shirley" - } - ], - "container-title": "The Lancet", - "id": "Allain2016", - "issue": "10029", - "issued": { - "date-parts": [ - [ - 2016 - ] - ] - }, - "page": "1753-1761", - "title": "Effect of Plasmodium inactivation in whole blood on the incidence of blood transfusion-transmitted malaria in endemic regions: The African Investigation of the Mirasol System (AIMS) randomised controlled trial", - "type": "article-journal", - "volume": "387" - }, - { - "URL": "https://www.researchgate.net/publication/302874421", - "abstract": "Background: Hand-in-hand demand for blood transfusion and transfusion-related bacterial infections among blood recipients in Sub-Saharan Africa have increased. Due to resource constraints and increased demand for blood donations in Sub-Saharan Africa, it", - "author": [ - { - "family": "Boye", - "given": "Alex" - }, - { - "family": "Daniel", - "given": "D" - }, - { - "family": "Samuel", - "given": "A" - }, - { - "family": "James", - "given": "A" - }, - { - "family": "Mate-Siakwa", - "given": "Peter" - } - ], - "container-title": "EC Bacteriology and Virology", - "id": "Boye2016", - "issue": "May", - "issued": { - "date-parts": [ - [ - 2016 - ] - ] - }, - "page": "121-128", - "title": "Bacterial Contamination of at-Point-of Transfusion Blood in a Tertiary Hospital in Ghana", - "type": "article-journal", - "volume": "4" - }, - { - "DOI": "10.1111/tme.12456", - "ISSN": "13653148", - "URL": "https://pubmed.ncbi.nlm.nih.gov/28875531/", - "abstract": "Objectives: To collect information on pathogen reduction applied to whole blood. Background: Pathogen reduction (PR) of blood components has been developed over the past two decades, and pathogen-reduced fresh-frozen plasma and platelet concentrates are currently in clinical use. High cost and incomplete coverage of components make PR out of reach for low- and middle-income countries (LMIC). However, should PR become applicable to whole blood (WB), the main product transfused in sub-Saharan Africa, and be compatible with the preparation of clinically suitable components, cost would be minimised, and a range of safety measures in place at high cost in developed areas would become redundant. Methods: All articles called with “pathogen reduction”, “pathogen inactivation” and “whole blood” were retrieved from Medline. References in articles were utilised. Results: One such PR technology (PRT) applied to WB has been developed and has shown efficacious against viruses, bacteria and parasites in vitro; and has been able to inactivate nucleated blood cells whilst retaining the ability to prepare components with acceptable characteristics. The efficacy of this WB PRT has been demonstrated in vivo using the inactivation of Plasmodium falciparum as a model and showing a high degree of correlation between in vitro and in vivo data. Obtaining further evidence of efficacy on other suitable targets is warranted. Shortening of the process, which is currently around 50 min, or increasing the number of units simultaneously processed would be necessary to make PRT WB conducive to LMIC blood services’ needs. Conclusions: Even if not 100% effective against agents that are present in high pathogen load titres, WB PRT could massively impact blood safety in LMIC by providing safer products at an affordable cost.", - "author": [ - { - "family": "Allain", - "given": "J. P." - }, - { - "family": "Goodrich", - "given": "R." - } - ], - "id": "Allain2017", - "issued": { - "date-parts": [ - [ - 2017, - 10 - ] - ] - }, - "keyword": "developing countries,pathogen reduction,sub-Saharan Africa,whole blood", - "number": "5", - "page": "320-326", - "publisher": "Blackwell Publishing Ltd", - "title": "Pathogen reduction of whole blood: utility and feasibility", - "type": "", - "volume": "27" - }, - { - "DOI": "10.4314/AHS.V9I1.7097", - "ISSN": "16806905", - "PMID": "20842237", - "URL": "https://www.ajol.info/index.php/ahs/article/view/7097", - "abstract": "Background: Transfusion of bacterially contaminated blood can result in sepsis and will constitute a substantial health burden to the patient. Objective: To assess the level of transfusion related sepsis and the bacterial types responsible for the contamination at the Tamale Teaching Hospital in Ghana. Method: We sampled 80 refrigerated donor blood at the blood bank and cultured them for bacteria. The antimicrobial sensitivities of the isolates were also determined. Results: 14 blood bags representing 17.5% grew isolates of various bacteria. Ten (10) of the 14 isolates were Gram positive cocci representing 71.42% making it the commonest contaminant. 50% of the gram positive cocci were identified to be coagulase negative staphylococci and 21.42% were Staphylococcus aureus. There were 14.28% isolates which were Gram positive rods, and were identified to be Corynebacterium diphtheroids. There were two isolates which were Gram negative rods; one was identified as Escherichia coli and the other one Klebsiella pneumoniae. Sensitivity among the organisms were varied; as all the 14 (100%) of the organisms isolated were sensitive to amikacin, only 14.28% of the coagulase negative staphylococci were sensitive to co-trimoxazole, 28.5% were sensitive to ampicillin, 42.8% were sensitive to cefuroxime and 71.4% were sensitive to ciprofloxacin. Sensitivity to gentamicin was observed to be 85.7% and 28.5% were sensitive to Tetracycline. Only the 10 Gram positive cocci were tested against erythromycin and Cloxacillin; where 70.00% were sensitive to cloxacillin and 90% were sensitive to erythromycin. Conclusion: All the Staphylococcus aureus isolated were resistant to both ampicillin and cotrimoxazole. Potential dangers and consequences of transfusing multidrug resistance bacteria have been discussed.", - "author": [ - { - "family": "Opoku-Okrah", - "given": "Clement" - }, - { - "family": "Feglo", - "given": "P." - }, - { - "family": "Amidu", - "given": "N." - }, - { - "family": "Dakorah", - "given": "M. P." - } - ], - "container-title": "African Health Sciences", - "id": "Opoku-Okrah2009", - "issue": "1", - "issued": { - "date-parts": [ - [ - 2009, - 3 - ] - ] - }, - "keyword": "Bacteraemia,Donor blood,Ghana,Tamale teaching hospital", - "page": "13-18", - "title": "Bacterial contamination of donor blood at the Tamale Teaching Hospital, Ghana", - "type": "article-journal", - "volume": "9" - }, - { - "DOI": "10.1111/vox.12538", - "ISSN": "14230410", - "PMID": "28597489", - "URL": "http://doi.wiley.com/10.1111/vox.12538", - "abstract": "Background and Objectives: Most countries test donations for HIV, HCV and HBV using serology with or without nucleic acid testing (NAT). Cost-utility analyses provide information on the relative value of different screening options. The aim of this project was to develop an open access risk assessment and cost-utility analysis web-tool for assessing HIV, HCV and HBV screening options (http://www.isbtweb.org/working-parties/transfusion-transmitted-infectious-diseases/). An analysis for six countries (Brazil, Ghana, the Netherlands, South Africa, Thailand and USA) was conducted. Materials and Methods: Four strategies; (1) antibody assays (Abs) for HIV and HCV + HBsAg, (2) antibody assays that include antigens for HIV and HCV (Combo) + HBsAg, (3) NAT in minipools of variable size (MP NAT) and (4) individual donation (ID) NAT can be evaluated using the tool. Country-specific data on donors, donation testing results, recipient outcomes and costs are entered using the online interface. Results obtained include the number infections interdicted using each screening options, and the (incremental and average) cost-utility of the options. Results: In each of the six countries evaluated, the use of antibody assays is cost effective or even cost saving. NAT has varying cost-utility depending on the setting, and where adopted, the incremental cost-utility exceeds any previously defined or proposed threshold in each country. Conclusion: The web-tool allows an assessment of infectious units interdicted and value for money of different testing strategies. Regardless of gross national income (GNI) per capita, countries appear willing to dedicate healthcare resources to blood supply safety in excess of that for other sectors of health care.", - "author": [ - { - "family": "Custer", - "given": "B." - }, - { - "family": "Janssen", - "given": "M. P." - }, - { - "family": "Hubben", - "given": "G." - }, - { - "family": "Vermeulen", - "given": "M." - }, - { - "dropping-particle": "van", - "family": "Hulst", - "given": "M." - } - ], - "container-title": "Vox Sanguinis", - "id": "Custer2017", - "issue": "6", - "issued": { - "date-parts": [ - [ - 2017, - 8 - ] - ] - }, - "keyword": "HBV,HCV,HIV,blood screening,cost-effectiveness analysis,cost-utility,methods", - "page": "526-534", - "publisher": "Wiley/Blackwell (10.1111)", - "title": "Development of a web-based application and multicountry analysis framework for assessing interdicted infections and cost-utility of screening donated blood for HIV, HCV and HBV", - "type": "article-journal", - "volume": "112" - }, - { - "DOI": "10.1016/j.tmrv.2011.07.006", - "ISSN": "08877963", - "PMID": "21872426", - "abstract": "Blood safety remains an important public health concern in Africa where lack of availability or provision of unsafe blood adversely impacts morbidity and mortality in the region. In recognition of this shortfall, the World Health Organization (WHO) established a goal of regional blood safety by 2012 through improved \"organization and management, blood donor recruitment and collection, testing of donor blood as well as appropriate clinical use of blood\" (Tagny et al: Transfusion. 2008;48:1256-1261; Tapko et al: Status of Blood Safety in the WHO African Region: Report of the 2006 Survey http://www.afro.who.int/en/divisions-a-programmes/dsd/health-technologies-a-laboratories.html. Brazzaville, Republic of Congo: WHO Regional Office for Africa; 2006). Although there has been substantial progress toward meeting these objectives, there are continued obstacles to both development and sustainability. In a setting where transfusion oversight is still being improved, transfusion-transmitted infections are of real concern. The high prevalence of some transfusion-transmissible agents such as hepatitis B virus and HIV in the general population means that some infected blood units escape detection by even well-performed laboratory testing, resulting in potential downstream transmission to patients. The spectrum of transfusion-transmitted infection include conventional as well as exotic pathogens, many of which are endemic to the region, thereby imparting ongoing challenges to recruitment and testing strategies. 2012 Elsevier Inc.", - "author": [ - { - "family": "Bloch", - "given": "Evan M." - }, - { - "family": "Vermeulen", - "given": "Marion" - }, - { - "family": "Murphy", - "given": "Edward" - } - ], - "container-title": "Transfusion Medicine Reviews", - "id": "Bloch2012", - "issue": "2", - "issued": { - "date-parts": [ - [ - 2012, - 4 - ] - ] - }, - "page": "164-180", - "publisher": "W.B. Saunders", - "title": "Blood Transfusion Safety in Africa: A Literature Review of Infectious Disease and Organizational Challenges", - "type": "article-journal", - "volume": "26" - }, - { - "DOI": "10.1111/trf.16262", - "ISSN": "15372995", - "URL": "https://onlinelibrary.wiley.com/doi/10.1111/trf.16262", - "abstract": "Background: Bacterial contamination of blood components (notably platelets) remains a leading infectious risk to the blood supply. There has been extensive research in high-income countries to characterize the risk of bacterial contamination along with adoption of strategies to mitigate that risk. By contrast, related data in Africa are lacking. Study Design and Methods: An electronic survey was distributed to members of African Society of Blood Transfusion to assess existing or planned measures at African blood centers and hospitals to mitigate bacterial contamination of blood products. A literature review of studies pertaining to related transfusion-associated risk in Africa was conducted to complement the findings. Results: Forty-five responses were received, representing 16 African countries. All respondents were urban, either in blood centers (n = 36) or hospital-based transfusion services (n = 9). Reported measures included skin disinfection (n = 41 [91.1%]); diversion pouches (n = 14 [31.1%]); bacterial culture (n = 9 [20%]); pathogen reduction (PR) (n = 3 [6.7%]); and point-of-release testing (PoRT) (n = 2 [4.4%]). Measures being considered for implementation included: skin disinfection (n = 2 [4.4%]); diversion pouches (n = 2 [4.4%]); bacterial culture n = 14 (31.1%); PR (n = 11 [24.4%]); and PoRT (n = 4 [8.9%]). Of the 38 respondents who reported collection of platelets, 14 (36.8%) and 8 (21.1%) reported using diversion pouches and bacterial culture, respectively. The literature review identified 36 studies on the epidemiology of bacterial contamination and septic transfusion reactions in Africa; rates of contamination ranged from 0% to 17.9%. Conclusions: The findings suggest that prevention of bacterial contamination of blood components and transfusion-associated sepsis in Africa remains neglected. Regional preventive measures have not been widely adopted.", - "author": [ - { - "family": "Ahmad", - "given": "Yembur" - }, - { - "family": "Heroes", - "given": "Anne Sophie" - }, - { - "family": "Hume", - "given": "Heather A." - }, - { - "family": "Farouk", - "given": "Mohammed" - }, - { - "family": "Owusu-Ofori", - "given": "Alex" - }, - { - "family": "Gehrie", - "given": "Eric A." - }, - { - "family": "Goel", - "given": "Ruchika" - }, - { - "family": "Ness", - "given": "Paul M." - }, - { - "family": "Tobian", - "given": "Aaron A. R." - }, - { - "family": "Bloch", - "given": "Evan M." - } - ], - "container-title": "Transfusion", - "id": "Ahmad2021", - "issued": { - "date-parts": [ - [ - 2021, - 1 - ] - ] - }, - "page": "trf.16262", - "publisher": "Blackwell Publishing Inc.", - "title": "Bacterial contamination of blood products in Africa", - "type": "article-journal" - }, - { - "DOI": "10.1111/j.1423-0410.2012.01662.x", - "ISSN": "00429007", - "abstract": "Background and Objectives Pathogen inactivation (PI)-treated plasma and platelets are increasingly becoming the products of choice, where licensed. This review summarizes the clinical evidence available for licensed component PI technologies and red cell PI under development. Materials and Methods Available literature on licensed technologies was reviewed. Results For the plasma and platelets technologies available, evidence for the inactivation of most pathogens is good, except for certain nonenveloped viruses. Clinical trials and haemovigilance programmes suggest the observed loss of potency is of little clinical significance, with some technology-specific exceptions. Concerns over adverse toxicological effects or neoantigen formation have not been confirmed for currently licensed products. Conclusion While platelet PI has been adopted to reduce bacterial contamination, the ability of PI methods to replace testing for emerging bloodborne infections, or as a substitute for selective pathogen testing, gamma-irradiation or even leucodepletion, make adoption of PI for components increasingly attractive. 2012 International Society of Blood Transfusion.", - "author": [ - { - "family": "Prowse", - "given": "C. V." - } - ], - "container-title": "Vox Sanguinis", - "id": "Prowse2012", - "issue": "3", - "issued": { - "date-parts": [ - [ - 2013, - 4 - ] - ] - }, - "keyword": "Clinical trial,Fresh-frozen plasma,Pathogen inactivation,Platelet components,Red cell components,Review", - "page": "183-199", - "publisher": "John Wiley & Sons, Ltd", - "title": "Component pathogen inactivation: A critical review", - "type": "article-journal", - "volume": "104" - }, - { - "DOI": "10.1159/000371664", - "URL": "www.karger.com www.karger.com/tmh", - "author": [ - { - "family": "Agapova", - "given": "Maria" - }, - { - "family": "Lachert", - "given": "Elzbieta" - }, - { - "family": "Brojer", - "given": "Ewa" - }, - { - "family": "Letowska", - "given": "Magdalena" - }, - { - "family": "Grabarczyk", - "given": "Piotr" - }, - { - "family": "Custer", - "given": "Brian" - } - ], - "container-title": "Transfus Med Hemother", - "id": "Agapova2015", - "issued": { - "date-parts": [ - [ - 2015 - ] - ] - }, - "page": "158-165", - "title": "Introducing pathogen reduction technology in Poland: A cost-utility analysis", - "type": "article-journal", - "volume": "42" - }, - { - "DOI": "10.1016/S2214-109X(16)30101-2", - "ISSN": "2214109X", - "PMID": "27443782", - "abstract": "Background Despite the high burden of hepatitis B virus (HBV) infection in sub-Saharan Africa, absence of widespread screening and poor access to treatment leads to most people remaining undiagnosed until later stages of disease when prognosis is poor and treatment options are limited. We examined the cost-effectiveness of community-based screening and early treatment with antiviral therapy for HBV in The Gambia. Methods In this economic evaluation, we combined a decision tree with a Markov state transition model to compare a screen and treat intervention consisting of adult community-based screening using a hepatitis B surface antigen (HBsAg) rapid test and subsequent HBV antiviral therapy versus current practice, in which there is an absence of publicly provided screening or treatment for HBV. We used data from the PROLIFICA study to parameterise epidemiological, primary screening, and cost information, and other model parameter inputs were obtained from a literature search. Outcome measures were cost per disability-adjusted life-year (DALY) averted; cost per life-year saved; and cost per quality-adjusted life-year (QALY) gained. We calculated the incremental cost-effectiveness ratios (ICERs) between current practice and the screen and treat intervention. Costs were assessed from a health provider perspective. Costs (expressed in 2013 US$) and health outcomes were discounted at 3% per year. Findings In The Gambia, where the prevalence of HBsAg is 88% in people older than 30 years, adult screening and treatment for HBV has an incremental cost-effectiveness ratio (ICER) of $540 per DALY averted, $645 per life-year saved, and $511 per QALY gained, compared with current practice. These ICERs are in line with willingness-to-pay levels of one times the country’s gross domestic product per capita ($487) per DALY averted, and remain robust over a wide range of epidemiological and cost parameter inputs. Interpretation Adult community-based screening and treatment for HBV in The Gambia is likely to be a cost-effective intervention. Higher cost-effectiveness might be achievable with targeted facility-based screening, price reductions of drugs and diagnostics, and integration of HBV screening with other public health interventions. Funding European Commission.", - "author": [ - { - "family": "Nayagam", - "given": "Shevanthi" - }, - { - "family": "Conteh", - "given": "Lesong" - }, - { - "family": "Sicuri", - "given": "Elisa" - }, - { - "family": "Shimakawa", - "given": "Yusuke" - }, - { - "family": "Suso", - "given": "Penda" - }, - { - "family": "Tamba", - "given": "Saydiba" - }, - { - "family": "Njie", - "given": "Ramou" - }, - { - "family": "Njai", - "given": "Harr" - }, - { - "family": "Lemoine", - "given": "Maud" - }, - { - "family": "Hallett", - "given": "Timothy B." - }, - { - "family": "Thursz", - "given": "Mark" - } - ], - "container-title": "The Lancet Global Health", - "id": "Nayagam2016", - "issue": "8", - "issued": { - "date-parts": [ - [ - 2016, - 8 - ] - ] - }, - "page": "e568-e578", - "publisher": "Elsevier Ltd", - "title": "Cost-effectiveness of community-based screening and treatment for chronic hepatitis B in The Gambia: an economic modelling analysis", - "type": "article-journal", - "volume": "4" - }, - { - "DOI": "10.1111/j.1537-2995.2010.02704.x", - "ISBN": "0041-1132", - "ISSN": "00411132", - "PMID": "20497512", - "abstract": "BACKGROUND: Pathogen reduction technology (PRT) for labile blood components has the potential to reduce the risk of many adverse events associatfile:///C:/Users/alton/Downloads/Custer_et_al-2010-Transfusion.pdfed with transfusion. Because of the potential broad-spectrum risk reduction capability of PRT, the health economics of PRT could be an important consideration in decision making for this technology.\\backslashn\\backslashnSTUDY DESIGN AND METHODS: Decision analytic models comparing current blood safety screens and interventions to riboflavin-based whole blood PRT (currently in development) and separately to platelets (PLTs)-and-plasma PRT from the health care system perspective in Canada were used to assess the cost-utility of PRT in reducing the following adverse events: human immunodeficiency virus, hepatitis B virus, hepatitis C virus, human T-lymphotropic virus, syphilis, West Nile virus, bacteria, Chikungunya virus, cytomegalovirus, Trypanosoma cruzi, graft-versus-host disease, febrile nonhemolytic transfusion reactions, and transfusion-related immunomodulation. PRT was modeled as an addition to rather than a replacement for current interventions. The potential of PRT to reduce the risk of an unknown pathogen was not assessed.\\backslashn\\backslashnRESULTS: Whole blood PRT was estimated to have a cost-effectiveness of $1,276,000/quality-adjusted life-year (QALY; 95% confidence interval [CI] approximation, 600,000-3,313,000) compared to current screens and interventions. PLTs-and-plasma PRT was estimated to have a cost-effectiveness of $1,423,000/QALY (95% CI approximation, 834,000-2,818,000) on an all-transfusions basis.\\backslashn\\backslashnCONCLUSIONS: Because of the complexity of transfusion risks and practices, the cost-effectiveness of whole blood or PLTs-and-plasma PRT can be modeled provided that assumptions and simplifications are made. Uncertainty remains with respect to the risk reduction that can be achieved for some adverse events. Nevertheless, the results of this cost-effectiveness analysis can be used to inform policy decisions regarding PRT technology in the context of other initiatives designed to improve transfusion safety.", - "author": [ - { - "family": "Custer", - "given": "Brian" - }, - { - "family": "Agapova", - "given": "Maria" - }, - { - "family": "Martinez", - "given": "Rebecca Havlir" - } - ], - "container-title": "Transfusion", - "id": "Custer2010", - "issue": "11", - "issued": { - "date-parts": [ - [ - 2010 - ] - ] - }, - "page": "2461-2473", - "title": "The cost-effectiveness of pathogen reduction technology as assessed using a multiple risk reduction model", - "type": "article-journal", - "volume": "50" - }, - { - "ISBN": "9789241565431", - "ISSN": "9241565438", - "URL": "http://apps.who.int/iris/bitstream/handle/10665/254987/9789241565431-eng.pdf?sequence=1", - "abstract": "The objective of this report is to provide an overview of the current status and trends in blood supply, safety, sufficiency and usage globally. The report is primarily based on data for the year 2013, which were reported by 156 of 195 Member States to the World Health Organization (WHO) Global Database on Blood Safety (GDBS). To give a more complete overview of the global situation, data for 2012 from 15 countries and for 2011 from nine countries were used where 2013 data were not available.1 These 180 countries account for a total population of 7 billion, representing 98.3% of the global population. The WHO GDBS was established in 1998 to provide data about the availability, safety and accessibility of blood for transfusion. The main objective of the survey is to collect and analyse data on national blood systems from all countries as the basis for effective action to improve access to safe blood and blood products and transfusion practices globally. The WHO Blood Transfusion Safety programme has undertaken biennial surveys on the safety and availability of blood in Member States since 1998. Since 2006, GDBS data are collected annually using a standardized tool, which is sent to national health authorities or national blood transfusion services for completion. Web-based tools were used for 2011, 2012 and 2013 data collection. Standardized definitions of the terminologies used in the survey questionnaire were prepared to promote consistency of reporting. Where possible, efforts were made to validate the data reported to WHO with WHO regional and country offices, as well as with experts who visited countries on behalf of WHO. Countries were contacted for clarification or correction when discrepancies, inconsistencies or any unusual patterns were observed. Efforts were also made to validate GDBS data by comparing them with data available from other published sources. However, systematic verification was not performed for all data provided by all countries. In particular, answers to the questions on the existence of policies, programmes or mechanisms could be affected by individual interpretation of the questions asked.", - "author": [ - { - "literal": "World Health Organisation" - } - ], - "id": "WorldHealthOrganisation2017", - "issued": { - "date-parts": [ - [ - 2017 - ] - ] - }, - "keyword": "BLOOD DONATION,BLOOD SAFETY:REPORT", - "page": "1-73", - "title": "Global Status Report on Blood Safety and Availability", - "type": "book" - }, - { - "DOI": "10.1111/trf.13858", - "ISSN": "00411132", - "URL": "http://doi.wiley.com/10.1111/trf.13858", - "author": [ - { - "family": "Mafirakureva", - "given": "Nyashadzaishe" - }, - { - "family": "Mapako", - "given": "Tonderai" - }, - { - "family": "Khoza", - "given": "Star" - }, - { - "family": "Emmanuel", - "given": "Jean C." - }, - { - "family": "Marowa", - "given": "Lucy" - }, - { - "family": "Mvere", - "given": "David" - }, - { - "family": "Postma", - "given": "Maarten J." - }, - { - "dropping-particle": "van", - "family": "Hulst", - "given": "Marinus" - } - ], - "container-title": "Transfusion", - "id": "Mafirakureva2016", - "issue": "12", - "issued": { - "date-parts": [ - [ - 2016, - 12 - ] - ] - }, - "page": "3101-3111", - "title": "Cost effectiveness of adding nucleic acid testing to hepatitis B, hepatitis C, and human immunodeficiency virus screening of blood donations in Zimbabwe", - "type": "article-journal", - "volume": "56" - }, - { - "DOI": "10.1046/j.1365-2141.2001.02679.x", - "ISBN": "0007-1048", - "ISSN": "00071048", - "PMID": "11328277", - "abstract": "Plasma samples from replacement and volunteer blood donors in Kumasi, Ghana were pooled and tested using a duplex human immunodeficiency virus (HIV) and hepatitis C virus (HCV) RNA detection METHOD: Individual plasmas constitutive of reactive pools were confirmed using reverse transcription-polymerase chain reaction. HIV and HCV infections were significantly higher in 1569 replacement donors than in 1169 volunteers; 2.4 and 1.7 versus 0.3 and 0.7% respectively (P < 0.01). Two duplex RNA-positive plasma pools contained a confirmed/seronegative HIV or HCV RNA individual plasma. The residual post-transfusion risk of HIV and HCV infection of blood collected from replacement blood donors ranged between 1:260 and 1:16 393 after screening for anti-HIV, p24 antigen and anti-HCV. These data indicate that in high-prevalence HIV and HCV blood donor populations, a substantial residual post-transfusion risk of infection remains. This risk might be reduced by collecting blood in younger volunteer donors or by genomic screening.", - "author": [ - { - "family": "Candotti", - "given": "Daniel" - }, - { - "family": "Sarkodie", - "given": "Francis" - }, - { - "family": "Allain", - "given": "Jean Pierre" - } - ], - "container-title": "British Journal of Haematology", - "id": "Candotti2001", - "issue": "1", - "issued": { - "date-parts": [ - [ - 2001 - ] - ] - }, - "keyword": "Africa,Blood safety,HCV,HIV,Transfusion", - "page": "37-39", - "title": "Residual risk of transfusion in Ghana", - "type": "article-journal", - "volume": "113" - }, - { - "DOI": "10.1097/00002030-200203080-00011", - "ISSN": "02699370", - "PMID": "11873003", - "URL": "https://pubmed.ncbi.nlm.nih.gov/11873003/", - "abstract": "Objectives: To describe the progression times of HIV-1 infection from seroconversion to AIDS and to death, and time from first developing AIDS to death in rural Uganda. Also, to describe the proportion of individuals within the cohort dying with AIDS and the CD4 lymphocyte count before death. Design: A prospective, longitudinal, population-based cohort. Methods: Since 1990, 107 HIV-prevalent cases, 168 incident cases and 235 HIV-seronegative controls have been recruited into a cohort in rural Uganda. Participants are recruited from the general population and they are reviewed routinely every 3 months and at other times when ill. Results: The median time from seroconversion to death was 9.8 years. Age over 40 years at seroconversion was associated with more rapid progression (P < 0.001, log rank test). For the first 4 years of the study, HIV contributed little to the death rates in the HIV incident cases, but after 5 years, the contribution of HIV became greater and was particularly marked in the oldest age group. Survival rates in the cohort were similar to those in the general population. The median time from seroconversion to AIDS was 9.4 years and from AIDS to death was 9.2 months. Of those infected with HIV-1,80% died with AIDS and 20% had a CD4 count < 10 × 106 cells/l. Conclusions: Survival with HIV-1 infection is similar in Africa to industrialized countries before the use of antiretroviral therapy; when they do die, many of those in Africa are severely immunosuppressed and most have clinical features of AIDS. 2002 Lippincott Williams & Wilkins.", - "author": [ - { - "family": "Morgan", - "given": "Dilys" - }, - { - "family": "Mahe", - "given": "Cedric" - }, - { - "family": "Mayanja", - "given": "Billy" - }, - { - "family": "Okongo", - "given": "J. Martin" - }, - { - "family": "Lubega", - "given": "Rosemary" - }, - { - "family": "Whitworth", - "given": "James A. G." - } - ], - "container-title": "AIDS", - "id": "Morgan2002", - "issue": "4", - "issued": { - "date-parts": [ - [ - 2002, - 3 - ] - ] - }, - "keyword": "AIDS,HIV-1,Rural Africa,Survival", - "page": "597-603", - "publisher": "AIDS", - "title": "HIV-1 infection in rural Africa: Is there a difference in median time to AIDS and survival compared with that in industrialized countries?", - "type": "article-journal", - "volume": "16" - }, - { - "DOI": "10.1111/j.1524-4733.2008.00337.x", - "ISSN": "1098-3015", - "PMID": "18489518", - "URL": "http://www.embase.com/search/results?subaction=viewrecord&from=export&id=L352426858%5Cnhttp://dx.doi.org/10.1111/j.1524-4733.2008.00337.x%5Cnhttp://sfx.roche.com/sfx_local?sid=EMBASE&issn=10983015&id=doi:10.1111/j.1524-4733.2008.00337.x&atitle=Cost-effect", - "abstract": "Objectives: Areas with high HIV-incidence rates compared to the developed world may benefit from additional testing in blood banks and may show more favorable cost-effectiveness ratios. We evaluated the cost-effectiveness of adding p24 antigen, mini pool nucleic acid amplification testing (MP-NAT), or individual donation NAT (ID-NAT) to the HIV-antibody screening at the Korle Bu Teaching Hospital (Accra, Ghana), where currently only HIV-antibody screening is undertaken. Methods: The residual risk of HIV transmission was derived from blood donations to the blood bank of the Korle Bu Teaching Hospital in 2004. Remaining life expectancies of patients receiving blood transfusion were estimated using the World Health Organization life expectancies. Cost-effectiveness ratios for adding the tests to HIV-antibody screening only were determined using a decision tree model and a Markov model for HIV. Results: The prevalence of HIV was estimated at 1.51% in 18,714 donations during 2004. The incremental cost per disability-adjusted life-year (DALY) averted was US$1237 for p24 antigen, US$3142 for MP-NAT and US$7695 compared to the next least expensive strategy. HIV-antibody screening itself was cost-saving compared to no screening at all, gaining US$73.85 and averting 0.86 DALY per transfused patient. Up to a willingness-to-pay of US$2736 per DALY averted, HIV-antibody screening without additional testing was the most cost-effective strategy. Over a willingness-to-pay of US$11,828 per DALY averted, ID-NAT was significantly more cost-effective than the other strategies. Conclusions: Adding p24 antigen, MP-NAT, or ID-NAT to the current antibody screening cannot be regarded as a cost-effective health-care intervention for Ghana. (copyright) 2008, International Society for Pharmacoeconomics and Outcomes Research (ISPOR).", - "author": [ - { - "dropping-particle": "van", - "family": "Hulst", - "given": "Marinus" - }, - { - "family": "Sagoe", - "given": "Kwamena W. C. C" - }, - { - "family": "Vermande", - "given": "Jacobien E." - }, - { - "dropping-particle": "van der", - "family": "Schaaf", - "given": "Ido P." - }, - { - "family": "Tuuk Adriani", - "given": "Willem P. A. A", - "non-dropping-particle": "van der" - }, - { - "family": "Torpey", - "given": "Kwasi" - }, - { - "family": "Ansah", - "given": "Justina" - }, - { - "family": "Mingle", - "given": "Julius A. A. A" - }, - { - "family": "Sibinga", - "given": "Cees Th. Smit" - }, - { - "family": "Postma", - "given": "Maarten J." - }, - { - "family": "Smit Sibinga", - "given": "Cees Th" - }, - { - "family": "Postma", - "given": "Maarten J." - }, - { - "family": "M.", - "given": "Van Hulst" - }, - { - "family": "K. W. C.", - "given": "Sagoe" - }, - { - "family": "J. E.", - "given": "Vermande" - }, - { - "family": "I. P.", - "given": "Van Der Schaaf" - }, - { - "family": "W. P. A.", - "given": "Van Der Tuuk Adriani" - }, - { - "family": "K.", - "given": "Torpey" - }, - { - "family": "J.", - "given": "Ansah" - }, - { - "family": "J. A. A.", - "given": "Mingle" - }, - { - "family": "C.Th.S.", - "given": "Sibinga" - }, - { - "family": "M. J.", - "given": "Postma" - } - ], - "container-title": "Value in Health", - "id": "VanHulst2008", - "issue": "5", - "issued": { - "date-parts": [ - [ - 2008 - ] - ] - }, - "keyword": "Blood Donors,Blood Transfusion,Developing Countries,Ghana,HIV Antibodies,HIV Core Protein p24,HIV Infections,Health Care Costs,Health Expenditures,Human immunodeficiency virus,Human immunodeficiency virus infection,Humans,Mass Screening,Prevalence,adolescent,adult,analysis,antibody screening,antigen p24,article,blood,blood bank,blood donor,blood transfusion,child,cost control,cost effectiveness analysis,decision tree,economics,epidemiology,female,health care cost,human,life expectancy,major clinical study,male,nucleic acid amplification,prevalence,prevention & control,priority journal,risk factor,risk management,standards,teaching hospital,transmission,virus transmission,world health organization", - "page": "809-819", - "title": "Cost-effectiveness of HIV screening of blood donations in Accra (Ghana)", - "type": "article-journal", - "volume": "11" - }, - { - "URL": "https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5642329/pdf/aids-31-2279.pdf", - "author": [ - { - "family": "Mikkelsen", - "given": "Evelinn" - }, - { - "family": "Hontelez", - "given": "Jan A C" - }, - { - "family": "Nonvignond", - "given": "Justice" - }, - { - "family": "Amon", - "given": "Sam" - }, - { - "family": "Asante", - "given": "Felix A" - }, - { - "family": "Aikins", - "given": "Moses K" - }, - { - "dropping-particle": "van de", - "family": "Haterd", - "given": "Julie" - }, - { - "family": "Baltussena", - "given": "Rob" - } - ], - "container-title": "AIDS", - "id": "Mikkelsen2017", - "issue": "16", - "issued": { - "date-parts": [ - [ - 2017 - ] - ] - }, - "page": "2279-2286", - "title": "The costs of HIV treatment and care in Ghana", - "type": "article-journal", - "volume": "31" - }, - { - "DOI": "10.2450/2016.0130-16", - "ISSN": "17232007", - "abstract": "Background. Methylene blue and visible light treatment and quarantine are two methods used to reduce adverse events, mostly infections, associated with the transfusion of fresh-frozen plasma. The objective of this study was to estimate and compare the budget impact and cost-utility of these two methods from a payer’s perspective. Materials and methods. A budget impact and cost-utility model simulating the risks of hepatitis B virus, hepatitis C virus, cytomegalovirus, a West Nile virus-like infection, allergic reactions and febrile non-haemolytic transfusion reactions achieved using plasma treated with methylene blue and visible light (MBP) and quarantine plasma (QP) was constructed for Spain. QP costs were estimated using data from one blood centre in Spain and published literature. The costs of producing fresh-frozen plasma from whole blood, apheresis plasma, and multicomponent apheresis, and separately for passive and active methods of donor recall for QP were included. Costs and outcomes over a 5-year and lifetime time horizon were estimated. Results. Compared to passive QP, MBP led to a net increase of € 850,352, and compared to active QP, MBP led to a net saving of € 5,890,425 over a 5-year period. Compared to passive QP, MBP increased the cost of fresh-frozen plasma per patient by € 7.21 and had an incremental cost-utility ratio of € 705,126 per quality-adjusted life-year. Compared to active QP, MBP reduced cost by € 50.46 per patient and was more effective. Discussion. Plasma collection method and quarantine approach had the strongest influence on the budget impact and cost-utility of MBP. If QP relies on plasma from whole blood collection and passive quarantine, it is less costly than MBP. However, MPB was estimated to be more effective than QP in all analyses.", - "author": [ - { - "family": "Babigumira", - "given": "Joseph B." - }, - { - "family": "Lubinga", - "given": "Solomon J." - }, - { - "family": "Castro", - "given": "Emma" - }, - { - "family": "Custer", - "given": "Brian" - } - ], - "container-title": "Blood Transfusion", - "id": "Babigumira2018", - "issue": "2", - "issued": { - "date-parts": [ - [ - 2018 - ] - ] - }, - "keyword": "Adverse events,Costs and cost analysis,Pathogens,Plasma", - "page": "154-162", - "publisher": "Edizioni SIMTI", - "title": "Cost-utility and budget impact of methylene blue-treated plasma compared to quarantine plasma", - "type": "article-journal", - "volume": "16" - }, - { - "DOI": "10.1111/vox.12705", - "ISSN": "00429007", - "URL": "http://doi.wiley.com/10.1111/vox.12705", - "author": [ - { - "family": "Barro", - "given": "Lassina" - }, - { - "family": "Drew", - "given": "Victor J." - }, - { - "family": "Poda", - "given": "Ghislain G." - }, - { - "family": "Tagny", - "given": "Claude T." - }, - { - "family": "El-Ekiaby", - "given": "Magdy" - }, - { - "family": "Owusu-Ofori", - "given": "Shirley" - }, - { - "family": "Burnouf", - "given": "Thierry" - } - ], - "container-title": "Vox Sanguinis", - "id": "Barro2018", - "issue": "8", - "issued": { - "date-parts": [ - [ - 2018, - 11 - ] - ] - }, - "keyword": "blood,clinical use,sub‐Saharan Africa,transfusion", - "page": "726-736", - "publisher": "John Wiley & Sons, Ltd (10.1111)", - "title": "Blood transfusion in sub-Saharan Africa: understanding the missing gap and responding to present and future challenges", - "type": "article-journal", - "volume": "113" - }, - { - "ISSN": "1481-4501", - "PMID": "22977394", - "URL": "http://www.ncbi.nlm.nih.gov/pubmed/22977394 http://www.pubmedcentral.nih.gov/articlerender.fcgi?artid=PMC3411137", - "abstract": "Health Canada recently licensed Octaplas, which can now be considered as an alternative to standard fresh frozen plasma (FFP) for certain indications. Since, on average, 200,000 units of FFP are transfused annually in Canada, the widespread implementation of Octaplas may have significant public health and economic implications. This study investigates the cost-effectiveness position of Octaplas against standard FFP and its budgetary impact to the health care system.", - "author": [ - { - "literal": "Canadian Agency for Drugs and Technologies in Health (CADTH)" - } - ], - "container-title": "CADTH technology overviews", - "id": "CADTH2010", - "issue": "1", - "issued": { - "date-parts": [ - [ - 2010 - ] - ] - }, - "page": "e0106", - "publisher": "Canadian Agency for Drugs; Technologies in Health", - "title": "Octaplas compared with fresh frozen plasma to reduce the risk of transmitting lipid-enveloped viruses: an economic analysis and budget impact analysis.", - "type": "article-journal", - "volume": "1" - }, - { - "DOI": "10.3201/eid1711.110282", - "URL": "http://dx.doi.org/10.3201/eid1711.110282", - "author": [ - { - "family": "Owusu-Ofori", - "given": "Alex K" - }, - { - "family": "Parry", - "given": "Christopher M" - }, - { - "family": "Bates", - "given": "Imelda" - } - ], - "container-title": "Emerging Infectious Diseases", - "id": "OwusuOfori2011", - "issue": "11", - "issued": { - "date-parts": [ - [ - 2011 - ] - ] - }, - "page": "2080 - 2082", - "title": "Transfusion-transmitted syphilis in teaching hospital, Ghana", - "type": "article-journal", - "volume": "17" - }, - { - "ISBN": "2332166076", - "ISSN": "13446304", - "PMID": "19628902", - "abstract": "SUMMARY: Reports from studies conducted in several countries indicate a high incidence of bacterial contami-nation of donor blood. The prevalence of bacterial contamination of blood and its products in Ghana is not known. This study was conducted to determine the prevalence of bacterial contamination of blood and its products at the three major blood transfusion centers in the Greater Accra Region of Ghana. Stored whole blood and its products were cultured on different media, and isolates were identified using standard biochemical and bacteriological methods. The susceptibility of the isolates to selected antimicrobial agents was also determined by the disc diffusion method. The overall prevalence rate was 9% (28/303; whole blood, 13% [24/192]; plasma, 3% [2/79]; platelet, 9% [2/22]). The Gram-positive bacteria isolated were coagulase-negative Staphylococcus, S. aureus, and Bacillus spp., and the Gram-negative organisms were Yersinia enterocolitica, Citrobacter freundii, Escherichia coli, Pseudomonas aeruginosa, and Klebsiella pneumoniae. The Gram-positive bacteria were sensitive to cloxacillin, erythromycin, tetracycline, and gentamicin but resistant to penicillin, ampicillin, cefuroxime, and cotrimoxazole, while the Gram-negative bacteria were sensitive to amikacin and gentamicin but resistant to chloramphenicol, tetracycline, ampicillin, cefuroxime, cefotaxime (except Y. enterocolitica), and cotrimoxazole. Our results suggest that bacterial contamination of blood and its products is prevalent in Ghana.", - "author": [ - { - "family": "Adjei", - "given": "Andrew Anthony" - }, - { - "family": "Kuma", - "given": "George Khumalo" - }, - { - "family": "Tettey", - "given": "Yao" - }, - { - "family": "Ayeh-Kumi", - "given": "Patrick Ferdinand" - }, - { - "family": "Opintan", - "given": "Japheth" - }, - { - "family": "Apeagyei", - "given": "Francis" - }, - { - "family": "Ankrah", - "given": "Jacob Otinkorang" - }, - { - "family": "Adiku", - "given": "Theophilus Korku" - }, - { - "family": "Narter-Olaga", - "given": "Edwin Gbli" - } - ], - "container-title": "Japanese Journal of Infectious Diseases", - "id": "Adjei2009", - "issue": "4", - "issued": { - "date-parts": [ - [ - 2009 - ] - ] - }, - "page": "265-269", - "title": "Bacterial contamination of blood and blood components in three major blood transfusion centers, Accra, Ghana", - "type": "article-journal", - "volume": "62" - }, - { - "DOI": "10.1111/j.1423-0410.1985.tb01131.x", - "ISSN": "00429007", - "URL": "http://doi.wiley.com/10.1111/j.1423-0410.1985.tb01131.x", - "abstract": "The hypothesis that experimentally determined survival times of Treponema pallidum in stored donorblood could be related to the number of treponemes initially present in the treponeme‐blood mixtures was investigated by inoculating rabbits with three graded doses of treponemes suspended in donor blood and stored at 4°C for various periods of time. The storage periods up to which living treponemes could be detected in the testes of the inoculated rabbits as well as those storage periods up to which seroconversion occurred are related to the number of treponemes present in the treponeme‐blood mixtures. Increasing numbers of treponemes present in the donor blood resulted in longer periods up to which positive results in both parameters were found. All available evidence suggests that the upper limit of seroconversion coincides with the upper limit of treponemal survival. Inoculation with 5times104 treponemes per ml of donor blood resulted in a treponemal survival time of 48 h, inoculation with 1.25times106 treponemes per ml in a treponemal survival time of 72 h and inoculation with 2.5times107 treponemes per ml donor blood in a survival time of 120 h. 1985 Blackwell Publishing Ltd", - "author": [ - { - "dropping-particle": "van der", - "family": "Sluis", - "given": "J. J." - }, - { - "dropping-particle": "ten", - "family": "Kate", - "given": "F. J. W." - }, - { - "family": "Vuzevski", - "given": "V. D." - }, - { - "family": "Kothe", - "given": "F. C." - }, - { - "family": "Aelbers", - "given": "G. M. N." - }, - { - "dropping-particle": "van", - "family": "Eijk", - "given": "R. V. W." - } - ], - "container-title": "Vox Sanguinis", - "id": "vanderSluis1985", - "issue": "6", - "issued": { - "date-parts": [ - [ - 1985, - 12 - ] - ] - }, - "page": "390-399", - "publisher": "John Wiley & Sons, Ltd", - "title": "Transfusion syphilis, survival of Treponema pallidum in stored donor blood", - "type": "article-journal", - "volume": "49" - }, - { - "DOI": "10.1177/0272989X13501558", - "ISSN": "0272989X", - "PMID": "24048350", - "URL": "http://journals.sagepub.com/doi/10.1177/0272989X13501558", - "abstract": "Decision-analytic software commonly used to implement discrete Markov models requires transitions to occur between simulated health states either at the beginning or at the end of each cycle. The result is an over- or underestimation, respectively, of quality-adjusted life expectancy and cost, compared with the results that would be obtained if transitions were modeled to occur randomly throughout each cycle. The standard half-cycle correction (HCC) is used to remedy the bias. However, the standard approach to the HCC is problematic: It does not account for discounting or for the shape of intermediate state membership functions. Application of the standard approach to the HCC also has no numerical effect on the resulting incremental cost-effectiveness ratio or change in net health benefit under certain circumstances. Alternatives to the standard HCC, in order of ease of use, include no correction, the life-table approach, the cycle-tree method, and a correction based on Simpson’s rule. For less complex decision models in which the computational burden is not large, reducing the cycle length to a month or less and using no correction should result in small estimation biases. With more complex models, where cycle lengths larger than 1 month may be necessary to make computation feasible, we recommend the cycle tree approach. The latter is relatively easy to apply and has an intuitive appeal: Hypothetical subjects who transition from one state to another, on average halfway through a cycle, should receive half of the value associated with the state from which they come and half the value of the state to which they are going. The Author(s) 2013.", - "author": [ - { - "family": "Naimark", - "given": "David M. J." - }, - { - "family": "Kabboul", - "given": "Nader N." - }, - { - "family": "Krahn", - "given": "Murray D." - } - ], - "container-title": "Medical Decision Making", - "id": "Naimark2013", - "issue": "7", - "issued": { - "date-parts": [ - [ - 2013, - 10 - ] - ] - }, - "keyword": "Markov models,discrete state transition models,half-cycle correction", - "page": "961-970", - "publisher": "SAGE PublicationsSage CA: Los Angeles, CA", - "title": "The half-cycle correction revisited: Redemption of a kludge", - "type": "article-journal", - "volume": "33" - }, - { - "DOI": "10.1111/tme.12028", - "ISSN": "09587578", - "PMID": "23672710", - "URL": "http://doi.wiley.com/10.1111/tme.12028", - "abstract": "SUMMARY: Background: Misuse of blood by clinicians was suggested to explain blood shortage in sub-Saharan Africa although based on little evidence. This study evaluated whether routine halving (restricted) of blood requests was justified. Study design and methods: On alternated days for 3months in 2011-2012, restricted or full blood product supply [whole blood (WB), red cell concentrate (RCC)] was provided to the Obstetrics & Gynaecology department (O&G). Patient age, haemoglobin (Hb) level pre- and post-transfusion, clinical condition, blood products request and supply, transfused and returned, clinical outcome were collated. Results: Five hundred and nineteen patients (249 restricted and 270 full supply) received 1001 blood products (946% WB, 64% RCC). Clinical conditions were severe peri-partum bleeding (724%) requiring emergency transfusion (82%) whilst 276% of total transfusion was for anaemia, 18% being moderate (8-10gdL-1). Pre-transfusion Hb level was <6gdL-1 in 367%, 6-8gdL-1 291% and ≥8gdL-1 in 332% of cases. Fifty-five percent of the transfused blood was stored ≤1week. Restricted supply triggered additional request (40%) compared to 10% in full supply mode. Whether with restricted or full supply, blood requests, supply and units transfused/patient were similar (restricted 23 and 21unitpatient-1 and full 29 and 23unitpatient-1, respectively). Fatal clinical outcome was 31% evenly distributed between supply modes and transfusion reactions 08%. Conclusions: O&G clinicians order blood according to clinical need and transfuse 85% of the products supplied. Product supply did not significantly affect use although appropriateness of transfusion was difficult to assess. 2013 British Blood Transfusion Society.", - "author": [ - { - "family": "Osei", - "given": "E. N." - }, - { - "family": "Odoi", - "given": "A. T." - }, - { - "family": "Owusu-Ofori", - "given": "S." - }, - { - "family": "Allain", - "given": "J. P." - } - ], - "container-title": "Transfusion Medicine", - "id": "Osei2013", - "issue": "3", - "issued": { - "date-parts": [ - [ - 2013, - 6 - ] - ] - }, - "keyword": "Acute haemorrhage,Blood use,Emergency transfusion,Obstetrics and Gynaecology,Sub-Saharan Africa", - "page": "160-166", - "title": "Appropriateness of blood product transfusion in the Obstetrics and Gynaecology (O&G) department of a tertiary hospital in West Africa", - "type": "article-journal", - "volume": "23" - }, - { - "DOI": "10.1111/j.1537-2995.2012.03943.x", - "ISBN": "0041-1132", - "ISSN": "00411132", - "PMID": "23113534", - "abstract": "BACKGROUND: Prevention of transfusion-transmitted malaria in at-risk children and pregnant women in endemic areas with inexpensive chloroquine is no longer effective due to widespread drug resistance. There is an urgent need for devising new strategies for transfusion malarial safety. We investigated the frequency of transfusion transmission of malaria within the Ghanaian blood donation system using blood donations from 106 asymptomatic adult Ghanaian blood donors.\\backslashn\\backslashnSTUDY DESIGN AND METHODS: Paired samples from 106 blood donations and recipients (before and after transfusion) were tested for anti-merozoite surface protein-1/2 using the commercial Lab21 malaria enzyme immunoassay (EIA), four antigen-specific in-house EIAs, and Plasmodium lactate dehydrogenase (pLDH) EIA. Additionally, Plasmodium DNA was screened for using a species-specific nested polymerase chain reaction (PCR) and a Pan-Plasmodium quantitative PCR. Donor-recipient parasite identity was defined by two concordant genotyping strategies.\\backslashn\\backslashnRESULTS: Plasmodium antibody prevalence was 100% in both donors and recipients, with at least one antigen. Parasitemia prevalence was 54.7% in both donors and recipients with median levels of 20 and 5.3 copies/\\muL, respectively, the difference being correlated to age (p = 0.0001). Multiple species infections were frequent (8.5%). Twenty-four units of parasitemic blood were transfused to nonparasitemic recipients, of which 10 (41.7%) became infected after transfusion. Molecular genotyping with 13 distinct markers (antigenic genes and microsatellite loci) identified three to nine parasitemic recipients after transfusion with level of allelic identity suggesting 14% to 28% definite or possible transfusion-related parasitemia.\\backslashn\\backslashnCONCLUSION: None of the currently available screening assays appear suitable to minimize transfusion malaria without compromising the blood supply in endemic areas.", - "author": [ - { - "family": "Freimanis", - "given": "Graham" - }, - { - "family": "Sedegah", - "given": "Mary" - }, - { - "family": "Owusu-Ofori", - "given": "Shirley" - }, - { - "family": "Kumar", - "given": "Sanjai" - }, - { - "family": "Allain", - "given": "Jean Pierre" - } - ], - "container-title": "Transfusion", - "id": "Freimanis2013", - "issue": "7", - "issued": { - "date-parts": [ - [ - 2013 - ] - ] - }, - "page": "1429-1441", - "title": "Investigating the prevalence of transfusion transmission of Plasmodium within a hyperendemic blood donation system", - "type": "article-journal", - "volume": "53" - }, - { - "DOI": "10.1111/tme.12279", - "ISSN": "13653148", - "PMID": "26834072", - "abstract": "OBJECTIVE: To implement and describe a novel syphilis screening strategy for blood donors. BACKGROUND: The seroprevalence of syphilis in blood donors is often high in low- and middle-income countries (LMIC) although the proportion of infectious donations is probably low. Syphilis screening may not happen at all; or the use of non-specific screening tests, which have high false positive rates, results in many donations being discarded unnecessarily. This can have a critical effect on already inadequate blood supplies. MATERIALS AND METHODS: Blood donors were screened at the time of donation with an anti-treponemal rapid diagnostic test (RDT) and blood collected irrespective of the result. Units screening negative for syphilis, human immunodeficiency virus (HIV) and hepatitis B and C were released to stock. RDT screen-positive units were re-tested with rapid plasma reagin (RPR) - units testing negative were released to stock and test-positive units discarded. RESULTS: Of the 2213 blood donors, 182 (8.2%; 182/2213) screened positive by RDT. In addition, 38 out of these 182 (20.9%) were RPR positive on post-donation testing. Over 2 months there was a 79% reduction in blood units discarded due to a positive syphilis screen. CONCLUSION: In other LMIC, this novel strategy can contribute to improving blood safety without jeopardising blood supply", - "author": [ - { - "family": "Sarkodie", - "given": "F." - }, - { - "family": "Ullum", - "given": "H." - }, - { - "family": "Owusu-Dabo", - "given": "E." - }, - { - "family": "Owusu-Ofori", - "given": "S." - }, - { - "family": "Owusu-Ofori", - "given": "A." - }, - { - "family": "Hassall", - "given": "O." - } - ], - "container-title": "Transfusion Medicine", - "id": "Sarkodie2016", - "issue": "1", - "issued": { - "date-parts": [ - [ - 2016 - ] - ] - }, - "keyword": "Blood donation testing,Blood safety,Serological testing", - "page": "63-66", - "title": "A novel strategy for screening blood donors for syphilis at Komfo Anokye Teaching Hospital, Ghana", - "type": "article-journal", - "volume": "26" - }, - { - "URL": "https://apps.who.int/gho/data/node.main", - "accessed": { - "date-parts": [ - [ - 2020, - 7, - 2 - ] - ] - }, - "author": [ - { - "literal": "World Health Organization" - } - ], - "id": "WHO_data2020", - "title": "Global Health Observatory data repository", - "type": "" - }, - { - "URL": "https://population.un.org/wpp/Download/Standard/Population/", - "author": [ - { - "literal": "United Nations Population Division" - } - ], - "id": "UnitedNationsPopulationDivision2019", - "issued": { - "date-parts": [ - [ - 2019 - ] - ] - }, - "publisher-place": "New York", - "title": "World Population Prospects", - "type": "report" - }, - { - "DOI": "10.1007/s40273-015-0356-x", - "ISSN": "11792027", - "abstract": "Background: The recently launched nucleotide polymerase inhibitor sofosbuvir represents a significant turn in the treatment paradigm of chronic hepatitis C. While effective, sofosbuvir is also associated with a considerable cost. Objective: The objective of this study was to evaluate the cost effectiveness of sofosbuvir-containing regimens in treatment-naive patients with chronic hepatitis C virus (HCV) genotype 5 (HCV-G5) mono-infection in South Africa (SA). Design: We constructed a lifetime horizon decision-analytic Markov model of the natural history of HCV infection to evaluate the cost effectiveness of sofosbuvir–ledipasvir (SOF/LDV) monotherapy against sofosbuvir triple therapy (SOF-TT) (sofosbuvir + pegylated interferon and ribavirin [peg-INF/RBV]) and the current standard of care (SOC) (peg-INF/RBV) for patients with chronic HCV-G5 in the South African context. The model was populated with data from published literature, expert opinion and South African private sector cost data. The price modelled for sofosbuvir was the predicted South African private sector price of 82,129.32 South African rand (R) (US$7000) for 12 weeks. The analysis was conducted from a third-party payer perspective. Outcome Measures: The outcome measures were discounted and undiscounted costs (in 2015 South African rand and US dollars) and quality-adjusted life-years (QALYs), and incremental cost-effectiveness ratios (ICERs). Results: Outcomes from the cost-effectiveness model show that SOF/LDV yields the most favourable future health economic outcomes compared with SOF-TT and the current SOC in SA. Findings relating to the lifetime incremental cost per QALY gained for patients infected with HCV-G5 indicate that SOF/LDV dominated both SOF-TT and SOC, i.e. SOF/LDV is less costly and more effective. Conclusion: Outcomes from this analysis suggest that at a price of R123,190 ($US10,500) for 12 weeks of SOF/LDV might be cost effective for South African patients infected with HCV-G5.", - "author": [ - { - "family": "Fraser", - "given": "Ilanca" - }, - { - "family": "Burger", - "given": "Johanita" - }, - { - "family": "Lubbe", - "given": "Martie" - }, - { - "family": "Dranitsaris", - "given": "George" - }, - { - "family": "Sonderup", - "given": "Mark" - }, - { - "family": "Stander", - "given": "Tienie" - } - ], - "container-title": "PharmacoEconomics", - "id": "Fraser2016", - "issue": "4", - "issued": { - "date-parts": [ - [ - 2016, - 4 - ] - ] - }, - "page": "403-417", - "publisher": "Springer International Publishing", - "title": "Cost-effectiveness modelling of Sofosbuvir-containing regimens for chronic genotype 5 hepatitis C virus infection in South Africa", - "type": "article-journal", - "volume": "34" - }, - { - "DOI": "10.1111/vox.12620", - "PMID": "29193128", - "URL": "http://www.ncbi.nlm.nih.gov/pubmed/29193128", - "abstract": "Transfusion-transmitted infection risk remains an enduring challenge to blood safety in Africa. A high background incidence and prevalence of the major transfusion-transmitted infections (TTIs), dependence on high-risk donors to meet demand, suboptimal testing and quality assurance collectively contribute to the increased risk. With few exceptions, donor testing is confined to serological evaluation of human immunodeficiency virus (HIV), hepatitis B and C (HBV and HCV) and syphilis. Barriers to implementation of broader molecular methods include cost, limited infrastructure and lack of technical expertise. Pathogen reduction (PR), a term used to describe a variety of methods (e.g. solvent detergent treatment or photochemical activation) that may be applied to blood following collection, offers the means to diminish the infectious potential of multiple pathogens simultaneously. This is effective against different classes of pathogen, including the major TTIs where laboratory screening is already implemented (e.g. HIV, HBV and HCV) as well pathogens that are widely endemic yet remain unaddressed (e.g. malaria, bacterial contamination). We sought to review the available and emerging PR techniques and their potential application to resource-constrained parts of Africa, focusing on the advantages and disadvantages of such technologies. PR has been slow to be adopted even in high-income countries, primarily given the high costs of use. Logistical considerations, particularly in low-resourced parts of Africa, also raise concerns about practicality. Nonetheless, PR offers a rational, innovative strategy to contend with TTIs; technologies in development may well present a viable complement or even alternative to targeted screening in the future.", - "author": [ - { - "family": "Ware", - "given": "A. D." - }, - { - "family": "Jacquot", - "given": "C." - }, - { - "family": "Tobian", - "given": "A. A. R." - }, - { - "family": "Gehrie", - "given": "E. A." - }, - { - "family": "Ness", - "given": "P. M." - }, - { - "family": "Bloch", - "given": "E. M." - } - ], - "container-title": "Vox Sanguinis", - "id": "Ware2018", - "issue": "1", - "issued": { - "date-parts": [ - [ - 2018, - 1 - ] - ] - }, - "page": "3-12", - "title": "Pathogen reduction and blood transfusion safety in Africa: strengths, limitations and challenges of implementation in low-resource settings", - "type": "article-journal", - "volume": "113" - }, - { - "DOI": "10.1186/s13054-019-2501-y", - "ISSN": "1466609X", - "PMID": "31186062", - "URL": "https://ccforum.biomedcentral.com/articles/10.1186/s13054-019-2501-y", - "abstract": "Background: Aetiology and outcomes of sepsis in sub-Saharan Africa (sSA) are poorly described; we performed a systematic review and meta-analysis to summarise the available data. Methods: Systematic searches of PubMed and Scopus were undertaken to identify prospective studies recruiting adults (> 13 years) with community-acquired sepsis in sSA post-2000. Random effects meta-analysis of in-hospital and 30-day mortality was undertaken and available aetiology data also summarised by random effects meta-analysis. Results: Fifteen studies of 2800 participants were identified. Inclusion criteria were heterogeneous. The majority of patients were HIV-infected, and Mycobacterium tuberculosis was the most common cause of blood stream infection where sought. Pooled in-hospital mortality for Sepsis-2-defined sepsis and severe sepsis was 19% (95% CI 12-29%) and 39% (95% CI 30-47%) respectively, and sepsis mortality was associated with the proportion of HIV-infected participants. Mortality and morbidity data beyond 30 days were absent. Conclusions: Sepsis in sSA is dominated by HIV and tuberculosis, with poor outcomes. Optimal antimicrobial strategies, including the role of tuberculosis treatment, are unclear. Long-term outcome data are lacking. Standardised sepsis diagnostic criteria that are easily applied in low-resource settings are needed to establish an evidence base for sepsis management in sSA.", - "author": [ - { - "family": "Lewis", - "given": "Joseph M." - }, - { - "family": "Feasey", - "given": "Nicholas A." - }, - { - "family": "Rylance", - "given": "Jamie" - } - ], - "container-title": "Critical Care", - "id": "Lewis2019", - "issue": "1", - "issued": { - "date-parts": [ - [ - 2019, - 6 - ] - ] - }, - "keyword": "Africa south of the Sahara,Bloodstream infection,HIV,Sepsis,Tuberculosis", - "page": "212", - "publisher": "BioMed Central Ltd.", - "title": "Aetiology and outcomes of sepsis in adults in sub-Saharan Africa: A systematic review and meta-analysis", - "type": "article-journal", - "volume": "23" - }, - { - "DOI": "10.1016/S0149-2918(03)80288-6", - "ISSN": "0149-2918", - "URL": "https://www-sciencedirect-com.stanford.idm.oclc.org/science/article/pii/S0149291803802886", - "author": [ - { - "family": "Bell", - "given": "Christopher E." - }, - { - "family": "Botteman", - "given": "Marc F." - }, - { - "family": "Gao", - "given": "Xin" - }, - { - "family": "L.Weissfeld", - "given": "Joel" - }, - { - "family": "Postma", - "given": "Maarten J." - }, - { - "family": "Pashos", - "given": "Chris L." - }, - { - "family": "Triulzi", - "given": "Darrell" - }, - { - "family": "Staginnus", - "given": "Ulf" - } - ], - "container-title": "Clinical Therapeutics", - "id": "Bell2003", - "issue": "9", - "issued": { - "date-parts": [ - [ - 2003, - 9 - ] - ] - }, - "page": "2464-2486", - "publisher": "Elsevier", - "title": "Cost-effectiveness of transfusion of platelet components prepared with pathogen inactivation treatment in the United States", - "type": "article-journal", - "volume": "25" - }, - { - "DOI": "10.1111/tme.12363", - "ISSN": "13653148", - "PMID": "27723157", - "abstract": "BACKGROUND: Syphilis testing conventionally relies on a combination of non-treponemal and treponemal tests. The primary objective of this study was to describe the positive predictive value (PPV) of a screening algorithm in a combination of a treponemal rapid diagnostic test (RDT) and rapid plasma reagin (RPR) test at Komfo Anokye Teaching Hospital (KATH), Ghana. MATERIALS AND METHODS: From February 2014 to January 2015, 5 mL of venous blood samples were taken from 16 016 blood donors and tested with a treponemal RDT; 5 mL of venous blood was taken from 526 consenting initial syphilis sero-reactive blood donors. These RDT reactive samples were confirmed with an algorithm, applying the Vitros((R)) /Abbott-Architect((R)) algorithm as gold standard. RESULTS: A total of 478 of 526 RDT reactive donors were confirmed positive for syphilis, making a PPV of 90.9%. Of the 172 (32.7%) donors who were also RPR positive, 167 were confirmed, resulting in a PPV of 97.1%. The PPV of the combined RDT and RPR (suspected active syphilis) testing algorithm was highest among donors at an enhanced risk of syphilis, family/replacement donors (99.9%), and among voluntary donors above 25 years (98.6%). DISCUSSION: Screening of blood donors by combining syphilis RDT and RPR with relatively good PPV may provide a reasonable technology for LMIC that has a limited capacity for testing and can contribute to the improvement of blood safety with a minimal loss of donors.", - "author": [ - { - "family": "Sarkodie", - "given": "F." - }, - { - "family": "Hassall", - "given": "O." - }, - { - "family": "Owusu-Dabo", - "given": "E." - }, - { - "family": "Owusu-Ofori", - "given": "S." - }, - { - "family": "Bates", - "given": "I." - }, - { - "family": "Bygbjerg", - "given": "I. C." - }, - { - "family": "Owusu-Ofori", - "given": "A." - }, - { - "family": "Harritshøj", - "given": "L. H." - }, - { - "family": "Ullum", - "given": "H." - } - ], - "container-title": "Transfusion Medicine", - "id": "Sarkodie2017", - "issue": "1", - "issued": { - "date-parts": [ - [ - 2017 - ] - ] - }, - "keyword": "blood donors,blood safety,public health,rapid diagnostic test,rapid plasma reagin", - "page": "52-59", - "title": "Improving the screening of blood donors with syphilis rapid diagnostic test (RDT) and rapid plasma reagin (RPR) in low- and middle-income countries (LMIC)", - "type": "article-journal", - "volume": "27" - }, - { - "URL": "https://cfs.hivci.org/country-factsheet.html", - "abstract": "WHO/UCN/HSS/19.54", - "author": [ - { - "literal": "World Health Organization" - } - ], - "id": "WHO2019", - "issued": { - "date-parts": [ - [ - 2019 - ] - ] - }, - "page": "1-6", - "title": "HIV Country Profiles", - "type": "report" - }, - { - "DOI": "10.2450/2017.0320-16", - "ISBN": "1723-2007 (Print)1723-2007", - "ISSN": "17232007", - "PMID": "28665269", - "abstract": "Worldwide safety of blood has been positively impacted by technological, economic and social improvements; nevertheless, growing socio-political changes of contemporary society together with environmental changes challenge the practice of blood transfusion with a continuous source of unforeseeable threats with the emergence and re-emergence of blood-borne pathogens. Pathogen reduction (PR) is a proactive strategy to mitigate the risk of transfusion-transmitted infections. PR technologies for the treatment of single plasma units and platelet concentrates are commercially available and have been successfully implemented in more than 2 dozen countries worldwide. Ideally, all labile blood components should be PR treated to ensure a safe and sustainable blood supply in accordance with regional transfusion best practices. Recently, a device (Mirasol Pathogen Reduction Technology System) for PR treatment of whole blood using riboflavin and UV light has received CE marking, a significant step forward in realising blood safety where WB transfusion is the norm, such as in sub-Saharan Africa and in far-forward combat situations. There is also keen interest in the ability to derive components from Mirasol -treated whole blood, as it is seen as a more efficient and economical means to implement universal PR in the blood centre environment than treatment of components with different PR systems.", - "author": [ - { - "family": "Yonemura", - "given": "Susan" - }, - { - "family": "Doane", - "given": "Suzann" - }, - { - "family": "Keil", - "given": "Shawn" - }, - { - "family": "Goodrich", - "given": "Raymond" - }, - { - "family": "Pidcoke", - "given": "Heather" - }, - { - "family": "Cardoso", - "given": "Marcia" - } - ], - "container-title": "Blood Transfusion", - "id": "Yonemura2017", - "issue": "4", - "issued": { - "date-parts": [ - [ - 2017 - ] - ] - }, - "keyword": "Blood safety,Bloodborne pathogens,Emerging infectious diseases,Transfusion medicine", - "page": "357-364", - "title": "Improving the safety of whole blood-derived transfusion products with a riboflavinbased pathogen reduction technology", - "type": "article-journal", - "volume": "15" - }, - { - "DOI": "10.1016/j.biologicals.2009.10.016", - "ISSN": "10451056", - "URL": "http://dx.doi.org/10.1016/j.biologicals.2009.10.016", - "abstract": "The use of blood components has been a staple of transfusion medicine for several decades. Technologies for the processing and handling of blood, including separation of components from whole blood, are very well developed. Relative to blood safety, methods to detect the presence of pathogens and reduce the levels of donor white blood cells from whole blood are also well established in routine practice. The advantages which exist for the handling of whole blood by these methods have, for various reasons, not extended to the field of pathogen reduction technology (PRT). PRT methods have been developed and are now in routine use in various locations for addressing single donor or pooled plasma and platelet products. Several methods have also been in experimental development for the treatment of red blood cells as a separate component. The ability to treat whole blood in a fashion that would allow a single pathogen reduction and white blood cell inactivation step, to be followed by use of the product in the form of whole blood or separation into components, would afford several benefits from both a logistical and practical standpoint. This manuscript describes development efforts using a photochemical PRT method employing riboflavin and UV-Light (MirasolPRT). 2009 The International Association for Biologicals.", - "author": [ - { - "family": "Goodrich", - "given": "Raymond P." - }, - { - "family": "Doane", - "given": "Suzann" - }, - { - "family": "Reddy", - "given": "Heather L." - } - ], - "container-title": "Biologicals", - "id": "Goodrich2010", - "issue": "1", - "issued": { - "date-parts": [ - [ - 2010 - ] - ] - }, - "keyword": "Pathogen reduction,Riboflavin,UV-light,Whole blood", - "page": "20-30", - "publisher": "Elsevier Ltd", - "title": "Design and development of a method for the reduction of infectious pathogen load and inactivation of white blood cells in whole blood products", - "type": "article-journal", - "volume": "38" - }, - { - "DOI": "10.1016/S2214-109X(15)00069-8", - "ISSN": "2214109X", - "PMID": "26475018", - "abstract": "Background: The Global Burden of Disease (GBD) study assesses health losses from diseases, injuries, and risk factors using disability-adjusted life-years, which need a set of disability weights to quantify health levels associated with non-fatal outcomes. The objective of this study was to estimate disability weights for the GBD 2013 study. Methods: We analysed data from new web-based surveys of participants aged 18-65 years, completed in four European countries (Hungary, Italy, the Netherlands, and Sweden) between Sept 23, 2013, and Nov 11, 2013, combined with data previously collected in the GBD 2010 disability weights measurement study. Surveys used paired comparison questions for which respondents considered two hypothetical individuals with different health states and specified which person they deemed healthier than the other. These surveys covered 183 health states pertinent to GBD 2013; of these states, 30 were presented with descriptions revised from previous versions and 18 were new to GBD 2013. We analysed paired comparison data using probit regression analysis and rescaled results to disability weight units between 0 (no loss of health) and 1 (loss equivalent to death). We compared results with previous estimates, and an additional analysis examined sensitivity of paired comparison responses to duration of hypothetical health states. Findings: The total analysis sample consisted of 30 230 respondents from the GBD 2010 surveys and 30 660 from the new European surveys. For health states common to GBD 2010 and GBD 2013, results were highly correlated overall (Pearson’s r 0992 [95% uncertainty interval 0989-0994]). For health state descriptions that were revised for this study, resulting disability weights were substantially different for a subset of these weights, including those related to hearing loss (eg, complete hearing loss: GBD 2010 0033 [0020-0052]; GBD 2013 0215 [0144-0307]) and treated spinal cord lesions (below the neck: GBD 2010 0047 [0028-0072]; GBD 2013 0296 [0198-0414]; neck level: GBD 2010 0369 [0243-0513]; GBD 2013 0589 [0415-0748]). Survey responses to paired comparison questions were insensitive to whether the comparisons were framed in terms of temporary or chronic outcomes (Pearson’s r 0981 [0973-0987]). Interpretation: This study substantially expands the empirical basis for assessment of non-fatal outcomes in the GBD study. Findings from this study substantiate the notion that disability weights are sensitive to particular details in descriptions of health states, but robust to duration of outcomes. Funding: European Centre for Disease Prevention and Control, Bill and Melinda Gates Foundation.", - "author": [ - { - "family": "Salomon", - "given": "Joshua A." - }, - { - "family": "Haagsma", - "given": "Juanita A." - }, - { - "family": "Davis", - "given": "Adrian" - }, - { - "dropping-particle": "de", - "family": "Noordhout", - "given": "Charline Maertens" - }, - { - "family": "Polinder", - "given": "Suzanne" - }, - { - "family": "Havelaar", - "given": "Arie H." - }, - { - "family": "Cassini", - "given": "Alessandro" - }, - { - "family": "Devleesschauwer", - "given": "Brecht" - }, - { - "family": "Kretzschmar", - "given": "Mirjam" - }, - { - "family": "Speybroeck", - "given": "Niko" - }, - { - "family": "Murray", - "given": "Christopher J. L." - }, - { - "family": "Vos", - "given": "Theo" - } - ], - "container-title": "The Lancet Global Health", - "id": "GBD2013", - "issue": "11", - "issued": { - "date-parts": [ - [ - 2015, - 11 - ] - ] - }, - "page": "e712-e723", - "publisher": "Elsevier Ltd", - "title": "Disability weights for the Global Burden of Disease 2013 study", - "type": "article-journal", - "volume": "3" - }, - { - "DOI": "10.1111/j.1537-2995.2009.002402.x", - "ISBN": "1537-2995", - "ISSN": "00411132", - "PMID": "19843290", - "abstract": "BACKGROUND: Blood transfusions carry the risk of transmitting infections. This risk has been studied in detail in high-income countries but not in sub-Saharan Africa. This study estimates the risks of acquiring human immunodeficiency virus (HIV), hepatitis B virus (HBV), or hepatitis C virus (HCV) from a single unit of blood in sub-Saharan Africa. STUDY DESIGN AND METHODS: A mathematical model was constructed to quantify transfusion risks across 45 sub-Saharan African countries using three components: the risk of a contaminated unit entering the blood supply, the risk that the unit will be given to a susceptible patient, and the risk that receipt of the unit will lead to infection in the recipient. Variables included prevalence of infection in donors, extent of blood testing, test sensitivity, and susceptibility of recipients. Data from the World Health Organization (WHO) African Region and a systematic review of the literature were used to parameterize the model. Uncertainty in the risk estimates was quantified using probabilistic sensitivity analysis. RESULTS: The median overall risks of becoming infected with HIV, HBV, and HCV from a blood transfusion in sub-Saharan Africa were 1, 4.3, and 2.5 infections per 1000 units, respectively. If annual transfusion requirements projected by the WHO were met, transfusions alone would be responsible for 28,595 HBV infections, 16,625 HCV infections, and 6650 HIV infections every year. Sensitivity analysis suggests that the true risks may be even higher. CONCLUSIONS: This study is the first to systematically quantify the risks of transfusion-transmitted infections across sub-Saharan Africa. Although the results are limited by the quality and quantity of available data, these may be the most reliable estimates at this time.", - "author": [ - { - "family": "Jayaraman", - "given": "Sudha" - }, - { - "family": "Chalabi", - "given": "Zaid" - }, - { - "family": "Perel", - "given": "Pablo" - }, - { - "family": "Guerriero", - "given": "Carla" - }, - { - "family": "Roberts", - "given": "Ian" - } - ], - "container-title": "Transfusion", - "id": "Jayaraman2010", - "issue": "2", - "issued": { - "date-parts": [ - [ - 2010 - ] - ] - }, - "page": "433-442", - "title": "The risk of transfusion-transmitted infections in sub-Saharan Africa", - "type": "article-journal", - "volume": "50" - }, - { - "DOI": "10.1155/2017/7149261", - "ISSN": "16879694", - "PMID": "29138642", - "abstract": "Background Asymptomatic malaria parasitaemia has been documented in donor blood in West Africa. However, donated blood is not routinely screened for malaria parasites (MPs). The present study therefore aimed to document the frequency of blood transfusion-induced donor-recipient malaria parasitaemia patterns, in children receiving blood transfusion in a tertiary health-centre. Methodology A cross-sectional, observational study involving 140 children receiving blood transfusion was carried out. Blood donor units and patients’ blood samples were obtained, for the determination of malaria parasites (MPs). Giemsa staining technique was used to determine the presence of malaria parasitaemia. Results Malaria parasites were detected in 7% of donor blood and in 8.3% of the recipients’ pretransfusion blood. The incidence of posttransfusion MPs was 3%, but none of these were consistent with blood transfusion-induced malaria, as no child with posttransfusion parasitaemia was transfused with parasitized donor blood. Majority of the blood transfusions (89.4%) had no MPs in either donors or recipients, while 6.8% had MPs in both donors and recipients, with the remaining 3.8% showing MPs in recipients alone. Conclusion In conclusion, the incidence of posttransfusion malaria parasitaemia appears low under the prevailing circumstances.", - "author": [ - { - "family": "Faruk", - "given": "Jamilu Abdullahi" - }, - { - "family": "Ogunrinde", - "given": "Gboye Olufemi" - }, - { - "family": "Mamman", - "given": "Aisha Indo" - } - ], - "container-title": "Journal of Tropical Medicine", - "id": "Faruk2017", - "issued": { - "date-parts": [ - [ - 2017 - ] - ] - }, - "title": "Observation of Blood Donor-Recipient Malaria Parasitaemia Patterns in a Malaria Endemic Region", - "type": "article-journal", - "volume": "2017" - }, - { - "URL": "http://livrepository.liverpool.ac.uk/6173", - "abstract": "Background and Methods: Blood transfusion saves lives and improves health but the presence of transfusion transmissible infections can have untoward consequences. When undetected, these infections can cause significant morbidity and mortality to transfusion recipients. On the other hand, a high prevalence of transfusion-transmitted infections (TTI) leading to rejection of a large proportion of donated blood can result in blood shortages and subsequent increase in mortality. Malaria and bacterial infections are transfusion transmissible but there is limited data concerning these infections in sub-Saharan Africa. Although the burden of transfusion-transmitted malaria in malaria endemic countries are unknown, it is recommended that all donated blood is screened for malaria parasites and presumptive treatment be given to transfusion recipients. Bacterial contamination in sub-Saharan Africa has been reported to occur in between 8 - 17% of stored blood but the effect of contamination on transfusion recipients has not been determined. Syphilis is currently the only bacterial infection for which routine screening is recommended but screening is not being performed in many blood centres including Komfo Anokye Teaching Hospital (KATH) in Kumasi, Ghana where this study took place. This study examined the effects of transfusion-transmitted malaria (TTM) and bacterial infections (including syphilis) on transfusion recipients in a malaria endemic area. Four malaria screening tests were compared to assess their usefulness in the context of African blood banks. Pregnant women, children and immune-compromised transfusion recipients from the Departments of Obstetrics and Gynaecology, Paediatrics, Medicine and Oncology in KATH were enrolled into the study. Results: Anti-malarial drugs were routinely prescribed with paediatric transfusions. Fifty patients were evaluated after receiving blood transfusions that were positive for P. falciparum by PCR and seven recipients developed PCR-detectable parasitaemia. In only one recipient (2%) was TTM confirmed. The prevalence of P. falciparum malaria in transfused blood was 4.7% (21/445) by microscopy, 13.7% (60/440) by rapid diagnostic test, 18% (78/436) by polymerase chain reaction and 22.2% (98/442) by enzyme immunoassay. Bacterial contamination was found in 11.5 %( 95% CI 7.0-16.0%) (23/200) of donated blood units but only half of the recipients were observed to developed adverse signs of transfusion related sepsis. The mean duration of storage of blood was 2 days. The prevalence of syphilis sero-positivity in donated blood was 8.0% (95% CI 4.3-11.7%). Seroconversion took place in an 8 year old girl, after receiving a syphilis sero-positive unit of blood. Conclusions: This thesis has shown that malaria parasites may be commonly detected in donor blood but TTM occurs infrequently in recipients living in malaria endemic areas. The high rate of bacterial contamination and its associated transfusion related sepsis poses a safety risk to transfusion recipients. Transfusion-transmitted syphilis remains a risk for transfusion recipients in blood centres with a high prevalence and short duration of storage of donor blood.", - "author": [ - { - "family": "Owusu-ofori", - "given": "Alex K" - } - ], - "id": "Owusu-Ofori2012", - "issued": { - "date-parts": [ - [ - 2012 - ] - ] - }, - "number": "May", - "publisher": "University of Liverpool", - "publisher-place": "Liverpool", - "title": "Transfusion transmitted malaria and bacterial infections in a malaria endemic region [Doctoral Dissertation]", - "type": "report" - }, - { - "URL": "https://www.who.int/immunization/monitoring_surveillance/data/gha.pdf", - "author": [ - { - "literal": "World Health Organization" - } - ], - "id": "WorldHealthOrganization2020", - "issued": { - "date-parts": [ - [ - 2020 - ] - ] - }, - "page": "1-22", - "publisher-place": "Geneva", - "title": "WHO and UNIFEF estimates of national immunization coverage in Ghana", - "type": "report" - }, - { - "DOI": "10.1046/j.1537-2995.1999.39050479.x", - "ISSN": "00411132", - "URL": "http://doi.wiley.com/10.1046/j.1537-2995.1999.39050479.x", - "author": [ - { - "family": "Pereira", - "given": "A." - } - ], - "container-title": "Transfusion", - "id": "Pereira1999", - "issue": "5", - "issued": { - "date-parts": [ - [ - 1999, - 5 - ] - ] - }, - "keyword": "ASLE = age‐ and sex‐adjusted life expectancy,FFP = fresh‐frozen plasma,HBV = hepatitis B virus,HCV = hepatitis C virus,QALY = quality‐adjusted life year,RBC(s) = red cell(s).", - "page": "479-487", - "publisher": "John Wiley & Sons, Ltd (10.1111)", - "title": "Cost-effectiveness of transfusing virus-inactivated plasma instead of standard plasma", - "type": "article-journal", - "volume": "39" - }, - { - "DOI": "10.2450/2015.0019-15", - "ISSN": "17232007", - "PMID": "26192782", - "URL": "/pmc/articles/PMC4624536/?report=abstract https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4624536/", - "abstract": "Background. There are limited published data on the characteristics of blood transfusion recipients in sub-Saharan Africa. This study describes the demographic characteristics of blood transfusion recipients and patterns of blood and blood component use in Zimbabwe. Materials and methods. Data on the characteristics of the blood transfusion recipients (age, sex, blood group), blood components received (type, quantity), discharge diagnoses and outcomes following transfusion (discharge status, duration of stay in hospital), were retrospectively collected from four major hospitals for the period from January 1, 2012 to December 31, 2012. Diagnoses were grouped into broad categories according to the disease headings of the International Classification of Diseases (ICD-10). Surgical procedures were grouped into broad categories according to organ system using ICD-9. Results. Most of the 1,793 transfusion recipients studied were female (63.2%) and in the reproductive age group, i.e. 15-49 years (65.3%). The median age of the recipients was 33 years (range, 0-93). The majority of these recipients (n=1,642; 91.6%) received a red blood cell transfusion. The majority of the patients were diagnosed with conditions related to pregnancy and childbirth (22.3%), and diseases of blood and blood-forming organs (17.7%). The median time spent in hospital was 8 days (range, 0-214) and in-hospital mortality was 15.4%. Discussion. Our sample of blood transfusion recipients were fairly young and most of them received red blood cell transfusions. The majority of patients in the reproductive age group received blood transfusions for pregnancy and childbirth-related diagnoses.", - "author": [ - { - "family": "Mafirakureva", - "given": "Nyashadzaishe" - }, - { - "family": "Khoza", - "given": "Star" - }, - { - "family": "Hassall", - "given": "Oliver" - }, - { - "family": "Faragher", - "given": "Brian E." - }, - { - "family": "Kajja", - "given": "Isaac" - }, - { - "family": "Mvere", - "given": "David A." - }, - { - "family": "Emmanuel", - "given": "Jean C." - }, - { - "family": "Postma", - "given": "Maarten J." - }, - { - "family": "Van Hulst", - "given": "Marinus" - } - ], - "container-title": "Blood Transfusion", - "id": "Mafirakureva2015", - "issue": "4", - "issued": { - "date-parts": [ - [ - 2015, - 10 - ] - ] - }, - "keyword": "Blood usage,Diagnosis,International Classification of Diseases (ICD),Transfusion", - "page": "600-609", - "publisher": "SIMTI Servizi Sri", - "title": "Profiles of blood and blood component transfusion recipients in Zimbabwe", - "type": "article-journal", - "volume": "13" - }, - { - "DOI": "10.1111/trf.14797", - "ISSN": "00411132", - "PMID": "30132911", - "URL": "http://www.ncbi.nlm.nih.gov/pubmed/30132911%0Ahttp://doi.wiley.com/10.1111/trf.14797", - "abstract": "BACKGROUND Pathogen reduction technology (PRT) enhances blood component safety, but its implementation is hampered by loss of blood quality and cost. STUDY DESIGN AND METHODS A retrospective study was conducted to investigate the efficacy, safety, and cost of 9673 riboflavin and ultraviolet light-treated platelet (PLT) transfusions given to 1211 patients during a 3-year period. The results were compared with the efficacy, safety, and cost of 6424 nontreated PLT transfusions administered to 1500 patients during a 3-year comparison period before PRT implementation. RESULTS Despite a similar PLT transfusion dose per unit for both periods (pre-PRT period 3.26 vs. PRT period 3.19), the mean number of PLT concentrates per patient (4.2 vs. 7.8; p = 0.006) and the total dose of PLTs received by patients were higher in the PRT period (13.6 vs. 24.8; p = 0.0002). Hematology and medical and surgical patient categories had the highest PLT use per patient. However, febrile (2.5% vs. 1.2%; p = 0.02) and allergic (0.16% vs. 0.08%; p = 0.01) reactions were lower during the PRT period. The blood center saved €284,805.58 due to a reduction of outdated PLTs from 16.8% to 0.72% after PRT implementation. CONCLUSIONS Although PRT can improve PLT safety, it can increase the amount of PLTs required for transfusion in some patient categories. The cost of PRT can be partially offset by the savings associated with a lower rate of PLT outdates. This cost reduction can be a key factor in settings where inventory management is challenged by a high percentage of wasted PLTs due to outdating.", - "author": [ - { - "family": "Jimenez-Marco", - "given": "Teresa" - }, - { - "family": "Garcia-Recio", - "given": "Marta" - }, - { - "family": "Girona-Llobera", - "given": "Enrique" - } - ], - "container-title": "Transfusion", - "id": "Jimenez-Marco2018", - "issue": "July", - "issued": { - "date-parts": [ - [ - 2018 - ] - ] - }, - "page": "1-9", - "title": "Our experience in riboflavin and ultraviolet light pathogen reduction technology for platelets: from platelet production to patient care", - "type": "article-journal" - }, - { - "DOI": "10.7326/M18-2238", - "ISSN": "15393704", - "PMID": "30615781", - "URL": "http://annals.org/aim/fullarticle/2720163/screening-blood-supply-zika-virus-50-u-s-states-puerto", - "abstract": "Background: In 2016, universal individual donation nucleic acid testing (ID-NAT) of donated blood for Zika virus began in U.S. states and territories. Objective: To assess the cost-effectiveness of universal ID-NAT in the first year of screening compared with alternatives for the 50 states and separately for Puerto Rico. Design: Microsimulation that captured Zika-related harms to transfusion recipients, sexual partners, and their infants. Data Sources: National testing results compiled by AABB and costs, utilities, and outcome probabilities estimated from the literature. Target Population: Transfusion recipients. Time Horizon: Lifetime. Perspective: Societal. Intervention: Universal ID-NAT, universal mini-pool NAT (MP-NAT), and ID-NAT exclusively for components transfused to women of childbearing age. Seasonally targeted strategies in Puerto Rico and geographically targeted strategies in the 50 states were also considered. Outcome Measures: Costs, quality-adjusted life-years (QALYs), and outcomes. Results of Base-Case Analysis: In Puerto Rico, MP-NAT exclusively during high mosquito season was cost-effective at $81 123 per QALY (95% CI, $49 138 to $978 242 per QALY). No screening policy was cost-effective in the 50 states. Universal ID-NAT cost $341 million per QALY (CI, $125 million to $2.90 billion per QALY) compared with no screening in the 50 states. Results of Sensitivity Analysis: In Puerto Rico, MP-NAT only during the season of high mosquito activity was most cost-effective in 64% of probabilistic sensitivity analysis iterations. In the 50 states, no intervention was cost-effective in 99.99% of iterations. Cost-effectiveness was highly dependent on the rate of assumed infectious donations. Limitation: Data were limited on the component-specific trans-missibility of Zika and long-term sequelae of infection. Conclusion: Screening was cost-effective only in the high mosquito season in Puerto Rico, and no evaluated screening policy was cost-effective in the 50 states. During periods with lower rates of Zika-infectious donations, the cost-effectiveness of screening will be even less favorable. Primary Funding Source: None.", - "author": [ - { - "family": "Russell", - "given": "W. Alton" - }, - { - "family": "Stramer", - "given": "Susan L." - }, - { - "family": "Busch", - "given": "Michael P." - }, - { - "family": "Custer", - "given": "Brian" - } - ], - "container-title": "Annals of Internal Medicine", - "id": "Russell2019", - "issue": "3", - "issued": { - "date-parts": [ - [ - 2019 - ] - ] - }, - "keyword": "arterial,blood supply,cost effectiveness,puerto rico,transfusion,vascular flow,vascular network,zika virus", - "page": "164-174", - "title": "Screening the blood supply for Zika virus in the 50 U.S. States and Puerto Rico: A cost-effectiveness analysis", - "type": "article-journal", - "volume": "170" - }, - { - "DOI": "10.1111/tme.12392", - "ISBN": "0042-9007", - "ISSN": "13653148", - "abstract": "Background and Objectives: Monitoring the whole chain of events from the blood donors to recipients, documenting any undesirable or untoward effects and introducing measures to prevent their recurrence if possible are components of haemovigilance systems. Only few sub-Saharan African countries have haemovigilance systems, and there are very little data on adverse events of transfusion. Adverse events monitoring is an integral part of a haemovigilance system. Our study aimed to establish the incidence and types of adverse events of transfusions in Ghana and to identify interventions to improve effectiveness. Materials and Methods: This prospective observational 1-year study enrolled 372 recipients of 432 transfusions in a Ghanaian teaching hospital. Vital signs were monitored at 15, 30 and 60 min intervals during the transfusion, then 8 h until 24 h post-transfusion. Three investigators independently classified any new signs and symptoms according to Serious Hazards of Transfusion definitions. Results: The adverse events incidence was 213% (92/432), predominantly mild acute transfusion reactions (84%). A total of 20 transfusions (46%) were stopped before completion, 60% of them for mild febrile reactions, which could have been managed with transfusion in situ. Conclusion: This prospective study indicates a high incidence of adverse events of transfusion in Kumasi, Ghana. The significant numbers of discontinued transfusions suggest that guidelines on how to manage transfusion reactions would help preserve scarce blood stocks. Gradual implementation of a haemovigilance system, starting with monitoring adverse transfusion events, is a pragmatic approach in resource-limited settings.", - "author": [ - { - "family": "Owusu-Ofori", - "given": "A. K." - }, - { - "family": "Owusu-Ofori", - "given": "S. P." - }, - { - "family": "Bates", - "given": "I." - } - ], - "container-title": "Transfusion Medicine", - "id": "Owusu-Ofori2017", - "issue": "3", - "issued": { - "date-parts": [ - [ - 2017 - ] - ] - }, - "keyword": "adverse events,allergy,anaemia,blood transfusion,haemoglobin,haemovigilance,transfusion reactions", - "page": "175-180", - "title": "Detection of adverse events of transfusion in a teaching hospital in Ghana", - "type": "article-journal", - "volume": "27" - }, - { - "URL": "https://data.worldbank.org/", - "accessed": { - "date-parts": [ - [ - 2021, - 3, - 6 - ] - ] - }, - "author": [ - { - "literal": "The World Bank" - } - ], - "id": "WorldBank2021", - "issued": { - "date-parts": [ - [ - 2021 - ] - ] - }, - "title": "World Bank Open Data", - "type": "" - }, - { - "DOI": "10.1186/s12887-016-0578-x", - "ISSN": "14712431", - "PMID": "26979974", - "URL": "http://dx.doi.org/10.1186/s12887-016-0578-x", - "abstract": "Background: The pediatric antiretroviral (ARV) market is poorly described in the literature, resulting in gaps in understanding treatment access. We analyzed the pediatric ARV market from 2004 to 2012 and assessed pricing trends and associated factors. Methods: Data on donor funded procurements of pediatric ARV formulations reported to the Global Price Reporting Mechanism database from 2004 to 2012 were analyzed. Outcomes of interest were the volume and mean price per patient-year ARV formulation based on WHO ARV dosing recommendations for a 10kg child. Factors associated with the price of formulations were assessed using linear regression; potential predictors included: country income classification, geographical region, market segment (originator versus generic ARVs), and number of manufacturers per formulation. All analyses were adjusted for type of formulations (single, dual or triple fixed-dose combinations (FDCs)) Results: Data from 111 countries from 2004 to 2012 were included, with procurement of 33 formulations at a total value of USD 204 million. Use of dual and triple FDC formulations increased substantially over time, but with limited changes in price. Upon multivariate analysis, prices of originator formulations were found to be on average 72% higher than generics (p<0.001). A 10% increase in procurement volume was associated with a 1% decrease (p<0.001) in both originator and generic prices. The entry of one additional manufacturer producing a formulation was associated with a decrease in prices of 2% (p<0.001) and 8% (p<0.001) for originator and generic formulations, respectively. The mean generic ARV price did not differ by country income level. Prices of originator ARVs were 48% (p<0.001) and 14% (p<0.001) higher in upper-middle income and lower-middle income countries compared to low income countries respectively, with the exception of South Africa, which had lower prices despite being an upper-middle income country. Conclusions: The donor funded pediatric ARV market as represented by the GPRM database is small, and lacks price competition. It is dominated by generic drugs due to the lower prices offered and the practicality of FDC formulations. This market requires continued donor support and the current initiatives to protect it are important to ensure market viability, especially if new formulations are to be introduced in the future.", - "author": [ - { - "family": "Lee", - "given": "Janice Soo Fern" - }, - { - "family": "Sagaon Teyssier", - "given": "Luis" - }, - { - "family": "Dongmo Nguimfack", - "given": "Boniface" - }, - { - "family": "Collins", - "given": "Intira Jeannie" - }, - { - "family": "Lallemant", - "given": "Marc" - }, - { - "family": "Perriens", - "given": "Joseph" - }, - { - "family": "Moatti", - "given": "Jean Paul" - } - ], - "container-title": "BMC Pediatrics", - "id": "Lee2016a", - "issue": "1", - "issued": { - "date-parts": [ - [ - 2016 - ] - ] - }, - "keyword": "Global price reporting mechanism,Pediatric antiretroviral prices,Pediatric antiretroviral procurement,Pediatrics antiretroviral market,Price trends", - "page": "1-8", - "publisher": "BMC Pediatrics", - "title": "An analysis of volumes, prices and pricing trends of the pediatric antiretroviral market in developing countries from 2004 to 2012", - "type": "article-journal", - "volume": "16" - } - ], - "project_biblios": [] -} \ No newline at end of file diff --git a/.Rproj.user/0E787812/pcs/files-pane.pper b/.Rproj.user/0E787812/pcs/files-pane.pper deleted file mode 100644 index 4ecbf01..0000000 --- a/.Rproj.user/0E787812/pcs/files-pane.pper +++ /dev/null @@ -1,9 +0,0 @@ -{ - "sortOrder": [ - { - "columnIndex": 2, - "ascending": true - } - ], - "path": "G:/My Drive/Projects/ghana_hea/manuscript" -} \ No newline at end of file diff --git a/.Rproj.user/0E787812/pcs/source-pane.pper b/.Rproj.user/0E787812/pcs/source-pane.pper deleted file mode 100644 index 902cc6f..0000000 --- a/.Rproj.user/0E787812/pcs/source-pane.pper +++ /dev/null @@ -1,3 +0,0 @@ -{ - "activeTab": 0 -} \ No newline at end of file diff --git a/.Rproj.user/0E787812/pcs/windowlayoutstate.pper b/.Rproj.user/0E787812/pcs/windowlayoutstate.pper deleted file mode 100644 index bc6da34..0000000 --- a/.Rproj.user/0E787812/pcs/windowlayoutstate.pper +++ /dev/null @@ -1,14 +0,0 @@ -{ - "left": { - "splitterpos": 369, - "topwindowstate": "NORMAL", - "panelheight": 968, - "windowheight": 1006 - }, - "right": { - "splitterpos": 694, - "topwindowstate": "NORMAL", - "panelheight": 968, - "windowheight": 1006 - } -} \ No newline at end of file diff --git a/.Rproj.user/0E787812/pcs/workbench-pane.pper b/.Rproj.user/0E787812/pcs/workbench-pane.pper deleted file mode 100644 index 75e70e9..0000000 --- a/.Rproj.user/0E787812/pcs/workbench-pane.pper +++ /dev/null @@ -1,5 +0,0 @@ -{ - "TabSet1": 0, - "TabSet2": 0, - "TabZoom": {} -} \ No newline at end of file diff --git a/.Rproj.user/0E787812/persistent-state b/.Rproj.user/0E787812/persistent-state deleted file mode 100644 index 394ce03..0000000 --- a/.Rproj.user/0E787812/persistent-state +++ /dev/null @@ -1,8 +0,0 @@ -build-last-errors="[]" -build-last-errors-base-dir="" -build-last-outputs="[]" -compile_pdf_state="{\"tab_visible\":false,\"running\":false,\"target_file\":\"\",\"output\":\"\",\"errors\":[]}" -files.monitored-path="" -find-in-files-state="{\"handle\":\"\",\"input\":\"\",\"path\":\"\",\"regex\":false,\"ignoreCase\":false,\"results\":{\"file\":[],\"line\":[],\"lineValue\":[],\"matchOn\":[],\"matchOff\":[],\"replaceMatchOn\":[],\"replaceMatchOff\":[]},\"running\":false,\"replace\":false,\"preview\":false,\"gitFlag\":false,\"replacePattern\":\"\"}" -imageDirtyState="1" -saveActionState="-1" diff --git a/.Rproj.user/0E787812/rmd-outputs b/.Rproj.user/0E787812/rmd-outputs deleted file mode 100644 index 23687d3..0000000 --- a/.Rproj.user/0E787812/rmd-outputs +++ /dev/null @@ -1,8 +0,0 @@ -G:/My Drive/Projects/ghana_hea/manuscript/ghana_hea.docx - - -G:/My Drive/Projects/ghana_hea/manuscript/ghana_hea.docx - - - - diff --git a/.Rproj.user/0E787812/saved_source_markers b/.Rproj.user/0E787812/saved_source_markers deleted file mode 100644 index 2b1bef1..0000000 --- a/.Rproj.user/0E787812/saved_source_markers +++ /dev/null @@ -1 +0,0 @@ -{"active_set":"","sets":[]} \ No newline at end of file diff --git a/.Rproj.user/0E787812/sources/per/t/ECD69B9B b/.Rproj.user/0E787812/sources/per/t/ECD69B9B deleted file mode 100644 index b154778..0000000 --- a/.Rproj.user/0E787812/sources/per/t/ECD69B9B +++ /dev/null @@ -1,33 +0,0 @@ -{ - "id": "ECD69B9B", - "path": "G:/My Drive/Projects/ghana_hea/manuscript/ghana_hea.Rmd", - "project_path": "manuscript/ghana_hea.Rmd", - "type": "r_markdown", - "hash": "2592387855", - "contents": "", - "dirty": false, - "created": 1616966374297.0, - "source_on_save": false, - "relative_order": 1, - "properties": { - "source_window_id": "", - "Source": "Source", - "rmdVisualMode": "false", - "rmdVisualModeLocation": "31938:11380", - "rmdVisualWrapConfigured": "true", - "docOutlineVisible": "1", - "cursorPosition": "10,32", - "scrollLine": "0", - "last_setup_crc32": "B72F78111b2dfbf9", - "docOutlineSize": "206", - "ignored_words": "\n" - }, - "folds": "", - "lastKnownWriteTime": 1617067203, - "encoding": "UTF-8", - "collab_server": "", - "source_window": "", - "last_content_update": 1617067204085, - "read_only": false, - "read_only_alternatives": [] -} \ No newline at end of file diff --git a/.Rproj.user/0E787812/sources/per/t/ECD69B9B-contents b/.Rproj.user/0E787812/sources/per/t/ECD69B9B-contents deleted file mode 100644 index b6d56ae..0000000 --- a/.Rproj.user/0E787812/sources/per/t/ECD69B9B-contents +++ /dev/null @@ -1,931 +0,0 @@ ---- -title: Cost-effectiveness and budget impact of whole blood pathogen reduction in Ghana -author: - - -output: - officedown::rdocx_document: - mapstyles: - Normal: ['First Paragraph'] - reference_docx: word-style-reference-manuscript.docx -bibliography: pathogen_inactivation.bib -csl: american-medical-association-brackets.csl - -header-includes: -- \usepackage{placeins} -- \usepackage{amsfonts} -- \usepackage{amsmath} ---- - -::: {custom-style="Compact"} -W. Alton Russell^1,2,3^, Shirley Owusu-Ofori^4^, Alex Owusu-Ofori^5,6^, Eileen Micah^7^, Betty Norman^7^, Brian Custer^2,8^ - -
- -^1^Department of Management Science and Engineering, Stanford University, Stanford, USA - -^2^Vitalant Research Institute, San Francisco, USA - -^3^MGH Institute for Technology Assessment, Harvard Medical School, Boston, USA - -^4^Transfusion Medicine Unit, Komfo-Anokye Teaching Hospital, Kumasi, Ghana - -^5^Laboratory Services Directorate, Komfo-Anokye Teaching Hospital, Kumasi, Ghana - -^6^Department of Clinical Microbiology, Nkrumah University of Science and Technology, Kumasi, Ghana - -^7^Department of Medicine, Komfo-Anokye Teaching Hospital, Kumasi, Ghana - -^8^Department of Laboratory Medicine, University of California, San Francisco, CA - -
- -**Corresponding author:** W. Alton Russell, Harvard Medical School, 101 Merrimac St, Room 1032, Boston, MA, 02114, United States. email: [warussell\@mgh.harvard.edu](mailto:warussell@mgh.harvard.edu){.email}. - -
- -**Alt. author contact:** Brian Custer, [bcuster\@vitalant.org](mailto:bcuster@vitalant.org){.email}. - -
- -**Key words:** Pathogen reduction, blood safety, cost-utility, sub-Saharan Africa - -
- -**Running title:** Pathogen reduction in Ghana - -
- -**Summary of main point:** Whole blood pathogen reduction in Ghana would avert an estimated 11,000 -- 27,000 adverse events, eliminate an associated \$4.4M -- \$13.4M in annual direct medical costs, and may be cost-saving. - -
- -**Word count:** 2825 words - -
- -**Abbreviations:** **AVT** antiviral therapy, **FNHTR** febrile non-hemolytic transfusion reaction, **HBV** hepatitis B, **HCV** hepatitis C, **HIV** human immunodeficiency virus, **TT-** transfusion-transmitted, **TTI** transfusion-transmitted infection, **WBPR** while blood pathogen reduction. -::: - -##### - -```{r setup, include=FALSE} -library(ggplot2) -#library(gridExtra) -library(flextable) -library(ftExtra) -library(officedown) -library(officer) -#library(knitr) -theme_set(theme_bw()) -library(readxl) -library(data.table) -library(scales) -``` - -```{r read_format_data, include=FALSE} - -#read in parameter tables -#all_cause_mort <- data.table(read_excel("../data/Ghana_hea_parameters.xlsx", sheet = "All_cause_mort")) -dt_transitions <- data.table(read_excel("../data/Ghana_hea_parameters.xlsx", sheet = "Markov_probs")) -dt_microcost_params <- data.table(read_excel("../data/Ghana_hea_parameters.xlsx", sheet = "Microcost_params")) -dt_riskmod_params <- data.table(read_excel("../data/Ghana_hea_parameters.xlsx", sheet = "riskmod_params")) -dt_daly_params <- data.table(read_excel("../data/Ghana_hea_parameters.xlsx", sheet = "daly_params")) - -#read in results -dt_bc_outcomes <- fread("../results/BC_outcomes.csv") -dt_bc_costs <- fread("../results/BC_costs.csv") -dt_bc_dalys <- fread("../results/BC_dalys.csv") -dt_PSA_microcost <- fread("../results/PSA_microcost.csv") -dt_PSA_params <- fread("../results/PSA_params.csv") -dt_psa_costs <- fread("../results/PSA_costs.csv") -dt_psa_dalys <- fread("../results/PSA_dalys.csv") -dt_psa_outcomes <- fread("../results/PSA_outcomes.csv") -dt_univ <- fread("../results/univ_sens_analysis.csv") - - -#Results table - -ae_abbrevs <- c("sep", "mal", "ftr", "syp", "hbv", "hcv", "hiv") - - -dt_bc_outcomes_count <- dt_bc_outcomes[ , lapply(.SD, comma)] -dt_bc_outcomes_dollar <- dt_bc_outcomes[ , lapply(.SD, dollar)] -dt_bc_outcomes_number <- dt_bc_outcomes[ , lapply(.SD, comma, accuracy = .01)] - - -dt_range_count <- dt_psa_outcomes[ , lapply(.SD, - function(x) - paste0("(", - comma(min(quantile(x, probs = c(0.025, 0.975)))), - " – ", - comma(max(quantile(x, probs = c(0.025, 0.975)))), - ")") - )] - -dt_range_number <- dt_psa_outcomes[ , lapply(.SD, - function(x) - paste0("(", - comma(min(quantile(x, probs = c(0.025, 0.975))), - accuracy = .01), - " – ", - comma(max(quantile(x, probs = c(0.025, 0.975))), - accuracy = .01), - ")") - )] - -dt_range_dollar <- dt_psa_outcomes[ , lapply(.SD, - function(x) - paste0("(", - dollar(min(quantile(x, probs = c(0.025, 0.975)))), - " – ", - dollar(max(quantile(x, probs = c(0.025, 0.975)))), - ")") - )] -dt_range_np_costs <- dt_psa_costs[, lapply(.SD, - function(x) - paste0("(", - dollar(min(quantile(x, probs = c(0.025, 0.975)))), - " – ", - dollar(max(quantile(x, probs = c(0.025, 0.975)))), - ")")), - .SDcols = ae_abbrevs] - -dt_range_np_dalys <- dt_psa_dalys[, lapply(.SD, - function(x) - paste0("(", - signif(min(quantile(x, probs = c(0.025, 0.975))),2), - " – ", - signif(max(quantile(x, probs = c(0.025, 0.975))),2), - ")"))] - - -outcomes_count <- c("cases_no_prt", "cases_prt", "cases_reduced") -outcomes_dollar <- c("burden_no_prt", "burden_prt", "burden_reduced") -outcomes_daly <- c("DALY_no_prt", "DALY_prt", "DALY_reduced") - - -results <- matrix("", ncol = 8, nrow = 12, - dimnames = list(outcome = c(outcomes_count, - "cost_per_ae", - "YLD_per_ae", - "YLL_per_ae", - outcomes_dollar, - #"Total PI cost", - #"Net savings of PI", - outcomes_daly), - ae = c("all_ae", ae_abbrevs))) - -for (outcome in outcomes_count){ - for (ae in c("all_ae", ae_abbrevs)){ - results[outcome, ae] <- paste0(dt_bc_outcomes_count[,get(paste0(ae,".",outcome))], "\n", dt_range_count[,get(paste0(ae,".",outcome))]) - } -} -for (outcome in outcomes_dollar){ - for (ae in c("all_ae", ae_abbrevs)){ - results[outcome, ae] <- paste0(dt_bc_outcomes_dollar[,get(paste0(ae,".",outcome))], "\n", dt_range_dollar[,get(paste0(ae,".",outcome))]) - } -} -for (ae in ae_abbrevs){ - results["cost_per_ae", ae] <- paste0(dt_bc_costs[,dollar(get(ae))], "\n", dt_range_np_costs[,get(ae)]) - results["YLD_per_ae", ae] <- paste0(dt_bc_dalys[,signif(get(paste0("YLD.",ae)),2)], "\n", dt_range_np_dalys[,get(paste0("YLD.",ae))]) - results["YLL_per_ae", ae] <- paste0(dt_bc_dalys[,signif(get(paste0("YLL.",ae)),2)], "\n", dt_range_np_dalys[,get(paste0("YLL.",ae))]) -} - -# results["Total PI cost", "all_ae"]<- paste0(dt_bc_outcomes_dollar[,prt_cost], "\n", dt_range_dollar[,prt_cost]) -# results["Net savings of PI", "all_ae"]<- paste0(dt_bc_outcomes_dollar[,net_savings], "\n", dt_range_dollar[,net_savings]) -for (outcome in outcomes_daly){ - for (ae in c("all_ae", ae_abbrevs)){ - results[outcome, ae] <- paste0(dt_bc_outcomes_number[,get(paste0(ae,".",outcome))], "\n", dt_range_number[,get(paste0(ae,".",outcome))]) - } -} - - - -dt_results<-data.table(results, keep.rownames = TRUE) -colnames(dt_results) <- c("Outcome", "All adverse events", "Sepsis", - "Malaria", "FNHTR", "Syphilis", "HBV", - "HCV", "HIV") -outcome.names <- dt_results$Outcome -names(outcome.names) <- c("Cases without WBPR", - "Cases with WBPR", - "Cases reduced by WBPR", - "Net present cost per case", - "YLD per case", - "YLL per case", - "Total net present cost without WBPR", - "Total net present cost with WBPR", - "Total net present cost reduced by WBPR", - "DALYs without WBPR", - "DALYs with WBPR", - "DALYs averted by WBPR") -dt_results[ , Outcome := names(outcome.names)[match(Outcome, outcome.names)] ] - -## Sensitivity analysis -#Secondary infections -dt_bc_outcomes[ , sec_infections_buden_red := ( - sep.burden_reduced+mal.burden_reduced+ftr.burden_reduced+syp.burden_reduced+ - 2*hiv.burden_reduced+2*hbv.burden_reduced+2*hcv.burden_reduced -)] -dt_psa_outcomes[ , sec_infections_buden_red := sep.burden_reduced+ - mal.burden_reduced+ftr.burden_reduced+ - syp.burden_reduced+2*hiv.burden_reduced+ - 2*hbv.burden_reduced+2*hcv.burden_reduced] -range_sec_infections_buden_red <- paste(dt_psa_outcomes[ , dollar(quantile(sec_infections_buden_red, probs=c(.025, .975)))], collapse = " – ") - - -#No sepsis -dt_bc_outcomes[ , no_sepsis_buden_red := ( - mal.burden_reduced+ftr.burden_reduced+syp.burden_reduced+ - hiv.burden_reduced+hbv.burden_reduced+hcv.burden_reduced -)] -dt_psa_outcomes[ , no_sepsis_buden_red := ( - mal.burden_reduced+ftr.burden_reduced+syp.burden_reduced+ - hiv.burden_reduced+hbv.burden_reduced+hcv.burden_reduced -)] -dt_bc_outcomes[ , no_sepsis_net_cost := ( - prt_cost - no_sepsis_buden_red -)] -dt_psa_outcomes[ , no_sepsis_net_cost := ( - prt_cost - no_sepsis_buden_red -)] -dt_bc_outcomes[ , no_sepsis_DALY_red := ( - mal.DALY_reduced+ftr.DALY_reduced+syp.DALY_reduced+ - hiv.DALY_reduced+hbv.DALY_reduced+hcv.DALY_reduced -)] -dt_psa_outcomes[ , no_sepsis_DALY_red := ( - mal.DALY_reduced+ftr.DALY_reduced+syp.DALY_reduced+ - hiv.DALY_reduced+hbv.DALY_reduced+hcv.DALY_reduced -)] -dt_bc_outcomes[ , no_sepsis_icer := (no_sepsis_net_cost)/no_sepsis_DALY_red] -dt_psa_outcomes[ , no_sepsis_icer :=(no_sepsis_net_cost)/no_sepsis_DALY_red] - - -range_no_sepsis_burden_reduced <- paste(dt_psa_outcomes[ , dollar(quantile(no_sepsis_buden_red, probs=c(.025, .975)))], collapse = " – ") -range_no_sepsis_net_cost <- paste(dt_psa_outcomes[ , dollar(quantile(no_sepsis_net_cost, probs=c(.025, .975)))], collapse = " – ") -range_no_sepsis_DALY_reduced <- paste(dt_psa_outcomes[ , comma(quantile(no_sepsis_DALY_red, probs=c(.025, .975)))], collapse = " – ") -range_no_sepsis_icer <- paste(dt_psa_outcomes[ , dollar(quantile(no_sepsis_icer, probs=c(.025, .975)))], collapse = " – ") - - - -``` - -```{r param_tables, include=FALSE} - -#RISK MODEL PARAMS -dt.ts1 <- rbind(dt_riskmod_params) -dt.ts1[ , basecase_formatted := ifelse(format == "dollar", dollar(`Base case`, largest_with_cents = 1e2), - ifelse(format == "percent", paste0(signif(`Base case`,3)*100,"%"), - signif(`Base case`,3)))] -dt.ts1[ , Low := ifelse(format == "dollar", dollar(Low, largest_with_cents = 1e2), - ifelse(format == "percent", paste0(signif(Low,3)*100,"%"), - signif(Low,3)))] -dt.ts1[ , High := ifelse(format == "dollar", dollar(High, largest_with_cents = 1e2), - ifelse(format == "percent", paste0(signif(High,3)*100,"%"), - signif(High,3)))] -dt.ts1[ , Value := ifelse(is.na(Low), basecase_formatted, paste0(basecase_formatted, " (", Low, "–", High, ")"))] -dt.ts1[ , Distn := ifelse(is.na(Param1), Distn, paste0(Distn, "(",Param1,", ",Param2,")"))] -dt.ts1[ , Value_dist := ifelse(is.na(Distn), Value, paste0(Value, "; ", Distn))] -dt.ts1 <- dt.ts1[ , c("Category", "Description", "Value_dist", "Source")] - - -dt.ts1 <- as_grouped_data(dt.ts1, groups = c("Category")) -t_riskmod <- as_flextable(dt.ts1) -t_riskmod <- set_header_labels(t_riskmod, Description = "Risk model parameters") -t_riskmod <- compose(t_riskmod, i = ~ !is.na(Category), j = "Description", - value = as_paragraph(as_chunk(Category))) -t_riskmod <- align(t_riskmod, align = "left", part = "all") -t_riskmod <- set_header_labels(t_riskmod, values = list(Value_dist = "Value (range); distribution")) -t_riskmod <- theme_box(t_riskmod) -t_riskmod <- width(t_riskmod, 1, 2.4) -t_riskmod <- width(t_riskmod, 2, 2.4) -t_riskmod <- width(t_riskmod, 3, 1.2) -t_riskmod <- bg(t_riskmod, i = c(1, 6, 14, 22), bg = "#DDDDDD", part = "body") -t_riskmod <- bold(t_riskmod, i=c(1, 6, 14, 22), part="body") -t_riskmod <- bg(t_riskmod, bg = "#EAEAEA", part = "header") -t_riskmod <- footnote(t_riskmod, i=1, j=2, part="header", ref_symbols = "1", - value = as_paragraph("‘Min’ and ‘Max’ values were used for deterministic sensitivity analysis; ‘Distribution’ was used for probabilistic sensitivity analysis. Beta distribution was used when proportion count data were available; PERT distribution using the point estimate as mean was used otherwise.")) -t_riskmod <- footnote(t_riskmod, i=4, j=3, part="body",ref_symbols = "2", - value = as_paragraph("Based on unpublished data for KATH collected by the authors and data for the Southern Area Blood Center provided by Dr. Lucy Asamoah-Akuoko of the National Blood Service, Ghana, personal communication.")) - -t_riskmod <- footnote(t_riskmod, i=5, j=3, part="body",ref_symbols = "3", - value = as_paragraph("Provided by Nigel Talboys and Eric Mwenda, Terumo BCT, personal communication.")) -t_riskmod <- footnote(t_riskmod, i=8, j=3, part="body",ref_symbols = "4", - value = as_paragraph("We pooled estimates of the rate of bacterial contamination in whole blood units in Ghana from five analyses: 9/100 units were contaminated in Allotey 2019; 24/192 in Adjeu 2009; 16/97 in Boye 2016; 14/80 in Opuku-Okrah 2009; and 23/100 in Owusu-Ofori 2012.")) -t_riskmod <- footnote(t_riskmod, i=11, j=3, part="body",ref_symbols = "5", - value = as_paragraph("Estimated based on rate of repeat reactive Treponema pallidum hemagglutination assay (TPHA) positivity in Durban and Johannesburg provided by Marion Vermeulen of the South African National Blood Service, personal communication.")) -t_riskmod <- footnote(t_riskmod, i=16, j=3, part="body",ref_symbols = "6", - value = as_paragraph("Study classified 6/23 bacterially contaminated donations as a probable TT-sepsis case; 5/23 as a possible case, 12/23 as unlikely. We assumed probable cases had a 90% probability of causing clinical disease; possible cases had a 60% probability; and unlikely cases had a 10% probability.")) -t_riskmod <- footnote(t_riskmod, i=18, j=3, part="body",ref_symbols = "7", - value = as_paragraph("Assumed HBV vaccinated individuals have no risk of clinical outcomes. Estimated that 95% of recipients under 25 would be vaccinated based on WHO/UNICEF 2020 report and that 56% of population is under 20 based on UN 2019.")) -t_riskmod <- footnote(t_riskmod, i=19, j=3, part="body",ref_symbols = "8", - value = as_paragraph("Assumed transmission occurred in donations stored less than 4 days only based on van der Sluis 1985 and Adegoke 2011. Estimated that 57% of donations are stored less than 4 days from Owusu-Ofori 2011.")) -t_riskmod <- footnote(t_riskmod, i=20, j=3, part="body",ref_symbols = "9", - value = as_paragraph("Calculated from Allain 2016; see supplemental methods.")) -t_riskmod <- footnote(t_riskmod, i=24, j=3, part="body",ref_symbols = "10", - value = as_paragraph("Agapova 2015 used 50, adjusted downwards based on authors' estimation.")) -t_riskmod <- footnote(t_riskmod, i=29, j=3, part="body",ref_symbols = "11", - value = as_paragraph("Jimenez-Marco 2018 estimated a 2.08-fold reduction in pathogen reduced platelets. Data from Ghana reports a decrease across randomized groups from 11/255 to 17/303 implying a fold risk reduction of 1.3. Based on both studies, chose 1.5 as base case estimate.")) -t_riskmod <- font(t_riskmod, fontname = "Times", part = "all") -t_riskmod <- fontsize(t_riskmod, size = 10, part = "all") - - - - - -#MICROCOST PARAMS -dt.t2 <- rbind(dt_microcost_params) -dt.t2[ , basecase_formatted := ifelse(Category == "Cost", dollar(`Base case`, largest_with_cents = 1e2), - ifelse(Category == "Proportion receiving", paste0(signif(`Base case`,3)*100,"%"), - signif(`Base case`,3)))] -dt.t2[ , Low := ifelse(Category == "Cost", dollar(Low, largest_with_cents = 1e2), - ifelse(Category == "Proportion receiving", paste0(signif(Low,3)*100,"%"), - signif(Low,3)))] -dt.t2[ , High := ifelse(Category == "Cost", dollar(High, largest_with_cents = 1e2), - ifelse(Category == "Proportion receiving", paste0(signif(High,3)*100,"%"), - signif(High,3)))] - - -dt.t2[ , Value := ifelse(is.na(Low), basecase_formatted, paste0(basecase_formatted, " (", Low, "–", High, ")"))] -dt.t2[ , Distn := "PERT"] -dt.t2[ , Value_dist := ifelse(is.na(Distn), Value, paste0(Value, "; ", Distn))] -dt.t2 <- dt.t2[ , c("Category", "Description", "Value_dist", "Source")] - - -dt.t2 <- as_grouped_data(dt.t2, groups = c("Category")) -t_microcost <- as_flextable(dt.t2) -t_microcost <- set_header_labels(t_microcost, Description = "Micro-costing parameters") -t_microcost <- compose(t_microcost, i = ~ !is.na(Category), j = "Description", - value = as_paragraph(as_chunk(Category))) -t_microcost <- align(t_microcost, align = "left", part = "all") -t_microcost <- set_header_labels(t_microcost, values = list(Value_dist = "Value (range); distribution")) -t_microcost <- font(t_microcost, fontname = "Times", part = "all") -t_microcost <- theme_box(t_microcost) -t_microcost <- width(t_microcost, 1, 3) -t_microcost <- width(t_microcost, 2, 2.5) -t_microcost <- width(t_microcost, 3, 1) -t_microcost <- footnote(t_microcost, i=38:39, j=3, - value=as_paragraph("We assumed patients who initiated AVT after AIDS progression were diagnosed based on symptoms and therefore incurred additional costs for due to AIDS-associated illnesses. Costs in the first year were comprised of $57.80 for baseline laboratory investigations, $40.46 in follow-up visits, $255 - $510 for investigation and treatment for AIDS-associated illnesses, and $83.04 -- $124.56 for AVT. Costs in the second year were the same, except we assumed only one third as much spending on investigation and treatment for AIDS-associated illnesses.")) -t_microcost <- bg(t_microcost, i = c(1, 9, 50), bg = "#DDDDDD", part = "body") -t_microcost <- bg(t_microcost, bg = "#EAEAEA", part = "header") -t_microcost <- bold(t_microcost, i = c(1, 9, 50)) -t_microcost <- fontsize(t_microcost, size = 10, part = "all") - - - - -#MARKOV TRANSITIONS -dt.t3 <- rbind(dt_transitions) -dt.t3[ , basecase_formatted := ifelse(`Base case`=="#","#", paste0(signif(as.numeric(`Base case`),3)*100,"%"))] -dt.t3[ , Low := ifelse(is.na(Low), NA, paste0(signif(as.numeric(Low),3)*100,"%"))] -dt.t3[ , High := ifelse(is.na(High), NA, paste0(signif(as.numeric(High),3)*100,"%"))] -dt.t3[ , Value := ifelse(is.na(Low), basecase_formatted, paste0(basecase_formatted, " (", Low, "–", High, ")"))] -dt.t3[ , Distn := ifelse(is.na(Param1), Distn, paste0(Distn, "(",Param1,", ",Param2,")"))] -dt.t3[ , Value_dist := ifelse(is.na(Distn), Value, paste0(Value, "; ", Distn))] -#dt.t3[, Source := "#"] -dt.t3 <- dt.t3[ , c("Disease_Category", "From_disp", "To_disp", "Value_dist", "Source")] - - -dt.t3 <- as_grouped_data(dt.t3, groups = c("Disease_Category")) -t_transitions <- as_flextable(dt.t3) -t_transitions <- set_header_labels(t_transitions, From_disp = "From", To_disp = "To") -t_transitions <- add_header_row(t_transitions, values = c("Annual transition probability", "Annual transition probability", - "Value (range); distribution", "Source")) -t_transitions <- compose(t_transitions, i = ~ !is.na(Disease_Category), j = "From_disp", - value = as_paragraph(as_chunk(Disease_Category))) -t_transitions <- align(t_transitions, align = "left", part = "all") -t_transitions <- set_header_labels(t_transitions, values = list(Value_dist = "Value (range); distribution")) -t_transitions <- merge_h(t_transitions, part = "header") -t_transitions <- merge_v(t_transitions, part = "header") - -t_transitions <- merge_v(t_transitions, j = "From_disp", part = "body") - -t_transitions <- fontsize(t_transitions, size = 10, part = "all") -t_transitions <- font(t_transitions, fontname = "Times", part = "all") -t_transitions <- theme_box(t_transitions) -t_transitions <- width(t_transitions, 1, 1.4) -t_transitions <- width(t_transitions, 2, 1.4) -t_transitions <- width(t_transitions, 3, 2.4) -t_transitions <- width(t_transitions, 4, 1.3) -t_transitions <- bg(t_transitions, i = c(1, 39, 46, 53, 76, 85, 91, 103, 110), bg = "#DDDDDD", part = "body") -t_transitions <- bold(t_transitions, i = c(1, 39, 46, 53, 76, 85, 91, 103, 110)) -t_transitions <- bg(t_transitions, bg = "#EAEAEA", part = "header") - - - - -#DALY CALCULATIONS -dt.daly <- rbind(dt_daly_params) -dt.daly[ , basecase_formatted := ifelse(format == "dollar", dollar(`Base case`, largest_with_cents = 1e2), - ifelse(format == "percent", paste0(signif(`Base case`,3)*100,"%"), - signif(`Base case`,3)))] -dt.daly[ , Low := ifelse(format == "dollar", dollar(Low, largest_with_cents = 1e2), - ifelse(format == "percent", paste0(signif(Low,3)*100,"%"), - signif(Low,3)))] -dt.daly[ , High := ifelse(format == "dollar", dollar(High, largest_with_cents = 1e2), - ifelse(format == "percent", paste0(signif(High,3)*100,"%"), - signif(High,3)))] -dt.daly[ , Value := ifelse(is.na(Low), basecase_formatted, paste0(basecase_formatted, " (", Low, "–", High, ")"))] -dt.daly <- dt.daly[ , c("Category", "Description", "Value", "Source")] - - -#Additional parameters for calculation disability-adjusteed life years (DALYs) -dt.daly <- as_grouped_data(dt.daly, groups = c("Category")) -t_daly <- as_flextable(dt.daly) -#t_daly <- set_header_labels(t_daly, Description = "") -t_daly <- compose(t_daly, i = ~ !is.na(Category), j = "Description", - value = as_paragraph(as_chunk(Category))) -t_daly <- align(t_daly, align = "left", part = "all") -t_daly <- set_header_labels(t_daly, values = list(Value = "Value (range)")) -t_daly <- theme_box(t_daly) -t_daly <- width(t_daly, 1, 2.4) -t_daly <- width(t_daly, 2, 2.4) -t_daly <- width(t_daly, 3, 1.2) -t_daly <- bg(t_daly, i = c(1, 7, 10, 13, 17, 31, 49), bg = "#DDDDDD", part = "body") -t_daly <- bold(t_daly, i = c(1, 7, 10, 13, 17, 31, 49), part = "body") -t_daly <- bg(t_daly, bg = "#EAEAEA", part = "header") -t_daly <- font(t_daly, fontname = "Times", part = "all") -t_daly <- footnote(t_daly, i=1, part="body",ref_symbols = "1", - value = as_paragraph("Sepsis: Inpatient mortality weight applied to the increased duration of hospitalization (parameter in Table S2). Probability of post-hospitalization sequelae applied to patients surviving hospitalization.")) -t_daly <- footnote(t_daly, i=17, part="body",ref_symbols = "2", - value = as_paragraph("HCV: Assumed no disability from subclinical acute HCV. Assumed some disability from acute HCV on AVT due to both symptoms (estimated from Stanaway 2016) and treatment side effects, calculated from the difference between the disability weights used for treatment at other disease stages in Fraser 2016.")) -t_daly <- footnote(t_daly, i=31, part="body",ref_symbols = "3", - value = as_paragraph("HBV: Assumed no disability for subclinical acute, immune tolerant, and inactive carrier disease states. We assumed the disability in the chronic HBeAg- HBV would be half that of immune reactive when not on AVT and would be equal to that of immune reactive when on AVT.")) -t_daly <- footnote(t_daly, i=49, part="body",ref_symbols = "4", - value = as_paragraph("HIV: We assumed no disability for undetected (subclinical) HIV. For undetected AIDS, we assumed patients experience symptoms that are less severe than average (otherwise they would be diagnosed), and we calculated their disability weight as 50% the typical disability weight for symptomatic pre-HIV AIDS. For patients initiating AVT with pre-AIDS HIV, we assume 50% had no symptoms and 50% have symptomatic HIV that typically becomes asymptomatic about 6 months after AVT initiation. We therefore calculated the average disability weight for the first year of HIV treatment as 75% of the 'receiving treatment' weight and 25% of the 'symptomatic HIV' weight. For patients initiating AVT with AIDS, we calculated their first-year disutility as 50% that of untreated AIDS and 50% that of a typical patient on treatment. We calculated their second-year disutility as 25% that of untreated AIDS and 75% that of a typical patient on treatment. For those with residual disability from their AIDS-associated illness, we assumed their disutility remained the same for subsequent years on treatment.")) -t_daly <- fontsize(t_daly, size = 10, part = "all") -# -# t_daly <- colformat_md(t_daly, j=4, -# pandoc_args=c('--csl', 'apa.csl')) -``` - -```{r gen_figs, include=FALSE} - - -#Tornado diagram -bc_net_savings <- unlist(dt_bc_outcomes$net_savings) - - -dt_univ[ , name_range := paste0(Param_disp, "\n", Low, " – ", High)] -dt_univ[ , name_range := factor(name_range, levels = rev(unique(name_range)))] -#dt_univ[ , blank := pmin(net_savings_low, net_savings_high)] -dt_univ_plt <- rbind(setorder(dt_univ[abs_net_savings_range>5e5], -abs_net_savings_range)) -dt_univ_plt[, x:= nrow(dt_univ_plt):1] - - -ggplot(data = dt_univ_plt) + - geom_segment(aes(x = name_range, xend=name_range, y = net_savings_low, yend=net_savings_high), size=6, color="grey")+ - theme(legend.position = "None")+ - coord_flip()+ - geom_hline(yintercept = bc_net_savings, color="black")+ - geom_hline(yintercept = 0, alpha = 0.5, color = "red")+ - scale_alpha_manual(values = c(1, 0))+ - scale_y_continuous(labels = function(x){paste0("$",x/1e6,"M")}, - )+ - xlab("")+ - ylab("Net savings of WBPR")+ - annotate("text", x=0.75, y=bc_net_savings+1.4e6, label=paste0(dollar(bc_net_savings)), - size = 3.5, color="black") - - -ggsave("figs/tornado.png", - width=6.5, - height = 4, - units="in") - - - -# #Cases&costs by AE -# dt_bc_outcomes -dt_outcome_quants <- dt_psa_outcomes[ , lapply(.SD, - function(x) - quantile(x, probs = c(0.025, 0.975)))] -# -# dt_case_cost_plot <- data.table( -# ae_abbrev = rep(ae_abbrevs, 2), -# outcome = rep(c("Cases reduced", -# "Healthcare spending reduced"), each = 7), -# value = numeric(), -# lb = numeric(), -# ub = numeric() -# ) -# for (ae in ae_abbrevs){ -# dt_case_cost_plot[ae_abbrev == ae & outcome == "Cases reduced", value:= dt_bc_outcomes[1, get(paste0(ae, ".cases_reduced"))]] -# dt_case_cost_plot[ae_abbrev == ae & outcome == "Cases reduced", lb:= dt_outcome_quants[1, get(paste0(ae, ".cases_reduced"))]] -# dt_case_cost_plot[ae_abbrev == ae & outcome == "Cases reduced", ub:= dt_outcome_quants[2, get(paste0(ae, ".cases_reduced"))]] -# dt_case_cost_plot[ae_abbrev == ae & outcome == "Healthcare spending reduced", value:= dt_bc_outcomes[1, get(paste0(ae, ".burden_reduced"))]] -# dt_case_cost_plot[ae_abbrev == ae & outcome == "Healthcare spending reduced", lb:= dt_outcome_quants[1, get(paste0(ae, ".burden_reduced"))]] -# dt_case_cost_plot[ae_abbrev == ae & outcome == "Healthcare spending reduced", ub:= dt_outcome_quants[2, get(paste0(ae, ".burden_reduced"))]] -# } -# -# max_case_reduct <- max(dt_case_cost_plot[outcome=="Cases reduced"]$ub) -# max_spend_reduct <- max(dt_case_cost_plot[outcome=="Healthcare spending reduced"]$ub) -# dt_case_cost_plot[ , val.perc := ifelse(outcome == "Cases reduced", value/max_case_reduct, value/max_spend_reduct)] -# dt_case_cost_plot[ , lb.perc := ifelse(outcome == "Cases reduced", lb/max_case_reduct, lb/max_spend_reduct)] -# dt_case_cost_plot[ , ub.perc := ifelse(outcome == "Cases reduced", ub/max_case_reduct, ub/max_spend_reduct)] -# -# ggplot(dt_case_cost_plot, aes(x = reorder(ae_abbrev, -value), y = value))+ -# geom_bar(position="dodge", stat="identity")+ -# geom_linerange(aes(ymin = lb, ymax = ub))+ -# facet_wrap(.~outcome, nrow = 2, scales = "free_y", strip.position = "left")+ -# ylab(NULL)+xlab("Adverse event")+ -# theme(strip.background = element_blank(), strip.placement = "outside") - - - -#Net budget impact -dt_net_impact <- data.table( - outcome = factor(c("PI cost", - "Healthcare\nsavings", - "Net\nimpact"), levels = c("PI cost", - "Healthcare\nsavings", - "Net\nimpact")), - value = c(dt_bc_outcomes$prt_cost, - -1*dt_bc_outcomes$all_ae.burden_reduced, - -1*dt_bc_outcomes$net_savings), - lb = c(dt_outcome_quants[1,]$prt_cost, - -1*dt_outcome_quants[1,]$all_ae.burden_reduced, - -1*dt_outcome_quants[1,]$net_savings), - ub = c(dt_outcome_quants[2,]$prt_cost, - -1*dt_outcome_quants[2,]$all_ae.burden_reduced, - -1*dt_outcome_quants[2,]$net_savings) -) - -ggplot(dt_net_impact, aes(x=outcome, y = value))+ - geom_bar(position="dodge", stat="identity", width = 0.5, fill="grey")+ - geom_errorbar(aes(ymin=lb, ymax=ub), width=0.2)+ - ylab("Net present cost")+xlab(NULL)+ - scale_y_continuous(labels = label_dollar())+ - geom_hline(yintercept = 0) - -ggsave("figs/net_impact.png", - width=3, - height = 2.5, - units="in") - - - -#PSA scatter -dt_psa_outcomes[, cost_saving := ifelse(net_savings>=0, "Cost saving", "Not cost saving")] -dt_psa_outcomes[, ICER:= -1*net_savings/all_ae.DALY_reduced] - -ggplot(dt_psa_outcomes, aes(x=all_ae.DALY_reduced, y=-1*net_savings))+ - geom_point(aes(color=cost_saving), alpha=0.5)+ - geom_hline(yintercept=0, color="grey")+ - scale_y_continuous(labels = label_dollar(), name="Net incremental healthcare cost")+ - scale_x_continuous(labels = label_comma(), name="Incremental DALYs averted", limits = c(0, 160000))+ - #geom_abline(slope=100)+ - annotate("text", - label=paste0("WBPR was cost-saving\nin ", - percent(dt_psa_outcomes[net_savings>0, .N/nrow(dt_psa_outcomes)]), - " of iterations"), - x=120000, y = -1.3e6, color="forestgreen")+ - annotate("text", - label=paste0("WBPR never cost more\nthan ", - dt_psa_outcomes[, dollar(ceiling(max(ICER)))], - " per DALY"), - x=120000, y = 1.3e6, color="dodgerblue")+ - theme(legend.position = "None")+ - scale_color_manual(values=c("forestgreen", "dodgerblue")) - # annotate("label", - # label=paste0("WBPR cost <$100/DALY in ", - # percent(dt_psa_outcomes[, sum(-1*net_savings/all_ae.DALY_reduced<100)/.N]), - # " of iterations"), - # x=90000, y = 5.5e6) - -ggsave("figs/cea_scatter.png", - width=6.5, - height = 4, - units="in") - -``` - -# Abstract - -**Background:** Despite the promise of pathogen reduction for reducing transfusion-associated adverse events in sub-Saharan Africa, no health-economic assessment is publicly available. - -**Methods:** We developed a mathematical risk reduction model to estimate the impact of nationwide whole blood pathogen reduction in Ghana on the incidence of six infectious and one non-infectious transfusion-associated adverse events. We estimated the lifetime direct healthcare costs and disability-adjusted life years lost for each adverse event. For HIV, HCV, and HBV, we simulated disease progression using Markov models, accounting for the likelihood and timing of clinical detection and treatment. We performed probabilistic and univariate sensitivity analysis. - -**Results:** Adding whole blood pathogen reduction to Ghana's blood safety portfolio would avert an estimated `r dt_bc_outcomes_count$all_ae.cases_reduced` `r dt_range_count$all_ae.cases_reduced` adverse events and `r dt_bc_outcomes_count$all_ae.DALY_reduced` `r dt_range_count$all_ae.DALY_reduced` disability-adjusted life years annually, primarily by averting bacterial sepsis (`r dt_bc_outcomes[, percent(sep.cases_reduced/all_ae.cases_reduced,1)]`) and malaria (`r dt_bc_outcomes[, percent(mal.cases_reduced/all_ae.cases_reduced,1)]`) infections. One year of pathogen reduction would cost an estimated `r dt_bc_outcomes_dollar$prt_cost` `r dt_range_dollar$prt_cost` and eliminate `r dt_bc_outcomes_dollar$all_ae.burden_reduced` `r dt_range_dollar$all_ae.burden_reduced` in direct healthcare spending on transfusion-associated adverse events. We estimate a `r percent(dt_psa_outcomes[net_savings > 0, .N ]/nrow(dt_psa_outcomes))` probability that the addition of pathogen reduction would reduce overall healthcare spending. Findings were most sensitive to uncertainty in the probability that a bacterially contaminated blood donation causes sepsis. - -**Conclusions:** Whole blood pathogen reduction would substantially reduce the burden of known transfusion-associated adverse events in Ghana and may reduce overall healthcare spending. Additional benefits not captured by this analysis may include averting secondary transmission of infectious diseases, reducing non-medical costs, and avoiding other adverse events, such as new or re-emerging transfusion-transmitted infections. - -##### - -# Introduction - -> Pathogen reduction of blood components for transfusion is a promising new technology for reducing transfusion-transmitted (TT-) infections (TTIs) and non-infectious transfusion-associated adverse events in Sub-Saharan Africa [@Ware2018]. Different types of pathogen reduction use ultraviolet light and/or intercalating compounds to inactivate pathogens in blood components or whole blood [@Prowse2012]. The health-economic consequences of pathogen reduction of plasma and platelet components has been estimated for different health systems [@Custer2010; @Agapova2015; @Bell2003; @Babigumira2018; @CADTH2010]. Compared to the European and North American settings where prior analyses have focused, health systems in sub-Saharan Africa often experience greater resource constraints, higher baseline rates of certain transfusion-associated adverse events, and more frequent blood shortages [@Bloch2012; @Barro2018]. Furthermore, use of whole blood rather than components limits the applicability of platelet and plasma pathogen reduction in this context (in Ghana, more than 80% of blood donations are transfused as a whole blood units) [@Allain2017; @WorldHealthOrganisation2017]. For these reasons, whole blood pathogen reduction (WBPR) may be a more appropriate technology for sub-Saharan Africa. A recent randomized trial analyzed the effectiveness of WBPR for averting TT-malaria in Ghana [@Allain2016]. However, no health-economic assessment has been published for WBPR in any context, nor for any pathogen reduction modality in sub-Saharan Africa. We developed a decision-analytic model to estimate how the addition of WBPR to the existing blood safety program in Ghana would impact the number of transfusion-associated adverse events, healthcare costs, and disability-adjusted life years (DALYs) lost. We also estimated the cost-effectiveness of WBPR. - -
- -# Methods - -> We estimated the health-economic consequences of WBPR in Ghana from a healthcare payer perspective. We considered seven adverse events, including chronic viral TTIs (HIV, HCV, HBV), bacterial TTIs (syphilis, bacterial sepsis), malaria, and febrile non-hemolytic transfusion reactions (FNHTRs), a non-infectious adverse event. We estimated the number of adverse event cases with and without WBPR, the DALYs and healthcare costs incurred per case, the budget impact of WBPR, and the cost-effectiveness in 2019 US dollars spent per DALY averted. We assessed uncertainty through deterministic and probabilistic sensitivity analysis. The model was programmed in R, and all data and code are available in a public repository **[Will create citation before submitting].** - -## Risk reduction model structure - -> Our two-armed decision tree estimated the number of adverse event cases for status quo blood safety interventions and for the status quo plus WBPR. The status quo was to test all donations for HIV-Ab, HBsAg, Anti-HCV Ab, and Anti-treponemal Ab [@WorldHealthOrganisation2017]. All parameter values for the risk reduction model are shown in Table 1 [@WorldHealthOrganisation2017; @Mafirakureva2015; @Osei2013; @Jayaraman2010; @Adjei2009; @Allotey2019; @Allain2016; @Owusu-Ofori2012; @Opoku-Okrah2009; @Boye2016; @Owusu-Ofori2017; @Jimenez-Marco2018; @vanderSluis1985; @Adegoke2011; @OwusuOfori2011; @WorldHealthOrganization2020; @WHO2019; @UnitedNationsPopulationDivision2019], and mathematical calculations are provided in Section A of the online supplement. - -> We assumed that each whole blood unit would be transfused to a single recipient (i.e., would not be processed into components), and we assumed that if one recipient experienced multiple adverse events from a single transfusion event then the associated costs and disutility would be additive. For each of the six TTIs, the baseline (without WBPR) number of clinically meaningful adverse events was calculated from the annual number of whole blood donations collected nationally, the percent of collected donations not transfused (wastage), the estimated residual risk among donors after TTI screening, and the risk of clinical outcome (i.e., likelihood that transfusion of an infectious unit results in clinically relevant disease). For FNHTR, the baseline rate of clinically relevant adverse events per recipient was extrapolated from local data and prior studies, and the per-donation risk of FNHTR was derived by multiplying the per-recipient rate by the estimated average number of whole blood units transfused per recipient. We assumed some recipients were not at risk of clinical outcomes due to factors such as prior malaria infection, HBV vaccination, and existing HIV infection (Table 1). For each adverse event, we divided by an *x*-fold risk-reduction factor to estimate the number of adverse events when using WBPR. These factors were based on clinical trials where available (malaria, FNHTR) and otherwise sourced from a prior modeling study [@Custer2010]. - -## Estimating costs and DALYs from adverse events - -> We separately modeled a pediatric and adult cohort of transfusion recipients, with an average age of 5 and 40 at the time of transfusion, respectively. Both cohorts had a 5.7% -- 8.6% chance of inpatient mortality [@VanHulst2008], after which we assumed normal life expectancy based on the age-specific death rate indicator in the World Health Organization Global Health Observatory data repository at baseline [@WHO_data2020]. Parameters used to calculate the average DALYs of each adverse event are shown in Supplemental Table S1 [@Custer2010; @Lewis2019; @GBD2013; @Fraser2016; @Nayagam2016; @Stanaway2016]. We used estimates of the duration of illness and the associated disability weight to estimate the average years lived with disability (YLD) for each adverse event. We calculated the average years of life lost (YLL) based on the estimated increased risk of inpatient mortality for malaria in the pediatric cohort and sepsis in both cohorts. For each chronic viral infection, we developed Markov models for both the pediatric and adult cohorts to estimated medical costs and DALYs lost related to the infection over the remaining lifetime of transfusion recipients. -> -> We used a micro-costing approach to estimate the average health care spending associated with each transfusion-associated adverse event. For most costs, authors with relevant clinical experience at the Komfo Anokye Teaching Hospital (KATH) in Kumasi, Ghana, estimated the costs and utilization patterns for resources used to treat each adverse event. For HIV, we assumed infections that had not yet progressed to AIDS would be detected in an outpatient clinic and used empirical costing estimates from a recent study of healthcare costs for patients initiating antiviral therapy (AVT) [@Mikkelsen2017]. We treated FNHTR, malaria, syphilis, and sepsis as acute infections and assumed associated costs and morbidity occurred within a year of transfusion. For HIV, HBV, and HCV. we estimated the annual resource utilization and associated costs for each disease state in the Markov models. Supplemental Table S2 [@Mikkelsen2017; @VanHulst2008] contains estimates and uncertainty ranges for all micro-costing parameters, and Supplemental Table S3 contains the calculations used for the four acute adverse events and for each disease state of the chronic viral infections. - -> The Markov models for HCV, HBV, and HIV captured the disease natural history, treatment initiation, and treatment effectiveness. We used a one-year cycle length, discounted future costs at 3% annually, and used the cycle tree method to correct for discretization error [@Naimark2013]. All transition probabilities and their sources are listed in Supplemental Table S4 [@Mafirakureva2016; @Nayagam2016; @Fraser2016; @Morgan2002]. The supplement also contains schematics for the transition matrix for each chronic adverse event (Supplementary Figures S1 -- S3) and Markov trace plots of the proportion of transfusion recipients in each disease state over time (Supplementary Figures S4 -- S6). - -> For HCV, our natural history model and treatment efficacy estimates were based on a health economic model developed for The Gambia [@Nayagam2016], and transitions into treatment were estimated based on authors' (SOO, AOO, EM, BN) clinical experience. Within the model, a small percentage of infections are detected during the acute phase in the first year and receive AVT; otherwise, recipients have subclinical acute infections. Some initially subclinical infections progress through chronic HCV disease states. A percentage of patients in the subclinical chronic HCV, compensated cirrhosis, or decompensated cirrhosis disease states are detected and receive AVT each year. AVT clears most HCV infections, but some patients experience treatment failure with disease progression while receiving monitoring and care. - -> For HBV, our natural history model and treatment efficacy estimates were based on a health economic model developed for South Africa [@Fraser2016]. In the model, acute infections have a small probability of being detected and receive monitoring and care during the first year, but most infections are subclinical during the acute phase. Subclinical infections that progress to the immune reactive, compensated cirrhosis, or decompensated cirrhosis states have an annual probability of clinical detection, at which point AVT is initiated. Subclinical patients in the chronic HBeAg- phase also have an annual probability of detection. Those patients transition to receiving monitoring and care without AVT, but some initiate AVT each year due to clinical indications such as a spike in viral load. We assumed patients on AVT do not progress to later disease states and would continue with AVT and monitoring for their lifetimes. However, a small annual risk of developing hepatocellular carcinoma remains for those who developed cirrhosis before AVT initiation. - -> For HIV, we constructed a natural history model and calibrated the annual probability of progression to AIDS, death from HIV, and death from AIDS to a longitudinal study of HIV progression from Uganda (Figure S7) [@Morgan2002]. We estimated the annual probability of initiating AVT from different subclinical disease states based on the authors' clinical experience, and we assumed patients who initiated AVT before progressing to AIDS continue with treatment for the remainder of their lives and have a normal life expectancy. Annual costs for those who initiated AVT before progressing to AIDS are based on an empirical study conducted in HIV clinics in Ghana that found that on average, medical expenses were highest in the year of AVT initiation and tapered off over three years [@Mikkelsen2017]. For patients who initiate AVT after progressing to AIDS, we assumed they would receive a diagnosis and initiate AVT during a hospitalization for AIDS complications and therefore incur substantially higher costs in the first two years as compared to those initiating AVT with HIV. We also assumed those initiating AVT with AIDS would have a higher risk of dying during the first two years of AVT. After two years on AVT, we assumed most surviving AIDS patients would have recovered their CD4 counts and have the same annual costs and risk of death as any other AVT patient. Some surviving AIDS patients, however, would have residual disability due to AIDS-associated illnesses such as stroke or kidney failure. We assumed a higher lifetime annual cost and mortality risk for these patients. - -## Uncertainty analysis - -> For each input parameter, we estimated a range of likely values for deterministic sensitivity analysis and assigned a distribution for probabilistic sensitivity analysis. We used beta distributions when estimates were based on counts for a binary outcome or when the parameter source used a beta distribution; otherwise, we sampled each parameter from a PERT distribution. For all outcomes, we reported the expected value from the base case scenario and a 95% uncertainty interval based on the 2.5th and 97.5th quantiles of the outcome across 10,000 iterations of probabilistic sensitivity analysis. We conducted two scenario analyses. In one, we approximated secondary infections by assuming each surviving recipient infected with HIV, HBV, or HCV infects one other person during the first year following transfusion. In another, we excluded benefits related to preventing TT-sepsis cases from the analysis. - -
- -# Results - -> The number of modeled adverse events in Ghana per year without WBPR was `r dt_bc_outcomes_count$all_ae.cases_no_prt` `r dt_range_count$all_ae.cases_no_prt`. WBPR reduced the number of adverse events by `r dt_bc_outcomes_count$all_ae.cases_reduced` `r dt_range_count$all_ae.cases_reduced` to `r dt_bc_outcomes_count$all_ae.cases_prt` `r dt_range_count$all_ae.cases_prt` per year. `r dt_bc_outcomes[, percent(sep.cases_reduced/all_ae.cases_reduced,1)]` of averted adverse event cases were bacterial sepsis infections; `r dt_bc_outcomes[, percent(mal.cases_reduced/all_ae.cases_reduced,1)]` were malaria; `r dt_bc_outcomes[, percent(ftr.cases_reduced/all_ae.cases_reduced,1)]` were FNHTR; `r dt_bc_outcomes[, percent(hcv.cases_reduced/all_ae.cases_reduced,1)]` were HCV; `r dt_bc_outcomes[, percent(hbv.cases_reduced/all_ae.cases_reduced,1)]` were HBV; `r dt_bc_outcomes[, percent(hiv.cases_reduced/all_ae.cases_reduced,.01)]` were HIV; and `r dt_bc_outcomes[, percent(syp.cases_reduced/all_ae.cases_reduced,.01)]` were syphilis (Table 2). The estimated DALYs lost without WBPR was `r dt_bc_outcomes[, comma(all_ae.DALY_no_prt)]` `r dt_range_count$all_ae.DALY_no_prt`, of which `r dt_bc_outcomes[, percent(sep.DALY_no_prt/all_ae.DALY_no_prt,1)]` was due to sepsis infections. WBPR would avert an estimated `r dt_bc_outcomes[, comma(all_ae.DALY_reduced)]` `r dt_range_count$all_ae.DALY_reduced` DALYs. - -> The estimated net present cost per adverse event ranged from `r dollar(dt_bc_costs$syp)` `r dt_range_np_costs$syp` for syphilis to `r dollar(dt_bc_costs$hcv)` `r dt_range_np_costs$hcv` for HCV. Because most chronic viral infections were not immediately detected, less than 10% of healthcare costs associated with HIV, HBV, and HCV occurred in the first post-transfusion year (Supplementary Table S4). The total net present healthcare costs due to adverse events was `r dt_bc_outcomes_dollar$all_ae.burden_no_prt` `r dt_range_dollar$all_ae.burden_no_prt` without WBPR and `r dt_bc_outcomes_dollar$all_ae.burden_prt` `r dt_range_dollar$all_ae.burden_prt` with WBPR. Of the adverse events evaluated, sepsis infection had only the fourth highest per-case cost at `r dollar(dt_bc_costs$sep)` `r dt_range_np_costs$sep` but represented the majority of healthcare spending due to adverse events without WBPR (`r dt_bc_outcomes[, percent(sep.burden_no_prt/all_ae.burden_no_prt)]`) and the majority of net present healthcare savings due to PI (`r dt_bc_outcomes[, percent(sep.burden_reduced/all_ae.burden_reduced)]`). - -> One year of WBPR in Ghana would cost an estimated `r dt_bc_outcomes_dollar$prt_cost` `r dt_range_dollar$prt_cost` and reduce net present healthcare spending by `r dt_bc_outcomes_dollar$all_ae.burden_reduced` `r dt_range_dollar$all_ae.burden_reduced` due to averted adverse events, resulting in an annual net savings of `r dt_bc_outcomes_dollar$net_savings` `r dt_range_dollar$net_savings` (Figure 2). WBPR led to an overall reduction in net present healthcare spending in `r percent(dt_psa_outcomes[net_savings >= 0, .N ]/nrow(dt_psa_outcomes))` of probabilistic sensitivity analysis iterations (Figure 3). Across the `r percent(dt_psa_outcomes[net_savings < 0, .N ]/nrow(dt_psa_outcomes))` iterations where WBPR had a positive net cost, WBPR never cost more than `r dt_psa_outcomes[, dollar(ceiling(max(ICER)))]` per DALY averted. - -> In univariate sensitivity analysis, our conclusion that WBPR would be cost-saving was sensitive to eight input parameters (Figure 4). At the low end of our uncertainty range for the probability of clinical sepsis from a bacterially contaminated unit, WBPR had a net present cost of `r dt_univ[rname=="p_clin_sep", dollar(-1*net_savings_low, largest_with_cents = 1e+02)]` annually. At the high end of our uncertainty range for the per-donation cost of WBPR, WBPR had a net present cost of `r dt_univ[rname=="c_PI", dollar(-1*net_savings_high, largest_with_cents = 1e+02)]` annually. For six other parameters, WBPR had a positive net present cost of less than \$1 million annually. The finding that WBPR is cost-effective was not sensitive to any single input parameter over our uncertainty ranges using a willingness to pay of \$2202 per DALY (the 2019 gross national income of Ghana [@WorldBank2021]). - -> In a scenario analysis where we accounted for one secondary infection for all HBV, HCV, and HIV-infected recipients, the net present healthcare costs due to adverse events averted by WBPR increased from `r dt_bc_outcomes_dollar$all_ae.burden_reduced` to `r dollar( dt_bc_outcomes$sec_infections_buden_red)` (`r range_sec_infections_buden_red`) annually. In this scenario, WBPR reduced overall healthcare costs in `r percent(dt_psa_outcomes[sec_infections_buden_red > prt_cost, .N]/nrow(dt_psa_outcomes))` of iterations. In the scenario analysis where we excluded benefits related to averting TT-sepsis cases, WBPR was no longer cost-saving. In that scenario, the WBPR led to an overall increase in annual healthcare spending of `r dollar( dt_bc_outcomes$no_sepsis_net_cost)` (`r range_no_sepsis_net_cost`) and had an incremental cost-effectiveness ratio of `r dollar(dt_bc_outcomes$no_sepsis_icer)` (`r range_no_sepsis_icer`) per disability-adjusted life year averted. This cost per DALY averted is similar to Ghana's per capita gross national income (\$2,220 in 2019) [@WorldBank2021]. - -
- -# Discussion - -> Our study suggests that adding WBPR to the existing blood safety portfolio would substantially reduce the burden of transfusion-associated adverse events in Ghana. WBPR is a very cost-effective intervention and may be cost-saving. We estimated a `r percent(dt_psa_outcomes[net_savings > 0, .N ]/nrow(dt_psa_outcomes))` probability that WBPR would lead to a net reduction in healthcare costs, but this increased to `r percent(dt_psa_outcomes[sec_infections_buden_red > prt_cost, .N]/nrow(dt_psa_outcomes))` when factoring in healthcare costs for secondary transmission of HIV, HBV, and HCV. We took a healthcare payer perspective and did not consider costs such as family caregiver time, productivity loss, or transportation costs. We also did not evaluate all types of adverse events for which WBPR may reduce risk, which could include emerging infectious diseases not yet identified as blood safety threats. Due to these factors, the total societal benefit of WBPR likely exceeds the direct healthcare-related impact as estimated in this analysis. - -> Our analysis is the most comprehensive estimation of the burden of transfusion-associated adverse events to date for a sub-Saharan African setting. We developed a new approach to account for subclinical disease and the timing and likelihood of chronic disease detection. This approach, combined with other therapeutic developments such as price reductions for HIV antiviral therapy drugs [@Lee2016a] and greater immunity to HBV through vaccination [@Sarkodie2016], led to lower estimates of the per-exposure costs for TT-HBV, TT-HCV, and TT-HIV events as compared to past analyses of blood safety interventions in sub-Saharan Africa [@Mafirakureva2016; @VanHulst2008; @Custer2017]. To our knowledge, this is the first study to estimate healthcare costs and DALYs lost due to TT-sepsis in a sub-Saharan African setting. We estimated that TT-sepsis is responsible for the majority of morbidity, morbidity, and costs associated with transfusion-associated adverse events in Ghana. The rate of bacterial contamination of blood products varies across African settings, ranging from 0% to 17.9% in a recent systematic review [@Ahmad2021]. Unfortunately, data on clinical outcomes following transfusion of a bacterially contaminated whole blood unit are extremely sparse. Uncertainty in the risk of clinical TT-sepsis following transfusion of a bacterially contaminated whole blood unit was the single largest source of uncertainty in our findings. Even in the scenario of least benefit with no reduction in sepsis by use of WBPR, the cost per DALY averted was similar to the per capita gross national income (GNI) and well below the World Health Organization’s (WHO’s) Choosing Interventions that are Cost-Effective (CHOICE) suggested cost-effectiveness ratio of three times the GNI as a threshold for cost-effective interventions [@Robinson2017]. - -> Our study has several limitations. Due to lack of data, we did not account for variability in the number of whole blood units transfused per recipient, nor the association between mortality and the number of units transfused. This could lead to an overestimation of the benefits of WBPR if multiply transfused recipients, who are at an elevated risk of transfusion-associated adverse events, have lower baseline expected survival, as has been estimated in other settings [@Russell2019]. Data on the rate of transfusion-associated adverse events in Ghana, and in sub-Saharan Africa generally, are limited. The benefit of WBPR depends on the baseline residual risk of each adverse event, and updated risk estimates using hemovigilance data, if available, could improve estimation. While our detailed micro-costing approach to estimating patterns of clinical resource utilization and associated costs for adverse events was based on local clinical expertise, a rigorous empirical study would enhance precision. - -> Our analysis provides further evidence that WBPR is a promising technology for sub-Saharan Africa. Future research could further elucidate the societal impact of WBPR and other blood safety technologies by improving estimation of the burden of illness from transfusion-associated adverse events, estimating other effects beyond direct healthcare spending, and by considering other settings in sub-Saharan Africa. - -##### - -# Declarations - -**Funding:** This work was supported by Terumo BCT, Inc. (Lakewood, Colorado, USA). Terumo BCT provided no editorial control over the research or the manuscript. - -**Acknowledgements:** The authors thank Marion Vermeulen of the South African National Blood Supply for providing unpublished hemovigilance data for syphilis; Dr. Lucy Asamoah-Akuoko of the National Blood Service, Ghana, for providing unpublished data on the percent of whole blood units not transfused; and Nigel Talboys and Eric Mwenda of Terumo BCT, Inc. for providing estimated costs for whole blood pathogen reduction. - -**Potential Conflicts of Interest:** WAR received consulting fees from Terumo BCT, Inc. (Lakewood, Colorado, USA) for developing the submitted work. SOO received honoraria from Terumo BCT outside the submitted work. BC reports grants from Grifols Diagnostic Solutions (Barcelona, Spain). Authors AOO, EM, and BN affirm that they have no conflicts. - -**Ethics/Consent:** This analysis was based on public data and was exempt from institutional ethics review. - -**Data and materials:** All data and materials have been uploaded to a public repository. - -**Code availability:** All code has been uploaded to a public repository. - -##### - -# References - -::: {#refs} -::: - -##### - -::: {custom-style="Compact"} -| **Table 1** Parameters for modeling the risk of adverse events with and without whole blood pathogen reduction -::: - -`r t_riskmod` - - - -::: {custom-style="Compact"} -| **Table 2** Estimated cases and healthcare spending incurred for each adverse event with and without whole blood pathogen reduction for one year. DALY, disability-adjusted life year; WBPR, whole blood pathogen reduction; YLD, years lived with disability; YLL, years of life lost. -::: - -```{r include=FALSE} -t1 <- flextable(dt_results[c(1:6, 9, 12), c(1, 3:9)]) -t1 <- align(t1, align = "left", part = "all") -t1 <- set_header_labels(t1, values = list(Value_dist = "Value (range); distribution")) -t1 <- fontsize(t1, size = 10, part = "all") -t1 <- font(t1, fontname = "Times", part = "all") -t1 <- theme_box(t1) -t1 <- width(t1, 1, 1.3) -t1 <- width(t1, 2:8, 1.1) -t1 <- bg(t1, bg = "#EAEAEA", part = "header") - -``` - -`r t1` - - - -![**Fig. 1.** Schematics for Markov models used to estimate net-present lifetime costs for chronic viral infections. Death from other causes possible from any disease state (not shown). Abbreviations AVT, antiviral therapy, CC, compensated cirrhosis, CM, clinical monitored, DCC, decompensated cirrhosis, HCC, hepatocellular carcinoma, HBV, hepatitis B, HCV, hepatitis C, HIV, human immunodeficiency virus, TF, treatment failure, UD, undetected, SC, subclinical](figs/markov_schematics.png) - -##### - -![Fig. 2. Estimated net impact on healthcare spending of whole blood pathogen reduction. Net impact is the cost of pathogen reduction minus the net present healthcare savings from averted transfusion-associated adverse events.](figs/net_impact.png) - -##### - -![**Fig. 3.** Scatterplot showing the incremental healthcare costs and DALYs averted for WBPR across 10,000 probabilistic sensitivity analysis iterations. WBPR was cost-saving in `r percent(dt_psa_outcomes[net_savings>0, .N/nrow(dt_psa_outcomes)], accuracy = 0.1)` and cost less than \$100 per DALY in `r percent(dt_psa_outcomes[, sum(-1*net_savings/all_ae.DALY_reduced<100)/.N], accuracy = 0.1)` of iterations.](figs/cea_scatter.png) - -##### - -![**Fig. 4.** Sensitivity of the net savings of pathogen reduction to changes in the value of individual input parameters within prespecified uncertainty ranges. Y-axis shows all model parameters for which varying the value along the indicated range while keeping other parameters at their base case value led to a variation of more than \$500,000 in the estimated net savings of whole blood pathogen reduction.](figs/tornado.png) - -##### - -\setcounter{page}{0} - -# Supplemental materials - -
- -# A. Risk model calculations - -The following equation was used to calculate the number of cases of each adverse event [AE], with and without WBPR: - -$$ -\begin{aligned} -(\text{[AE] Cases without WBPR}) = &(\text{\# whole blood donations})\times \\ -&(\text{[AE] baseline risk})\times \\ -&(\text{[AE] clinical outcome risk}) -\end{aligned} -$$ $$ -\begin{aligned} -\text{[AE] Cases with WBPR} = &(\text{\# whole blood donations})\times \\ -&(\text{[AE] baseline risk})\times \\ -&(\text{[AE] clinical outcome risk})\times \\ -&(\text{[AE] transmissibility}) \\ -\end{aligned} -$$ The annual cost of WBPR was calculated as: - -$$ -\begin{aligned} -\text{WBPR cost per case} = &(\text{\# whole blood donations transfused})\times\\ -&(1 + \text{% donations not transfused})\times\\ -&(\text{PI cost per donation.}) -\end{aligned} -$$ - -
- -# B. Estimation of malaria clinical outcome risk - -The risk of clinical malaria infection from the transfusion of a parasitaemic donation was calculated from data in Allain 2016 [@Allain2016]. In that study, the prevalence of parasitemia was 23% (50/217) in recipients and 25% (91/367) in donors. Parasitemia by malaria species was also reported: - -- In donors: 56 had *P falciparum* only; 4 had *P malariae* only; 1 had *P ovale* only; 26 had both *P falciparum* and *P malariae*; and 4 had all 3 species. -- In recipients: 48 had *P falciparum* only; 1 had *P malariae* only; 0 had *P ovale* only; 2 had both *P falciparum* and *P malariae*; and 0 had all 3 species. - -From these numbers, we calculated the following probabilities: - -- Probability donation has non-falciparum species given that it has malaria: 38.46% -- Probability donation has non-malariae species given that it has malaria: 62.64% -- Probability donation has non-ovale species given that it has malaria: 94.51% -- Probability donation has neither *P falciparum* nor *P malariae* given that it has malaria: 1.10% - -From these, the probability that a parasitaemic recipient who is transfused with a parasitaemic donation would receive a species they are not already parasaetimic for was calculated by taking a sum of the probability donations do not have each set of malaria species weighted by the probability that recipients do have each set of malaria species. The result was 37.47%. - -The probability of clinical outcomes when a malaria-positive donation is transfused to a non-parasitaemic recipient was reported as 21.6% (8 of 37 transfusions) with a 95% confidence interval of 9.8--38.2%. We assumed that when a parasitaemic donation is transfused to a parasitaemic recipient, the risk of transmission is the same as with a non-parasitaemic recipient when the donation contained a malaria species for which the recipient was not parasitaemic, and the risk of clinical outcomes was 0 when the recipient was already parasitaemic with all malaria species in the donation. Therefore, the estimated clinical outcome risk for a parasitaemic recipient was $21.60\% \times 37.47\% = 8.09\%$. We then calculated the overall expected probability of transmission of a malaria parasitaemic donation by weighting the probability in parasitaemic recipients (8.09%) and the probability in non-parasitaemic recipients (21.60%) by the proportion of recipients who were parasitaemic (23%) for an overall risk of clinical outcomes of 18.5%. For the uncertainty range, we assumed the value could range from 45% to 176% of the base case value based on the range in the confidence interval around the risk of transmission from Allain 2016. - -##### - -# Supplemental tables - -::: {custom-style="Compact"} -| **Table S1** Additional parameters used to calculate disability-adjusted life years (DALYs). These parameters were sampled from a PERT distribution in probabilistic sensitivity analysis. -::: - -`r t_daly` - -##### - -::: {custom-style="Compact"} -| **Table S2** Parameters for the micro-costing calculations -::: - -`r t_microcost` - -::: {custom-style="hidden_line"} -| . -::: - -##### - -::: {custom-style="Compact"} -| **Table S3** Annual transition probabilities used in the Markov models of chronic HIV, HBV, and HCV infections. Transitions indicated by \`\#\` are calculated as one minus the probability of transitioning to any other state. -::: - -`r t_transitions` - -##### - -::: {custom-style="Compact"} -| **Table S4** Calculations used for each disease state (acute illness for sepsis, malaria, febrile non-hemolytic transfusion reactions, and syphilis; annual costs for each disease state in the HBV and HIV Markov models) -::: - -```{r t_calcs, include=FALSE} - -dt.t_calcs <- data.table(read_excel("../data/Ghana_hea_parameters.xlsx", sheet = "Microcost_eqns")) -t_calcs <- flextable(dt.t_calcs) -t_calcs <- fontsize(t_calcs, size = 10, part = "all") -t_calcs <- font(t_calcs, fontname = "Times", part = "all") -t_calcs <- theme_box(t_calcs) -t_calcs <- width(t_calcs, 1, 2.1) -t_calcs <- width(t_calcs, 2, 4.4) -t_calcs <- bg(t_calcs, bg = "#EAEAEA", part = "header") - -``` - -`r t_calcs` - -##### - -::: {custom-style="Compact"} -| **Table S5** Calculated annual costs for each disease state in the HIV, HBV, and HCV disease progression Markov models -::: - -```{r t_chronic_disease_states, include=FALSE} -dt_chronic_disease_states <- fread("../results/chronic_costs_by_disease_state.csv") -dt_chronic_state_lookup <- data.table(read_excel("../data/Ghana_hea_parameters.xlsx", sheet ="chronic_state_lookup")) -dt_chronic_disease_states <- dt_chronic_state_lookup[,c("Disease","Disease state", "state_disp")][dt_chronic_disease_states, - on = c("Disease", "Disease state")] - -dt_chronic_disease_states[ ,`Disease state` := state_disp] -dt_chronic_disease_states[ ,state_disp := NULL] -dt_chronic_disease_states <- melt(dt_chronic_disease_states, id.vars = 1:4) - -#dt_chronic_disease_states <- -dt_chronic_disease_states <- dcast(dt_chronic_disease_states, Disease+`Disease state`+`Annual cost` ~ variable+Cohort, sep=", ") - - -cols <- colnames(dt_chronic_disease_states)[3:7] - -dt_chronic_disease_states[ , (cols) := lapply(.SD, "dollar"), .SDcols=3:7] - -dt_chronic_disease_states <- as_grouped_data(dt_chronic_disease_states, groups = c("Disease")) - -t_chron_disease_states <- as_flextable(dt_chronic_disease_states) - -t_chron_disease_states <- compose(t_chron_disease_states, i = ~ !is.na(Disease), j = "Disease state", - value = as_paragraph(as_chunk(Disease))) - -t_chron_disease_states <- align(t_chron_disease_states, align = "left", part = "all") -t_chron_disease_states <- fontsize(t_chron_disease_states, size = 10, part = "all") -t_chron_disease_states <- font(t_chron_disease_states, fontname = "Times", part = "all") -t_chron_disease_states <- theme_box(t_chron_disease_states) -#t_chron_disease_states <- width(t_chron_disease_states, 1, 2.1) -# t_chron_disease_states <- width(t_chron_disease_states, 2, 4.4) -t_chron_disease_states <- bg(t_chron_disease_states, bg = "#EAEAEA", part = "header") -t_chron_disease_states <- width(t_chron_disease_states, 1, 1.7) -t_chron_disease_states <- width(t_chron_disease_states, 2, 0.8) -t_chron_disease_states <- width(t_chron_disease_states, 3:6, 1) -t_chron_disease_states <- bg(t_chron_disease_states, i = c(1, 21, 37), bg = "#DDDDDD", part = "body") - - - -disease_state_key_hiv <- dt_chronic_state_lookup[Disease == "HIV", paste0(`Disease state`, ", ", state_disp, collapse = "; ")] -disease_state_key_hbv <- dt_chronic_state_lookup[Disease == "HBV", paste0(`Disease state`, ", ", state_disp, collapse = "; ")] -disease_state_key_hcv <- dt_chronic_state_lookup[Disease == "HCV", paste0(`Disease state`, ", ", state_disp, collapse = "; ")] - - -``` - -`r t_chron_disease_states` - - - -# Supplemental figures - -![**Fig. S1.** Transition matrix schematic for HIV. Non-zero transition probabilities are indicated in blue for natural history transitions, yellow for treatment uptake transitions, orange for treatment effectiveness transitions, and green for other-cause mortality. Markov model constructed by first creating a transition matrix without treatment uptake or other-cause death; then adding in treatment uptake transitions while scaling other transitions such that each row still sums to 1; then adding in transitions to other-cause mortality with the same approach. Disease state names: `r disease_state_key_hiv`. Abbreviations: NH, natural history (blue); TU, treatment uptake (marigold); TE, treatment effectiveness (orange); OCM, other cause mortality (green)](figs/hiv_transition_matrix.png) - -##### - -![**Fig. S2.** Transition matrix schematic for HBV. Non-zero transition probabilities are indicated in blue for natural history transitions, yellow for treatment uptake transitions, orange for treatment effectiveness transitions, and green for other-cause mortality. Markov model constructed by first creating a transition matrix without treatment uptake or other-cause death; then adding in treatment uptake transitions while scaling other transitions such that each row still sums to 1; then adding in transitions to other-cause mortality with the same approach. Disease state names: `r disease_state_key_hbv`. Abbreviations: NH, natural history (blue); TU, treatment uptake (marigold); TE, treatment effectiveness (orange); OCM, other cause mortality (green)](figs/hbv_transition_matrix.png) - -##### - -![**Fig. S3.** Transition matrix schematic for HCV. Non-zero transition probabilities are indicated in blue for natural history transitions, yellow for treatment uptake transitions, orange for treatment effectiveness transitions, and green for other-cause mortality. Markov model constructed by first creating a transition matrix without treatment uptake or other-cause death; then adding in treatment uptake transitions while scaling other transitions such that each row still sums to 1; then adding in transitions to other-cause mortality with the same approach. Disease state names: `r disease_state_key_hcv`. Abbreviations: NH, natural history (blue); TU, treatment uptake (marigold); TE, treatment effectiveness (orange); OCM, other cause mortality (green)](figs/hcv_transition_matrix.png) - - - -![**Fig. S4.** Markov trace plot for HIV pediatric and adult cohorts. Disease state names: `r disease_state_key_hiv`.](figs/hiv_trace.png) - -##### - -![**Fig. S5.** Markov trace plot for HBV pediatric and adult cohorts. Disease state names: `r disease_state_key_hbv`.](figs/hbv_trace.png) - -##### - -![**Fig. S6.** Markov trace plot for HCV pediatric and adult cohorts. Disease state names: `r disease_state_key_hcv`.](figs/hcv_trace.png) - -##### - -![**Fig. S7.** Calibration plots for HIV natural history transition probabilities.](figs/HIV_calib_plot.png) diff --git a/.Rproj.user/0E787812/sources/prop/01D94364 b/.Rproj.user/0E787812/sources/prop/01D94364 deleted file mode 100644 index 1f134ec..0000000 --- a/.Rproj.user/0E787812/sources/prop/01D94364 +++ /dev/null @@ -1,6 +0,0 @@ -{ - "source_window_id": "", - "Source": "Source", - "cursorPosition": "538,247", - "scrollLine": "509" -} \ No newline at end of file diff --git a/.Rproj.user/0E787812/sources/prop/06BFB53C b/.Rproj.user/0E787812/sources/prop/06BFB53C deleted file mode 100644 index a737c72..0000000 --- a/.Rproj.user/0E787812/sources/prop/06BFB53C +++ /dev/null @@ -1,6 +0,0 @@ -{ - "source_window_id": "", - "Source": "Source", - "cursorPosition": "533,0", - "scrollLine": "503" -} \ No newline at end of file diff --git a/.Rproj.user/0E787812/sources/prop/0C8AD9ED b/.Rproj.user/0E787812/sources/prop/0C8AD9ED deleted file mode 100644 index ed7335c..0000000 --- a/.Rproj.user/0E787812/sources/prop/0C8AD9ED +++ /dev/null @@ -1,6 +0,0 @@ -{ - "source_window_id": "", - "Source": "Source", - "cursorPosition": "9,33", - "scrollLine": "0" -} \ No newline at end of file diff --git a/.Rproj.user/0E787812/sources/prop/0FD31CB6 b/.Rproj.user/0E787812/sources/prop/0FD31CB6 deleted file mode 100644 index 7b6949b..0000000 --- a/.Rproj.user/0E787812/sources/prop/0FD31CB6 +++ /dev/null @@ -1,6 +0,0 @@ -{ - "source_window_id": "", - "Source": "Source", - "cursorPosition": "437,29", - "scrollLine": "423" -} \ No newline at end of file diff --git a/.Rproj.user/0E787812/sources/prop/3ABBD303 b/.Rproj.user/0E787812/sources/prop/3ABBD303 deleted file mode 100644 index e362675..0000000 --- a/.Rproj.user/0E787812/sources/prop/3ABBD303 +++ /dev/null @@ -1,6 +0,0 @@ -{ - "source_window_id": "", - "Source": "Source", - "cursorPosition": "195,20", - "scrollLine": "171" -} \ No newline at end of file diff --git a/.Rproj.user/0E787812/sources/prop/3D094320 b/.Rproj.user/0E787812/sources/prop/3D094320 deleted file mode 100644 index 7e2a763..0000000 --- a/.Rproj.user/0E787812/sources/prop/3D094320 +++ /dev/null @@ -1,13 +0,0 @@ -{ - "source_window_id": "", - "Source": "Source", - "rmdVisualMode": "false", - "rmdVisualModeLocation": "31938:11380", - "rmdVisualWrapConfigured": "true", - "docOutlineVisible": "1", - "cursorPosition": "10,32", - "scrollLine": "0", - "last_setup_crc32": "B72F78111b2dfbf9", - "docOutlineSize": "206", - "ignored_words": "\n" -} \ No newline at end of file diff --git a/.Rproj.user/0E787812/sources/prop/3E13D097 b/.Rproj.user/0E787812/sources/prop/3E13D097 deleted file mode 100644 index 8641d5d..0000000 --- a/.Rproj.user/0E787812/sources/prop/3E13D097 +++ /dev/null @@ -1,6 +0,0 @@ -{ - "source_window_id": "", - "Source": "Source", - "cursorPosition": "234,0", - "scrollLine": "214" -} \ No newline at end of file diff --git a/.Rproj.user/0E787812/sources/prop/4BAF1CF2 b/.Rproj.user/0E787812/sources/prop/4BAF1CF2 deleted file mode 100644 index 05c2bc7..0000000 --- a/.Rproj.user/0E787812/sources/prop/4BAF1CF2 +++ /dev/null @@ -1,6 +0,0 @@ -{ - "source_window_id": "", - "Source": "Source", - "cursorPosition": "16,75", - "scrollLine": "0" -} \ No newline at end of file diff --git a/.Rproj.user/0E787812/sources/prop/66EF8138 b/.Rproj.user/0E787812/sources/prop/66EF8138 deleted file mode 100644 index d217a97..0000000 --- a/.Rproj.user/0E787812/sources/prop/66EF8138 +++ /dev/null @@ -1,7 +0,0 @@ -{ - "tempName": "Untitled1", - "source_window_id": "", - "Source": "Source", - "cursorPosition": "86,0", - "scrollLine": "53" -} \ No newline at end of file diff --git a/.Rproj.user/0E787812/sources/prop/87C82215 b/.Rproj.user/0E787812/sources/prop/87C82215 deleted file mode 100644 index 7906d8c..0000000 --- a/.Rproj.user/0E787812/sources/prop/87C82215 +++ /dev/null @@ -1,6 +0,0 @@ -{ - "source_window_id": "", - "Source": "Source", - "cursorPosition": "521,0", - "scrollLine": "486" -} \ No newline at end of file diff --git a/.Rproj.user/0E787812/sources/prop/8CAF6B7E b/.Rproj.user/0E787812/sources/prop/8CAF6B7E deleted file mode 100644 index 6ae9438..0000000 --- a/.Rproj.user/0E787812/sources/prop/8CAF6B7E +++ /dev/null @@ -1,10 +0,0 @@ -{ - "source_window_id": "", - "Source": "Source", - "cursorPosition": "113,16", - "scrollLine": "137", - "rmdVisualMode": "true", - "rmdVisualModeLocation": "12938:4241", - "rmdVisualWrapConfigured": "true", - "docOutlineVisible": "1" -} \ No newline at end of file diff --git a/.Rproj.user/0E787812/sources/prop/A7CE8168 b/.Rproj.user/0E787812/sources/prop/A7CE8168 deleted file mode 100644 index 1775c8a..0000000 --- a/.Rproj.user/0E787812/sources/prop/A7CE8168 +++ /dev/null @@ -1,7 +0,0 @@ -{ - "tempName": "Untitled1", - "source_window_id": "", - "Source": "Source", - "cursorPosition": "215,3", - "scrollLine": "163" -} \ No newline at end of file diff --git a/.Rproj.user/0E787812/sources/prop/AB09B3B2 b/.Rproj.user/0E787812/sources/prop/AB09B3B2 deleted file mode 100644 index a949dc9..0000000 --- a/.Rproj.user/0E787812/sources/prop/AB09B3B2 +++ /dev/null @@ -1,7 +0,0 @@ -{ - "tempName": "Untitled1", - "source_window_id": "", - "Source": "Source", - "cursorPosition": "513,0", - "scrollLine": "0" -} \ No newline at end of file diff --git a/.Rproj.user/0E787812/sources/prop/F3FA92E7 b/.Rproj.user/0E787812/sources/prop/F3FA92E7 deleted file mode 100644 index c37ccb3..0000000 --- a/.Rproj.user/0E787812/sources/prop/F3FA92E7 +++ /dev/null @@ -1,6 +0,0 @@ -{ - "source_window_id": "", - "Source": "Source", - "cursorPosition": "1098,0", - "scrollLine": "421" -} \ No newline at end of file diff --git a/.Rproj.user/0E787812/sources/prop/INDEX b/.Rproj.user/0E787812/sources/prop/INDEX deleted file mode 100644 index 897a15c..0000000 --- a/.Rproj.user/0E787812/sources/prop/INDEX +++ /dev/null @@ -1,14 +0,0 @@ -C%3A%2FUsers%2Falton%2FAppData%2FLocal%2FTemp%2FTemp1_SEIR_cohorts_calibration-master.zip%2FSEIR_cohorts_calibration-master%2FAppendix_A.Rmd="3E13D097" -G%3A%2FMy%20Drive%2FAKI%20and%20CKD%2FCKD%20prediction%2FCKD%20predict%20manuscript%20v1.Rmd="06BFB53C" -G%3A%2FMy%20Drive%2FProjects%2FZika2020report%2Fmanuscript%2Fzika2020_manuscript.Rmd="0C8AD9ED" -G%3A%2FMy%20Drive%2FProjects%2Fckd_prediction%2Fmanuscript%2Fckd_predict.Rmd="8CAF6B7E" -G%3A%2FMy%20Drive%2FProjects%2Fckd_prediction%2Fmanuscript%2Fmanuscript_template.Rmd="01D94364" -G%3A%2FMy%20Drive%2FProjects%2Fghana_hea%2FRscripts%2FMarkov%20models.R="3ABBD303" -G%3A%2FMy%20Drive%2FProjects%2Fghana_hea%2FRscripts%2Fghana_hea_model.R="87C82215" -G%3A%2FMy%20Drive%2FProjects%2Fghana_hea%2FRscripts%2Fmodel_functions.R="0FD31CB6" -G%3A%2FMy%20Drive%2FProjects%2Fghana_hea%2FRscripts%2Frun_model.R="AB09B3B2" -G%3A%2FMy%20Drive%2FProjects%2Fghana_hea%2Fmanuscript%2Fghana_hea.Rmd="3D094320" -G%3A%2FMy%20Drive%2FProjects%2Fghana_hea%2Fmanuscript%2Ftest.Rmd="66EF8138" -G%3A%2FMy%20Drive%2FProjects%2Fghana_hea%2Fscripts%2Fghana_hea_model.R="F3FA92E7" -G%3A%2FMy%20Drive%2FProjects%2Fghana_hea%2Ftest.Rmd="A7CE8168" -G%3A%2FMy%20Drive%2FProjects%2Fopioid_hem%2Fsankey_bupr_providers.R="4BAF1CF2" diff --git a/.Rproj.user/AFA017A7/pcs/files-pane.pper b/.Rproj.user/AFA017A7/pcs/files-pane.pper deleted file mode 100644 index 253e8fd..0000000 --- a/.Rproj.user/AFA017A7/pcs/files-pane.pper +++ /dev/null @@ -1,9 +0,0 @@ -{ - "path" : "G:/My Drive/Projects/ghana_hea/scripts", - "sortOrder" : [ - { - "ascending" : true, - "columnIndex" : 2 - } - ] -} \ No newline at end of file diff --git a/.Rproj.user/AFA017A7/pcs/source-pane.pper b/.Rproj.user/AFA017A7/pcs/source-pane.pper deleted file mode 100644 index 9b5f843..0000000 --- a/.Rproj.user/AFA017A7/pcs/source-pane.pper +++ /dev/null @@ -1,6 +0,0 @@ -{ - "activeTab" : 0, - "activeTabSourceWindow1" : 0, - "activeTabSourceWindow2" : 0, - "activeTabSourceWindow3" : 0 -} \ No newline at end of file diff --git a/.Rproj.user/AFA017A7/pcs/source-window.pper b/.Rproj.user/AFA017A7/pcs/source-window.pper deleted file mode 100644 index 106fd82..0000000 --- a/.Rproj.user/AFA017A7/pcs/source-window.pper +++ /dev/null @@ -1,11 +0,0 @@ -{ - "sourceWindowGeometry" : { - "w55pk1ohsjmll" : { - "height" : 1387, - "ordinal" : 3, - "width" : 2560, - "x" : 1919, - "y" : -472 - } - } -} \ No newline at end of file diff --git a/.Rproj.user/AFA017A7/pcs/windowlayoutstate.pper b/.Rproj.user/AFA017A7/pcs/windowlayoutstate.pper deleted file mode 100644 index a0b3a91..0000000 --- a/.Rproj.user/AFA017A7/pcs/windowlayoutstate.pper +++ /dev/null @@ -1,14 +0,0 @@ -{ - "left" : { - "panelheight" : 1328, - "splitterpos" : 269, - "topwindowstate" : "NORMAL", - "windowheight" : 1366 - }, - "right" : { - "panelheight" : 1328, - "splitterpos" : 592, - "topwindowstate" : "NORMAL", - "windowheight" : 1366 - } -} \ No newline at end of file diff --git a/.Rproj.user/AFA017A7/pcs/workbench-pane.pper b/.Rproj.user/AFA017A7/pcs/workbench-pane.pper deleted file mode 100644 index 443d7f5..0000000 --- a/.Rproj.user/AFA017A7/pcs/workbench-pane.pper +++ /dev/null @@ -1,6 +0,0 @@ -{ - "TabSet1" : 0, - "TabSet2" : 4, - "TabZoom" : { - } -} \ No newline at end of file diff --git a/.Rproj.user/AFA017A7/rmd-outputs b/.Rproj.user/AFA017A7/rmd-outputs deleted file mode 100644 index be5b8e7..0000000 --- a/.Rproj.user/AFA017A7/rmd-outputs +++ /dev/null @@ -1,9 +0,0 @@ -G:/My Drive/Projects/ghana_hea/manuscript/ghana_hea.docx -G:/My Drive/Projects/ghana_hea/manuscript/ghana_hea.docx -G:/My Drive/Projects/ghana_hea/manuscript/ghana_hea.docx -G:/My Drive/Projects/ghana_hea/manuscript/ghana_hea.docx - - - - - diff --git a/.Rproj.user/AFA017A7/saved_source_markers b/.Rproj.user/AFA017A7/saved_source_markers deleted file mode 100644 index 2b1bef1..0000000 --- a/.Rproj.user/AFA017A7/saved_source_markers +++ /dev/null @@ -1 +0,0 @@ -{"active_set":"","sets":[]} \ No newline at end of file diff --git a/.Rproj.user/AFA017A7/sources/per/t/903FD442 b/.Rproj.user/AFA017A7/sources/per/t/903FD442 deleted file mode 100644 index 0cefd94..0000000 --- a/.Rproj.user/AFA017A7/sources/per/t/903FD442 +++ /dev/null @@ -1,26 +0,0 @@ -{ - "collab_server" : "", - "contents" : "", - "created" : 1609524989883.000, - "dirty" : false, - "encoding" : "UTF-8", - "folds" : "8|30|70|0|\n73|65|135|0|\n136|42|277|0|\n278|38|308|0|\n309|64|343|0|\n344|66|352|0|\n353|44|392|0|\n461|71|488|0|\n489|71|515|0|\n", - "hash" : "453680568", - "id" : "903FD442", - "lastKnownWriteTime" : 1611686490, - "last_content_update" : 1611686490903, - "path" : "G:/My Drive/Projects/ghana_hea/scripts/ghana_hea_model.R", - "project_path" : "scripts/ghana_hea_model.R", - "properties" : { - "cursorPosition" : "949,0", - "scrollLine" : "888", - "source_window_id" : "" - }, - "read_only" : false, - "read_only_alternatives" : [ - ], - "relative_order" : 2, - "source_on_save" : false, - "source_window" : "", - "type" : "r_source" -} \ No newline at end of file diff --git a/.Rproj.user/AFA017A7/sources/per/t/903FD442-contents b/.Rproj.user/AFA017A7/sources/per/t/903FD442-contents deleted file mode 100644 index 2772acb..0000000 --- a/.Rproj.user/AFA017A7/sources/per/t/903FD442-contents +++ /dev/null @@ -1,949 +0,0 @@ -library(data.table) -library(readxl) -library(ggplot2) -library(mc2d) -theme_set(theme_bw()) - -### Functions -sim_markov <- function(init, t_matrix, age_start, all_cause_mort, - costs){ - #t matrix is missing death, we add in at each step - - #Simulate by year from age_start to age 95 - iters <- 95 - age_start + 1 - nstates <- nrow(t_matrix)+1 - state_names <- c(colnames(t_matrix), "death") - - markov_trace <- matrix( nrow = iters, ncol = length(state_names), - dimnames = list("Age" = age_start:95, - "State" = state_names)) - - cost_by_state_trace <- matrix( nrow = iters-1, ncol = length(state_names), - dimnames = list("Age" = age_start:94, - "State" = state_names)) - # colnames(markov_trace) <- c(colnames(t_matrix), "death") - # rownames(markov_trace) <- age_start:95 - - # First row has initial condition - markov_trace[as.character(age_start), ] <- init - - #Calculate costs and store here - tot_cost_by_year <- matrix(0, nrow = iters, ncol = 1)#, - #dimnames = list("Age" = age_start:95, NA)) - - cost_mults <- structure(numeric(length(state_names)), names = state_names) - - for(state in state_names){ - cost_mults[state] <- unlist(costs[state]) - } - - for (i in 1:(iters-1)){ - curr_age = age_start+i - #get probability of all-cause death - p_death <- all_cause_mort[findInterval(curr_age, all_cause_mort$age)]$p_death - #Create temporary transition matrix that encorporates probability of all cause death - # and down-weights all other transitions so it still sums to 1 - t_matrix_temp <- rbind(cbind(t_matrix*(1-p_death), death = p_death), death = c(rep(0, ncol(t_matrix)), 1)) - #Correct the death for cause column (HIV_death, HCV_death, HBV death). - # Must always be last row/col before death added - t_matrix_temp[nrow(t_matrix_temp) - 1, ncol(t_matrix_temp) - 1 ] <- 1 - t_matrix_temp[nrow(t_matrix_temp) - 1, ncol(t_matrix_temp)] <- 0 - - #Apply markovian transition - current_dist <- markov_trace[i , ] - markov_trace[i+1, ] <- current_dist %*% t_matrix_temp - - prop_from_to <- (matrix(rep(current_dist, each = nstates), nrow = nstates, byrow = TRUE) * - t_matrix_temp) - cost_by_state <- (0.5*rowSums(prop_from_to) + 0.5*colSums(prop_from_to))*cost_mults - #Calculate costs at timestep using cycle tree correction - tot_cost_by_year[i, ] <- sum(cost_by_state) - - cost_by_state_trace[i, ] <- cost_by_state - - } - - tot_costs_by_year <- rowSums(cost_by_state_trace) - np_cost <- sum(tot_costs_by_year * 1.03^(0:(-1*(iters-2)))) - - return(list("markov_trace" = markov_trace, "tot_cost_by_year" = tot_cost_by_year, - "np_cost" = np_cost, "cost_by_state_trace" = cost_by_state_trace)) -} - - -gen_t_matrix <- function(transitions, disease, cohort = "Adult"){ - transitions <- transitions[From != "init"] - - #State names (excludes all cause death; that's added in Sim_Markov) - states <- list(hcv = c('acute_SC', 'acute_T', 'no_infection', 'chronic_SC', 'chronic_T', - 'chronic_TF', 'CC_SC', 'CC_T', 'CC_TF', 'DCC_SC', 'DCC_T', 'DCC_TF', - 'HCC', 'HCV_death'), - hbv = c('acute_SC', 'acute_CM', 'imm_tol_SC', 'imm_tol_CM', 'carrier_SC', - 'carrier_CM', 'imm_react_SC', 'imm_react_T', 'chronic_SC', - 'chronic_CM', 'chronic_T', 'CC_SC', 'CC_T', 'DCC_SC', 'DCC_T', 'HCC', - 'no_infection', 'HBV_death'), - hiv = c('HIV_SC_1', 'HIV_SC_2', 'HIV_SC_3', 'ART_1', 'ART_2', 'ART_3', 'ART_4', - 'AIDS_SC', 'AIDS_ART_1', 'AIDS_ART_2', 'HIV_death')) - - #Create empty transition vector - t_matrix <- matrix(0L, nrow = length(states[[disease]]), ncol = length(states[[disease]]), - dimnames = list("From" = states[[disease]], - "To" = states[[disease]])) - - - - #Load in natural history parameters and treatment effectiveness - t_nat_hist_params <- transitions[Disease == toupper(disease) & Category != "Treatment uptake" & - `Base case` != "#" & Cohort %in% c("Both", cohort)] - t_nat_hist_params[ , value := as.numeric(value)] - for (row in 1:nrow(t_nat_hist_params)){ - t_matrix[t_nat_hist_params[row, From], - t_nat_hist_params[row, To]] <- t_nat_hist_params[row, value] - } - - #If HCV, handle special case of acute AVT treatment failure - if(disease == "hcv"){ - t_matrix["acute_T", "no_infection"] <- 1 - (1-t_matrix["acute_SC", "no_infection"])*(1-t_matrix["acute_T", "no_infection"]) - } - - #Handle remainders for natural history model - t_nat_hist_remainders <- transitions[Disease == toupper(disease) & Category != "Treatment uptake" & - `Base case` == "#" & Cohort %in% c("Both", cohort)] - for (row in 1:nrow(t_nat_hist_remainders)){ - t_matrix[t_nat_hist_remainders[row, From], - t_nat_hist_remainders[row, To]] <- 1 - sum(t_matrix[t_nat_hist_remainders[row, From], ]) - } - - #Factor in treatment uptake - t_treatment <- transitions[Disease == toupper(disease) & Category == "Treatment uptake" & - Cohort %in% c("Both", cohort)] - t_treatment[ , value := as.numeric(value)] - for (row in 1:nrow(t_treatment)){ - t_matrix[t_treatment[row, From], ] <- t_matrix[t_treatment[row, From], ]*(1-t_treatment[row, value]) - t_matrix[t_treatment[row, From], - t_treatment[row, To]] <- t_treatment[row, value] - } - - - - - - t_matrix - rowSums(t_matrix) - - - return(t_matrix) -} -calc_disease_state_costs <- function(prm){ - cost_mult_acute_from_IPmort <- (1 - prm$p_IPmort + prm$p_IPmort*prm$p_acute_c_mort) - - - c_disease_states <- list() - c_disease_states$sep <- (prm$c_IP_day*prm$sep_d_IP_days + - prm$sep_p_meds*prm$sep_c_meds)*cost_mult_acute_from_IPmort - - c_disease_states$mal <- (prm$c_IP_day*prm$mal_p_IP_days*prm$mal_d_IP_days + - prm$mal_p_OP*prm$mal_n_OP*prm$mal_c_OP+ - prm$mal_c_diag+prm$mal_c_meds)*cost_mult_acute_from_IPmort - c_disease_states$ftr <- (prm$ftr_c_meds+ - prm$ftr_n_IP_days*prm$ftr_p_IP_days*prm$c_IP_day)*cost_mult_acute_from_IPmort - c_disease_states$syp <- (prm$syp_p_diag*(prm$syp_c_diag+prm$syp_c_meds))*cost_mult_acute_from_IPmort - - #HIV - c_HIV_states <- list() - c_HIV_states$HIV_SC_1 <- 0 - c_HIV_states$HIV_SC_2 <- 0 - c_HIV_states$HIV_SC_3 <- 0 - c_HIV_states$ART_1 <- prm$hiv_cost_ART1 - c_HIV_states$ART_2 <- prm$hiv_cost_ART2 - c_HIV_states$ART_3 <- prm$hiv_cost_ART3 - c_HIV_states$ART_4 <- prm$hiv_cost_ART4 - c_HIV_states$AIDS_SC <- prm$hiv_cost_AIDS_SC - c_HIV_states$AIDS_ART_1 <- prm$hiv_cost_AIDS_ART_1 - c_HIV_states$AIDS_ART_2 <- prm$hiv_cost_AIDS_ART_2 - c_HIV_states$HIV_death <- 0 - c_HIV_states$death <- 0 - - #HBV - c_HBV_states <- list() - c_HBV_states$acute_SC <- 0 - c_HBV_states$acute_CM <- (2*prm$hbv_c_HBsAg+prm$hbv_c_profile+ - prm$hbv_c_DNAtest+prm$hep_c_OP_extensive+ - prm$hep_c_OP_brief) - c_HBV_states$no_infection <- 0 - c_HBV_states$imm_tol_CM <- (prm$hep_c_OP_extensive+prm$hbv_c_HBsAg+ - prm$hbv_c_profile+prm$hbv_c_DNAtest+prm$hep_c_lft) - c_HBV_states$imm_tol_SC <- 0 - c_HBV_states$carrier_CM <- 0 - c_HBV_states$carrier_SC <- 0 - c_HBV_states$imm_react_T <- (prm$hep_c_OP_extensive+prm$hbv_c_HBsAg+ - prm$hbv_c_profile+prm$hbv_c_antivirals+ - prm$hbv_c_DNAtest+prm$hep_c_lft) - c_HBV_states$imm_react_SC <- 0 - c_HBV_states$chronic_SC <- 0 - c_HBV_states$chronic_CM <- (prm$hep_c_lft+prm$hep_c_BUNCE+ - prm$hep_c_FBC+prm$hep_c_alphafeto+ - prm$hep_c_ab_ultrasono+ - prm$hep_c_OP_brief*prm$hbv_n_OP_chronic+ - prm$hbv_c_profile + prm$hbv_c_DNAtest) - c_HBV_states$chronic_T <- (prm$hep_c_lft+prm$hep_c_BUNCE+ - prm$hep_c_FBC+prm$hep_c_alphafeto+ - prm$hep_c_ab_ultrasono+ - prm$hep_c_OP_brief*prm$hbv_n_OP_chronicT+ - prm$hbv_c_antivirals+prm$hbv_c_profile + prm$hbv_c_DNAtest) - c_HBV_states$CC_SC <- 0 - c_HBV_states$CC_T <- (prm$hep_c_lft + prm$hep_c_INR + prm$hep_c_BUNCE + - prm$hep_c_FBC + 2*prm$hep_c_alphafeto + - 2*prm$hep_c_ab_ultrasono + 2*prm$hbv_c_DNAtest + - prm$hep_c_OP_brief*prm$hbv_n_OP_CCT+ - prm$hbv_c_antiviralsCirrhosis) - c_HBV_states$DCC_SC <- 0 - c_HBV_states$DCC_T <- (prm$hep_c_lft + prm$hep_c_INR + prm$hep_c_BUNCE + - prm$hep_c_FBC + 2*prm$hep_c_alphafeto + - 2*prm$hep_c_ab_ultrasono + 2*prm$hbv_c_DNAtest + - 2*prm$hep_c_band_lig + prm$hep_c_spiro + - prm$hep_c_fluro + - prm$hep_c_OP_brief*prm$hbv_n_OP_DCCT + - prm$hbv_c_antiviralsCirrhosis) - - c_HBV_states$HCC <- (prm$hep_c_lft + prm$hep_c_INR + prm$hep_c_FBC + - prm$hep_c_alphafeto + prm$hep_c_triphas_CT + - prm$hep_c_band_lig + prm$hep_c_sorafenib + - prm$hep_c_chemoembo) - c_HBV_states$HBV_death <- 0 - c_HBV_states$death <- 0 - - c_HCV_states <- list() - c_HCV_states$acute_SC <- 0 - c_HCV_states$acute_T <- (prm$hcv_c_screen + 2*prm$hcv_c_rna_test + - prm$hcv_c_genotype + - prm$hep_c_lft + prm$hep_c_BUNCE + - prm$hcv_c_antivirals+ - prm$hep_c_OP_brief*prm$hcv_n_OP_acuteT) - - - c_HCV_states$no_infection <- 0 - c_HCV_states$chronic_SC <- 0 - c_HCV_states$chronic_T <- (prm$hep_c_lft + prm$hep_c_BUNCE + - prm$hep_c_FBC + prm$hep_c_alphafeto + - prm$hep_c_ab_ultrasono + - prm$hcv_c_genotype + 2*prm$hcv_c_rna_test+ - prm$hcv_n_OP_chronic*prm$hep_c_OP_brief+ - prm$hcv_c_antivirals) - c_HCV_states$chronic_TF <- (prm$hep_c_lft + prm$hep_c_BUNCE + - prm$hep_c_FBC + prm$hep_c_alphafeto + - prm$hep_c_ab_ultrasono + - prm$hcv_c_genotype + 2*prm$hcv_c_rna_test+ - prm$hcv_n_OP_chronic*prm$hep_c_OP_brief) - - c_HCV_states$CC_SC <- 0 - c_HCV_states$CC_T <- (prm$hep_c_lft + prm$hep_c_INR + prm$hep_c_BUNCE + - prm$hep_c_FBC + 2*prm$hep_c_alphafeto + - 2*prm$hep_c_ab_ultrasono + 2*prm$hcv_c_rna_test + - prm$hcv_c_genotype+ - prm$hcv_n_OP_cc*prm$hep_c_OP_brief+ - prm$hcv_c_antivirals) - c_HCV_states$CC_TF <- (prm$hep_c_lft + prm$hep_c_INR + prm$hep_c_BUNCE + - prm$hep_c_FBC + 2*prm$hep_c_alphafeto + - 2*prm$hep_c_ab_ultrasono + 2*prm$hcv_c_rna_test + - prm$hcv_c_genotype+ - prm$hcv_n_OP_cc*prm$hep_c_OP_brief) - c_HCV_states$DCC_SC <- 0 - - c_HCV_states$DCC_T <- (prm$hep_c_lft + prm$hep_c_INR + prm$hep_c_BUNCE + - prm$hep_c_FBC + 2*prm$hep_c_alphafeto + - 2*prm$hep_c_ab_ultrasono + 3*prm$hcv_c_rna_test + - 2*prm$hep_c_band_lig + prm$hep_c_spiro + - prm$hcv_c_genotype+ - prm$hep_c_fluro + prm$hcv_n_OP_dcc*prm$hep_c_OP_brief+ - prm$hcv_c_antiviral_dcc) - c_HCV_states$DCC_TF <- (prm$hep_c_lft + prm$hep_c_INR + prm$hep_c_BUNCE + - prm$hep_c_FBC + 2*prm$hep_c_alphafeto + - 2*prm$hep_c_ab_ultrasono + 3*prm$hcv_c_rna_test + - 2*prm$hep_c_band_lig + prm$hep_c_spiro + - prm$hcv_c_genotype+ - prm$hep_c_fluro + prm$hcv_n_OP_dcc*prm$hep_c_OP_brief) - - c_HCV_states$HCC <- (prm$hep_c_lft + prm$hep_c_INR + prm$hep_c_FBC + - prm$hep_c_alphafeto + prm$hep_c_triphas_CT + - prm$hep_c_band_lig + prm$hep_c_sorafenib + - prm$hep_c_chemoembo) - c_HCV_states$HCV_death <- 0 - c_HCV_states$death <- 0 - - c_disease_states$HIV <- c_HIV_states - c_disease_states$HCV <- c_HCV_states - c_disease_states$HBV <- c_HBV_states - return(c_disease_states) -} -rtriang<- function(mean, lb, ub, n=1){ - mode = 3*mean - lb - ub - if (mode < lb){ - print(paste0( - "Cannot achieve desired expected value with lower bound of ", lb, "." - )) - lb = (3*mean - ub)/2 - mode=lb - print(paste0( - "Reset lb to ", lb, "." - )) - } else if (mode > ub) { - print(paste0( - "Cannot achieve desired expected value with upper bound of ", ub, "." - )) - ub = (3*mean - lb)/2 - mode=ub - print(paste0( - "Reset upper bound to ", ub, "." - )) - } - - Fmode <- (mode - lb)/(ub - lb) - U <- runif(n) - rtris <- ifelse(U < Fmode, - lb + (U*(ub - lb)*(mode - lb))^.5, - ub - ((1-U)*(ub - lb)*(ub - mode))^.5 - ) - - return(rtris) -} -rpert_mean<- function(mean, lb, ub, n=1, adjust_bounds = FALSE){ - mode = (6*mean - lb - ub)/4 - if (adjust_bounds == TRUE){ - if (mode < lb){ - print(paste0( - #"Cannot achieve desired expected value with upper bound of ", ub, "." - )) - ub = 6*mean - 5*lb - mode=lb - print(paste0( - #"Reset upper bound to ", ub, "." - )) - } else if (mode > ub) { - print(paste0( - #"Cannot achieve desired expected value with lower bound of ", lb, "." - )) - lb = 6*mean - 5*ub - mode=ub - print(paste0( - #"Reset lower bound to ", lb, "." - )) - } - } else { - if (mode < lb){ - mode = lb - #print(paste0("Set mode to lower bound. Mean will be ", (5*lb+ub)/6, - # "instead of ", mean)) - } else if (mode > ub) { - mode = ub - #print(paste0("Set mode to lower bound. Mean will be ", (5*ub+lb)/6, - # "instead of ", mean)) - } - } - return(rpert(n, lb, mode, ub)) -} -sample_params<- function(mean, lb,ub, dist,Param1, Param2=Param2){ - if(dist == "PERT" & !is.na(dist)){ - return(rpert_mean(mean, lb, ub)) - } else if (dist == "Beta" & !is.na(dist) ) { - return(rbeta(1, Param1, Param2)) - } else{ - return(mean) - } -} -calc_outcomes <- function(costs_np, params){ - aes <- c("hiv", "sep", "hcv", "hbv", - "syp", "mal", "ftr") - outcomes <- list() - - outcomes["prt_cost"] <- params$c_PI*(1+params$p_waste)*params$n_comp - - for (ae in aes){ - cases_no_prt <- (params$n_comp* - params[[paste0("bl_",ae)]]* - params[[paste0("p_clin_",ae)]]) - - cases_prt <- cases_no_prt/params[[paste0("rred_",ae)]] - - cases_reduced <- cases_no_prt - cases_prt - - burden_no_prt <- cases_no_prt*costs_np[[ae]] - burden_prt <- cases_prt*costs_np[[ae]] - burden_reduced <- cases_reduced*costs_np[[ae]] - - outcomes[[ae]]<- list( - "cases_no_prt" = cases_no_prt, - "cases_prt" = cases_prt, - "cases_reduced" = cases_reduced, - "burden_no_prt" = burden_no_prt, - "burden_prt" = burden_prt, - "burden_reduced" = burden_reduced - ) - } - - dt_outcomes <- data.table(rbind(unlist(outcomes))) - dt_outcomes[ , all_ae.cases_no_prt := sum(.SD), .SDcols = paste0(aes,".cases_no_prt")] - dt_outcomes[ , all_ae.cases_prt := sum(.SD), .SDcols = paste0(aes,".cases_prt")] - dt_outcomes[ , all_ae.cases_reduced := sum(.SD), .SDcols = paste0(aes,".cases_reduced")] - dt_outcomes[ , all_ae.burden_no_prt := sum(.SD), .SDcols = paste0(aes,".burden_no_prt")] - dt_outcomes[ , all_ae.burden_prt := sum(.SD), .SDcols = paste0(aes,".burden_prt")] - dt_outcomes[ , all_ae.burden_reduced := sum(.SD), .SDcols = paste0(aes,".burden_reduced")] - dt_outcomes[ , net_savings := all_ae.burden_reduced - prt_cost] - return(dt_outcomes) -} -calc_univariate_change <- function(param, value, dt_transitions, dt_microcost_params, dt_other_params){ - #RUN BASECASE - dt_transitions[ , value := `Base case`] - bc_microcost_params <- as.list(dt_microcost_params$`Base case`) - names(bc_microcost_params) <- dt_microcost_params$rname - params <- as.list(unlist(dt_other_params[ , `Base case`])) - names(params) <- dt_other_params$rname - - - if(param %in% dt_transitions$rname){ - dt_transitions[rname == param]$value <- value - } else if (param %in% names(bc_microcost_params)){ - bc_microcost_params[[param]] <- value - } else if (param %in% names(params)){ - params[[param]] <- value - } else { - print(paste0("error: ", param, " not found.")) - return(NA) - } - - costs_states <- calc_disease_state_costs(bc_microcost_params) - - #Get costs for chronic viruses from running Markov models - costs_states$HIV_np <- hiv_calc_np_cost(costs_states, dt_transitions, params, bc_microcost_params$p_IPmort) - costs_states$HCV_np <- hcv_calc_np_cost(costs_states, dt_transitions, params, bc_microcost_params$p_IPmort) - costs_states$HBV_np <- hbv_calc_np_cost(costs_states, dt_transitions, params, bc_microcost_params$p_IPmort) - - - #Format costs_np for model - ae_acute <- c("sep", "syp", "mal", "ftr") - costs_np <- costs_states[ae_acute] - costs_np$hiv <- costs_states$HIV_np - costs_np$hbv <- costs_states$HBV_np - costs_np$hcv <- costs_states$HCV_np - - return(calc_outcomes(costs_np, params)$net_savings) -} -hiv_calc_np_cost<- function(state_costs, markov_probs, params, IPmort){ - states_hiv <- c('HIV_SC_1', 'HIV_SC_2', 'HIV_SC_3', 'ART_1', 'ART_2', 'ART_3', 'ART_4', - 'AIDS_SC', 'AIDS_ART_1', 'AIDS_ART_2', 'HIV_death') - - #Create init vector with initial distribution - #Create init vector with initial distribution - p_ART_init <- as.numeric(markov_probs[Disease=="HIV" & From == "init" & To == "ART_1", value]) - init_hiv <- rep(0, length(states_hiv)+1) - names(init_hiv) <- c(states_hiv,"death") - init_hiv["ART_1"] <- p_ART_init - init_hiv["HIV_SC_1"] <- 1-p_ART_init - - - #Transition matrices - t_hiv_peds <- gen_t_matrix(markov_probs, "hiv", "Pediatric") - t_hiv_adult <- gen_t_matrix(markov_probs, "hiv", "Adult") - #Run markov model - HIV_peds <- sim_markov(init_hiv, t_hiv_peds, - age_start=5, - all_cause_mort = all_cause_mort, - costs = state_costs$HIV - ) - HIV_adult <- sim_markov(init_hiv, t_hiv_adult, - age_start=40, - all_cause_mort = all_cause_mort, - costs = state_costs$HIV) - #Take weighted average of peds and adult - return((params$p_peds*HIV_peds$np_cost + - (1-params$p_peds)*HIV_adult$np_cost)*(1-IPmort)) - -} -hcv_calc_np_cost<- function(state_costs, markov_probs, params, IPmort){ - states_hcv <- c('acute_SC', 'acute_T', 'no_infection', 'chronic_SC', 'chronic_T', - 'chronic_TF', 'CC_SC', 'CC_T', 'CC_TF', 'DCC_SC', 'DCC_T', 'DCC_TF', - 'HCC', 'HCV_death') - - #Create init vector with initial distribution - p_acute_T <- as.numeric(markov_probs[Disease=="HCV" & From == "init" & To == "acute_T", value]) - init_hcv <- c(1-p_acute_T, p_acute_T, rep(0, length(states_hcv)-1)) - names(init_hcv) <- c(states_hcv,"death") - - #Transition matrices - t_hcv <- gen_t_matrix(markov_probs, "hcv") - #Run markov model - HCV_peds <- sim_markov(init_hcv, t_hcv, - age_start=5, - all_cause_mort = all_cause_mort, - costs = costs_states$HCV - ) - HCV_adult <- sim_markov(init_hcv, t_hcv, - age_start=40, - all_cause_mort = all_cause_mort, - costs = costs_states$HCV) - - #Take weighted average of peds and adult - return((params$p_peds*HCV_peds$np_cost + - (1-params$p_peds)*HCV_adult$np_cost)*(1-IPmort)) - -} -hbv_calc_np_cost<- function(state_costs, markov_probs, params, IPmort){ - states_hbv <- c('acute_SC', 'acute_CM', 'imm_tol_SC', 'imm_tol_CM', 'carrier_SC', - 'carrier_CM', 'imm_react_SC', 'imm_react_T', 'chronic_SC', - 'chronic_CM', 'chronic_T', 'CC_SC', 'CC_T', 'DCC_SC', 'DCC_T', 'HCC', - 'no_infection', 'HBV_death') - - #Create init vector with initial distribution - p_acute_CM <- as.numeric(markov_probs[Disease=="HBV" & From == "init" & To == "acute_CM", value]) - init_hbv <- c(1-p_acute_CM, p_acute_CM, rep(0, length(states_hbv)-1)) - #Transition matrices - t_hbv <- gen_t_matrix(markov_probs, "hbv") - #Run markov model - HBV_peds <- sim_markov(init_hbv, t_hbv, - age_start=5, - all_cause_mort = all_cause_mort, - costs = costs_states$HBV - ) - - - HBV_adult <- sim_markov(init_hbv, t_hbv, - age_start=40, - all_cause_mort = all_cause_mort, - costs = costs_states$HBV) - #Take weighted average of peds and adult - return((params$p_peds*HBV_peds$np_cost + - (1-params$p_peds)*HBV_adult$np_cost)*(1-IPmort)) -} -calc_costs_by_state <- function(cost_by_state_trace, cohort, disease_state_costs, disease){ - return( - dt_costs_by_state <- data.table( - "Disease" = disease, - "Disease state" = colnames(cost_by_state_trace), - "Annual cost" = disease_state_costs[colnames(cost_by_state_trace)], - "Cohort" = cohort, - "Undiscounted Lifetime cost" = colSums(cost_by_state_trace), - "Net present lifetime cost" = colSums(cost_by_state_trace * 1.03^(0:(-1*(nrow(cost_by_state_trace)-1)))) - ) - ) -} - -## Data from file -all_cause_mort <- fread("./data/ghana_allcause_mort.csv") -dt_transitions <- data.table(read_excel("./data/Ghana_hea_parameters.xlsx", sheet = "Markov_probs")) -# transitions <- cbind(dt_transitions) -# transitions[ , value := `Base case`] -dt_microcost_params <- data.table(read_excel("./data/Ghana_hea_parameters.xlsx", sheet = "Microcost_params")) -dt_other_params <- data.table(read_excel("./data/Ghana_hea_parameters.xlsx", sheet = "other_params")) - -# # # # # -# RUN BASECASE ################# -dt_transitions[ , value := `Base case`] -bc_microcost_params <- as.list(dt_microcost_params$`Base case`) -names(bc_microcost_params) <- dt_microcost_params$rname -costs_states <- calc_disease_state_costs(bc_microcost_params) - -#Get other params -params <- as.list(unlist(dt_other_params[ , `Base case`])) -names(params) <- dt_other_params$rname - -#Get costs for chronic viruses from running Markov models -costs_states$HIV_np <- hiv_calc_np_cost(costs_states, dt_transitions, params, bc_microcost_params$p_IPmort) -costs_states$HCV_np <- hcv_calc_np_cost(costs_states, dt_transitions, params, bc_microcost_params$p_IPmort) -costs_states$HBV_np <- hbv_calc_np_cost(costs_states, dt_transitions, params, bc_microcost_params$p_IPmort) - - -#Format costs_np for model -ae_acute <- c("sep", "syp", "mal", "ftr") -costs_np <- costs_states[ae_acute] -costs_np$hiv <- costs_states$HIV_np -costs_np$hbv <- costs_states$HBV_np -costs_np$hcv <- costs_states$HCV_np - -dt_bc_outcomes <- calc_outcomes(costs_np, params) -dt_bc_costs <- rbind(unlist(costs_states)) - -fwrite(dt_bc_costs, "./results/BC_costs.csv") -fwrite(dt_bc_outcomes, "./results/BC_outcomes.csv") - -# # # # # -# RUN PSA ################# - -n_iter = 10000 - -for(iter in 1:n_iter){ - - #Generate microcost inputs from PERT distribution - microcost_params <- as.list(unlist(dt_microcost_params[ , sample_params(mean = `Base case`, lb = Low, ub = High, dist = Distn, Param1=Param1, Param2=Param2), by=rname]$V1)) - names(microcost_params) <- dt_microcost_params$rname - - #Generate other params from indicated distribution - params <- as.list(unlist(dt_other_params[ , sample_params(mean = `Base case`, lb = Low, ub = High, dist = Distn, Param1=Param1, Param2=Param2), by=rname]$V1)) - names(params) <- dt_other_params$rname - - #Generate Markov prob inputs drawn from distributions - markov_probs_not_varied <- dt_transitions[is.na(Low), ] - markov_probs_not_varied[ , value := `Base case`] - markov_probs_varied <- dt_transitions[!is.na(Low), ] - markov_probs_varied[, `Base case` := as.numeric(`Base case`)] - markov_probs_varied[, value := sample_params(mean = `Base case`, lb = Low, ub = High, dist = Distn, Param1=Param1, Param2=Param2), by=1:nrow(markov_probs_varied)] - markov_probs <- rbind(markov_probs_not_varied, markov_probs_varied) - - - #Calculate disease state costs - costs_states <- calc_disease_state_costs(microcost_params) - - #Run Markov models - costs_states$HIV_np <- hiv_calc_np_cost(costs_states, markov_probs, params, microcost_params$p_IPmort) - costs_states$HCV_np <- hcv_calc_np_cost(costs_states, markov_probs, params, microcost_params$p_IPmort) - costs_states$HBV_np <- hbv_calc_np_cost(costs_states, markov_probs, params, microcost_params$p_IPmort) - - #Format costs_np for model - ae_acute <- c("sep", "syp", "mal", "ftr") - costs_np <- costs_states[ae_acute] - costs_np$hiv <- costs_states$HIV_np - costs_np$hbv <- costs_states$HBV_np - costs_np$hcv <- costs_states$HCV_np - - dt_outcomes <- calc_outcomes(costs_np, params) - - - #Add inputs and outputs to data.frames - if(iter==1){ - dt_PSA_microcost <- as.data.table(microcost_params) - dt_PSA_params <- as.data.table(params) - dt_psa_costs <- data.table(rbind(unlist(costs_states))) - dt_psa_outcomes <- dt_outcomes - - - } else{ - dt_PSA_microcost <- rbind(dt_PSA_microcost, - as.data.table(microcost_params)) - dt_PSA_params <- rbind(dt_PSA_params, - as.data.table(params)) - dt_psa_costs <- rbind(dt_psa_costs, - rbind(unlist(costs_states))) - dt_psa_outcomes <- rbind(dt_psa_outcomes, - dt_outcomes) - } - if (iter %% 100 == 0) {print(paste0("Finished iter ", iter))} -} - - - - -fwrite(dt_PSA_microcost, "./results/PSA_microcost.csv") -fwrite(dt_PSA_params, "./results/PSA_params.csv") -fwrite(dt_psa_costs, "./results/PSA_costs.csv") -fwrite(dt_psa_outcomes, "./results/PSA_outcomes.csv") -#costs <- costs_states$HBV - - - -# # # # -# Univariate sensitivity analysis ########### - -#Form datatable with all parameters -dt_other_params[ , Param_disp := ifelse(is.na(Disease), Parameter, paste0(Disease, " ", Parameter))] -dt_microcost_params[ , Param_disp := ifelse(Disease=="General", paste0(Category,", ",Parameter), paste0(Disease, " ", Category,", ",Parameter))] -dt_transitions[ , rname := paste0("p_",Disease,"_",From,"_",To,"_",Cohort)] -dt_transitions[ , Param_disp := paste0(Disease, " ", From_disp," to ", To_disp)] -dt_transitions_params <- dt_transitions[!is.na(Low)] - -dt_univ <- rbind( - dt_other_params[ , c("rname", "Param_disp", "Base case", "Low", "High")], - dt_microcost_params[ , c("rname", "Param_disp", "Base case", "Low", "High")], - dt_transitions_params[ , c("rname", "Param_disp", "Base case", "Low", "High")], - use.names=FALSE -) - - - -dt_univ[, net_savings_low := calc_univariate_change(rname, Low, dt_transitions, dt_microcost_params, dt_other_params), - by = rname] -dt_univ[, net_savings_high := calc_univariate_change(rname, High, dt_transitions, dt_microcost_params, dt_other_params), - by = rname] - -dt_univ[ , abs_net_savings_range := abs(net_savings_high - net_savings_low)] - - -dt_univ <- dt_univ[order(-abs_net_savings_range)] - -fwrite(dt_univ, "./results/univ_sens_analysis.csv") - -# # # # # -# Analysis of Markov models ############# -# # # # # -#Markov trace diagrams -dt_transitions[ , value := `Base case`] -bc_microcost_params <- as.list(dt_microcost_params$`Base case`) -names(bc_microcost_params) <- dt_microcost_params$rname -costs_states <- calc_disease_state_costs(bc_microcost_params) - -#Generate other params from indicated distribution -params <- as.list(unlist(dt_other_params[ , `Base case`])) -names(params) <- dt_other_params$rname - -#Get costs for chronic viruses from running Markov models -costs_states$HIV_np <- hiv_calc_np_cost(costs_states, dt_transitions, params, bc_microcost_params$p_IPmort) -costs_states$HCV_np <- hcv_calc_np_cost(costs_states, dt_transitions, params, bc_microcost_params$p_IPmort) -costs_states$HBV_np <- hbv_calc_np_cost(costs_states, dt_transitions, params, bc_microcost_params$p_IPmort) -# HIV - -states_hiv <- c('HIV_SC_1', 'HIV_SC_2', 'HIV_SC_3', 'ART_1', 'ART_2', 'ART_3', 'ART_4', - 'AIDS_SC', 'AIDS_ART_1', 'AIDS_ART_2', 'HIV_death') - -#Create init vector with initial distribution -p_ART_init <- as.numeric(markov_probs[Disease=="HIV" & From == "init" & To == "ART_1", value]) -init_hiv <- rep(0, length(states_hiv)+1) -names(init_hiv) <- c(states_hiv,"death") -init_hiv["ART_1"] <- p_ART_init -init_hiv["HIV_SC_1"] <- 1-p_ART_init - - -t_hiv_peds <- gen_t_matrix(markov_probs, "hiv", "Pediatric") -t_hiv_adult <- gen_t_matrix(markov_probs, "hiv", "Adult") - - -HIV_peds_bc <- sim_markov(init_hiv, t_hiv_peds, - age_start=5, - all_cause_mort = all_cause_mort, - costs = costs_states$HIV - ) - - -HIV_adult_bc <- sim_markov(init_hiv, t_hiv_adult, - age_start=40, - all_cause_mort = all_cause_mort, - costs = costs_states$HIV) - -HIV_peds_trace <- data.table(HIV_peds_bc$markov_trace, keep.rownames = TRUE) -HIV_peds_trace[ , Age := as.numeric(rn)] -HIV_peds_trace[ , noART := HIV_SC_1+HIV_SC_2+HIV_SC_3] -HIV_peds_trace[ , ART := ART_1+ART_2+ART_3+ART_4] -HIV_peds_trace <- HIV_peds_trace[ , c("Age", "noART", "ART", "AIDS_SC", "HIV_death", "death")] - - -HIV_peds_trace_melt <- melt(HIV_peds_trace, - id.vars = c("Age"), variable.name = "Disease state", - value.name = "Percent of cohort") - -HIV_adult_trace <- data.table(HIV_adult_bc$markov_trace, keep.rownames = TRUE) -HIV_adult_trace[ , Age := as.numeric(rn)] -HIV_adult_trace[ , noART := HIV_SC_1+HIV_SC_2+HIV_SC_3] -HIV_adult_trace[ , ART := ART_1+ART_2+ART_3+ART_4] -HIV_adult_trace <- HIV_adult_trace[ , c("Age", "noART", "ART", "AIDS_SC", "HIV_death", "death")] - - -HIV_adult_trace_melt <- melt(HIV_adult_trace, - id.vars = c("Age"), variable.name = "Disease state", - value.name = "Percent of cohort") - -HIV_trace_both <- rbind( - cbind(cohort = "Pediatric", HIV_peds_trace_melt), - cbind(cohort = "Adult", HIV_adult_trace_melt) -) - - -dt_chronic_costs_by_state <- calc_costs_by_state(HIV_peds_bc$cost_by_state_trace, - cohort="Pediatric", - disease_state_costs = costs_states[["HIV"]], "HIV") - - -dt_chronic_costs_by_state <- rbind( - dt_chronic_costs_by_state, - calc_costs_by_state(HIV_adult_bc$cost_by_state_trace, - cohort="Adult", - disease_state_costs = costs_states[["HIV"]], "HIV") -) - - -ggplot(HIV_trace_both)+ - geom_line(aes(x = Age, y = `Percent of cohort`, color = `Disease state`))+ - geom_point(aes(x = Age, y = `Percent of cohort`, color = `Disease state`), size = 1.2)+ - facet_wrap(vars(cohort), ncol=1)+ - theme(legend.position = "bottom") - - -ggsave("manuscript/figs/hiv_trace.png", - width=6.5, - height = 6, - units="in") - -fwrite(HIV_peds_trace, "./results/markov_trace_HIV_peds.csv") -fwrite(HIV_adult_trace, "./results/markov_trace_HIV_peds.csv") - - - - - -# # # # -# HCV ########### -# # # # - -states_hcv <- c('acute_SC', 'acute_T', 'no_infection', 'chronic_SC', 'chronic_T', - 'chronic_TF', 'CC_SC', 'CC_T', 'CC_TF', 'DCC_SC', 'DCC_T', 'DCC_TF', - 'HCC', 'HCV_death') - -#Create init vector with initial distribution -p_acute_T <- as.numeric(dt_transitions[Disease=="HCV" & From == "init" & To == "acute_T", value]) -init_hcv <- c(1-p_acute_T, p_acute_T, rep(0, length(states_hcv)-1)) -names(init_hcv) <- c(states_hcv,"death") - -#BASE CASE -# transition matrics -t_hcv <- gen_t_matrix(markov_probs, "hcv") - -HCV_peds_bc <- sim_markov(init_hcv, t_hcv, - age_start=5, - all_cause_mort = all_cause_mort, - costs = costs_states$HCV -) - - -HCV_adult_bc <- sim_markov(init_hcv, t_hcv, - age_start=40, - all_cause_mort = all_cause_mort, - costs = costs_states$HCV) - -HCV_peds_trace <- data.table(HCV_peds_bc$markov_trace, keep.rownames = TRUE) -HCV_peds_trace[ , Age := as.numeric(rn)] -HCV_peds_trace[ , rn := NULL] - -HCV_peds_trace_melt <- melt(HCV_peds_trace, - id.vars = c("Age"), variable.name = "Disease state", - value.name = "Percent of cohort") - -HCV_adult_trace <- data.table(HCV_adult_bc$markov_trace, keep.rownames = TRUE) -HCV_adult_trace[ , Age := as.numeric(rn)] -HCV_adult_trace[ , rn := NULL] - - -HCV_adult_trace_melt <- melt(HCV_adult_trace, - id.vars = c("Age"), variable.name = "Disease state", - value.name = "Percent of cohort") - - -HCV_trace_both <- rbind( - cbind(cohort = "Pediatric", HCV_peds_trace_melt), - cbind(cohort = "Adult", HCV_adult_trace_melt) -) - - -dt_chronic_costs_by_state <- rbind( - dt_chronic_costs_by_state, - calc_costs_by_state(HCV_peds_bc$cost_by_state_trace, - cohort="Pediatric", - disease_state_costs = costs_states[["HCV"]], "HCV") -) - - -dt_chronic_costs_by_state <- rbind( - dt_chronic_costs_by_state, - calc_costs_by_state(HCV_adult_bc$cost_by_state_trace, - cohort="Adult", - disease_state_costs = costs_states[["HCV"]], "HCV") -) - - -ggplot(HCV_trace_both)+ - geom_line(aes(x = Age, y = `Percent of cohort`, color = `Disease state`))+ - geom_point(aes(x = Age, y = `Percent of cohort`, color = `Disease state`), size = 1.2)+ - facet_wrap(vars(cohort), ncol=1)+ - theme(legend.position = "bottom") - -ggsave("./manuscript/figs/hcv_trace.png", - width=6.5, - height = 7, - units="in") - -fwrite(HCV_peds_trace, "./results/markov_trace_HCV_peds.csv") -fwrite(HCV_adult_trace, "./results/markov_trace_HCV_peds.csv") -# # # # -# HBV ########### -# # # # - -states_hbv <- c('acute_SC', 'acute_CM', 'imm_tol_SC', 'imm_tol_CM', 'carrier_SC', - 'carrier_CM', 'imm_react_SC', 'imm_react_T', 'chronic_SC', - 'chronic_CM', 'chronic_T', 'CC_SC', 'CC_T', 'DCC_SC', 'DCC_T', 'HCC', - 'no_infection', 'HBV_death') - -#Create init vector with initial distribution -p_acute_CM <- as.numeric(dt_transitions[Disease=="HBV" & From == "init" & To == "acute_CM", value]) -init_hbv <- c(1-p_acute_CM, p_acute_CM, rep(0, length(states_hbv)-1)) - - - - - -# transition matrics -t_hbv <- gen_t_matrix(markov_probs, "hbv") - - - -HBV_peds_bc <- sim_markov(init_hbv, t_hbv, - age_start=5, - all_cause_mort = all_cause_mort, - costs = costs_states$HBV -) - - -HBV_adult_bc <- sim_markov(init_hbv, t_hbv, - age_start=40, - all_cause_mort = all_cause_mort, - costs = costs_states$HBV) - -HBV_peds_trace <- data.table(HBV_peds_bc$markov_trace, keep.rownames = TRUE) -HBV_peds_trace[ , Age := as.numeric(rn)] -HBV_peds_trace[ , rn := NULL] - -HBV_peds_trace_melt <- melt(HBV_peds_trace, - id.vars = c("Age"), variable.name = "Disease state", - value.name = "Percent of cohort") - -HBV_adult_trace <- data.table(HBV_adult_bc$markov_trace, keep.rownames = TRUE) -HBV_adult_trace[ , Age := as.numeric(rn)] -HBV_adult_trace[ , rn := NULL] - - -HBV_adult_trace_melt <- melt(HBV_adult_trace, - id.vars = c("Age"), variable.name = "Disease state", - value.name = "Percent of cohort") - - -HBV_trace_both <- rbind( - cbind(cohort = "Pediatric", HBV_peds_trace_melt), - cbind(cohort = "Adult", HBV_adult_trace_melt) -) - - -dt_chronic_costs_by_state <- rbind( - dt_chronic_costs_by_state, - calc_costs_by_state(HBV_peds_bc$cost_by_state_trace, - cohort="Pediatric", - disease_state_costs = costs_states[["HBV"]], "HBV") -) - - -dt_chronic_costs_by_state <- rbind( - dt_chronic_costs_by_state, - calc_costs_by_state(HBV_adult_bc$cost_by_state_trace, - cohort="Adult", - disease_state_costs = costs_states[["HBV"]], "HBV") -) - - - -ggplot(HBV_trace_both)+ - geom_line(aes(x = Age, y = `Percent of cohort`, color = `Disease state`))+ - geom_point(aes(x = Age, y = `Percent of cohort`, color = `Disease state`), size = 1.2)+ - facet_wrap(vars(cohort), ncol=1)+ - theme(legend.position = "bottom") - -ggsave("manuscript/figs/hbv_trace.png", - width=6.5, - height = 7, - units="in") -fwrite(HBV_peds_trace, "./results/markov_trace_HBV_peds.csv") -fwrite(HBV_adult_trace, "./results/markov_trace_HBV_peds.csv") - -fwrite(dt_chronic_costs_by_state, "./results/chronic_costs_by_disease_state.csv") diff --git a/.Rproj.user/AFA017A7/sources/per/t/A4F821A b/.Rproj.user/AFA017A7/sources/per/t/A4F821A deleted file mode 100644 index 30e9c1d..0000000 --- a/.Rproj.user/AFA017A7/sources/per/t/A4F821A +++ /dev/null @@ -1,27 +0,0 @@ -{ - "collab_server" : "", - "contents" : "", - "created" : 1607874573065.000, - "dirty" : false, - "encoding" : "UTF-8", - "folds" : "79|21|200|0|\n", - "hash" : "4016506093", - "id" : "A4F821A", - "lastKnownWriteTime" : 1611680306, - "last_content_update" : 1611680306730, - "path" : "G:/My Drive/Projects/ghana_hea/manuscript/ghana_hea.Rmd", - "project_path" : "manuscript/ghana_hea.Rmd", - "properties" : { - "cursorPosition" : "762,61", - "last_setup_crc32" : "", - "scrollLine" : "725", - "tempName" : "Untitled1" - }, - "read_only" : false, - "read_only_alternatives" : [ - ], - "relative_order" : 2, - "source_on_save" : false, - "source_window" : "", - "type" : "r_markdown" -} \ No newline at end of file diff --git a/.Rproj.user/AFA017A7/sources/per/t/A4F821A-contents b/.Rproj.user/AFA017A7/sources/per/t/A4F821A-contents deleted file mode 100644 index e2a24c4..0000000 --- a/.Rproj.user/AFA017A7/sources/per/t/A4F821A-contents +++ /dev/null @@ -1,805 +0,0 @@ ---- -title: Modeling the impact of whole blood pathogen inactivation on risk of transfusion-related adverse events and healthcare spending in Ghana -author: - - -output: - officedown::rdocx_document: - mapstyles: - Normal: ['First Paragraph'] - reference_docx: word-style-reference-manuscript.docx -bibliography: pathogen_inactivation.bib -csl: american-medical-association-brackets.csl - -header-includes: -- \usepackage{placeins} -- \usepackage{amsfonts} -- \usepackage{amsmath} - ---- - - - -
- -W. Alton Russell^1,2^, Shirley Owusu-Ofori^3^, Alex Owusu-Ofori^4,5^, Eileen Micah^6^, Betty Norman^3,4^, Brian Custer^2,7^ - - -
- -^1^Department of Management Science and Engineering, Stanford University Stanford, CA - -^2^Vitalant Research Institute, San Francisco, CA - -^3^Transfusion Medicine Unit, Komfo-Anokye Teaching Hospital, Kumasi, Ghana - -^4^Laboratory Services Directorate, Komfo-Anokye Teaching Hospital, Kumasi, Ghana - -^5^Department of Clinical Microbiology, Nkrumah University of Science and Technology, Kumasi, Ghana - -^6^Department of Medicine, Komfo-Anokye Teaching Hospital, Kumasi, Ghana - -^7^Department of Laboratory Medicine, University of California, San Francisco, CA - - - -
- - -**Corresponding author:** W. Alton Russell, Management Science and Engineering, Stanford University, Stanford CA 94305. email: altonr@stanford.edu. - -**Alt. author contact:** Brian Custer, bcuster@vitalant.org - -**Key words:** Pathogen inactivation, blood safety, health-economic modeling - -**Running title:** Pathogen inactivation in Ghana - -**Summary of main point:** Nationwide whole blood pathogen inactivation would likely be cost saving for Ghana. It would cost an estimated \$6.4 – $9.8 million annually but lead to \$5.5 – \$13.3 million in net present savings by averting 13,000 – 27,000 adverse events in transfusion recipients. - -**Word count:** 2405 words - - -##### - -```{r setup, include=FALSE} -library(ggplot2) -library(data.table) -library(scales) -#library(gridExtra) -library(flextable) -library(officedown) -library(officer) -#library(knitr) -theme_set(theme_bw()) -library(readxl) - - -``` - - -```{r, include=FALSE} - -#read in parameter tables -#all_cause_mort <- data.table(read_excel("../data/Ghana_hea_parameters.xlsx", sheet = "All_cause_mort")) -dt_transitions <- data.table(read_excel("../data/Ghana_hea_parameters.xlsx", sheet = "Markov_probs")) -dt_microcost_params <- data.table(read_excel("../data/Ghana_hea_parameters.xlsx", sheet = "Microcost_params")) -dt_other_params <- data.table(read_excel("../data/Ghana_hea_parameters.xlsx", sheet = "other_params")) - - -#read in results -dt_bc_outcomes <- fread("../results/BC_outcomes.csv") -dt_bc_costs <- fread("../results/BC_costs.csv") -dt_PSA_microcost <- fread("../results/PSA_microcost.csv") -dt_PSA_params <- fread("../results/PSA_params.csv") -dt_psa_costs <- fread("../results/PSA_costs.csv") -dt_psa_outcomes <- fread("../results/PSA_outcomes.csv") -dt_univ <- fread("../results/univ_sens_analysis.csv") - - -#Results table - -ae_abbrevs <- c("sep", "mal", "ftr", "syp", "hbv", "hcv", "hiv") - - -dt_bc_outcomes_count <- dt_bc_outcomes[ , lapply(.SD, comma)] -dt_bc_outcomes_dollar <- dt_bc_outcomes[ , lapply(.SD, dollar)] -dt_bc_np_costs <- dt_bc_costs[, lapply(.SD, dollar), - .SDcols = c("sep", "mal", "ftr", "syp", "HBV_np", "HCV_np", "HIV_np")] -colnames(dt_bc_np_costs) <- ae_abbrevs - - -dt_range_count <- dt_psa_outcomes[ , lapply(.SD, - function(x) - paste0("(", - comma(min(quantile(x, probs = c(0.025, 0.975)))), - " – ", - comma(max(quantile(x, probs = c(0.025, 0.975)))), - ")") - )] - -dt_range_dollar <- dt_psa_outcomes[ , lapply(.SD, - function(x) - paste0("(", - dollar(min(quantile(x, probs = c(0.025, 0.975)))), - " – ", - dollar(max(quantile(x, probs = c(0.025, 0.975)))), - ")") - )] -dt_range_np_costs <- dt_psa_costs[, lapply(.SD, - function(x) - paste0("(", - dollar(min(quantile(x, probs = c(0.025, 0.975)))), - " – ", - dollar(max(quantile(x, probs = c(0.025, 0.975)))), - ")")), - .SDcols = c("sep", "mal", "ftr", "syp", "HBV_np", "HCV_np", "HIV_np")] -colnames(dt_range_np_costs) <- ae_abbrevs - - -outcomes_count <- c("cases_no_prt", "cases_prt", "cases_reduced") -outcomes_dollar <- c("burden_no_prt", "burden_prt", "burden_reduced") - - - -results <- matrix("", ncol = 8, nrow = 9, - dimnames = list(outcome = c(outcomes_count, - "cost_per_ae", - outcomes_dollar, - "Total PI cost", - "Net savings of PI"), - ae = c("all_ae", ae_abbrevs))) - -for (outcome in outcomes_count){ - for (ae in c("all_ae", ae_abbrevs)){ - results[outcome, ae] <- paste0(dt_bc_outcomes_count[,get(paste0(ae,".",outcome))], "\n", dt_range_count[,get(paste0(ae,".",outcome))]) - } -} -for (outcome in outcomes_dollar){ - for (ae in c("all_ae", ae_abbrevs)){ - results[outcome, ae] <- paste0(dt_bc_outcomes_dollar[,get(paste0(ae,".",outcome))], "\n", dt_range_dollar[,get(paste0(ae,".",outcome))]) - } -} -for (ae in ae_abbrevs){ - results["cost_per_ae", ae] <- paste0(dt_bc_np_costs[,get(ae)], "\n", dt_range_np_costs[,get(ae)]) -} - -results["Total PI cost", "all_ae"]<- paste0(dt_bc_outcomes_dollar[,prt_cost], "\n", dt_range_dollar[,prt_cost]) -results["Net savings of PI", "all_ae"]<- paste0(dt_bc_outcomes_dollar[,net_savings], "\n", dt_range_dollar[,net_savings]) - - -dt_results<-data.table(results, keep.rownames = TRUE) -colnames(dt_results) <- c("Outcome", "All adverse events", "Sepsis", - "Malaria", "FNHTR", "Syphilis", "HBV", - "HCV", "HIV") -outcome.names <- dt_results$Outcome -names(outcome.names) <- c("Cases without PI", - "Cases with PI", - "Cases reduced by PI", - "Net present cost per case", - "Total net present cost without PI", - "Total net present cost with PI", - "Total net present cost reduced by PI", - "Total PI cost", - "Net savings of PI") -dt_results[ , Outcome := names(outcome.names)[match(Outcome, outcome.names)] ] - - -## Sensitivity analysis -dt_bc_outcomes[ , sec_infections_buden_reduced_all_ae := ( - sep.burden_reduced+mal.burden_reduced+ftr.burden_reduced+syp.burden_reduced+ - 2*hiv.burden_reduced+2*hbv.burden_reduced+2*hcv.burden_reduced -)] -dt_psa_outcomes[ , sec_infections_buden_reduced_all_ae := ( - sep.burden_reduced+mal.burden_reduced+ftr.burden_reduced+syp.burden_reduced+ - 2*hiv.burden_reduced+2*hbv.burden_reduced+2*hcv.burden_reduced -)] -range_sec_case_burden_reduced <- paste(dt_psa_outcomes[ , dollar(quantile(sec_infections_buden_reduced_all_ae, probs=c(.025, .975)))], collapse = " – ") - - - - -``` - - - -```{r param_tables, include=FALSE} - -dt.ts1 <- rbind(dt_other_params) -dt.ts1[ , basecase_formatted := ifelse(format == "dollar", dollar(`Base case`, largest_with_cents = 1e2), - ifelse(format == "percent", paste0(signif(`Base case`,3)*100,"%"), - signif(`Base case`,3)))] -dt.ts1[ , Low := ifelse(format == "dollar", dollar(Low, largest_with_cents = 1e2), - ifelse(format == "percent", paste0(signif(Low,3)*100,"%"), - signif(Low,3)))] -dt.ts1[ , High := ifelse(format == "dollar", dollar(High, largest_with_cents = 1e2), - ifelse(format == "percent", paste0(signif(High,3)*100,"%"), - signif(High,3)))] -dt.ts1[ , Value := ifelse(is.na(Low), basecase_formatted, paste0(basecase_formatted, " (", Low, "–", High, ")"))] -dt.ts1[ , Distn := ifelse(is.na(Param1), Distn, paste0(Distn, "(",Param1,", ",Param2,")"))] -dt.ts1[ , Value_dist := ifelse(is.na(Distn), Value, paste0(Value, "; ", Distn))] -dt.ts1 <- dt.ts1[ , c("Category", "Description", "Value_dist", "Source")] - - -dt.ts1 <- as_grouped_data(dt.ts1, groups = c("Category")) -t_riskmod <- as_flextable(dt.ts1) -t_riskmod <- set_header_labels(t_riskmod, Description = "Risk model parameters") -t_riskmod <- compose(t_riskmod, i = ~ !is.na(Category), j = "Description", - value = as_paragraph(as_chunk(Category))) -t_riskmod <- align(t_riskmod, align = "left", part = "all") -t_riskmod <- set_header_labels(t_riskmod, values = list(Value_dist = "Value (range); distribution")) -t_riskmod <- fontsize(t_riskmod, size = 10, part = "all") -t_riskmod <- theme_box(t_riskmod) -t_riskmod <- width(t_riskmod, 1, 2.4) -t_riskmod <- width(t_riskmod, 2, 2.4) -t_riskmod <- width(t_riskmod, 3, 1.2) -t_riskmod <- bg(t_riskmod, i = c(1, 6, 14, 22), bg = "#DDDDDD", part = "body") -t_riskmod <- bg(t_riskmod, bg = "#EAEAEA", part = "header") -t_riskmod <- footnote(t_riskmod, i=1, j=2, part="header", ref_symbols = "1", - value = as_paragraph("‘Min’ and ‘Max’ values were used for deterministic sensitivity analysis; ‘Distribution’ was used for probabilistic sensitivity analysis. Beta distribution was used when proportion count data were available; PERT distribution using the point estimate as mean was used otherwise.")) -t_riskmod <- footnote(t_riskmod, i=4, j=3, part="body",ref_symbols = "2", - value = as_paragraph("Based on unpublished data for KATH collected by the authors and data for the Southern Area Blood Center provided by Dr. Lucy Asamoah-Akuoko of the National Blood Service, Ghana, personal communication.")) - -t_riskmod <- footnote(t_riskmod, i=5, j=3, part="body",ref_symbols = "3", - value = as_paragraph("Provided by Nigel Talboys and Eric Mwenda, Terumo BCT, personal communication.")) -t_riskmod <- footnote(t_riskmod, i=11, j=3, part="body",ref_symbols = "4", - value = as_paragraph("Estimated based on rate of repeat reactive Treponema pallidum hemagglutination assay (TPHA) positivity in Durban and Johannesburg provided by Marion Vermeulen of the South African National Blood Service, personal communication.")) -t_riskmod <- footnote(t_riskmod, i=18, j=3, part="body",ref_symbols = "5", - value = as_paragraph("Assumed HBV vaccinated individuals have no risk of clinical outcomes. Estimated that 95% of recipients under 25 would be vaccinated based on WHO/UNICEF 2020 report and that 56% of population is under 20 based on UN 2019.")) -t_riskmod <- footnote(t_riskmod, i=19, j=3, part="body",ref_symbols = "6", - value = as_paragraph("Assumed transmission occurred in donations stored less than 4 days only based on van der Sluis 1985 and Adegoke 2011. Estimated that 57% of donations are stored less than 4 days from Owusu-Ofori 2011.")) -t_riskmod <- footnote(t_riskmod, i=20, j=3, part="body",ref_symbols = "7", - value = as_paragraph("Calculated from Allain 2016; see supplemental methods.")) -t_riskmod <- footnote(t_riskmod, i=24, j=3, part="body",ref_symbols = "8", - value = as_paragraph("Agapova 2015 used 50, adjusted downwards based on authors' estimation.")) -t_riskmod <- footnote(t_riskmod, i=29, j=3, part="body",ref_symbols = "9", - value = as_paragraph("Jimenez-Marco 2018 estimated a 2.08-fold reduction in pathogen reduced platelets. Data from Ghana reports a decrease across randomized groups from 11/255 to 17/303 implying a fold risk reduction of 1.3. Based on both studies, chose 1.5 as base case estimate.")) -t_riskmod <- font(t_riskmod, fontname = "Times", part = "all") - - - - - - - -dt.t2 <- rbind(dt_microcost_params) -dt.t2[ , basecase_formatted := ifelse(Category == "Cost", dollar(`Base case`, largest_with_cents = 1e2), - ifelse(Category == "Proportion receiving", paste0(signif(`Base case`,3)*100,"%"), - signif(`Base case`,3)))] -dt.t2[ , Low := ifelse(Category == "Cost", dollar(Low, largest_with_cents = 1e2), - ifelse(Category == "Proportion receiving", paste0(signif(Low,3)*100,"%"), - signif(Low,3)))] -dt.t2[ , High := ifelse(Category == "Cost", dollar(High, largest_with_cents = 1e2), - ifelse(Category == "Proportion receiving", paste0(signif(High,3)*100,"%"), - signif(High,3)))] - - -dt.t2[ , Value := ifelse(is.na(Low), basecase_formatted, paste0(basecase_formatted, " (", Low, "–", High, ")"))] -dt.t2[ , Distn := "PERT"] -dt.t2[ , Value_dist := ifelse(is.na(Distn), Value, paste0(Value, "; ", Distn))] -dt.t2 <- dt.t2[ , c("Category", "Description", "Value_dist", "Source")] - - - - -dt.t2 <- as_grouped_data(dt.t2, groups = c("Category")) -t_microcost <- as_flextable(dt.t2) -t_microcost <- set_header_labels(t_microcost, Description = "Micro-costing parameters") -t_microcost <- compose(t_microcost, i = ~ !is.na(Category), j = "Description", - value = as_paragraph(as_chunk(Category))) -t_microcost <- align(t_microcost, align = "left", part = "all") -t_microcost <- set_header_labels(t_microcost, values = list(Value_dist = "Value (range); distribution")) -t_microcost <- fontsize(t_microcost, size = 10, part = "all") -t_microcost <- font(t_microcost, fontname = "Times", part = "all") -t_microcost <- theme_box(t_microcost) -t_microcost <- width(t_microcost, 1, 3) -t_microcost <- width(t_microcost, 2, 2.5) -t_microcost <- width(t_microcost, 3, 1) -t_microcost <- footnote(t_microcost, i=38:39, j=3, - value=as_paragraph("We assumed patients who initiated AVT after AIDS progression were diagnosed based on symptoms and therefore incurred additional costs for due to AIDS-related illnesses. Costs in the first year were comprised of $57.80 for baseline laboratory investigations, $40.46 in follow-up visits, $255 - $510 for investigation and treatment for AIDS-related illnesses, and $83.04 -- $124.56 for AVT. Costs in the second year were the same, except we assumed only one third as much spending on investigation and treatment for AIDS-related illnesses.")) -t_microcost <- bg(t_microcost, i = c(1, 41, 47), bg = "#DDDDDD", part = "body") -t_microcost <- bg(t_microcost, bg = "#EAEAEA", part = "header") - - - - - - - - -dt.t3 <- rbind(dt_transitions) -dt.t3[ , basecase_formatted := ifelse(`Base case`=="#","#", paste0(signif(as.numeric(`Base case`),3)*100,"%"))] -dt.t3[ , Low := ifelse(is.na(Low), NA, paste0(signif(as.numeric(Low),3)*100,"%"))] -dt.t3[ , High := ifelse(is.na(High), NA, paste0(signif(as.numeric(High),3)*100,"%"))] -dt.t3[ , Value := ifelse(is.na(Low), basecase_formatted, paste0(basecase_formatted, " (", Low, "–", High, ")"))] -dt.t3[ , Distn := ifelse(is.na(Param1), Distn, paste0(Distn, "(",Param1,", ",Param2,")"))] -dt.t3[ , Value_dist := ifelse(is.na(Distn), Value, paste0(Value, "; ", Distn))] -#dt.t3[, Source := "#"] -dt.t3 <- dt.t3[ , c("Disease_Category", "From_disp", "To_disp", "Value_dist", "Source")] - - - - -dt.t3 <- as_grouped_data(dt.t3, groups = c("Disease_Category")) -t_transitions <- as_flextable(dt.t3) -t_transitions <- set_header_labels(t_transitions, From_disp = "From", To_disp = "To") -t_transitions <- add_header_row(t_transitions, values = c("Annual transition probability", "Annual transition probability", - "Value (range); distribution", "Source")) -t_transitions <- compose(t_transitions, i = ~ !is.na(Disease_Category), j = "From_disp", - value = as_paragraph(as_chunk(Disease_Category))) -t_transitions <- align(t_transitions, align = "left", part = "all") -t_transitions <- set_header_labels(t_transitions, values = list(Value_dist = "Value (range); distribution")) -t_transitions <- merge_h(t_transitions, part = "header") -t_transitions <- merge_v(t_transitions, part = "header") - -t_transitions <- merge_v(t_transitions, j = "From_disp", part = "body") - -t_transitions <- fontsize(t_transitions, size = 10, part = "all") -t_transitions <- font(t_transitions, fontname = "Times", part = "all") -t_transitions <- theme_box(t_transitions) -t_transitions <- width(t_transitions, 1, 1.4) -t_transitions <- width(t_transitions, 2, 1.4) -t_transitions <- width(t_transitions, 3, 2.4) -t_transitions <- width(t_transitions, 4, 1.3) -t_transitions <- bg(t_transitions, i = c(1, 39, 46, 53, 76, 85, 91, 103, 110), bg = "#DDDDDD", part = "body") -t_transitions <- bg(t_transitions, bg = "#EAEAEA", part = "header") - -``` - - -``` {r gen_figs, include=FALSE} - -#Tornado diagram -bc_net_savings <- unlist(dt_bc_outcomes$net_savings) - - - -dt_univ[ , name_range := paste0(Param_disp, "\n", Low, " – ", High)] -dt_univ[ , name_range := factor(name_range, levels = rev(unique(name_range)))] -#dt_univ[ , blank := pmin(net_savings_low, net_savings_high)] -dt_univ_plt <- rbind(setorder(dt_univ[abs_net_savings_range>5e5], -abs_net_savings_range)) -dt_univ_plt[, x:= nrow(dt_univ_plt):1] - - -ggplot(data = dt_univ_plt) + - geom_segment(aes(x = name_range, xend=name_range, y = net_savings_low, yend=net_savings_high), size=6, color="grey")+ - theme(legend.position = "None")+ - coord_flip()+ - geom_hline(yintercept = bc_net_savings)+ - geom_hline(yintercept = 0, alpha = 0.5, color = "red")+ - scale_alpha_manual(values = c(1, 0))+ - scale_y_continuous(labels = function(x){paste0("$",x/1e6,"M")}, - )+ - xlab("")+ - ylab("Net savings of whole blood PI")+ - annotate("text", x=.8, y=bc_net_savings+1.75e6, label=paste0("Basecase:", dollar(bc_net_savings)), size = 3.5) - - -ggsave("figs/tornado.png", - width=6.5, - height = 4, - units="in") - - - - -# Another approach. Problem: doesn't show negative values. -# dt_univ[ , blank := pmin(net_savings_low, net_savings_high)] -# -# dt_univ_melt <- melt(dt_univ[abs_net_savings_range > 5e5], -# measure.vars = c("blank", "abs_net_savings_range")) -# dt_univ_melt[ , variable := factor(dt_univ_melt$variable, levels=c("abs_net_savings_range", "blank"))] -# ggplot(data = dt_univ_melt) + -# geom_segment(position = "stack", stat="identity", aes(x = name_range, y = value, alpha = variable), fill = "grey")+ -# theme(legend.position = "None")+ -# coord_flip()+ -# geom_hline(yintercept = bc_net_savings)+ -# geom_hline(yintercept = 0, alpha = 0.5, color = "red")+ -# scale_alpha_manual(values = c(1, 0))+ -# scale_y_continuous(labels = function(x){paste0("$",x/1e6,"M")}, -# )+ -# xlab("")+ -# ylab("Net savings of whole blood PI")+ -# annotate("text", x=.8, y=bc_net_savings+2.6e6, label=paste0("Basecase:", dollar(bc_net_savings)), size = 3.5) - - - -# #Cases&costs by AE -# dt_bc_outcomes -dt_outcome_quants <- dt_psa_outcomes[ , lapply(.SD, - function(x) - quantile(x, probs = c(0.025, 0.975)))] -# -# dt_case_cost_plot <- data.table( -# ae_abbrev = rep(ae_abbrevs, 2), -# outcome = rep(c("Cases reduced", -# "Healthcare spending reduced"), each = 7), -# value = numeric(), -# lb = numeric(), -# ub = numeric() -# ) -# for (ae in ae_abbrevs){ -# dt_case_cost_plot[ae_abbrev == ae & outcome == "Cases reduced", value:= dt_bc_outcomes[1, get(paste0(ae, ".cases_reduced"))]] -# dt_case_cost_plot[ae_abbrev == ae & outcome == "Cases reduced", lb:= dt_outcome_quants[1, get(paste0(ae, ".cases_reduced"))]] -# dt_case_cost_plot[ae_abbrev == ae & outcome == "Cases reduced", ub:= dt_outcome_quants[2, get(paste0(ae, ".cases_reduced"))]] -# dt_case_cost_plot[ae_abbrev == ae & outcome == "Healthcare spending reduced", value:= dt_bc_outcomes[1, get(paste0(ae, ".burden_reduced"))]] -# dt_case_cost_plot[ae_abbrev == ae & outcome == "Healthcare spending reduced", lb:= dt_outcome_quants[1, get(paste0(ae, ".burden_reduced"))]] -# dt_case_cost_plot[ae_abbrev == ae & outcome == "Healthcare spending reduced", ub:= dt_outcome_quants[2, get(paste0(ae, ".burden_reduced"))]] -# } -# -# max_case_reduct <- max(dt_case_cost_plot[outcome=="Cases reduced"]$ub) -# max_spend_reduct <- max(dt_case_cost_plot[outcome=="Healthcare spending reduced"]$ub) -# dt_case_cost_plot[ , val.perc := ifelse(outcome == "Cases reduced", value/max_case_reduct, value/max_spend_reduct)] -# dt_case_cost_plot[ , lb.perc := ifelse(outcome == "Cases reduced", lb/max_case_reduct, lb/max_spend_reduct)] -# dt_case_cost_plot[ , ub.perc := ifelse(outcome == "Cases reduced", ub/max_case_reduct, ub/max_spend_reduct)] -# -# ggplot(dt_case_cost_plot, aes(x = reorder(ae_abbrev, -value), y = value))+ -# geom_bar(position="dodge", stat="identity")+ -# geom_linerange(aes(ymin = lb, ymax = ub))+ -# facet_wrap(.~outcome, nrow = 2, scales = "free_y", strip.position = "left")+ -# ylab(NULL)+xlab("Adverse event")+ -# theme(strip.background = element_blank(), strip.placement = "outside") - - -#Net budget impact -dt_net_impact <- data.table( - outcome = factor(c("PI cost", - "Healthcare\nsavings", - "Net\nimpact"), levels = c("PI cost", - "Healthcare\nsavings", - "Net\nimpact")), - value = c(dt_bc_outcomes$prt_cost, - -1*dt_bc_outcomes$all_ae.burden_reduced, - -1*dt_bc_outcomes$net_savings), - lb = c(dt_outcome_quants[1,]$prt_cost, - -1*dt_outcome_quants[1,]$all_ae.burden_reduced, - -1*dt_outcome_quants[1,]$net_savings), - ub = c(dt_outcome_quants[2,]$prt_cost, - -1*dt_outcome_quants[2,]$all_ae.burden_reduced, - -1*dt_outcome_quants[2,]$net_savings) -) - -ggplot(dt_net_impact, aes(x=outcome, y = value))+ - geom_bar(position="dodge", stat="identity", width = 0.5, fill="grey")+ - geom_errorbar(aes(ymin=lb, ymax=ub), width=0.2)+ - ylab("Net present cost")+xlab(NULL)+ - scale_y_continuous(labels = label_dollar())+ - geom_hline(yintercept = 0) - -ggsave("figs/net_impact.png", - width=3, - height = 2.5, - units="in") - -``` - -# Abstract - -**Background:** Despite the promise of pathogen inactivation for reducing transfusion-related adverse events in sub-Saharan Africa, no health-economic assessment is publicly available. - -**Methods:** We estimated the annual rate of six infectious and one non-infectious transfusion-related adverse events in Ghana with and without whole blood pathogen inactivation using a mathematical risk reduction model. We used detailed micro-costing to estimate the net present cost for each adverse event. For HIV, HCV, and HBV, we simulated disease progression using Markov models, accounting for the likelihood and timing of clinical detection and treatment. We performed probabilistic and univariate sensitivity analysis. - - -**Results:** We estimate that the addition of whole blood pathogen inactivation would reduce the number of adverse events by `r dt_bc_outcomes_count$all_ae.cases_reduced` `r dt_range_count$all_ae.cases_reduced` annually, primarily by averting bacterial sepsis (`r dt_bc_outcomes[, percent(sep.cases_reduced/all_ae.cases_reduced,1)]`) and malaria (`r dt_bc_outcomes[, percent(mal.cases_reduced/all_ae.cases_reduced,1)]`) infections. One year of whole blood pathogen inactivation would cost `r dt_bc_outcomes_dollar$prt_cost` and reduce net present healthcare spending by `r dt_bc_outcomes_dollar$all_ae.burden_reduced` due to averted adverse events, resulting in an annual net savings of `r dt_bc_outcomes_dollar$net_savings` `r dt_range_dollar$net_savings`. Use of pathogen inactivation reduced overall healthcare spending in `r percent(dt_psa_outcomes[net_savings > 0, .N ]/nrow(dt_psa_outcomes))` of probabilistic sensitivity analysis iterations. Findings were sensitive to uncertainty in the baseline risk and probability of clinical disease due to sepsis infection and the cost of pathogen inactivation. - - -**Conclusions:** Whole blood pathogen inactivation would substantially reduce the burden of infectious and non-infectious adverse events in Ghana and may reduce overall healthcare spending. Additional benefits may include averting secondary transmission of infectious diseases, reducing non-medical costs, and preventing other adverse events. - -
- -**Abbreviations:** AVT antiviral therapy, FNHTR febrile non-hemolytic transfusion reaction, HBV hepatitis B, HCV hepatitis C, HIV human immunodeficiency virus, PI pathogen inactivation, TT- transfusion-transmitted, TTI transfusion-transmitted infection, WBPI while blood pathogen inactivation. - -##### - - -# Introduction - -> Pathogen inactivation (PI) of blood components for transfusion is a promising new technology for reducing transfusion-transmitted (TT-) infections (TTIs) and non-infectious transfusion-related adverse events in Sub-Saharan Africa [@Ware2018]. PI uses UV light, often in combination with an additive, to inactivate pathogens in blood components or whole blood [@Prowse2012]. The health-economic consequences of PI of plasma and platelet components have been estimated for different health systems, including Poland and Canada [@Custer2010; @Agapova2015; @Bell2003; @Babigumira2018; @CADTH2010]. Compared to the European and North American settings where prior analyses of PI have focused, health systems in sub-Saharan Africa often experience greater resource constraints, greater baseline rates of certain transfusion-related adverse events, and more frequent blood shortages [@Bloch2012; @Barro2018]. Furthermore, use of whole blood rather than derived products limits the applicability of platelet and plasma PI in this context; in Ghana more than 80% of whole blood donations are transfused as a whole blood unit [@Allain2017; @WorldHealthOrganisation2017]. For these reasons, whole blood PI may be a more appropriate technology for sub-Saharan Africa. A recent randomized trial has analyzed the effectiveness of whole blood PI for averting TT-malaria in Ghana [@Allain2016]. However, no health-economic assessment has been published for whole blood PI in any context, nor for any PI modality in sub-Saharan Africa. We developed a decision-analytic model to estimate how the addition of whole blood pathogen inactivation (WBPI) to the existing blood safety program in Ghana would impact the number of transfusion-related adverse events and total healthcare expenditures. - -
- -# Methods - -> We developed a decision analytic model to estimate the health-economic consequences of WBPI in Ghana from a healthcare payer perspective. We considered seven adverse events, including viral TTIs (HIV, HCV, HBV), bacterial TTIs (syphilis, bacterial sepsis), malaria, and febrile non-hemolytic transfusion reactions (FNHTRs), a non-infectious adverse event. We estimated the cost per adverse event averted and the budget impact of whole blood PI, and we assessed uncertainty through deterministic and probabilistic sensitivity analysis. The model was programmed in R. All data and code are available in a public repository **[Will create citation before submitting].** - -## Risk reduction model structure - -> Our two-armed decision tree compared the costs and consequences of status quo blood safety interventions to those of the status quo plus whole blood PI. The status quo was to test all donations using tests for HIV-Ab, HBsAg, Anti-HCV Ab, and Anti-treponemal Ab [@WorldHealthOrganisation2017]. All parameters values for the risk reduction model are shown in Table 1 <[@WorldHealthOrganisation2017; @Osei2013; @Jayaraman2010; @Adjei2009; @Allain2016; @Owusu-Ofori2017; @Jimenez-Marco2018; @vanderSluis1985; @Adegoke2011; @OwusuOfori2011; @WorldHealthOrganization2020; @WHO2019; @UnitedNationsPopulationDivision2019]>, and mathematical calculations are provided in the Section A of the online supplement. For each input parameter, we estimated a range of likely values for deterministic sensitivity analysis and assigned a distribution for probabilistic sensitivity analysis. We used beta distributions when estimates were based on counts for a binary outcome or when the parameter source used a beta distribution. Otherwise we sampled each parameter from a PERT distribution. For all outcomes, we reported the expected value from the base case scenario and a 95% uncertainty interval based on the 2.5th and 97.5th quantiles of results from 10,000 iterations of probabilistic sensitivity analysis. - -> We assumed that each whole blood unit would be transfused to a single recipient, and we assumed that if one recipient experienced multiple adverse events from a single transfusion then any adverse event costs would be additive. For each of the six TTIs, the baseline (without PI) number of clinically meaningful adverse events was calculated from the annual number of whole blood donations collected nationally, the percent of collected donations not transfused (wastage), the estimated residual risk among donors after TTI screening, and the risk of clinical outcome (i.e., likelihood that transfusion of an infectious unit results in clinically relevant disease). For FNHTR the baseline rate of clinically relevant adverse events per recipient was extrapolated from local data and prior studies, and the per-donation risk of FNHTR was derived by multiplying the per-recipient rate by the estimated average number of whole blood units transfused per recipient. We assumed some recipients were not at risk of clinical outcomes due to factors such as prior malaria infection, HBV vaccination, and existing HIV infection (see Table 1). For each adverse event, we divided by an *x*-fold risk-reduction factor to estimate the number of adverse events when using whole blood PI. These factors were based on clinical trials where available (malaria, FNHTR) and otherwise sourced from prior modeling studies. - -## Cost of adverse events - -> We estimated the average health care spending associated with each transfusion-related adverse event using a micro-costing approach. For most adverse events, authors with relevant clinical experience at the Komfo Anokye Teaching Hospital (KATH) in Kumasi, Ghana, estimated the costs and utilization patterns for resources used to treat each adverse event. For HIV, we assumed infections that had not yet progressed to AIDS would be detected in an outpatient clinic and used empirical costing estimates from a recent study of healthcare costs for patients initiating antiviral therapy (AVT) [@Mikkelsen2017]. We treated FNHTR, malaria, syphilis, and sepsis as acute infections and assumed all costs were incurred within a year of transfusion. We treated HIV, HBV, and HCV as chronic viral infections and used Markov models to estimate lifetime healthcare costs. Supplemental Table S1 <[@Mikkelsen2017; @VanHulst2008]> contains estimates and uncertainty ranges for all micro-costing parameters, and Supplemental Table S2 contains the calculations used for the four acute adverse events and for each disease state of the chronic viral infections. - - -> For each chronic viral infection, we modeled a pediatric cohort (age 5 at transfusion) and an adult cohort (age 40 at transfusion). Models captured the disease natural history, treatment initiation, and treatment effectiveness. For the Markov processes, we used a one-year cycle length, discounted future costs at 3% annually, and used the cycle tree method to correct for discretization error [@Naimark2013]. The probability of dying from another cause in all disease states was based on the 2016 age-specific death rate indicator in the World Health Organization Global Health Observatory data repository [@WHO_data2020]. All other transition probabilities and their sources are listed in Supplemental Table S3 <[@Mafirakureva2016; @Nayagam2016; @Fraser2016; @Morgan2002]>. The supplement also contains schematics for the transition matrix for each chronic adverse event (Supplementary Figures S1 – S3) and Markov trace plots of the proportion of transfusion recipients in each disease state over time (Supplementary Figures S4 – S6). - -> For HCV, our natural history model and treatment efficacy estimates were based on a health economic model developed for The Gambia [@Nayagam2016], and transitions into treatment were estimated based on the authors' clinical experience. Within the model, a small percentage of infections are detected during the acute phase in the first year and receive AVT; otherwise, recipients have subclinical acute infections. Some initially subclinical infections prgress through chronic HCV disease states. A percentage of patients in the compensated or decompensated cirrhosis disease states are detected each year, and those patients receive AVT. AVT clears most HCV infections, but some patients experience treatment failure with disease progression while receiving monitoring and care. - -> For HBV, our natural history model and treatment efficacy estimates were based on a health economic model developed for South Africa [@Fraser2016]. In the model, a small fraction of acute infections are detected and receive monitoring and care during the first year, but most infections are subclinical during the acute phase. Subclinical infections that progress to the immune reactive, compensated cirrhosis, or decompensated cirrhosis states have an annual probability of clinical detection, at which point AVT is initiated. Subclinical patients in the chronic HBeAg- phase also have an annual probability of detection. Those patients transition to receiving monitoring and care without AVT, but some initiate AVT each year due to clinical indications such as a spike in viral load. We assumed patients on AVT do not progress to later disease states and would continue with AVT and monitoring for their lifetimes. However, a small annual risk of developing hepatocellular carcinoma remaines for those who developed cirrhosis before AVT initiation. - -> For HIV, we constructed a natural history model and calibrated the annual probability of progression to AIDS, death from HIV, and death from AIDS to a longitudinal study of HIV progression from Uganda (Figure S7) [@Morgan2002]. We assumed patients who initiated AVT before progressing to AIDS continue with treatment for the remainder of their lives and have a normal life expectancy. Annual costs for those who initiated AVT before progressing to AIDS are based on an empirical study conducted in HIV clinics in Ghana that found that on average, medical expenses were highest in the year of AVT initiation and tapered off over three years [@Mikkelsen2017]. For patients who initiate AVT after progressing to AIDS, we assumed they would receive a diagnosis and initiate ART during a hospitalization for AIDS complications and therefore incur substantially higher costs in the first two years as compared to those initiating ART with HIV. We also assumed those initiating AVT with AIDS would have a higher risk of dying during the first two years of AVT, but after two years on AVT, we assumed surviving AIDS patients would have recovered their CD4 counts and have the same annual costs and risk of death as any other AVT patient. We estimated the annual probability of initiating AVT based on HIV progression based on the authors' clinical experience. - -## Scenario analysis - -> In a scenario analysis, we approximated secondary infections by assuming each surviving recipient infected with HIV, HBV, or HCV infects one other person during the first year following transfusion. - - - -
- - -# Results - -> The estimated number of modeled adverse events per year without PI was `r dt_bc_outcomes_count$all_ae.cases_no_prt` `r dt_range_count$all_ae.cases_no_prt`. PI reduced the number of adverse events by `r dt_bc_outcomes_count$all_ae.cases_reduced` `r dt_range_count$all_ae.cases_reduced` to `r dt_bc_outcomes_count$all_ae.cases_prt` `r dt_range_count$all_ae.cases_prt` per year. Most of the averted adverse events were sepsis (`r dt_bc_outcomes[, percent(sep.cases_reduced/all_ae.cases_reduced,1)]`) and malaria (`r dt_bc_outcomes[, percent(mal.cases_reduced/all_ae.cases_reduced,1)]`) infections (Table 2). - -> The estimated net present cost per adverse event ranged from `r dt_bc_np_costs$syp` `r dt_range_np_costs$syp` for syphilis to `r dt_bc_np_costs$hbv` `r dt_range_np_costs$hbv` for HBV. Because most HIV, HCV and HBV infections would be subclinical for the first year, over 90% of healthcare spending associated with these three adverse events is estimated to occur in later years (Supplementary Table S4). The total net present healthcare costs due to adverse events was `r dt_bc_outcomes_dollar$all_ae.burden_no_prt` `r dt_range_dollar$all_ae.burden_no_prt` without PI and `r dt_bc_outcomes_dollar$all_ae.burden_prt` `r dt_range_dollar$all_ae.burden_prt` with PI. Of the adverse events evaluated, sepsis infection had only the third highest per-case cost at `r dt_bc_np_costs$sep` `r dt_range_np_costs$sep` but represented the majority of healthcare spending due to adverse events without PI (`r dt_bc_outcomes[, percent(sep.burden_no_prt/all_ae.burden_no_prt)]`) and the majority of net present healthcare savings due to PI (`r dt_bc_outcomes[, percent(sep.burden_reduced/all_ae.burden_reduced)]`). - -> One year of WB PI in Ghana would cost an estimated `r dt_bc_outcomes_dollar$prt_cost` `r dt_range_dollar$prt_cost` and reduce net present healthcare spending by `r dt_bc_outcomes_dollar$all_ae.burden_reduced` `r dt_range_dollar$all_ae.burden_reduced` due to averted adverse events, resulting in an annual net savings of `r dt_bc_outcomes_dollar$net_savings` `r dt_range_dollar$net_savings` (Figure 2). Whole blood PI led to an overall reduction in net present healthcare spending in `r percent(dt_psa_outcomes[net_savings > 0, .N ]/nrow(dt_psa_outcomes))` of probabilistic sensitivity analysis iterations. For `r dt_univ[abs_net_savings_range > 500000, .N]` uncertain input parameters, varying the parameters along their uncertainty ranges led to a variation in the annual net savings of PI of $500,000 or more. For `r dt_univ[net_savings_low < 0 | net_savings_high < 0, .N]` parameters, pathogen inactivation was no longer cost-saving at one endpoint of the parameter's uncertainty range. One year of PI had a positive net present cost at the minimum value of our uncertainty range for three parameters: the baseline risk of sepsis (net present cost of `r dt_univ[rname=="bl_sep", dollar(-1*net_savings_low, largest_with_cents = 1e+02)]`), the risk of clinical outcome for sepsis (`r dt_univ[rname=="p_clin_sep", dollar(-1*net_savings_low, largest_with_cents = 1e+02)]`), the cost per inpatient day (`r dt_univ[rname=="c_IP_day", dollar(-1*net_savings_low, largest_with_cents = 1e+02)]`), and the number of additional inpatient days needed per clinical sepsis infection (`r dt_univ[rname=="sep_d_IP_days", dollar(-1*net_savings_low, largest_with_cents = 1e+02)]`). PI had a positive net present cost of `r dt_univ[rname=="c_PI", dollar(-1*net_savings_high, largest_with_cents = 1e+02)]` at the maximum value of our uncertainty range for the per-donation cost of PI (Figure 3). - -> In a scenario analysis where we accounted for one secondary infection for all HBV, HCV, and HIV-infected recipients, the net present health savings from PI increased from `r dt_bc_outcomes_dollar$all_ae.burden_reduced` to `r dollar( dt_bc_outcomes$sec_infections_buden_reduced_all_ae)` (`r range_sec_case_burden_reduced`) annually. In this scenario, the net impact of PI was an overall reduction in healthcare spending in `r percent(dt_psa_outcomes[sec_infections_buden_reduced_all_ae > prt_cost, .N]/nrow(dt_psa_outcomes))` of iterations. - - -
- -# Discussion - -> Adding WB PI to the existing blood safety portfolio in Ghana would prevent many transfusion-related adverse events and may decrease overall healthcare spending. We estimated a `r percent(dt_psa_outcomes[net_savings > 0, .N ]/nrow(dt_psa_outcomes))` probability that WB PI would lead to a net reduction in healthcare costs, but this increased to `r percent(dt_psa_outcomes[sec_infections_buden_reduced_all_ae > prt_cost, .N]/nrow(dt_psa_outcomes))` when factoring in healthcare costs for one secondary case for each HIV, HBV, and HCV infection. Our analysis did not consider non-healthcare costs such as family caregiver time, productivity loss, or transportation costs. We also did not evaluate all types of adverse events for which PI may reduce risk, which could include emerging infectious diseases not yet identified as blood safety threats, and we did not quantify the associated reductions in death and disability. Due to these factors, the total societal benefit of PI likely exceeds the impact on direct healthcare spending as estimated here. - -> We employed a detailed approach to estimating the costs of adverse events that accounted for subclinical disease and the timing and likelihood of chronic disease detection. This approach, combined with other developments such as price reductions for some resources such as HIV antiviral therapy drugs [@Lee2016a] and greater immunity to HBV through vaccination [@Sarkodie2016], led to lower estimates of the per-infection costs for HBV, HCV, and HIV events as compared to past analyses of blood safety interventions in sub-Saharan Africa [@Mafirakureva2016; @VanHulst2008; @Custer2017]. Our analysis also suggested that bacterial sepsis is an underappreciated blood safety threat in sub-Saharan Africa, accounting for large percentage of transfusion-related adverse events cases and the majority of associated healthcare spending. - -> This study has several limitations. Data on the rate of transfusion-related adverse events in Ghana, and in sub-Saharan Africa generally, are limited. The benefit of PI depends on the baseline residual risk of each adverse event, and updated risk estimates from recent hemovigilance data could increase accuracy. While our detailed micro-costing approach to estimating the disease trajectories and associated healthcare costs for adverse events was based on clinical expertise, a rigorous empirical study may reduce uncertainty. For most diseases, the modeled risk reduction due to PI was based on estimates from prior modeling study because the low baseline rate of these adverse outcomes makes empirical estimation difficult. Our finding that PI is likely cost-saving was sensitive to uncertainty in some input parameters, most notably parameters that influence the likelihood and cost of clinically treated bacterial sepsis infections. - -> Our analysis provides further evidence that PI is a promising technology for sub-Saharan Africa. Future research could further elucidate the societal impact of PI and other blood safety technologies by improving estimation of the burden of illness from transfusion-related adverse events, estimating other impacts beyond direct healthcare spending, and considering other settings in sub-Saharan Africa. - -##### - - -# Declarations - -**Funding:** This work was supported by Terumo BCT, Inc. (Lakewood, USA). Terumo BCT provided no editorial control over the research or the manuscript. - -**Potential Conflicts of Interest:** WAR received consulting fees from Terumo BCT, Inc. (Lakewood, USA) for developing the submitted work. SOO received honoraria from Terumo BCT outside the submitted work. BC reports grants from Grifols Diagnostic Solutions (Barcelona, Spain), Terumo BCT, Macopharma (Tourcoing, France), and Cerus (Concord, USA) and personal fees from Terumo BCT outside the submitted work. Authors AOO, EM, and BN affirm that they have no conflicts. - -**Ethics/Consent:** This analysis was based on public data and was exempt from institutional ethics review. - -**Data and materials:** All data and materials have been uploaded to a public repository. - -**Code availability:** All code has been uploaded to a public repository. - - -##### - -# References - -
- -##### - -::: {custom-style="Compact"} -| **Table 1** Parameters for modeling the risk of adverse events with and without whole blood pathogen inactivation -::: - -`r t_riskmod` - - - - -::: {custom-style="Compact"} -| **Table 2** Estimated cases and healthcare spending incurred for each adverse event with and without whole blood pathogen inactivation for one year. -::: - -```{r include=FALSE} -t1 <- flextable(dt_results[1:7, c(1, 3:9) ]) -t1 <- align(t1, align = "left", part = "all") -t1 <- set_header_labels(t1, values = list(Value_dist = "Value (range); distribution")) -t1 <- fontsize(t1, size = 10, part = "all") -t1 <- font(t1, fontname = "Times", part = "all") -t1 <- theme_box(t1) -t1 <- width(t1, 1, 1.3) -t1 <- width(t1, 2:8, 1.1) -t1 <- bg(t1, bg = "#EAEAEA", part = "header") - -``` - -`r t1` - - - -![**Fig. 1.** Schematics for Markov models used to estimate net-present lifetime costs for chronic viral infections. Death from other causes possible from any disease state (not shown). Abbreviations AVT, antiviral therapy, CC, compensated cirrhosis, CM, clinical monitored, DCC, decompensated cirrhosis, HCC, hepatocellular carcinoma, HBV, hepatitis B, HCV, hepatitis C, HIV, human immunodeficiency virus, TF, treatment failure, SC, subclinical](figs/markov_schematics.png) - -##### - -![**Fig. 2.** Estimated net impact on healthcare spending of whole blood pathogen inactivation. Net impact is the cost of pathogen inactivation minus the net present healthcare savings from avert transfusion-related adverse events.](figs/net_impact.png) - -##### -![**Fig. 3.** Sensitivity of the net savings of pathogen inactivation to changes in the value of individual input parameters within prespecified uncertainty ranges. Y-axis shows all model parameters for which varying the value along the indicated range while keeping other parameters at their base case value led to a variation of more than $500,000 in the estimated net savings of whole blood pathogen inactivation.](figs/tornado.png) - - - - -##### -\setcounter{page}{0} - -# Supplemental materials - -
- -# A. Risk model calculations - -The following equation was used to calculate the number of cases of each adverse event [AE], with and without PI: - -$$ -\begin{aligned} -(\text{[AE] Cases without PI}) = &(\text{\# whole blood donations})\times \\ -&(\text{[AE] baseline risk})\times \\ -&(\text{[AE] clinical outcome risk}) -\end{aligned} -$$ -$$ -\begin{aligned} -\text{[AE] Cases with PI} = &(\text{\# whole blood donations})\times \\ -&(\text{[AE] baseline risk})\times \\ -&(\text{[AE] clinical outcome risk})\times \\ -&(\text{[AE] transmissibility}) \\ -\end{aligned} -$$ -The annual cost of PI was calculated as: - -$$ -\begin{aligned} -\text{PI cost per case} = &(\text{\# whole blood donations transfused})\times\\ -&(1 + \text{% donations not transfused})\times\\ -&(\text{PI cost per donation.}) -\end{aligned} -$$ - -
- -# B. Estimation of malaria clinical outcome risk - -The risk of clinical malaria infection from the transfusion of a parasitaemic donation was calculated from data in Allain 2016 [@Allain2016]. In that study, the prevalence of parasitemia was 23% (50/217) in recipients and 25% (91/367) in donors. Parasitemia by malaria species was also reported: - -* In donors: 56 had *P falciparum* only; 4 had *P malariae* only; 1 had *P ovale* only; 26 had both *P falciparum* and *P malariae*; and 4 had all 3 species. -* In recipients: 48 had *P falciparum* only; 1 had *P malariae* only; 0 had *P ovale* only; 2 had both *P falciparum* and *P malariae*; and 0 had all 3 species. - -From these numbers, we calculated the following probabilities: - -* Probability donation has non-falciparum species given that it has malaria: 38.46% -* Probability donation has non-malariae species given that it has malaria: 62.64% -* Probability donation has non-ovale species given that it has malaria: 94.51% -* Probability donation has neither *P falciparum* nor *P malariae* given that it has malaria: 1.10% - -From these, the probability that a parasitaemic recipient who is transfused with a parasitaemic donation would receive a species they are not already parasaetimic for was calculated by taking a sum of the probability donations do not have each set of malaria species weighted by the probability that recipients do have each set of malaria species. The result was 37.47%. - -The probability of clinical outcomes when a malaria-positive donation is transfused to a non-parasitaemic recipient was reported as 21.6% (8 of 37 transfusions) with a 95% confidence interval of 9.8--38.2%. We assumed that when a parasitaemic donation is transfused to a parasitaemic recipient, the risk of transmission is the same as with a non-parasitaemic recipient when the donation contained a malaria species for which the recipient was not parasitaemic, and the risk of clinical outcomes was 0 when the recipient was already parasitaemic with all malaria species in the donation. Therefore, the estimated clinical outcome risk for a parasitaemic recipient was $21.60\% \times 37.47\% = 8.09\%$. We then calculated the overall expected probability of transmission of a malaria parasitaemic donation by weighting the probability in parasitaemic recipients (8.09%) and the probability in non-parasitaemic recipients (21.60%) by the proportion of recipients who were parasitaemic (23%) for an overall risk of clinical outcomes of 18.5%. For the uncertainty range, we assumed the value could range from 45% to 176% of the base case value based on the range in the confidence interval around the risk of transmission from Allain 2016. - -##### - -::: {custom-style="Compact"} -| **Table S1** Parameters for the micro-costing calculations -::: - - -`r t_microcost` - -::: {custom-style="hidden_line"} -| . -::: - -##### - -::: {custom-style="Compact"} -| **Table S2** Annual transition probabilities used in the Markov models of chronic HIV, HBV, and HCV infections. Transitions indicated by \`#\` are calculated as one minus the probability of transitioning to any other state. -::: - - -`r t_transitions` - -##### - -::: {custom-style="Compact"} -| **Table S3** Calculations used for each disease state (acute illness for sepsis, malaria, febrile non-hemolytic transfusion reactions, and syphilis; annual costs for each disease state in the HBV and HIV Markov models) -::: - - -```{r t_calcs, include=FALSE} - -dt.t_calcs <- data.table(read_excel("../data/Ghana_hea_parameters.xlsx", sheet = "Microcost_eqns")) -t_calcs <- flextable(dt.t_calcs) -t_calcs <- fontsize(t_calcs, size = 10, part = "all") -t_calcs <- font(t_calcs, fontname = "Times", part = "all") -t_calcs <- theme_box(t_calcs) -t_calcs <- width(t_calcs, 1, 2.1) -t_calcs <- width(t_calcs, 2, 4.4) -t_calcs <- bg(t_calcs, bg = "#EAEAEA", part = "header") - -``` - - -`r t_calcs` - -##### - -::: {custom-style="Compact"} -| **Table S4** Calculated annual costs for each disease state in the HIV, HBV, and HCV disease progression Markov models -::: - -```{r t_chronic_disease_states, include=FALSE} -dt_chronic_disease_states <- fread("../results/chronic_costs_by_disease_state.csv") -dt_chronic_state_lookup <- data.table(read_excel("../data/Ghana_hea_parameters.xlsx", sheet ="chronic_state_lookup")) -dt_chronic_disease_states <- dt_chronic_state_lookup[,c("Disease","Disease state", "state_disp")][dt_chronic_disease_states, - on = c("Disease", "Disease state")] - -dt_chronic_disease_states[ ,`Disease state` := state_disp] -dt_chronic_disease_states[ ,state_disp := NULL] -dt_chronic_disease_states <- melt(dt_chronic_disease_states, id.vars = 1:4) - -#dt_chronic_disease_states <- -dt_chronic_disease_states <- dcast(dt_chronic_disease_states, Disease+`Disease state`+`Annual cost` ~ variable+Cohort, sep=", ") - - -cols <- colnames(dt_chronic_disease_states)[3:7] - -dt_chronic_disease_states[ , (cols) := lapply(.SD, "dollar"), .SDcols=3:7] - -dt_chronic_disease_states <- as_grouped_data(dt_chronic_disease_states, groups = c("Disease")) - -t_chron_disease_states <- as_flextable(dt_chronic_disease_states) - -t_chron_disease_states <- compose(t_chron_disease_states, i = ~ !is.na(Disease), j = "Disease state", - value = as_paragraph(as_chunk(Disease))) - -t_chron_disease_states <- align(t_chron_disease_states, align = "left", part = "all") -t_chron_disease_states <- fontsize(t_chron_disease_states, size = 10, part = "all") -t_chron_disease_states <- font(t_chron_disease_states, fontname = "Times", part = "all") -t_chron_disease_states <- theme_box(t_chron_disease_states) -#t_chron_disease_states <- width(t_chron_disease_states, 1, 2.1) -# t_chron_disease_states <- width(t_chron_disease_states, 2, 4.4) -t_chron_disease_states <- bg(t_chron_disease_states, bg = "#EAEAEA", part = "header") -t_chron_disease_states <- width(t_chron_disease_states, 1, 1.7) -t_chron_disease_states <- width(t_chron_disease_states, 2, 0.8) -t_chron_disease_states <- width(t_chron_disease_states, 3:6, 1) -t_chron_disease_states <- bg(t_chron_disease_states, i = c(1, 21, 37), bg = "#DDDDDD", part = "body") - - - -disease_state_key_hiv <- dt_chronic_state_lookup[Disease == "HIV", paste0(`Disease state`, ", ", state_disp, collapse = "; ")] -disease_state_key_hbv <- dt_chronic_state_lookup[Disease == "HBV", paste0(`Disease state`, ", ", state_disp, collapse = "; ")] -disease_state_key_hcv <- dt_chronic_state_lookup[Disease == "HCV", paste0(`Disease state`, ", ", state_disp, collapse = "; ")] - - -``` - -`r t_chron_disease_states` - - - - - -![**Fig. S1.** Transition matrix schematic for HIV. Non-zero transition probabilities are indicated in blue for natural history transitions, yellow for treatment uptake transitions, orange for treatment effectiveness transitions, and green for other-cause mortality. Markov model constructed by first creating a transition matrix without treatment uptake or other-cause death; then adding in treatment uptake transitions while scaling other transitions such that each row still sums to 1; then adding in transitions to other-cause mortality with the same approach. Disease state names: `r disease_state_key_hiv`. Abbreviations: NH, natural history (blue); TU, treatment uptake (marigold); TE, treatment effectiveness (orange); OCM, other cause mortality (green)](figs/hiv_transition_matrix.png) - -##### - -![**Fig. S2.** Transition matrix schematic for HBV. Non-zero transition probabilities are indicated in blue for natural history transitions, yellow for treatment uptake transitions, orange for treatment effectiveness transitions, and green for other-cause mortality. Markov model constructed by first creating a transition matrix without treatment uptake or other-cause death; then adding in treatment uptake transitions while scaling other transitions such that each row still sums to 1; then adding in transitions to other-cause mortality with the same approach. Disease state names: `r disease_state_key_hbv`. Abbreviations: NH, natural history (blue); TU, treatment uptake (marigold); TE, treatment effectiveness (orange); OCM, other cause mortality (green)](figs/hbv_transition_matrix.png) - -##### - -![**Fig. S3.** Transition matrix schematic for HCV. Non-zero transition probabilities are indicated in blue for natural history transitions, yellow for treatment uptake transitions, orange for treatment effectiveness transitions, and green for other-cause mortality. Markov model constructed by first creating a transition matrix without treatment uptake or other-cause death; then adding in treatment uptake transitions while scaling other transitions such that each row still sums to 1; then adding in transitions to other-cause mortality with the same approach. Disease state names: `r disease_state_key_hcv`. Abbreviations: NH, natural history (blue); TU, treatment uptake (marigold); TE, treatment effectiveness (orange); OCM, other cause mortality (green)](figs/hcv_transition_matrix.png) - - - - -![**Fig. S4.** Markov trace plot for HIV pediatric and adult cohorts. Disease state names: `r disease_state_key_hiv`.](figs/hiv_trace.png) - -##### - -![**Fig. S5.** Markov trace plot for HBV pediatric and adult cohorts. Disease state names: `r disease_state_key_hbv`.](figs/hbv_trace.png) - -##### - -![**Fig. S6.** Markov trace plot for HCV pediatric and adult cohorts. Disease state names: `r disease_state_key_hcv`.](figs/hcv_trace.png) - -##### - -![**Fig. S7.** Calibration plots for HIV natural history transition probabilities.](figs/HIV_calib_plot.png) \ No newline at end of file diff --git a/.Rproj.user/AFA017A7/sources/prop/1D57F7EE b/.Rproj.user/AFA017A7/sources/prop/1D57F7EE deleted file mode 100644 index 7a73a41..0000000 --- a/.Rproj.user/AFA017A7/sources/prop/1D57F7EE +++ /dev/null @@ -1,2 +0,0 @@ -{ -} \ No newline at end of file diff --git a/.Rproj.user/AFA017A7/sources/prop/22333E9D b/.Rproj.user/AFA017A7/sources/prop/22333E9D deleted file mode 100644 index 2387843..0000000 --- a/.Rproj.user/AFA017A7/sources/prop/22333E9D +++ /dev/null @@ -1,6 +0,0 @@ -{ - "cursorPosition" : "762,61", - "last_setup_crc32" : "", - "scrollLine" : "725", - "tempName" : "Untitled1" -} \ No newline at end of file diff --git a/.Rproj.user/AFA017A7/sources/prop/23CA6664 b/.Rproj.user/AFA017A7/sources/prop/23CA6664 deleted file mode 100644 index 7d89630..0000000 --- a/.Rproj.user/AFA017A7/sources/prop/23CA6664 +++ /dev/null @@ -1,5 +0,0 @@ -{ - "cursorPosition" : "325,0", - "scrollLine" : "316", - "source_window_id" : "wmjf2krxn3zf5" -} \ No newline at end of file diff --git a/.Rproj.user/AFA017A7/sources/prop/2B6C86E6 b/.Rproj.user/AFA017A7/sources/prop/2B6C86E6 deleted file mode 100644 index 65fb671..0000000 --- a/.Rproj.user/AFA017A7/sources/prop/2B6C86E6 +++ /dev/null @@ -1,5 +0,0 @@ -{ - "cursorPosition" : "376,10", - "scrollLine" : "346", - "source_window_id" : "" -} \ No newline at end of file diff --git a/.Rproj.user/AFA017A7/sources/prop/342F5B7A b/.Rproj.user/AFA017A7/sources/prop/342F5B7A deleted file mode 100644 index 0f68821..0000000 --- a/.Rproj.user/AFA017A7/sources/prop/342F5B7A +++ /dev/null @@ -1,4 +0,0 @@ -{ - "cursorPosition" : "348,0", - "scrollLine" : "0" -} \ No newline at end of file diff --git a/.Rproj.user/AFA017A7/sources/prop/38FF46F7 b/.Rproj.user/AFA017A7/sources/prop/38FF46F7 deleted file mode 100644 index 51831c8..0000000 --- a/.Rproj.user/AFA017A7/sources/prop/38FF46F7 +++ /dev/null @@ -1,6 +0,0 @@ -{ - "cursorPosition" : "278,15", - "scrollLine" : "0", - "source_window_id" : "wull4pncuxvi6", - "tempName" : "Untitled1" -} \ No newline at end of file diff --git a/.Rproj.user/AFA017A7/sources/prop/4A9C31D4 b/.Rproj.user/AFA017A7/sources/prop/4A9C31D4 deleted file mode 100644 index 7a73a41..0000000 --- a/.Rproj.user/AFA017A7/sources/prop/4A9C31D4 +++ /dev/null @@ -1,2 +0,0 @@ -{ -} \ No newline at end of file diff --git a/.Rproj.user/AFA017A7/sources/prop/605EC871 b/.Rproj.user/AFA017A7/sources/prop/605EC871 deleted file mode 100644 index ce66356..0000000 --- a/.Rproj.user/AFA017A7/sources/prop/605EC871 +++ /dev/null @@ -1,4 +0,0 @@ -{ - "cursorPosition" : "1667,26", - "scrollLine" : "1615" -} \ No newline at end of file diff --git a/.Rproj.user/AFA017A7/sources/prop/62F7F4F6 b/.Rproj.user/AFA017A7/sources/prop/62F7F4F6 deleted file mode 100644 index 36b437d..0000000 --- a/.Rproj.user/AFA017A7/sources/prop/62F7F4F6 +++ /dev/null @@ -1,4 +0,0 @@ -{ - "cursorPosition" : "6,20", - "scrollLine" : "0" -} \ No newline at end of file diff --git a/.Rproj.user/AFA017A7/sources/prop/82E33C26 b/.Rproj.user/AFA017A7/sources/prop/82E33C26 deleted file mode 100644 index 7a73a41..0000000 --- a/.Rproj.user/AFA017A7/sources/prop/82E33C26 +++ /dev/null @@ -1,2 +0,0 @@ -{ -} \ No newline at end of file diff --git a/.Rproj.user/AFA017A7/sources/prop/9F2394D3 b/.Rproj.user/AFA017A7/sources/prop/9F2394D3 deleted file mode 100644 index fa9e297..0000000 --- a/.Rproj.user/AFA017A7/sources/prop/9F2394D3 +++ /dev/null @@ -1,5 +0,0 @@ -{ - "cursorPosition" : "213,0", - "scrollLine" : "178", - "source_window_id" : "" -} \ No newline at end of file diff --git a/.Rproj.user/AFA017A7/sources/prop/B70BEADA b/.Rproj.user/AFA017A7/sources/prop/B70BEADA deleted file mode 100644 index 7a73a41..0000000 --- a/.Rproj.user/AFA017A7/sources/prop/B70BEADA +++ /dev/null @@ -1,2 +0,0 @@ -{ -} \ No newline at end of file diff --git a/.Rproj.user/AFA017A7/sources/prop/D3AF2BC0 b/.Rproj.user/AFA017A7/sources/prop/D3AF2BC0 deleted file mode 100644 index e5cd764..0000000 --- a/.Rproj.user/AFA017A7/sources/prop/D3AF2BC0 +++ /dev/null @@ -1,4 +0,0 @@ -{ - "cursorPosition" : "2276,0", - "scrollLine" : "2261" -} \ No newline at end of file diff --git a/.Rproj.user/AFA017A7/sources/prop/D59E596C b/.Rproj.user/AFA017A7/sources/prop/D59E596C deleted file mode 100644 index 09a1f87..0000000 --- a/.Rproj.user/AFA017A7/sources/prop/D59E596C +++ /dev/null @@ -1,4 +0,0 @@ -{ - "cursorPosition" : "962,0", - "scrollLine" : "8" -} \ No newline at end of file diff --git a/.Rproj.user/AFA017A7/sources/prop/D653D6D3 b/.Rproj.user/AFA017A7/sources/prop/D653D6D3 deleted file mode 100644 index 5e50ad9..0000000 --- a/.Rproj.user/AFA017A7/sources/prop/D653D6D3 +++ /dev/null @@ -1,4 +0,0 @@ -{ - "cursorPosition" : "254,0", - "scrollLine" : "247" -} \ No newline at end of file diff --git a/.Rproj.user/AFA017A7/sources/prop/E1ACB01F b/.Rproj.user/AFA017A7/sources/prop/E1ACB01F deleted file mode 100644 index da2949a..0000000 --- a/.Rproj.user/AFA017A7/sources/prop/E1ACB01F +++ /dev/null @@ -1,5 +0,0 @@ -{ - "cursorPosition" : "949,0", - "scrollLine" : "888", - "source_window_id" : "" -} \ No newline at end of file diff --git a/.Rproj.user/AFA017A7/sources/prop/FF0088C b/.Rproj.user/AFA017A7/sources/prop/FF0088C deleted file mode 100644 index f3677a1..0000000 --- a/.Rproj.user/AFA017A7/sources/prop/FF0088C +++ /dev/null @@ -1,5 +0,0 @@ -{ - "cursorPosition" : "896,0", - "scrollLine" : "0", - "source_window_id" : "" -} \ No newline at end of file diff --git a/.Rproj.user/AFA017A7/sources/prop/INDEX b/.Rproj.user/AFA017A7/sources/prop/INDEX deleted file mode 100644 index e1d8a99..0000000 --- a/.Rproj.user/AFA017A7/sources/prop/INDEX +++ /dev/null @@ -1,17 +0,0 @@ -G%3A%2FMy%20Drive%2FAKI%20and%20CKD%2FAKI%20definition%2FAKI_definition_v4.1.rmd="D3AF2BC0" -G%3A%2FMy%20Drive%2FBlood%20Transfusion%2FTerumo%2FManuscript%2FHIV_markov_calibration.R="4A9C31D4" -G%3A%2FMy%20Drive%2FBlood%20Transfusion%2FTerumo%2FManuscript%2FMarkov%20models.R="1D57F7EE" -G%3A%2FMy%20Drive%2FBlood%20Transfusion%2FTerumo%2Fghana_hea%2FHIV_markov_calibration.R="342F5B7A" -G%3A%2FMy%20Drive%2FBlood%20Transfusion%2FTerumo%2Fghana_hea%2FMarkov%20models.R="62F7F4F6" -G%3A%2FMy%20Drive%2FBlood%20Transfusion%2Fccpmodelling%2Fmanuscript%2FCCP_drivers_success_r1.Rmd="D653D6D3" -G%3A%2FMy%20Drive%2FBlood%20Transfusion%2Fccpmodelling%2Fmanuscript%2FCCP_manuscript.Rmd="82E33C26" -G%3A%2FMy%20Drive%2FProjects%2Fblood_safety_portfolio%2Fmanuscript%2Foptimal%20portfolio%20manuscript_r1.Rmd="605EC871" -G%3A%2FMy%20Drive%2FProjects%2Fghana_hea%2F.Rhistory="B70BEADA" -G%3A%2FMy%20Drive%2FProjects%2Fghana_hea%2FHIV_markov_calibration%20noART4.R="38FF46F7" -G%3A%2FMy%20Drive%2FProjects%2Fghana_hea%2FHIV_markov_calibration.R="23CA6664" -G%3A%2FMy%20Drive%2FProjects%2Fghana_hea%2FMarkov%20models.R="9F2394D3" -G%3A%2FMy%20Drive%2FProjects%2Fghana_hea%2Fghana_hea_model.R="FF0088C" -G%3A%2FMy%20Drive%2FProjects%2Fghana_hea%2Fmanuscript%2Fghana_hea.Rmd="22333E9D" -G%3A%2FMy%20Drive%2FProjects%2Fghana_hea%2Fscripts%2FHIV_markov_calibration.R="2B6C86E6" -G%3A%2FMy%20Drive%2FProjects%2Fghana_hea%2Fscripts%2Fghana_hea_model.R="E1ACB01F" -G%3A%2FMy%20Drive%2FProjects%2FquarantineTesting%2Fmanuscript%2FQuarantineTesting_manuscript.Rmd="D59E596C" diff --git a/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/0E787812051CABF7/chunks.json b/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/0E787812051CABF7/chunks.json deleted file mode 100644 index ecc267c..0000000 --- a/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/0E787812051CABF7/chunks.json +++ /dev/null @@ -1 +0,0 @@ -{"chunk_definitions":[{"row":68,"row_count":1,"visible":true,"expansion_state":0,"options":{"engine":"r","include":false,"label":"setup"},"document_id":"A4F821A","chunk_id":"csetup_chunk","chunk_label":"setup"},{"row":191,"row_count":1,"visible":true,"expansion_state":0,"options":{"engine":"r","include":false,"label":"unnamed-chunk-2"},"document_id":"A4F821A","chunk_id":"cd9y3geb2hqwa","chunk_label":"unnamed-chunk-1"},{"row":334,"row_count":1,"visible":true,"expansion_state":0,"options":{"engine":"r","include":false,"label":"param_tables"},"document_id":"A4F821A","chunk_id":"cnrqtuinc63ad","chunk_label":"param_tables"},{"row":460,"row_count":1,"visible":true,"expansion_state":0,"options":{"engine":"r","include":false,"label":"gen_figs"},"document_id":"A4F821A","chunk_id":"c32sqpqrnto1h","chunk_label":"gen_figs"}],"doc_write_time":1611680306,"chunk_rendered_width":661} \ No newline at end of file diff --git a/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/0E78781206AF445B/chunks.json b/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/0E78781206AF445B/chunks.json deleted file mode 100644 index ca5bf41..0000000 --- a/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/0E78781206AF445B/chunks.json +++ /dev/null @@ -1 +0,0 @@ -{"chunk_definitions":[],"doc_write_time":1613349937} \ No newline at end of file diff --git a/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/0E78781221F2D458/chunks.json b/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/0E78781221F2D458/chunks.json deleted file mode 100644 index ca5bf41..0000000 --- a/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/0E78781221F2D458/chunks.json +++ /dev/null @@ -1 +0,0 @@ -{"chunk_definitions":[],"doc_write_time":1613349937} \ No newline at end of file diff --git a/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/0E787812436FBCBD/chunks.json b/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/0E787812436FBCBD/chunks.json deleted file mode 100644 index 3a7d5b6..0000000 --- a/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/0E787812436FBCBD/chunks.json +++ /dev/null @@ -1 +0,0 @@ -{"chunk_definitions":[{"row":68,"row_count":1,"visible":true,"expansion_state":0,"options":{"engine":"r","include":false,"label":"setup"},"document_id":"A4F821A","chunk_id":"csetup_chunk","chunk_label":"setup"},{"row":191,"row_count":1,"visible":true,"expansion_state":0,"options":{"engine":"r","include":false,"label":"unnamed-chunk-2"},"document_id":"A4F821A","chunk_id":"cd9y3geb2hqwa","chunk_label":"unnamed-chunk-1"},{"row":334,"row_count":1,"visible":true,"expansion_state":0,"options":{"engine":"r","include":false,"label":"param_tables"},"document_id":"A4F821A","chunk_id":"cnrqtuinc63ad","chunk_label":"param_tables"},{"row":460,"row_count":1,"visible":true,"expansion_state":0,"options":{"engine":"r","include":false,"label":"gen_figs"},"document_id":"A4F821A","chunk_id":"c32sqpqrnto1h","chunk_label":"gen_figs"}],"doc_write_time":1614356633} \ No newline at end of file diff --git a/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/0E78781244D75201/chunks.json b/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/0E78781244D75201/chunks.json deleted file mode 100644 index b869df0..0000000 --- a/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/0E78781244D75201/chunks.json +++ /dev/null @@ -1 +0,0 @@ -{"chunk_definitions":[{"row":67,"row_count":1,"visible":true,"expansion_state":0,"options":{"engine":"r","label":"setup","include":false},"document_id":"A4F821A","chunk_id":"csetup_chunk","chunk_label":"setup"},{"row":206,"row_count":1,"visible":true,"expansion_state":0,"options":{"engine":"r","include":false,"label":"unnamed-chunk-1"},"document_id":"A4F821A","chunk_id":"cd9y3geb2hqwa","chunk_label":"unnamed-chunk-1"},{"row":398,"row_count":1,"visible":true,"expansion_state":0,"options":{"engine":"r","label":"param_tables","include":false},"document_id":"A4F821A","chunk_id":"cnrqtuinc63ad","chunk_label":"param_tables"},{"row":527,"row_count":1,"visible":true,"expansion_state":0,"options":{"engine":"r","label":"gen_figs","include":false},"document_id":"AB698BCE","chunk_id":"cno49zw5osrcu","chunk_label":"gen_figs"},{"row":649,"row_count":1,"visible":true,"expansion_state":0,"options":{"engine":"r","include":false,"label":"unnamed-chunk-48"},"document_id":"DFD0C418","chunk_id":"c3i4s5tqvf5ak","chunk_label":"unnamed-chunk-2"}],"doc_write_time":1614720893,"working_dir":null,"default_chunk_options":{},"chunk_rendered_width":661} \ No newline at end of file diff --git a/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/0E7878124EDDE566/chunks.json b/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/0E7878124EDDE566/chunks.json deleted file mode 100644 index eafc98e..0000000 --- a/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/0E7878124EDDE566/chunks.json +++ /dev/null @@ -1 +0,0 @@ -{"chunk_definitions":[{"row":83,"row_count":1,"visible":true,"expansion_state":0,"options":{"engine":"r","label":"setup","include":false},"document_id":"AB698BCE","chunk_id":"csetup_chunk","chunk_label":"setup"},{"row":279,"row_count":1,"visible":true,"expansion_state":0,"options":{"engine":"r","include":false,"label":"unnamed-chunk-14"},"document_id":"AB698BCE","chunk_id":"cajkyzckfkd5q","chunk_label":"unnamed-chunk-1"}],"doc_write_time":1616189477,"working_dir":null,"default_chunk_options":{}} \ No newline at end of file diff --git a/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/0E7878127259A4E7/chunks.json b/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/0E7878127259A4E7/chunks.json deleted file mode 100644 index f967391..0000000 --- a/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/0E7878127259A4E7/chunks.json +++ /dev/null @@ -1 +0,0 @@ -{"chunk_definitions":[{"row":66,"row_count":1,"visible":true,"expansion_state":0,"options":{"engine":"r","label":"setup","include":false},"document_id":"A4F821A","chunk_id":"csetup_chunk","chunk_label":"setup"},{"row":205,"row_count":1,"visible":true,"expansion_state":0,"options":{"engine":"r","include":false,"label":"unnamed-chunk-53"},"document_id":"A4F821A","chunk_id":"cd9y3geb2hqwa","chunk_label":"unnamed-chunk-1"},{"row":396,"row_count":1,"visible":true,"expansion_state":0,"options":{"engine":"r","label":"param_tables","include":false},"document_id":"A4F821A","chunk_id":"cnrqtuinc63ad","chunk_label":"param_tables"},{"row":522,"row_count":1,"visible":true,"expansion_state":0,"options":{"engine":"r","include":false,"label":"gen_figs"},"document_id":"A4F821A","chunk_id":"c32sqpqrnto1h","chunk_label":"gen_figs"},{"row":644,"row_count":1,"visible":true,"expansion_state":0,"options":{"engine":"r","include":false,"label":"unnamed-chunk-48"},"document_id":"DFD0C418","chunk_id":"c3i4s5tqvf5ak","chunk_label":"unnamed-chunk-2"}],"doc_write_time":1614717610,"working_dir":null,"default_chunk_options":{}} \ No newline at end of file diff --git a/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/0E787812AD286F79/chunks.json b/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/0E787812AD286F79/chunks.json deleted file mode 100644 index 9f1e719..0000000 --- a/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/0E787812AD286F79/chunks.json +++ /dev/null @@ -1 +0,0 @@ -{"chunk_definitions":[{"row":83,"row_count":1,"visible":true,"expansion_state":0,"options":{"engine":"r","label":"setup","include":false},"document_id":"AB698BCE","chunk_id":"csetup_chunk","chunk_label":"setup"}],"doc_write_time":1616418532,"working_dir":null,"default_chunk_options":{}} \ No newline at end of file diff --git a/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/0E787812B34E8764/chunks.json b/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/0E787812B34E8764/chunks.json deleted file mode 100644 index 4abf0e4..0000000 --- a/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/0E787812B34E8764/chunks.json +++ /dev/null @@ -1 +0,0 @@ -{"chunk_definitions":[],"doc_write_time":1616966473} \ No newline at end of file diff --git a/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/0E787812D9D467DB/chunks.json b/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/0E787812D9D467DB/chunks.json deleted file mode 100644 index 2e448cf..0000000 --- a/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/0E787812D9D467DB/chunks.json +++ /dev/null @@ -1 +0,0 @@ -{"chunk_definitions":[],"doc_write_time":1616419166} \ No newline at end of file diff --git a/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/0E787812DA676F38/chunks.json b/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/0E787812DA676F38/chunks.json deleted file mode 100644 index a15675d..0000000 --- a/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/0E787812DA676F38/chunks.json +++ /dev/null @@ -1 +0,0 @@ -{"chunk_definitions":[{"row":81,"row_count":1,"visible":true,"expansion_state":0,"options":{"engine":"r","label":"setup","include":false},"document_id":"A4F821A","chunk_id":"csetup_chunk","chunk_label":"setup"},{"row":236,"row_count":1,"visible":true,"expansion_state":0,"options":{"engine":"r","include":false,"label":"unnamed-chunk-5"},"document_id":"A4F821A","chunk_id":"cd9y3geb2hqwa","chunk_label":"unnamed-chunk-1"},{"row":429,"row_count":1,"visible":true,"expansion_state":0,"options":{"engine":"r","label":"param_tables","include":false},"document_id":"AB698BCE","chunk_id":"clas0ah166rww","chunk_label":"param_tables"},{"row":568,"row_count":1,"visible":true,"expansion_state":0,"options":{"engine":"r","label":"gen_figs","include":false},"document_id":"AB698BCE","chunk_id":"cno49zw5osrcu","chunk_label":"gen_figs"},{"row":688,"row_count":1,"visible":true,"expansion_state":0,"options":{"engine":"r","include":false,"label":"unnamed-chunk-6"},"document_id":"AB698BCE","chunk_id":"c88sr4n76nyr0","chunk_label":"unnamed-chunk-2"},{"row":808,"row_count":1,"visible":true,"expansion_state":0,"options":{"engine":"r","label":"t_calcs","include":false},"document_id":"AB698BCE","chunk_id":"cf0tu86d1w8mr","chunk_label":"t_calcs"},{"row":862,"row_count":1,"visible":true,"expansion_state":0,"options":{"engine":"r","label":"t_chronic_disease_states","include":false},"document_id":"AB698BCE","chunk_id":"cwmqt8cj3qlrw","chunk_label":"t_chronic_disease_states"}],"doc_write_time":1615496435,"chunk_rendered_width":661,"working_dir":null,"default_chunk_options":{}} \ No newline at end of file diff --git a/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/0E787812DB8D96CD/chunks.json b/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/0E787812DB8D96CD/chunks.json deleted file mode 100644 index 6f4f7aa..0000000 --- a/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/0E787812DB8D96CD/chunks.json +++ /dev/null @@ -1 +0,0 @@ -{"chunk_definitions":[],"doc_write_time":1615067541} \ No newline at end of file diff --git a/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/0E787812DC4F2C28/chunks.json b/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/0E787812DC4F2C28/chunks.json deleted file mode 100644 index 3c3e08e..0000000 --- a/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/0E787812DC4F2C28/chunks.json +++ /dev/null @@ -1 +0,0 @@ -{"chunk_definitions":[],"doc_write_time":1616189753} \ No newline at end of file diff --git a/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/0E787812DE3D80F1/chunks.json b/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/0E787812DE3D80F1/chunks.json deleted file mode 100644 index f5bd150..0000000 --- a/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/0E787812DE3D80F1/chunks.json +++ /dev/null @@ -1 +0,0 @@ -{"chunk_definitions":[{"row":83,"row_count":1,"visible":true,"expansion_state":0,"options":{"engine":"r","label":"setup","include":false},"document_id":"A4F821A","chunk_id":"csetup_chunk","chunk_label":"setup"},{"row":238,"row_count":1,"visible":true,"expansion_state":0,"options":{"engine":"r","include":false,"label":"unnamed-chunk-5"},"document_id":"A4F821A","chunk_id":"cd9y3geb2hqwa","chunk_label":"unnamed-chunk-1"},{"row":427,"row_count":1,"visible":true,"expansion_state":0,"options":{"engine":"r","label":"param_tables","include":false},"document_id":"AB698BCE","chunk_id":"clas0ah166rww","chunk_label":"param_tables"},{"row":566,"row_count":1,"visible":true,"expansion_state":0,"options":{"engine":"r","label":"gen_figs","include":false},"document_id":"AB698BCE","chunk_id":"cno49zw5osrcu","chunk_label":"gen_figs"},{"row":688,"row_count":1,"visible":true,"expansion_state":0,"options":{"engine":"r","include":false,"label":"unnamed-chunk-6"},"document_id":"AB698BCE","chunk_id":"c88sr4n76nyr0","chunk_label":"unnamed-chunk-2"},{"row":810,"row_count":1,"visible":true,"expansion_state":0,"options":{"engine":"r","label":"t_calcs","include":false},"document_id":"AB698BCE","chunk_id":"cf0tu86d1w8mr","chunk_label":"t_calcs"}],"doc_write_time":1615659962,"chunk_rendered_width":700} \ No newline at end of file diff --git a/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/0E787812DEEB16E0/chunks.json b/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/0E787812DEEB16E0/chunks.json deleted file mode 100644 index f947fe1..0000000 --- a/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/0E787812DEEB16E0/chunks.json +++ /dev/null @@ -1 +0,0 @@ -{"chunk_definitions":[{"row":553,"row_count":1,"visible":true,"expansion_state":0,"options":{"engine":"r","label":"gen_figs","include":false},"document_id":"AB698BCE","chunk_id":"cno49zw5osrcu","chunk_label":"gen_figs"},{"row":67,"row_count":1,"visible":true,"expansion_state":0,"options":{"engine":"r","label":"setup","include":false},"document_id":"A4F821A","chunk_id":"csetup_chunk","chunk_label":"setup"},{"row":222,"row_count":1,"visible":true,"expansion_state":0,"options":{"engine":"r","include":false,"label":"unnamed-chunk-33"},"document_id":"A4F821A","chunk_id":"cd9y3geb2hqwa","chunk_label":"unnamed-chunk-1"},{"row":414,"row_count":1,"visible":true,"expansion_state":0,"options":{"engine":"r","label":"param_tables","include":false},"document_id":"A4F821A","chunk_id":"cnrqtuinc63ad","chunk_label":"param_tables"},{"row":677,"row_count":1,"visible":true,"expansion_state":0,"options":{"engine":"r","include":false,"label":"unnamed-chunk-32"},"document_id":"AB698BCE","chunk_id":"c88sr4n76nyr0","chunk_label":"unnamed-chunk-2"}],"doc_write_time":1615064362,"chunk_rendered_width":700,"working_dir":null,"default_chunk_options":{}} \ No newline at end of file diff --git a/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/0E787812E4A9E94C/chunks.json b/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/0E787812E4A9E94C/chunks.json deleted file mode 100644 index b501ae4..0000000 --- a/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/0E787812E4A9E94C/chunks.json +++ /dev/null @@ -1 +0,0 @@ -{"chunk_definitions":[{"row":81,"row_count":1,"visible":true,"expansion_state":0,"options":{"engine":"r","label":"setup","include":false},"document_id":"A4F821A","chunk_id":"csetup_chunk","chunk_label":"setup"},{"row":236,"row_count":1,"visible":true,"expansion_state":0,"options":{"engine":"r","include":false,"label":"unnamed-chunk-5"},"document_id":"A4F821A","chunk_id":"cd9y3geb2hqwa","chunk_label":"unnamed-chunk-1"},{"row":429,"row_count":1,"visible":true,"expansion_state":0,"options":{"engine":"r","label":"param_tables","include":false},"document_id":"AB698BCE","chunk_id":"clas0ah166rww","chunk_label":"param_tables"},{"row":568,"row_count":1,"visible":true,"expansion_state":0,"options":{"engine":"r","label":"gen_figs","include":false},"document_id":"AB698BCE","chunk_id":"cno49zw5osrcu","chunk_label":"gen_figs"},{"row":688,"row_count":1,"visible":true,"expansion_state":0,"options":{"engine":"r","include":false,"label":"unnamed-chunk-6"},"document_id":"AB698BCE","chunk_id":"c88sr4n76nyr0","chunk_label":"unnamed-chunk-2"},{"row":808,"row_count":1,"visible":true,"expansion_state":0,"options":{"engine":"r","label":"t_calcs","include":false},"document_id":"AB698BCE","chunk_id":"cf0tu86d1w8mr","chunk_label":"t_calcs"}],"doc_write_time":1615496491} \ No newline at end of file diff --git a/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/0E787812FE455754/chunks.json b/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/0E787812FE455754/chunks.json deleted file mode 100644 index 009bdcb..0000000 --- a/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/0E787812FE455754/chunks.json +++ /dev/null @@ -1 +0,0 @@ -{"chunk_definitions":[{"row":83,"row_count":1,"visible":true,"expansion_state":0,"options":{"engine":"r","label":"setup","include":false},"document_id":"AB698BCE","chunk_id":"csetup_chunk","chunk_label":"setup"},{"row":279,"row_count":1,"visible":true,"expansion_state":0,"options":{"engine":"r","include":false,"label":"unnamed-chunk-1"},"document_id":"AB698BCE","chunk_id":"cajkyzckfkd5q","chunk_label":"unnamed-chunk-1"},{"row":468,"row_count":1,"visible":true,"expansion_state":0,"options":{"engine":"r","label":"param_tables","include":false},"document_id":"AB698BCE","chunk_id":"c42v9tq64yj7p","chunk_label":"param_tables"},{"row":607,"row_count":1,"visible":true,"expansion_state":0,"options":{"engine":"r","label":"gen_figs","include":false},"document_id":"AB698BCE","chunk_id":"cpxyzzo0wpe10","chunk_label":"gen_figs"},{"row":729,"row_count":1,"visible":true,"expansion_state":0,"options":{"engine":"r","include":false,"label":"unnamed-chunk-2"},"document_id":"AB698BCE","chunk_id":"cnvygxm11g3jq","chunk_label":"unnamed-chunk-2"},{"row":851,"row_count":1,"visible":true,"expansion_state":0,"options":{"engine":"r","label":"t_calcs","include":false},"document_id":"AB698BCE","chunk_id":"cesw678eghn6a","chunk_label":"t_calcs"},{"row":905,"row_count":1,"visible":true,"expansion_state":0,"options":{"engine":"r","label":"t_chronic_disease_states","include":false},"document_id":"AB698BCE","chunk_id":"cklzvur6nj679","chunk_label":"t_chronic_disease_states"}],"doc_write_time":1616365791,"working_dir":null,"default_chunk_options":{}} \ No newline at end of file diff --git a/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/AFA017A71A2326E3/chunks.json b/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/AFA017A71A2326E3/chunks.json deleted file mode 100644 index 299777d..0000000 --- a/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/AFA017A71A2326E3/chunks.json +++ /dev/null @@ -1 +0,0 @@ -{"chunk_definitions":[{"chunk_id":"csetup_chunk","chunk_label":"setup","document_id":"A4F821A","expansion_state":0,"options":{"engine":"r","include":false,"label":"setup"},"row":76,"row_count":1,"visible":true},{"chunk_id":"cd9y3geb2hqwa","chunk_label":"unnamed-chunk-1","document_id":"A4F821A","expansion_state":0,"options":{"engine":"r","include":false,"label":"unnamed-chunk-2"},"row":200,"row_count":1,"visible":true},{"chunk_id":"cnrqtuinc63ad","chunk_label":"param_tables","document_id":"A4F821A","expansion_state":0,"options":{"engine":"r","include":false,"label":"param_tables"},"row":345,"row_count":1,"visible":true},{"chunk_id":"c32sqpqrnto1h","chunk_label":"gen_figs","document_id":"A4F821A","expansion_state":0,"options":{"engine":"r","include":false,"label":"gen_figs"},"row":472,"row_count":1,"visible":true}],"chunk_rendered_width":603,"doc_write_time":1611256703} \ No newline at end of file diff --git a/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/AFA017A72327CA3A/chunks.json b/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/AFA017A72327CA3A/chunks.json deleted file mode 100644 index f7ff7c6..0000000 --- a/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/AFA017A72327CA3A/chunks.json +++ /dev/null @@ -1 +0,0 @@ -{"chunk_definitions":[{"chunk_id":"csetup_chunk","chunk_label":"setup","document_id":"A4F821A","expansion_state":0,"options":{"engine":"r","include":false,"label":"setup"},"row":69,"row_count":1,"visible":true},{"chunk_id":"cd9y3geb2hqwa","chunk_label":"unnamed-chunk-1","document_id":"A4F821A","expansion_state":0,"options":{"engine":"r","include":false,"label":"unnamed-chunk-23"},"row":179,"row_count":1,"visible":true},{"chunk_id":"cnrqtuinc63ad","chunk_label":"param_tables","document_id":"A4F821A","expansion_state":0,"options":{"engine":"r","include":false,"label":"param_tables"},"row":283,"row_count":1,"visible":true},{"chunk_id":"covkzqnhu794a","chunk_label":"gen_figs","document_id":"A4F821A","expansion_state":0,"options":{"engine":"r","include":false,"label":"gen_figs"},"row":380,"row_count":1,"visible":true}],"default_chunk_options":{},"doc_write_time":1608050760,"working_dir":null} \ No newline at end of file diff --git a/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/AFA017A72A1899FC/chunks.json b/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/AFA017A72A1899FC/chunks.json deleted file mode 100644 index 867450d..0000000 --- a/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/AFA017A72A1899FC/chunks.json +++ /dev/null @@ -1 +0,0 @@ -{"chunk_definitions":[{"chunk_id":"csetup_chunk","chunk_label":"setup","document_id":"A4F821A","expansion_state":0,"options":{"engine":"r","include":false,"label":"setup"},"row":72,"row_count":1,"visible":true},{"chunk_id":"cd9y3geb2hqwa","chunk_label":"unnamed-chunk-1","document_id":"A4F821A","expansion_state":0,"options":{"engine":"r","include":false,"label":"unnamed-chunk-4"},"row":196,"row_count":1,"visible":true},{"chunk_id":"cnrqtuinc63ad","chunk_label":"param_tables","document_id":"A4F821A","expansion_state":0,"options":{"engine":"r","include":false,"label":"param_tables"},"row":339,"row_count":1,"visible":true},{"chunk_id":"c32sqpqrnto1h","chunk_label":"gen_figs","document_id":"A4F821A","expansion_state":0,"options":{"engine":"r","include":false,"label":"gen_figs"},"row":466,"row_count":1,"visible":true},{"chunk_id":"cyn03cy6c88hx","chunk_label":"unnamed-chunk-2","document_id":"A4F821A","expansion_state":0,"options":{},"row":594,"row_count":1,"visible":true}],"default_chunk_options":{},"doc_write_time":1609540279,"working_dir":null} \ No newline at end of file diff --git a/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/AFA017A72D6431ED/chunks.json b/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/AFA017A72D6431ED/chunks.json deleted file mode 100644 index 96d66ec..0000000 --- a/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/AFA017A72D6431ED/chunks.json +++ /dev/null @@ -1 +0,0 @@ -{"chunk_definitions":[{"chunk_id":"csetup_chunk","chunk_label":"setup","document_id":"A4F821A","expansion_state":0,"options":{"engine":"r","include":false,"label":"setup"},"row":72,"row_count":1,"visible":true},{"chunk_id":"cd9y3geb2hqwa","chunk_label":"unnamed-chunk-1","document_id":"A4F821A","expansion_state":0,"options":{"engine":"r","include":false,"label":"unnamed-chunk-2"},"row":196,"row_count":1,"visible":true},{"chunk_id":"cnrqtuinc63ad","chunk_label":"param_tables","document_id":"A4F821A","expansion_state":0,"options":{"engine":"r","include":false,"label":"param_tables"},"row":341,"row_count":1,"visible":true},{"chunk_id":"c32sqpqrnto1h","chunk_label":"gen_figs","document_id":"A4F821A","expansion_state":0,"options":{"engine":"r","include":false,"label":"gen_figs"},"row":468,"row_count":1,"visible":true}],"doc_write_time":1609900558} \ No newline at end of file diff --git a/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/AFA017A74CBACED5/chunks.json b/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/AFA017A74CBACED5/chunks.json deleted file mode 100644 index ef742ad..0000000 --- a/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/AFA017A74CBACED5/chunks.json +++ /dev/null @@ -1 +0,0 @@ -{"chunk_definitions":[{"chunk_id":"csetup_chunk","chunk_label":"setup","document_id":"A4F821A","expansion_state":0,"options":{"engine":"r","include":false,"label":"setup"},"row":76,"row_count":1,"visible":true},{"chunk_id":"cd9y3geb2hqwa","chunk_label":"unnamed-chunk-1","document_id":"A4F821A","expansion_state":0,"options":{"engine":"r","include":false,"label":"unnamed-chunk-2"},"row":200,"row_count":1,"visible":true},{"chunk_id":"cnrqtuinc63ad","chunk_label":"param_tables","document_id":"A4F821A","expansion_state":0,"options":{"engine":"r","include":false,"label":"param_tables"},"row":345,"row_count":1,"visible":true},{"chunk_id":"c32sqpqrnto1h","chunk_label":"gen_figs","document_id":"A4F821A","expansion_state":0,"options":{"engine":"r","include":false,"label":"gen_figs"},"row":472,"row_count":1,"visible":true}],"chunk_rendered_width":700,"doc_write_time":1611673282} \ No newline at end of file diff --git a/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/AFA017A766DE720F/chunks.json b/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/AFA017A766DE720F/chunks.json deleted file mode 100644 index af6d217..0000000 --- a/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/AFA017A766DE720F/chunks.json +++ /dev/null @@ -1 +0,0 @@ -{"chunk_definitions":[{"chunk_id":"csetup_chunk","chunk_label":"setup","document_id":"A4F821A","expansion_state":0,"options":{"engine":"r","include":false,"label":"setup"},"row":79,"row_count":1,"visible":true},{"chunk_id":"c85zei9vdc9d1","chunk_label":"unnamed-chunk-1","document_id":"A4F821A","expansion_state":0,"options":{"engine":"r","include":false,"label":"unnamed-chunk-225"},"row":201,"row_count":1,"visible":true},{"chunk_id":"c9xgiwxklrkzl","chunk_label":"unnamed-chunk-2","document_id":"A4F821A","expansion_state":0,"options":{"engine":"r","include":false,"label":"unnamed-chunk-233"},"row":280,"row_count":1,"visible":true}],"default_chunk_options":{},"doc_write_time":1607986377,"working_dir":null} \ No newline at end of file diff --git a/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/AFA017A77D6F4634/chunks.json b/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/AFA017A77D6F4634/chunks.json deleted file mode 100644 index 96d66ec..0000000 --- a/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/AFA017A77D6F4634/chunks.json +++ /dev/null @@ -1 +0,0 @@ -{"chunk_definitions":[{"chunk_id":"csetup_chunk","chunk_label":"setup","document_id":"A4F821A","expansion_state":0,"options":{"engine":"r","include":false,"label":"setup"},"row":72,"row_count":1,"visible":true},{"chunk_id":"cd9y3geb2hqwa","chunk_label":"unnamed-chunk-1","document_id":"A4F821A","expansion_state":0,"options":{"engine":"r","include":false,"label":"unnamed-chunk-2"},"row":196,"row_count":1,"visible":true},{"chunk_id":"cnrqtuinc63ad","chunk_label":"param_tables","document_id":"A4F821A","expansion_state":0,"options":{"engine":"r","include":false,"label":"param_tables"},"row":341,"row_count":1,"visible":true},{"chunk_id":"c32sqpqrnto1h","chunk_label":"gen_figs","document_id":"A4F821A","expansion_state":0,"options":{"engine":"r","include":false,"label":"gen_figs"},"row":468,"row_count":1,"visible":true}],"doc_write_time":1609900558} \ No newline at end of file diff --git a/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/AFA017A7B872B75/chunks.json b/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/AFA017A7B872B75/chunks.json deleted file mode 100644 index 9624a6d..0000000 --- a/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/AFA017A7B872B75/chunks.json +++ /dev/null @@ -1 +0,0 @@ -{"chunk_definitions":[{"chunk_id":"csetup_chunk","chunk_label":"setup","document_id":"A4F821A","expansion_state":0,"options":{"engine":"r","include":false,"label":"setup"},"row":69,"row_count":1,"visible":true},{"chunk_id":"cd9y3geb2hqwa","chunk_label":"unnamed-chunk-1","document_id":"A4F821A","expansion_state":0,"options":{"engine":"r","include":false,"label":"unnamed-chunk-23"},"row":179,"row_count":1,"visible":true},{"chunk_id":"cnrqtuinc63ad","chunk_label":"param_tables","document_id":"A4F821A","expansion_state":0,"options":{"engine":"r","include":false,"label":"param_tables"},"row":283,"row_count":1,"visible":true},{"chunk_id":"covkzqnhu794a","chunk_label":"gen_figs","document_id":"A4F821A","expansion_state":0,"options":{"engine":"r","include":false,"label":"gen_figs"},"row":380,"row_count":1,"visible":true}],"doc_write_time":1608211541} \ No newline at end of file diff --git a/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/AFA017A7CD2CBEE8/chunks.json b/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/AFA017A7CD2CBEE8/chunks.json deleted file mode 100644 index 5330471..0000000 --- a/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/AFA017A7CD2CBEE8/chunks.json +++ /dev/null @@ -1 +0,0 @@ -{"chunk_definitions":[{"chunk_id":"csetup_chunk","chunk_label":"setup","document_id":"A4F821A","expansion_state":0,"options":{"engine":"r","include":false,"label":"setup"},"row":72,"row_count":1,"visible":true},{"chunk_id":"cd9y3geb2hqwa","chunk_label":"unnamed-chunk-1","document_id":"A4F821A","expansion_state":0,"options":{"engine":"r","include":false,"label":"unnamed-chunk-4"},"row":196,"row_count":1,"visible":true},{"chunk_id":"cnrqtuinc63ad","chunk_label":"param_tables","document_id":"A4F821A","expansion_state":0,"options":{"engine":"r","include":false,"label":"param_tables"},"row":339,"row_count":1,"visible":true},{"chunk_id":"c32sqpqrnto1h","chunk_label":"gen_figs","document_id":"A4F821A","expansion_state":0,"options":{"engine":"r","include":false,"label":"gen_figs"},"row":466,"row_count":1,"visible":true}],"doc_write_time":1609545559} \ No newline at end of file diff --git a/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/AFA017A7CDF5112E/chunks.json b/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/AFA017A7CDF5112E/chunks.json deleted file mode 100644 index 8942db7..0000000 --- a/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/AFA017A7CDF5112E/chunks.json +++ /dev/null @@ -1 +0,0 @@ -{"chunk_definitions":[{"chunk_id":"csetup_chunk","chunk_label":"setup","document_id":"A4F821A","expansion_state":0,"options":{"engine":"r","include":false,"label":"setup"},"row":72,"row_count":1,"visible":true},{"chunk_id":"cd9y3geb2hqwa","chunk_label":"unnamed-chunk-1","document_id":"A4F821A","expansion_state":0,"options":{"engine":"r","include":false,"label":"unnamed-chunk-2"},"row":196,"row_count":1,"visible":true},{"chunk_id":"cnrqtuinc63ad","chunk_label":"param_tables","document_id":"A4F821A","expansion_state":0,"options":{"engine":"r","include":false,"label":"param_tables"},"row":341,"row_count":1,"visible":true},{"chunk_id":"c32sqpqrnto1h","chunk_label":"gen_figs","document_id":"A4F821A","expansion_state":0,"options":{"engine":"r","include":false,"label":"gen_figs"},"row":468,"row_count":1,"visible":true},{"chunk_id":"ckgpymexev271","chunk_label":"unnamed-chunk-2","document_id":"A4F821A","expansion_state":0,"options":{},"row":596,"row_count":1,"visible":true},{"chunk_id":"c99ztwo0j3yal","chunk_label":"t_calcs","document_id":"A4F821A","expansion_state":0,"options":{},"row":710,"row_count":1,"visible":true},{"chunk_id":"czlhdc1mb9hv9","chunk_label":"t_chronic_disease_states","document_id":"A4F821A","expansion_state":0,"options":{},"row":765,"row_count":1,"visible":true}],"default_chunk_options":{},"doc_write_time":1609900073,"working_dir":null} \ No newline at end of file diff --git a/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/AFA017A7E0FB8A25/chunks.json b/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/AFA017A7E0FB8A25/chunks.json deleted file mode 100644 index 64bc54b..0000000 --- a/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/AFA017A7E0FB8A25/chunks.json +++ /dev/null @@ -1 +0,0 @@ -{"chunk_definitions":[{"chunk_id":"csetup_chunk","chunk_label":"setup","document_id":"A4F821A","expansion_state":0,"options":{"engine":"r","include":false,"label":"setup"},"row":78,"row_count":1,"visible":true},{"chunk_id":"c85zei9vdc9d1","chunk_label":"unnamed-chunk-1","document_id":"A4F821A","expansion_state":0,"options":{"engine":"r","include":false,"label":"unnamed-chunk-7"},"row":93,"row_count":1,"visible":true}],"default_chunk_options":{},"doc_write_time":1607882407,"working_dir":null} \ No newline at end of file diff --git a/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/AFA017A7E2FA29E6/chunks.json b/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/AFA017A7E2FA29E6/chunks.json deleted file mode 100644 index 5330471..0000000 --- a/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/AFA017A7E2FA29E6/chunks.json +++ /dev/null @@ -1 +0,0 @@ -{"chunk_definitions":[{"chunk_id":"csetup_chunk","chunk_label":"setup","document_id":"A4F821A","expansion_state":0,"options":{"engine":"r","include":false,"label":"setup"},"row":72,"row_count":1,"visible":true},{"chunk_id":"cd9y3geb2hqwa","chunk_label":"unnamed-chunk-1","document_id":"A4F821A","expansion_state":0,"options":{"engine":"r","include":false,"label":"unnamed-chunk-4"},"row":196,"row_count":1,"visible":true},{"chunk_id":"cnrqtuinc63ad","chunk_label":"param_tables","document_id":"A4F821A","expansion_state":0,"options":{"engine":"r","include":false,"label":"param_tables"},"row":339,"row_count":1,"visible":true},{"chunk_id":"c32sqpqrnto1h","chunk_label":"gen_figs","document_id":"A4F821A","expansion_state":0,"options":{"engine":"r","include":false,"label":"gen_figs"},"row":466,"row_count":1,"visible":true}],"doc_write_time":1609545559} \ No newline at end of file diff --git a/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/AFA017A7EB91A20C/chunks.json b/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/AFA017A7EB91A20C/chunks.json deleted file mode 100644 index 65c23fc..0000000 --- a/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/AFA017A7EB91A20C/chunks.json +++ /dev/null @@ -1 +0,0 @@ -{"chunk_definitions":[{"chunk_id":"csetup_chunk","chunk_label":"setup","document_id":"A4F821A","expansion_state":0,"options":{"engine":"r","include":false,"label":"setup"},"row":69,"row_count":1,"visible":true},{"chunk_id":"cd9y3geb2hqwa","chunk_label":"unnamed-chunk-1","document_id":"A4F821A","expansion_state":0,"options":{"engine":"r","include":false,"label":"unnamed-chunk-23"},"row":179,"row_count":1,"visible":true},{"chunk_id":"cnrqtuinc63ad","chunk_label":"param_tables","document_id":"A4F821A","expansion_state":0,"options":{"engine":"r","include":false,"label":"param_tables"},"row":283,"row_count":1,"visible":true},{"chunk_id":"covkzqnhu794a","chunk_label":"gen_figs","document_id":"A4F821A","expansion_state":0,"options":{"engine":"r","include":false,"label":"gen_figs"},"row":380,"row_count":1,"visible":true}],"doc_write_time":1608302945} \ No newline at end of file diff --git a/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/AFA017A7F7A01375/chunks.json b/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/AFA017A7F7A01375/chunks.json deleted file mode 100644 index 0a48c55..0000000 --- a/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/AFA017A7F7A01375/chunks.json +++ /dev/null @@ -1 +0,0 @@ -{"chunk_definitions":[{"chunk_id":"csetup_chunk","chunk_label":"setup","document_id":"A4F821A","expansion_state":0,"options":{"engine":"r","include":false,"label":"setup"},"row":74,"row_count":1,"visible":true},{"chunk_id":"cd9y3geb2hqwa","chunk_label":"unnamed-chunk-1","document_id":"A4F821A","expansion_state":0,"options":{"engine":"r","include":false,"label":"unnamed-chunk-22"},"row":198,"row_count":1,"visible":true},{"chunk_id":"cnrqtuinc63ad","chunk_label":"param_tables","document_id":"A4F821A","expansion_state":0,"options":{"engine":"r","include":false,"label":"param_tables"},"row":302,"row_count":1,"visible":true},{"chunk_id":"cdz3u1vhiv0lt","chunk_label":"t_chronic_disease_states","document_id":"A4F821A","expansion_state":0,"options":{"engine":"r","include":false,"label":"t_chronic_disease_states"},"row":655,"row_count":1,"visible":true}],"default_chunk_options":{},"doc_write_time":1608764541,"working_dir":null} \ No newline at end of file diff --git a/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/AFA017A7FB20536E/chunks.json b/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/AFA017A7FB20536E/chunks.json deleted file mode 100644 index 67913fe..0000000 --- a/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/AFA017A7FB20536E/chunks.json +++ /dev/null @@ -1 +0,0 @@ -{"chunk_definitions":[{"chunk_id":"csetup_chunk","chunk_label":"setup","document_id":"A4F821A","expansion_state":0,"options":{"engine":"r","include":false,"label":"setup"},"row":78,"row_count":1,"visible":true},{"chunk_id":"c85zei9vdc9d1","chunk_label":"unnamed-chunk-1","document_id":"A4F821A","expansion_state":0,"options":{"engine":"r","include":false,"label":"unnamed-chunk-1"},"row":93,"row_count":1,"visible":true}],"default_chunk_options":{},"doc_write_time":1607882661,"working_dir":null} \ No newline at end of file diff --git a/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/s/chunks.json b/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/s/chunks.json deleted file mode 100644 index 4abf0e4..0000000 --- a/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/s/chunks.json +++ /dev/null @@ -1 +0,0 @@ -{"chunk_definitions":[],"doc_write_time":1616966473} \ No newline at end of file diff --git a/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/s/lib/tabwid-1.0.0/tabwid.css b/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/s/lib/tabwid-1.0.0/tabwid.css deleted file mode 100644 index 845231f..0000000 --- a/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/s/lib/tabwid-1.0.0/tabwid.css +++ /dev/null @@ -1,87 +0,0 @@ -.tabwid table{ - border-collapse:collapse; - line-height:1; - margin-left:auto; - margin-right:auto; - border-width: 0; - display: table; - margin-top: 5px; - margin-bottom: 5px; - table-layout: fixed; - border-spacing: 0; - border-color: transparent; -} -.tabwid_left table{ - margin-left:0; -} -.tabwid_right table{ - margin-right:0; -} - -.tabwid th{ - padding:0; -} -.tabwid td { - line-height: 1em; - padding: 0; - overflow: hidden; -} -.tabwid thead { - background-color: transparent; -} -.tabwid tfoot { - background-color: transparent; -} -.tabwid table tr { -background-color: transparent; -} - -.tabwid img { -background-color: transparent; -padding: 0; -border: 0; -border-radius: 0; -margin: 0; -} -.tabwid a { - text-decoration: none; -} - - - -/* desable bookdown styles */ - - -.book .book-body .page-wrapper .page-inner section.normal .tabwid table td,.book .book-body .page-wrapper .page-inner section.normal table th { - padding: 0; -} -.book .book-body .page-wrapper .page-inner section.normal .tabwid table tr { - background-color: #fff; - border-top: 0px solid #ccc; -} -.book .book-body .page-wrapper .page-inner section.normal .tabwid table tr:nth-child(2n) { - background-color: initial; -} -.book .book-body .page-wrapper .page-inner section.normal .tabwid table { - display: table; - width: initial; - border-collapse: collapse; - border-spacing: 0; - overflow: initial; -} - - -/* disable xaringan styles */ - -.remark-slide .tabwid thead, .remark-slide .tabwid tfoot, .remark-slide .tabwid tr:nth-child(even) { - background: initial; -} -.remark-slide .tabwid table { - border-top-width: 0; - border-bottom-width: 0; -} -.remark-slide-content .tabwid p{ - font-size: inital; -} - - diff --git a/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/s/lib/tabwid-1.0.0/tabwid.js b/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/s/lib/tabwid-1.0.0/tabwid.js deleted file mode 100644 index d67f181..0000000 --- a/.Rproj.user/shared/notebooks/2ADED19F-ghana_hea/1/s/lib/tabwid-1.0.0/tabwid.js +++ /dev/null @@ -1,6 +0,0 @@ -if (window.jQuery){ - $(document).ready(function() { - $(".tabwid > .table").removeClass("table"); - }); -} - diff --git a/.Rproj.user/shared/notebooks/637EA83F-test/1/0E787812D9D467DB/chunks.json b/.Rproj.user/shared/notebooks/637EA83F-test/1/0E787812D9D467DB/chunks.json deleted file mode 100644 index c07f877..0000000 --- a/.Rproj.user/shared/notebooks/637EA83F-test/1/0E787812D9D467DB/chunks.json +++ /dev/null @@ -1 +0,0 @@ -{"chunk_definitions":[],"doc_write_time":1616419181} \ No newline at end of file diff --git a/.Rproj.user/shared/notebooks/637EA83F-test/1/s/chunks.json b/.Rproj.user/shared/notebooks/637EA83F-test/1/s/chunks.json deleted file mode 100644 index 14abce3..0000000 --- a/.Rproj.user/shared/notebooks/637EA83F-test/1/s/chunks.json +++ /dev/null @@ -1 +0,0 @@ -{"chunk_definitions":[],"doc_write_time":1616419174} \ No newline at end of file diff --git a/.Rproj.user/shared/notebooks/A1373344-test/1/s/c6d0tn6usa4d5/000002.csv b/.Rproj.user/shared/notebooks/A1373344-test/1/s/c6d0tn6usa4d5/000002.csv deleted file mode 100644 index 39953cf..0000000 --- a/.Rproj.user/shared/notebooks/A1373344-test/1/s/c6d0tn6usa4d5/000002.csv +++ /dev/null @@ -1,9 +0,0 @@ -"0","library(data.table)" -"0","" -"0","dt_bc_outcomes <- fread(""../results/BC_outcomes.csv"")" -"0","" -"0","dt_bc_outcomes[ , sec_infections_buden_reduced_all_ae := (" -"0"," sep.burden_reduced+mal.burden_reduced+ftr.burden_reduced+syp.burden_reduced+" -"0"," 2*hiv.burden_reduced+2*hbv.burden_reduced+2*hcv.burden_reduced" -"0"," )]" -"0","" diff --git a/.Rproj.user/shared/notebooks/A1373344-test/1/s/c8enjerfasgxp/000002.csv b/.Rproj.user/shared/notebooks/A1373344-test/1/s/c8enjerfasgxp/000002.csv deleted file mode 100644 index 29e8083..0000000 --- a/.Rproj.user/shared/notebooks/A1373344-test/1/s/c8enjerfasgxp/000002.csv +++ /dev/null @@ -1,196 +0,0 @@ -"0","" -"0","#read in parameter tables" -"0","#all_cause_mort <- data.table(read_excel(""../data/Ghana_hea_parameters.xlsx"", sheet = ""All_cause_mort""))" -"0","dt_transitions <- data.table(read_excel(""../data/Ghana_hea_parameters.xlsx"", sheet = ""Markov_probs""))" -"0","dt_microcost_params <- data.table(read_excel(""../data/Ghana_hea_parameters.xlsx"", sheet = ""Microcost_params""))" -"0","dt_riskmod_params <- data.table(read_excel(""../data/Ghana_hea_parameters.xlsx"", sheet = ""riskmod_params""))" -"0","dt_daly_params <- data.table(read_excel(""../data/Ghana_hea_parameters.xlsx"", sheet = ""daly_params""))" -"0","" -"0","#read in results" -"0","dt_bc_outcomes <- fread(""../results/BC_outcomes.csv"")" -"0","dt_bc_costs <- fread(""../results/BC_costs.csv"")" -"0","dt_bc_dalys <- fread(""../results/BC_dalys.csv"")" -"0","dt_PSA_microcost <- fread(""../results/PSA_microcost.csv"")" -"0","dt_PSA_params <- fread(""../results/PSA_params.csv"")" -"0","dt_psa_costs <- fread(""../results/PSA_costs.csv"")" -"0","dt_psa_dalys <- fread(""../results/PSA_dalys.csv"")" -"0","dt_psa_outcomes <- fread(""../results/PSA_outcomes.csv"")" -"0","dt_univ <- fread(""../results/univ_sens_analysis.csv"")" -"0","" -"0","" -"0","#Results table" -"0","" -"0","ae_abbrevs <- c(""sep"", ""mal"", ""ftr"", ""syp"", ""hbv"", ""hcv"", ""hiv"")" -"0","" -"0","" -"0","dt_bc_outcomes_count <- dt_bc_outcomes[ , lapply(.SD, comma)]" -"0","dt_bc_outcomes_dollar <- dt_bc_outcomes[ , lapply(.SD, dollar)]" -"0","dt_bc_outcomes_number <- dt_bc_outcomes[ , lapply(.SD, comma, accuracy = .01)]" -"0","" -"0","" -"0","dt_range_count <- dt_psa_outcomes[ , lapply(.SD, " -"0"," function(x) " -"0"," paste0(""(""," -"0"," comma(min(quantile(x, probs = c(0.025, 0.975))))," -"0"," "" – ""," -"0"," comma(max(quantile(x, probs = c(0.025, 0.975))))," -"0"," "")"")" -"0"," )]" -"0","" -"0","dt_range_number <- dt_psa_outcomes[ , lapply(.SD, " -"0"," function(x) " -"0"," paste0(""(""," -"0"," comma(min(quantile(x, probs = c(0.025, 0.975))), " -"0"," accuracy = .01)," -"0"," "" – ""," -"0"," comma(max(quantile(x, probs = c(0.025, 0.975)))," -"0"," accuracy = .01)," -"0"," "")"")" -"0"," )]" -"0","" -"0","dt_range_dollar <- dt_psa_outcomes[ , lapply(.SD, " -"0"," function(x) " -"0"," paste0(""(""," -"0"," dollar(min(quantile(x, probs = c(0.025, 0.975))))," -"0"," "" – ""," -"0"," dollar(max(quantile(x, probs = c(0.025, 0.975))))," -"0"," "")"")" -"0"," )]" -"0","dt_range_np_costs <- dt_psa_costs[, lapply(.SD, " -"0"," function(x) " -"0"," paste0(""(""," -"0"," dollar(min(quantile(x, probs = c(0.025, 0.975))))," -"0"," "" – ""," -"0"," dollar(max(quantile(x, probs = c(0.025, 0.975))))," -"0"," "")"")), " -"0"," .SDcols = ae_abbrevs]" -"0","" -"0","dt_range_np_dalys <- dt_psa_dalys[, lapply(.SD, " -"0"," function(x) " -"0"," paste0(""(""," -"0"," signif(min(quantile(x, probs = c(0.025, 0.975))),2)," -"0"," "" – ""," -"0"," signif(max(quantile(x, probs = c(0.025, 0.975))),2)," -"0"," "")""))]" -"0","" -"0","" -"0","outcomes_count <- c(""cases_no_prt"", ""cases_prt"", ""cases_reduced"")" -"0","outcomes_dollar <- c(""burden_no_prt"", ""burden_prt"", ""burden_reduced"")" -"0","outcomes_daly <- c(""DALY_no_prt"", ""DALY_prt"", ""DALY_reduced"")" -"0","" -"0","" -"0","results <- matrix("""", ncol = 8, nrow = 12, " -"0"," dimnames = list(outcome = c(outcomes_count, " -"0"," ""cost_per_ae""," -"0"," ""YLD_per_ae""," -"0"," ""YLL_per_ae""," -"0"," outcomes_dollar," -"0"," #""Total PI cost""," -"0"," #""Net savings of PI""," -"0"," outcomes_daly)," -"0"," ae = c(""all_ae"", ae_abbrevs)))" -"0","" -"0","for (outcome in outcomes_count){" -"0"," for (ae in c(""all_ae"", ae_abbrevs)){" -"0"," results[outcome, ae] <- paste0(dt_bc_outcomes_count[,get(paste0(ae,""."",outcome))], ""\n"", dt_range_count[,get(paste0(ae,""."",outcome))])" -"0"," }" -"0","}" -"0","for (outcome in outcomes_dollar){" -"0"," for (ae in c(""all_ae"", ae_abbrevs)){" -"0"," results[outcome, ae] <- paste0(dt_bc_outcomes_dollar[,get(paste0(ae,""."",outcome))], ""\n"", dt_range_dollar[,get(paste0(ae,""."",outcome))])" -"0"," }" -"0","}" -"0","for (ae in ae_abbrevs){" -"0"," results[""cost_per_ae"", ae] <- paste0(dt_bc_costs[,dollar(get(ae))], ""\n"", dt_range_np_costs[,get(ae)])" -"0"," results[""YLD_per_ae"", ae] <- paste0(dt_bc_dalys[,signif(get(paste0(""YLD."",ae)),2)], ""\n"", dt_range_np_dalys[,get(paste0(""YLD."",ae))])" -"0"," results[""YLL_per_ae"", ae] <- paste0(dt_bc_dalys[,signif(get(paste0(""YLL."",ae)),2)], ""\n"", dt_range_np_dalys[,get(paste0(""YLL."",ae))])" -"0","}" -"0","" -"0","# results[""Total PI cost"", ""all_ae""]<- paste0(dt_bc_outcomes_dollar[,prt_cost], ""\n"", dt_range_dollar[,prt_cost])" -"0","# results[""Net savings of PI"", ""all_ae""]<- paste0(dt_bc_outcomes_dollar[,net_savings], ""\n"", dt_range_dollar[,net_savings])" -"0","for (outcome in outcomes_daly){" -"0"," for (ae in c(""all_ae"", ae_abbrevs)){" -"0"," results[outcome, ae] <- paste0(dt_bc_outcomes_number[,get(paste0(ae,""."",outcome))], ""\n"", dt_range_number[,get(paste0(ae,""."",outcome))])" -"0"," }" -"0","}" -"0","" -"0","" -"0","" -"0","dt_results<-data.table(results, keep.rownames = TRUE)" -"0","colnames(dt_results) <- c(""Outcome"", ""All adverse events"", ""Sepsis""," -"0"," ""Malaria"", ""FNHTR"", ""Syphilis"", ""HBV""," -"0"," ""HCV"", ""HIV"")" -"0","outcome.names <- dt_results$Outcome" -"0","names(outcome.names) <- c(""Cases without WBPR""," -"0"," ""Cases with WBPR""," -"0"," ""Cases reduced by WBPR""," -"0"," ""Net present cost per case""," -"0"," ""YLD per case""," -"0"," ""YLL per case""," -"0"," ""Total net present cost without WBPR""," -"0"," ""Total net present cost with WBPR""," -"0"," ""Total net present cost reduced by WBPR""," -"0"," ""DALYs without WBPR""," -"0"," ""DALYs with WBPR""," -"0"," ""DALYs averted by WBPR"")" -"0","dt_results[ , Outcome := names(outcome.names)[match(Outcome, outcome.names)] ]" -"0","" -"0","## Sensitivity analysis" -"0","#Secondary infections" -"0","dt_bc_outcomes[ , sec_infections_buden_reduced_all_ae := (" -"0"," sep.burden_reduced+mal.burden_reduced+ftr.burden_reduced+syp.burden_reduced+" -"0"," 2*hiv.burden_reduced+2*hbv.burden_reduced+2*hcv.burden_reduced" -"0",")]" -"0","dt_psa_outcomes[ , sec_infections_buden_reduced_all_ae := (" -"0"," sep.burden_reduced+mal.burden_reduced+ftr.burden_reduced+syp.burden_reduced+" -"0"," 2*hiv.burden_reduced+2*hbv.burden_reduced+2*hcv.burden_reduced" -"0",")]" -"0","" -"0","" -"0","" -"0","range_sec_case_burden_reduced <- paste(dt_psa_outcomes[ , dollar(quantile(sec_infections_buden_reduced_all_ae, probs=c(.025, .975)))], collapse = "" – "")" -"0","" -"0","" -"0","dt_bc_outcomes[ , sec_infections_buden_reduced_all_ae := (" -"0"," sep.burden_reduced+mal.burden_reduced+ftr.burden_reduced+syp.burden_reduced+" -"0"," 2*hiv.burden_reduced+2*hbv.burden_reduced+2*hcv.burden_reduced" -"0",")]" -"0","dt_psa_outcomes[ , sec_infections_buden_reduced_all_ae := (" -"0"," sep.burden_reduced+mal.burden_reduced+ftr.burden_reduced+syp.burden_reduced+" -"0"," 2*hiv.burden_reduced+2*hbv.burden_reduced+2*hcv.burden_reduced" -"0",")]" -"0","range_sec_case_burden_reduced <- paste(dt_psa_outcomes[ , dollar(quantile(sec_infections_buden_reduced_all_ae, probs=c(.025, .975)))], collapse = "" – "")" -"0","" -"0","#No sepsis" -"0","dt_bc_outcomes[ , no_sepsis_buden_reduced_all_ae := (" -"0"," mal.burden_reduced+ftr.burden_reduced+syp.burden_reduced+" -"0"," hiv.burden_reduced+hbv.burden_reduced+hcv.burden_reduced" -"0",")]" -"0","dt_psa_outcomes[ , no_sepsis_buden_reduced_all_ae := (" -"0"," mal.burden_reduced+ftr.burden_reduced+syp.burden_reduced+" -"0"," hiv.burden_reduced+hbv.burden_reduced+hcv.burden_reduced" -"0",")]" -"0","dt_bc_outcomes[ , no_sepsis_net_cost := (" -"0"," prt_cost - no_sepsis_buden_reduced_all_ae" -"0",")]" -"0","dt_psa_outcomes[ , no_sepsis_net_cost := (" -"0"," prt_cost - no_sepsis_buden_reduced_all_ae" -"0",")]" -"0","dt_bc_outcomes[ , no_sepsis_all_ae_DALY_reduced := (" -"0"," mal.DALY_reduced+ftr.DALY_reduced+syp.DALY_reduced+" -"0"," hiv.DALY_reduced+hbv.DALY_reduced+hcv.DALY_reduced" -"0",")]" -"0","dt_psa_outcomes[ , no_sepsis_all_ae_DALY_reduced := (" -"0"," mal.DALY_reduced+ftr.DALY_reduced+syp.DALY_reduced+" -"0"," hiv.DALY_reduced+hbv.DALY_reduced+hcv.DALY_reduced" -"0",")]" -"0","dt_bc_outcomes[ , no_sepsis_icer := (no_sepsis_net_cost)/no_sepsis_all_ae_DALY_reduced]" -"0","dt_psa_outcomes[ , no_sepsis_icer :=(no_sepsis_net_cost)/no_sepsis_all_ae_DALY_reduced]" -"0","" -"0","" -"0","range_no_sepsis_burden_reduced <- paste(dt_psa_outcomes[ , dollar(quantile(no_sepsis_buden_reduced_all_ae, probs=c(.025, .975)))], collapse = "" – "")" -"0","range_no_sepsis_net_cost <- paste(dt_psa_outcomes[ , dollar(quantile(no_sepsis_net_cost, probs=c(.025, .975)))], collapse = "" – "")" -"0","range_no_sepsis_DALY_reduced <- paste(dt_psa_outcomes[ , comma(quantile(no_sepsis_all_ae_DALY_reduced, probs=c(.025, .975)))], collapse = "" – "")" -"0","range_no_sepsis_icer <- paste(dt_psa_outcomes[ , dollar(quantile(no_sepsis_icer, probs=c(.025, .975)))], collapse = "" – "")" -"0","" -"0","" diff --git a/.Rproj.user/shared/notebooks/A1373344-test/1/s/chunks.json b/.Rproj.user/shared/notebooks/A1373344-test/1/s/chunks.json deleted file mode 100644 index 2850673..0000000 --- a/.Rproj.user/shared/notebooks/A1373344-test/1/s/chunks.json +++ /dev/null @@ -1 +0,0 @@ -{"chunk_definitions":[{"row":83,"row_count":1,"visible":true,"expansion_state":0,"options":{"engine":"r","label":"unnamed-chunk-3"},"document_id":"0C461556","chunk_id":"c6d0tn6usa4d5","chunk_label":"unnamed-chunk-1"}],"doc_write_time":1616422217,"working_dir":null,"default_chunk_options":{}} \ No newline at end of file diff --git a/.Rproj.user/shared/notebooks/A1373344-test/1/s/csetup_chunk/000002.csv b/.Rproj.user/shared/notebooks/A1373344-test/1/s/csetup_chunk/000002.csv deleted file mode 100644 index 6c2c9a6..0000000 --- a/.Rproj.user/shared/notebooks/A1373344-test/1/s/csetup_chunk/000002.csv +++ /dev/null @@ -1,32 +0,0 @@ -"0","library(ggplot2)" -"0","library(data.table)" -"2","Registered S3 method overwritten by 'data.table': - method from - print.data.table -" -"2","data.table 1.14.0 using 2 threads (see ?getDTthreads). Latest news: r-datatable.com -" -"0","library(scales)" -"0","#library(gridExtra)" -"0","library(flextable)" -"2","Registered S3 methods overwritten by 'htmltools': - method from - print.html tools:rstudio - print.shiny.tag tools:rstudio - print.shiny.tag.list tools:rstudio -" -"0","library(ftExtra)" -"0","library(officedown)" -"0","library(officer)" -"0","#library(knitr)" -"0","theme_set(theme_bw())" -"0","library(readxl)" -"2"," -Attaching package: �readxl� - -" -"2","The following object is masked from �package:officer�: - - read_xlsx - -" diff --git a/.Rproj.user/shared/notebooks/AFC576DE-ckd_predict/1/s/c0h8yj3gvn8cl/000002.csv b/.Rproj.user/shared/notebooks/AFC576DE-ckd_predict/1/s/c0h8yj3gvn8cl/000002.csv deleted file mode 100644 index 357a82d..0000000 --- a/.Rproj.user/shared/notebooks/AFC576DE-ckd_predict/1/s/c0h8yj3gvn8cl/000002.csv +++ /dev/null @@ -1,8 +0,0 @@ -"0","train <- fread(""./data/2020-01 analysis/CapacityTrainingTrain20191223.csv"") -" -"1","'.' is not recognized as an internal or external command, -" -"1","operable program or batch file. -" -"2","'(./data/2020-01 analysis/CapacityTrainingTrain20191223.csv) > C:\Users\alton\AppData\Local\Temp\Rtmp2DI3fj\file55bc1aec9b5' execution failed with error code 1" -"2","File 'C:\Users\alton\AppData\Local\Temp\Rtmp2DI3fj\file55bc1aec9b5' has size 0. Returning a NULL data.table." diff --git a/.Rproj.user/shared/notebooks/AFC576DE-ckd_predict/1/s/chunks.json b/.Rproj.user/shared/notebooks/AFC576DE-ckd_predict/1/s/chunks.json deleted file mode 100644 index 722d1d3..0000000 --- a/.Rproj.user/shared/notebooks/AFC576DE-ckd_predict/1/s/chunks.json +++ /dev/null @@ -1 +0,0 @@ -{"chunk_definitions":[{"row":133,"row_count":1,"visible":true,"expansion_state":0,"options":{"engine":"r","include":false,"label":"unnamed-chunk-3"},"document_id":"54128D3E","chunk_id":"c0h8yj3gvn8cl","chunk_label":"unnamed-chunk-1"}],"doc_write_time":1614794575} \ No newline at end of file diff --git a/.Rproj.user/shared/notebooks/patch-chunk-names b/.Rproj.user/shared/notebooks/patch-chunk-names deleted file mode 100644 index e69de29..0000000 diff --git a/.Rproj.user/shared/notebooks/paths b/.Rproj.user/shared/notebooks/paths deleted file mode 100644 index 8e3349e..0000000 --- a/.Rproj.user/shared/notebooks/paths +++ /dev/null @@ -1,12 +0,0 @@ -G:/My Drive/Projects/Zika2020report/manuscript/zika2020_manuscript.Rmd="522CB5E8" -G:/My Drive/Projects/blood_safety_portfolio/manuscript/optimal portfolio manuscript_r1.Rmd="C3D88674" -G:/My Drive/Projects/ckd_prediction/manuscript/ckd_predict.Rmd="AFC576DE" -G:/My Drive/Projects/ghana_hea/.Rhistory="C0C600FC" -G:/My Drive/Projects/ghana_hea/Rscripts/Markov models.R="1F77AAB3" -G:/My Drive/Projects/ghana_hea/Rscripts/ghana_hea_model.R="521C94CE" -G:/My Drive/Projects/ghana_hea/Rscripts/model_functions.R="EDA9BFD9" -G:/My Drive/Projects/ghana_hea/Rscripts/run_model.R="7C35EFA0" -G:/My Drive/Projects/ghana_hea/manuscript/ghana_hea.Rmd="2ADED19F" -G:/My Drive/Projects/ghana_hea/manuscript/test.Rmd="A1373344" -G:/My Drive/Projects/ghana_hea/test.Rmd="637EA83F" -G:/My Drive/Projects/opioid_hem/sankey_bupr_providers.R="0755B6F9" diff --git a/local/CID cover letter.docx b/local/CID cover letter.docx deleted file mode 100644 index 5c39fba..0000000 Binary files a/local/CID cover letter.docx and /dev/null differ diff --git a/local/CID cover letter.pdf b/local/CID cover letter.pdf deleted file mode 100644 index e6a6524..0000000 Binary files a/local/CID cover letter.pdf and /dev/null differ diff --git a/local/HIV params.xlsx b/local/HIV params.xlsx deleted file mode 100644 index cacc5cb..0000000 Binary files a/local/HIV params.xlsx and /dev/null differ diff --git a/local/ISBT presentation.pptx b/local/ISBT presentation.pptx deleted file mode 100644 index 489e3c5..0000000 Binary files a/local/ISBT presentation.pptx and /dev/null differ diff --git a/local/Markov diagrams.pptx b/local/Markov diagrams.pptx deleted file mode 100644 index 3187653..0000000 Binary files a/local/Markov diagrams.pptx and /dev/null differ diff --git a/local/Research Consulting Service Agt_Statement of Work (2)_ Alton Russel_3Feb2020_MC (002).docx b/local/Research Consulting Service Agt_Statement of Work (2)_ Alton Russel_3Feb2020_MC (002).docx deleted file mode 100644 index a9178c7..0000000 Binary files a/local/Research Consulting Service Agt_Statement of Work (2)_ Alton Russel_3Feb2020_MC (002).docx and /dev/null differ diff --git a/local/Research Consulting Service Agt_Statement of Work 2_ Alton Russell_3Feb2020_MC_signed.pdf b/local/Research Consulting Service Agt_Statement of Work 2_ Alton Russell_3Feb2020_MC_signed.pdf deleted file mode 100644 index 4999e40..0000000 Binary files a/local/Research Consulting Service Agt_Statement of Work 2_ Alton Russell_3Feb2020_MC_signed.pdf and /dev/null differ diff --git a/local/apa.csl b/local/apa.csl deleted file mode 100644 index 3389918..0000000 --- a/local/apa.csl +++ /dev/null @@ -1,1916 +0,0 @@ - - diff --git a/local/ghana_hea HIV changes.docx b/local/ghana_hea HIV changes.docx deleted file mode 100644 index b1b7098..0000000 Binary files a/local/ghana_hea HIV changes.docx and /dev/null differ diff --git a/local/ghana_hea changes to implement for Hepatitis 2020-12-13.docx b/local/ghana_hea changes to implement for Hepatitis 2020-12-13.docx deleted file mode 100644 index b62ccb6..0000000 Binary files a/local/ghana_hea changes to implement for Hepatitis 2020-12-13.docx and /dev/null differ diff --git a/local/ghana_hea draft1.docx b/local/ghana_hea draft1.docx deleted file mode 100644 index afd9bd5..0000000 Binary files a/local/ghana_hea draft1.docx and /dev/null differ diff --git a/local/ghana_hea draft2.docx b/local/ghana_hea draft2.docx deleted file mode 100644 index 0118f5c..0000000 Binary files a/local/ghana_hea draft2.docx and /dev/null differ diff --git a/local/ghana_hea draft3.docx b/local/ghana_hea draft3.docx deleted file mode 100644 index 03ee3e7..0000000 Binary files a/local/ghana_hea draft3.docx and /dev/null differ diff --git a/local/ghana_hea draft4.docx b/local/ghana_hea draft4.docx deleted file mode 100644 index e168cf0..0000000 Binary files a/local/ghana_hea draft4.docx and /dev/null differ diff --git a/local/ghana_hea draft5.docx b/local/ghana_hea draft5.docx deleted file mode 100644 index 9241750..0000000 Binary files a/local/ghana_hea draft5.docx and /dev/null differ diff --git a/local/ghana_hea draft6.docx b/local/ghana_hea draft6.docx deleted file mode 100644 index 83f9df3..0000000 Binary files a/local/ghana_hea draft6.docx and /dev/null differ diff --git a/local/ghana_hea draft7.docx b/local/ghana_hea draft7.docx deleted file mode 100644 index 68d9f10..0000000 Binary files a/local/ghana_hea draft7.docx and /dev/null differ diff --git a/local/ghana_hea draft7_trackedchanges.docx b/local/ghana_hea draft7_trackedchanges.docx deleted file mode 100644 index ba11a5d..0000000 Binary files a/local/ghana_hea draft7_trackedchanges.docx and /dev/null differ diff --git a/local/ghana_hea draft8.docx b/local/ghana_hea draft8.docx deleted file mode 100644 index d7d012d..0000000 Binary files a/local/ghana_hea draft8.docx and /dev/null differ diff --git a/local/sepsis parameter summary.docx b/local/sepsis parameter summary.docx deleted file mode 100644 index 54806cc..0000000 Binary files a/local/sepsis parameter summary.docx and /dev/null differ