Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rel #14

Merged
merged 19 commits into from
Sep 19, 2024
Merged

Rel #14

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 4 additions & 3 deletions DESCRIPTION
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
Package: norgast
Type: Package
Title: Resultatrapporter for NORGAST
Version: 2.3.2
Version: 2.4.0
Date: 2015-12-17
Author: Kevin Thon
Maintainer: Kevin Thon <kevin.thon@skde.no>
Expand All @@ -24,11 +24,12 @@ Imports:
shinyWidgets,
funnelR,
tsibble,
latex2exp
latex2exp,
janitor
Remotes:
Rapporteket/rapbase@*release,
Rapporteket/rapFigurer
RoxygenNote: 7.2.3
RoxygenNote: 7.3.1
Suggests: knitr,
rmarkdown
VignetteBuilder: knitr
6 changes: 6 additions & 0 deletions NAMESPACE
Original file line number Diff line number Diff line change
Expand Up @@ -41,10 +41,16 @@ export(fordelingsfig)
export(fordelingsfig_UI)
export(indikatorfig)
export(indikatorfig_UI)
export(norgastAndelGruppert1Gr)
export(norgastAndelGruppert2Gr)
export(norgastAndelGruppert2Gr_ggplot)
export(norgastApp)
export(norgastBeregnIndikator)
export(norgastFigAndelGrVarTid)
export(norgastFigAntRegTid)
export(norgastFordelingOpGruppert)
export(norgastIndikator_gruppert)
export(norgastIndikator_nasjonal)
export(norgastIndikator_rapporteket)
export(norgastMakeStagingData)
export(norgastPlotIndikator)
Expand Down
20 changes: 12 additions & 8 deletions R/NorgastFigAndelStabelGrVar.R
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ NorgastFigAndelStabelGrVar <- function(
RegData=0, valgtVar='ModGlasgowScore',
datoFra='2014-01-01', datoTil='2050-12-31',
minald=0, maxald=130, erMann=99, outfile='', hastegrad_hybrid=99,
preprosess=F, malign=99, Ngrense=30, lavDG='',
lavDGtekst='Dekningsgrad < 60 %', hastegrad = 99,
preprosess=F, malign=99, Ngrense=30, lavDG='', ny_anastomose = 99,
lavDGtekst='Dekningsgrad < 60 %', hastegrad = 99, icd_kode='',
elektiv=99, BMI='', tilgang='', valgtShus=c(''), minPRS=0, modGlasgow='',
maxPRS=2.2, ASA='', whoEcog= '', forbehandling='', hentData=0, op_gruppe='',
ncsp='', robotassiastanse=99, kun_ferdigstilte=TRUE, skriftStr=1,
Expand Down Expand Up @@ -50,12 +50,16 @@ NorgastFigAndelStabelGrVar <- function(

if (valgtVar == 'Tilgang') {RegData <- RegData[which(RegData$Tilgang %in% 1:3), ]}

NorgastUtvalg <- NorgastUtvalg(RegData=RegData, datoFra=datoFra, datoTil=datoTil, minald=minald,
maxald=maxald, erMann=erMann, elektiv=elektiv, hastegrad = hastegrad, hastegrad_hybrid=hastegrad_hybrid,
BMI=BMI, valgtShus=valgtShus, tilgang=tilgang, minPRS=minPRS, maxPRS=maxPRS, modGlasgow=modGlasgow,
ASA=ASA, whoEcog=whoEcog, forbehandling=forbehandling, malign=malign, op_gruppe=op_gruppe, ncsp=ncsp,
robotassiastanse=robotassiastanse, kun_ferdigstilte=kun_ferdigstilte,
tilgang_utvidet=tilgang_utvidet, accordion=accordion)
NorgastUtvalg <- NorgastUtvalg(
RegData=RegData, datoFra=datoFra, datoTil=datoTil, minald=minald,
maxald=maxald, erMann=erMann, elektiv=elektiv, hastegrad = hastegrad,
hastegrad_hybrid=hastegrad_hybrid, ny_anastomose = ny_anastomose,
BMI=BMI, valgtShus=valgtShus, tilgang=tilgang, minPRS=minPRS,
maxPRS=maxPRS, modGlasgow=modGlasgow,
ASA=ASA, whoEcog=whoEcog, forbehandling=forbehandling, malign=malign,
op_gruppe=op_gruppe, ncsp=ncsp,
robotassiastanse=robotassiastanse, kun_ferdigstilte=kun_ferdigstilte,
tilgang_utvidet=tilgang_utvidet, accordion=accordion, icd_kode=icd_kode)
RegData <- NorgastUtvalg$RegData
utvalgTxt <- NorgastUtvalg$utvalgTxt

Expand Down
36 changes: 20 additions & 16 deletions R/NorgastFigAndeler.R
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ FigAndeler <- function(RegData=0, valgtVar='Alder', datoFra='2014-01-01', datoT
maxPRS=2.2, ASA='', whoEcog= '', forbehandling='', hentData=F,
op_gruppe='', ncsp='', modGlasgow = '', hastegrad_hybrid=99,
robotassiastanse=99, kun_ferdigstilte=TRUE, tilgang_utvidet='',
ny_stomi=99, accordion = '')
ny_stomi=99, accordion = '', icd_kode='')
{

# print(datoFra)
Expand All @@ -120,13 +120,15 @@ FigAndeler <- function(RegData=0, valgtVar='Alder', datoFra='2014-01-01', datoT


## Gjør utvalg basert på brukervalg (LibUtvalg)
NorgastUtvalg <- NorgastUtvalg(RegData=RegData, datoFra=datoFra, datoTil=datoTil, minald=minald,
maxald=maxald, erMann=erMann, elektiv=elektiv, hastegrad = hastegrad,
BMI=BMI, valgtShus=valgtShus, tilgang=tilgang, minPRS=minPRS, maxPRS=maxPRS,
ASA=ASA, whoEcog=whoEcog, forbehandling=forbehandling, malign=malign,
op_gruppe=op_gruppe, ncsp=ncsp, modGlasgow=modGlasgow, hastegrad_hybrid=hastegrad_hybrid,
robotassiastanse=robotassiastanse, kun_ferdigstilte=kun_ferdigstilte,
tilgang_utvidet=tilgang_utvidet, ny_stomi=ny_stomi, accordion=accordion)
NorgastUtvalg <- NorgastUtvalg(
RegData=RegData, datoFra=datoFra, datoTil=datoTil, minald=minald,
maxald=maxald, erMann=erMann, elektiv=elektiv, hastegrad = hastegrad,
BMI=BMI, valgtShus=valgtShus, tilgang=tilgang, minPRS=minPRS, maxPRS=maxPRS,
ASA=ASA, whoEcog=whoEcog, forbehandling=forbehandling, malign=malign,
op_gruppe=op_gruppe, ncsp=ncsp, modGlasgow=modGlasgow, hastegrad_hybrid=hastegrad_hybrid,
robotassiastanse=robotassiastanse, kun_ferdigstilte=kun_ferdigstilte,
tilgang_utvidet=tilgang_utvidet, ny_stomi=ny_stomi, accordion=accordion,
icd_kode=icd_kode)
RegData <- NorgastUtvalg$RegData
utvalgTxt <- NorgastUtvalg$utvalgTxt

Expand Down Expand Up @@ -320,17 +322,19 @@ NorgastBeregnAndeler <- function(
maxPRS=2.2, ASA='', whoEcog= '', forbehandling='',
op_gruppe='', ncsp='', modGlasgow = '', hastegrad_hybrid=99,
robotassiastanse=99, kun_ferdigstilte=TRUE, tilgang_utvidet='',
ny_stomi=99, accordion = '')
ny_stomi=99, accordion = '', icd = '', kun_oblig = FALSE)

{
## Gjør utvalg basert på brukervalg (LibUtvalg)
NorgastUtvalg <- NorgastUtvalg(RegData=RegData, datoFra=datoFra, datoTil=datoTil, minald=minald,
maxald=maxald, erMann=erMann, elektiv=elektiv, hastegrad = hastegrad,
BMI=BMI, valgtShus=valgtShus, tilgang=tilgang, minPRS=minPRS, maxPRS=maxPRS,
ASA=ASA, whoEcog=whoEcog, forbehandling=forbehandling, malign=malign,
op_gruppe=op_gruppe, ncsp=ncsp, modGlasgow=modGlasgow, hastegrad_hybrid=hastegrad_hybrid,
robotassiastanse=robotassiastanse, kun_ferdigstilte=kun_ferdigstilte,
tilgang_utvidet=tilgang_utvidet, ny_stomi=ny_stomi, accordion=accordion)
NorgastUtvalg <- NorgastUtvalg(
RegData=RegData, datoFra=datoFra, datoTil=datoTil, minald=minald,
maxald=maxald, erMann=erMann, elektiv=elektiv, hastegrad = hastegrad,
BMI=BMI, valgtShus=valgtShus, tilgang=tilgang, minPRS=minPRS, maxPRS=maxPRS,
ASA=ASA, whoEcog=whoEcog, forbehandling=forbehandling, malign=malign,
op_gruppe=op_gruppe, ncsp=ncsp, modGlasgow=modGlasgow, hastegrad_hybrid=hastegrad_hybrid,
robotassiastanse=robotassiastanse, kun_ferdigstilte=kun_ferdigstilte,
tilgang_utvidet=tilgang_utvidet, ny_stomi=ny_stomi, accordion=accordion,
icd=icd, kun_oblig=kun_oblig)
RegData <- NorgastUtvalg$RegData
utvalgTxt <- NorgastUtvalg$utvalgTxt

Expand Down
12 changes: 9 additions & 3 deletions R/NorgastHentSkjemaOversikt.R
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,16 @@ NorgastHentSkjemaOversikt <- function() {
registryName <- "norgast"
dbType <- "mysql"

query <- paste0("SELECT *
FROM SkjemaOversikt")

query <- paste0("SELECT * FROM SkjemaOversikt")
SkjemaOversikt <- rapbase::loadRegData(registryName, query, dbType)
query <- "SELECT * FROM user"
brukerinfo <- rapbase::loadRegData(registryName, query, dbType) %>%
dplyr::mutate(fullname = paste0(FIRSTNAME, " ", LASTNAME))

SkjemaOversikt$OpprettetAv <-
brukerinfo$fullname[match(SkjemaOversikt$OpprettetAv, brukerinfo$ID)]
SkjemaOversikt$SistLagretAv <-
brukerinfo$fullname[match(SkjemaOversikt$SistLagretAv, brukerinfo$ID)]

return(SkjemaOversikt)
}
50 changes: 43 additions & 7 deletions R/NorgastPrepVar.R
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ NorgastPrepVar <- function(RegData, valgtVar, enhetsUtvalg=1)
'erMann', 'PRSScore', 'NyAnastomose','Anastomoselekkasje',
'Avdod', 'OpDoedTid', 'LapTilgang', 'LapTilgang2', 'KumAcc2',
'KumAcc', 'MissingVekt', 'Sykehusnavn', 'Malign',
'Saarruptur', 'Rekonstruksjon')) {
'Saarruptur', 'Rekonstruksjon', 'NyStomi')) {
RegData$Variabel <- RegData[ ,valgtVar]
}

Expand Down Expand Up @@ -57,6 +57,18 @@ NorgastPrepVar <- function(RegData, valgtVar, enhetsUtvalg=1)
if (enhetsUtvalg==1) {stabel=T}
}

