---
title: "Standard tables and figures" 
output: rmarkdown::html_vignette
vignette: >
  %\VignetteIndexEntry{Standard tables and figures}
  %\VignetteEncoding{UTF-8}
  %\VignetteEngine{knitr::rmarkdown}
editor_options: 
  chunk_output_type: console
---

```{r, include = FALSE}
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>"
)
generate_image <- Sys.info()["sysname"] != "Darwin"
copy_image <- !generate_image

```

```{r setup}
library(eudract)
library(knitr)
```

We can easily produce some of the standard reports needed for most clinical trials, as well 
as producing the xml files needed to upload to EudraCT or ClinicalTrials.gov. See the [other vignette](eudract.html)

We first ensure the data is in the correct format, column names to produce a basic safety object

```{r safety}
head(safety)
safety_statistics <- safety_summary(safety,exposed=c("Control"=99, "Experimental"=101))
```

A top level table is the `$GROUP` data frame with slightly improved column names

```{r group}
df <- safety_statistics$GROUP
names(df) <- c("Arm", "SAE count", "Non Serious AE count", "Death from AE count", "N", "All cause deaths count")
kable(df, caption = "Total Adverse Events")
```

Next we provide an incidence table

```{r incidence}
incidence <-  incidence_table(safety_statistics, type ="serious")
kable(incidence, caption="SAE incidence")
incidence <-  incidence_table(safety_statistics, type ="non_serious")
kable(incidence, caption="Non-serious AE incidence")

```

A table of relative risk can be given

```{r relative_risk}
rr <- relative_risk_table(safety_statistics, type="serious")
kable(rr, caption="SAE relative risks")

rr <- relative_risk_table(safety_statistics, type="non_serious")
kable(rr, caption="Non-serious AE relative risks")

```

Finally a set of dot-plots to show graphically and compare, using functions from [patchwork](https://patchwork.data-imaginist.com/) to add titles

```{r dotplot_sae, fig.cap="SAE", fig.height=8, fig.width=8, out.width="90%", eval=generate_image}
dot_plot(safety_statistics, type="serious", base=4)
```

```{r out.width = '80%', echo = FALSE, eval= copy_image}
knitr::include_graphics("img/dotplot_sae-1.png")
```


```{r dotplot_ae, fig.cap="Non-Serious AE", fig.height=8, fig.width=8,out.width="90%", eval=generate_image}
dot_plot(safety_statistics, type="non_serious", base=4)
```

```{r out.width = '80%', echo = FALSE, eval= copy_image}
knitr::include_graphics("img/dotplot_ae-1.png")
```

If you want to modify, then access the two elements `$left.panel` and `$right.panel` to modify as standard `ggplot` objects. The `print` and `plot` methods glue them back together within the framework of the [patchwork](https://patchwork.data-imaginist.com/) package. Or you can dissect, edit, save, and use however you want. 

```{r dotplot_edit, fig.height=8, fig.width=8, out.width="90%", eval=generate_image}
fig <- dot_plot(safety_statistics, type="non_serious", base=4)
fig$left.panel <- fig$left.panel + ggplot2::labs(title="Absolute Risk")
fig
```

```{r out.width = '80%', echo = FALSE, eval= copy_image}
knitr::include_graphics("img/dotplot_edit-1.png")
```


Should you wish to save to a file, then using the workflow below will work, using a graphics device such as,  `png`, `jpeg`, `pdf`, `svg`.  You will need to explicitly call the `print(fig)` function, and just `fig` on its own may not work. 

```{r dotplot_save, eval=FALSE}
temp <- tempfile(fileext=".png")
png(filename = temp)
print(fig)
dev.off()
```

Further filtering and refinements to the labels may be provided using the `relative_risk` and `order_filter` functions. See help pages for more details. 

