R/GenerateReport.R

Defines functions GenerateReport

Documented in GenerateReport

#' Clinical Scenario Evaluation Report
#'
#' This function generates a Word-based report to present a detailed
#' description of the simulation parameters (data, analysis and evaluation
#' models) and results.
#'
#' This function requires the package \code{officer}. A customized template can
#' be specified in the argument \code{report.template} (optional), which
#' consists in a Word document to place in the working directory folder.
#'
#' @param presentation.model defines a \code{PresentationModel} object.
#' @param cse.results defines a \code{CSE} object returned by the \code{CSE}
#' function.
#' @param report.filename defines the output filename of the word-based
#' document generated.
#' @param report.template defines a word-based template (optional).
#' @seealso See Also \code{\link{CSE}} and \code{\link{PresentationModel}}.
#' @references http://gpaux.github.io/Mediana/
#' @examples
#'
#' \dontrun{
#' # Outcome parameter set 1
#' outcome1.placebo = parameters(mean = 0, sd = 70)
#' outcome1.treatment = parameters(mean = 40, sd = 70)
#'
#' # Outcome parameter set 2
#' outcome2.placebo = parameters(mean = 0, sd = 70)
#' outcome2.treatment = parameters(mean = 50, sd = 70)
#'
#' # Data model
#' case.study1.data.model = DataModel() +
#'   OutcomeDist(outcome.dist = "NormalDist") +
#'   SampleSize(c(50, 55, 60, 65, 70)) +
#'   Sample(id = "Placebo",
#'          outcome.par = parameters(outcome1.placebo, outcome2.placebo)) +
#'   Sample(id = "Treatment",
#'          outcome.par = parameters(outcome1.treatment, outcome2.treatment))
#'
#'
#' # Analysis model
#' case.study1.analysis.model = AnalysisModel() +
#'   Test(id = "Placebo vs treatment",
#'        samples = samples("Placebo", "Treatment"),
#'        method = "TTest")
#'
#' # Evaluation model
#' case.study1.evaluation.model = EvaluationModel() +
#'   Criterion(id = "Marginal power",
#'             method = "MarginalPower",
#'             tests = tests("Placebo vs treatment"),
#'             labels = c("Placebo vs treatment"),
#'             par = parameters(alpha = 0.025))
#'
#' # Simulation Parameters
#' case.study1.sim.parameters = SimParameters(n.sims = 1000, proc.load = 2, seed = 42938001)
#'
#' # Perform clinical scenario evaluation
#' case.study1.results = CSE(case.study1.data.model,
#'                           case.study1.analysis.model,
#'                           case.study1.evaluation.model,
#'                           case.study1.sim.parameters)
#'
#'
#' # Reporting
#' case.study1.presentation.model = PresentationModel() +
#'   Section(by = "outcome.parameter") +
#'   Table(by = "sample.size") +
#'   CustomLabel(param = "sample.size",
#'               label= paste0("N = ",c(50, 55, 60, 65, 70))) +
#'   CustomLabel(param = "outcome.parameter",
#'               label=c("Standard 1", "Standard 2"))
#'
#' # Report Generation
#' GenerateReport(presentation.model = case.study1.presentation.model,
#'                cse.results = case.study1.results,
#'                report.filename = "Case study 1 (normally distributed endpoint).docx")
#'
#' }
#'
#' @export GenerateReport
GenerateReport = function(presentation.model = NULL, cse.results, report.filename, report.template = NULL){
  if (!requireNamespace("officer", quietly = TRUE)) {
   stop("officer R package is needed for to generate the report. Please install it.",
         call. = FALSE)
  }
  if (!requireNamespace("flextable", quietly = TRUE)) {
    stop("flextable R package is needed for to generate the report. Please install it.",
         call. = FALSE)
  }
  UseMethod("GenerateReport")

}
gpaux/Mediana documentation built on May 31, 2021, 1:22 a.m.