DIZutils
The R package DIZutils
provides utility functions used for the R package development infrastructure inside the data integration centers ('DIZ') to standardize and facilitate repetitive tasks such as setting up a database connection or issuing notification messages and to avoid redundancy.
Installation
You can install DIZutils
directly from CRAN:
install.packages("DIZutils")
The development version can be installed using
install.packages("remotes")
remotes::install_github("miracum/misc-dizutils", ref = "development")
Basic functions
db_connection
The function DIZutils::db_connection
provides one simple interface for connecting to various types of databases. It reads necessary connection settings from the active environment (see below how to use the function set_env_vars
to set environment variables).
The following database types are currently supported:
postgres
The following environment variables need to be set to the active environment in order to connect with a postgres database with "i2b2" as name of the database to connect with:
Variable | Description |
---|---|
I2B2_HOST | The hostname/ IP address of your pg instance. |
I2B2_DBNAME | The name of the pg-database. |
I2B2_PORT | The port, your pg postgres instance is running on. |
I2B2_USER | The name of the 'I2B2_USER'. |
I2B2_PASSWORD | The password of the 'I2B2_USER' of your pg instance. |
To establish the connection, please set those environment variables accordingly and execute the following command. The argument db_name
is used to detect the corresponding environment variables and thus must match with the environment variables' prefix.
db_con <- DIZutils::db_connection(
system_name = "i2b2",
db_type = "postgres"
)
oracle
The following environment variables need to be set to the active environment in order to connect with an oracle database:
Variable | Description |
---|---|
MYORACLEDB_HOST | The hostname/ IP address of your oracle instance. |
MYORACLEDB_DBNAME | The name of the oracle-database. |
MYORACLEDB_DRIVER | The path to the oracle jdbc driver. |
MYORACLEDB_SID | The SID of the oracle-database. |
MYORACLEDB_PORT | The port, your oracle postgres instance is running on. |
MYORACLEDB_USER | The name of the 'MYORACLEDB_USER'. |
MYORACLEDB_PASSWORD | The password of the 'MYORACLEDB_USER' of your oracle instance. |
To establish the connection, please set those environment variables accordingly and execute the following command. The argument db_name
is used to detect the corresponding environment variables and thus must match with the environment variables' prefix. Furthermore, an ojdbc*.jar-file needs to be provided via the function's lib_path
argument.
db_con <- DIZutils::db_connection(
system_name = "myoracledb",
db_type = "oracle",
lib_path = "path/to/ojdbc*.jar"
)
set_env_vars
In order to set up a database connection using the function DIZutils::db_connection
, one needs to provide the required connection settings via environment variables. To facilitate the process of making such environment variables available within the current R session, the function DIZutils::set_env_vars
works as a wrapper function around the base R method Sys.setenv
. It takes the file name of a text file with the definitions of the environment variables as input, and sets those environment variables within the current R session.
DIZutils::set_env_vars("path/to/envfile")
The design of the envfile
is based on the .env
file for defining environment variables when using docker-compose commands. See here (currently, neither empty lines nor the using of comments ('#') is being supported by DIZutils::set_env_vars
).
To create an envfile
for connecting with an i2b2 database, the following exemplary definitions of environment variables should be written to a simple textfile, e.g. named envfile
, which can then be passed as argument to DIZutils::set_env_vars
.
I2B2_HOST=123.45.56.8
I2B2_PORT=5432
I2B2_DBNAME=i2b2
I2B2_USER=user
I2B2_PASSWORD=password
More Infos
- about MIRACUM: https://www.miracum.org/
- about the Medical Informatics Initiative: https://www.medizininformatik-initiative.de/index.php/de