The EpiReport package allows the user to draft an epidemiological report similar to the ECDC Annual Epidemiological Report (AER) (see https://www.ecdc.europa.eu/en/annual-epidemiological-reports) in Microsoft Word format for a given disease.
Through standalone functions, the package is specifically designed to generate each disease-specific output presented in these reports, using ECDC Atlas export data.
Package details below:
Package | Description |
---|---|
Version | 1.0.1 |
Published | 2021-02-04 |
Authors | Lore Merdrignac [email protected], Author of the package and original code Tommi Karki [email protected], Esther Kissling [email protected], Joana Gomes Dias [email protected], Project manager |
Maintainer | Lore Merdrignac [email protected] |
License | EUPL |
Link to the ECDC AER reports | https://www.ecdc.europa.eu/en/annual-epidemiological-reports |
ECDC’s annual epidemiological report is available as a series of individual epidemiological disease reports. Reports are published on the ECDC website https://www.ecdc.europa.eu/en/annual-epidemiological-reports as they become available.
The year given in the title of the report (i.e. ‘Annual epidemiological report for 2016’) refers to the year the data were collected. Reports are usually available for publication one year after data collection is complete.
All reports are based on data collected through The European Surveillance System (TESSy)1 and exported from the ECDC Atlas. Countries participating in disease surveillance submit their data electronically.
The communicable diseases and related health issues covered by the reports are under European Union and European Economic Area disease surveillance2 3 4 5.
ECDC’s annual surveillance reports provide a wealth of epidemiological data to support decision-making at the national level. They are mainly intended for public health professionals and policymakers involved in disease prevention and control programmes.
Two types of datasets can be used:
EpiReport
package
which includes Salmonellosis data for 2012-2016:
EpiReport::SALM2016
;Description of each variable required in the disease dataset (naming and format):
HealthTopicCode
: Character string, disease code (see
also the reports parameter table Tab.3);MeasurePopulation
: Character string, population
characteristics (e.g. All cases, Confirmed cases, Serotype AGONA,
Serotype BAREILLY etc.).MeasureCode
: Character string, code of the indicators
available (e.g. ALL.COUNT, ALL.RATE, CONFIRMED.AGESTANDARDISED.RATE
etc.);TimeUnit
: Character string, unit of the time variable
TimeCode
(e.g. M
for monthly data,
Y
for yearly data).TimeCode
: Character string, time variable including
dates in any formats available i.e. yearly data (e.g. 2001) or monthly
data (e.g. 2001-01);GeoCode
: Character string, geographical level in coded
format (e.g. AT
for Austria, BE
for Belgium,
BG
for Bulgaria, see also the
EpiReport::MSCode
table, correspondence table for Member
State labels and codes);XLabel
: The label associated with the x-axis in the
epidemiological report (see getAgeGender()
and
plotAgeGender()
bar graph for the age variable);YLabel
: The label associated with the y-axis in the
epidemiological report (see getAgeGender()
and
plotAgeGender()
bar graph for the grouping variable
gender);ZValue
: The value associated with the stratification of
XLabel
and YLabel
in the age and gender bar
graph (see getAgeGender()
and
plotAgeGender()
);YValue
: The value associated with the y-axis in the
epidemiological report (see plotAge
bar graph for the
variable age, or getTableByMS()
for the number of cases,
rate or age-standardised rate in the table by Member States by
year);N
: Integer, number of cases (see
getTrend()
and getSeason()
line graph).HealthTopicCode | MeasurePopulation | MeasureCode | TimeUnit | TimeCode | GeoCode | XLabel | YLabel | ZValue | YValue | N |
---|---|---|---|---|---|---|---|---|---|---|
SALM | Confirmed cases | CONFIRMED.GENDER.COUNT | M | 2015-03 | SE | Male | NA | NA | 86.00000 | 180 |
SALM | Confirmed cases | CONFIRMED.AGE.RATE | M | 2012-10 | ES | 5-14 | NA | NA | NA | 384 |
SALM | Confirmed cases | CONFIRMED.AGE_GENDER.COUNT | Y | 2012 | NL | 0-4 | Male | 97 | 1.00000 | 2199 |
SALM | Confirmed cases | CONFIRMED.AGE.COUNT | M | 2014-08 | FR | 5-14 | NA | NA | 235.00000 | 1191 |
SALM | Confirmed cases | CONFIRMED.AGE.COUNT | Y | 2015 | SK | 0-4 | NA | NA | 1515.00000 | 4841 |
SALM | Confirmed cases | CONFIRMED.AGE.COUNT | M | 2013-03 | DE | 45-64 | NA | NA | 190.00000 | 1025 |
SALM | Confirmed cases | CONFIRMED.RATE | M | 2013-04 | HR | NA | NA | NA | 0.00000 | 0 |
SALM | Confirmed cases | CONFIRMED.GENDER.PROPORTION | M | 2012-01 | HR | Female | NA | NA | NA | 0 |
SALM | Confirmed cases | CONFIRMED.AGE.PROPORTION | M | 2016-03 | HR | 65+ | NA | NA | 13.72549 | 51 |
SALM | Confirmed cases | CONFIRMED.AGE.COUNT | M | 2012-12 | SI | 65+ | NA | NA | 3.00000 | 16 |
The internal dataset EpiReport::AERparams
describes the
parameters to be used for each output of each disease report.
If the user wishes to set different parameters for one of the 53
covered health topics, or if the user wishes to analyse an additional
disease not covered by the default parameter table, it is possible to
use an external dataset as long as it is specified as described below
and in the help page ?EpiReport::AERparams
. All functions
of the EpiReport
package can then be fed with this specific
parameter table.
List of the main parameters included:
HealthTopic
: Character string, disease code that should
match with the health topic code from the disease-specific dataset (see
Tab.1)MeasurePopulation
: Character string, population to
present in the report: either ALL
cases or
CONFIRMED
cases only.TableUse
: Character string, specifying whether to
include the table in the epidemiological report and which table to
include:
NO
: No table includedCOUNT
: Table presenting the number of
cases by Member State by yearRATE
: Table presenting the rates of
cases by Member State by yearASR
: Table presenting the
age-standardised rates of cases by Member State by
yearAgeGenderUse
: Character string, specifying whether to
include the age and gender bar graph in the epidemiological report and
which type of graph to include:
NO
: No graph includedAG-COUNT
: Bar graph presenting the number of
cases by age and genderAG-RATE
: Bar graph presenting the
rates of cases by age and genderAG-PROP
: Bar graph presenting the
proportion of cases by age and genderA-RATE
: Bar graph presenting the rates
of cases by ageTSTrendGraphUse
: Yes/No, specifying whether to include
a line graph describing the trend of the disease over the time.TSSeasonalityGraphUse
: Yes/No, specifying whether to
include a line graph describing the seasonality of the disease.MapNumbersUse
: Yes/No, specifying whether to include
the map presenting the number of cases by Member
State.MapRatesUse
: Yes/No, specifying whether to include the
map presenting the rates of cases by Member State.MapASRUse
: Yes/No, specifying whether to include the
map presenting the age-standardised rates of cases by
Member State.HealthTopic | MeasurePopulation | TableUse | AgeGenderUse | TSTrendGraphUse | TSSeasonalityGraphUse | MapNumbersUse | MapRatesUse | MapASRUse |
---|---|---|---|---|---|---|---|---|
TETA | ALL | ASR | AG-RATE | Y | Y | Y | N | N |
YERS | CONFIRMED | ASR | AG-RATE | Y | Y | N | Y | N |
ANTH | CONFIRMED | COUNT | NO | N | N | N | N | N |
HEPB | CONFIRMED | STAGE | AG-RATE | N | N | N | N | N |
LEPT | CONFIRMED | ASR | AG-RATE | Y | Y | N | Y | N |
The internal dataset EpiReport::MSCode
provides the
correspondence table of the geographical code GeoCode
used
in the disease dataset, and the geographical label Country
to use throughout the report. Additional information on the EU/EEA
affiliation is also available in column EUEEA
.
Country | GeoCode | EUEEA | TheCountry |
---|---|---|---|
Cyprus | CY | EU | Cyprus |
Ireland | IE | EU | Ireland |
Slovakia | SK | EU | Slovakia |
Denmark | DK | EU | Denmark |
Sweden | SE | EU | Sweden |
To generate a similar report to the Annual Epidemiological Report, we
can use the default dataset included in the EpiReport
package presenting Salmonellosis data 2012-2016.
Calling the function getAER()
, the Salmonellosis 2016
report will be generated and stored in your working directory (see
getwd()
) by default.
Please specify the full path to the output folder if necessary:
To generate the report using an external dataset, please use the syntax below.
In the following example, Pertussis 2016 TESSy data (in csv format,
in the /data
folder) is used to produce the corresponding
report.
Pertussis PNG maps have previously been created and stored in a
specific folder /maps
.
# --- Importing the dataset
PERT2016 <- read.table("data/PERT2016.csv",
sep = ",",
header = TRUE,
stringsAsFactors = FALSE)
# --- Specifying the folder containing pertussis maps
pathMap <- paste(getwd(), "/maps", sep = "")
# --- (optional) Setting the local language in English for month label
Sys.setlocale("LC_TIME", "C")
#> [1] "C"
# --- Producing the report
EpiReport::getAER(disease = "PERT",
year = 2016,
x = PERT2016,
pathPNG = pathMap)
Please note that the font Tahoma
is used in the plot
axis and legend. It is advised to import this font using the
extrafont
package and the command font_import
and loadfonts
.
However, if the users prefer the use of the default
Arial
in plots, it is optional. In that case, warnings will
appear in the console for each plot.
By default, an empty ECDC template (Microsoft Word) is used to
produce the report. In order to modify this template, please first
download the default template using the function
getTemplate()
.
You can store this Microsoft Word template in a specific folder
/template
.
Then, apply the modifications required, save it and use it as a new Microsoft Word template when producing the epidemiological report as described below.
Please make sure that the Microsoft Word bookmarks are preserved throughout the modifications to the template. The bookmarks specify the location where to include each output.
Each epidemiological output will be included in the Word template in
the corresponding report chapter. The EpiReport
package
relies on Microsoft Word bookmarks to specify the exact location where
to include each output.
The list of bookmarks recognised by the EpiReport
package are:
The EpiReport
package allows the user to generate each
epidemiological output independently of the Microsoft Word report.
The ECDC annual epidemiological Report includes five types of outputs:
The function getTableByMS()
generates a
flextable
object (see package flextable
)
presenting the number of cases by Member State over the last five
years.
By default, the function will use the internal Salmonellosis 2012-2016 data and present the number of confirmed cases and the corresponding rate for each year, with a focus on 2016 and age-standardised rates.
Country | 2015 | 2016 | 2017 | 2018 | 2019 | ||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Number | Rate | Number | Rate | Number | Rate | Number | Rate | Number | Rate | ASR | |
Austria | 103 | 1.2 | 116 | 1.3 | 85 | 1.0 | 85 | 1.0 | 142 | 1.6 | 1.7 |
Belgium | 108 | 1.0 | 114 | 1.0 | 77 | 0.7 | 101 | 0.9 | 202 | 1.8 | 1.9 |
Bulgaria | . | . | . | . | . | . | . | . | . | . | . |
Croatia | - | - | 2 | 0.0 | 0 | 0.0 | 2 | 0.0 | 4 | 0.1 | 0.1 |
Cyprus | . | . | . | . | . | . | . | . | . | . | . |
Czechia | 0 | 0.0 | 0 | 0.0 | 0 | 0.0 | 0 | 0.0 | 0 | 0.0 | 0.0 |
Denmark | . | . | . | . | . | . | . | . | . | . | . |
Estonia | 12 | 0.9 | 9 | 0.7 | 8 | 0.6 | 6 | 0.5 | 6 | 0.5 | 0.5 |
Finland | 54 | 1.0 | 66 | 1.2 | 25 | 0.5 | 56 | 1.0 | 81 | 1.5 | 1.6 |
France | 285 | 0.4 | 373 | 0.6 | 266 | 0.4 | 331 | 0.5 | 904 | 1.3 | 1.4 |
Germany | 722 | 0.9 | 958 | 1.2 | 635 | 0.8 | 614 | 0.7 | 1175 | 1.4 | 1.5 |
Greece | 2 | 0.0 | 2 | 0.0 | 1 | 0.0 | 2 | 0.0 | 10 | 0.1 | 0.1 |
Hungary | 12 | 0.1 | 24 | 0.2 | 17 | 0.2 | 14 | 0.1 | 44 | 0.5 | 0.5 |
Iceland | 0 | 0.0 | 0 | 0.0 | 1 | 0.3 | 1 | 0.3 | 4 | 1.1 | 1.1 |
Ireland | 8 | 0.2 | 18 | 0.4 | 10 | 0.2 | 17 | 0.4 | 18 | 0.4 | 0.4 |
Italy | 103 | 0.2 | 106 | 0.2 | 95 | 0.2 | 108 | 0.2 | 231 | 0.4 | 0.4 |
Latvia | 4 | 0.2 | 9 | 0.5 | 13 | 0.7 | 12 | 0.6 | 11 | 0.6 | 0.6 |
Liechtenstein | . | . | . | . | . | . | . | . | . | . | . |
Lithuania | 9 | 0.3 | 4 | 0.1 | 4 | 0.1 | 8 | 0.3 | 9 | 0.3 | 0.4 |
Luxembourg | 0 | 0.0 | 1 | 0.2 | 0 | 0.0 | 1 | 0.2 | 1 | 0.2 | 0.2 |
Malta | 1 | 0.2 | 1 | 0.2 | 3 | 0.7 | 1 | 0.2 | 2 | 0.4 | 0.4 |
Netherlands | 18 | - | 6 | - | 0 | - | 0 | - | 0 | - | - |
Norway | 98 | 1.9 | 64 | 1.2 | 35 | 0.7 | 49 | 0.9 | 102 | 1.9 | 2.0 |
Poland | 12 | 0.0 | 41 | 0.1 | 29 | 0.1 | 30 | 0.1 | 55 | 0.1 | 0.1 |
Portugal | 14 | 0.1 | 13 | 0.1 | 11 | 0.1 | 14 | 0.1 | 30 | 0.3 | 0.3 |
Romania | 7 | 0.0 | 8 | 0.0 | 7 | 0.0 | 4 | 0.0 | 15 | 0.1 | 0.1 |
Slovakia | 2 | 0.0 | 4 | 0.1 | 2 | 0.0 | 7 | 0.1 | 6 | 0.1 | 0.1 |
Slovenia | 3 | 0.1 | 6 | 0.3 | 5 | 0.2 | 8 | 0.4 | 21 | 1.0 | 1.1 |
Spain | 168 | 0.4 | 261 | 0.6 | 128 | 0.3 | 205 | 0.4 | 228 | 0.5 | 0.5 |
Sweden | 159 | 1.6 | 225 | 2.3 | 106 | 1.1 | 106 | 1.0 | 235 | 2.3 | 2.4 |
United Kingdom | 423 | 0.7 | 468 | 0.7 | 465 | 0.7 | 432 | 0.7 | 827 | 1.2 | 1.3 |
EU-EEA | 2327 | 0.5 | 2899 | 0.6 | 2028 | 0.4 | 2214 | 0.5 | 4363 | 0.9 | 0.9 |
This table can be drafted using external data, and specifying the disease code and the year to use as reference in the report.
In the example below, we use Zika virus data. According to the report parameters, the table for this disease should present the number of reported cases over the last five years and by Member State.
ZIKV2016 <- read.table("data/ZIKV2016.csv",
sep = ",",
header = TRUE,
stringsAsFactors = FALSE)
EpiReport::getTableByMS(x = ZIKV2016,
disease = "ZIKV",
year = 2016)
Country | 2012 | 2013 | 2014 | 2015 | 2016 |
---|---|---|---|---|---|
Number | Number | Number | |||
Austria | - | - | - | 1 | 41 |
Belgium | - | - | - | 1 | 120 |
Bulgaria | . | . | . | . | . |
Croatia | . | . | . | . | . |
Cyprus | . | . | . | . | . |
Czechia | - | - | - | - | 13 |
Denmark | - | - | - | - | 8 |
Estonia | - | - | - | - | 0 |
Finland | - | - | - | 1 | 6 |
France | - | - | - | - | 1141 |
Germany | . | . | . | . | . |
Greece | - | - | - | - | 4 |
Hungary | - | - | - | - | 2 |
Iceland | . | . | . | . | . |
Ireland | - | - | - | 1 | 15 |
Italy | - | - | - | - | 101 |
Latvia | 0 | 0 | 0 | 0 | 0 |
Liechtenstein | . | . | . | . | . |
Lithuania | . | . | . | . | . |
Luxembourg | - | - | - | - | 2 |
Malta | - | - | - | - | 2 |
Netherlands | - | - | - | 11 | 98 |
Norway | - | - | - | - | 8 |
Poland | . | . | . | . | . |
Portugal | - | - | - | - | 18 |
Romania | - | - | - | - | 3 |
Slovakia | - | - | - | - | 3 |
Slovenia | - | - | - | - | 7 |
Spain | - | - | - | 10 | 301 |
Sweden | - | - | - | 1 | 34 |
United Kingdom | - | - | - | 3 | 194 |
EU-EEA | 0 | 0 | 0 | 29 | 2121 |
The function getSeason()
generates a ggplot (see package
ggplot2
) presenting the distribution of cases at EU/EEA
level, by month, over the past five years.
The plot includes:
By default, the function will use the internal Salmonellosis 2012-2016 data.
Figure. Distribution of confirmed salmonellosis cases by month, EU/EEA, 2016 and 2012-2015
The plot can also be drafted using external data, and specifying the disease dataset, the disease code and the year to use as reference in the report.
In the example below, we use Pertussis 2012-2016 data.
Figure. Distribution of pertussis cases by month, EU/EEA, 2016 and 2012-2015
The function getTrend()
generates a ggplot (see package
ggplot2
) presenting the trend and the number of cases at
EU/EEA level, by month, over the past five years.
The plot includes:
By default, the function will use the internal Salmonellosis 2012-2016 data.
Figure. Trend and number of confirmed salmonellosis cases, EU/EEA by month, 2012-2016
The plot can also be drafted using external data, and specifying the disease dataset, the disease code and the year to use as reference in the report.
In the example below, we use again Pertussis 2012-2016 data.
Figure. Trend and number of pertussis cases, EU/EEA by month, 2012-2016
The function getMap()
provides with a preview of the PNG
map associated with the disease.
By default, the function will use the internal Salmonellosis 2016 PNG maps. According to the report parameters, the corresponding map should present the notification rate of confirmed salmonellosis cases.
Figure. Distribution of confirmed salmonellosis cases per 100 000 population by country, EU/EEA, 2016
The map can also be included using external PNG files, and specifying the disease code and the year to use as reference in the report. The corresponding syntax is described below (pertussis map not available).
The function getAgeGender()
generates a ggplot (see
package ggplot2
) presenting in a bar graph the distribution
of cases at EU/EEA level by age and gender.
The bar graph uses either:
By default, the function will use the internal Salmonellosis 2012-2016 data with the rate of confirmed cases per 100 000 population.
Figure. Distribution of confirmed salmonellosis cases per 100 000 population, by age and gender, EU/EEA, 2016
The bar graph can also be drafted using external data, and specifying the disease dataset, the disease code and the year to use as reference in the report.
In the example below, we use Zika 2012-2016 data.
Figure. Distribution of Zika virus infection proportion (%), by age and gender, EU/EEA, 2016
The European Surveillance System (TESSy) is a system for the collection, analysis and dissemination of data on communicable diseases. EU Member States and EEA countries contribute to the system by uploading their infectious disease surveillance data at regular intervals.↩︎
2000/96/EC: Commission Decision of 22 December 1999 on the communicable diseases to be progressively covered by the Community network under Decision No 2119/98/EC of the European Parliament and of the Council. Official Journal, OJ L 28, 03.02.2000, p. 50-53.↩︎
2003/534/EC: Commission Decision of 17 July 2003 amending Decision No 2119/98/EC of the European Parliament and of the Council and Decision 2000/96/EC as regards communicable diseases listed in those decisions and amending Decision 2002/253/EC as regards the case definitions for communicable diseases. Official Journal, OJ L 184, 23.07.2003, p. 35-39.↩︎
2007/875/EC: Commission Decision of 18 December 2007 amending Decision No 2119/98/EC of the European Parliament and of the Council and Decision 2000/96/EC as regards communicable diseases listed in those decisions. Official Journal, OJ L 344, 28.12.2007, p. 48-49.↩︎
Commission Decision 2119/98/EC of the Parliament and of the Council of 24 September 1998 setting up a network for the epidemiological surveillance and control of communicable diseases in the Community. Official Journal, OJ L 268, 03/10/1998 p. 1-7.↩︎