if (valgtVar=='Mort90') {
tittel <- 'Avdød innen 90 dager etter operasjon'
RegData$Variabel <- RegData$Mort90
RegData <- RegData[!is.na(RegData$Mort90), ]
grtxt <- c('Nei', 'Ja')
RegData$VariabelGr <- factor(RegData$Variabel, levels=0:1, labels = grtxt)
retn <- 'V'
VarTxt <- 'avdøde innen 90 dager etter operasjon'

if (enhetsUtvalg==1) {stabel=T}
}

if (valgtVar=='laerebok') {
tittel <- c('Lærebokforløp')
# Referansepasient:
Expand Down Expand Up @@ -88,7 +100,7 @@ NorgastPrepVar <- function(RegData, valgtVar, enhetsUtvalg=1)
grtxt <- c('Laparoskopisk', 'Konvertert')
RegData$VariabelGr <- factor(RegData$Variabel, levels=0:1, labels = grtxt)
retn <- 'V'
VarTxt <- 'laparoskopiske inngrep konvertert til åpen kirurgi'
VarTxt <- 'laparoskopiske inngrep konv. til åpen kirurgi'
# incl_pst <- T
if (enhetsUtvalg==1) {stabel=T}
}
Expand Down Expand Up @@ -171,8 +183,8 @@ NorgastPrepVar <- function(RegData, valgtVar, enhetsUtvalg=1)

