#Resultattjeneste for NorScir
#' Brukergrensesnitt (ui) til nordscir-appen
#'
#' @return Brukergrensesnittet (ui) til nordscir-appen
#' @export
ui_norscir <- function() {
shiny::addResourcePath("rap", system.file("www", package = "rapbase"))
startDato <- as.Date(
paste0(as.numeric(format(Sys.Date()-400, "%Y")), '-01-01')
)
startDato2 <- as.Date(
paste0(as.numeric(format(Sys.Date()-700, "%Y")), '-01-01')
)
context <- Sys.getenv("R_RAP_INSTANCE") #Blir tom hvis jobber lokalt
regTitle = "Norsk ryggmargsskaderegister"
#----Valg
valgAIS <- 0:5
names(valgAIS) <- c("Alle", "A", "B", "C", "D", "E")
valgNivaaUt <- c(99, 0, 1, 2, 3, 9)
names(valgNivaaUt) <- c("Alle", "Paraplegi", "Tetraplegi", "C1-4", "C5-8",
"Ukjent")
tidsenheter <- rev(
c("År" = "Aar", "Halvår" = "Halvaar", "Kvartal" = "Kvartal",
"Måned" = "Mnd")
)
shiny::tagList(
shinyjs::useShinyjs(),
shiny::navbarPage(
id = "hovedark",
title = shiny::div(
shiny::a(
shiny::includeHTML(
system.file("www/logo.svg", package = "rapbase")
)
),
regTitle),
# sett inn tittel også i browser-vindu
windowTitle = regTitle,
# velg css (foreløpig den eneste bortsett fra "naken" utgave)
theme = "rap/bootstrap.css",
#----startside--------
shiny::tabPanel(
"Startside",
shiny::br(),
shiny::tags$head(
shiny::tags$style(
".butt{background-color:#6baed6;} .butt{color: white;}"
)
),
shiny::sidebarPanel(
width = 3,
shiny::br(),
shiny::h3("Månedsrapport"), #),
shiny::downloadButton(
outputId = "mndRapp.pdf",
label = "Last ned MÅNEDSRAPPORT",
class = "butt"
),
shiny::br(),
shiny::br(paste("NB: Nedlasting tar litt tid. I mellomtida får man",
"ikke sett på andre resultater.")),
shiny::br(),
shiny::br(paste("Hvis du ønsker månedsrapporten regelmessig tilsendt",
"på e-post, kan du gå til fanen 'Abonnement' og",
"bestille dette.")),
shiny::br(),
shiny::br(),
shiny::conditionalPanel(
condition = "input.startside == 'Status'",
shiny::h4(
"Velg tidsperiode for nevrologisk klassifikasjon og liggetider"
),
shiny::dateRangeInput(
inputId = "datovalgDash", start = startDato, end = Sys.Date(),
label = "Tidsperiode", separator = "t.o.m.", language = "nb")
)
),
shiny::mainPanel(
width = 8,
if (context %in% c("DEV", "TEST", "QA", "PRODUCTION")) {
rapbase::navbarWidgetInput("navbar-widget")
},
shiny::h2("Velkommen til Rapporteket - Norsk Ryggmargsskaderegister!",
align='center'),
shiny::br(),
shiny::tabsetPanel(
id = "startside",
shiny::tabPanel(
"Brukerveiledning",
shiny::htmlOutput("guide", inline = TRUE)
),
shiny::tabPanel(
"Status",
shiny::h4("Antall registreringer siste år:"),
shiny::tableOutput("tabAntOpphShMnd12startside"),
shiny::h5(paste("(Mer informasjon om registreringsstatus finner",
"du under fanen 'Registreringsoversikter')")),
shiny::br(),
shiny::br(),
shiny::fluidRow(
shiny::column(
width = 6,
shiny::h3("Nevrologisk klassifikasjon", align = "center"),
shiny::h4("alle pasienter", align = "center"),
shiny::br(),
shiny::tableOutput("tabNevrKlass")),
shiny::column(
width = 6,
shiny::h3("Nevrologisk klassifikasjon", align = "center"),
shiny::h4("pasienter med liggetid over 28 dager i
ryggmargsskadeavdeling", align = "center"),
shiny::tableOutput("tabNevrKlass28")
)
),
shiny::fluidRow(
shiny::h3("Liggetider, egen avdeling", align = "left"),
shiny::tableOutput("tabLiggetider")
)
)
)
) #main
), #tab
#--------Fordelinger-----------
shiny::tabPanel(
"Fordelinger",
shiny::sidebarPanel(
width = 3,
shiny::dateRangeInput(
inputId = "datovalg",
start = startDato,
end = Sys.Date(),
label = "Tidsperiode",
separator="t.o.m.",
language="nb"
),
shiny::radioButtons(
inputId = "datoUt",
label = "Bruk utskrivingsdato til datofiltrering?",
choiceNames = c("nei", "ja"),
choiceValues = 0:1,
selected = 0
),
selectInput(
inputId = "valgtVar",
label="Velg variabel",
choices = c(
"Alder" = "Alder",
"Ais ved innleggelse" = "AAis" ,
"Ais ved utskriving" = "FAis",
"Anbefalt tid til kontroll" = "AnbefTidKtr",
"Lengde på rehab.opphold" = "DagerRehab",
"Opphold, totalt antall dager" = "OpphTot",
"Planlagt utskrevet til" = "PPlaceDis",
#"Fjern? Permisjon (ant. døgn ute av sykehus) " = "Permisjon",
"Registreringsforsinkelse" = "RegForsinkelse",
"Skadeårsak " = "SkadeArsak",
"Skadeårsak, ikke-traumatisk" = "Ntsci",
"Tid fra skade til oppstart rehab." = "DagerTilRehab",
"Tid med rehabilitering" = "DagerRehab",
"Utskrevet til" = "UtTil",
#"Fjern? Pustehjelp" = "Pustehjelp[VentAssi]",
"A&D Funksjon: Mobilitet" = "FunkMob",
"A&D Funksjon: Påkledning" = "FunkKler",
"A&D Funksjon: Spising" = "FunkSpis",
"A&D Funksjon: Toalett" = "FunkDo",
"A&D Tilfredshet: Mobilitet" = "TilfMob",
"A&D Tilfredshet: Påkledning" = "TilfKler",
"A&D Tilfredshet: Spising" = "TilfSpis",
"A&D Tilfredshet: Toalett" = "TilfDo",
"Livskval.: Tilfredshet med livet" = "LivsGen",
"Livskval.: Tilfredshet med fysisk helse" = "LivsFys",
"Livskval.: Tilfredshet med psykisk helse" = "LivsPsyk",
"Urin: Ufrivillig urinlekkasje (fra 2019)" = "UrinInkontinens",
"Urin: Ufrivillig urinlekkasje (t.o.m. 2018)" = "UrinInkontinensTom2018",
"Urin: Kirurgiske inngrep" = "UrinKirInngr",
"Urin: Legemiddelbruk (fra 2019)" = "UrinLegemidler",
# "Urin: Legemiddelbruk (t.o.m. 2018)" = "UrinLegemidlerTom2018",
"Urin: Legemiddelbruk, hvilke" = "UrinLegemidlerHvilke",
"Urin: Blæretømming, hovedmetode" = "UrinTomBlareHoved",
"Urin: Blæretømming, tilleggsmetode" = "UrinTomBlareTillegg",
"Tarm: Avføring, hovedmetode" = "TarmAvfHoved",
"Tarm: Avføring, tilleggsmetode" = "TarmAvfTillegg",
"Tarm: Avføringsmiddelbruk" = "TarmAvfmiddel",
"Tarm: Avføringsmidler, hvilke" = "TarmAvfmiddelHvilke",
"Tarm: Fekal inkontinens (fra 2019)" = "TarmInkontinensFra2019",
"Tarm: Fekal inkontinens (t.o.m. 2018)" = "TarmInkontinensTom2018",
"Tarm: Kirurgisk inngrep" = "TarmKirInngrep",
"Tarm: Kirurgiske inngrep, hvilke" = "TarmKirInngrepHvilke",
"Tarm: NBD" = "TarmNBD",
"EQ5D: Mobilitet" = "Eq5dQ1Mobility",
"EQ5D: Personlig stell" = "Eq5dQ2Selfcare",
"EQ5D: Daglige gjøremål" = "Eq5dQ3UsualActivities",
"EQ5D: Smerter, ubehag" = "Eq5dQ4PainDiscomfort",
"EQ5D: Angst og depresjon" = "Eq5dQ5AnxietyDepression",
"EQ5D: Generell helsetilstand" = "Eq5dQ6HealthToday"
),
selected = c("Registreringsforsinkelse" = "RegForsinkelse")
),
shiny::selectInput(
inputId = "erMann",
label = "Kjønn",
choices = c("Begge" = 2, "Menn" = 1, "Kvinner" = 0)
),
shiny::sliderInput(
inputId = "alder",
label = "Alder",
min = 0,
max = 110,
value = c(0, 110)
),
shiny::selectInput(
inputId = "enhetsUtvalg",
label = "Egen enhet og/eller landet",
choices = c("Egen mot resten av landet" = 1, "Hele landet" = 0,
"Egen enhet" = 2)
),
shiny::selectInput(
inputId = "AIS",
label = "AIS-grad ved utreise",
multiple = T, #selected=0,
choices = valgAIS
),
shiny::selectInput(
inputId = "traume",
label="Traume",
choices = c("Alle" = " ", #"ikke"
"Traume" = "ja",
"Ikke traume" = "nei")
),
shiny::selectInput(
inputId = "nivaaUt",
label = "Nivå ved utreise",
choices = valgNivaaUt
),
shiny::selectInput(
inputId = "bildeformatFord",
label = "Velg format for nedlasting av figur",
choices = c("pdf", "png", "jpg", "bmp", "tif", "svg")
)
), #Sidebar
shiny::mainPanel(
width = 6,
shiny::tabsetPanel(
id="fordeling",
shiny::tabPanel(
"Figur",
shiny::br(),
em("(Høyreklikk på figuren for å laste den ned)"),
shiny::br(),
shiny::br(),
shiny::plotOutput("fordelinger", height = "auto"),
shiny::downloadButton(
outputId = "lastNed_figFord", label="Last ned figur"
),
hr()
),
shiny::tabPanel(
"Figur, alle sykehus",
shiny::plotOutput("fordelingPrSh", height = "auto"),
shiny::downloadButton(
outputId = "lastNed_figFordSh", label = "Last ned figur")
),
shiny::tabPanel(
"Tabell",
shiny::uiOutput("tittelFord"),
shiny::br(),
shiny::tableOutput("fordelingTab"),
shiny::downloadButton(
outputId = "lastNed_tabFord", label = "Last ned tabell"
),
shiny::br(),
shiny::br(),
shiny::br(),
shiny::br(),
shiny::tableOutput("fordelingShTab"),
shiny::downloadButton(
outputId = "lastNed_tabFordSh", label="Last ned"
)
)
) #tabset
) #mainPanel
), #tab Fordelinger
#--------Før/etter----------------
tabPanel('Resultater over tid',
h3('Sammenligne resultater ved innkomst/utreise eller utreise/kontroll'),
sidebarPanel(
width = 3,
conditionalPanel(
condition = "input.PP == 'Fordeling før/etter'",
selectInput(
inputId = "valgtVarPP",
label="Velg variabel ",
choices = c("AIS, utskriving/kontroll"="KontFAis",
"Utskrevet til "="KontUtTil")
)),
conditionalPanel(
condition = "input.PP == 'Stabelplott, før/etter'",
selectInput(
inputId = "valgtVarStabelPP",
label="Velg variabel",
choices = c("AIS inn/ut" = "AAisFAis",
"AIS ut/1.kontroll" = "KontFAis"),
selected = "KontFAis"
)),
selectInput(
inputId = "enhetsUtvalgPP",
label="Egen enhet/hele landet",
choices = c("Hele landet" = 0,
"Egen enhet" = 2)
),
shiny::dateRangeInput(
inputId = "datovalgPP",
start = startDato,
end = Sys.Date(),
label = "Tidsperiode", separator="t.o.m.", language="nb"
),
shiny::radioButtons(
inputId = "datoUtPP",
"Bruk utskrivingsdato til datofiltrering?",
choiceNames = c("nei", "ja"),
choiceValues = 0:1,
selected = 0
),
shiny::selectInput(
inputId = "bildeformatPP",
label = "Velg format for nedlasting av figur",
choices = c("pdf", "png", "jpg", "bmp", "tif", "svg")
)
),
mainPanel(
tabsetPanel(
id = 'PP',
tabPanel( 'Fordeling før/etter',
br(),
h3("Endring fra utskriving til kontroll"), #),
br(),
plotOutput("fordPrePost", height = "auto"),
downloadButton(
outputId = "lastNed_figfordPrePost", label="Last ned figur"
)
),
tabPanel('Stabelplott, før/etter',
plotOutput("figStabelPrePost", height = "auto"),
downloadButton(
outputId = "lastNed_figStabelPrePost", label="Last ned figur"
)
)
) ) #main
), #Resultater over tid
#------------ Gjennomsnitt ------------
shiny::tabPanel(
"Gjennomsnitt per sykehus og over tid",
shiny::sidebarPanel(
width = 3,
shiny::selectInput(
inputId = "valgtVarGjsn",
label="Velg variabel",
choices = c("Alder" = "Alder",
"Lengde på rehab.opphold" = "DagerRehab",
"Opphold, totalt antall dager" = "OpphTot",
"Registreringsforsinkelse" = "RegForsinkelse",
"Tid fra skade til oppstart rehab." = "DagerTilRehab",
"Livskval.: Tilfredshet med livet" = "LivsGen",
"Livskval.: Tilfredshet med fysisk helse" = "LivsFys",
"Livskval.: Tilfredshet med psykisk helse" = "LivsPsyk"
),
selected = c("Registreringsforsinkelse" = "RegForsinkelse")
),
shiny::dateRangeInput(
inputId = "datovalgGjsn",
start = startDato,
end = Sys.Date(),
label = "Tidsperiode", separator="t.o.m.", language="nb"
),
shiny::radioButtons(
inputId = "datoUtGjsn",
"Bruk utskrivingsdato til datofiltrering?",
choiceNames = c("nei", "ja"),
choiceValues = 0:1,
selected = 0
),
shiny::selectInput(inputId = "erMannGjsn",
label="Kjønn",
choices = c("Begge"=2, "Menn"=1, "Kvinner"=0)
),
shiny::sliderInput(
inputId="alderGjsn",
label = "Alder",
min = 0,
max = 110,
value = c(0, 110)
),
shiny::selectInput(
inputId = "AISGjsn",
label="AIS-grad ved utreise",
multiple = TRUE, #selected=0,
choices = valgAIS
),
shiny::selectInput(
inputId = "traumeGjsn",
label="Traume",
choices = c("Alle"=" ", #"ikke"
"Traume"="ja",
"Ikke traume"="nei")
),
shiny::selectInput(
inputId = "paratetraGjsn",
label="Nivå ved utreise",
choices = c("Alle" = 99,
"Paraplegi" = 0,
"Tetraplegi" = 1,
"Ukjent" = 9)
),
shiny::selectInput(
inputId = "sentralmaal",
label="Velg gjennomsnitt/median ",
choices = c("Gjennomsnitt"="gjsn", "Median"="med")
),
shiny::br(),
shiny::p(
shiny::em(paste("Følgende utvalg gjelder bare figuren/tabellen som",
"viser utvikling over tid"))
),
shiny::selectInput(
inputId = "enhetsUtvalgGjsn",
label="Egen enhet og/eller landet",
choices = c("Egen mot resten av landet"=1,
"Hele landet" = 0,
"Egen enhet" = 2)
),
shiny::selectInput(
inputId = "tidsenhetGjsn",
label = "Velg tidsenhet",
choices = tidsenheter
),
shiny::selectInput(
inputId = "bildeformatGjsn",
label = "Velg format for nedlasting av figur",
choices = c("pdf", "png", "jpg", "bmp", "tif", "svg")
)
),
shiny::mainPanel(
shiny::tabsetPanel(
shiny::tabPanel(
"Figur",
shiny::br(),
shiny::h3(shiny::em("Utvikling over tid")),
shiny::plotOutput("gjsnTid", height = "auto"),
shiny::downloadButton(
outputId = "lastNed_figGjsnTid", label="Last ned figur"
),
shiny::br(),
shiny::h3(em("Sykehusvise resultater")),
shiny::plotOutput("gjsnGrVar", height = "auto"),
shiny::downloadButton(
outputId = "lastNed_figGjsnGrVar", label = "Last ned figur")
),
shiny::tabPanel(
"Tabell",
shiny::uiOutput("tittelGjsnGrVar"),
shiny::br(),
shiny::tableOutput("gjsnTidTab"),
shiny::br(),
shiny::tableOutput("gjsnGrVarTab"),
shiny::downloadButton(
outputId = "lastNed_tabGjsnGrVar", label = "Last ned"
)
)
)
)
), #Gjsn
#-----Registreringsoversikter------------
shiny::tabPanel(
"Registreringsoversikter",
shiny::sidebarPanel(
width=3,
shiny::h3("Utvalg"),
shiny::conditionalPanel(
condition = "input.ark == 'Antall personer med ryggmargsskade'",
shiny::dateInput(
inputId = "sluttDatoReg",
label = "Velg sluttdato",
language="nb",
value = Sys.Date(),
max = Sys.Date()
)
),
shiny::conditionalPanel(
condition = "input.ark == 'Antall personer med ryggmargsskade'",
shiny::selectInput(
inputId = "tidsenhetReg",
label="Velg tidsenhet",
choices = rev(c("År"= "Aar", "Måned"="Mnd"))
)
),
shiny::conditionalPanel(
condition = "input.ark == 'Antall personer med ryggmargsskade'",
shiny::selectInput(
inputId = "traumeReg",
label="Traume",
choices = c("Alle"=" ", #"ikke"
"Traume"="ja",
"Ikke traume"="nei"))
),
shiny::conditionalPanel(
condition = paste0(
"input.ark == 'Antall hovedskjema med tilknyttede skjema' | ",
"input.ark == 'Antall kontrollskjema med tilknyttede skjema' "
),
shiny::dateRangeInput(
inputId = "datovalgReg",
start = startDato,
end = Sys.Date(),
label = "Tidsperiode",
separator="t.o.m.",
language="nb"
)
)
),
shiny::mainPanel(
shiny::tabsetPanel(
id = "ark",
shiny::tabPanel(
"Antall personer med ryggmargsskade",
shiny::uiOutput("undertittelReg"),
shiny::p(paste("Velg tidsperiode ved å velge sluttdato/tidsenhet",
"i menyen til venstre")),
shiny::br(),
shiny::fluidRow(
shiny::tableOutput("tabAntOpphShMnd12"),
shiny::downloadButton(
outputId = "lastNed_tabAntOpph", label="Last ned"
)
)
),
shiny::tabPanel(
"Antall hovedskjema med tilknyttede skjema",
shiny::h3("Antall hovedskjema med tilknyttede skjema"),
h5('Tidsperioden er basert på innleggelsesdato'),
shiny::tableOutput("tabAntTilknyttedeHovedSkjema"),
shiny::downloadButton(
outputId = "lastNed_tabOppfHovedAnt", label = "Last ned"
),
shiny::br(),
shiny::h3("Andel (%) hovedskjema med tilknyttede skjema"),
shiny::tableOutput("tabAndelTilknyttedeHovedSkjema"),
shiny::downloadButton(
outputId = "lastNed_tabOppfHovedPst", label="Last ned"
)
),
shiny::tabPanel(
"Antall kontrollskjema med tilknyttede skjema",
shiny::h3("Antall kontrollskjema med tilknyttede skjema"),
shiny::h5("Datoutvalg er basert på dato for kontroll"),
shiny::tableOutput("tabAntTilknyttedeKtrSkjema"),
shiny::downloadButton(
outputId = "lastNed_tabOppfKtrAnt", label="Last ned"
),
shiny::br(),
shiny::h3("Andel (%) kontrollskjema med tilknyttede skjema"),
shiny::tableOutput("tabAndelTilknyttedeKtrSkjema"),
shiny::downloadButton(
outputId = "lastNed_tabOppfKtrPst", label="Last ned"
)
)
)
)
), #tab Registreringsoversikter
#----------------------Registeradministrasjon-----------------------------
shiny::tabPanel(
"Registeradministrasjon",
shiny::h2("Fane som bare er synlig for SC-bruker."),
shiny::tabsetPanel(
id = "ark",
shiny::tabPanel(
"Samlerapporter",
shiny::sidebarPanel(
width=3,
shiny::h3("Utvalg"),
shiny::dateRangeInput(
inputId = "datovalgSamleRapp",
start = startDato-150,
end = Sys.Date(),
label = "Tidsperiode",
separator="t.o.m.",
language="nb"
)
),
shiny::mainPanel(
shiny::br(),
shiny::br(),
shiny::h3("Resultater, hele landet"), #),
shiny::downloadButton(
outputId = "samleRappLand.pdf",
label="Last ned samlerapport, hele landet", class = "butt"
),
shiny::br(),
shiny::h3("Resultater eget sykehus"), #),
shiny::downloadButton(
outputId = "samleRappEgen.pdf",
label="Last ned egen samlerapport", class = "butt"
),
shiny::br(),
shiny::br()
)
),
shiny::tabPanel(
"Utsendinger",
title = "Utsending av rapporter",
shiny::sidebarLayout(
shiny::sidebarPanel(
rapbase::autoReportOrgInput("NSuts"),
rapbase::autoReportInput("NSuts")
),
shiny::mainPanel(
rapbase::autoReportUI("NSuts")
)
)
),
shiny::tabPanel(
"Eksport, krypterte data",
shiny::sidebarPanel(
rapbase::exportUCInput("norscirExport")
),
shiny::mainPanel(
rapbase::exportGuideUI("norscirExportGuide")
)
) #Eksport-tab
) #tabsetPanel
), #Registeradm-tab
#------------------Abonnement------------------------
shiny::tabPanel(
shiny::p(
"Abonnement",
title="Bestill automatisk utsending av månedsrapport på e-post"),
shiny::sidebarLayout(
shiny::sidebarPanel(
rapbase::autoReportInput("ns-subscription")
),
shiny::mainPanel(
rapbase::autoReportUI("ns-subscription")
)
)
)
) #navbar
) #tagList
}
#' Server-del til norscir-appen
#'
#' @param input shiny input object
#' @param output shiny output object
#' @param session shiny session object
#'
#' @return Server-delen til norscir-appen
#' @export
server_norscir <- function(input, output, session) {
#library(nordicscir)
#print(session)
rapbase::appLogger(
session = session,
msg = "Starter norscir-app'en"
)
# session persistent objects
if (rapbase::isRapContext()) {
reshID <- as.numeric(rapbase::getUserReshId(session))
rolle <- rapbase::getUserRole(session)
brukernavn <- rapbase::getUserName(session)
} else {
reshID <- 0
rolle <- 'ukjent'
brukernavn <- 'ukjent'
}
isGetDataOk <- TRUE
isprocessAllDataOk <- TRUE
AlleTab <- nordicscir::getRealData(register = 'norscir')
if (is.null(AlleTab)) {
warning("Not able to get real data!")
isGetDataOk <- FALSE
#AlleTab <- nordicscir::getFakeData() #Har foreløpig bare norske, fiktive data. Men blir de hentet...?
}
AlleTab <- nordicscir::processAllData(AlleTab, register = 'norscir')
if (is.null(AlleTab)) {
warning("Not able to process data.")
isprocessAllDataOk <- FALSE
}
rapbase::appLogger(
session = session,
msg = "Hei, hei. NorScirdata er hentet"
)
isDataOk <- all(c(isGetDataOk, isprocessAllDataOk))
attach(AlleTab)
enhet <- ifelse(exists('reshID'),
as.character(HovedSkjema$ShNavn[match(reshID, HovedSkjema$ReshId)]),
'Uidentifisert enhet')
rapbase::appLogger(
session = session,
msg = paste0("Enhet: ", enhet)
)
# observe({
if (rolle != 'SC') { #
hideTab(inputId = "hovedark", target = "Registeradministrasjon")
}
# })
#--------------Startside------------------------------
rapbase::navbarWidgetServer(
id = "navbar-widget", orgName = enhet, caller = "norscir" #caller = pakkenavn
)
output$guide <- shiny::renderText(
rapbase::renderRmd(
system.file("brukerveiledning.Rmd", package = "nordicscir"),
outputType = "html_fragment",
params = list(isDataOk = isDataOk)
)
)
if (isDataOk) {
output$tabAntOpphShMnd12startside <-
shiny::renderTable(
nordicscir::tabAntOpphShMnd(RegData = HovedSkjema, antMnd = 12),
rownames = T, digits=0, spacing="xs"
)
} else {
output$tabAntOpphShMnd12startside <- NULL
}
observe({
if (isDataOk) {
output$tabNevrKlass <- shiny::renderTable(
nordicscir::lagTabNevrKlass(
HovedSkjema,
datoFra = input$datovalgDash[1],
datoTil = input$datovalgDash[2]
),
rownames = TRUE
)
output$tabNevrKlass28 <- shiny::renderTable({
HovedSkjema28 <- HovedSkjema[which(HovedSkjema$DagerRehab > 28), ]
nordicscir::lagTabNevrKlass(
HovedSkjema28,
datoFra = input$datovalgDash[1],
datoTil = input$datovalgDash[2]
)
},
rownames = TRUE
)
output$tabLiggetider <- shiny::renderTable({
nordicscir::tabLiggetider(
RegData = HovedSkjema,
datoFra = input$datovalgDash[1],
datoTil = input$datovalgDash[2],
enhetsUtvalg=2,
reshID=reshID
)
},
rownames = TRUE,
digits = 0
)
} else {
output$tabNevrKlass <- NULL
output$tabNevrKlass28 <- NULL
output$tabLiggetider <- NULL
}
})
#----------Tabeller, registreringsoversikter ----------------------
output$undertittelReg <- shiny::renderUI({
shiny::br()
t1 <- "Tabellen viser innleggelser "
t2 <- ", basert på første akutte innleggelse"
shiny::h4(shiny::HTML(
switch(
input$tidsenhetReg,
Mnd = paste0(t1, "siste 12 måneder før ", input$sluttDatoReg, t2,
"<br />"),
Aar = paste0(t1, "siste 5 år før ", input$sluttDatoReg, t2, "<br />")
)
))
})
shiny::observe({
if (isDataOk) {
tabAntOpphShMndAar <-
switch(
input$tidsenhetReg,
Mnd = nordicscir::tabAntOpphShMnd(
RegData = HovedSkjema,
datoTil = input$sluttDatoReg,
traume = input$traumeReg,
antMnd = 12
),
Aar = nordicscir::tabAntOpphSh5Aar(
RegData = HovedSkjema,
datoTil = input$sluttDatoReg,
traume = input$traumeReg
)
)
output$tabAntOpphShMnd12 <- shiny::renderTable(
tabAntOpphShMndAar, rownames = TRUE, digits = 0, spacing = "xs"
)
output$lastNed_tabAntOpph <- shiny::downloadHandler(
filename = function() {paste0("tabAntOpph.csv")},
content = function(file, filename) {
write.csv2(tabAntOpphShMndAar, file, row.names = TRUE, na = "")
}
)
#Antall skjema av alle typer.
tabTilknHovedSkjema <- nordicscir::tabSkjemaTilknyttet(
Data = AlleTab,
moderSkjema = "Hoved",
datoFra = input$datovalgReg[1],
datoTil = input$datovalgReg[2]
)
#Hovedskjema som har tilknyttede skjema av ulik type
output$tabAntTilknyttedeHovedSkjema <- shiny::renderTable(
tabTilknHovedSkjema$Antall,
rownames = TRUE,
digits = 0,
spacing = "xs"
)
output$lastNed_tabOppfHovedAnt <- shiny::downloadHandler(
filename = function() {'tabOppfHovedAnt.csv'},
content = function(file, filename) {
write.csv2(
tabTilknHovedSkjema$Antall, file, row.names = TRUE, na = ""
)
}
)
#Andel (prosent) av registreringsskjemaene som har oppfølgingsskjema.
output$tabAndelTilknyttedeHovedSkjema <- shiny::renderTable(
tabTilknHovedSkjema$Andeler,
rownames = TRUE,
digits = 0,
spacing = "xs"
)
output$lastNed_tabOppfHovedPst <- shiny::downloadHandler(
filename = function() {'tabOppfHovedPst.csv'},
content = function(file, filename) {
write.csv2(
tabTilknHovedSkjema$Andeler, file, row.names = TRUE, na = ""
)
}
)
#Kontrollskjema som har tilknyttede skjema av ulik type
tabTilknKtrSkjema <- nordicscir::tabSkjemaTilknyttet(
Data = AlleTab,
moderSkjema = "Kont",
datoFra = input$datovalgReg[1],
datoTil = input$datovalgReg[2]
)
output$tabAntTilknyttedeKtrSkjema <- shiny::renderTable(
tabTilknKtrSkjema$Antall, rownames = TRUE, digits = 0, spacing = "xs"
)
output$lastNed_tabOppfKtrAnt <- shiny::downloadHandler(
filename = function() {'tabOppfKtrAnt.csv'},
content = function(file, filename) {
write.csv2(tabTilknKtrSkjema$Antall, file, row.names = TRUE, na = "")
}
)
#Andel (prosent) av kontrollskjemaene som har oppfølgingsskjema.
output$tabAndelTilknyttedeKtrSkjema <- shiny::renderTable(
tabTilknKtrSkjema$Andeler, rownames = TRUE, digits = 0, spacing = "xs" )
output$lastNed_tabOppfKtrPst <- shiny::downloadHandler(
filename = function() {"tabOppfKtrPst.csv"},
content = function(file, filename) {
write.csv2(tabTilknKtrSkjema$Andeler, file, row.names = TRUE, na = "")
}
)
} else {
output$tabAntOpphShMnd12 <- NULL
output$lastNed_tabAntOpph <- NULL
output$tabAntTilknyttedeHovedSkjema <- NULL
output$lastNed_tabOppfHovedAnt <- NULL
output$tabAndelTilknyttedeHovedSkjema <- NULL
output$lastNed_tabOppfHovedPst <- NULL
output$lastNed_tabOppfKtrAnt <- NULL
output$tabAndelTilknyttedeKtrSkjema <- NULL
output$lastNed_tabOppfKtrPst <- NULL
}
})
#---------Fordelinger:--fordelingsfigurer og tabeller----------
shiny::observe({
if (isDataOk) {
RegData <- nordicscir::finnRegData(valgtVar = input$valgtVar, Data = AlleTab)
RegData <- nordicscir::TilLogiskeVar(RegData)
output$fordelinger <- shiny::renderPlot({
nordicscir::NSFigAndeler(
RegData = RegData, valgtVar = input$valgtVar, preprosess = 0,
datoFra = input$datovalg[1], datoTil = input$datovalg[2],
reshID = reshID,
AIS = as.numeric(input$AIS), traume = input$traume,
nivaaUt = as.numeric(input$nivaaUt),
minald = as.numeric(input$alder[1]),
maxald = as.numeric(input$alder[2]),
erMann = as.numeric(input$erMann),
enhetsUtvalg = as.numeric(input$enhetsUtvalg),
datoUt = as.numeric(input$datoUt),
session = session
)},
height = 800, width = 800
)
output$lastNed_figFord <- shiny::downloadHandler(
filename = function() {
paste0("Fordeling_", valgtVar = input$valgtVar, "_", Sys.time(), ".",
input$bildeformatFord)
},
content = function(file) {
nordicscir::NSFigAndeler(
RegData = RegData, valgtVar = input$valgtVar, preprosess = 0,
datoFra = input$datovalg[1], datoTil = input$datovalg[2],
datoUt = as.numeric(input$datoUt), reshID = reshID,
AIS = as.numeric(input$AIS), traume = input$traume,
nivaaUt = as.numeric(input$nivaaUt),
minald = as.numeric(input$alder[1]),
maxald = as.numeric(input$alder[2]),
erMann = as.numeric(input$erMann),
enhetsUtvalg = as.numeric(input$enhetsUtvalg),
session = session,
outfile = file
)
}
)
UtDataFord <-
nordicscir::NSFigAndeler(
RegData = RegData, preprosess = 0, valgtVar = input$valgtVar,
datoFra = input$datovalg[1], datoTil = input$datovalg[2],
datoUt = as.numeric(input$datoUt),
reshID = reshID,
AIS = as.numeric(input$AIS), traume = input$traume,
nivaaUt = as.numeric(input$nivaaUt),
minald = as.numeric(input$alder[1]),
maxald = as.numeric(input$alder[2]),
erMann = as.numeric(input$erMann),
enhetsUtvalg = as.numeric(input$enhetsUtvalg),
session = session
)
output$tittelFord <- shiny::renderUI({
shiny::tagList(
shiny::h3(UtDataFord$tittel),
shiny::h5(shiny::HTML(paste0(UtDataFord$utvalgTxt, "<br />")))
)
})
tabFord <- nordicscir::lagTabavFigAndeler(UtDataFraFig = UtDataFord)
output$fordelingTab <- function() {
antKol <- ncol(tabFord)
kableExtra::kable(
tabFord, format = "html",
full_width = FALSE,
digits = c(0, 1, 0, 1)[1:antKol]
) %>%
kableExtra::add_header_above(
c(" " = 1, "Egen enhet/gruppe" = 2, "Resten" = 2)[1:(antKol/2 + 1)]
) %>%
kableExtra::column_spec(column = 1, width_min = "7em") %>%
kableExtra::column_spec(
column = 2:(ncol(tabFord) + 1), width = "7em"
) %>%
kableExtra::row_spec(0, bold = TRUE)
}
output$lastNed_tabFord <- shiny::downloadHandler(
filename = function() {paste0(input$valgtVar, '_fordeling.csv')},
content = function(file, filename) {
write.csv2(tabFord, file, row.names = FALSE, na = "")
}
)
output$fordelingPrSh <- shiny::renderPlot({
nordicscir::NSFigAndelerSh(
RegData = RegData, valgtVar = input$valgtVar, preprosess = 0,
datoFra = input$datovalg[1], datoTil = input$datovalg[2],
datoUt = as.numeric(input$datoUt),
AIS = as.numeric(input$AIS), traume = input$traume,
nivaaUt = as.numeric(input$nivaaUt),
minald = as.numeric(input$alder[1]),
maxald = as.numeric(input$alder[2]),
erMann = as.numeric(input$erMann),
session = session
)},
height = 800, width = 800
)
output$lastNed_figFordSh <- shiny::downloadHandler(
filename = function() {
paste0("FordelingPrSh_", valgtVar = input$valgtVar, "_", Sys.time(),
".", input$bildeformatFord)
},
content = function(file) {
nordicscir::NSFigAndelerSh(
RegData = RegData, valgtVar = input$valgtVar, preprosess = 0,
datoFra = input$datovalg[1], datoTil = input$datovalg[2],
datoUt = as.numeric(input$datoUt),
AIS = as.numeric(input$AIS), traume = input$traume,
nivaaUt = as.numeric(input$nivaaUt),
minald = as.numeric(input$alder[1]),
maxald = as.numeric(input$alder[2]),
erMann = as.numeric(input$erMann),
session = session,
outfile = file
)
}
)
UtDataFordSh <-
nordicscir::NSFigAndelerSh(
RegData = RegData, preprosess = 0, valgtVar = input$valgtVar,
datoFra = input$datovalg[1], datoTil = input$datovalg[2],
datoUt = as.numeric(input$datoUt),
AIS = as.numeric(input$AIS), traume = input$traume,
nivaaUt = as.numeric(input$nivaaUt),
minald = as.numeric(input$alder[1]),
maxald = as.numeric(input$alder[2]),
erMann = as.numeric(input$erMann),
session = session
)
tabFordSh <- nordicscir::lagTabavFigAndelerSh(UtDataFraFig = UtDataFordSh)
output$fordelingShTab <- function() {
antKol <- ncol(tabFordSh)
kableExtra::kable(
tabFordSh,
format = "html",
full_width = FALSE,
digits = c(0, 0, 0, 1, 1, 1)[1:antKol]
) %>%
kableExtra::add_header_above(
header = c(" " = 1, "Antall" = 3, "Andel" = 3)
) %>%
kableExtra::column_spec(column = 1, width_min = "7em") %>%
kableExtra::column_spec(
column = 2:(ncol(tabFordSh) + 1), width = "7em"
) %>%
kableExtra::row_spec(0, bold = TRUE)
}
output$lastNed_tabFordSh <- shiny::downloadHandler(
filename = function() {paste0(input$valgtVar, "_fordelingSh.csv")},
content = function(file, filename) {
write.csv2(tabFordSh, file, row.names = FALSE, na = "")
}
)
} else {
output$fordelinger <- NULL
output$lastNed_figFord <- NULL
output$tittelFord <- NULL
output$fordelingTab <- NULL
output$lastNed_tabFord <- NULL
output$fordelingPrSh <- NULL
output$lastNed_figFordSh <- NULL
output$fordelingShTab <- NULL
output$lastNed_tabFordSh <- NULL
}
}) #observe Fordeling
#----------Før/etter--------------
shiny::observe({
if (isDataOk) {
RegData <- nordicscir::finnRegData(valgtVar = input$valgtVarPP, Data = AlleTab)
RegData <- nordicscir::TilLogiskeVar(RegData)
output$fordPrePost <- shiny::renderPlot({
nordicscir::NSFigPrePost(
RegData = RegData, preprosess = 0,
valgtVar = input$valgtVarPP,
datoFra = input$datovalgPP[1], datoTil = input$datovalgPP[2],
reshID = reshID,
# AIS = as.numeric(input$AIS), traume = input$traume,
# nivaaUt = as.numeric(input$nivaaUt),
# minald = as.numeric(input$alder[1]),
# maxald = as.numeric(input$alder[2]),
# erMann = as.numeric(input$erMann),
enhetsUtvalg = as.numeric(input$enhetsUtvalgPP),
datoUt = as.numeric(input$datoUtPP),
session = session
)},
height = 800, width = 800
)
output$lastNed_figfordPrePost <- shiny::downloadHandler(
filename = function() {
paste0("FigPreKtr_", input$valgtVarPP, "_", Sys.time(), #input$valgtVarKtr
".", input$bildeformatPP)
},
content = function(file) {
nordicscir::NSFigPrePost(
RegData = RegData, reshID = reshID, preprosess = 0,
valgtVar = input$valgtVarPP,
datoFra = input$datovalgPP[1], datoTil = input$datovalgPP[2],
datoUt = as.numeric(input$datoUtPP),
enhetsUtvalg = as.numeric(input$enhetsUtvalgPP),
session = session,
outfile = file
)
}
)
} else {
output$fordPrePost <- NULL
output$lastNed_figfordPrePost <- NULL}
})
shiny::observe({
#print(input$valgtVarStabelPP)
if (isDataOk) {
RegData <- nordicscir::finnRegData(valgtVar = input$valgtVarStabelPP, Data = AlleTab)
RegData <- nordicscir::TilLogiskeVar(RegData)
output$figStabelPrePost <- shiny::renderPlot({
nordicscir::NSFigStabelAnt(
RegData = RegData, preprosess = 0,
valgtVar = input$valgtVarStabelPP,
datoUt = as.numeric(input$datoUtPP),
datoFra = input$datovalgPP[1], datoTil = input$datovalgPP[2],
reshID = reshID,
enhetsUtvalg = as.numeric(input$enhetsUtvalgPP),
session = session
)},
height = 800, width = 800
)
output$lastNed_figStabelPrePost <- shiny::downloadHandler(
filename = function() {
paste0("FigFordPP_", input$valgtVarPP, "_", Sys.time(),
".", input$bildeformatPP)
},
content = function(file) {
nordicscir::NSFigStabelAnt(
RegData = RegData, preprosess = 0,
valgtVar = input$valgtVarStabelPP,
datoUt = as.numeric(input$datoUtPP),
datoFra = input$datovalgPP[1], datoTil = input$datovalgPP[2],
reshID = reshID,
enhetsUtvalg = as.numeric(input$enhetsUtvalgPP),
session = session,
outfile = file
)
}
)
} else {
output$figStabelPrePost <- NULL
#output$lastNed_figfordPrePost <- NULL
}
})
#-----------------Sykehusvise gjennomsnitt, figur og tabell-------------------
observe({
if (isDataOk) {
RegData <- nordicscir::finnRegData(valgtVar = input$valgtVarGjsn, Data = AlleTab)
output$gjsnGrVar <- shiny::renderPlot(
nordicscir::NSFigGjsnGrVar(RegData = RegData, preprosess = 0,
valgtVar = input$valgtVarGjsn,
datoFra = input$datovalgGjsn[1],
datoTil = input$datovalgGjsn[2],
datoUt = as.numeric(input$datoUtGjsn),
AIS = as.numeric(input$AISGjsn),
traume = input$traumeGjsn,
nivaaUt = as.numeric(input$paratetraGjsn),
minald = as.numeric(input$alderGjsn[1]),
maxald = as.numeric(input$alderGjsn[2]),
erMann = as.numeric(input$erMannGjsn),
valgtMaal = input$sentralmaal, session=session
),
width = 800, height = 600
)
output$lastNed_figGjsnGrVar <- shiny::downloadHandler(
filename = function() {
paste0("FigGjsn_", valgtVar = input$valgtVarGjsn, "_", Sys.time(),
".", input$bildeformatGjsn)
},
content = function(file) {
nordicscir::NSFigGjsnGrVar(RegData = RegData, preprosess = 0,
valgtVar = input$valgtVarGjsn,
datoFra = input$datovalgGjsn[1],
datoTil = input$datovalgGjsn[2],
datoUt = as.numeric(input$datoUtGjsn),
AIS = as.numeric(input$AISGjsn),
traume = input$traumeGjsn,
nivaaUt = as.numeric(input$paratetraGjsn),
minald = as.numeric(input$alderGjsn[1]),
maxald = as.numeric(input$alderGjsn[2]),
erMann = as.numeric(input$erMannGjsn),
valgtMaal = input$sentralmaal, session=session,
outfile = file)
})
UtDataGjsnGrVar <- nordicscir::NSFigGjsnGrVar(
RegData = RegData, preprosess = 0,
valgtVar = input$valgtVarGjsn,
datoFra = input$datovalgGjsn[1],
datoTil = input$datovalgGjsn[2],
datoUt = as.numeric(input$datoUtGjsn),
AIS = as.numeric(input$AISGjsn),
traume = input$traumeGjsn,
nivaaUt = as.numeric(input$paratetraGjsn),
minald = as.numeric(input$alderGjsn[1]),
maxald = as.numeric(input$alderGjsn[2]),
erMann = as.numeric(input$erMannGjsn),
valgtMaal = input$sentralmaal,
session = session
)
tabGjsnGrVar <- nordicscir::lagTabavFigGjsnGrVar(UtDataFraFig = UtDataGjsnGrVar)
output$tittelGjsnGrVar <- shiny::renderUI({
shiny::tagList(
shiny::h3(UtDataGjsnGrVar$tittel),
shiny::h5(shiny::HTML(paste0(UtDataGjsnGrVar$utvalgTxt, "<br />")))
)
})
output$gjsnGrVarTab <- function() {
antKol <- ncol(tabGjsnGrVar)
kableExtra::kable(tabGjsnGrVar, format = "html", digits = c(0, 1)) %>%
kableExtra::column_spec(column = 1, width_min = "5em") %>%
kableExtra::column_spec(column = 2:(antKol + 1), width = "4em") %>%
kableExtra::row_spec(0, bold = TRUE)
}
output$lastNed_tabGjsnGrVar <- shiny::downloadHandler(
filename = function() {
paste0(input$valgtVar, "_tabGjsnSh.csv")
},
content = function(file, filename) {
write.csv2(tabGjsnGrVar, file, row.names = TRUE, na = "")
}
)
output$titteltabGjsnGrVar <- shiny::renderUI({
shiny::tagList(
shiny::h3(tabGjsnGrVar$tittel),
shiny::h5(shiny::HTML(paste0(tabGjsnGrVar$utvalgTxt, "<br />")))
)
})
#------gjsnTid
output$gjsnTid <- shiny::renderPlot(
nordicscir::NSFigGjsnTid(
RegData = RegData, reshID = reshID, preprosess = 0,
valgtVar = input$valgtVarGjsn,
datoFra = input$datovalgGjsn[1], datoTil = input$datovalgGjsn[2],
datoUt = as.numeric(input$datoUtGjsn),
minald = as.numeric(input$alderGjsn[1]),
maxald = as.numeric(input$alderGjsn[2]),
erMann = as.numeric(input$erMannGjsn),
AIS = as.numeric(input$AISGjsn),
traume = input$traumeGjsn,
nivaaUt = as.numeric(input$paratetraGjsn),
valgtMaal = input$sentralmaal,
enhetsUtvalg = as.numeric(input$enhetsUtvalgGjsn),
tidsenhet = input$tidsenhetGjsn,
session = session
),
width = 1000, height = 350
)
output$lastNed_figGjsnTid <- shiny::downloadHandler(
filename = function() {
paste0("FigGjsnTid_", valgtVar = input$valgtVarGjsn, "_", Sys.time(),
".'", input$bildeformatGjsn)
},
content = function(file) {
nordicscir::NSFigGjsnTid(
RegData = RegData, reshID = reshID, preprosess = 0,
valgtVar = input$valgtVarGjsn,
datoFra = input$datovalgGjsn[1], datoTil = input$datovalgGjsn[2],
datoUt = as.numeric(input$datoUtGjsn),
minald = as.numeric(input$alderGjsn[1]),
maxald = as.numeric(input$alderGjsn[2]),
erMann = as.numeric(input$erMannGjsn),
AIS = as.numeric(input$AISGjsn),
traume = input$traumeGjsn,
nivaaUt = as.numeric(input$paratetraGjsn),
valgtMaal = input$sentralmaal,
enhetsUtvalg = as.numeric(input$enhetsUtvalgGjsn),
tidsenhet = input$tidsenhetGjsn,
session = session,
outfile = file
)
}
)
UtDataGjsnTid <- nordicscir::NSFigGjsnTid(
RegData = RegData, reshID = reshID, preprosess = 0,
valgtVar = input$valgtVarGjsn,
datoFra = input$datovalgGjsn[1], datoTil = input$datovalgGjsn[2],
datoUt = as.numeric(input$datoUtGjsn),
minald = as.numeric(input$alderGjsn[1]),
maxald = as.numeric(input$alderGjsn[2]),
erMann = as.numeric(input$erMannGjsn),
AIS = as.numeric(input$AISGjsn),
traume = input$traumeGjsn,
nivaaUt = as.numeric(input$paratetraGjsn),
valgtMaal = input$sentralmaal,
enhetsUtvalg = as.numeric(input$enhetsUtvalgGjsn),
tidsenhet = input$tidsenhetGjsn,
session = session
)
tabGjsnTid <- t(UtDataGjsnTid$AggVerdier)
grtxt <- UtDataGjsnTid$grtxt
if ((min(nchar(grtxt)) == 5) && (max(nchar(grtxt)) == 5)) {
grtxt <- paste(substr(grtxt, 1, 3), substr(grtxt, 4, 5))
}
rownames(tabGjsnTid) <- grtxt
antKol <- ncol(tabGjsnTid)
navnKol <- colnames(tabGjsnTid)
if (antKol == 6) {
colnames(tabGjsnTid) <- c(navnKol[1:3], navnKol[1:3])
}
output$gjsnTidTab <- function() {
kableExtra::kable(
tabGjsnTid,
format = "html",
full_width = FALSE,
digits = 1
) %>%
kableExtra::add_header_above(
c(" " = 1, "Egen enhet/gruppe" = 3, "Resten" = 3)[1:(antKol/3 + 1)]
) %>%
kableExtra::column_spec(column = 1, width_min = "7em") %>%
kableExtra::column_spec(column = 2:(antKol + 1), width = "7em") %>%
kableExtra::row_spec(0, bold = TRUE)
}
output$lastNed_gjsnTidTab <- shiny::downloadHandler(
filename = function() {
paste0(input$valgtVarGjsn, "_tabGjsnTid.csv")
},
content = function(file, filename) {
write.csv2(tabGjsnTid, file, row.names = TRUE, na = "")
}
)
} else {
output$gjsnGrVar <- NULL
output$lastNed_figGjsnGrVar <- NULL
output$tittelGjsnGrVar <- NULL
output$gjsnGrVarTab <- NULL
output$lastNed_tabGjsnGrVar <- NULL
output$titteltabGjsnGrVar <- NULL
output$gjsnTid <- NULL
output$lastNed_figGjsnTid <- NULL
output$gjsnTidTab <- NULL
output$lastNed_gjsnTidTab <- NULL
}
}) #observe gjsn
#-------Samlerapporter--------------------
if (isDataOk) {
contentFile <- function(file, srcFil, tmpFile, reshID = 0,
datoFra = startDato, datoTil = Sys.Date()) {
src <- normalizePath(system.file(srcFil, package="nordicscir"))
# gå til tempdir. Har ikke skriverettigheter i arbeidskatalog
owd <- setwd(tempdir())
on.exit(setwd(owd))
file.copy(src, tmpFile, overwrite = TRUE)
knitr::knit2pdf(tmpFile)
file.copy(paste0(substr(tmpFile, 1, nchar(tmpFile) - 3), "pdf"), file)
}
output$mndRapp.pdf <- shiny::downloadHandler(
filename = function() { paste0("MndRapp", Sys.time(), ".pdf")},
content = function(file) {
contentFile(
file,
srcFil = "NSmndRapp.Rnw",
tmpFile = "tmpNSmndRapp.Rnw",
reshID = reshID
)
}
)
output$samleRappLand.pdf <- shiny::downloadHandler(
filename = function() {"NorScirSamleRapportLand.pdf"},
content = function(file) {
contentFile(
file,
srcFil = "NSsamleRappLand.Rnw",
tmpFile = "tmpNSsamleRappLand.Rnw",
reshID = reshID,
datoFra = as.Date(input$datovalgSamleRapp[1]),
datoTil = as.Date(input$datovalgSamleRapp[2])
)
}
)
output$samleRappEgen.pdf <- shiny::downloadHandler(
filename = function() {"NorScirSamleRapportEgen.pdf"},
content = function(file) {
contentFile(
file,
srcFil = "NSsamleRapp.Rnw",
tmpFile = "tmpNSsamleRapp.Rnw",
reshID = reshID,
datoFra = as.Date(input$datovalgSamleRapp[1]),
datoTil = as.Date(input$datovalgSamleRapp[2])
)
}
)
} else {
output$mndRapp.pdf <- NULL
output$samleRappLand.pdf <- NULL
output$samleRappEgen.pdf <- NULL
}
#------------------ Abonnement -----------------------------------------------
subReports <- list(
`Månedsrapport` = list(
synopsis = "Rapporteket-NorSCIR: månedsrapport, abonnement",
fun = "abonnement",
paramNames = c("rnwFil", "brukernavn", "reshID", "register"),
paramValues = c("NSmndRapp.Rnw", brukernavn, reshID, 'norscir')
)
)
rapbase::autoReportServer(
id = "ns-subscription",
registryName = "norscir", #Character string with the registry name key.
#Must correspond to the registry R package name.
#Når norscir benyttes som registryName, kommer bestilte utsendinger opp i den norske appen. Men fungerer utsendinga...? N E I !!
type = "subscription",
paramNames = paramNames,
paramValues = paramValues,
reports = subReports
)
#---Utsendinger---------------
if (isDataOk) {
sykehusNavn <- sort(
unique(as.character(HovedSkjema$ShNavn)),
index.return = TRUE
)
orgs <- c(0, unique(HovedSkjema$ReshId)[sykehusNavn$ix])
names(orgs) <- c("Alle", sykehusNavn$x)
orgs <- as.list(orgs)
} else {
orgs <- list(`Alle` = 0)
}
## liste med metadata for rapport
disReports <- list(
MndRapp = list(
synopsis = "Rapporteket-NorSCIR: Månedsrapport",
fun = "abonnement",
paramNames = c('rnwFil', "reshID", "register"),
paramValues = c('NSmndRapp.Rnw', 0, 'norscir')
),
SamleRapp = list(
synopsis = "Rapporteket-NorSCIR: Rapport, div. resultater",
fun = "abonnement",
paramNames = c("rnwFil", "reshID", "register"),
paramValues = c("NSsamleRapp.Rnw", 0, 'norscir')
)
)
org <- rapbase::autoReportOrgServer("NSuts", orgs)
# oppdatere reaktive parametre, for å få inn valgte verdier
paramNames <- shiny::reactive("reshID")
paramValues <- shiny::reactive(org$value())
rapbase::autoReportServer(
id = "NSuts", registryName = "norscir", type = "dispatchment",
org = org$value, paramNames = paramNames, paramValues = paramValues,
reports = disReports, orgs = orgs, eligible = (rolle == "SC")
)
#----------- Eksport ----------------
## brukerkontroller
rapbase::exportUCServer("norscirExport",
registryName = 'norscir', #i dbConfig
repoName = 'nordicscir') #pakke, for tilhørighet på github
## veileding
rapbase::exportGuideServer("norscirExportGuide",
registryName = 'norscir')
}
# Run the application
#shiny::shinyApp(ui = ui_norscir, server = server_norscir)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.