### Generating DSA results  --------------------------####
  dsaList<-vector(mode="list")
  tmpd <- base.data[base.data$DSA=="Y",c("Parameter","R.name","Base.Case","DSA" )]
  dsa.par<-data.frame(matrix(NA,nrow = nrow(tmpd),ncol = 2)); names(dsa.par)<-c("low","upp")
  row.names(dsa.par)<-tmpd$R.name
  dsaList$rowNames<-tmpd$Parameter
  for (mm in c("low","upp")){ # mm<-"low"
    dsa<-data.frame(matrix(NA,nrow = nrow(tmpd)*3,ncol = (length(treatNames)*3)))
    names(dsa)<-paste(treatNames,rep(c("QALY","directCost","totalCost"),each=length(treatNames)),sep = ".")
    for(i in 1:nrow(tmpd)) { print(paste(mm,i,"of ",nrow(tmpd))) #i<-1;
      tmpd$sample <- tmpd$Base.Case
      if (mm == "low") tmpd$sample[i] <- tmpd$Base.Case[i]*(1-DSAp)
      if (mm == "upp") tmpd$sample[i] <- tmpd$Base.Case[i]*(1+DSAp)
      if (tmpd$R.name[i] %in% c("PRpatientsC","DiscountRateCost","DiscountRateQALY",
                                "QALY_C","QALY_U","Utility_Exacerb","ExacerRateC","ExacerRateU",
                                "P_E1_DiscusSeretide","P_E1_DPITurbohaler","P_E1_DiscusSeretide",
                                "P_E1_Custom","P_E2_MDISeretide")) {
        if(tmpd$sample[i]<0) {tmpd$sample[i]<-0}
        if(tmpd$sample[i]>1) {tmpd$sample[i]<-1}
      }
      dsa.par[tmpd$R.name[i],mm]<-tmpd$sample[i]
      eq3 <- with(tmpd, paste(paste(R.name, sample, sep="<-"),collapse=";"))
      eval(parse(text=eq3)) #Creates variables in model

      source(file.path(wrkng.dir,"lib/RRgen.R"))
      TMTreatDSA<-TMfn(treatNames,TMbase,RR)

      dsa.Markov<-Mmodel(TMTreatDSA) # MArkov trace for sample

      for (tN in treatNames) {
        dsa[i+nrow(tmpd)*0:2,paste(tN,c("QALY","directCost","totalCost"),sep = ".")]<-cbind(dsa.Markov[[tN]]$QALY$totalQALY,
                                                                                            dsa.Markov[[tN]]$directCosts$totalDirectCost,
                                                                                            dsa.Markov[[tN]]$totalCost)
      } # for TN
    } # for i
    if (mm == "low") dsaList$dsa.low <- dsa
    if (mm == "upp") dsaList$dsa.upp <- dsa
  } # for mm low/upp

