Skip to content

Commit

Permalink
Merge i forkant av prodsetting av ny versjon
Browse files Browse the repository at this point in the history
  • Loading branch information
kevinthon committed Jun 26, 2023
2 parents 5d0d1c0 + d7eec68 commit 8a9a705
Show file tree
Hide file tree
Showing 14 changed files with 858 additions and 78 deletions.
2 changes: 2 additions & 0 deletions NAMESPACE
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,10 @@ export(getHospitalName)
export(getLocalYears)
export(getNameReshId)
export(getRegDataIndikator)
export(getRegDataOpiodReduksjon)
export(getRegDataLokalTilsynsrapportMaaned)
export(getRegDataRapportDekningsgrad)
export(getRegDataRapportDekningsgradReservasjon)
export(getRegDataSmertekategori)
export(getRegDataSpinalkateter)
export(getSmerteDiagKatValueLab)
Expand Down
82 changes: 80 additions & 2 deletions R/GetRegData.R
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,9 @@ SELECT
PasientID,
ForlopsID,
InklKritOppf,
SkriftligSamtyk
SkriftligSamtyk,
Reservasjonsstatus,
InklusjonStatus
FROM
AlleVarNum
WHERE
Expand All @@ -116,6 +118,38 @@ WHERE
rapbase::loadRegData(registryName, query, dbType)
}

#' @rdname getRegData
#' @export
getRegDataRapportDekningsgradReservasjon <- function(registryName, reshId, userRole,
startDate, endDate, ...) {
dbType <- "mysql"

deps <- .getDeps(reshId, userRole)

query <- "
SELECT
PasientID,
ForlopsID,
InklKritOppf,
SkriftligSamtyk,
Reservasjonsstatus,
InklusjonStatus
FROM
AlleVarNum
WHERE
AvdRESH IN ("

query <- paste0(query, deps, ") AND (DATE(StartdatoTO) BETWEEN '",
startDate, "' AND '", endDate, "');")

if ("session" %in% names(list(...))) {
rapbase::repLogger(session = list(...)[["session"]],
msg = paste0("Load data from ", registryName, ":", query))
}

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

#' @rdname getRegData
#' @export
getRegDataIndikator <- function(registryName, reshId, userRole,
Expand Down Expand Up @@ -155,7 +189,11 @@ SELECT
var.VidereOppf,
var.BehNedtrappAvsluttTils,
var.Journalnotat,
var.IkkeMedBeh
var.IkkeMedBeh,
var.AkseptabelSmerte12,
var.AkseptabelSmerte21,
var.Funksjon12,
var.Funksjon21
FROM
AlleVarNum var
WHERE
Expand All @@ -180,6 +218,46 @@ WHERE
rapbase::loadRegData(registryName, query, dbType)
}

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

dbType <- "mysql"

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

query <- paste0("
SELECT
var.MoEkvivalens22,
var.SykehusNavn,
var.StartdatoTO,
var.RegDato11
FROM
AlleVarNum var
WHERE
var.RegDato11>=DATE('", startDate, "') AND var.RegDato11<=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 opiodrapport data from",
registryName, ": ", query))
}
}

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


