Skip to content

Commit

Permalink
Merge pull request #35 from Rapporteket/containing
Browse files Browse the repository at this point in the history
Containing
  • Loading branch information
areedv authored Sep 7, 2022
2 parents 0edcee7 + c1db33e commit e53430b
Show file tree
Hide file tree
Showing 19 changed files with 545 additions and 231 deletions.
2 changes: 2 additions & 0 deletions .Rbuildignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,10 @@
^\.Rproj\.user$
^LICENSE\.md$
^docker-compose.yml$
^docker-compose_app.yml$
^\.github$
^.lintr$
^codecov.yml$
^CODE_OF_CONDUCT\.md$
^data-raw$
^Dockerfile$
50 changes: 50 additions & 0 deletions .github/workflows/docker.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
name: Publish Docker image
on:
release:
types: [published]
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
schedule:
- cron: '0 21 * * 6' # run every Saturday at 21

jobs:
push_to_registries:
name: Push Docker image to docker hub
runs-on: ubuntu-latest
env:
IMAGE_NAME: ${{ github.repository }}
steps:
- name: Check out the repo
uses: actions/checkout@v3
- name: R setup
uses: r-lib/actions/setup-r@v2
- name: Build package (tarball)
run: R CMD build .
- name: Lint Dockerfile
uses: brpaz/hadolint-action@master
with:
dockerfile: "Dockerfile"
- name: Prepare tags
id: docker_meta
uses: docker/metadata-action@v3.6.2
with:
images: ${{ env.IMAGE_NAME }}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Login to DockerHub
if: github.event_name != 'pull_request'
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Push to Docker Hub
uses: docker/build-push-action@v2
with:
context: .
file: ./Dockerfile
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.docker_meta.outputs.tags }}
labels: ${{ steps.docker_meta.outputs.labels }}

7 changes: 3 additions & 4 deletions DESCRIPTION
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,10 @@ License: GPL-3
Encoding: UTF-8
LazyData: true
Roxygen: list(markdown = TRUE)
RoxygenNote: 7.1.2
RoxygenNote: 7.2.1
Suggests:
testthat
testthat,
withr
Imports:
binom,
dplyr,
Expand All @@ -42,8 +43,6 @@ Imports:
stringr,
tidyr,
tidyselect
Remotes:
Rapporteket/rapbase@*release
URL: https://github.com/rapporteket/ablanor
BugReports: https://github.com/rapporteket/ablanor/issues
Depends:
Expand Down
16 changes: 16 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
FROM rapporteket/base-r:4.2.1

LABEL maintainer "Are Edvardsen <are.edvardsen@helse-nord.no>"
LABEL no.rapporteket.cd.enable="true"

WORKDIR /app/R

# hadolint ignore=DL3010
COPY *.tar.gz .