if (valgtVar=='KumAcc') {
# tittel <- c('Accordion score \u2265 3')
tittel <- c('Accordion score >= 3')
VarTxt <- 'med accordion score >= 3'
tittel <- c('Accordion score \u2265 3')
VarTxt <- 'med accordion score \u2265 3'
grtxt <- c('Nei', 'Ja')
RegData <- RegData[which(RegData$Variabel %in% c(0,1)), ]
RegData$VariabelGr <- factor(RegData$Variabel, levels=c(0,1), labels = grtxt)
Expand All @@ -181,8 +193,8 @@ NorgastPrepVar <- function(RegData, valgtVar, enhetsUtvalg=1)

if (valgtVar=='KumAcc2') {
# tittel <- c('Accordion score \u2265 3')
tittel <- c('Accordion score >= 4')
VarTxt <- 'med accordion score >= 4'
tittel <- c('Accordion score \u2265 4')
VarTxt <- 'med accordion score \u2265 4'
grtxt <- c('Nei', 'Ja')
RegData <- RegData[which(RegData$Variabel %in% c(0,1)), ]
RegData$VariabelGr <- factor(RegData$Variabel, levels=c(0,1), labels = grtxt)
Expand Down Expand Up @@ -212,13 +224,26 @@ NorgastPrepVar <- function(RegData, valgtVar, enhetsUtvalg=1)
subtxt <- 'Tid i dager'
}

if (valgtVar=='Aktualitet_oppf') {
RegData <- RegData[which(RegData$OppfStatus == 1), ]
tittel <- c('Tid fra operasjon til ferdigstilt oppfølging')
RegData$Variabel <- RegData$tid_op_lukk_oppf
gr <- c(0, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95,100,110,
120,130,160,210, 240, 10000)
RegData$VariabelGr <- cut(RegData$Variabel, breaks=gr, include.lowest=TRUE, right=FALSE)
grtxt <- levels(RegData$VariabelGr)
grtxt[length(grtxt)] <- paste0('>', as.character(gr[length(gr)-1])) # Større eller lik unicode symbol
subtxt <- 'Tid i dager'
retn <- "H"
}

if (valgtVar=='Vektendring') { # NA fikset
RegData <- RegData[!is.na(RegData$Variabel), ]
tittel <- 'Fra premorbid til preoperativ vektendring'
RegData$Variabel <- as.numeric(RegData$Variabel)
gr <- c(-100, -10, -5, -2, 2, 5, 10, 200)
RegData$VariabelGr <- cut(RegData$Variabel, breaks=gr, include.lowest=TRUE, right=FALSE)
grtxt <- c('<-10','[-10,-5)', '[-5,-2)', '[-2,2)', '[2,5)', '[5,10)','>=10')
grtxt <- c('<-10','[-10,-5)', '[-5,-2)', '[-2,2)', '[2,5)', '[5,10)','\u2265 10')
subtxt <- 'Vektendring %'
}

Expand Down Expand Up @@ -497,8 +522,19 @@ NorgastPrepVar <- function(RegData, valgtVar, enhetsUtvalg=1)
inkl_konf <- 0
}

