--- title: "Hvordan lage en ny Rapporteket-applikasjon" output: rmarkdown::html_vignette vignette: > %\VignetteIndexEntry{Hvordan lage en ny Rapporteket-applikasjon} %\VignetteEngine{knitr::rmarkdown} %\VignetteEncoding{UTF-8} --- Beskrivelsen under er ikke nødvendigvis utfyllende og forutsetter kjennskap til R og bruk av git og GitHub. Som en ekstra støtte anbefales [R pacakges](http://r-pkgs.had.co.nz/) av Hadley Wickham og spesielt [beskrivelsen av git og GitHub](http://r-pkgs.had.co.nz/git.html#git-rstudio). ## Lag ditt eget prosjekt basert på templatet Denne delen kan være relevant om det er ønskelig å benytte templatetet som utgangspunkt for etablering av nye registre på Rapporteket. 1. Hent ned prosjektet [rapRegTemplate](https://github.com/Rapporteket/rapRegTemplate) ```bash git clone https://github.com/Rapporteket/rapRegTemplate.git appnavn ``` 2. Slett mappen `.git` 3. Initiér nytt *git repository* ```bash git init . git add . git commit -m "init commit" ``` 4. Erstatt `rapRegTemplate` med valgfritt pakkenavn i koden og rydd i prosjektet (f.eks. ved bruk av *vscode*). Husk å *commit* underveis. 5. Bygg, installér og kjør pakken i R/RStudio. Test gjerne at innebygget Shiny-applikasjon fungerer på samme vis som i prosjektet "rapRegTemplate" ## Opprett database for logging og abonnement Mye av kjernefunksjonaliteten i Rapporteket og [*rapbase*](https://github.com/Rapporteket/rapbase) er avhengig av at det finnes databaser for logging og abonnement. Kode for å lage disse ligger i pakken *rapbase* og gjengis her. ### Abonnement-database Miljøvariablen `MYSQL_DB_AUTOREPORT` brukes av *rapbase* for å finne navnet på abonnement-databasen. Hvis man har abonnement-funksjonalitet i sitt rapportek, må denne miljøvariabelen defineres: ```r Sys.setenv(MYSQL_DB_AUTOREPORT="db_autoreport") ``` Navnet `db_autoreport` er valgfritt. Selve databasen lages slik: ```sql CREATE DATABASE IF NOT EXISTS `db_autoreport` USE `db_autoreport`; CREATE TABLE IF NOT EXISTS `autoreport` ( `id` varchar(255) COLLATE utf8mb4_danish_ci DEFAULT NULL, `synopsis` varchar(255) COLLATE utf8mb4_danish_ci DEFAULT NULL, `package` varchar(255) COLLATE utf8mb4_danish_ci DEFAULT NULL, `fun` varchar(255) COLLATE utf8mb4_danish_ci DEFAULT NULL, `params` text COLLATE utf8mb4_danish_ci, `owner` varchar(255) COLLATE utf8mb4_danish_ci DEFAULT NULL, `email` varchar(255) COLLATE utf8mb4_danish_ci DEFAULT NULL, `organization` varchar(255) COLLATE utf8mb4_danish_ci DEFAULT NULL, `terminateDate` varchar(255) COLLATE utf8mb4_danish_ci DEFAULT NULL, `interval` varchar(255) COLLATE utf8mb4_danish_ci DEFAULT NULL, `intervalName` varchar(255) COLLATE utf8mb4_danish_ci DEFAULT NULL, `runDayOfYear` text COLLATE utf8mb4_danish_ci, `type` varchar(255) COLLATE utf8mb4_danish_ci DEFAULT NULL, `ownerName` varchar(255) COLLATE utf8mb4_danish_ci DEFAULT NULL, `startDate` varchar(255) COLLATE utf8mb4_danish_ci DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_danish_ci; ``` ### Logg-database Når rapporteket-applikasjonen starter opp og brukes, skrives det til to tabeller i en logg-database. Dette kommer i tillegg til det som logges i Norsk Helsenett sine systemer. Det skriver til disse to tabellene når *rapbase*-funksjonene `appLogger`, `repLogger` og `autLogger` brukes. Se [rapbase sin dokumentasjon](https://rapporteket.github.io/rapbase/reference/logger.html) for mer informasjon om bruk av disse funksjonene. Miljøvariablen `MYSQL_DB_LOG` brukes av *rapbase* for å finne navnet på logg-databasen, og må defineres: ```r Sys.setenv(MYSQL_DB_LOG="db_log") ``` Navnet `db_log` er valgfritt. Selve databasen lages slik: ```sql CREATE DATABASE IF NOT EXISTS `db_log`; USE `db_log`; CREATE TABLE IF NOT EXISTS `appLog` ( `id` int(9) unsigned NOT NULL AUTO_INCREMENT, `time` datetime DEFAULT NULL, `user` varchar(127) COLLATE utf8_danish_ci DEFAULT NULL, `name` varchar(255) COLLATE utf8_danish_ci DEFAULT NULL, `group` varchar(63) COLLATE utf8_danish_ci DEFAULT NULL, `role` varchar(63) COLLATE utf8_danish_ci DEFAULT NULL, `resh_id` varchar(31) COLLATE utf8_danish_ci DEFAULT NULL, `message` varchar(2047) COLLATE utf8_danish_ci DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_danish_ci; CREATE TABLE IF NOT EXISTS `reportLog` ( `id` int(9) unsigned NOT NULL AUTO_INCREMENT, `time` datetime DEFAULT NULL, `user` varchar(127) COLLATE utf8_danish_ci DEFAULT NULL, `name` varchar(255) COLLATE utf8_danish_ci DEFAULT NULL, `group` varchar(63) COLLATE utf8_danish_ci DEFAULT NULL, `role` varchar(63) COLLATE utf8_danish_ci DEFAULT NULL, `resh_id` varchar(31) COLLATE utf8_danish_ci DEFAULT NULL, `environment` varchar(63) COLLATE utf8_danish_ci DEFAULT NULL, `call` varchar(2047) COLLATE utf8_danish_ci DEFAULT NULL, `message` varchar(2047) COLLATE utf8_danish_ci DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_danish_ci; ```