#' @rdname getRegData
#' @export
Expand Down
6 changes: 5 additions & 1 deletion R/moduleDefaultReport.R
Original file line number Diff line number Diff line change
Expand Up @@ -22,13 +22,17 @@ NULL
defaultReportInput <- function(
id,
startDate = lubridate::today() - lubridate::years(1),
endDate = lubridate::today() - lubridate::weeks(1)) {
endDate = lubridate::today() - lubridate::weeks(1),
min = "1980-01-01",
max = "2100-01-01") {

shiny::tagList(
shiny::dateRangeInput(shiny::NS(id, "dateRange"),
label = "Velg periode:",
start = startDate,
end = endDate,
min = min,
max = max,
separator = "-"),
shiny::radioButtons(shiny::NS(id, "format"),
"Format for nedlasting",
Expand Down
23 changes: 10 additions & 13 deletions inst/LokalDekningsgradrapport.Rmd
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
params:
title: 'Dekningsgrad ved'
title: 'Dekningsgrad før reservasjon ved'
author: 'Rapporteket'
hospitalName: 'Ukjent sykehus'
reshId: 'locallyDefined'
Expand Down Expand Up @@ -62,28 +62,25 @@ if (rapbase::isRapContext()) {
```

# Dekningsgrad
# Dekningsgrad før reservasjon

Dekningsgraden beregnes lokalt for hvert sykehus. Den viser andelen __forløp__ som oppfyller inklusjonskriteriene der pasienter har samtykket til å være med i registeret.
Dekningsgraden beregnes lokalt for hvert sykehus. Den viser andelen __forløp__ der pasienten har sammtykket til å være med i registeret av de som oppfyller inklusjonskriteriene.

```{r inkludert, results='asis'}
if (dim(dat)[1] < 1) {
message <- "I den valgte tidsperioden er det ikke nok data til å angi dekningsgrad."
} else {
antInk <- sum(dat$InklKritOppf == 1, na.rm = TRUE)
sam <- dat$SkriftligSamtyk
# NA/NULL to be counted as none-consent
sam <- sam %>% replace(is.na(.), 0)
antSam <- sum(sam == 1, na.rm = TRUE)
antReserv <- sum(dat$Reservasjonsstatus == 1, na.rm = TRUE)
inklStat <- sum(dat$InklusjonStatus == 1, na.rm = TRUE)
if (antInk < 1) {
message <- "I den valgte tidsperioden er det ikke nok data til å angi dekningsgrad."
} else {
dekning <- antSam / antInk
dekning <- inklStat / antInk
nPatient <- length(unique(dat$PasientID))
nEvent <- length(unique(dat$ForlopsID))
nNoConsent <- length(sam[sam == 0])
nNoIncl <- length(dat$InklKritOppf[dat$InklKritOppf == 0])
patientTxt <- "."
Expand All @@ -96,13 +93,13 @@ if (dim(dat)[1] < 1) {
}
message <- paste0("Dekningsgraden for ", params$hospitalName,
" i den valgte tidsperioden er __",
round(dekning, digits = 2), "__. Totalt antall er ",
antInk, " hvorav ", antSam, " samtykker er gitt.")
round(dekning, digits = 2), "__. Antall inkluderte er ", inklStat, " mens totalt antall som oppfyller inklusjonskriteriene er ",
antInk, ".")
message <- paste0(message, "\n\n## Tallgrunnlag og utvalg \n",
" I utvalget er det ", nEvent, " forløp", patientTxt,
" Totalt ", nNoConsent,
" forløp mangler samtykke og totalt ", nNoIncl,
" Totalt ", antReserv,
" forløp er registrert med reservasjon og totalt ", nNoIncl,
" forløp oppfyller ikke inklusjonskriteriene.")
}
Expand Down
112 changes: 112 additions & 0 deletions inst/LokalDekningsgradrapportReservasjon.Rmd
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@
---
params:
title: 'Dekningsgrad etter reservasjon ved'
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::getRegDataRapportDekningsgradReservasjon(
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 = ";")
# avdpath <- read.csv(file = "H:/avdelingpath.csv", header = FALSE, sep = ";")
# avdpath <- as.data.frame(lapply(avdpath, as.character), stringsAsFactors=FALSE)
# avdpath <- avdpath$V1
# avd <- read.csv(file = avdpath, header = TRUE, sep = ";", encoding = "UTF-8")
# #Endrer navn til å matche rapporteket
# avd <- avd %>% rename(DEPARTMENT_ID = AvdID, DEPARTMENT_NAME = AvdNavn, DEPARTMENT_SHORTNAME = AvdNavnKort)
#
# #Samler datasettene vha InnlAvd i allevarnum og departmentID i avdelingsoversikt
# dat <- merge(x = dat, y = avd, by.x = c("InnlAvd"), by.y = c("DEPARTMENT_ID"))
#Må kunne laste inn data for de ulike årene
#aar <- params$year
#dat = dat %>% filter(year(date(StartdatoTO)) == aar) #year
}
```

# Dekningsgrad etter reservasjon

Dekningsgraden beregnes lokalt for hvert sykehus. Den viser andelen __forløp__ der pasienten ikke har reservert seg mot å være med i registeret for de forløp der inklusjonskriterene er oppfylt.

```{r inkludert, results='asis'}
if (dim(dat)[1] < 1) {
message <- "I den valgte tidsperioden er det ikke nok data til å angi dekningsgrad."
} else {
antInk <- sum(dat$InklKritOppf == 1, na.rm = TRUE)
antReserv <- sum((dat$Reservasjonsstatus == 1 & dat$InklKritOppf == 1),
na.rm = TRUE)
antReservTOT <- sum(dat$Reservasjonsstatus == 1, na.rm = TRUE)
inklStat <- sum((dat$Reservasjonsstatus == 0 & dat$InklKritOppf == 1),
na.rm = TRUE)
if (antInk < 1) {
message <- "I den valgte tidsperioden er det ikke nok data til å angi dekningsgrad."
} else {
dekning <- inklStat / antInk
nPatient <- length(unique(dat$PasientID))
nEvent <- length(unique(dat$ForlopsID))
nNoIncl <- length(dat$InklKritOppf[dat$InklKritOppf == 0])
patientTxt <- "."
if (nPatient > 1) {
patientTxt <- paste(" fordelt på", nPatient, "pasienter.")
}
if (nPatient == 1) {
patientTxt <- " for én pasient."
}
message <- paste0("Dekningsgraden for ", params$hospitalName,
" i den valgte tidsperioden er __",
round(dekning, digits = 2), "__. Antall inkluderte er ", inklStat, " mens totalt antall som oppfyller inklusjonskriteriene er ",
antInk, ".")
message <- paste0(message, "\n\n## Tallgrunnlag og utvalg \n",
" I utvalget er det ", nEvent, " forløp", patientTxt,
" For forløp der inklusjonskriteriene er oppfylt er ", antReserv,
" registrert med reservasjon, mens det totalt er ", antReservTOT, " forløp med reservasjon. Det er totalt ", nNoIncl, " forløp som oppfyller ikke inklusjonskriteriene.")
}
}
cat(paste(" \n", message))
```
Loading

0 comments on commit 8a9a705

Please sign in to comment.