if (valgtVar=='NyStomi') {
tittel <- 'Ny stomi'
VarTxt <- 'nye stomier'
grtxt <- c('Nei','Ja')
RegData <- RegData[which(RegData$Variabel %in% c(0, 1)), ]
RegData$VariabelGr <- factor(RegData$Variabel, levels=c(0, 1), labels = grtxt)
if (enhetsUtvalg==1) {stabel=T}
inkl_konf <- 0
}

if (valgtVar=='AvlastendeStomiRektum') {
tittel <- 'Stomi ved rektumreseksjon med ny anastomose'
VarTxt <- 'stomi ved rektumreseksjon med ny anastomose'
grtxt <- c('Nei','Ja')
RegData <- RegData[which(RegData$Variabel %in% c(0, 1)), ]
RegData$VariabelGr <- factor(RegData$Variabel, levels=c(0, 1), labels = grtxt)
Expand Down
42 changes: 27 additions & 15 deletions R/NorgastPreprosesser.R
Original file line number Diff line number Diff line change
Expand Up @@ -15,16 +15,14 @@ NorgastPreprosess <- function(RegData, behold_kladd = FALSE)
RegData$Sykehusnavn <- trimws(RegData$SykehusNavn)
RegData$AvdRESH <- as.numeric(RegData$AvdRESH)
RegData$erMann <- as.numeric(RegData$erMann)
# names(RegData)[which(names(RegData)=='ErMann')]<-'erMann'
names(RegData)[which(names(RegData)=='PasientAlder')]<-'Alder'
if (!behold_kladd) {RegData <- RegData[which(RegData$RegistreringStatus==1),]}
# RegData <- RegData[which(RegData$RegistreringStatus==1),] # Inkluder kun lukkede registreringer
RegData$OperasjonsDato <- as.Date(RegData$OpDato, format="%Y-%m-%d") # %H:%M:%S" ) #"%d.%m.%Y" "%Y-%m-%d"
RegData$HovedDato <- as.Date(RegData$HovedDato, format="%Y-%m-%d")
RegData$Mnd <- as.numeric(format(RegData$OperasjonsDato, '%m')) # RegData$OperasjonsDato$mon +1
RegData$Mnd <- as.numeric(format(RegData$OperasjonsDato, '%m'))
RegData$Kvartal <- floor((RegData$Mnd - 1)/3)+1
RegData$Halvaar <- floor((RegData$Mnd - 1)/6)+1
RegData$Aar <- as.numeric(format(RegData$OperasjonsDato, '%Y')) # RegData$OperasjonsDato$year + 1900
RegData$Aar <- as.numeric(format(RegData$OperasjonsDato, '%Y'))
RegData$DoedsDato <- as.Date(RegData$AvdodDato, format="%Y-%m-%d")
RegData$OpDoedTid <- difftime(RegData$DoedsDato, RegData$OperasjonsDato, units = 'days')
RegData$Mort90 <- 0
Expand Down Expand Up @@ -162,7 +160,7 @@ NorgastPreprosess <- function(RegData, behold_kladd = FALSE)
RegData$ReLapNarkose <- pmax(RegData$ReLapNarkose, RegData$OppfReLapNarkose, na.rm = TRUE)
RegData$ViktigsteFunn <- pmin(RegData$ViktigsteFunn, RegData$OppfViktigsteFunn, na.rm = TRUE)

Helligdager <- norgast::Helligdager
# Helligdager <- norgast::Helligdager

RegData$Dagtid <- NA
RegData$Dagtid[as.numeric(RegData$AnestesiStartKl) %in% 7:15] <- 1
Expand All @@ -171,20 +169,23 @@ NorgastPreprosess <- function(RegData, behold_kladd = FALSE)
RegData$Hastegrad_tid <- NA
RegData$Hastegrad_tid[as.numeric(RegData$AnestesiStartKl) %in% 8:15] <- 1
RegData$Hastegrad_tid[as.numeric(RegData$AnestesiStartKl) %in% c(1:7, 16:24)] <- 0
# RegData$Hastegrad_tid[RegData$OperasjonsDato$wday %in% c(0, 6)] <- 0 # gammel
RegData$Hastegrad_tid[as.numeric(format(RegData$OperasjonsDato, '%w')) %in% c(0, 6)] <- 0
RegData$Hastegrad_tid[RegData$OperasjonsDato %in% Helligdager] <- 0
# RegData$Hastegrad_tid[RegData$OperasjonsDato %in% Helligdager] <- 0

RegData$Hastegrad_hybrid <- 2 - RegData$Hastegrad# Definerer en hybridhastegrad som bruker gammel tidsbasert definisjon før
# 2018-04-18 og den nye direkteregistrerte etter det.
RegData$Hastegrad_hybrid[RegData$HovedDato < '2018-04-18'] <- RegData$Hastegrad_tid[RegData$HovedDato < '2018-04-18']
RegData$Hastegrad_hybrid <- 2 - RegData$Hastegrad# Definerer en hybridhastegrad
# som bruker gammel tidsbasert definisjon før 2018-04-18 og den nye direkteregistrerte etter det.
RegData$Hastegrad_hybrid[RegData$HovedDato < '2018-04-18'] <-
RegData$Hastegrad_tid[RegData$HovedDato < '2018-04-18']

RegData$AvlastendeStomiRektum <- NA
RegData$AvlastendeStomiRektum[intersect(intersect(which(as.numeric(RegData$NyAnastomose)==1), which(RegData$Op_gr==2)),
which(as.numeric(RegData$NyStomi)==0))] <- 0
RegData$AvlastendeStomiRektum[union(which(is.na(RegData$NyAnastomose)), which(is.na(RegData$NyStomi)))] <- NA
RegData$AvlastendeStomiRektum[intersect(intersect(which(as.numeric(RegData$NyAnastomose)==1),
which(as.numeric(RegData$NyStomi)==1)),which(RegData$Op_gr==2))] <- 1
RegData$AvlastendeStomiRektum[
intersect(intersect(which(as.numeric(RegData$NyAnastomose)==1), which(RegData$Op_gr==2)),
which(as.numeric(RegData$NyStomi)==0))] <- 0
RegData$AvlastendeStomiRektum[
union(which(is.na(RegData$NyAnastomose)), which(is.na(RegData$NyStomi)))] <- NA
RegData$AvlastendeStomiRektum[
intersect(intersect(which(as.numeric(RegData$NyAnastomose)==1),
which(as.numeric(RegData$NyStomi)==1)),which(RegData$Op_gr==2))] <- 1

RegData$PermanentStomiColorektal <- NA
RegData$PermanentStomiColorektal[intersect(union(which(as.numeric(RegData$NyAnastomose)==1), which(as.numeric(RegData$NyStomi)==0)),
Expand Down Expand Up @@ -245,6 +246,17 @@ NorgastPreprosess <- function(RegData, behold_kladd = FALSE)
levels(RegData$AvstandAnalVerge_kat) <- c(levels(RegData$AvstandAnalVerge_kat), "Ikke målt")
RegData$AvstandAnalVerge_kat[is.na(RegData$AvstandAnalVerge)] <- "Ikke målt"

RegData <- RegData %>%
dplyr::mutate(
ForstLukket = as.Date(ForstLukket),
OppfForstLukket = as.Date(OppfForstLukket),
tid_op_lukk = as.numeric(difftime(ForstLukket, OpDato, units = "days")),
# tid_op_lukk_kat = cut(tid_op_lukk, breaks = c(0, 15, 30, 60, 90, 180, 100000), right = F),
tid_op_lukk_oppf = as.numeric(difftime(OppfForstLukket, OpDato, units = "days"))
# tid_op_lukk_oppf_kat = cut(tid_op_lukk_oppf, breaks = c(0, 15, 30, 60, 90, 180, 100000), right = F)
)


return(invisible(RegData))

}
Loading