Skip to content

Commit

Permalink
Klar for rask prodsetting
Browse files Browse the repository at this point in the history
  • Loading branch information
kevinthon committed Feb 15, 2024
2 parents a07d05e + 11a5e28 commit 7517333
Show file tree
Hide file tree
Showing 13 changed files with 437 additions and 79 deletions.
2 changes: 1 addition & 1 deletion DESCRIPTION
Original file line number Diff line number Diff line change
Expand Up @@ -47,4 +47,4 @@ Suggests:
RMariaDB
Encoding: UTF-8
LazyData: true
RoxygenNote: 7.1.2
RoxygenNote: 7.2.1
3 changes: 2 additions & 1 deletion NAMESPACE
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,11 @@ export(getHospitalName)
export(getLocalYears)
export(getNameReshId)
export(getRegDataIndikator)
export(getRegDataOpiodReduksjon)
export(getRegDataLokalTilsynsrapportMaaned)
export(getRegDataOpiodReduksjon)
export(getRegDataRapportDekningsgrad)
export(getRegDataRapportDekningsgradReservasjon)
export(getRegDataRapportOppfolg)
export(getRegDataSmertekategori)
export(getRegDataSpinalkateter)
export(getSmerteDiagKatValueLab)
Expand Down
73 changes: 65 additions & 8 deletions R/GetRegData.R
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ SELECT
var.AntTilsFysioT,
var.AntTilsPsyk,
var.AntTilsSosio,
var.AntTilsKonfLege,
var.AntPasTils,
var.Tilsett,
var.RegDato11,
Expand All @@ -67,9 +68,9 @@ LEFT JOIN
ON
avd.DEPARTMENT_ID = var.InnlAvd
WHERE
var.RegDato11 >= DATE('"
var.StartdatoTO >= DATE('"

query <- paste0(query, startDate, "') AND var.RegDato11 <= DATE('",
query <- paste0(query, startDate, "') AND var.StartdatoTO <= DATE('",
endDate, "') AND var.AvdRESH IN (", deps, ");")


Expand Down Expand Up @@ -199,7 +200,7 @@ SELECT
FROM
AlleVarNum var
WHERE
var.RegDato11>=DATE('", startDate, "') AND var.RegDato11<=DATE('", endDate, "')"
var.StartdatoTO>=DATE('", startDate, "') AND var.StartdatoTO<=DATE('", endDate, "')"
)

if (isNationalReg(reshId)) {
Expand Down Expand Up @@ -239,7 +240,7 @@ SELECT
FROM
AlleVarNum var
WHERE
var.RegDato11>=DATE('", startDate, "') AND var.RegDato11<=DATE('", endDate, "')"
var.StartdatoTO>=DATE('", startDate, "') AND var.StartdatoTO<=DATE('", endDate, "')"
)

if (isNationalReg(reshId)) {
Expand Down Expand Up @@ -341,6 +342,9 @@ getRegDataSpinalkateter <- function(registryName, reshId, userRole,
SELECT
MoEkvivalens,
MoEkvivalens22,
Opbehd221d,
LAbehd221d,
KoAbedel221d,
AntPasTils,
AntTilsLege,
AntTilsSykPleier,
Expand All @@ -358,6 +362,7 @@ SELECT
SvSmRo12,
SvSmRo21,
SAB11,
SA,
PasientID,
TotTid,
SluttDato
Expand All @@ -381,6 +386,58 @@ WHERE
rapbase::loadRegData(registryName, query, dbType)
}

#' @rdname getRegData
#' @export
getRegDataRapportOppfolg <- function(registryName, reshId, userRole,
startDate, endDate, ...) {

dbType <- "mysql"

# special case at OUS
deps <- .getDeps(reshId, userRole)

query <- paste0("
SELECT
var.Tilsett,
var.RegDato11,
var.StartdatoTO,
var.HenvistDato,
var.SykehusNavn,
var.OppfSmeKl,
var.PasientID,
var.ForlopsID,
var.InnlAvd,
var.VidereOppf,
avd.DEPARTMENT_ID,
avd.DEPARTMENT_NAME,
avd.DEPARTMENT_SHORTNAME
FROM
AlleVarNum var
LEFT JOIN
avdelingsoversikt avd
ON
avd.DEPARTMENT_ID = var.InnlAvd
WHERE
var.StartdatoTO>=DATE('", startDate, "') AND var.StartdatoTO<=DATE('", endDate, "')"
)

if (isNationalReg(reshId)) {
query <- paste0(query, ";")
} else {
query <- paste0(query, " AND var.AvdRESH IN (", deps, ");")
}

if ("session" %in% names(list(...))) {
session <- list(...)[["session"]]
if ("ShinySession" %in% attr(session, "class")) {
rapbase::repLogger(session = session,
msg = paste("Load indikatorrapport data from",
registryName, ": ", query))
}
}

rapbase::loadRegData(registryName, query, dbType)
}

#' @rdname getRegData
#' @export
Expand All @@ -392,13 +449,13 @@ getLocalYears <- function(registryName, reshId, userRole) {

query <- paste0("
SELECT
YEAR(RegDato11) as year
YEAR(StartdatoTO) as year
FROM
AlleVarNum
WHERE
AvdRESH IN (", deps, ")
GROUP BY
YEAR(RegDato11);
YEAR(StartdatoTO);
")

rapbase::loadRegData(registryName, query, dbType)
Expand All @@ -412,11 +469,11 @@ getAllYears <- function(registryName, reshId, userRole) {

query <- paste0("
SELECT
YEAR(RegDato11) as year
YEAR(StartdatoTO) as year
FROM
AlleVarNum
GROUP BY
YEAR(RegDato11);
YEAR(StartdatoTO);
")

rapbase::loadRegData(registryName, query, dbType)
Expand Down
7 changes: 5 additions & 2 deletions inst/LokalIndikatorMaaned.Rmd
Original file line number Diff line number Diff line change
Expand Up @@ -929,7 +929,7 @@ Antall forløp som har fått tilsyn av minst én profesjon og hvor det er krysse

Antall av disse forløpene hvor det er angitt NRS ved (minst) første tilsyn er `r ant_utvalg21`, mens det tilsvarende antall for (minst) siste tilsyn er `r ant_utvalg22`.

Figuren under viser hvordan andelen forløp med minst ett tilsyn hvor det har blitt angitt NRS to ganger har fordelt seg i løpet av året.
Figuren under viser hvordan andelen forløp med minst ett tilsyn hvor det har blitt angitt NRS to ganger har fordelt seg i løpet av året. Tallgrunnlaget er her basert på følgende. Teller: alle forløp der NRS har blitt angitt to ganger. Nevner: alle forløp der det ikke er svart 'nei' eller 'ikke aktuelt' på å angi NRS.

```{r kvalNRSfig, warning = FALSE, message=FALSE, results='asis', fig.pos= "H", out.extra = '', fig.align='center', out.width='100%'}
Expand All @@ -942,7 +942,10 @@ dat$med <- 0
{dat$med[i] = 1}
}
plotnrs<- dat %>%
nrsplotdat <- dat %>%
dplyr::filter(Tilsett == 1 & AngiNRS12 %in% c('1','3') & AngiNRS21 %in% c('1','3'))
plotnrs<- nrsplotdat %>%
dplyr::group_by(month = monthname, med) %>%
dplyr::summarise(n = dplyr::n()) %>%
dplyr::mutate(freq = n/sum(n)) %>%
Expand Down
149 changes: 149 additions & 0 deletions inst/LokalOppfolg.Rmd
Original file line number Diff line number Diff line change
@@ -0,0 +1,149 @@
---
params:
title: 'Oppfølging ved smerteklinikk'
author: 'Rapporteket'
hospitalName: 'Ukjent sykehus'
reshId: 'locallyDefined'
userRole: 'MyRole'
userFullName: 'Ukjent bruker'
startDate: '2017-01-01'
endDate: '2017-12-31'
year: '2016'
tableFormat: 'html'
registryName: 'rapbase'
shinySession: list()
title: '`r paste(params$title, params$hospitalName, " i perioden fra ", params$startDate, " til ", params$endDate)`'
author: '`r params$author`'
date: '`r format(Sys.time(), "%d\\. %B, %Y")`'
reglogo: '`r system.file("www/logoSmerte.png", package = "smerte")`'
regtext: '`r readLines(system.file("registryShortDescription.txt", package = "smerte"))`'
registryName: Smerteregisteret
userFullName: '`r params$userFullName`'
---
```{r set options and load packages, include = FALSE}
knitr::opts_chunk$set(echo=FALSE)
options(knitr.table.format = params$tableFormat)
options(tinytex.verbose = TRUE)
```

```{r get data, include=FALSE}
if (rapbase::isRapContext()) {
dat <- smerte::getRegDataRapportOppfolg(
registryName = params$registryName,
reshId = params$reshId,
userRole = params$userRole,
startDate = params$startDate,
endDate = params$endDate,
session = params$shinySession
)
} else {
#Dataimport: skal hente lokale data for hvert sykehus (tar vekk sti, og erstatter med lokal filB)
path <- read.csv(file = "H:/path.csv", header = FALSE, sep = ";")
path <- as.data.frame(lapply(path, as.character), stringsAsFactors=FALSE)
path <- path$V1
dat <- read.csv(file = path, header = TRUE, sep = ";")
}
```

# Anbefalt videre oppfølging ved smerteklinikk

I denne rapporten ser vi en oversikt over om pasientene blir anbefalt videre oppfølging ved smerteklinikk og hvordan de er fordelt mellom
avdelingene på sykehuset i løpet av hele tidsperioden.

```{r oppfølgingstabell, warning = TRUE, message=TRUE, results='asis'}
#Oversikt over videre oppfølging
# Data for tabell
oppfolgdat <- dat %>%
#dplyr::filter(Tilsett == 1) %>% kan ta med dersom de vil
dplyr::count(OppfSmeKl) %>%
dplyr::mutate(prosent = round(100*(n/sum(n))))
# Gi navn i stedet for tall til alternativene for tilsyn/ikke tilsyn
oppfolgdat <- oppfolgdat %>%
dplyr::mutate(oppfolggrunn =
dplyr::case_when(OppfSmeKl == 0 ~ "Nei",
OppfSmeKl == 1 ~ "Ja",
OppfSmeKl == 3 ~ "Usikker",
OppfSmeKl == 9 ~ "Vet ikke",
is.na(OppfSmeKl) ~ "Mangler verdi",
FALSE ~ "Ikke angitt"))
oppfolgdat <- oppfolgdat[ ,c(4,2,3)]
rapbase::mst(
tab = oppfolgdat,
col_names = c("Anbefalt oppfølging ved smerteklinikk?", "Antall ", "Prosent"),
cap = paste0("Antall for hver kategori om pasienten har blitt anbefalt videre oppfølging ved smerteklinikk. Gjelder ",
"for perioden fra og med ", params$startDate, " til og med ",
params$endDate, "."),
type = params$tableFormat,
digs = 0,
align = c("l", "r", "r", "r")
)
```

```{r avdelingsoppfølging, warning = TRUE, message=TRUE, results='asis'}
#Oversikt over videre oppfølging avdeling
oppfolgavd <- dat %>%
dplyr::filter(!is.na(OppfSmeKl)) %>%
dplyr::count(DEPARTMENT_SHORTNAME, OppfSmeKl) %>%
tidyr::spread(OppfSmeKl, n, fill=0)
total_avdeling <- colSums(oppfolgavd[, -1])
#Legge på totalrad nederst
oppfolgavd <- oppfolgavd %>%
dplyr::bind_rows(total_avdeling)
#Legge til navn
oppfolgavd[nrow(oppfolgavd), 1] <- "TOTAL"
oppfolgavd <- oppfolgavd %>%
dplyr::mutate(rowsum = rowSums(dplyr::select_if(., is.numeric)))
###Lager tabell basert på antall ulike unike svar (ja, nei, usikker, vet ikke)
if(dim(oppfolgavd)[2] == 5){
rapbase::mst(
tab = oppfolgavd,
col_names = c("Avdeling", "Nei", "Ja", "Vet ikke", "Sum avdeling"),
cap = paste0("Antall for hver kategori om pasienten har blitt anbefalt videre oppfølging ved smerteklinikk. Gjelder ",
"for perioden fra og med ", params$startDate, " til og med ",
params$endDate, "."),
type = params$tableFormat,
digs = 0,
align = c("l", "r", "r", "r", "r", "r")
)
}
#
if(dim(oppfolgavd)[2] == 4){
rapbase::mst(
tab = oppfolgavd,
col_names = c("Avdeling", "Nei", "Ja", "Sum avdeling"),
cap = paste0("Antall for hver kategori om pasienten har blitt anbefalt videre oppfølging ved smerteklinikk. Gjelder ",
"for perioden fra og med ", params$startDate, " til og med ",
params$endDate, "."),
type = params$tableFormat,
digs = 0,
align = c("l", "r", "r", "r", "r")
)
}
#
if(dim(oppfolgavd)[2] == 6){
rapbase::mst(
tab = oppfolgavd,
col_names = c("Avdeling", "Nei", "Ja", "Usikker", "Vet ikke", "Sum avdeling"),
cap = paste0("Antall for hver kategori om pasienten har blitt anbefalt videre oppfølging ved smerteklinikk. Gjelder ",
"for perioden fra og med ", params$startDate, " til og med ",
params$endDate, "."),
type = params$tableFormat,
digs = 0,
align = c("l", "r", "r", "r", "r", "r", "r")
)
}
```
Loading

0 comments on commit 7517333

Please sign in to comment.