RUN R -e "remotes::install_local(list.files(pattern = \"*.tar.gz\"))" \
&& rm ./*.tar.gz

EXPOSE 3008

CMD ["R", "-e", "options(shiny.port = 3008,shiny.host = \"0.0.0.0\"); ablanor::run_app()"]
3 changes: 3 additions & 0 deletions NAMESPACE
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ export(":=")
export(.data)
export(ablanor_plot_theme)
export(aggreger_ki_prop)
export(app_server)
export(app_ui)
export(getDataDump)
export(getHospitalName)
export(getKodebokData)
Expand Down Expand Up @@ -46,6 +48,7 @@ export(make_sorters)
export(mst)
export(mst_short)
export(reportProcessor)
export(run_app)
export(string_pad)
export(utlede_alder)
export(utlede_alder_75)
Expand Down
44 changes: 18 additions & 26 deletions inst/shinyApps/ablanor/server.R → R/app_server.R
Original file line number Diff line number Diff line change
@@ -1,7 +1,13 @@
# shiny app server logic
library(ablanor)
#' Server logic for the Ablanor app
#'
#' @param input shiny input object
#' @param output shiny output object
#' @param session shiny session object
#'
#' @return A shiny app server object
#' @export

server <- function(input, output, session) {
app_server <- function(input, output, session) {


rapbase::appLogger(session = session, msg = "Starting AblaNor application")
Expand All @@ -12,30 +18,16 @@ server <- function(input, output, session) {
`Prosedyre, basisskjema og oppfølging` = "pros_patient",
`RAND-12` = "rand12"
)
## setting values that do depend on a Rapporteket context
if (rapbase::isRapContext()) {
registryName <- "ablanor"
mapOrgId <- ablanor::getNameReshId(registryName)
reshId <- rapbase::getUserReshId(session)
hospitalName <- ablanor::getHospitalName(registryName, reshId)
userFullName <- rapbase::getUserFullName(session)
userRole <- rapbase::getUserRole(session)
userOperator <- "Test Operatoresen"
author <- userFullName
# userOperator <- ? #@fixme
} else {
## if need be, define your (local) values here

# readRenviron("H:/data/.Renviron")
# reshId <- Sys.getenv("Test_reshId")
# hospitalName <- Sys.getenv("Test_hospitalName")
# userFullName <- "Test Testersen" # tester rapport per bruker
# userOperator <- Sys.getenv("Test_operator")
# userRole <- "LC"
# registryName <- "test_ablanor_lokalt"
# author <- userFullName

}
registryName <- "ablanor"
mapOrgId <- ablanor::getNameReshId(registryName)
reshId <- rapbase::getUserReshId(session)
hospitalName <- ablanor::getHospitalName(registryName, reshId)
userFullName <- rapbase::getUserFullName(session)
userRole <- rapbase::getUserRole(session)
userOperator <- "Test Operatoresen"
author <- userFullName
# userOperator <- ? #@fixme

# Hide all tabs if LU -role
if (userRole == "LU") {
Expand Down
159 changes: 159 additions & 0 deletions R/app_ui.R
Original file line number Diff line number Diff line change
@@ -0,0 +1,159 @@
#' Client (ui) for the Ablanor app
#'
#' @return An shiny app ui object
#' @export

app_ui <- function() {
shiny::addResourcePath("rap", system.file("www", package = "rapbase"))
reg_title <- "AblaNor"

ui <- shiny::tagList(
shiny::navbarPage(
title = shiny::div(
shiny::a(
shiny::includeHTML(
system.file("www/logo.svg", package = "rapbase")
)
),
reg_title),
windowTitle = reg_title,
theme = "rap/bootstrap.css",
id = "tabs",

shiny::tabPanel(
"Start",
shinyalert::useShinyalert(),
shiny::mainPanel(
width = 12,
shiny::htmlOutput("veiledning", inline = TRUE),
rapbase::appNavbarUserWidget(
user = shiny::uiOutput("appUserName"),
organization = shiny::uiOutput("appOrgName"),
addUserInfo = TRUE),
shiny::tags$head(
shiny::tags$link(rel = "shortcut icon", href = "rap/favicon.ico")
)
)
),

shiny::tabPanel(
"Utforsker",
shiny::fluidRow(
shiny::column(6, shiny::uiOutput("selectDataSet")),
shiny::column(6, shiny::uiOutput("selectVars"))
),
shiny::fluidRow(
shiny::column(12, shiny::uiOutput("togglePivotSurvey"))
),
shiny::fluidRow(
shiny::column(12, rpivotTable::rpivotTableOutput("pivotSurvey"))
)
),

shiny::tabPanel(
"Kodebok",
shiny::sidebarLayout(
shiny::sidebarPanel(shiny::uiOutput("kbControl")),
shiny::mainPanel(shiny::htmlOutput("kbdData"))
)
),

shiny::tabPanel(
"Datadump",
shiny::sidebarLayout(
shiny::sidebarPanel(
width = 4,
shiny::selectInput("dumpDataSet", "Velg datasett:",
c("basereg",
"friendlycentre",
"mce",
"patientlist",
"pros",
"rand12",
"followup",
"pros_patient_followup",
"kodeboken")),
shiny::dateRangeInput(
"dumpDateRange", "Velg periode:",
start = lubridate::ymd(Sys.Date()) - lubridate::years(1),
end = Sys.Date(), separator = "-",
weekstart = 1
),
shiny::radioButtons("dumpFormat", "Velg filformat:",
choices = c("csv", "xlsx-csv")),
shiny::downloadButton("dumpDownload", "Hent!")
),
shiny::mainPanel(
shiny::htmlOutput("dataDumpInfo")
)
)
),

shiny::tabPanel(
"Månedsrapporter",
shiny::sidebarLayout(
shiny::sidebarPanel(
shiny::radioButtons("formatReport",
"Format for nedlasting",
list(PDF = "pdf", HTML = "html"),
inline = FALSE),
shiny::downloadButton("downloadReport", "Last ned!"),
width = 2
),
shiny::mainPanel(
shiny::htmlOutput("maanedligRapport", inline = TRUE)
)
)
),

shiny::tabPanel(
"Abonnement",
shiny::sidebarPanel(
rapbase::autoReportFormatInput("ablanorSubscription"),
rapbase::autoReportInput("ablanorSubscription")
),
shiny::mainPanel(
rapbase::autoReportUI("ablanorSubscription")
)
),

shiny::navbarMenu(
"Verktøy",

shiny::tabPanel(
"Utsending",
shiny::sidebarLayout(
shiny::sidebarPanel(
rapbase::autoReportFormatInput("ablanorDispatchment"),
rapbase::autoReportOrgInput("ablanorDispatchment"),
rapbase::autoReportInput("ablanorDispatchment")
),
shiny::mainPanel(
rapbase::autoReportUI("ablanorDispatchment")
)
)
),

shiny::tabPanel(
"Eksport",
shiny::sidebarLayout(
shiny::sidebarPanel(
rapbase::exportUCInput("ablanorExport")
),
shiny::mainPanel(
rapbase::exportGuideUI("ablanorExportGuide")
)
)
),

shiny::tabPanel(
"Bruksstatistikk",
shiny::sidebarLayout(
shiny::sidebarPanel(rapbase::statsInput("ablanorStats")),
shiny::mainPanel(rapbase::statsUI("ablanorStats"))
)
)
)
)
)
}
8 changes: 8 additions & 0 deletions R/run_app.R
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#' Run the Ablanor Shiny Application
#'
#' @return An object representing the Ablanor app
#' @export

run_app <- function() {
shiny::shinyApp(ui = app_ui, server = app_server)
}
4 changes: 2 additions & 2 deletions R/utils.R
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ NULL

#' Compound assignment pipe operator
#'
#' See \code{magrittr::\link[magrittr:pipe]{\%<>\%}} for details.
#' See \code{magrittr::\link[magrittr:compound]{\%<>\%}} for details.
#'
#' @name %<>%
#' @rdname compound_assignment_pipe
Expand All @@ -24,7 +24,7 @@ NULL

#' Exposition pipe operator
#'
#' See \code{magrittr::\link[magrittr:pipe]{\%$\%}} for details.
#' See \code{magrittr::\link[magrittr:exposition]{\%$\%}} for details.
#'
#' @name %$%
#' @rdname exposition_pipe
Expand Down
Loading

0 comments on commit e53430b

Please sign in to comment.