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=passwordMore Infos
- about MIRACUM: https://www.miracum.org/
- about the Medical Informatics Initiative: https://www.medizininformatik-initiative.de/index.php/de