Skip to contents

Rapporteket er en Shiny-app utviklet i R. Dette betyr at det meste av funksjonaliteter som trengs for å utvikle applikasjonene er generelle funksjoner som er tilgjengelige i R-universet. Det er likevel noen spesielle ting som gjør Shiny-applikasjonen til en Rapporteket-applikasjon. Dette er:

  • rapbase-funksjoner: Rapbase er en pakke som tilbyr en rekke spesialiserte Rapporteket-funksjoner. Det er Nasjonalt Servicemiljø som vedlikeholder denne pakken, men vi ønsker velkomne forslag og tillegg her. Vi jobber med å dokumentere funksjonene så godt det lar seg gjøre. De essensielle funksjonene som må brukes er:
    • navbarWidgetServer2/navbarWidgetInput for å hente ut brukernavn, rolle og tilhørighet som kommer fra FALK.
    • repLogger/appLogger for å logge til Rapporteket sine logg-databaser.
    • loadRegData for å kjøre spørringer mot database.
    • autoReportServer/autoReportInput/autoReportUI for å sette opp autorapport-utsending.
    • loggerSetup for å få ut logg i json-format.
  • Miljøvariabler: På Norsk Helsenett lagres informasjon om brukeren og Rapporteket kan tilpasses denne brukeren slik at data blir tilgjengelig basert på brukerens tilhørighet eller rolle i registeret. I tillegg er det viktig å logge hvem som ser dataene. For å kjøre applikasjonen lokalt må nødvendige miljøvariabler defineres. Dette kan enten defineres i .Renviron, i .Rprofile ved hjelp av Sys.setenv(), i docker-compose.yml-fil eller i egen R-fil som sources før kjøring av applikasjon. Miljøvariabler som er essensielle er:
    • FALK_EXTENDED_USER_RIGHTS
    • FALK_APP_ID
    • MYSQL_DB_LOG
    • MYSQL_DB_AUTOREPORT
    • MYSQL_DB_DATA
    • MYSQL_HOST
    • MYSQL_USER
    • MYSQL_PASSWORD
    • USERORGID
    • SHINYPROXY_USERNAME
    • SHINYPROXY_USERGROUPS
    • SHINYPROXY_APPID
    • R_RAP_INSTANCE
    • R_RAP_CONFIG_PATH
  • Docker Container: Applikasjonen skal kjøres i en Docker Container på Norsk Helsenett. Ved publisering av ny versjon av en Rapporteket-applikasjon bygges et image på github gjennom en github-action. Dette image dyttes så opp til NHN. For utviklere som har slik software tilgjengelig kan det være lurt å kjøre applikasjonen lokalt også i en container for å få testet applikasjonen i et så likt miljø som mulig.
  • Databaser: Rapporteket-applikasjonen er avhengig av at det finnes databaser for logging og abonnement. Kode for å lage disse ligger i pakken rapbase og må kjøres mot en databaseserver som utvikleren har tilgang til. I tillegg skal applikasjonen ha tilgang til database som inneholder registerdata. Det finnes funksjonalitet i rapbase for å hente ned databasedump fra NHN for å kunne teste lokalt.
  • R-pakke: Erfaring tilsier at det er enklest og best å utvikle applikasjonen som en R-pakke. Dette er fordi det gir god struktur på koden og gjør det enklere å vedlikeholde applikasjonen over tid. Det vil si at utvikleren utvikler applikasjonen etter retningslinjene for pakke-bygging i R.

Dette trenger du for å utvikle Rapportek:

For å kunne utvikle Rapportek-applikasjon trenger man

  • R og RStudio installert
  • kjennskap til R og Shiny
  • Git installert
  • et repositorygithub.com/Rapporteket (dette lages av SKDE)
  • kjennskap til git og GitHub
  • databaseinnstallasjon (MySQL/MariaDB)
  • LaTeX installert

I tillegg er det nyttig med docker installert for å kunne teste applikasjonen i et så likt miljø som mulig som det den skal kjøres på NHN.