diff --git a/DESCRIPTION b/DESCRIPTION index ac1c558..e04e8ca 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -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 @@ -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 diff --git a/NAMESPACE b/NAMESPACE index bd308ce..89959d8 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -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) diff --git a/R/NorgastFigAndelStabelGrVar.R b/R/NorgastFigAndelStabelGrVar.R index 6f95511..654c09e 100644 --- a/R/NorgastFigAndelStabelGrVar.R +++ b/R/NorgastFigAndelStabelGrVar.R @@ -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, @@ -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 diff --git a/R/NorgastFigAndeler.R b/R/NorgastFigAndeler.R index 43a0264..75759d8 100644 --- a/R/NorgastFigAndeler.R +++ b/R/NorgastFigAndeler.R @@ -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) @@ -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 @@ -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 diff --git a/R/NorgastHentSkjemaOversikt.R b/R/NorgastHentSkjemaOversikt.R index eb15243..71d00bf 100644 --- a/R/NorgastHentSkjemaOversikt.R +++ b/R/NorgastHentSkjemaOversikt.R @@ -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) } diff --git a/R/NorgastPrepVar.R b/R/NorgastPrepVar.R index 1cd681f..e069325 100644 --- a/R/NorgastPrepVar.R +++ b/R/NorgastPrepVar.R @@ -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] } @@ -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: @@ -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} } @@ -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) @@ -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) @@ -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 %' } @@ -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) diff --git a/R/NorgastPreprosesser.R b/R/NorgastPreprosesser.R index efd1270..f9b457f 100644 --- a/R/NorgastPreprosesser.R +++ b/R/NorgastPreprosesser.R @@ -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 @@ -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 @@ -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)), @@ -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)) } diff --git a/R/NorgastTabeller.R b/R/NorgastTabeller.R index a5679c9..67fa9ea 100644 --- a/R/NorgastTabeller.R +++ b/R/NorgastTabeller.R @@ -10,70 +10,67 @@ #' Terskel Minste antall #' #' @export - - -NorgastTabeller <- function(RegData=RegData, datoFra='2014-01-01', datoTil='2050-12-31', - minald=0, maxald=130, erMann=99, enhetsUtvalg=0, Terskel=15, - reshID=reshID, elektiv=99, BMI='', valgtShus='') +NorgastTabeller <- function( + RegData=RegData, datoFra='2014-01-01', datoTil='2050-12-31', + minald=0, maxald=130, erMann=99, enhetsUtvalg=0, Terskel=15, + reshID=reshID, elektiv=99, BMI='', valgtShus='') { -if (enhetsUtvalg==2){RegData <- RegData[which(RegData$AvdRESH==reshID),]} - -NorgastUtvalg <- NorgastUtvalg(RegData=RegData, datoFra=datoFra, datoTil=datoTil, minald=minald, maxald=maxald, - erMann=erMann, elektiv=elektiv, BMI=BMI, valgtShus=valgtShus) -RegData <- NorgastUtvalg$RegData - -#################### Lag tabell over alle operasjoner (noen gruppert) ########################################### -RegData$Hovedoperasjon <- paste0(substr(RegData$Hovedoperasjon, 7, 100), ' (', substr(RegData$Hovedoperasjon, 1, 5), ')') - -N_opgr <- length(unique(RegData$Operasjonsgrupper)) # Antall distikte operasjonsgrupper (inkludert Ukjent) -RegData$Hovedoperasjon[RegData$Op_gr %in% 1:(N_opgr-1)] <- RegData$Operasjonsgrupper[RegData$Op_gr %in% 1:(N_opgr-1)] - - -RegData$Hovedoperasjon <- gsub("[\r\n]", "", RegData$Hovedoperasjon) -res <- sort(table(RegData$Hovedoperasjon), decreasing=T) -Tabell <- data.frame('Operasjonsgruppe'=names(res[res>=Terskel]), 'Antall'=as.numeric(res[res>=Terskel])) - -# Tabellen skal inneholde maks 14 operasjonskoder -while(length(Tabell$Antall)>14){ - Terskel <- Terskel+1 - Tabell <- Tabell[Tabell$Antall>=Terskel, ] + if (enhetsUtvalg==2){RegData <- RegData[which(RegData$AvdRESH==reshID),]} + + NorgastUtvalg <- NorgastUtvalg( + RegData=RegData, datoFra=datoFra, datoTil=datoTil, minald=minald, + maxald=maxald, erMann=erMann, elektiv=elektiv, BMI=BMI, valgtShus=valgtShus) + RegData <- NorgastUtvalg$RegData + + ###### Lag tabell over alle operasjoner (noen gruppert) ################## + RegData <- RegData %>% + dplyr::mutate(Hovedoperasjon = paste0(substr(Hovedoperasjon, 7, 100), + ' (', substr(Hovedoperasjon, 1, 5), ')'), + Hovedoperasjon = ifelse(Op_gr == 99, Hovedoperasjon, Operasjonsgrupper), + Hovedoperasjon = gsub("[\r\n]", "", Hovedoperasjon)) + + Tabell <- RegData %>% + dplyr::count(Hovedoperasjon) %>% + dplyr::arrange(-n) + + if (dim(Tabell)[1] > 14) { + Tabell$Hovedoperasjon[15] <- "Andre" + Tabell$n[15] <- sum(Tabell$n[15:dim(Tabell)[1]]) + Tabell <- Tabell[1:15, ] %>% + dplyr::mutate(Andel = n/sum(n)*100) %>% + dplyr::rename(Operasjonsgruppe = Hovedoperasjon, + Antall = n) + } + + ### Lag tabell over reoperasjonsrater sammen med årsak til reoperasjon + ### splittet på operasjonsgrupper ###### + + Tabell2 <- RegData %>% + dplyr::filter(ReLapNarkose %in% c(0, 1)) %>% + dplyr::summarise( + N = dplyr::n(), + Reoperasjonsrate = sum(ReLapNarkose)/N*100, + Anastomoselekkasje = sum(ViktigsteFunn == 1, na.rm = TRUE)/N*100, + # Anastomoselekkasje_v2 = sum(ViktigsteFunn == 1 & NyAnastomose==1, na.rm = TRUE)/ + # sum(NyAnastomose==1, na.rm = TRUE)*100, + DypInfUtenLekkasje = sum(ViktigsteFunn == 2, na.rm = TRUE)/N*100, + Bloedning = sum(ViktigsteFunn == 3, na.rm = TRUE)/N*100, + Saarruptur = sum(ViktigsteFunn == 4, na.rm = TRUE)/N*100, + Annet = sum(ViktigsteFunn == 5, na.rm = TRUE)/N*100, + Ingen = sum(ViktigsteFunn == 6, na.rm = TRUE)/N*100, + .by = Operasjonsgrupper + ) %>% + dplyr::mutate( + Operasjonsgrupper = + factor(Operasjonsgrupper, + levels = RegData$Operasjonsgrupper[match(sort(unique(RegData$Op_gr)), + RegData$Op_gr)]) + ) %>% + dplyr::arrange(Operasjonsgrupper) + + Data <- list(Tabell=Tabell, Tabell2=Tabell2, Terskel=Terskel) + + return(invisible(Data)) } -Tabell <- data.frame('Operasjonsgruppe'=c(names(res[res>=Terskel]), 'Andre'), - 'Antall'=c(as.numeric(res[res>=Terskel]), sum(as.numeric(res[res= minald & RegData$Alder <= maxald) indDato <- which(RegData$OperasjonsDato >= datoFra & RegData$OperasjonsDato <= datoTil) indKj <- if (erMann %in% 0:1) {which(RegData$erMann == erMann)} else {indKj <- 1:Ninn} @@ -39,16 +42,18 @@ NorgastUtvalg <- function(RegData, datoFra='2014-01-01', datoTil="2100-01-01", indNCSP <- if (ncsp[1] != '') {which(substr(RegData$Hovedoperasjon, 1, 5) %in% ncsp)} else {indNCSP <- 1:Ninn} indForb <- if (forbehandling[1] != '') {which(RegData$Forbehandling %in% as.numeric(forbehandling))} else {indForb <- 1:Ninn} indMalign <- if (malign %in% c(0,1)){which(RegData$Malign == malign)} else {indMalign <- 1:Ninn} - indICD <- if (icd[1] != '') {which(RegData$Hoveddiagnose2 %in% icd)} else {indICD <- 1:Ninn} + indICD <- if (icd[1] != '') {which(RegData$Hoveddiagnose2 %in% icd)} else {indICD <- 1:Ninn} # Fullt navn + indICD_kode <- if (icd_kode[1] != '') {which(sub("(\\w+).*", "\\1", RegData$Hoveddiagnose2) %in% icd_kode)} else {indICD_kode <- 1:Ninn} # Kun kode indRobot <- if (robotassiastanse %in% c(0,1)){which(RegData$Robotassistanse == robotassiastanse)} else {indRobot <- 1:Ninn} indFerdig <- if (kun_ferdigstilte) {which(RegData$OppfStatus == 1 | is.na(RegData$OppfStatus))} else {indFerdig <- 1:Ninn} indStomi <- if (ny_stomi %in% c(0,1)) {which(RegData$NyStomi == ny_stomi)} else {1:Ninn} indAccordion <- if (accordion[1] != '') {which(RegData$AccordionGrad %in% as.numeric(accordion))} else {1:Ninn} + indAnastomose <- if (ny_anastomose %in% c(0,1)) {which(RegData$NyAnastomose == ny_anastomose)} else {1:Ninn} indMed <- indAld %i% indDato %i% indKj %i% indVarMed %i% indOp_gr %i% indElekt %i% indBMI %i% indTilgang %i% indPRS %i% indASA %i% indWHO %i% indForb %i% indMalign %i% indNCSP %i% indHast %i% indICD %i% indGlasgow %i% indHast2 %i% indDag %i% indRobot %i% indFerdig %i% indTilgangUtvidet %i% - indStomi %i% indAccordion + indStomi %i% indAccordion %i% indAnastomose %i% indICD_kode %i% indOblig RegData <- RegData[indMed,] if (ncsp[1] != '') {ncsp <- sort(unique(substr(RegData$Hovedoperasjon, 1, 5)))} @@ -57,8 +62,19 @@ NorgastUtvalg <- function(RegData, datoFra='2014-01-01', datoTil="2100-01-01", if ((minald>0) | (maxald<120)) { paste('Pasienter fra ', min(RegData$Alder, na.rm=T), ' til ', max(RegData$Alder, na.rm=T), ' år', sep='')}, if (erMann %in% 0:1) {paste('Kjønn: ', c('Kvinne', 'Mann')[erMann+1], sep='')}, - if (op_gruppe[1] != '') {paste0('Operasjonsgruppe(r): ', - paste(RegData$Operasjonsgrupper[match(op_gruppe, RegData$Op_gr)], collapse = ', '))}, + if (kun_oblig) {"Kun obligatoriske reseksjoner: Ja"}, + if (op_gruppe[1] != '') { + paste0('Operasjonsgruppe(r): ', + paste(RegData$Operasjonsgrupper[match(op_gruppe[1:4], RegData$Op_gr)][!is.na( + RegData$Operasjonsgrupper[match(op_gruppe[1:4], RegData$Op_gr)])], collapse = ', '))}, + if (length(op_gruppe)>4) { + paste0(' ', + paste(RegData$Operasjonsgrupper[match(op_gruppe[5:8], RegData$Op_gr)][!is.na( + RegData$Operasjonsgrupper[match(op_gruppe[5:8], RegData$Op_gr)])], collapse = ', '))}, + if (length(op_gruppe)>8) { + paste0(' ', + paste(RegData$Operasjonsgrupper[match(op_gruppe[9:12], RegData$Op_gr)][!is.na( + RegData$Operasjonsgrupper[match(op_gruppe[9:12], RegData$Op_gr)])], collapse = ', '))}, if (ncsp[1] != '') {paste0('NCSP-kode(r): ', paste(ncsp[which(!is.na(ncsp[1:9]))], collapse=', '))}, if (length(ncsp) > 9) {paste0(' ', paste(ncsp[which(!is.na(ncsp[10:20]))+9], collapse=', '))}, if (length(ncsp) > 20) {paste0(' ', paste(ncsp[which(!is.na(ncsp[21:31]))+20], collapse=', '))}, @@ -75,7 +91,7 @@ NorgastUtvalg <- function(RegData, datoFra='2014-01-01', datoTil="2100-01-01", 'Laparoskopisk- robotassistert', 'Konvertert- konvensjonell', 'Konvertert- robotassistert')[as.numeric(tilgang_utvidet)], collapse = ', '))}, if ((minPRS>0) | (maxPRS<2.2)) {paste0('PRS-score fra ', sprintf('%.2f', min(RegData$PRSScore, na.rm=T)), ' til ', - sprintf('%.2f', max(RegData$PRSScore, na.rm=T)))}, + sprintf('%.2f', max(RegData$PRSScore, na.rm=T)))}, if (ASA[1] != '') {paste0('ASA-grad: ', paste(ASA, collapse=','))}, if (whoEcog[1] != '') {paste0('WHO ECOG score: ', paste(whoEcog, collapse=','))}, if (modGlasgow[1] != '') {paste0('Modifisert Glasgow score: ', paste(modGlasgow, collapse=','))}, @@ -83,8 +99,10 @@ NorgastUtvalg <- function(RegData, datoFra='2014-01-01', datoTil="2100-01-01", paste(c('Cytostatika', 'Stråleterapi', 'Komb. kjemo/radioterapi', 'Ingen')[as.numeric(forbehandling)], collapse = ', '))}, if (malign %in% c(0,1)){paste0('Diagnose: ', c('Benign', 'Malign')[malign+1])}, if (icd[1] != '') {paste0('ICD-10-kode(r): ', paste(sub("(\\w+).*", "\\1", icd), collapse=', '))}, + if (icd_kode[1] != '') {paste0('ICD-10-kode(r): ', paste(icd_kode, collapse=', '))}, if (robotassiastanse %in% c(0,1)){paste0('Minimalinvasiv: ', c('Konv. laparoskopi', 'Robotassistert')[robotassiastanse+1])}, if (ny_stomi %in% c(0,1)){paste0('Ny stomi: ', c('Nei', 'Ja')[ny_stomi+1])}, + if (ny_anastomose %in% c(0,1)){paste0('Ny anastomose: ', c('Nei', 'Ja')[ny_anastomose+1])}, if (accordion[1] != '') {paste0('AccordionGrad: ', paste(c("<3", "", 3:6)[sort(as.numeric(accordion))], collapse=','))}, if (!kun_ferdigstilte){'Ikke-ferdigstilte oppfølginger inkludert: Ja'} diff --git a/R/achocfigur2023rapport.R b/R/achocfigur2023rapport.R new file mode 100644 index 0000000..3697475 --- /dev/null +++ b/R/achocfigur2023rapport.R @@ -0,0 +1,426 @@ +#' Adhocfunksjon for årsrapportfigur +#' +#' @export +#' +norgastAndelGruppert2Gr <- function(valgtVar = "Malign", + tittel = "Testtittel", + Grvar1 = "Op_gr", + Grvar2 = "Tilgang_utvidet", + xtxt = "Andel (%)", + ytxt = "", + inkl_konf = FALSE, + outfile='', ...) +{ + NorgastUtvalg <- NorgastUtvalg(...) + RegData <- NorgastUtvalg$RegData + utvalgTxt <- NorgastUtvalg$utvalgTxt + NutvTxt <- length(utvalgTxt) + + aux <- RegData %>% + dplyr::filter(!is.na(!! sym(valgtVar )), + !is.na(!! sym(Grvar1 )), + !is.na(!! sym(Grvar2 ))) %>% + dplyr::summarise(N = dplyr::n(), + Antall = sum(!! sym(valgtVar )), + Andel = Antall/N*100, + konf_lav = binom.test(Antall,N, alternative = 'two.sided')$conf.int[1]*100, + konf_hoy = binom.test(Antall,N, alternative = 'two.sided')$conf.int[2]*100, + .by = c(!! sym(Grvar1 ), !! sym(Grvar2 ))) + + + Andeler <- aux %>% dplyr::select(!! sym(Grvar1 ), !! sym(Grvar2 ), Andel) %>% + tidyr::pivot_wider(names_from = !! sym(Grvar2 ), + values_from = Andel, + names_sort = TRUE) %>% + dplyr::arrange(desc(!! sym(Grvar1 ))) + + N <- aux %>% dplyr::select(!! sym(Grvar1 ), !! sym(Grvar2 ), N) %>% + tidyr::pivot_wider(names_from = !! sym(Grvar2 ), + values_from = N, + names_sort = TRUE) %>% + dplyr::arrange(desc(!! sym(Grvar1 ))) + + PlotAndeler <- as.data.frame(Andeler) + rownames(PlotAndeler) <- PlotAndeler[, Grvar1] + PlotAndeler<- as.matrix(PlotAndeler[,-1]) %>% t() + + ngrvar2level <- dim(Andeler)[2]-1 + ymax <- 1.5 + (nlevels(RegData[[Grvar2]])+1) * nlevels(RegData[[Grvar1]]) + + FigTypUt <- rapFigurer::figtype(outfile=outfile, + pointsizePDF=11, fargepalett='BlaaOff') + farger <- rev(FigTypUt$farger) + par('oma'=c(0,1,NutvTxt,0)) + par('mar'=c(5.1, 5.1, 5.1, 3.1)) + + if (inkl_konf) { + xmax <- min(max(aux$konf_hoy, na.rm = T)*1.2, 100) + } else {xmax <- min(max(PlotAndeler, na.rm = T)*1.2, 100)} + + pos <- barplot(PlotAndeler, horiz=T, beside=TRUE, border=NA, col=farger[1:ngrvar2level], + main='', font.main=1, ylim = c(0,ymax), + xlim = c(0, xmax), + xlab=xtxt, las=1, cex.names = 1.2, + names.arg=rep('',dim(PlotAndeler)[2])) + + mtext(colnames(PlotAndeler), side=2, line=0.2, las=1, at=colMeans(pos), col=1, cex=1) + mtext(ytxt, side=2, line=5, las=0, col=1, cex=1) + + + Nlang <- N %>% pivot_longer(cols = -1, + names_to = Grvar2, values_to = "N") + Nlang$pos <- as.vector(pos) + # Nlang$N <- paste0("N=", Nlang$N) + Nlang <- merge(Nlang, aux[, c(Grvar1, Grvar2, "Andel", "konf_lav", "konf_hoy")], by = c(Grvar1, Grvar2)) + Nlang$pst_txt <- paste0(sprintf("%.1f", Nlang$Andel), " %") + Nlang <- Nlang %>% arrange(-pos) + text(x = 0, y = Nlang$pos, labels = Nlang$pst_txt, pos = 4) + mtext(Nlang$N , side=4, line=1, las=1, + at=Nlang$pos, col=1, cex=0.75, adj = 1, xpd = T) + mtext(expression(bold("N")), side=4, line=1, las=1, at=Nlang$pos[1]+1, + col=1, cex=0.75, adj = 1, xpd = T) + + if (inkl_konf){ + arrows(x0 = Nlang$konf_lav, y0 = Nlang$pos, x1 = Nlang$konf_hoy, y1 = Nlang$pos, + length=0.5/max(Nlang$pos), code=3, angle=90, lwd=1.8, col='gray') #, col=farger[1]) + legend('bottom', cex=0.9, bty='n', + lwd=1.8, lty = 1, pt.cex=1.8, col='gray', + legend= 'Konfidensintervall') + } + + title(tittel) + legend("top", + legend = levels(RegData[, Grvar2]), + pch=15, col=farger[1:ngrvar2level], ncol = ngrvar2level, + bty='n') + + mtext(utvalgTxt, side=3, las=1, cex=0.9, adj=0, col=farger[4], line=(NutvTxt-1):0, outer=TRUE) + + if ( outfile != '') {dev.off()} + +} + + +#' Andeler gruppert på noe annet enn sykehusnavn +#' +#' @export +#' +norgastAndelGruppert1Gr <- function(valgtVar = "Anastomoselekkasje", + tittel = "Testtittel", + Grvar1 = "Robot", + xtxt = "Andel (%)", + ytxt = "", + inkl_konf = TRUE, + outfile='', ...) +{ + NorgastUtvalg <- NorgastUtvalg(...) + RegData <- NorgastUtvalg$RegData + utvalgTxt <- NorgastUtvalg$utvalgTxt + NutvTxt <- length(utvalgTxt) + + aux <- RegData %>% + dplyr::filter(!is.na(!! sym(valgtVar )), + !is.na(!! sym(Grvar1 ))) %>% + dplyr::summarise(N = dplyr::n(), + Antall = sum(!! sym(valgtVar )), + Andel = Antall/N*100, + konf_lav = binom.test(Antall,N, alternative = 'two.sided')$conf.int[1]*100, + konf_hoy = binom.test(Antall,N, alternative = 'two.sided')$conf.int[2]*100, + .by = c(!! sym(Grvar1 ))) + + plotvektor <- aux$Andel + grtxt <- paste0(aux[[1]], "\n (N=", aux$N, ")") + FigTypUt <- rapFigurer::figtype(outfile=outfile, + pointsizePDF=11, fargepalett='BlaaOff') + farger <- FigTypUt$farger + par('oma'=c(0,1,NutvTxt,0)) + par('mar'=c(5.1, 5.1, 5.1, 2.1)) + + if (inkl_konf) { + xmax <- min(max(aux$konf_hoy, na.rm = T)*1.2, 100) + } else {xmax <- min(max(PlotAndeler, na.rm = T)*1.2, 100)} + + pos <- barplot(plotvektor, horiz=T, border=NA, col=farger[3], + font.main=1, + xlim = c(0, xmax), + xlab=xtxt, las=1, + names.arg=rep('',length(plotvektor))) + title(main = tittel) + mtext(grtxt, side=2, line=0.2, las=1, at=pos, col=1, cex=1) + mtext(ytxt, side=2, line=5, las=0, col=1, cex=1) + + mtext(utvalgTxt, side=3, las=1, cex=0.9, adj=0, col=farger[2], line=(NutvTxt-1):0, outer=TRUE) + + if (inkl_konf){ + arrows(x0 = aux$konf_lav, y0 = pos, x1 = aux$konf_hoy, y1 = pos, + length=0.5/max(pos), code=3, angle=90, lwd=1.8, col='gray') #, col=farger[1]) + # legend('bottom', cex=0.9, bty='n', + # lwd=1.8, lty = 1, pt.cex=1.8, col='gray', + # legend= 'Konfidensintervall') + } + + if ( outfile != '') {dev.off()} + +} + + +#' Fordeling av operasjoner over valgt variabel +#' og splittet på grupperingsvariabel +#' +#' @export +#' +norgastFordelingOpGruppert <- function(outfile = "", + Grvar1 = "AvstandAnalVerge_fakt", + Grvar2 = "Tilgang_utvidet", + tittel = c("Fordeling av operasjoner", + "over avstand fra analkanten"), + ytxt = "Andel (%)", + xtxt = "Avstand analkanten (cm)", + ...) { + + NorgastUtvalg <- NorgastUtvalg(...) + + aux <- NorgastUtvalg$RegData + utvalgTxt <- NorgastUtvalg$utvalgTxt + NutvTxt <- length(utvalgTxt) + + antall <- aux %>% + dplyr::filter(!is.na(!! sym(Grvar1 )), + !is.na(!! sym(Grvar2 ))) %>% + dplyr::summarise(N = dplyr::n(), + .by = c(!! sym(Grvar1 ), !! sym(Grvar2 ))) %>% + pivot_wider(names_from = Grvar2, values_from = N) %>% + arrange(!! sym(Grvar1 )) + + legendTxt <- paste0(names(colSums(antall[,-1])), + paste0(" (N = ", colSums(antall[,-1]), ")")) + + andeler <- antall + andeler[,-1] <- t(t(antall[,-1])/colSums(antall[,-1]))*100 + + tmp <- andeler[,2:dim(andeler)[2]] %>% as.matrix() %>% t() + colnames(tmp) <- andeler[[1]] + plotdata <- tmp + + FigTypUt <- rapFigurer::figtype(outfile=outfile, + pointsizePDF=11, fargepalett='BlaaOff') + farger <- FigTypUt$farger %>% rev() + par('oma'=c(0,1,NutvTxt,0)) + + xpos <- barplot( plotdata, beside=T, las=1, main = tittel, + ylim = c(0,max(plotdata)*1.2), + horiz=F, space=c(0,0.3),names.arg=rep('',dim(plotdata)[2]), + col=farger[1:2], border=NA, ylab = ytxt, xlab = xtxt) + mtext(colnames(plotdata), at = colMeans(xpos), side = 1, line = 0) + legend("topright", legend = legendTxt, pch=15, col = farger[1:2], bty='n') + + mtext(utvalgTxt, side=3, las=1, cex=0.9, adj=0, col=farger[4], line=(NutvTxt-1):0, outer=TRUE) + + if ( outfile != '') {dev.off()} + +} + + + + + + + + + + +#' Adhocfunksjon for årsrapportfigur +#' +#' @export +#' +norgastAndelGruppert2Gr_ggplot <- function(valgtVar = "Malign", + tittel = "Testtittel", + Grvar1 = "Op_gr", + Grvar2 = "Tilgang_utvidet", + xtxt = "Andel (%)", + ytxt = "", + outfile='', ...) +{ + NorgastUtvalg <- NorgastUtvalg(...) + RegData <- NorgastUtvalg$RegData + utvalgTxt <- NorgastUtvalg$utvalgTxt + NutvTxt <- length(utvalgTxt) + + aux <- RegData %>% + dplyr::filter(!is.na(!! sym(valgtVar )), + !is.na(!! sym(Grvar1 )), + !is.na(!! sym(Grvar2 ))) %>% + dplyr::summarise(N = dplyr::n(), + Antall = sum(!! sym(valgtVar )), + Andel = Antall/N*100, + konf_lav = binom.test(Antall,N, alternative = 'two.sided')$conf.int[1]*100, + konf_hoy = binom.test(Antall,N, alternative = 'two.sided')$conf.int[2]*100, + .by = c(!! sym(Grvar1 ), !! sym(Grvar2 ))) + + p <- ggplot(aux, aes(fill=!! sym(Grvar2 ), x=Andel, y=!! sym(Grvar1 ))) + + geom_bar(position=position_dodge(), stat="identity") + + geom_text(stat = "identity", aes()) + geom_errorbarh( aes(y=!! sym(Grvar1 ), xmin=konf_lav, xmax=konf_hoy), + position=position_dodge(.9), height=0.2, size=0.5, alpha=0.5) + + scale_fill_brewer(palette = "Blues") + + labs(title = tittel) + + # labs(tag = paste0(utvalgTxt, collapse = "\n"), ) + + # theme(tag) + xlab(xtxt) + + ylab(ytxt) + + annotate("text", x=0, y=.5, label = "noe tekst her")+ + theme(legend.position = "top", + legend.title = element_blank(), + plot.title = element_text(size = 18)) + + + # + + # annotate("text", x=0, y=14:16, label = utvalgTxt) + # + + # Andeler <- aux %>% dplyr::select(-N, -Antall) %>% + # tidyr::pivot_wider(names_from = !! sym(Grvar2 ), + # values_from = Andel, + # names_sort = TRUE) %>% + # dplyr::arrange(desc(!! sym(Grvar1 ))) + # + # N <- aux %>% dplyr::select(-Andel, -Antall) %>% + # tidyr::pivot_wider(names_from = !! sym(Grvar2 ), + # values_from = N, + # names_sort = TRUE) %>% + # dplyr::arrange(desc(!! sym(Grvar1 ))) + # + # PlotAndeler <- as.data.frame(Andeler) + # rownames(PlotAndeler) <- PlotAndeler[, Grvar1] + # PlotAndeler<- as.matrix(PlotAndeler[,-1]) %>% t() + # + # ngrvar2level <- dim(Andeler)[2]-1 + # ymax <- 1.5 + (nlevels(RegData[[Grvar2]])+1) * nlevels(RegData[[Grvar1]]) + # + # FigTypUt <- rapFigurer::figtype(outfile=outfile, + # pointsizePDF=11, fargepalett='BlaaOff') + # farger <- rev(FigTypUt$farger) + # par('oma'=c(0,1,NutvTxt,0)) + # par('mar'=c(5.1, 5.1, 5.1, 3.1)) + # + # pos <- barplot(PlotAndeler, horiz=T, beside=TRUE, border=NA, col=farger[1:ngrvar2level], + # main='', font.main=1, ylim = c(0,ymax), + # xlim = c(0, min(max(PlotAndeler, na.rm = T)*1.2, 100)), + # xlab=xtxt, las=1, cex.names = 1.2, + # names.arg=rep('',dim(PlotAndeler)[2])) + # + # mtext(colnames(PlotAndeler), side=2, line=0.2, las=1, at=colMeans(pos), col=1, cex=1) + # mtext(ytxt, side=2, line=5, las=0, col=1, cex=1) + # + # + # Nlang <- N %>% pivot_longer(cols = -1, + # names_to = Grvar2, values_to = "N") + # Nlang$pos <- as.vector(pos) + # # Nlang$N <- paste0("N=", Nlang$N) + # Nlang <- merge(Nlang, aux[, c(Grvar1, Grvar2, "Andel")], by = c(Grvar1, Grvar2)) + # Nlang$pst_txt <- paste0(sprintf("%.1f", Nlang$Andel), " %") + # Nlang <- Nlang %>% arrange(-pos) + # text(x = 0, y = Nlang$pos, labels = Nlang$pst_txt, pos = 4) + # mtext(Nlang$N , side=4, line=1, las=1, + # at=Nlang$pos, col=1, cex=0.75, adj = 1, xpd = T) + # mtext(expression(bold("N")), side=4, line=1, las=1, at=Nlang$pos[1]+1, + # col=1, cex=0.75, adj = 1, xpd = T) + # + # title(tittel) + # legend("top", + # legend = levels(RegData[, Grvar2]), + # pch=15, col=farger[1:ngrvar2level], ncol = ngrvar2level, + # bty='n') + # + # mtext(utvalgTxt, side=3, las=1, cex=0.9, adj=0, col=farger[4], line=(NutvTxt-1):0, outer=TRUE) + # + if ( outfile != '') {dev.off()} + +} + + + + + + + +# achocfigur2023rapport <- function(outfile='', ...) +# { +# NorgastUtvalg <- NorgastUtvalg(...) +# RegData <- NorgastUtvalg$RegData +# utvalgTxt <- NorgastUtvalg$utvalgTxt +# NutvTxt <- length(utvalgTxt) +# +# aux <- RegData %>% +# dplyr::filter(!is.na(KumAcc), +# Op_gr %in% 1:5) %>% +# dplyr::mutate(Op_gr = factor(Op_gr, levels = 1:5, +# labels = c("Kolon", "Rektum", "Øsofagus", +# "Ventrikkel", "Lever")), +# Tilgang_utvidet = dplyr::case_when( +# Tilgang_utvidet == 4 ~ 2, +# Tilgang_utvidet == 5 ~ 3, +# Tilgang_utvidet %in% 1:3 ~ Tilgang_utvidet +# ), +# Tilgang_utvidet = factor( +# Tilgang_utvidet, levels = 1:3, +# labels = c("Åpen", +# "Laparoskopisk", +# "Robotassistert"))) %>% +# dplyr::summarise(N = dplyr::n(), +# Antall = sum(KumAcc), +# Andel = Antall/N*100, +# .by = c(Tilgang_utvidet, Op_gr)) +# +# Andeler <- aux %>% dplyr::select(-N, -Antall) %>% +# tidyr::pivot_wider(names_from = Tilgang_utvidet, +# values_from = Andel, +# names_sort = TRUE) %>% +# dplyr::arrange(desc(Op_gr)) +# +# N <- aux %>% dplyr::select(-Andel, -Antall) %>% +# tidyr::pivot_wider(names_from = Tilgang_utvidet, +# values_from = N, +# names_sort = TRUE) %>% +# dplyr::arrange(desc(Op_gr)) +# +# PlotAndeler <- as.data.frame(Andeler) +# rownames(PlotAndeler) <- PlotAndeler$Op_gr +# PlotAndeler<- as.matrix(PlotAndeler[,-1]) %>% t() +# +# +# FigTypUt <- rapFigurer::figtype(outfile=outfile, +# pointsizePDF=11, fargepalett='BlaaOff') +# farger <- rev(FigTypUt$farger) +# par('oma'=c(0,1,NutvTxt,0)) +# par('mar'=c(5.1, 4.1, 5.1, 2.1)) +# +# pos <- barplot(PlotAndeler, horiz=T, beside=TRUE, border=NA, col=farger[1:3], +# main='', font.main=1, ylim = c(0,23), +# xlim = c(0, min(max(PlotAndeler)*1.2, 100)), +# xlab='', las=1, cex.names = 1.2, +# names.arg=rep('',dim(PlotAndeler)[2])) +# +# mtext(colnames(PlotAndeler), side=2, line=0.2, las=1, at=colMeans(pos), col=1, cex=1) +# +# Nlang <- N %>% pivot_longer(cols = c(Åpen, Laparoskopisk, Robotassistert), +# names_to = "Tilgang", values_to = "N") +# Nlang$pos <- as.vector(pos) +# Nlang$N <- paste0("N=", Nlang$N) +# text(x = 0, y = Nlang$pos, labels = Nlang$N, pos = 4) +# +# title("Andel komplikasjoner (Accordion >=3)") +# legend("top", +# legend = c("Åpen", +# "Laparoskopisk", +# "Robotassistert"), +# pch=15, col=farger[1:3], ncol = 3, +# bty='n') +# +# # mtext(utvalgTxt, side=3, las=1, cex=0.9, adj=0, col=farger[4], line=-1, outer=TRUE) +# mtext(utvalgTxt, side=3, las=1, cex=0.9, adj=0, col=farger[4], line=(NutvTxt-1):0, outer=TRUE) +# +# if ( outfile != '') {dev.off()} +# +# } + diff --git a/R/appServer.R b/R/appServer.R index 1674bff..4204136 100644 --- a/R/appServer.R +++ b/R/appServer.R @@ -16,6 +16,13 @@ appServer <- function(input, output, session) { RegData <- rapbase::loadStagingData("norgast", "RegData") #Benyttes i appen skjemaoversikt <- rapbase::loadStagingData("norgast", "skjemaoversikt") #Benyttes i appen } + query <- "SELECT * FROM user" + brukerinfo <- rapbase::loadRegData("norgast", query, "mysql") %>% + dplyr::mutate(fullname = paste0(FIRSTNAME, " ", LASTNAME)) + RegData$ForstLukketAv <- + brukerinfo$fullname[match(RegData$ForstLukketAv, brukerinfo$ID)] + RegData$OppfForstLukketAv <- + brukerinfo$fullname[match(RegData$OppfForstLukketAv, brukerinfo$ID)] BrValg <- norgast::BrValgNorgastShiny(RegData) if (rapbase::isRapContext()) { @@ -99,7 +106,7 @@ appServer <- function(input, output, session) { ################ Datadump ################################################## shiny::callModule(norgast::datadump, "datadump_id", reshID = reshID, - RegData = RegData, userRole = userRole, + RegData = RegData, userRole = userRole, brukerinfo=brukerinfo, hvd_session = session, BrValg = BrValg) ############################################################################## diff --git a/R/modul_datadump.R b/R/modul_datadump.R index 198844d..0da49cd 100644 --- a/R/modul_datadump.R +++ b/R/modul_datadump.R @@ -73,8 +73,8 @@ datadump_UI <- function(id){ #' @return Modulfunksjoner til datadump-fane #' #' @export -datadump <- function(input, output, session, reshID, RegData, userRole, - hvd_session, BrValg){ +datadump <- function(input, output, session, reshID, RegData, + userRole, brukerinfo, hvd_session, BrValg){ observe( @@ -183,7 +183,14 @@ datadump <- function(input, output, session, reshID, RegData, userRole, if (userRole != 'SC') { dumpdata <- dumpdata[dumpdata$AvdRESH == reshID, ] } else { - if (!is.null(input$valgtShus)) {dumpdata <- dumpdata[dumpdata$AvdRESH %in% as.numeric(input$valgtShus), ]} + if (!is.null(input$valgtShus)) { + dumpdata <- dumpdata[dumpdata$AvdRESH %in% as.numeric(input$valgtShus), ]} + } + if (input$dumptype %in% c('SkjemaOversikt')) { + dumpdata$OpprettetAv <- + brukerinfo$fullname[match(dumpdata$OpprettetAv, brukerinfo$ID)] + dumpdata$SistLagretAv <- + brukerinfo$fullname[match(dumpdata$SistLagretAv, brukerinfo$ID)] } write.csv2(dumpdata, file, row.names = F, na = '', fileEncoding = 'Latin1') diff --git a/R/modul_fordelingsfig.R b/R/modul_fordelingsfig.R index 6b86052..8b34302 100644 --- a/R/modul_fordelingsfig.R +++ b/R/modul_fordelingsfig.R @@ -58,6 +58,7 @@ fordelingsfig_UI <- function(id){ 'Komb. kjemo/radioterapi'=3, 'Ingen'=4)), selectInput(inputId = ns("malign"), label = "Diagnose", choices = c('Ikke valgt'=99, 'Malign'=1, 'Benign'=0)), + uiOutput(outputId = ns('icd')), selectInput(inputId = ns("ny_stomi"), label = "Ny stomi", choices = c('--'=99, 'Nei'=0, 'Ja'=1)), selectInput(inputId = ns("accordion"), label = "Accordiongrad", @@ -172,6 +173,20 @@ fordelingsfig <- function(input, output, session, reshID, RegData, userRole, hvd choices = BrValg$whoEcog_valg, multiple = TRUE) }) + output$icd <- renderUI({ + ns <- session$ns + Utvalg1 <- NorgastUtvalg(RegData = RegData, + op_gruppe = if (!is.null(input$op_gruppe)) {input$op_gruppe} else {''}, + ncsp = if (!is.null(input$ncsp_verdi)) {input$ncsp_verdi} else {''}, + malign = as.numeric(input$malign)) + Utvalg1 <- Utvalg1$RegData + diagnoser <- names(sort(table(Utvalg1$Hoveddiagnose2), decreasing = T)) + if (!is.null(diagnoser)) { + selectInput(inputId = ns("icd_verdi"), label = "Spesifiser ICD-10 koder (velg en eller flere)", + choices = diagnoser, multiple = TRUE) + } + }) + tabellReager <- reactive({ TabellData <- norgast::NorgastBeregnAndeler( RegData = RegData, @@ -194,7 +209,8 @@ fordelingsfig <- function(input, output, session, reshID, RegData, userRole, hvd hastegrad_hybrid = as.numeric(input$hastegrad_hybrid), kun_ferdigstilte = input$kun_ferdigstilte, ny_stomi = as.numeric(input$ny_stomi), - accordion = if (!is.null(input$accordion)) {input$accordion} else {''}) + accordion = if (!is.null(input$accordion)) {input$accordion} else {''}, + icd = if (!is.null(input$icd_verdi)) {input$icd_verdi} else {''}) }) diff --git a/R/norgastBeregnIndikator.R b/R/norgastBeregnIndikator.R index 0c2435f..0b64ead 100644 --- a/R/norgastBeregnIndikator.R +++ b/R/norgastBeregnIndikator.R @@ -374,7 +374,8 @@ norgastBeregnIndikator <- function(RegData, ind_id) { Indikator <- RegData %>% dplyr::filter(Op_gr %in% 4, # mage OppfStatus == 1 | is.na(OppfStatus), # Kun ferdige - Hastegrad_hybrid==1) %>% + Hastegrad_hybrid==1, + Malign == 1) %>% dplyr::mutate(context = "caregiver", denominator = 1, ind_id = "anastomoselekk_ventrikkel", @@ -389,7 +390,8 @@ norgastBeregnIndikator <- function(RegData, ind_id) { maal = 5 maalretn <- "lav" tittel <- "Andel anastomoselekkasjer, ny anastomose" - utvalgTxt <- c("Operasjonsgruppe: Ventrikkelreseksjoner", "Hastegrad: Elektiv") + utvalgTxt <- c("Operasjonsgruppe: Ventrikkelreseksjoner", "Hastegrad: Elektiv", + "Diagnose: Malign") } diff --git a/R/norgastIndikator_rapporteket.R b/R/norgastIndikator_rapporteket.R index 6dba4fe..89f4d15 100644 --- a/R/norgastIndikator_rapporteket.R +++ b/R/norgastIndikator_rapporteket.R @@ -19,8 +19,9 @@ norgastIndikator_rapporteket <- minald=0, maxald=130, erMann=99, outfile='', preprosess=F, malign=99, elektiv=99, hastegrad=99, BMI='', tilgang='', minPRS=0, maxPRS=2.2, ASA='', whoEcog= '', forbehandling='', dagtid =99, hentData=0, op_gruppe='', ncsp='', maalretn='hoy', - lavDG='', lavDGtekst='Dekningsgrad < 60 %', hastegrad_hybrid=99, - robotassiastanse=99, kun_ferdigstilte=TRUE, prikktall=TRUE) + lavDG='', lavDGtekst='Dekningsgrad < 60 %', hastegrad_hybrid=99, icd_kode='', + robotassiastanse=99, kun_ferdigstilte=TRUE, prikktall=TRUE, pst_kolonne=FALSE, + ny_anastomose=99, desimaler_pst = 0, kun_oblig = FALSE) { ## Hvis spørring skjer fra R på server. ###################### if(hentData){ @@ -40,7 +41,8 @@ norgastIndikator_rapporteket <- BMI=BMI, tilgang=tilgang, minPRS=minPRS, maxPRS=maxPRS, dagtid = dagtid, ASA=ASA, whoEcog=whoEcog, forbehandling=forbehandling, malign=malign, op_gruppe=op_gruppe, ncsp=ncsp, hastegrad_hybrid=hastegrad_hybrid, - robotassiastanse=robotassiastanse, kun_ferdigstilte=kun_ferdigstilte) + robotassiastanse=robotassiastanse, kun_ferdigstilte=kun_ferdigstilte, + icd_kode=icd_kode, ny_anastomose=ny_anastomose, kun_oblig=kun_oblig) RegData <- NorgastUtvalg$RegData utvalgTxt <- NorgastUtvalg$utvalgTxt NutvTxt <- length(utvalgTxt) @@ -89,11 +91,11 @@ norgastIndikator_rapporteket <- andeler[N[, dim(andeler)[2]]% filter(Op_gr==2); valgtVar<-"Anastomoselekkasje"; tittel=''; width=800; height=700; + # decreasing=F; terskel=5; minstekrav = NA; + # maal = NA; skriftStr=1.3; pktStr=1.4; legPlass='topleft'; minstekravTxt='Moderat \nmåloppnåelse'; + # maalTxt='Høy \nmåloppnåelse'; graaUt=NA; inkl_konf=T; datoFra='2014-01-01'; datoTil='2050-12-31'; + # minald=0; maxald=130; erMann=99; outfile=''; preprosess=F; malign=99; elektiv=99; + # hastegrad=99; BMI=''; tilgang=''; minPRS=0; maxPRS=2.2; ASA=''; whoEcog= ''; + # forbehandling=''; dagtid =99; hentData=0; op_gruppe=''; ncsp=''; maalretn='hoy'; + # lavDG=''; lavDGtekst='Dekningsgrad < 60 %'; hastegrad_hybrid=99; + # robotassiastanse=99; kun_ferdigstilte=TRUE; prikktall=TRUE; + # Grvar1 = "Sykehusnavn"; Grvar2 = "Tilgang_utvidet"; ltop=2; lbunn=1; inset=0; #Grvar2 = "maligndiag"; + # prikktall = FALSE; inkl_N = FALSE; valgtVar = "mortalitet90"; ny_anastomose=99; + # minstekrav = 8; maal = 5; rotermaaltxt=45; lavDG=graaUt_rektum;pst_kolonne=T + # RegData$Malign<-factor(RegData$Malign, levels = 0:1, labels = c("Benign", "Malign")) + # RegData[,Grvar2] <- as.factor(RegData[,Grvar2]) + + RegData <- RegData[RegData$Aar > max(RegData$Aar)-3, ] # behold bare siste 3 år + RegData <- RegData %>% dplyr::filter(!is.na( !! sym(Grvar1 )), + !is.na( !! sym(Grvar2 ))) + RegData[, Grvar2] <- as.factor(RegData[, Grvar2]) + + ## 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, tilgang=tilgang, minPRS=minPRS, maxPRS=maxPRS, dagtid = dagtid, + ASA=ASA, whoEcog=whoEcog, forbehandling=forbehandling, malign=malign, + op_gruppe=op_gruppe, ncsp=ncsp, hastegrad_hybrid=hastegrad_hybrid, + robotassiastanse=robotassiastanse, kun_ferdigstilte=kun_ferdigstilte, + ny_anastomose=ny_anastomose, ny_stomi = ny_stomi, kun_oblig=kun_oblig) + RegData <- NorgastUtvalg$RegData + utvalgTxt <- NorgastUtvalg$utvalgTxt + NutvTxt <- length(utvalgTxt) + + ## Preparer variabler for fremstilling i figur + PlotParams <- NorgastPrepVar(RegData=RegData, valgtVar=valgtVar) + RegData <- PlotParams$RegData + if (tittel[1] == '') { + tittel <- paste0('Andel ', PlotParams$VarTxt) + } + if (inkl_konf) {tittel <- c(tittel, 'inkl. 95% konf. int.')} + PlotParams$RegData <- NA + + if ("Variabel" %in% names(RegData)) { + Samlet <- RegData %>% + dplyr::summarise(antall = sum(Variabel, na.rm = T), + N = sum(!is.na(Variabel)), + andel = antall/N*100, + .by = c(!! sym(Grvar1 ), !! sym(Grvar2 ), Aar)) + } else { + Samlet <- RegData %>% + dplyr::summarise(antall = sum(!! sym(valgtVar ), na.rm = T), + N = sum(!is.na(!! sym(valgtVar ))), + andel = antall/N*100, + .by = c(!! sym(Grvar1 ), !! sym(Grvar2 ), Aar))} + + + aux <- Samlet %>% dplyr::select(-c(N, andel)) %>% + tidyr::pivot_wider(id_expand = TRUE, names_from = Aar, values_from = antall, + values_fill = 0, names_sort = TRUE) %>% + dplyr::mutate(tot = rowSums(across(-c(1,2))) ) + names(aux)[dim(aux)[2]] <- paste0(names(aux)[3], '-', names(aux)[dim(aux)[2]-1]) + aux <- aux[, c(1,2,dim(aux)[2]-1, dim(aux)[2])] + + AntTilfeller <- dplyr::bind_rows( + aux, + aux %>% select(-Sykehusnavn) %>% + summarise(across(everything(), ~sum(.)), .by = !! sym(Grvar2 )) %>% + mutate(Sykehusnavn = "Norge")) + + aux <- Samlet %>% dplyr::select(-c(antall, andel)) %>% + tidyr::pivot_wider(id_expand = TRUE, names_from = Aar, values_from = N, + values_fill = 0, names_sort = TRUE) %>% + dplyr::mutate(tot = rowSums(across(-c(1,2))) ) + names(aux)[dim(aux)[2]] <- paste0(names(aux)[3], '-', names(aux)[dim(aux)[2]-1]) + aux <- aux[, c(1,2,dim(aux)[2]-1, dim(aux)[2])] + + N <- dplyr::bind_rows( + aux, + aux %>% select(-Sykehusnavn) %>% + summarise(across(everything(), ~sum(.)), .by = !! sym(Grvar2 )) %>% + mutate(Sykehusnavn = "Norge")) + + andeler <- N + andeler[,3:4] <- AntTilfeller[, 3:4]/N[,3:4]*100 + + total <- Samlet %>% summarise(antall = sum(antall, na.rm = T), + N=sum(N, na.rm = T), .by = !! sym(Grvar1 )) %>% + janitor::adorn_totals(name="Norge") %>% mutate(andel_tot=antall/N*100) %>% + select(!! sym(Grvar1 ), andel_tot) + + andeler <- left_join(andeler, total, Grvar1) %>% + left_join(N[, c(1,2,4)], by = c(Grvar1, Grvar2), suffix = c("", "_N")) + + andeler <- andeler %>% + rename(N=6) %>% + mutate(Nmax = max(N), .by = !! sym(Grvar1 )) + + + andeler[andeler[[Grvar1]] %in% lavDG, 3:5] <- NA + andeler[N[[4]]% mutate(andel_tot = ifelse(Nmax% select(KI_low, KI_high) %>% as.matrix() + ngrvar2level <- nlevels(andeler[[Grvar2]]) + + plotdata <- andeler %>% select(1, 2, 4) %>% + pivot_wider(id_expand = TRUE, names_from = !! sym(Grvar2 ), values_from = 3, + values_fill = 0, names_sort = TRUE) #%>% dplyr::arrange(across(ncol(.))) + + tmp <- plotdata[,2:dim(plotdata)[2]] %>% as.matrix() %>% t() + colnames(tmp) <- plotdata$Sykehusnavn + plotdata <- tmp + # plotdata <- bind_rows(tmp2, tmp) + # pos <- barplot(tmp, beside = TRUE, horiz = TRUE, las=1) + if (inkl_N) { + pst_txt <- paste0(sprintf('%.0f', andeler[[4]]), ' %', ', N = ', N[[4]]) + } else {pst_txt <- paste0(sprintf('%.0f', andeler[[4]]), ' %')} + # pst_txt <- paste0(sprintf('%.0f', andeler[[4]]), ' %', ', N = ', N[[4]]) + pst_txt[N[, 4]% rev() + soyleFarger <- rep(farger[c(3,4)], dim(andeler)[1]/2) + soyleFarger <- farger[1:nlevels(andeler[[2]])] + # soyleFarger[which(rownames(andeler)=='Norge')] <- farger[4] + # if (!is.na(graaUt[1])) {soyleFarger[which(rownames(andeler) %in% graaUt)] <- 'gray88'} + + oldpar_mar <- par()$mar + oldpar_fig <- par()$fig + oldpar_oma <- par()$oma + + cexgr <- skriftStr + grtxt <- colnames(plotdata) + + vmarg <- max(0, strwidth(grtxt, units='figure', cex=cexgr)*0.75) + par('fig'=c(vmarg, 1, 0, 1)) + par('mar'=c(5.1, 4.1, 5.1, 9.1)) + par('oma'=c(0,1,NutvTxt,0)) + + if (inkl_konf) { + # par('mar'=c(5.1, 4.1, 5.1, 2.1)) + if (!pst_kolonne) {par('mar'=c(5.1, 4.1, 5.1, 2.1)) } + xmax <- min(max(KInew, max(andeler[, 3:4], na.rm = T), na.rm = T)*1.15,100) + } else { + xmax <- min(100, 1.15*max(andeler[, 3:4], na.rm = T)) + } + + plotdata<- cbind(matrix(rep(NA, nlevels(andeler[[2]])), + nrow = nlevels(andeler[[2]]), ncol = lbunn), + plotdata, matrix(rep(NA, nlevels(andeler[[2]])), nrow = nlevels(andeler[[2]]), ncol = ltop)) + + grtxt <- colnames(plotdata) + # KInew <- rbind(rep(NA, nlevels(andeler[[2]])), rep(NA, nlevels(andeler[[2]])), KInew, + # rep(NA, nlevels(andeler[[2]]))) + KInew <- rbind(matrix(c(NA,NA), nrow=nlevels(andeler[[2]])*lbunn, ncol = 2), KInew, + matrix(c(NA,NA), nrow=nlevels(andeler[[2]])*ltop, ncol = 2)) + + ypos <- barplot( plotdata, beside=T, las=1, + xlim=c(0,xmax), + names.arg=rep('',dim(plotdata)[2]), + horiz=T, axes=F, space=c(0,0.3), + col=soyleFarger, border=NA, xlab = 'Andel (%)') # '#96BBE7' + + fargerMaalNiva <- c('aquamarine3','#fbf850', 'red') + ymax <- max(ypos[, lbunn+dim(andeler)[1]/ngrvar2level])+1 + + if (maal > minstekrav & !is.na(maal) & !is.na(minstekrav)) { + rect(xleft=minstekrav, ybottom=1, xright=maal, ytop=ymax, col = fargerMaalNiva[2], border = NA) + rect(xleft=maal, ybottom=1, xright=min(xmax, 100), ytop=ymax, col = fargerMaalNiva[1], border = NA)} + if (maal < minstekrav & !is.na(maal) & !is.na(minstekrav)) { + rect(xleft=maal, ybottom=1, xright=minstekrav, ytop=ymax, col = fargerMaalNiva[2], border = NA) + rect(xleft=0, ybottom=1, xright=maal, ytop=ymax, col = fargerMaalNiva[1], border = NA)} + if (!is.na(maal) & is.na(minstekrav) & maalretn=='lav') { + # rect(xleft=maal, ybottom=0, xright=minstekrav, ytop=max(ypos)+0.4, col = fargerMaalNiva[2], border = NA) + rect(xleft=0, ybottom=1, xright=maal, ytop=ymax, col = fargerMaalNiva[1], border = NA)} + if (!is.na(maal) & is.na(minstekrav) & maalretn=='hoy') { + # rect(xleft=maal, ybottom=0, xright=minstekrav, ytop=max(ypos)+0.4, col = fargerMaalNiva[2], border = NA) + rect(xleft=maal, ybottom=1, xright=min(xmax, 100), ytop=ymax, col = fargerMaalNiva[1], border = NA)} + + title(main = tittel) + ypos <- as.numeric(ypos) #as.vector(ypos) + yposOver <- ymax + 0.25*diff(ypos)[1] + if (!is.na(minstekrav)) { + lines(x=rep(minstekrav, 2), y=c(1, yposOver), col=fargerMaalNiva[2], lwd=2) + par(xpd=TRUE) + text(x=minstekrav, y=yposOver, labels = minstekravTxt, + pos = 4, cex=cexgr*0.6, srt = rotermaaltxt) + par(xpd=FALSE) + } + if (!is.na(maal)) { + lines(x=rep(maal, 2), y=c(1, yposOver), col=fargerMaalNiva[1], lwd=2) + barplot( plotdata, beside=T, las=1, + xlim=c(0,xmax), + names.arg=rep('',dim(plotdata)[2]), + horiz=T, axes=F, space=c(0,0.3), + col=soyleFarger, border=NA, xlab = 'Andel (%)', add=TRUE) + par(xpd=TRUE) + text(x=maal, y=yposOver, labels = maalTxt, pos = 4, cex=cexgr*0.6, srt = rotermaaltxt) #paste0(maalTxt,maal,'%') + par(xpd=FALSE) + } + if (inkl_konf){ + arrows(x0 = KInew[,1], y0 = ypos, x1 = KInew[,2], y1 = ypos, + length=0.5/max(ypos), code=3, angle=90, lwd=1.8, col='gray') + legend('bottom', cex=0.9*cexgr, bty='n', + lwd=1.8, lty = 1, pt.cex=1.8, col='gray', + legend=paste0('Konfidensintervall ', names(N)[dim(N)[2]])) + } + + axis(1,cex.axis=0.9) + grtxt_bold <- grtxt + grtxt_bold[which(substr(grtxt_bold, 1, 5) =='Norge')] <- + paste0("$\\textbf{", grtxt_bold[which(substr(grtxt_bold, 1, 5) =='Norge')], "}") + ypos_middel <- + matrix(ypos, + ncol = dim(plotdata)[2], nrow = ngrvar2level) %>% + colMeans() + mtext(latex2exp::TeX(grtxt_bold), side=2, line=1.7, las=1, at=ypos_middel, col=1, cex=cexgr) + + tmpN <- data.frame(ypos = ypos, + tekst = c(rep(NA,lbunn*ngrvar2level), + pst_txt, rep(NA,ltop*ngrvar2level))) %>% + filter(!is.na(tekst)) %>% + bind_cols(N[,4]) + mtext(tmpN[[3]], side=2, line=0.4, las=1, at=tmpN[[1]], col=1, cex=cexgr*0.7) + mtext(paste0("N, ", names(N)[4]), side=2, line=0.4, las=1, + at=tail(tmpN[[1]], 1)+1, col=1, cex=cexgr*0.7) + + prikker <- c(1, 19, 2,3,4) + par(xpd=TRUE) + points(y=ypos, x=c(rep(NA,lbunn*ngrvar2level), andeler[[3]], + rep(NA,ltop*ngrvar2level)), + cex=pktStr, pch= prikker[1:ngrvar2level]) + par(xpd=FALSE) + + legend(legPlass, inset = c(inset, 0), cex=0.7*cexgr, bty='n', + lwd=rep(NA, 2*ngrvar2level), + pch=c(rev(prikker[1:ngrvar2level]),rep(15, ngrvar2level)), + pt.cex=c(rep(1.2, ngrvar2level), rep(1.8, ngrvar2level)), + col=c(rep('black', ngrvar2level),rev(soyleFarger)), + legend=paste(rep(names(andeler)[3:4], each=ngrvar2level), + rev(levels(andeler[[Grvar2]])), sep=', '), ncol = 2, xpd=TRUE) + + aux <- data.frame(ypos = ypos, + tekst = c(rep(NA,lbunn*ngrvar2level), + pst_txt, rep(NA,ltop*ngrvar2level))) %>% + filter(!is.na(tekst), + tekst != dg_tekst) + aux2 <- data.frame(ypos = (ypos + c(tail(ypos,-1), head(ypos, 1)))/2, + tekst = c(rep(NA,lbunn*ngrvar2level), + pst_txt, rep(NA,ltop*ngrvar2level))) %>% + filter(!is.na(tekst)) %>% + bind_cols(andeler[,"Sykehusnavn"]) %>% + filter(ypos == min(ypos), .by = c(tekst, Sykehusnavn)) %>% + filter(tekst == dg_tekst) %>% select(ypos, tekst) %>% + bind_rows(aux) + + if (pst_kolonne) { + mtext( aux2$tekst, side=4, line=7.5, las=1, at=aux2$ypos, col=1, cex=cexgr*0.75, adj = 1) + mtext( c(rep(NA,lbunn*ngrvar2level), + pst_txt_prikk, rep(NA,ltop*ngrvar2level)), side=4, line=3.5, las=1, + at=ypos, col=1, cex=cexgr*0.75, adj = 1) + mtext( names(andeler)[3], side=4, line=3.5, las=1, at=max(ypos), col=1, cex=cexgr*0.75, adj = 1, font = 2) + mtext( names(andeler)[4], side=4, line=7.5, las=1, at=max(ypos), col=1, cex=cexgr*0.75, adj = 1, font = 2) + } else { + text(x=0, y=aux2$ypos, labels = aux2$tekst, cex=0.75, pos=4) + if (prikktall) {text(x=c(rep(NA,lbunn*ngrvar2level), andeler[[3]], + rep(NA,ltop*ngrvar2level)), y=ypos, + labels = c(rep(NA,lbunn*ngrvar2level), + pst_txt_prikk, rep(NA,ltop*ngrvar2level)), + cex=0.75, pos=4, xpd = T)} + } + + #Tekst som angir hvilket utvalg som er gjort + mtext(utvalgTxt, side=3, las=1, cex=0.9, adj=0, col=farger[4], line=(NutvTxt-1):0, outer=TRUE) + + par('mar'= oldpar_mar) + par('fig'= oldpar_fig) + par('oma'= oldpar_oma) + # if (outfile != '') {dev.off()} + + # if (outfile != '') {savePlot(outfile, type=substr(outfile, nchar(outfile)-2, nchar(outfile)))} + if ( outfile != '') {dev.off()} + + # Utdata$utvalgTxt <- utvalgTxt + # Utdata$tittel <- tittel + # return(invisible(Utdata)) + } + +#' Plot andeler i angitt format +#' +#' Denne funksjonen beregner og plotter andeler av gitt variabel over +#' valgt grupperingsvariabel +#' +#' @inheritParams FigAndeler +#' @return Et plot av andeler over tre år +#' +#' @export +#' +norgastIndikator_nasjonal <- + function(RegData, valgtVar, tittel='', width=800, height=700, + decreasing=F, terskel=10, minstekrav = NA, + maal = NA, skriftStr=1.3, pktStr=1.4, legPlass='top', minstekravTxt='Akseptabelt', + maalTxt='Mål', graaUt=NA, inkl_konf=F, datoFra='2014-01-01', datoTil='2050-12-31', + minald=0, maxald=130, erMann=99, outfile='', preprosess=F, malign=99, elektiv=99, + hastegrad=99, BMI='', tilgang='', minPRS=0, maxPRS=2.2, ASA='', whoEcog= '', + forbehandling='', dagtid =99, hentData=0, op_gruppe='', ncsp='', maalretn='hoy', + lavDG='', lavDGtekst='Dekningsgrad < 60 %', hastegrad_hybrid=99, icd_kode='', + robotassiastanse=99, kun_ferdigstilte=TRUE, prikktall=TRUE, pst_kolonne=FALSE, + ny_anastomose=99, Grvar = "Robotassistanse") + { + + # RegData<-RegDataAll; + # valgtVar<-"Mort90"; tittel=''; width=800; height=700; + # decreasing=F; terskel=5; minstekrav = NA; icd_kode='' + # maal = NA; skriftStr=1.3; pktStr=1.4; legPlass='topleft'; minstekravTxt='Moderat \nmåloppnåelse'; + # maalTxt='Høy \nmåloppnåelse'; graaUt=NA; inkl_konf=T; datoFra='2014-01-01'; datoTil='2050-12-31'; + # minald=0; maxald=130; erMann=99; outfile=''; preprosess=F; malign=99; elektiv=99; + # hastegrad=99; BMI=''; tilgang=''; minPRS=0; maxPRS=2.2; ASA=''; whoEcog= ''; + # forbehandling=''; dagtid =99; hentData=0; op_gruppe=''; ncsp=''; maalretn='hoy'; + # lavDG=''; lavDGtekst='Dekningsgrad < 60 %'; hastegrad_hybrid=99; + # robotassiastanse=99; kun_ferdigstilte=TRUE; prikktall=TRUE; + # ltop=2; lbunn=1; inset=0; + # prikktall = FALSE; inkl_N = FALSE; ny_anastomose=99; + # minstekrav = 8; maal = 5; rotermaaltxt=45; lavDG=NA;pst_kolonne=T + # RegData$Malign<-factor(RegData$Malign, levels = 0:1, labels = c("Benign", "Malign")) + # Grvar = "maligndiag"; + + + RegData <- RegData[RegData$Aar > max(RegData$Aar)-3, ] # behold bare siste 3 år + RegData$Grvar <- RegData[ , Grvar] + RegData <- RegData %>% dplyr::filter(!is.na( !! sym(Grvar ))) + + ## 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, tilgang=tilgang, minPRS=minPRS, maxPRS=maxPRS, dagtid = dagtid, + ASA=ASA, whoEcog=whoEcog, forbehandling=forbehandling, malign=malign, + op_gruppe=op_gruppe, ncsp=ncsp, hastegrad_hybrid=hastegrad_hybrid, + robotassiastanse=robotassiastanse, kun_ferdigstilte=kun_ferdigstilte, + icd_kode=icd_kode, ny_anastomose=ny_anastomose) + RegData <- NorgastUtvalg$RegData + utvalgTxt <- NorgastUtvalg$utvalgTxt + NutvTxt <- length(utvalgTxt) + + ## Preparer variabler for fremstilling i figur + PlotParams <- NorgastPrepVar(RegData=RegData, valgtVar=valgtVar) + RegData <- PlotParams$RegData + if (tittel[1] == '') { + tittel <- paste0('Andel ', PlotParams$VarTxt) + } + if (inkl_konf) {tittel <- c(tittel, 'inkl. 95% konf. int.')} + PlotParams$RegData <- NA + + if ("Variabel" %in% names(RegData)){ + Tabell <- RegData %>% dplyr::summarise(antall = sum(Variabel), + N = dplyr::n(), + .by = c(Grvar, Aar)) + } else { + Tabell <- RegData %>% dplyr::summarise(antall = sum(!! sym(valgtVar )), + N = dplyr::n(), + .by = c(Grvar, Aar)) + } + AntTilfeller <- Tabell[, -4] %>% pivot_wider(names_from = Aar, + values_from = antall, + id_expand = TRUE, + names_sort = TRUE, + values_fill = 0) %>% + as.data.frame() + rownames(AntTilfeller)<- AntTilfeller$Grvar + AntTilfeller <- AntTilfeller[, -1] + AntTilfeller[,paste0(names(AntTilfeller)[1], '-', names(AntTilfeller)[dim(AntTilfeller)[2]])] <- + rowSums(AntTilfeller, na.rm = T) + AntTilfeller <- AntTilfeller[, (dim(AntTilfeller)[2]-1):dim(AntTilfeller)[2]] + + N <- Tabell[, -3] %>% pivot_wider(names_from = Aar, + values_from = N, + id_expand = TRUE, + names_sort = TRUE, + values_fill = 0) %>% + as.data.frame() + rownames(N)<- N$Grvar + N <- N[, -1] + N[,paste0(names(N)[1], '-', names(N)[dim(N)[2]])] <- + rowSums(N, na.rm = T) + N <- N[, (dim(N)[2]-1):dim(N)[2]] + + andeler <- AntTilfeller/N * 100 + + if (!decreasing) { + andeler[N < terskel] <- -1 + } else { + andeler[N < terskel] <- max(andeler[, dim(andeler)[2]])+1 + } + andeler[rownames(andeler) %in% lavDG, ] <- NA + rekkefolge <- order(andeler[[dim(andeler)[2]]], decreasing = decreasing, na.last = F) + + andeler <- andeler[rekkefolge, ] + N <- N[rekkefolge, ] + andeler[N < terskel] <- NA + andeler[N[, dim(andeler)[2]] minstekrav & !is.na(maal) & !is.na(minstekrav)) { + rect(xleft=minstekrav, ybottom=1, xright=maal, ytop=max(ypos)-1.6, col = fargerMaalNiva[2], border = NA) + rect(xleft=maal, ybottom=1, xright=min(xmax, 100), ytop=max(ypos)-1.6, col = fargerMaalNiva[1], border = NA)} + if (maal < minstekrav & !is.na(maal) & !is.na(minstekrav)) { + rect(xleft=maal, ybottom=1, xright=minstekrav, ytop=max(ypos)-1.6, col = fargerMaalNiva[2], border = NA) + rect(xleft=0, ybottom=1, xright=maal, ytop=max(ypos)-1.6, col = fargerMaalNiva[1], border = NA)} + if (!is.na(maal) & is.na(minstekrav) & maalretn=='lav') { + # rect(xleft=maal, ybottom=0, xright=minstekrav, ytop=max(ypos)+0.4, col = fargerMaalNiva[2], border = NA) + rect(xleft=0, ybottom=1, xright=maal, ytop=max(ypos)-1.6, col = fargerMaalNiva[1], border = NA)} + if (!is.na(maal) & is.na(minstekrav) & maalretn=='hoy') { + # rect(xleft=maal, ybottom=0, xright=minstekrav, ytop=max(ypos)+0.4, col = fargerMaalNiva[2], border = NA) + rect(xleft=maal, ybottom=1, xright=min(xmax, 100), ytop=max(ypos)-1.6, col = fargerMaalNiva[1], border = NA)} + + barplot( t(andeler[,dim(andeler)[2]]), beside=T, las=1, + names.arg=rep('',dim(andeler)[1]), + horiz=T, axes=F, + col=soyleFarger, border=NA, xlab = 'Andel (%)', add=TRUE) + + # title(main = tittel, outer=T) + title(main = tittel, xpd = TRUE) + ypos <- as.numeric(ypos) #as.vector(ypos) + yposOver <- max(ypos)-2 + 0.5*diff(ypos)[1] + if (!is.na(minstekrav)) { + lines(x=rep(minstekrav, 2), y=c(-1, yposOver), col=fargerMaalNiva[2], lwd=2) + par(xpd=TRUE) + text(x=minstekrav, y=yposOver, labels = minstekravTxt, + pos = 4, cex=cexgr*0.65, srt = 90) + par(xpd=FALSE) + } + if (!is.na(maal)) { + lines(x=rep(maal, 2), y=c(-1, yposOver), col=fargerMaalNiva[1], lwd=2) + barplot( t(andeler[, dim(andeler)[2]]), beside=T, las=1, + names.arg=rep('',dim(andeler)[1]), + horiz=T, axes=F, + col=soyleFarger, border=NA, xlab = 'Andel (%)', add=TRUE) + par(xpd=TRUE) + text(x=maal, y=yposOver, labels = maalTxt, pos = 4, cex=cexgr*0.65, srt = 90) #paste0(maalTxt,maal,'%') + par(xpd=FALSE) + } + if (inkl_konf){ + arrows(x0 = KI[1,], y0 = ypos, x1 = KI[2,], y1 = ypos, + length=0.5/max(ypos), code=3, angle=90, lwd=1.8, col='gray') #, col=farger[1]) + legend('bottom', cex=0.9*cexgr, bty='n', + lwd=1.8, lty = 1, pt.cex=1.8, col='gray', + legend=paste0('Konfidensintervall ', names(N)[dim(N)[2]])) + } + + axis(1,cex.axis=0.9) + grtxt_bold <- rownames(andeler) + grtxt_bold[which(substr(grtxt_bold, 1, 5) =='Norge')] <- + paste0("$\\textbf{", grtxt_bold[which(substr(grtxt_bold, 1, 5) =='Norge')], "}") + mtext(latex2exp::TeX(grtxt_bold), side=2, line=0.2, las=1, at=ypos, col=1, cex=cexgr) + antAar <- dim(andeler)[2] + + if (dim(andeler)[2]==2) { + if (!inkl_konf){ + mtext( c(N[,1], names(N)[1]), side=4, line=2.5, las=1, at=ypos, col=1, cex=cexgr, adj = 1) + mtext( c(N[,2], names(N)[2]), side=4, line=5.5, las=1, at=ypos, col=1, cex=cexgr, adj = 1) + mtext( 'N', side=4, line=4.0, las=1, at=max(ypos)+diff(ypos)[1], col=1, cex=cexgr, adj = 1) + } + # else { + # mtext( '(N)', side=2, line=0.3, las=1, at=max(ypos)+diff(ypos)[1], col=1, cex=cexgr, adj = 1) + # } + + par(xpd=TRUE) + points(y=ypos, x=andeler[,1],cex=pktStr, pch= 19) + par(xpd=FALSE) + # mtext( 'Boområde/opptaksområde', side=2, line=9.5, las=0, col=1, cex=cexgr) + if (legPlass=='nede'){ + legend('bottomright', cex=0.9*cexgr, bty='n', #bg='white', box.col='white', + lwd=c(NA,NA), pch=c(19,15), pt.cex=c(1.2,1.8), col=c('black',farger[3]), + legend=names(N), ncol = 1)} + if (legPlass=='top'){ + legend('top', cex=0.9*cexgr, bty='n', #bg='white', box.col='white',y=max(ypos), + lwd=c(NA,NA), pch=c(19,15), pt.cex=c(1.2,1.8), col=c('black',farger[3]), + legend=names(N), ncol = dim(andeler)[2])} + if (legPlass=='topleft'){ + legend('topleft', cex=0.9*cexgr, bty='n', #bg='white', box.col='white',y=max(ypos), + lwd=c(NA,NA), pch=c(19,15), pt.cex=c(1.2,1.8), col=c('black',farger[3]), + legend=names(N), ncol = dim(andeler)[2])} + if (legPlass=='topright'){ + legend('topright', cex=0.9*cexgr, bty='n', #bg='white', box.col='white',y=max(ypos), + lwd=c(NA,NA), pch=c(19,15), pt.cex=c(1.2,1.8), col=c('black',farger[3]), + legend=names(N), ncol = dim(andeler)[2])} + # legend(0, yposOver+ diff(ypos)[1], yjust=0, xpd=TRUE, cex=0.9, bty='n', #bg='white', box.col='white',y=max(ypos), + # lwd=c(NA,NA), pch=c(19,15), pt.cex=c(1.2,1.8), col=c('black',farger[3]), + # legend=names(N), ncol = dim(andeler)[2]) + + } else { + if (!inkl_konf) { + mtext( c(N[,1], names(N)[1]), side=4, line=2.5, las=1, at=ypos, col=1, cex=cexgr, adj = 1) + mtext( c(N[,2], names(N)[2]), side=4, line=5, las=1, at=ypos, col=1, cex=cexgr, adj = 1) + mtext( c(N[,3], names(N)[3]), side=4, line=7.5, las=1, at=ypos, col=1, cex=cexgr, adj = 1) + mtext( 'N', side=4, line=5.0, las=1, at=max(ypos)+diff(ypos)[1], col=1, cex=cexgr, adj = 1) + } + # else { + # mtext( '(N)', side=2, line=0.3, las=1, at=max(ypos)+diff(ypos)[1], col=1, cex=cexgr, adj = 1) + # } + + par(xpd=TRUE) + points(y=ypos, x=andeler[,1],cex=pktStr) #'#4D4D4D' + points(y=ypos, x=andeler[,2],cex=pktStr,pch= 19) + par(xpd=FALSE) + if (legPlass=='nede'){ + legend(x=82, y=ypos[2]+1 ,xjust=0, cex=cexgr, bty='n', #bg='white', box.col='white', + lwd=c(NA,NA,NA), pch=c(1,19,15), pt.cex=c(1.2,1.2,1.8), col=c('black','black',farger[3]), + legend=names(N) )} + if (legPlass=='top'){ + legend('top', cex=0.9*cexgr, bty='n', #bg='white', box.col='white',y=max(ypos), + lwd=c(NA,NA,NA), pch=c(1,19,15), pt.cex=c(1.2,1.2,1.8), col=c('black','black',farger[3]), + legend=names(N), ncol = dim(andeler)[2]) + # legend(0, yposOver+ diff(ypos)[1], yjust=0, xpd=TRUE, cex=0.9, bty='n', #bg='white', box.col='white',y=max(ypos), + # lwd=c(NA,NA,NA), pch=c(1,19,15), pt.cex=c(1.2,1.2,1.8), col=c('black','black',farger[3]), + # legend=names(N), ncol = dim(andeler)[2]) # + } + } + + if (prikktall) { + text(x=0, y=ypos, labels = pst_txt, cex=0.75, pos=4)# + text(x=andeler[,1], y=ypos, labels = pst_txt_prikk, cex=0.75, pos=4, xpd = T)} + + if (pst_kolonne) { + mtext( pst_txt_prikk, side=4, line=3.5, las=1, at=ypos, col=1, cex=cexgr*0.75, adj = 1) + mtext( pst_txt, side=4, line=7.5, las=1, at=ypos, col=1, cex=cexgr*0.75, adj = 1) + mtext( names(N)[1], side=4, line=3.5, las=1, at=max(ypos), col=1, cex=cexgr*0.75, adj = 1, font = 2) + mtext( names(N)[2], side=4, line=7.5, las=1, at=max(ypos), col=1, cex=cexgr*0.75, adj = 1, font = 2) + } + + #Tekst som angir hvilket utvalg som er gjort + # mtext(utvalgTxt, side=3, las=1, cex=0.9, adj=0, col=farger[1], line=c(5+0.8*((length(utvalgTxt)-1):0))) + mtext(utvalgTxt, side=3, las=1, cex=0.9, adj=0, col=farger[1], line=(NutvTxt-1):0, outer=TRUE) + + par('mar'= oldpar_mar) + par('fig'= oldpar_fig) + par('oma'= oldpar_oma) + # if (outfile != '') {dev.off()} + + # if (outfile != '') {savePlot(outfile, type=substr(outfile, nchar(outfile)-2, nchar(outfile)))} + if ( outfile != '') {dev.off()} + + # Utdata$utvalgTxt <- utvalgTxt + # Utdata$tittel <- tittel + # return(invisible(Utdata)) + } + + + + diff --git a/R/norgast_hj_funk.R b/R/norgast_hj_funk.R index 8d2fbaf..bf7a38d 100644 --- a/R/norgast_hj_funk.R +++ b/R/norgast_hj_funk.R @@ -93,11 +93,9 @@ dobbelreg <- function(RegData, skjemaoversikt, usrRole = 'LU', reshID) { flere_sammedato <- flere_sammedato[order(flere_sammedato$OperasjonsDato, flere_sammedato$PasientID, decreasing = T), ] if (usrRole != 'SC') { flere_sammedato <- flere_sammedato[flere_sammedato$AvdRESH == reshID, ] - # flere_sammedato <- flere_sammedato %>% - # dplyr::select(-c(OpprettetAv, SistLagretAv)) # Kommenteres inn når brukernavn er ordnet } - flere_sammedato <- flere_sammedato %>% - dplyr::select(-c(OpprettetAv, SistLagretAv)) # Foreløpig variant i påvente av at brukernavn fikses + # flere_sammedato <- flere_sammedato %>% + # dplyr::select(-c(OpprettetAv, SistLagretAv)) # Foreløpig variant i påvente av at brukernavn fikses return(flere_sammedato) } diff --git a/doc/.gitignore b/doc/.gitignore index c5d0b89..6f08368 100644 --- a/doc/.gitignore +++ b/doc/.gitignore @@ -115,3 +115,5 @@ traktplotlek.R frekvens_norgast.csv inflames.csv tmp.R +Rplot.png +kladd2.R diff --git a/doc/BestillingerOgUtleveringer.R b/doc/BestillingerOgUtleveringer.R index 581b897..2d8a662 100644 --- a/doc/BestillingerOgUtleveringer.R +++ b/doc/BestillingerOgUtleveringer.R @@ -3,25 +3,292 @@ library(norgast) library(tidyverse) rm(list=ls()) + +###### Galler Ullevål 2024-08-20 ########################################## +RegData <- norgast::NorgastHentRegData() +RegData_proc <- norgast::NorgastPreprosess(RegData) + + +galler1 <- RegData %>% filter(substr(toupper(Hovedoperasjon), 1,2) == "JK") %>% + summarise(N = n(), .by = AvdRESH) +galler2 <- RegData %>% filter(substr(toupper(Hovedoperasjon), 1,2) == "JK") %>% + summarise(N = n(), .by = SykehusNavn) + + +###### DG-analysetall NPR 2024-04-30 ########################################## +RegData <- norgast::NorgastHentRegData() +RegData <- norgast::NorgastPreprosess(RegData) +fid <- read.csv2("~/mydata/norgast/NoRGast_koblingstabell_datadump_04.04.2024.csv", + colClasses = c("integer", "character")) + +RegData <- RegData[RegData$Op_gr %in% 1:8 & RegData$Aar == 2023, ] + + +RegData <- RegData[,c("PasientID", "ForlopsID", "AvdRESH", "Sykehusnavn", + "OperasjonsDato", "Operasjonsgrupper", "Hovedoperasjon", + "Tilgang", "Robotassistanse")] + +fid <- fid[fid$PID %in% RegData$PasientID, ] +names(fid) <- c("PasientID", "Fnr") + +write.csv2(RegData, "~/mydata/norgast/aktivitetsdata_norgast_2023.csv", + row.names = F, fileEncoding = 'Latin1') +write.csv2(fid, "~/mydata/norgast/kobling_norgast_2023.csv", + row.names = F, fileEncoding = 'Latin1') + + + +##### Uttrekk fnr Kristoffer 05.04.2024 ########################## +allevarnum <- read.csv2("~/mydata/norgast/AlleVarNum_NORGAST2024-04-02 11_51_13.csv", + fileEncoding = "Latin1") +forlop <- read.csv2("~/mydata/norgast/ForlopsOversikt_NORGAST2024-04-02 11_52_26.csv", + fileEncoding = "Latin1") +kobling_hnikt <- read.csv2("~/mydata/norgast/NoRGast_koblingstabell_datadump_04.04.2024.csv", + colClasses = c("integer", "character")) + +pid <- merge(allevarnum, forlop, by = "ForlopsID") %>% + dplyr::filter(substr(SykehusNavn, 1,3) == "OUS", + tolower(substr(Hovedoperasjon, 1,3)) == "jjb", + tolower(substr(Hoveddiagnose, 1,4)) == "c221", + OpDato >= "2019-01-01") %>% + dplyr::filter(OpDato == first(OpDato), .by = PasientID) %>% + dplyr::select(ForlopsID, PasientID) %>% + merge(kobling_hnikt, by.x = "PasientID", by.y = "PID") %>% + dplyr::select(SSN) + +openxlsx::write.xlsx(pid, "~/mydata/norgast/pas_ous_jjb.xlsx") + +##### Uttrekk alder Kristoffer 03.04.2024 ########################## + +forlop <- readr::read_csv2("~/mydata/norgast/ForlopsOversikt_NORGAST2024-04-02 11_52_26.csv") +allevarnum <- readr::read_csv2("~/mydata/norgast/AlleVarNum_NORGAST2024-04-02 11_51_13.csv") +alderfil <- readxl::read_xlsx("~/mydata/norgast/Alder ved operasjonstidspunkt.xlsx", + sheet = 1) + +# forlop$alder <- lubridate::interval(forlop$Fodselsdato, forlop$HovedDato) / lubridate::years(1) + +tmp <-merge(alderfil, forlop[,c("ForlopsID", "PasientAlder")], by = "ForlopsID") +tmp$`Alder på operasjonstidspunkt` <- floor(tmp$PasientAlder) + +openxlsx::write.xlsx(tmp[,c("ForlopsID", "Alder på operasjonstidspunkt")], + "~/mydata/norgast/AlderOptid.xlsx") + +##### Uttrekk Søreide, pankreas 2016-2022, 11.03.2024 ########################## +varnavn_kobl <- data.frame( + kol = c("mce.MCEID AS ForlopsID", + "mce.PATIENT_ID AS PasientId", + "mce.CENTREID AS AvdRESH", + "patient.SSN AS Fodselsnummer", + "patient.DECEASED AS Avdod", + "patient.DECEASED_DATE AS AvdodDato", + "centre.CENTRENAME AS SenterNavn", + "registration.PREVIOUS_WEIGHT AS Vekt6MndFoer", + "registration.PREVIOUS_WEIGHT_MISS AS Vekt6MndFoerUkjent", + "registration.ADMISSION_WEIGHT AS VektVedInnleggelse", + "registration.ADMISSION_WEIGHT_MISS AS VektVedInnleggelseUkjent", + "registration.HEIGHT AS Hoyde", + "registration.HEIGHT_MISS AS HoydeUkjent", + "registration.BMI AS BMI", + "registration.BMI_CATEGORY AS BMIKategori", + "registration.WEIGHTLOSS AS VekttapProsent", + "registration.DIABETES AS MedDiabetes", + "registration.CHEMOTHERAPY_ONLY AS KunCytostatika", + "registration.RADIATION_THERAPY_ONLY AS KunStraaleterapi", + "registration.CHEMORADIOTHERAPY AS KjemoRadioKombo", + "registration.WHO_ECOG_SCORE AS WHOECOG", + "registration.ALBUMIN AS Albumin", + "registration.CRP AS CRP", + "registration.GLASGOW_SCORE AS GlasgowScore", + "registration.MODIFIED_GLASGOW_SCORE AS ModGlasgowScore", + "registration.ASA AS ASA", + "registration.LUNG_DISEASE AS Lungesykdom", + "registration.HEART_DISEASE AS Hjertesykdom", + "registration.URGENCY AS Hastegrad", + "registration.ANESTHESIA_START AS AnestesiStartKl", + "registration.PRS_SCORE AS PRSScore", + "registration.OPERATION_DATE AS OpDato", + "registration.NCSP AS Hovedoperasjon", + "registration.ABLATION AS LeverAblasjon", + "registration.RECONSTRUCTION AS Rekonstruksjon", + "registration.RECONSTRUCTION_TYPE AS Rekonstruksjonstype", + "registration.ANASTOMOSIS_LEVEL AS Anastomoseniva", + "registration.ANASTOMOSIS AS NyAnastomose", + "registration.ANAL_GUARD_DISTANCE AS AvstandAnalVerge", + "registration.ANAL_GUARD_DISTANCE_MISS AS AvstandAnalVergeIkkeAkt", + "registration.TATME AS TaTME", + "registration.OSTOMY AS NyStomi", + "registration.ABDOMINAL_ACCESS AS Tilgang", + "registration.ROBOTASSISTANCE AS Robotassistanse", + "registration.THORAX_ACCESS AS ThoraxTilgang", + "registration.RELAPAROTOMY AS ReLapNarkose", + "registration.RELAPAROTOMY_YES AS ViktigsteFunn", + "registration.FINDINGS_SPESIFISER AS FunnSpesifiser", + "registration.RELAPAROTOMY_NO AS AnnenOpIAnestsi", + "registration.INTERVENTION_WITHOUT_ANESTHESIA AS IntUtenAnestesi", + "registration.PERCUTANEOUS_DRAINAGE AS PerkDrenasje", + "registration.HIGH_AMYLASE_CONCENTRATION AS HoyAmylaseKons", + "registration.LEAK_INTERVENTION AS EndoInterLekkasje", + "registration.BLEED_INTERVENTION AS EndoInterBlod", + "registration.ANGIO_INTERVENTION AS AngioInter", + "registration.LIQUID_DRAINAGE AS KunDrenasje", + "registration.SINGLE_ORGAN_FAILURE AS EttOrganSvikt", + "registration.MULTI_ORGAN_FAILURE AS MultiOrganSvikt", + "registration.IN_HOUSE_DEATH AS DodUnderOpphold", + "registration.IN_HOUSE_DEATH_DATE AS DodUnderOppholdDato", + "registration.ACCORDION_SCORE AS AccordionGrad", + "registration.DISCHARGE_DATE AS UtskrivelseDato", + "registration.BED_DAYS AS PostopLiggedogn", + "registration.ICD10 AS Hoveddiagnose", + "registration.DISCHARGE_TO AS UtskrevetTil", + "registration.STATUS AS RegistreringStatus", + "readmission.OWN_INSTITUTION AS ReinnlEgenInst", + "readmission.OTHER_INSTITUTIONS AS ReinnlAndreInst", + "readmission.CONTROL AS AktivKontroll", + "readmission.PHYSICAL_CONTROL AS FysiskKontroll", + "readmission.PHONE_CONTROL AS TelefonKontroll", + "readmission.RELAPAROTOMY AS OppfReLapNarkose", + "readmission.RELAPAROTOMY_YES AS OppfViktigsteFunn", + "readmission.FINDINGS_SPESIFISER AS OppfFunnSpesifiser", + "readmission.RELAPAROTOMY_NO AS OppfAnnenOpIAnestsi", + "readmission.INTERVENTION_WITHOUT_ANESTHESIA AS OppfIntUtenAnestesi", + "readmission.PERCUTANEOUS_DRAINAGE AS OppfPerkDrenasje", + "readmission.HIGH_AMYLASE_CONCENTRATION AS OppfHoyAmylaseKons", + "readmission.LEAK_INTERVENTION AS OppfEndoInterLekkasje", + "readmission.BLEED_INTERVENTION AS OppfEndoInterBlod", + "readmission.ANGIO_INTERVENTION AS OppfAngioInter", + "readmission.LIQUID_DRAINAGE AS OppfKunDrenasje", + "readmission.SINGLE_ORGAN_FAILURE AS OppfEttOrganSvikt", + "readmission.MULTI_ORGAN_FAILURE AS OppfMultiOrganSvikt", + "readmission.IN_HOUSE_DEATH AS OppfDodUnderOpphold", + "readmission.IN_HOUSE_DEATH_DATE AS OppfDodUnderOppholdDato", + "readmission.ACCORDION_SCORE AS OppfAccordionGrad", + "readmission.STATUS AS OppfStatus")) %>% + tidyr::separate(col="kol", into=c("dbnavn", "rapporteket"), sep = " AS ") %>% + dplyr::mutate(dbnavn = toupper(dbnavn)) +# dplyr::as_tibble() %>% +# tidyr::separate(col="dbnavn", into=c("skjema", "dbnavn"), sep = "\\." ) + +utlevernavn <- readr::read_csv2("~/mydata/norgast/utlevering_soreide.csv") +utlevernavn <- readr::read_csv2("~/mydata/norgast/varnavn_utlevering_v2.csv", + locale = locale(encoding = "Latin1")) +utlevernavn <- utlevernavn %>% dplyr::mutate(variabel_id = sub("_", ".", variabel_id)) + +utlevernavn <- utlevernavn$variabel_id %>% unique() +rappnavn_utlevering <- varnavn_kobl %>% + dplyr::filter(dbnavn %in% utlevernavn) + +RegData <- norgast::NorgastHentRegData() +RegData <- norgast::NorgastPreprosess(RegData) +kobling <- readr::read_csv2("~/mydata/norgast/NoRGast_koblingstabell_datadump_26.01.2024.csv") + +utlevering <- RegData %>% + dplyr::filter(Aar %in% 2016:2022 & + ncsp_lowercase %in% c("jlc10", "jlc11", "jlc30", "jlc31")) %>% + dplyr::select(c(rappnavn_utlevering$rapporteket, + "PasientID", "PasientKjonn", "AvdRESH", "SykehusNavn", "ForlopsID", "Alder")) %>% + merge(kobling, by.x = "PasientID", by.y = "PID") %>% + mutate(fdato = paste0(substr(SSN, 1,2), ".", substr(SSN, 3,4), ".", substr(SSN, 5,6))) %>% + select(-"SSN") %>% + mutate(ncsp_kode = str_extract(Hovedoperasjon, "^[^\\s]+"), + ncsp_tekst = str_extract(Hovedoperasjon, "\\s.+"), + icd10_kode = str_extract(Hoveddiagnose, "^[^\\s]+"), + icd10_tekst = str_extract(Hoveddiagnose, "\\s.+")) + +openxlsx::write.xlsx(utlevering, "~/mydata/norgast/textbook_outcomes_pancreas_mars2024.xlsx") +write.csv2(utlevering, "~/mydata/norgast/textbook_outcomes_pancreas_mars2024.csv", + row.names = F, fileEncoding = "Latin1", na = "") + + + + + #### FLORENCE 26.01.2024 ####################################################### +lct <- Sys.getlocale("LC_TIME"); Sys.setlocale("LC_TIME", "C") +diagnosedato <- read.csv2("~/mydata/norgast/Diagnosedato_NORGAST.csv") kobling_krg <- read.csv2("~/mydata/norgast/Nøkkel_NORGAST.csv", - colClasses = c("character", "integer")) + colClasses = c("character", "integer")) %>% + merge(diagnosedato, by = "PID") %>% + mutate(DIAGNOSEDATO = as.Date(DIAGNOSEDATO, "%d%b%Y")) +Sys.setlocale("LC_TIME", lct) + kobling_hnikt <- read.csv2("~/mydata/norgast/NoRGast_koblingstabell_datadump_26.01.2024.csv", colClasses = c("integer", "character")) %>% - merge(kobling_krg, by.x = "SSN", by.y = "FNR") -RegData <- norgast::NorgastHentRegData() + merge(kobling_krg, by.x = "SSN", by.y = "FNR", suffixes = c("_hnikt", "_krg")) + +RegData <- norgast::NorgastHentRegData() %>% + filter(BasisRegStatus == 1, + !is.na(Hovedoperasjon)) + varnavn <- readxl::read_xlsx("~/mydata/norgast/Klokeboken_med_RAPPORTEKNAVN_FLORENCE.xlsx", - sheet = 1) %>% + sheet = 1) %>% dplyr::filter(`Til Florence prosjektet` == "Ja") varnavn <- unique(varnavn$navn_i_rapporteket) -RegData <- RegData %>% dplyr::select(c(varnavn, "PasientID")) %>% - dplyr::filter(PasientID %in% kobling_hnikt$PID.x) +RegData <- RegData %>% dplyr::select(dplyr::all_of(c(varnavn, "AnestesiStartKl", + "PasientID", "ForlopsID"))) %>% + dplyr::filter(PasientID %in% kobling_hnikt$PID_hnikt) %>% + merge(kobling_hnikt, by.x = "PasientID", by.y = "PID_hnikt", all.x = TRUE) %>% + filter(OpDato >= DIAGNOSEDATO, + OpDato < "2023-01-01") %>% + mutate(Op_gr = case_when( + (substr(Hovedoperasjon, 1, 3) == "JFH" | + (substr(Hovedoperasjon, 1, 3) == "JFB" & + substr(Hovedoperasjon, 4, 5) %in% 20:64)) ~ "Kolon", + substr(Hovedoperasjon, 1, 3) == "JGB" ~ "Rektum", + substr(Hovedoperasjon, 1, 3) == "JCC" ~ "Øsofagus", + substr(Hovedoperasjon, 1, 3) %in% c("JDC", "JDD") ~ "Ventrikkel", + substr(Hovedoperasjon, 1, 3) == "JJB" ~ "Lever", + substr(Hovedoperasjon, 1, 3) %in% c("JLC10", "JLC11") ~ "Distale pankreas", + substr(Hovedoperasjon, 1, 3) %in% c("JLC30", "JLC31") ~ "Whipples", + substr(Hovedoperasjon, 1, 3) %in% c("JLC00","JLC20","JLC40", "JLC50", "JLC96") ~ "Andre pankreas" + ) + ) %>% + mutate(Op_gr = ifelse(is.na(Op_gr), "Ikke-obligatoriske", Op_gr)) %>% + filter(Op_gr != "Ikke-obligatoriske") + +# utlevering_kunkolonrektum <- RegData %>% +# filter(Op_gr %in% c("Kolon", "Rektum")) +# +# forste_kolorekt <- utlevering_kunkolonrektum %>% +# dplyr::summarise(min_dato = min(OpDato), +# .by = PasientID) +# +# ikkeinkluderteforlop <- RegData %>% filter(!(ForlopsID %in% utlevering_kunkolonrektum$ForlopsID)) %>% +# merge(forste_kolorekt, by = "PasientID", all.x = TRUE) +# +# +# ikkeinkludertepasienter <- RegData %>% filter(!(PasientID %in% utlevering_kunkolonrektum$PasientID)) +# inkludertepasienterekskluderteforlop <- RegData %>% +# filter((PasientID %in% utlevering_kunkolonrektum$PasientID) & !(ForlopsID %in% utlevering_kunkolonrektum$ForlopsID)) +# +# cat(paste0("Antall pasienter med obligatorisk kirurgi etter diagnosedato: ", +# length(unique(RegData$PasientID)), "\n", +# "Antall unike kolon/rektum-pasienter: ", +# length(unique(utlevering_kunkolonrektum$PasientID)), "\n", +# "Antall kolon/rektum-forløp: ", length(unique(utlevering_kunkolonrektum$ForlopsID)), "\n", +# "Antall pasienter uten kolon/rektum-kirurgi: ", +# length(unique(ikkeinkludertepasienter$PasientID)), "\n", +# "Antall forløp blant pasienter uten kolon/rektum-kirurgi: ", +# length(unique(ikkeinkludertepasienter$ForlopsID)), "\n", +# "Antall pasienter med annen kirurgi i tillegg til kolon/rektum: ", +# length(unique(inkludertepasienterekskluderteforlop$PasientID)), "\n", +# "Antall ikke-kolon/rektumforløp med pasienter som også har kolon/rektum-forløp: ", +# length(unique(inkludertepasienterekskluderteforlop$ForlopsID)))) +# +# table(ikkeinkludertepasienter$Op_gr, useNA = 'ifany') +# table(inkludertepasienterekskluderteforlop$Op_gr, useNA = 'ifany') + +RegData <- RegData %>% dplyr::select(-PasientID, -SSN) %>% + dplyr::relocate(PID = PID_krg) + +write.csv2(RegData, "~/mydata/norgast/florence_2024_02_28.csv", + row.names = F, fileEncoding = "Latin1", na = "") +openxlsx::write.xlsx(RegData, "~/mydata/norgast/florence_2024_02_28.xlsx") #### KRG 07.12.2023 ############################################################ kobling_krg <- haven::read_dta("~/mydata/norgast/nøkkeltilnorgast.dta") kobling_hnikt <- read.csv2("~/mydata/norgast/NoRGast_koblingstabell_datadump_07.12.2023.csv", - colClasses = c("integer", "character")) + colClasses = c("integer", "character")) felles <- merge(kobling_krg, kobling_hnikt, by.x = "FNR", by.y = "SSN", suffixes = c("", "_hnikt")) %>% @@ -398,7 +665,7 @@ utlevering <- RegData %>% mutate(fdato = paste0(substr(SSN, 1,2), ".", substr(SSN, 3,4), ".", substr(SSN, 5,6))) %>% select(-"SSN") - +openxlsx::write.xlsx(utlevering, "~/mydata/norgast/textbook_outcomes_pancreas.xlsx") write.csv2(utlevering, "~/mydata/norgast/textbook_outcomes_pancreas.csv", row.names = F, fileEncoding = "Latin1") ##### Uttrekk Kolecystectomier OUS 2023 ######################################## diff --git a/doc/indikatorerSykehusviser.R b/doc/indikatorerSykehusviser.R index 00c5efb..d1e9c85 100644 --- a/doc/indikatorerSykehusviser.R +++ b/doc/indikatorerSykehusviser.R @@ -9,7 +9,8 @@ RegData <- norgast::NorgastPreprosess(RegData) # RegData$AvdRESH[RegData$AvdRESH == 4204126] <- 4204084 # Tull med Ringerike RegDataOblig <- RegData[RegData$Op_gr %in% 1:8, ] -RegDataOblig <- RegDataOblig %>% filter(OpDato < "2023-07-01") ## Ad hoc, desemberpublisering +RegDataOblig <- RegData[RegData$Aar <= rap_aar, ] +# RegDataOblig <- RegDataOblig %>% filter(OpDato < "2023-07-01") ## Ad hoc, desemberpublisering ind <- c("norgast_saarruptur", "norgast_aktivkontroll", "norgast_vekt_reg", "norgast_avdoede_spiseroer", "norgast_avdoede_magesekk", @@ -24,73 +25,195 @@ for (ind_id in ind[-1]) { indikator <- dplyr::bind_rows(indikator, norgastBeregnIndikator(RegDataOblig, ind_id)$Indikator) } -### Tilbered dekningsgrad for sykehusviser - -dg_kobl_resh_orgnr <- data.frame(orgnr_sh = c(974733013, 974631407, 974557746, 974632535, 974795787, 974705788, 974633574, 974795639, - 974724960, 974795361, 993467049, 974631326, 974749025, 974706490, 974703300, 974633752, - 874632562, 974743272, 974795515, 974116804, 974747138, 974745569, 974795833, 974633191, - 974724774, 974631091, 974795477, 974329506, 974316285, 974631407, 974795558, - 974795574, 874716782, 974707152, 974631776, 974744570, 974747545, 974753898, 974795558, - 974795574, 974754118, 974589095, 974754118, 974747545), - resh = c(100353,4204126, 700922, 108355, 601225, 103091, 100100, 601231, 108354, 706264, 700413, - 4204082, 107440, 108162, 114271,4209222, 108357, 102939, 102141, 107505, 708761,4204500, - 101823, 102037, 701402, 100354, 102145,4211928, 100170, 4204084, 700840, 700841, - 103312,4205289, 974631776, 974744570, 974747545, 974753898, 974795558, 974795574, 4212917, - 106168, 4207594, 4216823)) - +indikator <- indikator %>% select(-Sykehus) +### Tilbered dekningsgrad for sykehusviser -dg_samlet <- read.csv2("~/mydata/norgast/dg_norgast.csv") +# dg_kobl_resh_orgnr <- +# data.frame(orgnr_sh = c(974733013, 974631407, 974557746, 974632535, 974795787, +# 974705788, 974633574, 974795639, 974724960, 974795361, +# 993467049, 974631326, 974749025, 974706490, 974703300, +# 974633752, 874632562, 974743272, 974795515, 974116804, +# 974747138, 974745569, 974795833, 974633191, 974724774, +# 974631091, 974795477, 974329506, 974316285, 974631407, +# 974795558, 974795574, 874716782, 974707152, 974631776, +# 974744570, 974747545, 974753898, 974795558, 974795574, +# 974754118, 974589095, 974754118, 974747545, 974744570), +# resh = c(100353,4204126, 700922, 108355, 601225, 103091, 100100, +# 601231, 108354, 706264, 700413, 4204082, 107440, 108162, +# 114271,4209222, 108357, 102939, 102141, 107505, 708761, +# 4204500, 101823, 102037, 701402, 100354, 102145,4211928, +# 100170, 4204084, 700840, 700841, 103312,4205289, 974631776, +# 974744570, 974747545, 974753898, 974795558, 974795574, +# 4212917, 106168, 4207594, 4216823, 100315)) +dg_kobl_resh_orgnr <- data.frame( + orgnr_sh = c(974733013, 974631407, 974557746, 974632535, + 974795787, 974705788, 974633574, 974795639, + 974724960, 974795361, 993467049, 974631326, + 974749025, 974706490, 974703300, 974633752, + 874632562, 974743272, 974795515, 974116804, + 974747138, 974745569, 974795833, 974633191, + 974724774, 974631091, 974795477, 974329506, + 974316285, 974753898, 974631407, 974795558, + 974795574, 874716782, 974707152, 974589095, + 974754118, 974747545, 983974732), + resh = c(100353,4204126, 700922, 108355, + 601225, 103091, 100100, 601231, + 108354, 706264, 700413, 4204082, + 107440, 108162, 114271,4209222, + 108357, 102939, 102141, 107505, + 708761,4204500, 101823, 102037, + 701402, 100354, 102145,4211928, + 100170,4212917, 4204084, 700840, + 700841, 103312, 4205289, 106168, + 4207594, 4216823, 100315)) +# 100089 ahus +# 100092 østfold sarpsbog +# 100132 telemark skien +# 100315 førde +# 101719 unn tromsø +# 101971 finnmark hammerfest +# 107507 aleris oslo +# 4001031 ous + +# dg_samlet <- read.csv2("~/mydata/norgast/dg_norgast.csv") +# dg_samlet <- dg_samlet %>% dplyr::filter(substr(ind_id, 1, 10) == "norgast_dg") + +dg_samlet <- read.csv2("~/mydata/norgast/norgast_dg_2022.csv") dg_samlet <- dg_samlet %>% dplyr::filter(substr(ind_id, 1, 10) == "norgast_dg") -DG_2022 <- read.csv2('~/mydata/norgast/dg_opgr_shus.csv') - -DG_tot_2022 <- DG_2022 %>% - summarise(n_norgast = sum(n_norgast), - n_npr = sum(n_npr), - DG = n_norgast/n_npr*100, - AvdRESH = first(AvdRESH), - Sykehusnavn = first(Sykehusnavn), - .by = sh) %>% - mutate(Op_gr = 7) %>% - select(sh, n_norgast, n_npr, Op_gr) - -DG_pankreas <- DG_2022 %>% - filter(Op_gr %in% 6:8) %>% - summarise(n_norgast = sum(n_norgast), - n_npr = sum(n_npr), - DG = n_norgast/n_npr*100, - AvdRESH = first(AvdRESH), - Sykehusnavn = first(Sykehusnavn), - .by = sh) %>% - mutate(Op_gr = 6) %>% - select(sh, n_norgast, n_npr, Op_gr) - -DG_2022 <- DG_2022 %>% - filter(Op_gr %in% 1:5) %>% - select(sh, n_norgast, n_npr, Op_gr) %>% - dplyr::bind_rows(DG_pankreas) %>% - dplyr::bind_rows(DG_tot_2022) %>% +DG_tot_2023 <- read.csv2("~/mydata/norgast/DG_Sykehus/Alle_sh.csv") %>% + merge(dg_kobl_resh_orgnr, by.x = "AvdRESH", by.y = "resh") %>% + mutate(context = "caregiver", + var = Kun_norgast + Begge, + year = 2023, + ind_id = "norgast_dg_total") %>% + rename(orgnr = orgnr_sh, + denominator = Total) %>% + select(context, orgnr, year, var, denominator, ind_id) + +DG_pankreas_2023 <- read.csv2("~/mydata/norgast/DG_Sykehus/Whipple_sh.csv") %>% + merge(dg_kobl_resh_orgnr, by.x = "AvdRESH", by.y = "resh") %>% + mutate(context = "caregiver", + var = Kun_norgast + Begge, + year = 2023, + ind_id = "norgast_dg_pankreas") %>% + rename(orgnr = orgnr_sh, + denominator = Total) %>% + select(context, orgnr, year, var, denominator, ind_id) + +DG_kolon_2023 <- read.csv2("~/mydata/norgast/DG_Sykehus/Kolon_sh.csv") %>% + merge(dg_kobl_resh_orgnr, by.x = "AvdRESH", by.y = "resh") %>% mutate(context = "caregiver", - year = 2022) %>% - rename(orgnr = sh, - var = n_norgast, - denominator = n_npr) %>% - mutate(ind_id = case_when(Op_gr == 1 ~ "norgast_dg_tykktarm", - Op_gr == 2 ~ "norgast_dg_endetarm", - Op_gr == 3 ~ "norgast_dg_spiseroer", - Op_gr == 4 ~ "norgast_dg_magesekk", - Op_gr == 5 ~ "norgast_dg_lever", - Op_gr == 6 ~ "norgast_dg_pankreas", - Op_gr == 7 ~ "norgast_dg_total")) %>% - select(-Op_gr) - -dg_samlet <- bind_rows(dg_samlet, DG_2022) -dg_samlet$var[which(dg_samlet$var > dg_samlet$denominator)] <- - dg_samlet$denominator[which(dg_samlet$var > dg_samlet$denominator)] + var = Kun_norgast + Begge, + year = 2023, + ind_id = "norgast_dg_tykktarm") %>% + rename(orgnr = orgnr_sh, + denominator = Total) %>% + select(context, orgnr, year, var, denominator, ind_id) + +DG_rektum_2023 <- read.csv2("~/mydata/norgast/DG_Sykehus/Rektum_sh.csv") %>% + merge(dg_kobl_resh_orgnr, by.x = "AvdRESH", by.y = "resh") %>% + mutate(context = "caregiver", + var = Kun_norgast + Begge, + year = 2023, + ind_id = "norgast_dg_endetarm") %>% + rename(orgnr = orgnr_sh, + denominator = Total) %>% + select(context, orgnr, year, var, denominator, ind_id) + +DG_lever_2023 <- read.csv2("~/mydata/norgast/DG_Sykehus/Lever_sh.csv") %>% + merge(dg_kobl_resh_orgnr, by.x = "AvdRESH", by.y = "resh") %>% + mutate(context = "caregiver", + var = Kun_norgast + Begge, + year = 2023, + ind_id = "norgast_dg_lever") %>% + rename(orgnr = orgnr_sh, + denominator = Total) %>% + select(context, orgnr, year, var, denominator, ind_id) + +DG_osofagus_2023 <- read.csv2("~/mydata/norgast/DG_Sykehus/Øsofagus_sh.csv") %>% + merge(dg_kobl_resh_orgnr, by.x = "AvdRESH", by.y = "resh") %>% + mutate(context = "caregiver", + var = Kun_norgast + Begge, + year = 2023, + ind_id = "norgast_dg_spiseroer") %>% + rename(orgnr = orgnr_sh, + denominator = Total) %>% + select(context, orgnr, year, var, denominator, ind_id) + +DG_ventrikkel_2023 <- read.csv2("~/mydata/norgast/DG_Sykehus/Ventrikkel_sh.csv") %>% + merge(dg_kobl_resh_orgnr, by.x = "AvdRESH", by.y = "resh") %>% + mutate(context = "caregiver", + var = Kun_norgast + Begge, + year = 2023, + ind_id = "norgast_dg_magesekk") %>% + rename(orgnr = orgnr_sh, + denominator = Total) %>% + select(context, orgnr, year, var, denominator, ind_id) + +dg_samlet <- bind_rows(dg_samlet, DG_tot_2023) %>% + bind_rows(DG_pankreas_2023) %>% + bind_rows(DG_kolon_2023) %>% + bind_rows(DG_rektum_2023) %>% + bind_rows(DG_lever_2023) %>% + bind_rows(DG_osofagus_2023) %>% + bind_rows(DG_ventrikkel_2023) indikator <- bind_rows(indikator, dg_samlet) write.csv2(indikator, paste0("~/mydata/norgast/norgast_indikator_", lubridate::today(), ".csv"), row.names = F, fileEncoding = 'UTF-8') + +# DG_2022 <- read.csv2('~/mydata/norgast/dg_opgr_shus.csv') +# +# DG_tot_2022 <- DG_2022 %>% +# summarise(n_norgast = sum(n_norgast), +# n_npr = sum(n_npr), +# DG = n_norgast/n_npr*100, +# AvdRESH = first(AvdRESH), +# Sykehusnavn = first(Sykehusnavn), +# .by = sh) %>% +# mutate(Op_gr = 7) %>% +# select(sh, n_norgast, n_npr, Op_gr) +# +# DG_pankreas <- DG_2022 %>% +# filter(Op_gr %in% 6:8) %>% +# summarise(n_norgast = sum(n_norgast), +# n_npr = sum(n_npr), +# DG = n_norgast/n_npr*100, +# AvdRESH = first(AvdRESH), +# Sykehusnavn = first(Sykehusnavn), +# .by = sh) %>% +# mutate(Op_gr = 6) %>% +# select(sh, n_norgast, n_npr, Op_gr) +# +# DG_2022 <- DG_2022 %>% +# filter(Op_gr %in% 1:5) %>% +# select(sh, n_norgast, n_npr, Op_gr) %>% +# dplyr::bind_rows(DG_pankreas) %>% +# dplyr::bind_rows(DG_tot_2022) %>% +# mutate(context = "caregiver", +# year = 2022) %>% +# rename(orgnr = sh, +# var = n_norgast, +# denominator = n_npr) %>% +# mutate(ind_id = case_when(Op_gr == 1 ~ "norgast_dg_tykktarm", +# Op_gr == 2 ~ "norgast_dg_endetarm", +# Op_gr == 3 ~ "norgast_dg_spiseroer", +# Op_gr == 4 ~ "norgast_dg_magesekk", +# Op_gr == 5 ~ "norgast_dg_lever", +# Op_gr == 6 ~ "norgast_dg_pankreas", +# Op_gr == 7 ~ "norgast_dg_total")) %>% +# select(-Op_gr) +# +# dg_samlet <- bind_rows(dg_samlet, DG_2022) +# dg_samlet$var[which(dg_samlet$var > dg_samlet$denominator)] <- +# dg_samlet$denominator[which(dg_samlet$var > dg_samlet$denominator)] +# +# indikator <- bind_rows(indikator, dg_samlet) +# +# write.csv2(indikator, paste0("~/mydata/norgast/norgast_indikator_", lubridate::today(), ".csv"), +# row.names = F, fileEncoding = 'UTF-8') + diff --git a/docker-compose.yml b/docker-compose.yml index 6e2b784..2aa6c1e 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,8 +1,6 @@ -version: '3.3' - services: db: - image: mysql:5.7 + image: mysql:8 command: --innodb-log-file-size=500M --innodb_strict_mode=0 restart: "no" volumes: @@ -13,7 +11,7 @@ services: dev: depends_on: - db - image: rapporteket/norgast-dev:weekly + image: rapporteket/norgast-dev:main volumes: - ~/.ssh:/home/rstudio/.ssh - ~/.gitconfig:/home/rstudio/.gitconfig @@ -26,7 +24,7 @@ services: - 8.8.8.8 restart: "no" environment: - PASSWORD: password + DISABLE_AUTH: "true" DB_HOST: db DB_USER: root DB_PASS: root diff --git a/inst/Aarsrapport2023_generell.Rnw b/inst/Aarsrapport2023_generell.Rnw new file mode 100644 index 0000000..9c54748 --- /dev/null +++ b/inst/Aarsrapport2023_generell.Rnw @@ -0,0 +1,803 @@ +\documentclass[norsk,a4paper]{article} % ,twoside +\usepackage[norsk]{babel} +\usepackage[utf8x]{inputenc} +\usepackage{subfig} +\usepackage{pdfpages} +\usepackage{booktabs} +\usepackage{caption} +\usepackage{amssymb} +\usepackage[a4paper]{geometry} + +\title{Figurer og tabeller for årsrapport NORGAST 2023 - Generell del} +\author{NORGAST} + +\renewcommand\thempfootnote{\fnsymbol{mpfootnote}} +\def\labelitemi{$\bullet$} +\def\labelitemii{--} +\def\labelitemiii{$\ast$} +\def\labelitemiv{$\cdot$} + +%setter grå skrift fremfort sort +\usepackage{xcolor} +\usepackage{graphicx} +\pagestyle{myheadings} +\definecolor{lysblaa}{rgb}{0.27,0.51,0.71} +\definecolor{moerkgraa}{rgb}{0.25,0.25,0.25} + + +<<'initOpts',include=FALSE>>= +knitr::opts_chunk$set(warnings=FALSE,echo=FALSE) +knitr::opts_knit$set(root.dir = './') +@ + +\begin{document} + +<>= +library(norgast) +library(tidyverse) +rm(list = ls()) + +RegData <- norgast::NorgastHentRegData() +RegData <- norgast::NorgastPreprosess(RegData) +RegData$AvdRESH[RegData$AvdRESH == 4204126] <- 4204084 # Tull med Ringerike + +gr <- c(1:6) +grtxt <- c('Kol.','Rekt.','Øsof.','Ventr.', + 'Lever',"Pankreas") +RegData$Op_grAarsrapp <- RegData$Op_gr +RegData$Op_grAarsrapp[RegData$Op_gr %in% 6:8]<- 6 +RegData$Op_grAarsrapp[!(RegData$Op_grAarsrapp %in% 1:6)]<- NA +RegData$Op_grAarsrapp <- factor(RegData$Op_grAarsrapp, levels=gr, labels = grtxt) + +rap_aar <- 2023 # Året rapporten skal kjøres for +ant_aar <- 3 # Hvor mange år som skal inkluderes i flerårsfigurer +reshID <- 0 +datoFra= paste0(rap_aar, '-01-01') +datoTil= paste0(rap_aar, '-12-31') + +RegDataAll <- RegData[RegData$Aar<=rap_aar, ] + +################################################################################ +# RegData <- RegData[RegData$Aar==rap_aar, ] + +# DG <- read.csv2('~/mydata/norgast/dg_opgr_shus.csv') +# DG <- DG %>% group_by(sh) %>% +# summarise(n_norgast = sum(n_norgast), +# n_npr = sum(n_npr), +# DG = n_norgast/n_npr*100, +# AvdRESH = first(AvdRESH), +# Sykehusnavn = first(Sykehusnavn)) +# DG <- DG[!is.na(DG$AvdRESH), ] +# DG <- DG[DG$n_norgast != 0, ] +# +# graaUt_alle <- DG$Sykehusnavn[DG$DG< 60] +sh_norgast <- RegDataAll[match(unique(RegDataAll$AvdRESH), RegDataAll$AvdRESH), c("AvdRESH", "Sykehusnavn")] +dgterskel <- 70 +DG <- read.csv2('~/mydata/norgast/DG_Sykehus/Alle_sh.csv') %>% + merge(sh_norgast, by = "AvdRESH", all.x = TRUE) %>% + dplyr::filter(!is.na(Sykehusnavn)) +graaUt_alle <- DG$Sykehusnavn[DG$DG_norgast < dgterskel] + +figstr <- 1 +tmp <- Sys.setlocale(category = "LC_ALL", locale = "nb_NO.UTF-8") +@ + +\maketitle +\clearpage + +<<'sett_parametre', include=FALSE, echo=FALSE, eval=T, cache=FALSE>>= +width=600 +height=700 +sideTxt='Sykehus' +decreasing=F +terskel=10 +minstekrav = NA +maal = NA +skriftStr=0.9 +pktStr=1.2 +legPlass='top' +minstekravTxt='Akseptabelt' +dg_tekst <- paste0("Dekningsgrad < ", dgterskel, " %") +maalTxt='Mål' +graaUt=NA +minald=0 +maxald=130 +erMann <- 99 +inkl_konf <- T +elektiv=99 +# datoFra <- '2015-01-01' +datoFra= paste0(rap_aar-2, '-01-01') +tittel <- '' +hentData <- F +preprosess <- F +BMI='' +tilgang='' +minPRS=0 +maxPRS=2.2 +ASA='' +whoEcog= '' +ncsp='' +forbehandling='' +valgtShus=c('') +op_gruppe <- '' +malign <- 99 +annet_format_ut <- T +ut_format <- 'svg' +figfolder <- "~/mydata/norgast/fig_aarsrapp2023/generell/" +if (!dir.exists(figfolder)) { + dir.create(figfolder) +} +tabfolder <- "~/mydata/norgast/fig_aarsrapp2023/tabeller/" +if (!dir.exists(tabfolder)) { + dir.create(tabfolder) +} +@ + +<<'Sykehusfig', include=FALSE, echo=FALSE, eval=T, cache=FALSE>>= +outfile <- 'RegAvd.pdf' +outfile <- paste0(figfolder, outfile) +norgastFigAntRegTid(RegDataAll, outfile=outfile, tittel=tittel, width=width, + height=height, decreasing=decreasing, terskel=terskel, + minstekrav = minstekrav, maal = maal, skriftStr=1.1, + pktStr=pktStr, legPlass=legPlass, minstekravTxt=minstekravTxt, + maalTxt=maalTxt, graaUt=graaUt, inkl_konf=inkl_konf, + op_gruppe=op_gruppe, datoFra=datoFra, datoTil=datoTil, + elektiv=elektiv, malign=malign, kun_ferdigstilte = F) +if (annet_format_ut) { + outfile <- paste0(substr(outfile, 1, nchar(outfile)-3), ut_format) + norgastFigAntRegTid(RegDataAll, outfile=outfile, tittel=tittel, width=width, + height=height, decreasing=decreasing, terskel=terskel, + minstekrav = minstekrav, maal = maal, skriftStr=1.1, + pktStr=pktStr, legPlass=legPlass, minstekravTxt=minstekravTxt, + maalTxt=maalTxt, graaUt=graaUt, inkl_konf=inkl_konf, + op_gruppe=op_gruppe, datoFra=datoFra, datoTil=datoTil, + elektiv=elektiv, malign=malign, kun_ferdigstilte = F) +} + +outfile <- 'RegAvd_alt.pdf' +outfile <- paste0(figfolder, outfile) +norgastFigAntRegTid( + RegDataAll, outfile=outfile, datoFra='2014-01-01', tittel = "", + datoTil=datoTil, kun_ferdigstilte = F, alletider = T, skriftStr=1.1, width=width, + height=height) +if (annet_format_ut) { + outfile <- paste0(substr(outfile, 1, nchar(outfile)-3), ut_format) + norgastFigAntRegTid( + RegDataAll, outfile=outfile, datoFra='2014-01-01', tittel = "", + datoTil=datoTil, kun_ferdigstilte = F, alletider = T, skriftStr=1.1, width=width, + height=height) +} + +valgtVar <- 'Vekttap_registrert' +outfile <- 'Vekttap_registrert.pdf' +outfile <- paste0(figfolder, outfile) +norgastIndikator_rapporteket( + RegDataAll, valgtVar = valgtVar, outfile=outfile, + tittel=tittel, width=width, height=height, decreasing=decreasing, terskel=terskel, + minstekrav = 80, maal = 90, skriftStr=skriftStr, pktStr=pktStr, legPlass='topleft', + minstekravTxt=minstekravTxt, maalTxt=maalTxt, graaUt=graaUt, inkl_konf=inkl_konf, + op_gruppe=op_gruppe, datoFra=datoFra, datoTil=datoTil, hastegrad_hybrid=1, + malign=malign, lavDG = graaUt_alle, lavDGtekst = dg_tekst, kun_oblig=TRUE) +if (annet_format_ut) { + outfile <- paste0(substr(outfile, 1, nchar(outfile)-3), ut_format) + norgastIndikator_rapporteket( + RegDataAll, valgtVar = valgtVar, outfile=outfile, + tittel=tittel, width=width, height=height, decreasing=decreasing, terskel=terskel, + minstekrav = 80, maal = 90, skriftStr=skriftStr, pktStr=pktStr, legPlass='topleft', + minstekravTxt=minstekravTxt, maalTxt=maalTxt, graaUt=graaUt, inkl_konf=inkl_konf, + op_gruppe=op_gruppe, datoFra=datoFra, datoTil=datoTil, hastegrad_hybrid=1, + malign=malign, lavDG = graaUt_alle, lavDGtekst = dg_tekst, kun_oblig=TRUE) +} + +valgtVar <- 'AktivKontroll_v2' +outfile <- 'AktivKontroll_v2.pdf' +outfile <- paste0(figfolder, outfile) +norgastIndikator_rapporteket( + RegDataAll, valgtVar = valgtVar, outfile=outfile, + tittel=tittel, width=width, height=height, decreasing=decreasing, terskel=terskel, + minstekrav = 70, maal = 90, skriftStr=skriftStr, pktStr=pktStr, legPlass='topleft', + minstekravTxt=minstekravTxt, maalTxt=maalTxt, graaUt=graaUt, inkl_konf=inkl_konf, + op_gruppe=op_gruppe, datoFra=datoFra, datoTil=datoTil, hastegrad_hybrid=1, + malign=malign, lavDG = graaUt_alle, lavDGtekst = dg_tekst, kun_oblig=TRUE) +if (annet_format_ut) { + outfile <- paste0(substr(outfile, 1, nchar(outfile)-3), ut_format) + norgastIndikator_rapporteket( + RegDataAll, valgtVar = valgtVar, outfile=outfile, + tittel=tittel, width=width, height=height, decreasing=decreasing, terskel=terskel, + minstekrav = 70, maal = 90, skriftStr=skriftStr, pktStr=pktStr, legPlass='topleft', + minstekravTxt=minstekravTxt, maalTxt=maalTxt, graaUt=graaUt, inkl_konf=inkl_konf, + op_gruppe=op_gruppe, datoFra=datoFra, datoTil=datoTil, hastegrad_hybrid=1, + malign=malign, lavDG = graaUt_alle, lavDGtekst = dg_tekst, kun_oblig=TRUE) +} + + +@ + +\begin{figure}[ht] +\centering +\includegraphics[width=\Sexpr{figstr}\textwidth]{\Sexpr{figfolder}RegAvd.pdf} +\caption{RegAvd.pdf} +\end{figure} + +\begin{figure}[ht] +\centering +\includegraphics[width=\Sexpr{figstr}\textwidth]{\Sexpr{figfolder}RegAvd_alt.pdf} +\caption{RegAvd\_alt.pdf} +\end{figure} + +\begin{figure}[ht] +\centering +\includegraphics[width=\Sexpr{figstr}\textwidth]{\Sexpr{figfolder}Vekttap_registrert.pdf} +\caption{Vekttap\_registrert.pdf} +\end{figure} + +\begin{figure}[ht] +\centering +\includegraphics[width=\Sexpr{figstr}\textwidth]{\Sexpr{figfolder}AktivKontroll_v2.pdf} +\caption{AktivKontroll\_v2.pdf} +\end{figure} + + +<<'fig_sårruptur', include=FALSE, echo=FALSE, eval=T, cache=FALSE>>= +op_gruppe <- '' +valgtVar <- 'Saarruptur' +outfile <- 'Saarruptur_utvalg.pdf' +outfile <- paste0(figfolder, outfile) +norgastIndikator_rapporteket( + RegDataAll, valgtVar = valgtVar, outfile=outfile, + tittel=tittel, tilgang = c('1', '3'), width=width, height=height, decreasing=T, + terskel=terskel, minstekrav = 4, maal = 3, skriftStr=skriftStr, pktStr=pktStr, + legPlass='topright', minstekravTxt=minstekravTxt, maalTxt=maalTxt, graaUt=graaUt, + inkl_konf=inkl_konf, op_gruppe=op_gruppe, datoFra=datoFra, datoTil=datoTil, + hastegrad_hybrid=1, malign=malign, lavDG = graaUt_alle, lavDGtekst = dg_tekst, + pst_kolonne = TRUE, prikktall = FALSE, kun_oblig=TRUE) +if (annet_format_ut) { + outfile <- paste0(substr(outfile, 1, nchar(outfile)-3), ut_format) + norgastIndikator_rapporteket( + RegDataAll, valgtVar = valgtVar, outfile=outfile, + tittel=tittel, tilgang = c('1', '3'), width=width, height=height, decreasing=T, + terskel=terskel, minstekrav = 4, maal = 3, skriftStr=skriftStr, pktStr=pktStr, + legPlass='topright', minstekravTxt=minstekravTxt, maalTxt=maalTxt, graaUt=graaUt, + inkl_konf=inkl_konf, op_gruppe=1:8, datoFra=datoFra, datoTil=datoTil, + hastegrad_hybrid=1, malign=malign, lavDG = graaUt_alle, lavDGtekst = dg_tekst, + pst_kolonne = TRUE, prikktall = FALSE, kun_oblig=TRUE) +} +@ + +\begin{figure}[ht] +\centering +\includegraphics[width=\Sexpr{figstr}\textwidth]{\Sexpr{figfolder}Saarruptur_utvalg.pdf} +\caption{Saarruptur\_utvalg.pdf} +\end{figure} + + +\clearpage + +<<'Tabell:RegistrerendeAvd_alleår', results='asis', echo=FALSE, eval=T, warning=FALSE>>= + +Tabell <- addmargins(table(RegDataAll$Sykehusnavn, RegDataAll$Aar)) +colnames(Tabell)[which(colnames(Tabell)=='Sum')] <- 'Totalt' +rownames(Tabell)[which(rownames(Tabell)=='Sum')] <- 'Nasjonalt' +Tabell <- Tabell[c(order(Tabell[-dim(Tabell)[1], dim(Tabell)[2]], + decreasing = TRUE), dim(Tabell)[1]), ] + +print(xtable::xtable( + Tabell, digits=0, + align=c('l', 'l', rep('r', ncol(Tabell)-1)), + caption='Antall registreringer i NORGAST per avdeling. Alle inngrep.'), + include.rownames=TRUE, + include.colnames=TRUE, + add.to.row = list(pos=list(nrow(Tabell)-1), + command=c('\\midrule\n'))) + +write.csv2(Tabell, paste0(tabfolder, "ant_reg_alle.csv"), + row.names = T, fileEncoding = 'Latin1') + +Tabell <- addmargins(table(RegDataAll$Sykehusnavn[!is.na(RegDataAll$Op_grAarsrapp)], + RegDataAll$Aar[!is.na(RegDataAll$Op_grAarsrapp)])) +colnames(Tabell)[which(colnames(Tabell)=='Sum')] <- 'Totalt' +rownames(Tabell)[which(rownames(Tabell)=='Sum')] <- 'Nasjonalt' +Tabell <- Tabell[c(order(Tabell[-dim(Tabell)[1], dim(Tabell)[2]], + decreasing = TRUE), dim(Tabell)[1]), ] + +print(xtable::xtable( + Tabell, digits=0, align=c('l', 'l', rep('r', ncol(Tabell)-1)), + caption='Antall registreringer i NORGAST per avdeling. Obligatoriske inngrep.'), + include.rownames=TRUE, + include.colnames=TRUE, + add.to.row = list(pos=list(nrow(Tabell)-1), + command=c('\\midrule\n'))) + +write.csv2(Tabell, paste0(tabfolder, "ant_reg_oblig.csv"), + row.names = T, fileEncoding = 'Latin1') +@ + + + +<<'Tabell:RegistrerendeAvd', results='asis', echo=FALSE, eval=T, warning=FALSE>>= + +Tabell <- RegDataAll %>% filter(Aar == rap_aar) %>% + select(Sykehusnavn, Op_grAarsrapp) %>% + table() %>% addmargins() +colnames(Tabell)[which(colnames(Tabell)=='Sum')] <- 'Totalt' +rownames(Tabell)[which(rownames(Tabell)=='Sum')] <- 'Nasjonalt' +Tabell <- Tabell[c(order(Tabell[-dim(Tabell)[1], dim(Tabell)[2]], + decreasing = TRUE), dim(Tabell)[1]), ] + +print(xtable::xtable( + Tabell, digits=0, align=c('l', rep('r', ncol(Tabell))), + caption=paste0('Antall registrerte obligatoriske prosedyrer i ', + rap_aar, ' fordelt på avd. og reseksjonsgruppe.'), + label='tab:RegistrenrendeAvd'), + include.rownames=TRUE, + include.colnames=TRUE , + add.to.row = list(pos=list(nrow(Tabell)-1), + command=c('\\midrule\n'))) + +write.csv2(Tabell, paste0(tabfolder, "RegistrenrendeAvd.csv"), + row.names = T, fileEncoding = 'Latin1') +@ + +<<'fig:Robotkirurgi', include=FALSE, echo=FALSE, eval=T, cache=FALSE>>= + +gr <- c(1:6) +grtxt <- c('Kolon','Rektum','Øsofagus','Ventrikkel', + 'Lever',"Pankreas") +RegData$Op_gr_ny <- RegData$Op_gr +RegData$Op_gr_ny[RegData$Op_gr %in% 6:8]<- 6 +RegData$Op_gr_ny[!(RegData$Op_gr_ny %in% 1:6)]<- NA +RegData$Op_gr_ny <- factor(RegData$Op_gr_ny, levels=gr, labels = grtxt) + +robotkir <- RegData %>% + dplyr::filter(Aar == rap_aar) %>% + dplyr::filter(Op_gr %in% 1:8) %>% + dplyr::filter(Tilgang_utvidet %in% 2:5) %>% + dplyr::summarise(ant_rob_lap = sum(Tilgang_utvidet == 3), + ant_rob_konv = sum(Tilgang_utvidet == 5), + N = n(), + andel_rob_lap = ant_rob_lap/N*100, + andel_rob_konv = ant_rob_konv/N*100, + .by = Op_gr_ny) %>% + dplyr::filter(ant_rob_lap + ant_rob_konv > 0) %>% + dplyr::arrange(desc(Op_gr_ny)) + + + +plotmatrise <- as.matrix(robotkir[, c("andel_rob_lap", "andel_rob_konv")]) %>% t() +grtxt <- paste0(robotkir$Op_gr_ny, " (N=", robotkir$N, ")") +psttxt <- + xmax <- 1.15*max(colSums(plotmatrise)) +outfile <- "robot_lapstart.pdf" +outfile <- paste0(figfolder, outfile) +figinfo <- rapFigurer::figtype(outfile = outfile, fargepalett="BlaaOff") +vmarg <- min(1,max(0, strwidth(grtxt, units='figure', cex=1)*0.75)) +par('fig'=c(vmarg, 1, 0, 1)) +farger <- figinfo$farger[c(3,1)] + +pos <- barplot(plotmatrise, beside = F, horiz = T, + col = farger, + border=NA, xlab="", + xlim = c(0, xmax)) +mtext(at=pos+0.00, text=grtxt, side=2, las=1, cex=1, adj=1, line=0.25) +title(main = c("Andel robotassistanse blant operasjoner", "som er startet laparoskopisk"), + cex.main = 1.5) +legend('bottomright', legend = c("Laparoskopisk", "Konvertert"), col = farger, + pch = 15, border = NA, bty='n') +text(x = colSums(plotmatrise), y = pos, + labels = paste0(sprintf("%.1f" , colSums(plotmatrise)), " %"), + pos = 4, cex=0.7, xpd = T) +if ( outfile != '') {dev.off()} + +if (annet_format_ut) { + outfile <- paste0(substr(outfile, 1, nchar(outfile)-3), ut_format) + figinfo <- rapFigurer::figtype(outfile = outfile, fargepalett="BlaaOff") + par('fig'=c(vmarg, 1, 0, 1)) + pos <- barplot(plotmatrise, beside = F, horiz = T, + col = farger, + border=NA, xlab="", + xlim = c(0, xmax)) + mtext(at=pos+0.00, text=grtxt, side=2, las=1, cex=1, adj=1, line=0.25) + title(main = c("Andel robotassistanse blant operasjoner", "som er startet laparoskopisk"), + cex.main = 1.5) + legend('bottomright', legend = c("Laparoskopisk", "Konvertert"), col = farger, + pch = 15, border = NA, bty='n') + text(x = colSums(plotmatrise), y = pos, + labels = paste0(sprintf("%.1f" , colSums(plotmatrise)), " %"), + pos = 4, cex=0.7, xpd = T) + if ( outfile != '') {dev.off()} +} + +@ + +\begin{figure}[ht] +\centering +\includegraphics[width=\Sexpr{figstr}\textwidth]{\Sexpr{figfolder}robot_lapstart.pdf} +\caption{robot\_lapstart.pdf} +\end{figure} + +<<'Tabell:Robotab', results='asis', echo=FALSE, eval=T, warning=FALSE>>= +# Tabell <- RegDataAll %>% +# dplyr::filter(Aar == rap_aar) %>% +# dplyr::filter(Tilgang_utvidet %in% 2:5) %>% +# summarise(Antall = sum(Robotassistanse), +# N = n(), +# .by = Sykehusnavn) %>% +# dplyr::arrange(desc(Antall))# +# ikkerobot <- data.frame("Sykehusnavn" = "Sykehus uten robotkirurgi", +# "Antall" = 0, +# "N" = sum(Tabell$N[Tabell$Antall == 0])) +# Tabell <- Tabell %>% +# dplyr::bind_rows(ikkerobot) %>% +# dplyr::filter(Antall > 0 | Sykehusnavn == "Sykehus uten robotkirurgi") %>% +# janitor::adorn_totals() %>% +# mutate(Andel = Antall/N*100) %>% +# select(Sykehusnavn, Antall, Andel, N) %>% +# rename("Andel (%)" = Andel) + +# print(xtable::xtable( +# Tabell, digits=c(0,0,0,1,0), align=c('l', 'l', rep('r', ncol(Tabell)-1)), +# caption='Antall robotassisterte operasjoner. N angir antall operasjoner +# som er startet laparoskopisk.'), +# include.rownames=FALSE, +# include.colnames=TRUE, +# add.to.row = list(pos=list(nrow(Tabell)-1), +# command=c('\\midrule\n'))) + +Tabell <- RegDataAll %>% + dplyr::filter(Aar == rap_aar) %>% + dplyr::filter(Op_gr %in% 1:8) %>% + dplyr::filter(Tilgang_utvidet %in% 2:5) %>% + summarise(Antall = sum(Robotassistanse), + N = n(), + .by = Sykehusnavn) %>% + dplyr::arrange(desc(Antall))# +ikkerobot <- data.frame("Sykehusnavn" = "Sykehus uten robotkirurgi", + "Antall" = 0, + "N" = sum(Tabell$N[Tabell$Antall == 0])) +Tabell <- Tabell %>% + dplyr::bind_rows(ikkerobot) %>% + dplyr::filter(Antall > 0 | Sykehusnavn == "Sykehus uten robotkirurgi") %>% + janitor::adorn_totals() %>% + mutate(Andel = Antall/N*100) %>% + select(Sykehusnavn, Antall, Andel, N) %>% + rename("Andel (%)" = Andel) + + +print(xtable::xtable( + Tabell, digits=c(0,0,0,1,0), align=c('l', 'l', rep('r', ncol(Tabell)-1)), + caption='Antall robotassisterte operasjoner blant obligatoriske operasjoner. + N angir antall operasjoner som er startet laparoskopisk.'), + include.rownames=FALSE, + include.colnames=TRUE, + add.to.row = list(pos=list(nrow(Tabell)-1), + command=c('\\midrule\n'))) + + +Tabell <- RegDataAll %>% + dplyr::filter(Aar == rap_aar) %>% + dplyr::filter(Op_gr %in% 1:8) %>% + dplyr::mutate(Robotassistanse = ifelse(is.na(Robotassistanse), 0, Robotassistanse)) %>% + summarise(Åpen = sum(Tilgang == 1), + Laparoskopisk = sum(Tilgang == 2), + Konvertert = sum(Tilgang == 3), + N = n(), + .by = Robotassistanse) %>% + mutate(Robotassistanse = ifelse(Robotassistanse==1, "Ja", "Nei")) %>% + janitor::adorn_totals() + +print(xtable::xtable( + Tabell, digits=0, align=c('l', 'l', rep('r', ncol(Tabell)-1)), + caption='Robotassistanse og tilgang blant obligatoriske operasjoner.'), + include.rownames=FALSE, + include.colnames=TRUE, + add.to.row = list(pos=list(nrow(Tabell)-1), + command=c('\\midrule\n'))) + +Tabell <- RegDataAll %>% + filter(Aar %in% 2015:2022) %>% + filter(substr(Hoveddiagnose, 1, 3) %in% c("K50", "K51")) %>% + summarise(N=n(), + .by = c(Hoveddiagnose, Operasjonsgrupper)) %>% + tidyr::pivot_wider(names_from = Operasjonsgrupper, values_from = N,values_fill = 0) %>% + arrange(Hoveddiagnose) %>% + janitor::adorn_totals(where = c("row", "col"), name = c("Total", "Total")) %>% + write.csv2("~/norgast/doc/inflames.csv", + fileEncoding = 'Latin1') + + +# write.csv2(Tabell, paste0(tabfolder, "RegistrenrendeAvd.csv"), +# row.names = T, fileEncoding = 'Latin1') +@ + + +<<'fig:Robotkirurgi forts', include=FALSE, echo=FALSE, eval=T, cache=FALSE>>= + +aux <- RegDataAll %>% + dplyr::mutate(Op_gr = ifelse(Op_gr %in% 7:8, 6, Op_gr), + Op_gr = factor(Op_gr, levels = 1:6, + labels = c("Kolon", "Rektum", "Øsofagus", + "Ventrikkel", "Lever", "Pankreas")), + Tilgang_utvidet = dplyr::case_when( + Tilgang_utvidet == 4 ~ 2, + Tilgang_utvidet == 5 ~ 3, + Tilgang_utvidet %in% 1:3 ~ Tilgang_utvidet + ), + Tilgang_utvidet = factor( + Tilgang_utvidet, levels = 1:3, + labels = c("Åpen", + "Laparoskopisk", + "Robotassistert")), + Robot = factor(Robotassistanse, levels = c(1,0), + labels = c("Robot", "Ikke-robot"))) + +outfile <- 'mort90_opgr_tilgang.pdf' +outfile <- paste0(figfolder, outfile) +norgast::norgastAndelGruppert2Gr(valgtVar="Mort90", outfile = outfile, + Grvar1 = "Op_gr", Grvar2 = "Tilgang_utvidet", + tittel = "Andel døde innen 90 dager etter operasjon", + RegData = aux, datoFra="2023-01-01", + datoTil="2023-12-31", kun_ferdigstilte=FALSE, + hastegrad=1, malign=1, whoEcog=0:1, inkl_konf = FALSE) +if (annet_format_ut) { + outfile <- paste0(substr(outfile, 1, nchar(outfile)-3), ut_format) + norgast::norgastAndelGruppert2Gr(valgtVar="Mort90", outfile = outfile, + Grvar1 = "Op_gr", Grvar2 = "Tilgang_utvidet", + tittel = "Andel døde innen 90 dager etter operasjon", + RegData = aux, datoFra="2023-01-01", + datoTil="2023-12-31", kun_ferdigstilte=FALSE, + hastegrad=1, malign=1, whoEcog=0:1, inkl_konf = FALSE)} + +outfile <- 'kumacc_opgr_tilgang.pdf' +outfile <- paste0(figfolder, outfile) +norgast::norgastAndelGruppert2Gr(valgtVar="KumAcc", outfile = outfile, + Grvar1 = "Op_gr", Grvar2 = "Tilgang_utvidet", + tittel = "Andel komplikasjoner (Accordion \u2265 3)", + RegData = aux, datoFra="2023-01-01", + datoTil="2023-12-31", hastegrad=1, malign=1, whoEcog=0:1) +if (annet_format_ut) { + outfile <- paste0(substr(outfile, 1, nchar(outfile)-3), ut_format) + norgast::norgastAndelGruppert2Gr(valgtVar="KumAcc", outfile = outfile, + Grvar1 = "Op_gr", Grvar2 = "Tilgang_utvidet", + tittel = "Andel komplikasjoner (Accordion \u2265 3)", + RegData = aux, datoFra="2023-01-01", + datoTil="2023-12-31", hastegrad=1, malign=1, whoEcog=0:1)} + +outfile <- 'malign_opgr_tilgang.pdf' +outfile <- paste0(figfolder, outfile) +norgast::norgastAndelGruppert2Gr(valgtVar="Malign", outfile = outfile, + Grvar1 = "Op_gr", Grvar2 = "Tilgang_utvidet", + tittel = "Andel malign kirurgi", + RegData = aux, datoFra="2023-01-01", + datoTil="2023-12-31") +if (annet_format_ut) { + outfile <- paste0(substr(outfile, 1, nchar(outfile)-3), ut_format) + norgast::norgastAndelGruppert2Gr(valgtVar="Malign", outfile = outfile, + Grvar1 = "Op_gr", Grvar2 = "Tilgang_utvidet", + tittel = c("Andel malign kirurgi","innen hver tilgangstype"), + RegData = aux, datoFra="2023-01-01", + datoTil="2023-12-31")} + +@ + +\begin{figure}[ht] +\centering +\includegraphics[width=\Sexpr{figstr}\textwidth]{\Sexpr{figfolder}mort90_opgr_tilgang.pdf} +\caption{mort90\_opgr\_tilgang.pdf} +\end{figure} + +\begin{figure}[ht] +\centering +\includegraphics[width=\Sexpr{figstr}\textwidth]{\Sexpr{figfolder}kumacc_opgr_tilgang.pdf} +\caption{kumacc\_opgr\_tilgang.pdf} +\end{figure} + +\begin{figure}[ht] +\centering +\includegraphics[width=\Sexpr{figstr}\textwidth]{\Sexpr{figfolder}malign_opgr_tilgang.pdf} +\caption{malign\_opgr\_tilgang.pdf} +\end{figure} + + +<<'fig:Robotkirurgi tidsutvikling', include=FALSE, echo=FALSE, eval=T, cache=FALSE>>= +library(ggrepel) + +spagetti <- RegDataAll %>% + dplyr::filter(Tilgang_utvidet %in% 2:5, + Op_gr %in% 1:8) %>% + summarise(ant_rob = sum(Robotassistanse), + N = n(), + .by = c(Sykehusnavn, Aar)) %>% + bind_rows(summarise(., ant_rob = sum(ant_rob), + N = sum(N), + .by = Aar) %>% + mutate(Sykehusnavn = "Nasjonalt")) %>% + mutate(andel_rob = ant_rob/N*100)# %>% + +tmp <- spagetti %>% filter(max(andel_rob)>0, .by = Sykehusnavn) + +spagetti <- spagetti %>% + filter(andel_rob[Aar==rap_aar]!=0, .by = Sykehusnavn) %>% + mutate(name_lab = ifelse(Aar==rap_aar, Sykehusnavn, NA)) + +ekskluderte_shus <- paste(setdiff(tmp$Sykehusnavn, spagetti$Sykehusnavn), collapse = ", ") + +ggplot(spagetti, + aes(Aar, andel_rob, group = Sykehusnavn, + color = factor(Sykehusnavn))) + + geom_line() + + geom_line(data = spagetti %>% filter(Sykehusnavn=="Nasjonalt"), + size = 1.5, color = "black") + + scale_size(guide = "none") + + geom_text_repel(aes(color = Sykehusnavn, label = name_lab), + xlim = c(rap_aar+0.8, NA), + direction = "y", + size = 4, + segment.linetype = "dotted") + + coord_cartesian(clip = "off") + + scale_x_continuous(limits = c(2014, rap_aar+1.5), breaks = unique(aux$Aar)) + + guides(color="none") + + theme_classic() + ylab("Andel robotkirurgi (%)") + xlab("År") + + ggtitle(c("Andel robotkirugi blant \n laparoskopiske inngrep")) + + theme(plot.title = element_text(size = 16, hjust = 0.5)) + +ggsave(paste0(figfolder, "spaghetti.pdf"), width = 9, height = 7) +ggsave(paste0(figfolder, "spaghetti.svg"), width = 9, height = 7) + + +spagetti <- RegDataAll %>% + dplyr::filter(Tilgang_utvidet %in% 2:5, + Op_gr %in% 1:8) %>% + summarise(ant_rob = sum(Robotassistanse), + N = n(), + .by = c(Operasjonsgrupper, Aar)) %>% + bind_rows(summarise(., ant_rob = sum(ant_rob), + N = sum(N), + .by = Aar) %>% + mutate(Operasjonsgrupper = "Samlet")) %>% + mutate(andel_rob = ant_rob/N*100) %>% + mutate(name_lab = ifelse(Aar==rap_aar, Operasjonsgrupper, NA)) + + +ggplot(spagetti, + aes(Aar, andel_rob, group = Operasjonsgrupper, + color = factor(Operasjonsgrupper))) + + geom_line() + + geom_line(data = spagetti %>% filter(Operasjonsgrupper=="Samlet"), + size = 1.5, color = "black") + + scale_size(guide = "none") + + geom_text_repel(aes(color = Operasjonsgrupper, label = name_lab), + xlim = c(rap_aar+0.8, NA), + direction = "y", + size = 4, + segment.linetype = "dotted") + + coord_cartesian(clip = "off") + + scale_x_continuous(limits = c(2014, rap_aar+3.0), breaks = unique(aux$Aar)) + + guides(color="none") + + theme_classic() + ylab("Andel robotkirurgi (%)") + xlab("År") + + ggtitle(c("Andel robotkirugi blant \n laparoskopiske inngrep")) + + theme(plot.title = element_text(size = 16, hjust = 0.5)) + +ggsave(paste0(figfolder, "spaghetti_opgr.pdf"), width = 9, height = 7) +ggsave(paste0(figfolder, "spaghetti_opgr.svg"), width = 9, height = 7) + + +spagetti <- RegDataAll %>% + dplyr::filter(Op_gr %in% 1:8) %>% + mutate(Robotassistanse = ifelse(is.na(Robotassistanse), 0, Robotassistanse)) %>% + summarise(ant_rob = sum(Robotassistanse), + N = n(), + .by = c(Operasjonsgrupper, Aar)) %>% + bind_rows(summarise(., ant_rob = sum(ant_rob), + N = sum(N), + .by = Aar) %>% + mutate(Operasjonsgrupper = "Samlet")) %>% + mutate(andel_rob = ant_rob/N*100) %>% + mutate(name_lab = ifelse(Aar==rap_aar, Operasjonsgrupper, NA)) + +ggplot(spagetti, + aes(Aar, andel_rob, group = Operasjonsgrupper, + color = factor(Operasjonsgrupper))) + + geom_line() + + geom_line(data = spagetti %>% filter(Operasjonsgrupper=="Samlet"), + size = 1.5, color = "black") + + scale_size(guide = "none") + + geom_text_repel(aes(color = Operasjonsgrupper, label = name_lab), + xlim = c(rap_aar+0.8, NA), + direction = "y", + size = 4, + segment.linetype = "dotted") + + coord_cartesian(clip = "off") + + scale_x_continuous(limits = c(2014, rap_aar+3.0), breaks = unique(aux$Aar)) + + guides(color="none") + + theme_classic() + ylab("Andel robotkirurgi (%)") + xlab("År") + + ggtitle(c("Andel robotkirugi blant alle inngrep \n (inkludert åpne)")) + + theme(plot.title = element_text(size = 16, hjust = 0.5)) + +ggsave(paste0(figfolder, "spaghetti_opgr_alle.pdf"), width = 9, height = 7) +ggsave(paste0(figfolder, "spaghetti_opgr_alle.svg"), width = 9, height = 7) + +@ + + + + +\begin{figure}[ht] +\centering +\includegraphics[width=\Sexpr{figstr}\textwidth]{\Sexpr{figfolder}spaghetti.pdf} +\caption{spaghetti.pdf. Nasjonal linje i sort er andelen robotassistanse blant +alle laparoskopiske obligatoriske reseksjoner registrert i NORGAST, også fra +sykehus som ikke gjør robotkirurgi og dermed ikke er representert med linje i +figuren. Følgende sykehus har registrert minst én robotkirurgi men er ikke +inkludert i figuren siden de ikke har registrert noen i \Sexpr{rap_aar}: +\Sexpr{ekskluderte_shus}.} +\end{figure} + +\begin{figure}[ht] +\centering +\includegraphics[width=\Sexpr{figstr}\textwidth]{\Sexpr{figfolder}spaghetti_opgr.pdf} +\caption{spaghetti\_opgr.pdf} +\end{figure} + +\begin{figure}[ht] +\centering +\includegraphics[width=\Sexpr{figstr}\textwidth]{\Sexpr{figfolder}spaghetti_opgr_alle.pdf} +\caption{spaghetti\_opgr\_alle.pdf} +\end{figure} + + +<<'fig:aktualitet', include=FALSE, echo=FALSE, eval=T, cache=FALSE>>= + +outfile <- 'Aktualitet_oppf_2022.pdf' +outfile <- paste0(figfolder, outfile) + +TabellData <- norgast::NorgastBeregnAndeler( + RegData = RegDataAll, + valgtVar = "Aktualitet_oppf", + datoFra = paste0(rap_aar-1, "-01-01"), + datoTil = paste0(rap_aar-1, "-12-31"), + reshID = 0, enhetsUtvalg = 0, + kun_oblig = TRUE) + +norgast::NorgastPlotAndeler( + outfile = outfile, + PlotParams=TabellData$PlotParams, utvalgTxt=TabellData$utvalgTxt, + Andeler=TabellData$Andeler, Antall=TabellData$Antall, + fargepalett=TabellData$fargepalett, enhetsUtvalg=TabellData$enhetsUtvalg, + shtxt=TabellData$shtxt +) + + +outfile <- 'Aktualitet_oppf_2023.pdf' +outfile <- paste0(figfolder, outfile) +TabellData <- norgast::NorgastBeregnAndeler( + RegData = RegDataAll, + valgtVar = "Aktualitet_oppf", + datoFra = paste0(rap_aar, "-01-01"), + datoTil = paste0(rap_aar, "-12-31"), + reshID = 0, enhetsUtvalg = 0, + kun_oblig = TRUE) + +norgast::NorgastPlotAndeler( + outfile = outfile, + PlotParams=TabellData$PlotParams, utvalgTxt=TabellData$utvalgTxt, + Andeler=TabellData$Andeler, Antall=TabellData$Antall, + fargepalett=TabellData$fargepalett, enhetsUtvalg=TabellData$enhetsUtvalg, + shtxt=TabellData$shtxt +) + +@ + +\begin{figure}[ht] +\centering +\includegraphics[width=\Sexpr{figstr}\textwidth]{\Sexpr{figfolder}Aktualitet_oppf_2022.pdf} +\caption{Aktualitet\_oppf\_2022.pdf} +\end{figure} + +\begin{figure}[ht] +\centering +\includegraphics[width=\Sexpr{figstr}\textwidth]{\Sexpr{figfolder}Aktualitet_oppf_2023.pdf} +\caption{Aktualitet\_oppf\_2023.pdf} +\end{figure} + + +\end{document} diff --git a/inst/Aarsrapport2023_generell.pdf b/inst/Aarsrapport2023_generell.pdf new file mode 100644 index 0000000..debf084 Binary files /dev/null and b/inst/Aarsrapport2023_generell.pdf differ diff --git a/inst/Aarsrapport2023_kolorekt.Rnw b/inst/Aarsrapport2023_kolorekt.Rnw index d60609f..65be0fc 100644 --- a/inst/Aarsrapport2023_kolorekt.Rnw +++ b/inst/Aarsrapport2023_kolorekt.Rnw @@ -49,14 +49,61 @@ datoFra= paste0(rap_aar, '-01-01') datoTil= paste0(rap_aar, '-12-31') RegDataAll <- RegData[RegData$Aar<=rap_aar, ] -RegData <- RegData[RegData$Aar==rap_aar, ] +RegDataAll$AvstandAnalVerge_kat2 <- + cut(RegDataAll$AvstandAnalVerge, breaks = c(0,11,15.9), + labels = c("0-11.9 cm", "12.0-15.9 cm"), include.lowest = T) + +RegDataAll <- RegDataAll %>% + dplyr::mutate(Tilgang_utvidet2 = Tilgang_utvidet, + Tilgang_utvidet2 = dplyr::case_when( + Tilgang_utvidet2 == 4 ~ 2, + Tilgang_utvidet2 == 5 ~ 3, + Tilgang_utvidet2 %in% 1:3 ~ Tilgang_utvidet2 + ), + Tilgang_utvidet2 = factor( + Tilgang_utvidet2, levels = 2:3, + labels = c("Laparoskopisk", + "Robotassistert")), + Robot = factor(Robotassistanse, levels = c(1,0), + labels = c("Robot", "Ikke-robot")), + robot_nystomi = dplyr::case_when( + Tilgang_utvidet2 == "Laparoskopisk" & NyStomi == 0 ~ "Lap.u.stomi", + Tilgang_utvidet2 == "Laparoskopisk" & NyStomi == 1 ~ "Lap.m.stomi", + Tilgang_utvidet2 == "Robotassistert" & NyStomi == 0 ~ "Robot.u.stomi", + Tilgang_utvidet2 == "Robotassistert" & NyStomi == 1 ~ "Robot.m.stomi", + ), + robot_nystomi = as.factor(robot_nystomi) + ) +RegData <- RegDataAll[RegDataAll$Aar==rap_aar, ] + +# DG <- read.csv2('~/mydata/norgast/dg_opgr_shus.csv') +# DG <- DG[!is.na(DG$AvdRESH), ] +# # DG <- DG[DG$n_norgast != 0, ] +# +# graaUt_kolon <- DG$Sykehusnavn[DG$DG < 60 & DG$Op_gr == 1] +# graaUt_rektum <- DG$Sykehusnavn[DG$DG < 60 & DG$Op_gr == 2] +# +# ############# OBS: MIDLERTIDIG ############################################ +# ############# OBS: MIDLERTIDIG ############################################ +# graaUt_kolon <- graaUt_kolon[!(graaUt_kolon %in% c("OUS-Radiumhospitalet", "Sykehuset Levanger"))] +# graaUt_rektum <- graaUt_rektum[!(graaUt_rektum %in% c("OUS-Radiumhospitalet", "Sykehuset Levanger"))] +# ############# OBS: MIDLERTIDIG ############################################ +# ############# OBS: MIDLERTIDIG ############################################ + +sh_norgast <- RegDataAll[match(unique(RegDataAll$AvdRESH), RegDataAll$AvdRESH), c("AvdRESH", "Sykehusnavn")] + +dgterskel <- 70 +DG <- read.csv2('~/mydata/norgast/DG_Sykehus/Kolon_sh.csv') %>% + merge(sh_norgast, by = "AvdRESH", all.x = TRUE) %>% + dplyr::filter(!is.na(Sykehusnavn)) +graaUt_kolon <- DG$Sykehusnavn[DG$DG_norgast < dgterskel & + DG$Sykehusnavn != "OUS-Radiumhospitalet"] ## OBS:Spesialtilpasning Radium!!! + +DG <- read.csv2('~/mydata/norgast/DG_Sykehus/Rektum_sh.csv') %>% + merge(sh_norgast, by = "AvdRESH", all.x = TRUE) %>% + dplyr::filter(!is.na(Sykehusnavn)) +graaUt_rektum <- DG$Sykehusnavn[DG$DG_norgast < dgterskel] -DG <- read.csv2('~/mydata/norgast/dg_opgr_shus.csv') -DG <- DG[!is.na(DG$AvdRESH), ] -# DG <- DG[DG$n_norgast != 0, ] - -graaUt_kolon <- DG$Sykehusnavn[DG$DG < 60 & DG$Op_gr == 1] -graaUt_rektum <- DG$Sykehusnavn[DG$DG < 60 & DG$Op_gr == 2] figstr <- 1 tmp <- Sys.setlocale(category = "LC_ALL", locale = "nb_NO.UTF-8") @@ -80,7 +127,7 @@ pktStr=1.0 legPlass='top' minstekravTxt='Akseptabelt' maalTxt='Mål' -dg_tekst <- "Dekningsgrad < 60 %" +dg_tekst <- paste0("Dekningsgrad < ", dgterskel, " %") graaUt=NA minald=0 maxald=130 @@ -107,7 +154,7 @@ malign <- 99 annet_format_ut <- T ut_format <- 'svg' -figfolder <- "~/mydata/norgast/fig_aarsrapp2022/kolon/" +figfolder <- "~/mydata/norgast/fig_aarsrapp2023/kolon/" if (!dir.exists(figfolder)) { dir.create(figfolder) } @@ -313,7 +360,7 @@ norgastIndikator_rapporteket( skriftStr=skriftStr, lavDG = graaUt_kolon, lavDGtekst = dg_tekst, pktStr=pktStr, legPlass='topleft', minstekravTxt=minstekravTxt, maalTxt=maalTxt, graaUt=graaUt, whoEcog= c('0', '1'), inkl_konf=inkl_konf, op_gruppe=op_gruppe, datoFra=datoFra, - datoTil=datoTil, hastegrad_hybrid=hastegrad_hybrid, malign=malign) + datoTil=datoTil, hastegrad_hybrid=hastegrad_hybrid, malign=1) if (annet_format_ut) { outfile <- paste0(substr(outfile, 1, nchar(outfile)-3), ut_format) norgastIndikator_rapporteket( @@ -322,7 +369,7 @@ if (annet_format_ut) { skriftStr=skriftStr, lavDG = graaUt_kolon, lavDGtekst = dg_tekst, pktStr=pktStr, legPlass='topleft', minstekravTxt=minstekravTxt, maalTxt=maalTxt, graaUt=graaUt, whoEcog= c('0', '1'), inkl_konf=inkl_konf, op_gruppe=op_gruppe, datoFra=datoFra, - datoTil=datoTil, hastegrad_hybrid=hastegrad_hybrid, malign=malign) + datoTil=datoTil, hastegrad_hybrid=hastegrad_hybrid, malign=1) } @@ -362,6 +409,37 @@ if (annet_format_ut) { hastegrad_hybrid=0, outfile=outfile, reshID=reshID) } +outfile <- 'AccordionGrad_benign_elektiv.pdf' +outfile <- paste0(figfolder, outfile) +FigAndeler( + RegData, valgtVar='AccordionGrad', enhetsUtvalg=0, op_gruppe=op_gruppe, + hastegrad=1, outfile=outfile, reshID=reshID, + icd_kode = c("K500", "K501", "K508", "K509", "K511", "K512", "K513", "K514", + "K515", "K518", "K519"), whoEcog = c(0, 1)) +if (annet_format_ut) { + outfile <- paste0(substr(outfile, 1, nchar(outfile)-3), ut_format) + FigAndeler( + RegData, valgtVar='AccordionGrad', enhetsUtvalg=0, op_gruppe=op_gruppe, + hastegrad=1, outfile=outfile, reshID=reshID, + icd_kode = c("K500", "K501", "K508", "K509", "K511", "K512", "K513", "K514", + "K515", "K518", "K519"), whoEcog = c(0, 1)) +} + +outfile <- 'AccordionGrad_benign_akutt.pdf' +outfile <- paste0(figfolder, outfile) +FigAndeler( + RegData, valgtVar='AccordionGrad', enhetsUtvalg=0, op_gruppe=op_gruppe, + hastegrad=2, outfile=outfile, reshID=reshID, + icd_kode = c("K500", "K501", "K508", "K509", "K511", "K512", "K513", "K514", + "K515", "K518", "K519"), whoEcog = c(0, 1)) +if (annet_format_ut) { + outfile <- paste0(substr(outfile, 1, nchar(outfile)-3), ut_format) + FigAndeler( + RegData, valgtVar='AccordionGrad', enhetsUtvalg=0, op_gruppe=op_gruppe, + hastegrad=2, outfile=outfile, reshID=reshID, + icd_kode = c("K500", "K501", "K508", "K509", "K511", "K512", "K513", "K514", + "K515", "K518", "K519"), whoEcog = c(0, 1)) +} valgtVar <- 'ReLapNarkose' @@ -410,13 +488,14 @@ if (annet_format_ut) { valgtVar <- 'Anastomoselekkasje' outfile <- 'Anastomoselekkasje_malign_ecog0_1aar.pdf' outfile <- paste0(figfolder, outfile) -norgastIndikator_rapporteket( +utdata_kolon_anastomoselekk_refpas <- norgastIndikator_rapporteket( RegDataAll, valgtVar = valgtVar, outfile=outfile, tittel=tittel, width=width, height=height, decreasing=T, terskel=terskel, minstekrav = 6, maal = 4, skriftStr=skriftStr, maalretn='lav', lavDG = graaUt_kolon, lavDGtekst = dg_tekst, pktStr=pktStr, legPlass='topright', minstekravTxt=minstekravTxt, maalTxt=maalTxt, graaUt=graaUt, whoEcog= c('0', '1'), inkl_konf=inkl_konf, op_gruppe=op_gruppe, - datoFra=datoFra, datoTil=datoTil, hastegrad_hybrid=hastegrad_hybrid, malign=malign) + datoFra=datoFra, datoTil=datoTil, hastegrad_hybrid=hastegrad_hybrid, malign=malign, + prikktall = FALSE, pst_kolonne = TRUE) if (annet_format_ut) { outfile <- paste0(substr(outfile, 1, nchar(outfile)-3), ut_format) norgastIndikator_rapporteket( @@ -425,19 +504,54 @@ if (annet_format_ut) { skriftStr=skriftStr, maalretn='lav', lavDG = graaUt_kolon, lavDGtekst = dg_tekst, pktStr=pktStr, legPlass='topright', minstekravTxt=minstekravTxt, maalTxt=maalTxt, graaUt=graaUt, whoEcog= c('0', '1'), inkl_konf=inkl_konf, op_gruppe=op_gruppe, - datoFra=datoFra, datoTil=datoTil, hastegrad_hybrid=hastegrad_hybrid, malign=malign) + datoFra=datoFra, datoTil=datoTil, hastegrad_hybrid=hastegrad_hybrid, malign=malign, + prikktall = FALSE, pst_kolonne = TRUE) } -outfile <- 'mortalitet90_kolon_aar.pdf' +RegDataAll$UK_MC <- NA +RegDataAll <- RegDataAll %>% dplyr::mutate( + UK_MC = case_when( + sub("(\\w+).*", "\\1", RegDataAll$Hoveddiagnose2) %in% + c("K500", "K501", "K508", "K509") ~ "M.Crohn", + sub("(\\w+).*", "\\1", RegDataAll$Hoveddiagnose2) %in% + c("K511", "K512", "K513", "K514", "K515", "K518", "K519") ~ "Ulcerøs kolitt"), + UK_MC = as.factor(UK_MC)) + + +outfile <- 'mortalitet90_kolon_aar_elektiv.pdf' outfile <- paste0(figfolder, outfile) valgtVar <- 'mortalitet90' -norgastIndikator_rapporteket( +utdata_kolon_mort <- norgastIndikator_rapporteket( + RegDataAll, valgtVar = valgtVar, outfile=outfile, tittel=tittel, width=width, + height=height, decreasing=T, terskel=terskel, minstekrav = NA, maal = NA, + skriftStr=skriftStr, pktStr=pktStr, legPlass=legPlass, minstekravTxt=minstekravTxt, + maalTxt=maalTxt, graaUt=graaUt, lavDG = graaUt_kolon, lavDGtekst = dg_tekst, + inkl_konf=inkl_konf, op_gruppe=op_gruppe, datoFra=datoFra, datoTil=datoTil, + hastegrad_hybrid=99, malign=99, kun_ferdigstilte = F, hastegrad = 1, + prikktall = FALSE, pst_kolonne = TRUE) +if (annet_format_ut) { + outfile <- paste0(substr(outfile, 1, nchar(outfile)-3), ut_format) + norgastIndikator_rapporteket( + RegDataAll, valgtVar = valgtVar, outfile=outfile, tittel=tittel, width=width, + height=height, decreasing=T, terskel=terskel, minstekrav = NA, maal = NA, + skriftStr=skriftStr, pktStr=pktStr, legPlass=legPlass, minstekravTxt=minstekravTxt, + maalTxt=maalTxt, graaUt=graaUt, lavDG = graaUt_kolon, lavDGtekst = dg_tekst, + inkl_konf=inkl_konf, op_gruppe=op_gruppe, datoFra=datoFra, datoTil=datoTil, + hastegrad_hybrid=99, malign=99, kun_ferdigstilte = F, hastegrad = 1, + prikktall = FALSE, pst_kolonne = TRUE) +} + +outfile <- 'mortalitet90_kolon_aar_akutt.pdf' +outfile <- paste0(figfolder, outfile) +valgtVar <- 'mortalitet90' +utdata_kolon_mort <- norgastIndikator_rapporteket( RegDataAll, valgtVar = valgtVar, outfile=outfile, tittel=tittel, width=width, height=height, decreasing=T, terskel=terskel, minstekrav = NA, maal = NA, skriftStr=skriftStr, pktStr=pktStr, legPlass=legPlass, minstekravTxt=minstekravTxt, maalTxt=maalTxt, graaUt=graaUt, lavDG = graaUt_kolon, lavDGtekst = dg_tekst, inkl_konf=inkl_konf, op_gruppe=op_gruppe, datoFra=datoFra, datoTil=datoTil, - hastegrad_hybrid=99, malign=99, kun_ferdigstilte = F) + hastegrad_hybrid=99, malign=99, kun_ferdigstilte = F, hastegrad = 2, + prikktall = FALSE, pst_kolonne = TRUE) if (annet_format_ut) { outfile <- paste0(substr(outfile, 1, nchar(outfile)-3), ut_format) norgastIndikator_rapporteket( @@ -446,9 +560,11 @@ if (annet_format_ut) { skriftStr=skriftStr, pktStr=pktStr, legPlass=legPlass, minstekravTxt=minstekravTxt, maalTxt=maalTxt, graaUt=graaUt, lavDG = graaUt_kolon, lavDGtekst = dg_tekst, inkl_konf=inkl_konf, op_gruppe=op_gruppe, datoFra=datoFra, datoTil=datoTil, - hastegrad_hybrid=99, malign=99, kun_ferdigstilte = F) + hastegrad_hybrid=99, malign=99, kun_ferdigstilte = F, hastegrad = 2, + prikktall = FALSE, pst_kolonne = TRUE) } + outfile <- 'mortalitet90_kolon_aar_refpas.pdf' outfile <- paste0(figfolder, outfile) valgtVar <- 'mortalitet90' @@ -512,6 +628,88 @@ if (annet_format_ut) { hastegrad=2, malign=99) } + +outfile <- "nystomi_benign_torunn_gruppert_kolitt.pdf" +outfile <- paste0(figfolder, outfile) +norgastIndikator_nasjonal( + RegData = RegDataAll, valgtVar = "NyStomi", outfile=outfile, tittel=tittel, width=width, + height=height, decreasing=decreasing, terskel=terskel, minstekrav = minstekrav, + maal = maal, skriftStr=skriftStr, pktStr=pktStr, legPlass=legPlass, + minstekravTxt=minstekravTxt, maalTxt=maalTxt, graaUt=graaUt, + lavDGtekst = dg_tekst, inkl_konf=inkl_konf, + op_gruppe=op_gruppe, datoFra=datoFra, datoTil=datoTil, + hastegrad=1, malign=0, Grvar = "UK_MC", kun_ferdigstilte = T) +if (annet_format_ut) { + outfile <- paste0(substr(outfile, 1, nchar(outfile)-3), ut_format) + norgastIndikator_nasjonal( + RegData = RegDataAll, valgtVar = "NyStomi", outfile=outfile, tittel=tittel, width=width, + height=height, decreasing=decreasing, terskel=terskel, minstekrav = minstekrav, + maal = maal, skriftStr=skriftStr, pktStr=pktStr, legPlass=legPlass, + minstekravTxt=minstekravTxt, maalTxt=maalTxt, graaUt=graaUt, + lavDGtekst = dg_tekst, inkl_konf=inkl_konf, + op_gruppe=op_gruppe, datoFra=datoFra, datoTil=datoTil, + hastegrad=1, malign=0, Grvar = "UK_MC", kun_ferdigstilte = T) +} + +# outfile <- "nystomi_benign_nyanastomose_torunn_gruppert_kolitt.pdf" +# outfile <- paste0(figfolder, outfile) +# norgastIndikator_nasjonal( +# RegData = RegDataAll, valgtVar = "NyStomi", outfile=outfile, tittel=tittel, width=width, +# height=height, decreasing=decreasing, terskel=terskel, minstekrav = minstekrav, +# maal = maal, skriftStr=skriftStr, pktStr=pktStr, legPlass=legPlass, +# minstekravTxt=minstekravTxt, maalTxt=maalTxt, graaUt=graaUt, +# lavDGtekst = dg_tekst, inkl_konf=inkl_konf, ny_anastomose = 1, +# op_gruppe=op_gruppe, datoFra=datoFra, datoTil=datoTil, whoEcog = 0:1, +# hastegrad=1, malign=0, Grvar = "UK_MC", kun_ferdigstilte = T) +# if (annet_format_ut) { +# outfile <- paste0(substr(outfile, 1, nchar(outfile)-3), ut_format) +# norgastIndikator_nasjonal( +# RegData = RegDataAll, valgtVar = "NyStomi", outfile=outfile, tittel=tittel, width=width, +# height=height, decreasing=decreasing, terskel=terskel, minstekrav = minstekrav, +# maal = maal, skriftStr=skriftStr, pktStr=pktStr, legPlass=legPlass, +# minstekravTxt=minstekravTxt, maalTxt=maalTxt, graaUt=graaUt, +# lavDGtekst = dg_tekst, inkl_konf=inkl_konf, ny_anastomose = 1, +# op_gruppe=op_gruppe, datoFra=datoFra, datoTil=datoTil, whoEcog = 0:1, +# hastegrad=1, malign=0, Grvar = "UK_MC", kun_ferdigstilte = T) +# } + +RegDataAll$hgrad = factor(RegDataAll$Hastegrad, levels = 1:2, labels = c("Elektiv", "Akutt")) +outfile <- "nystomi_benign_nyanastomose_torunn_gruppert_kolitt_hastegrad.pdf" +outfile <- paste0(figfolder, outfile) +norgast::norgastAndelGruppert2Gr(valgtVar="NyStomi", outfile = outfile, + Grvar1 = "UK_MC", Grvar2 = "hgrad", + tittel = "Andel nye stomier", + RegData = RegDataAll, datoFra="2021-01-01", + datoTil="2023-12-31",op_gruppe=1, ny_anastomose = 99, + malign=0, ytxt = "Diagnose") +if (annet_format_ut) { + outfile <- paste0(substr(outfile, 1, nchar(outfile)-3), ut_format) + norgast::norgastAndelGruppert2Gr(valgtVar="NyStomi", outfile = outfile, + Grvar1 = "UK_MC", Grvar2 = "hgrad", + tittel = "Andel nye stomier", + RegData = RegDataAll, datoFra="2021-01-01", + datoTil="2023-12-31",op_gruppe=1, ny_anastomose = 99, + malign=0, ytxt = "Diagnose") +} + +outfile <- "anastomoselekkasje_benign_torunn_gruppert_kolitt_hastegrad.pdf" +outfile <- paste0(figfolder, outfile) +norgast::norgastAndelGruppert2Gr(valgtVar="Anastomoselekkasje", outfile = outfile, + Grvar1 = "UK_MC", Grvar2 = "hgrad", + tittel = "Andel anastomoselekkasjer", + RegData = RegDataAll, datoFra="2021-01-01", + datoTil="2023-12-31",op_gruppe=1, ny_anastomose = 1, + malign=0, ytxt = "Diagnose") +if (annet_format_ut) { + outfile <- paste0(substr(outfile, 1, nchar(outfile)-3), ut_format) + norgast::norgastAndelGruppert2Gr(valgtVar="Anastomoselekkasje", outfile = outfile, + Grvar1 = "UK_MC", Grvar2 = "hgrad", + tittel = "Andel anastomoselekkasjer", + RegData = RegDataAll, datoFra="2021-01-01", + datoTil="2023-12-31",op_gruppe=1, ny_anastomose = 1, + malign=0, ytxt = "Diagnose") +} + @ \begin{figure}[ht] @@ -526,6 +724,18 @@ if (annet_format_ut) { \caption{AccordionGrad\_elektiv\_benign.pdf} \end{figure} +\begin{figure}[ht] +\centering +\includegraphics[width=\Sexpr{figstr}\textwidth]{\Sexpr{figfolder}AccordionGrad_benign_elektiv.pdf} +\caption{AccordionGrad\_benign\_elektiv.pdf} +\end{figure} + +\begin{figure}[ht] +\centering +\includegraphics[width=\Sexpr{figstr}\textwidth]{\Sexpr{figfolder}AccordionGrad_benign_akutt.pdf} +\caption{AccordionGrad\_benign\_akutt.pdf} +\end{figure} + \begin{figure}[ht] \centering \includegraphics[width=\Sexpr{figstr}\textwidth]{\Sexpr{figfolder}AccordionGrad_elektiv_malign.pdf} % 10 @@ -556,12 +766,26 @@ if (annet_format_ut) { \caption{Anastomoselekkasje\_malign\_ecog0\_1aar.pdf} \end{figure} + +% \begin{figure}[ht] +% \centering +% \includegraphics[width=\Sexpr{figstr}\textwidth]{\Sexpr{figfolder}Anastomoselekkasje_benign_torunn_gruppert_kolitt.pdf} +% \caption{Anastomoselekkasje\_benign\_torunn\_gruppert\_kolitt.pdf} +% \end{figure} + +\begin{figure}[ht] +\centering +\includegraphics[width=\Sexpr{figstr}\textwidth]{\Sexpr{figfolder}mortalitet90_kolon_aar_elektiv.pdf} +\caption{mortalitet90\_kolon\_aar\_elektiv.pdf} +\end{figure} + \begin{figure}[ht] \centering -\includegraphics[width=\Sexpr{figstr}\textwidth]{\Sexpr{figfolder}mortalitet90_kolon_aar.pdf} -\caption{mortalitet90\_kolon\_aar.pdf} +\includegraphics[width=\Sexpr{figstr}\textwidth]{\Sexpr{figfolder}mortalitet90_kolon_aar_akutt.pdf} +\caption{mortalitet90\_kolon\_aar\_akutt.pdf} \end{figure} + \begin{figure}[ht] \centering \includegraphics[width=\Sexpr{figstr}\textwidth]{\Sexpr{figfolder}mortalitet90_kolon_aar_refpas.pdf} @@ -580,6 +804,24 @@ if (annet_format_ut) { \caption{ohjelp\_kveld\_kolon\_aar.pdf} \end{figure} +\begin{figure}[ht] +\centering +\includegraphics[width=\Sexpr{figstr}\textwidth]{\Sexpr{figfolder}nystomi_benign_torunn_gruppert_kolitt.pdf} +\caption{nystomi\_benign\_torunn\_gruppert\_kolitt.pdf} +\end{figure} + +\begin{figure}[ht] +\centering +\includegraphics[width=\Sexpr{figstr}\textwidth]{\Sexpr{figfolder}nystomi_benign_nyanastomose_torunn_gruppert_kolitt_hastegrad.pdf} +\caption{nystomi\_benign\_nyanastomose\_torunn\_gruppert\_kolitt\_hastegrad.pdf} +\end{figure} + +\begin{figure}[ht] +\centering +\includegraphics[width=\Sexpr{figstr}\textwidth]{\Sexpr{figfolder}anastomoselekkasje_benign_torunn_gruppert_kolitt_hastegrad.pdf} +\caption{anastomoselekkasje\_benign\_torunn\_gruppert\_kolitt\_hastegrad.pdf} +\end{figure} + \clearpage \section{Rektumreseksjoner} @@ -835,7 +1077,8 @@ norgastIndikator_rapporteket( skriftStr=skriftStr, maalretn='lav', lavDG = graaUt_rektum, lavDGtekst = dg_tekst, pktStr=pktStr, legPlass='topright', minstekravTxt=minstekravTxt, maalTxt=maalTxt, graaUt=graaUt, whoEcog = 0:1, inkl_konf=inkl_konf, op_gruppe=op_gruppe, - datoFra=datoFra, datoTil=datoTil, hastegrad_hybrid=1, malign=1) + datoFra=datoFra, datoTil=datoTil, hastegrad_hybrid=1, malign=1, + prikktall = FALSE, pst_kolonne = TRUE) if (annet_format_ut) { outfile <- paste0(substr(outfile, 1, nchar(outfile)-3), ut_format) norgastIndikator_rapporteket( @@ -844,7 +1087,8 @@ if (annet_format_ut) { skriftStr=skriftStr, maalretn='lav', lavDG = graaUt_rektum, lavDGtekst = dg_tekst, pktStr=pktStr, legPlass='topright', minstekravTxt=minstekravTxt, maalTxt=maalTxt, graaUt=graaUt, whoEcog = 0:1, inkl_konf=inkl_konf, op_gruppe=op_gruppe, - datoFra=datoFra, datoTil=datoTil, hastegrad_hybrid=1, malign=1) + datoFra=datoFra, datoTil=datoTil, hastegrad_hybrid=1, malign=1, + prikktall = FALSE, pst_kolonne = TRUE) } outfile <- 'konv_rate_rektum_malign_ecog0_1.pdf' @@ -856,7 +1100,8 @@ norgastIndikator_rapporteket( skriftStr=skriftStr, maalretn='lav', lavDG = graaUt_rektum, lavDGtekst = dg_tekst, pktStr=pktStr, legPlass='topright', minstekravTxt=minstekravTxt, maalTxt=maalTxt, graaUt=graaUt, whoEcog= c('0', '1'), inkl_konf=inkl_konf, op_gruppe=op_gruppe, - datoFra=datoFra, datoTil=datoTil, hastegrad_hybrid=1, malign=1) + datoFra=datoFra, datoTil=datoTil, hastegrad_hybrid=1, malign=1, + prikktall = FALSE, pst_kolonne = TRUE) if (annet_format_ut) { outfile <- paste0(substr(outfile, 1, nchar(outfile)-3), ut_format) norgastIndikator_rapporteket( @@ -865,7 +1110,8 @@ if (annet_format_ut) { skriftStr=skriftStr, maalretn='lav', lavDG = graaUt_rektum, lavDGtekst = dg_tekst, pktStr=pktStr, legPlass='topright', minstekravTxt=minstekravTxt, maalTxt=maalTxt, graaUt=graaUt, whoEcog= c('0', '1'), inkl_konf=inkl_konf, op_gruppe=op_gruppe, - datoFra=datoFra, datoTil=datoTil, hastegrad_hybrid=1, malign=1) + datoFra=datoFra, datoTil=datoTil, hastegrad_hybrid=1, malign=1, + prikktall = FALSE, pst_kolonne = TRUE) } outfile <- 'mortalitet90_rektum_aar.pdf' @@ -878,7 +1124,7 @@ norgastIndikator_rapporteket( pktStr=pktStr, legPlass=legPlass, minstekravTxt=minstekravTxt, maalTxt=maalTxt, graaUt=graaUt, inkl_konf=inkl_konf, op_gruppe=op_gruppe, datoFra=datoFra, datoTil=datoTil, hastegrad_hybrid=hastegrad_hybrid, malign=malign, - kun_ferdigstilte = F, prikktall = FALSE) + kun_ferdigstilte = F, prikktall = FALSE, pst_kolonne = TRUE) if (annet_format_ut) { outfile <- paste0(substr(outfile, 1, nchar(outfile)-3), ut_format) norgastIndikator_rapporteket( @@ -888,7 +1134,7 @@ if (annet_format_ut) { pktStr=pktStr, legPlass=legPlass, minstekravTxt=minstekravTxt, maalTxt=maalTxt, graaUt=graaUt, inkl_konf=inkl_konf, op_gruppe=op_gruppe, datoFra=datoFra, datoTil=datoTil, hastegrad_hybrid=hastegrad_hybrid, malign=malign, - kun_ferdigstilte = F, prikktall = FALSE) + kun_ferdigstilte = F, prikktall = FALSE, pst_kolonne = TRUE) } outfile <- 'AccordionGrad_rekt.pdf' @@ -903,29 +1149,266 @@ if (annet_format_ut) { Ngrense=terskel, lavDG = graaUt_rektum) } - -outfile <- 'KumAcc_rekt_aar.pdf' +RegDataAll$NyStomi_faktor <- factor(RegDataAll$NyStomi, levels = 0:1, labels = c("Ny stomi: nei", "Ny stomi: ja")) +outfile <- 'KumAcc_rekt_gruppert_gruppertnystomi.pdf' outfile <- paste0(figfolder, outfile) valgtVar <- 'KumAcc' -norgastIndikator_rapporteket( +norgastIndikator_gruppert( RegDataAll, valgtVar = valgtVar, outfile=outfile, tittel=tittel, width=width, - height=height, decreasing=decreasing, terskel=terskel, minstekrav = minstekrav, - maal = maal, skriftStr=skriftStr, pktStr=pktStr, legPlass=legPlass, - minstekravTxt=minstekravTxt, maalTxt=maalTxt, graaUt=graaUt, lavDG = graaUt_rektum, - inkl_konf=inkl_konf, op_gruppe=op_gruppe, datoFra=datoFra, datoTil=datoTil, - hastegrad_hybrid=hastegrad_hybrid, malign=malign) + height=900, decreasing=T, terskel=terskel, minstekrav = NA, maal = NA, + skriftStr=skriftStr, lavDG = graaUt_rektum, lavDGtekst = dg_tekst, + pktStr=pktStr, legPlass=legPlass, minstekravTxt=minstekravTxt, maalTxt=maalTxt, + graaUt=graaUt, inkl_konf=inkl_konf, op_gruppe=op_gruppe, datoFra=datoFra, + datoTil=datoTil, hastegrad_hybrid=hastegrad_hybrid, malign=malign, + kun_ferdigstilte = T, prikktall = FALSE, Grvar2 = "NyStomi_faktor") if (annet_format_ut) { outfile <- paste0(substr(outfile, 1, nchar(outfile)-3), ut_format) - norgastIndikator_rapporteket( + norgastIndikator_gruppert( RegDataAll, valgtVar = valgtVar, outfile=outfile, tittel=tittel, width=width, - height=height, decreasing=decreasing, terskel=terskel, minstekrav = minstekrav, - maal = maal, skriftStr=skriftStr, pktStr=pktStr, legPlass=legPlass, - minstekravTxt=minstekravTxt, maalTxt=maalTxt, graaUt=graaUt, lavDG = graaUt_rektum, - inkl_konf=inkl_konf, op_gruppe=op_gruppe, datoFra=datoFra, datoTil=datoTil, - hastegrad_hybrid=hastegrad_hybrid, malign=malign) + height=900, decreasing=T, terskel=terskel, minstekrav = NA, maal = NA, + skriftStr=skriftStr, lavDG = graaUt_rektum, lavDGtekst = dg_tekst, + pktStr=pktStr, legPlass=legPlass, minstekravTxt=minstekravTxt, maalTxt=maalTxt, + graaUt=graaUt, inkl_konf=inkl_konf, op_gruppe=op_gruppe, datoFra=datoFra, + datoTil=datoTil, hastegrad_hybrid=hastegrad_hybrid, malign=malign, + kun_ferdigstilte = T, prikktall = FALSE, Grvar2 = "NyStomi_faktor") +} + + + +# RegDataAll$AvstandAnalVerge_kat2 <- +# cut(RegDataAll$AvstandAnalVerge, breaks = c(0,11,15.9), +# labels = c("0-11.9 cm", "12.0-15.9 cm"), include.lowest = T) +outfile <- 'avlastende_stomi_gruppert_analverge.pdf' +outfile <- paste0(figfolder, outfile) +valgtVar <- 'AvlastendeStomiRektum' +# valgtVar <- 'NyStomi' +norgastIndikator_gruppert( + RegDataAll, valgtVar = valgtVar, outfile=outfile, tittel=tittel, width=width, + height=900, decreasing=T, terskel=terskel, minstekrav = NA, maal = NA, + skriftStr=skriftStr, lavDG = graaUt_rektum, lavDGtekst = dg_tekst, + pktStr=pktStr, legPlass=legPlass, minstekravTxt=minstekravTxt, maalTxt=maalTxt, + graaUt=graaUt, inkl_konf=inkl_konf, op_gruppe=op_gruppe, datoFra=datoFra, + datoTil=datoTil, hastegrad_hybrid=hastegrad_hybrid, malign=1, ny_anastomose=1, + kun_ferdigstilte = T, prikktall = FALSE, Grvar2 = "AvstandAnalVerge_kat2") +if (annet_format_ut) { + outfile <- paste0(substr(outfile, 1, nchar(outfile)-3), ut_format) + norgastIndikator_gruppert( + RegDataAll, valgtVar = valgtVar, outfile=outfile, tittel=tittel, width=width, + height=height, decreasing=T, terskel=terskel, minstekrav = NA, maal = NA, + skriftStr=skriftStr, lavDG = graaUt_rektum, lavDGtekst = dg_tekst, + pktStr=pktStr, legPlass=legPlass, minstekravTxt=minstekravTxt, maalTxt=maalTxt, + graaUt=graaUt, inkl_konf=inkl_konf, op_gruppe=op_gruppe, datoFra=datoFra, + datoTil=datoTil, hastegrad_hybrid=hastegrad_hybrid, malign=1,ny_anastomose=1, + kun_ferdigstilte = T, prikktall = FALSE, Grvar2 = "AvstandAnalVerge_kat2") +} + + +# ###### TMP +# outfile <- 'avlastende_stomi_ugruppert.pdf' +# outfile <- paste0(figfolder, outfile) +# valgtVar <- 'AvlastendeStomiRektum' +# # valgtVar <- 'NyStomi' +# # norgastIndikator_gruppert( +# # RegDataAll, valgtVar = valgtVar, outfile=outfile, tittel=tittel, width=width, +# # height=900, decreasing=T, terskel=terskel, minstekrav = NA, maal = NA, +# # skriftStr=skriftStr, lavDG = graaUt_rektum, lavDGtekst = dg_tekst, +# # pktStr=pktStr, legPlass=legPlass, minstekravTxt=minstekravTxt, maalTxt=maalTxt, +# # graaUt=graaUt, inkl_konf=inkl_konf, op_gruppe=op_gruppe, datoFra=datoFra, +# # datoTil=datoTil, hastegrad_hybrid=hastegrad_hybrid, malign=1, ny_anastomose=1, +# # kun_ferdigstilte = T, prikktall = FALSE, Grvar2 = "AvstandAnalVerge_kat2") +# norgastIndikator_rapporteket( +# RegDataAll %>% filter(!is.na(AvstandAnalVerge_kat2)), valgtVar = valgtVar, outfile=outfile, tittel=tittel, width=width, +# height=height, decreasing=T, terskel=terskel, minstekrav = NA, maal = NA, +# skriftStr=skriftStr, lavDG = graaUt_rektum, lavDGtekst = dg_tekst, +# pktStr=pktStr, legPlass=legPlass, minstekravTxt=minstekravTxt, maalTxt=maalTxt, +# graaUt=graaUt, inkl_konf=inkl_konf, op_gruppe=op_gruppe, datoFra=datoFra, +# datoTil=datoTil, hastegrad_hybrid=hastegrad_hybrid, malign=1, ny_anastomose = 1, +# kun_ferdigstilte = T, prikktall = FALSE, pst_kolonne = TRUE) +# ########### TMP SLUTT + +aux <- RegDataAll %>% + dplyr::filter(Op_gr == 2, + Robotassistanse %in% 0:1) #%>% +# dplyr::mutate(Tilgang_utvidet = dplyr::case_when( +# Tilgang_utvidet == 4 ~ 2, +# Tilgang_utvidet == 5 ~ 3, +# Tilgang_utvidet %in% 1:3 ~ Tilgang_utvidet +# ), +# Tilgang_utvidet = factor( +# Tilgang_utvidet, levels = 2:3, +# labels = c("Laparoskopisk", +# "Robotassistert")), +# Robot = factor(Robotassistanse, levels = c(1,0), +# labels = c("Robot", "Ikke-robot")), +# robot_nystomi = dplyr::case_when( +# Tilgang_utvidet == "Laparoskopisk" & NyStomi == 0 ~ "Lap.u.stomi", +# Tilgang_utvidet == "Laparoskopisk" & NyStomi == 1 ~ "Lap.m.stomi", +# Tilgang_utvidet == "Robotassistert" & NyStomi == 0 ~ "Robot.u.stomi", +# Tilgang_utvidet == "Robotassistert" & NyStomi == 1 ~ "Robot.m.stomi", +# ), +# robot_nystomi = as.factor(robot_nystomi) +# ) + +outfile <- 'anastomoselekk_gruppert_stomi_tilgang.pdf' +outfile <- paste0(figfolder, outfile) +valgtVar <- 'Anastomoselekkasje' +norgastIndikator_gruppert( + RegData=aux, valgtVar = valgtVar, outfile=outfile, tittel=tittel, width=width, + height=900, decreasing=T, terskel=terskel, minstekrav = NA, maal = NA, + skriftStr=.7, lavDG = graaUt_rektum, lavDGtekst = dg_tekst, whoEcog = 0:1, + pktStr=pktStr, legPlass=legPlass, minstekravTxt=minstekravTxt, maalTxt=maalTxt, + graaUt=graaUt, inkl_konf=FALSE, op_gruppe=op_gruppe, datoFra=datoFra, + datoTil=datoTil, hastegrad=1, malign=1, ny_anastomose=1, + kun_ferdigstilte = T, prikktall = FALSE, Grvar2 = "robot_nystomi") +if (annet_format_ut) { + outfile <- paste0(substr(outfile, 1, nchar(outfile)-3), ut_format) + norgastIndikator_gruppert( + RegData=aux, valgtVar = valgtVar, outfile=outfile, tittel=tittel, width=width, + height=900, decreasing=T, terskel=terskel, minstekrav = NA, maal = NA, + skriftStr=.7, lavDG = graaUt_rektum, lavDGtekst = dg_tekst, whoEcog = 0:1, + pktStr=pktStr, legPlass=legPlass, minstekravTxt=minstekravTxt, maalTxt=maalTxt, + graaUt=graaUt, inkl_konf=FALSE, op_gruppe=op_gruppe, datoFra=datoFra, + datoTil=datoTil, hastegrad=1, malign=1, ny_anastomose=1, + kun_ferdigstilte = T, prikktall = FALSE, Grvar2 = "robot_nystomi") +} + +outfile <- 'anastomoselekk_gruppert_tilgang.pdf' +outfile <- paste0(figfolder, outfile) +valgtVar <- 'Anastomoselekkasje' +norgastIndikator_gruppert( + RegData=aux, valgtVar = valgtVar, outfile=outfile, tittel=tittel, width=width, + height=900, decreasing=T, terskel=terskel, minstekrav = NA, maal = NA, + skriftStr=.7, lavDG = graaUt_rektum, lavDGtekst = dg_tekst, whoEcog = 0:1, + pktStr=pktStr, legPlass=legPlass, minstekravTxt=minstekravTxt, maalTxt=maalTxt, + graaUt=graaUt, inkl_konf=FALSE, op_gruppe=op_gruppe, datoFra=datoFra, + datoTil=datoTil, hastegrad=1, malign=1, ny_anastomose=1, + kun_ferdigstilte = T, prikktall = FALSE, Grvar2 = "Robot") +if (annet_format_ut) { + outfile <- paste0(substr(outfile, 1, nchar(outfile)-3), ut_format) + norgastIndikator_gruppert( + RegData=aux, valgtVar = valgtVar, outfile=outfile, tittel=tittel, width=width, + height=900, decreasing=T, terskel=terskel, minstekrav = NA, maal = NA, + skriftStr=.7, lavDG = graaUt_rektum, lavDGtekst = dg_tekst, whoEcog = 0:1, + pktStr=pktStr, legPlass=legPlass, minstekravTxt=minstekravTxt, maalTxt=maalTxt, + graaUt=graaUt, inkl_konf=FALSE, op_gruppe=op_gruppe, datoFra=datoFra, + datoTil=datoTil, hastegrad=1, malign=1, ny_anastomose=1, + kun_ferdigstilte = T, prikktall = FALSE, Grvar2 = "Robot") +} + +outfile <- 'anastomoselekk_gruppert_robot_nasjonal.pdf' +outfile <- paste0(figfolder, outfile) +norgast::norgastAndelGruppert1Gr(valgtVar="Anastomoselekkasje", outfile = outfile, + Grvar1 = "Robot", + tittel = "Andel anastomoselekkasjer, ny anastomose", + RegData = aux, datoFra="2021-01-01", + datoTil="2023-12-31",op_gruppe=2, + malign=1, ytxt = "", + hastegrad = 1, whoEcog = 0:1, inkl_konf = TRUE) +if (annet_format_ut) { + outfile <- paste0(substr(outfile, 1, nchar(outfile)-3), ut_format) + norgast::norgastAndelGruppert1Gr(valgtVar="Anastomoselekkasje", outfile = outfile, + Grvar1 = "Robot", + tittel = "Andel anastomoselekkasjer, ny anastomose", + RegData = aux, datoFra="2021-01-01", + datoTil="2023-12-31",op_gruppe=2, + malign=1, ytxt = "", + hastegrad = 1, whoEcog = 0:1, inkl_konf = TRUE) } +outfile <- 'anastomoselekk_gruppert_stomi_tilgang_analverge_nasjonal.pdf' +outfile <- paste0(figfolder, outfile) +norgast::norgastAndelGruppert2Gr(valgtVar="Anastomoselekkasje", outfile = outfile, + Grvar1 = "AvstandAnalVerge_kat2", Grvar2 = "robot_nystomi", + tittel = "Andel anastomoselekkasjer, ny anastomose", + RegData = aux, datoFra="2021-01-01", + datoTil="2023-12-31",op_gruppe=2, + malign=1, ytxt = "Avstand analkanten", + hastegrad = 1, whoEcog = 0:1, inkl_konf = TRUE) +if (annet_format_ut) { + outfile <- paste0(substr(outfile, 1, nchar(outfile)-3), ut_format) + norgast::norgastAndelGruppert2Gr(valgtVar="Anastomoselekkasje", outfile = outfile, + Grvar1 = "AvstandAnalVerge_kat2", Grvar2 = "robot_nystomi", + tittel = "Andel anastomoselekkasjer, ny anastomose", + RegData = aux, datoFra="2021-01-01", + datoTil="2023-12-31",op_gruppe=2, + malign=1, ytxt = "Avstand analkanten", + hastegrad = 1, whoEcog = 0:1, inkl_konf = TRUE) +} + + +outfile <- "nystomi_gr_avstand_analkant_nasjonal.pdf" +outfile <- paste0(figfolder, outfile) +norgast::norgastAndelGruppert2Gr(valgtVar="NyStomi", outfile = outfile, + Grvar1 = "AvstandAnalVerge_kat2", Grvar2 = "Robot", + tittel = "Andel nye stomier", + RegData = aux, datoFra="2021-01-01", + datoTil="2023-12-31",op_gruppe=2, + malign=1, ytxt = "Avstand analkanten", + hastegrad = 1, whoEcog = 0:1, + ny_anastomose =1, inkl_konf = TRUE) +if (annet_format_ut) { + outfile <- paste0(substr(outfile, 1, nchar(outfile)-3), ut_format) + norgast::norgastAndelGruppert2Gr(valgtVar="NyStomi", outfile = outfile, + Grvar1 = "AvstandAnalVerge_kat2", Grvar2 = "Robot", + tittel = "Andel nye stomier", + RegData = aux, datoFra="2021-01-01", + datoTil="2023-12-31",op_gruppe=2, + malign=1, ytxt = "Avstand analkanten", + hastegrad = 1, whoEcog = 0:1, + ny_anastomose =1, inkl_konf = TRUE) +} + +@ + + +<<'tmpkladd', include=FALSE, echo=FALSE, eval=T, cache=FALSE>>= + + +outfile <- "fordeling_operasjoner_robot_analverge_nasjonal.pdf" +outfile <- paste0(figfolder, outfile) +# outfile <- "" +aux$AvstandAnalVerge_fakt <- factor(aux$AvstandAnalVerge, levels = 0:20) + +norgastFordelingOpGruppert(RegData = aux, outfile = outfile, + datoFra = paste0(rap_aar-2, "-01-01"), + datoTil = paste0(rap_aar, "-12-31"), + op_gruppe = 2, malign = 1, + hastegrad = 1, whoEcog = 0:1, + Grvar2 = "Tilgang_utvidet2") +if (annet_format_ut) { + outfile <- paste0(substr(outfile, 1, nchar(outfile)-3), ut_format) + norgastFordelingOpGruppert(RegData = aux, outfile = outfile, + datoFra = paste0(rap_aar-2, "-01-01"), + datoTil = paste0(rap_aar, "-12-31"), + op_gruppe = 2, malign = 1, + hastegrad = 1, whoEcog = 0:1, + Grvar2 = "Tilgang_utvidet2") +} + +outfile <- "fordeling_operasjoner_robot_analverge_nasjonal_v2.pdf" +outfile <- paste0(figfolder, outfile) +# outfile <- "" +aux$AvstandAnalVerge_fakt <- factor(aux$AvstandAnalVerge, levels = 0:15) + +norgastFordelingOpGruppert(RegData = aux, outfile = outfile, + datoFra = paste0(rap_aar-2, "-01-01"), + datoTil = paste0(rap_aar, "-12-31"), + op_gruppe = 2, malign = 1, + hastegrad = 1, whoEcog = 0:1, + Grvar1 = "AvstandAnalVerge_fakt", + Grvar2 = "Tilgang_utvidet2") +if (annet_format_ut) { + outfile <- paste0(substr(outfile, 1, nchar(outfile)-3), ut_format) + norgastFordelingOpGruppert(RegData = aux, outfile = outfile, + datoFra = paste0(rap_aar-2, "-01-01"), + datoTil = paste0(rap_aar, "-12-31"), + op_gruppe = 2, malign = 1, + hastegrad = 1, whoEcog = 0:1, + Grvar1 = "AvstandAnalVerge_fakt", + Grvar2 = "Tilgang_utvidet2") +} + @ @@ -961,11 +1444,10 @@ if (annet_format_ut) { \begin{figure}[ht] \centering -\includegraphics[width=\Sexpr{figstr}\textwidth]{\Sexpr{figfolder}KumAcc_rekt_aar.pdf} -\caption{KumAcc\_rekt\_aar.pdf} +\includegraphics[width=\Sexpr{figstr}\textwidth]{\Sexpr{figfolder}KumAcc_rekt_gruppert_gruppertnystomi.pdf} +\caption{KumAcc\_rekt\_gruppert\_gruppertnystomi.pdf} \end{figure} - \begin{figure}[ht] \centering \includegraphics[width=\Sexpr{figstr}\textwidth]{\Sexpr{figfolder}mortalitet90_rektum_aar.pdf} @@ -978,4 +1460,54 @@ if (annet_format_ut) { \caption{AvstandAnalVerge\_kat\_rekt.pdf} \end{figure} +\begin{figure}[ht] +\centering +\includegraphics[width=\Sexpr{figstr}\textwidth]{\Sexpr{figfolder}avlastende_stomi_gruppert_analverge.pdf} +\caption{avlastende\_stomi\_gruppert\_analverge.pdf} +\end{figure} + +\begin{figure}[ht] +\centering +\includegraphics[width=\Sexpr{figstr}\textwidth]{\Sexpr{figfolder}nystomi_gr_avstand_analkant_nasjonal.pdf} +\caption{nystomi\_gr\_avstand\_analkant\_nasjonal.pdf} +\end{figure} + +\begin{figure}[ht] +\centering +\includegraphics[width=\Sexpr{figstr}\textwidth]{\Sexpr{figfolder}anastomoselekk_gruppert_stomi_tilgang.pdf} +\caption{anastomoselekk\_gruppert\_stomi\_tilgang.pdf} +\end{figure} + +\begin{figure}[ht] +\centering +\includegraphics[width=\Sexpr{figstr}\textwidth]{\Sexpr{figfolder}anastomoselekk_gruppert_tilgang.pdf} +\caption{anastomoselekk\_gruppert\_tilgang.pdf} +\end{figure} + +\begin{figure}[ht] +\centering +\includegraphics[width=\Sexpr{figstr}\textwidth]{\Sexpr{figfolder}anastomoselekk_gruppert_robot_nasjonal.pdf} +\caption{anastomoselekk\_gruppert\_robot\_nasjonal.pdf} +\end{figure} + +\begin{figure}[ht] +\centering +\includegraphics[width=\Sexpr{figstr}\textwidth]{\Sexpr{figfolder}anastomoselekk_gruppert_stomi_tilgang_analverge_nasjonal.pdf} +\caption{anastomoselekk\_gruppert\_stomi\_tilgang\_analverge\_nasjonal.pdf} +\end{figure} + +\begin{figure}[ht] +\centering +\includegraphics[width=\Sexpr{figstr}\textwidth]{\Sexpr{figfolder}fordeling_operasjoner_robot_analverge_nasjonal.pdf} +\caption{fordeling\_operasjoner\_robot\_analverge\_nasjonal.pdf} +\end{figure} + +\begin{figure}[ht] +\centering +\includegraphics[width=\Sexpr{figstr}\textwidth]{\Sexpr{figfolder}fordeling_operasjoner_robot_analverge_nasjonal_v2.pdf} +\caption{fordeling\_operasjoner\_robot\_analverge\_nasjonal\_v2.pdf} +\end{figure} + \end{document} + + diff --git a/inst/Aarsrapport2023_kolorekt.pdf b/inst/Aarsrapport2023_kolorekt.pdf index 53aad02..9ea0ca0 100644 Binary files a/inst/Aarsrapport2023_kolorekt.pdf and b/inst/Aarsrapport2023_kolorekt.pdf differ diff --git a/inst/Aarsrapport2023_pankreas_lever.Rnw b/inst/Aarsrapport2023_pankreas_lever.Rnw index 1b327d1..160c4f0 100644 --- a/inst/Aarsrapport2023_pankreas_lever.Rnw +++ b/inst/Aarsrapport2023_pankreas_lever.Rnw @@ -51,19 +51,43 @@ datoTil= paste0(rap_aar, '-12-31') RegDataAll <- RegData[RegData$Aar<=rap_aar, ] RegData <- RegData[RegData$Aar==rap_aar, ] -DG <- read.csv2('~/mydata/norgast/dg_opgr_shus.csv') -DG <- DG[!is.na(DG$AvdRESH), ] -# DG <- DG[DG$n_norgast != 0, ] -graaUt_lever <- DG$Sykehusnavn[DG$DG < 60 & DG$Op_gr == 5] -graaUt_whipple <- DG$Sykehusnavn[DG$DG < 60 & DG$Op_gr == 6] - -DG2 <- DG[DG$Op_gr %in% 7:8, ] %>% group_by(sh) %>% - summarise(n_norgast = sum(n_norgast), - n_npr = sum(n_npr), - DG = n_norgast/n_npr*100, - AvdRESH = first(AvdRESH), - Sykehusnavn = first(Sykehusnavn)) -graaUt_pankreas <- DG2$Sykehusnavn[DG2$DG < 60] +# DG <- read.csv2('~/mydata/norgast/dg_opgr_shus.csv') +# DG <- DG[!is.na(DG$AvdRESH), ] +# # DG <- DG[DG$n_norgast != 0, ] +# graaUt_lever <- DG$Sykehusnavn[DG$DG < 60 & DG$Op_gr == 5] +# graaUt_whipple <- DG$Sykehusnavn[DG$DG < 60 & DG$Op_gr == 6] +# +# DG2 <- DG[DG$Op_gr %in% 7:8, ] %>% group_by(sh) %>% +# summarise(n_norgast = sum(n_norgast), +# n_npr = sum(n_npr), +# DG = n_norgast/n_npr*100, +# AvdRESH = first(AvdRESH), +# Sykehusnavn = first(Sykehusnavn)) +# graaUt_pankreas <- DG2$Sykehusnavn[DG2$DG < 60] + +sh_norgast <- RegDataAll[match(unique(RegDataAll$AvdRESH), RegDataAll$AvdRESH), c("AvdRESH", "Sykehusnavn")] + +dgterskel <- 70 +DG <- read.csv2('~/mydata/norgast/DG_Sykehus/Lever_sh.csv') %>% + merge(sh_norgast, by = "AvdRESH", all.x = TRUE) %>% + dplyr::filter(!is.na(Sykehusnavn)) +graaUt_lever <- DG$Sykehusnavn[DG$DG_norgast < dgterskel] + +DG <- read.csv2('~/mydata/norgast/DG_Sykehus/Whipple_sh.csv') %>% + merge(sh_norgast, by = "AvdRESH", all.x = TRUE) %>% + dplyr::filter(!is.na(Sykehusnavn)) +graaUt_whipple <- DG$Sykehusnavn[DG$DG_norgast < dgterskel] + +DG <- read.csv2('~/mydata/norgast/DG_Sykehus/Distal_pankreas_sh.csv') %>% + merge(sh_norgast, by = "AvdRESH", all.x = TRUE) %>% + dplyr::filter(!is.na(Sykehusnavn)) +graaUt_pankreas <- DG$Sykehusnavn[DG$DG_norgast < dgterskel] + +# DG <- read.csv2('~/mydata/norgast/DG_Sykehus/Andre_pankreas_sh.csv') %>% +# merge(sh_norgast, by = "AvdRESH", all.x = TRUE) %>% +# dplyr::filter(!is.na(Sykehusnavn)) +# graaUt_pankreas <- DG$Sykehusnavn[DG$DG_norgast < 70] + figstr <- 1 tmp <- Sys.setlocale(category = "LC_ALL", locale = "nb_NO.UTF-8") @@ -86,7 +110,7 @@ skriftStr=1.1 pktStr=1.2 legPlass='top' minstekravTxt='Akseptabelt' -dg_tekst <- "Dekningsgrad < 60 %" +dg_tekst <- paste0("Dekningsgrad < ", dgterskel, " %") maalTxt='Mål' graaUt=NA minald=0 @@ -113,8 +137,7 @@ op_gruppe <- '' malign <- 99 annet_format_ut <- T ut_format <- 'svg' -# figfolder <- "/home/rstudio/norgast/inst/fig_aarsrapp2021/pankreas_lever/" -figfolder <- "~/mydata/norgast/fig_aarsrapp2022/pankreas_lever/" +figfolder <- "~/mydata/norgast/fig_aarsrapp2023/pankreas_lever/" if (!dir.exists(figfolder)) { dir.create(figfolder) } @@ -123,35 +146,35 @@ if (!dir.exists(figfolder)) { \section{Leverreseksjoner} -\begin{table}[htb] -\begin{minipage}{\textwidth} -\centering -<<'Tabell:ReoperasjonerLever', results='asis', echo=FALSE, eval=T, warning=FALSE>>= -Terskel<-20 -TabellData_landet <- NorgastTabeller(RegData=RegData[RegData$FerdigForlop == 1, ], - datoFra=datoFra, datoTil=datoTil, minald=0, - maxald=130, erMann=99, enhetsUtvalg=0, - Terskel=Terskel, reshID=reshID) -Tabell <- TabellData_landet$Tabell2 -Tabell <- Tabell[c(5), ] -print( - xtable::xtable(Tabell, digits=c(0,0,0,rep(1, ncol(Tabell)-2))), - floating=FALSE, - hline.after=NULL, - align=c('l', 'l', rep('r', ncol(Tabell)-1)), - add.to.row=list( - pos=list(-1,0,0,0,0,0, nrow(Tabell)), - command=c('\\toprule\n', '& & & \\multicolumn{4}{c}{Reoperasjonsrate for - ulike årsaker (\\%)} \\\\\n', '\\cline{4-9} \n', - '& & Reoperasjons- & Anastomose- & Dyp &&&& \\\\\n', - 'Operasjonsgruppe & $N$ & rate (\\%) & lekkasje\\footnote[2]{Dette - er av alle opererte, ikke alle under risiko.} & infeksjon & Blødning - & Sårruptur & Annet & Ingen \\\\\n','\\midrule\n','\\bottomrule\n')), - include.colnames=FALSE, include.rownames=FALSE) -@ -\captionof{table}{Leverreseksjoner. Reoperasjoner \Sexpr{rap_aar}. Gjelder \textbf{hele landet}.} -\end{minipage} -\end{table} +% \begin{table}[htb] +% \begin{minipage}{\textwidth} +% \centering +% <<'Tabell:ReoperasjonerLever', results='asis', echo=FALSE, eval=T, warning=FALSE>>= +% Terskel<-20 +% TabellData_landet <- NorgastTabeller(RegData=RegData[RegData$FerdigForlop == 1, ], +% datoFra=datoFra, datoTil=datoTil, minald=0, +% maxald=130, erMann=99, enhetsUtvalg=0, +% Terskel=Terskel, reshID=reshID) +% Tabell <- TabellData_landet$Tabell2 +% Tabell <- Tabell[c(5), ] +% print( +% xtable::xtable(Tabell, digits=c(0,0,0,rep(1, ncol(Tabell)-2))), +% floating=FALSE, +% hline.after=NULL, +% align=c('l', 'l', rep('r', ncol(Tabell)-1)), +% add.to.row=list( +% pos=list(-1,0,0,0,0,0, nrow(Tabell)), +% command=c('\\toprule\n', '& & & \\multicolumn{4}{c}{Reoperasjonsrate for +% ulike årsaker (\\%)} \\\\\n', '\\cline{4-9} \n', +% '& & Reoperasjons- & Anastomose- & Dyp &&&& \\\\\n', +% 'Operasjonsgruppe & $N$ & rate (\\%) & lekkasje\\footnote[2]{Dette +% er av alle opererte, ikke alle under risiko.} & infeksjon & Blødning +% & Sårruptur & Annet & Ingen \\\\\n','\\midrule\n','\\bottomrule\n')), +% include.colnames=FALSE, include.rownames=FALSE) +% @ +% \captionof{table}{Leverreseksjoner. Reoperasjoner \Sexpr{rap_aar}. Gjelder \textbf{hele landet}.} +% \end{minipage} +% \end{table} \begin{table}[htb] \begin{minipage}{\textwidth} @@ -304,35 +327,35 @@ if (annet_format_ut) { \section{Whipples operasjon} -\begin{table}[htb] -\begin{minipage}{\textwidth} -\centering -<<'Tabell:ReoperasjonerWhipple', results='asis', echo=FALSE, eval=T, warning=FALSE>>= -Terskel<-20 -TabellData_landet <- NorgastTabeller(RegData=RegData[RegData$FerdigForlop == 1, ], - datoFra=datoFra, datoTil=datoTil, minald=0, - maxald=130, erMann=99, enhetsUtvalg=0, - Terskel=Terskel, reshID=reshID) -Tabell <- TabellData_landet$Tabell2 -Tabell <- Tabell[c(6), ] -print( - xtable::xtable(Tabell, digits=c(0,0,0,rep(1, ncol(Tabell)-2))), - floating=FALSE, - hline.after=NULL, - align=c('l', 'l', rep('r', ncol(Tabell)-1)), - add.to.row=list( - pos=list(-1,0,0,0,0,0, nrow(Tabell)), - command=c('\\toprule\n', '& & & \\multicolumn{4}{c}{Reoperasjonsrate for - ulike årsaker (\\%)} \\\\\n', '\\cline{4-9} \n', - '& & Reoperasjons- & Anastomose- & Dyp &&&& \\\\\n', - 'Operasjonsgruppe & $N$ & rate (\\%) & lekkasje\\footnote[2]{Dette - er av alle opererte, ikke alle under risiko.} & infeksjon & Blødning - & Sårruptur & Annet & Ingen \\\\\n','\\midrule\n','\\bottomrule\n')), - include.colnames=FALSE, include.rownames=FALSE) -@ -\captionof{table}{Whipples operasjon. Reoperasjoner \Sexpr{rap_aar}. Gjelder \textbf{hele landet}.} -\end{minipage} -\end{table} +% \begin{table}[htb] +% \begin{minipage}{\textwidth} +% \centering +% <<'Tabell:ReoperasjonerWhipple', results='asis', echo=FALSE, eval=T, warning=FALSE>>= +% Terskel<-20 +% TabellData_landet <- NorgastTabeller(RegData=RegData[RegData$FerdigForlop == 1, ], +% datoFra=datoFra, datoTil=datoTil, minald=0, +% maxald=130, erMann=99, enhetsUtvalg=0, +% Terskel=Terskel, reshID=reshID) +% Tabell <- TabellData_landet$Tabell2 +% Tabell <- Tabell[c(6), ] +% print( +% xtable::xtable(Tabell, digits=c(0,0,0,rep(1, ncol(Tabell)-2))), +% floating=FALSE, +% hline.after=NULL, +% align=c('l', 'l', rep('r', ncol(Tabell)-1)), +% add.to.row=list( +% pos=list(-1,0,0,0,0,0, nrow(Tabell)), +% command=c('\\toprule\n', '& & & \\multicolumn{4}{c}{Reoperasjonsrate for +% ulike årsaker (\\%)} \\\\\n', '\\cline{4-9} \n', +% '& & Reoperasjons- & Anastomose- & Dyp &&&& \\\\\n', +% 'Operasjonsgruppe & $N$ & rate (\\%) & lekkasje\\footnote[2]{Dette +% er av alle opererte, ikke alle under risiko.} & infeksjon & Blødning +% & Sårruptur & Annet & Ingen \\\\\n','\\midrule\n','\\bottomrule\n')), +% include.colnames=FALSE, include.rownames=FALSE) +% @ +% \captionof{table}{Whipples operasjon. Reoperasjoner \Sexpr{rap_aar}. Gjelder \textbf{hele landet}.} +% \end{minipage} +% \end{table} \begin{table}[htb] \begin{minipage}{\textwidth} @@ -453,7 +476,8 @@ norgastIndikator_rapporteket( skriftStr=skriftStr, pktStr=pktStr, legPlass=legPlass, minstekravTxt=minstekravTxt, maalTxt=maalTxt, graaUt=graaUt, lavDG = graaUt_whipple, lavDGtekst = dg_tekst, inkl_konf=inkl_konf, op_gruppe=op_gruppe, datoFra=datoFra, datoTil=datoTil, - hastegrad_hybrid=hastegrad_hybrid, malign=malign, kun_ferdigstilte = F) + hastegrad_hybrid=hastegrad_hybrid, malign=malign, kun_ferdigstilte = F, + desimaler_pst = 1, pst_kolonne = T, prikktall = F) if (annet_format_ut) { outfile <- paste0(substr(outfile, 1, nchar(outfile)-3), ut_format) norgastIndikator_rapporteket( @@ -462,7 +486,8 @@ if (annet_format_ut) { skriftStr=skriftStr, pktStr=pktStr, legPlass=legPlass, minstekravTxt=minstekravTxt, maalTxt=maalTxt, graaUt=graaUt, lavDG = graaUt_whipple, lavDGtekst = dg_tekst, inkl_konf=inkl_konf, op_gruppe=op_gruppe, datoFra=datoFra, datoTil=datoTil, - hastegrad_hybrid=hastegrad_hybrid, malign=malign, kun_ferdigstilte = F) + hastegrad_hybrid=hastegrad_hybrid, malign=malign, kun_ferdigstilte = F, + desimaler_pst = 1, pst_kolonne = T, prikktall = F) } outfile <- figfolder %>% paste0('AccordionGrad_whipple.pdf') @@ -509,39 +534,39 @@ if (annet_format_ut) { \clearpage -\section{Øvrige pankreasreseksjoner} +\section{Distale pankreasreseksjoner} \addtolength{\hoffset}{-1.5cm} -\begin{table}[htb] -\begin{minipage}{\textwidth} -\centering -<<'Tabell:ReoperasjonerPankreas', results='asis', echo=FALSE, eval=T, warning=FALSE>>= -Terskel<-20 -TabellData_landet <- NorgastTabeller(RegData=RegData[RegData$FerdigForlop == 1, ], - datoFra=datoFra, datoTil=datoTil, minald=0, - maxald=130, erMann=99, enhetsUtvalg=0, - Terskel=Terskel, reshID=reshID) -Tabell <- TabellData_landet$Tabell2 -Tabell <- Tabell[c(7,8), ] -print( - xtable::xtable(Tabell, digits=c(0,0,0,rep(1, ncol(Tabell)-2))), - floating=FALSE, - hline.after=NULL, - align=c('l', 'l', rep('r', ncol(Tabell)-1)), - add.to.row=list( - pos=list(-1,0,0,0,0,0, nrow(Tabell)), - command=c('\\toprule\n', '& & & \\multicolumn{4}{c}{Reoperasjonsrate for - ulike årsaker (\\%)} \\\\\n', '\\cline{4-9} \n', - '& & Reoperasjons- & Anastomose- & Dyp &&&& \\\\\n', - 'Operasjonsgruppe & $N$ & rate (\\%) & lekkasje\\footnote[2]{Dette - er av alle opererte, ikke alle under risiko.} & infeksjon & Blødning - & Sårruptur & Annet & Ingen \\\\\n','\\midrule\n','\\bottomrule\n')), - include.colnames=FALSE, include.rownames=FALSE) -@ -\captionof{table}{Øvrige pankreasreseksjoner. Reoperasjoner \Sexpr{rap_aar}. Gjelder \textbf{hele landet}.} -\end{minipage} -\end{table} +% \begin{table}[htb] +% \begin{minipage}{\textwidth} +% \centering +% <<'Tabell:ReoperasjonerPankreas', results='asis', echo=FALSE, eval=T, warning=FALSE>>= +% Terskel<-20 +% TabellData_landet <- NorgastTabeller(RegData=RegData[RegData$FerdigForlop == 1, ], +% datoFra=datoFra, datoTil=datoTil, minald=0, +% maxald=130, erMann=99, enhetsUtvalg=0, +% Terskel=Terskel, reshID=reshID) +% Tabell <- TabellData_landet$Tabell2 +% Tabell <- Tabell[c(7,8), ] +% print( +% xtable::xtable(Tabell, digits=c(0,0,0,rep(1, ncol(Tabell)-2))), +% floating=FALSE, +% hline.after=NULL, +% align=c('l', 'l', rep('r', ncol(Tabell)-1)), +% add.to.row=list( +% pos=list(-1,0,0,0,0,0, nrow(Tabell)), +% command=c('\\toprule\n', '& & & \\multicolumn{4}{c}{Reoperasjonsrate for +% ulike årsaker (\\%)} \\\\\n', '\\cline{4-9} \n', +% '& & Reoperasjons- & Anastomose- & Dyp &&&& \\\\\n', +% 'Operasjonsgruppe & $N$ & rate (\\%) & lekkasje\\footnote[2]{Dette +% er av alle opererte, ikke alle under risiko.} & infeksjon & Blødning +% & Sårruptur & Annet & Ingen \\\\\n','\\midrule\n','\\bottomrule\n')), +% include.colnames=FALSE, include.rownames=FALSE) +% @ +% \captionof{table}{Øvrige pankreasreseksjoner. Reoperasjoner \Sexpr{rap_aar}. Gjelder \textbf{hele landet}.} +% \end{minipage} +% \end{table} \begin{table}[htb] \begin{minipage}{\textwidth} @@ -549,7 +574,7 @@ print( <<'Tabell:ReoperasjonerOvrigPankreas v3', results='asis', echo=FALSE, eval=T, warning=FALSE>>= aux <- RegData[which(RegData$Hastegrad_hybrid==1 & RegData$ReLapNarkose %in% c(0, 1) & - RegData$Op_gr %in% 7:8 & RegData$FerdigForlop == 1), ] + RegData$Op_gr %in% 7 & RegData$FerdigForlop == 1), ] aux$Tilgang <- factor(aux$Tilgang, levels = 1:3, labels = c("Åpen", "Laparoskopisk", "Konvertert") ) @@ -583,7 +608,7 @@ print( include.colnames=FALSE, include.rownames=FALSE, sanitize.text.function = function(x){x}) @ -\captionof{table}{Øvrige pankreasreseksjoner. Elektive operasjoner. Reoperasjoner \Sexpr{rap_aar} etter Tilgang. Gjelder \textbf{hele landet}.} +\captionof{table}{Distale pankreasreseksjoner. Elektive operasjoner. Reoperasjoner \Sexpr{rap_aar} etter Tilgang. Gjelder \textbf{hele landet}.} \end{minipage} \end{table} diff --git a/inst/Aarsrapport2023_pankreas_lever.pdf b/inst/Aarsrapport2023_pankreas_lever.pdf index af2235e..cb4e222 100644 Binary files a/inst/Aarsrapport2023_pankreas_lever.pdf and b/inst/Aarsrapport2023_pankreas_lever.pdf differ diff --git a/inst/Aarsrapport2023_ventrikkel_osofagus.Rnw b/inst/Aarsrapport2023_ventrikkel_osofagus.Rnw new file mode 100644 index 0000000..ae026bb --- /dev/null +++ b/inst/Aarsrapport2023_ventrikkel_osofagus.Rnw @@ -0,0 +1,680 @@ +\documentclass[norsk,a4paper]{article} % ,twoside +\usepackage[norsk]{babel} +\usepackage[utf8x]{inputenc} +\usepackage{subfig} +\usepackage{pdfpages} +\usepackage{booktabs} +\usepackage{caption} +\usepackage{amssymb} +\usepackage[a4paper]{geometry} + +\title{Figurer og tabeller for årsrapport NORGAST 2023 - Ventrikkel og øsofagus} +\author{NORGAST} + +\renewcommand\thempfootnote{\fnsymbol{mpfootnote}} +\def\labelitemi{$\bullet$} +\def\labelitemii{--} +\def\labelitemiii{$\ast$} +\def\labelitemiv{$\cdot$} + +%setter grå skrift fremfort sort +\usepackage{xcolor} +\usepackage{graphicx} +\pagestyle{myheadings} +\definecolor{lysblaa}{rgb}{0.27,0.51,0.71} +\definecolor{moerkgraa}{rgb}{0.25,0.25,0.25} + +<<'initOpts',include=FALSE>>= +knitr::opts_chunk$set(warnings=FALSE,echo=FALSE) +knitr::opts_knit$set(root.dir = './') +@ + +\begin{document} + +<>= +library(norgast) +library(tidyverse) +rm(list = ls()) + +RegData <- norgast::NorgastHentRegData() +RegData <- NorgastPreprosess(RegData) +RegData$AvdRESH[RegData$AvdRESH == 4204126] <- 4204084 # Tull med Ringerike +RegData_alle <- RegData + +rap_aar <- 2023 # Året rapporten skal kjøres for +ant_aar <- 3 # Hvor mange år som skal inkluderes i flerårsfigurer + +RegData$Sykehusnavn <- trimws(RegData$Sykehusnavn) + +reshID <- 0 +datoFra= paste0(rap_aar, '-01-01') +datoTil= paste0(rap_aar, '-12-31') + +# DG <- read.csv2('~/mydata/norgast/dg_opgr_shus.csv') +# DG <- DG[!is.na(DG$AvdRESH), ] +# graaUt_ventrikkel <- DG$Sykehusnavn[DG$DG < 60 & DG$Op_gr == 4] +# graaUt_osofagus <- DG$Sykehusnavn[DG$DG < 60 & DG$Op_gr == 3] + +sh_norgast <- RegData[match(unique(RegData$AvdRESH), RegData$AvdRESH), c("AvdRESH", "Sykehusnavn")] + +dgterskel <- 70 +DG <- read.csv2('~/mydata/norgast/DG_Sykehus/Ventrikkel_sh.csv') %>% + merge(sh_norgast, by = "AvdRESH", all.x = TRUE) %>% + dplyr::filter(!is.na(Sykehusnavn)) +graaUt_ventrikkel <- DG$Sykehusnavn[DG$DG_norgast < dgterskel] +DG2 <- read.csv2('~/mydata/norgast/DG_Sykehus/Øsofagus_sh.csv') %>% + merge(sh_norgast, by = "AvdRESH", all.x = TRUE) %>% + dplyr::filter(!is.na(Sykehusnavn)) +graaUt_osofagus <- DG2$Sykehusnavn[DG2$DG_norgast < dgterskel] + + +inkluderteResh <- DG %>% + dplyr::filter(Total >= 10) %>% + dplyr::select(AvdRESH) %>% unique() + +RegData <- RegData %>% + dplyr::filter(AvdRESH %in% inkluderteResh$AvdRESH) + +RegData$maligndiag <- + factor(RegData$Malign, levels = 0:1, labels = c("Benign", "Malign")) +RegData$Robot <- RegData$Robotassistanse +RegData$Robot[is.na(RegData$Robot)] <- 0 +RegData$Robot <- factor(RegData$Robot, levels = 0:1, labels = c("Ikke-robot", "Robot")) + +RegDataAll <- RegData[RegData$Aar<=rap_aar, ] +RegData <- RegData[RegData$Aar==rap_aar, ] + +figstr <- 1 +tmp <- Sys.setlocale(category = "LC_ALL", locale = "nb_NO.UTF-8") +@ + +\maketitle + +\clearpage + +<<'sett_parametre', include=FALSE, echo=FALSE, eval=T, cache=FALSE>>= +width=600 +height=700 +sideTxt='Sykehus' +decreasing=F +terskel=10 +minstekrav = NA +maal = NA +skriftStr=1.1 +pktStr=1.2 +legPlass='top' +minstekravTxt='Akseptabelt' +dg_tekst <- paste0("Dekningsgrad < ", dgterskel, " %") +maalTxt='Mål' +graaUt=NA +minald=0 +maxald=130 +erMann <- 99 +inkl_konf <- T +elektiv=99 +hastegrad_hybrid=99 +datoFra <- '2015-01-01' +tittel <- '' +hentData <- F +preprosess <- F +BMI='' +tilgang='' +minPRS=0 +maxPRS=2.2 +ASA='' +whoEcog= '' +ncsp='' +forbehandling='' +valgtShus=c('') +op_gruppe <- '' +malign <- 99 +annet_format_ut <- T +ut_format <- 'svg' +figfolder <- "~/mydata/norgast/fig_aarsrapp2023/ventrikkel_oefsofagus/" +if (!dir.exists(figfolder)) { + dir.create(figfolder) +} +tabfolder <- "~/mydata/norgast/fig_aarsrapp2023/tabeller/" +if (!dir.exists(tabfolder)) { + dir.create(tabfolder) +} +@ + +\section{Øsofagusreseksjoner} + +\begin{table}[htb] +\begin{minipage}{\textwidth} +\centering +<<'Tabell:ReoperasjonerOsofagus v3', results='asis', echo=FALSE, eval=T, warning=FALSE>>= +aux <- RegData[which(RegData$ReLapNarkose %in% c(0, 1) & + RegData$Op_gr==3 & RegData$FerdigForlop == 1), ] +aux$Tilgang <- factor(aux$Tilgang, levels = 1:3, + labels = c("Åpen", "Laparoskopisk", "Konvertert") ) + +nytab <- aux %>% group_by(Tilgang) %>% + summarise(N = n(), + reop_rate = sum(ReLapNarkose), + anastomoselekk = sum(ViktigsteFunn==1, na.rm = T), + dyp_infek = sum(ViktigsteFunn==2, na.rm = T), + bloedning = sum(ViktigsteFunn==3, na.rm = T), + saarrupt = sum(ViktigsteFunn==4, na.rm = T), + annet = sum(ViktigsteFunn==5, na.rm = T), + ingen = sum(ViktigsteFunn==6, na.rm = T)) %>% + janitor::adorn_totals() + +nytab[, -(1:2)] <- nytab[, -(1:2)]/nytab$N*100 +Tabell <- nytab + +print( + xtable::xtable(Tabell, digits=c(0,0,0,rep(1, ncol(Tabell)-2)), + align=c('l', 'l', rep('r', ncol(Tabell)-1))), + floating=FALSE, + hline.after=NULL, + add.to.row=list( + pos=list(-1,0,0,0,0,0, nrow(Tabell)), + command=c('\\toprule\n', '& & & \\multicolumn{4}{c}{Reoperasjonsrate for + ulike årsaker (\\%)} \\\\\n', '\\cline{4-9} \n', + '& & Reoperasjons- & Anastomose- & Dyp &&&& \\\\\n', + 'Tilgang & N & rate (\\%) & lekkasje\\footnote[2]{Dette er av alle + opererte, ikke alle under risiko.} & infeksjon & Blødning & + Sårruptur & Annet & Ingen \\\\\n','\\midrule\n','\\bottomrule\n')), + include.colnames=FALSE, include.rownames=FALSE, + sanitize.text.function = function(x){x}) +@ +\captionof{table}{Øsofagusreseksjoner. Reoperasjoner \Sexpr{rap_aar} etter Tilgang. Gjelder \textbf{hele landet}.} +\end{minipage} +\end{table} + + + +<<'fig_osofagus', include=FALSE, echo=FALSE, eval=T, cache=FALSE>>= +terskel <- 5 +op_gruppe <- 3 +skriftStr2 <- 1.4 + +outfile <- paste0(figfolder, 'Tilgang_osofagus.pdf') +NorgastFigAndelStabelGrVar(RegData, valgtVar='Tilgang', op_gruppe=op_gruppe, + outfile=outfile, Ngrense=terskel, lavDG = graaUt_osofagus, + lavDGtekst = dg_tekst, skriftStr = skriftStr2) +if (annet_format_ut) { + outfile <- paste0(substr(outfile, 1, nchar(outfile)-3), ut_format) + NorgastFigAndelStabelGrVar(RegData, valgtVar='Tilgang', op_gruppe=op_gruppe, + outfile=outfile, Ngrense=terskel, lavDG = graaUt_osofagus, + lavDGtekst = dg_tekst, skriftStr = skriftStr2) +} + +outfile <- paste0(figfolder, 'TilgangThorax_osofagus.pdf') +NorgastFigAndelStabelGrVar(RegData, valgtVar='ThoraxTilgang', + op_gruppe=op_gruppe, outfile=outfile, Ngrense=terskel, + lavDG = graaUt_osofagus, lavDGtekst = dg_tekst, + skriftStr = skriftStr2) +if (annet_format_ut) { + outfile <- paste0(substr(outfile, 1, nchar(outfile)-3), ut_format) + NorgastFigAndelStabelGrVar(RegData, valgtVar='ThoraxTilgang', op_gruppe=op_gruppe, + outfile=outfile, Ngrense=terskel, lavDG = graaUt_osofagus, + lavDGtekst = dg_tekst, skriftStr = skriftStr2) +} + +outfile <- paste0(figfolder, 'AccordionGrad_osofagus.pdf') +NorgastFigAndelStabelGrVar(RegData, valgtVar='AccordionGrad_drenasje', + op_gruppe=op_gruppe, outfile=outfile, + Ngrense=terskel, lavDG = graaUt_osofagus, + skriftStr = skriftStr2) +if (annet_format_ut) { + outfile <- paste0(substr(outfile, 1, nchar(outfile)-3), ut_format) + NorgastFigAndelStabelGrVar(RegData, valgtVar='AccordionGrad_drenasje', + op_gruppe=op_gruppe, outfile=outfile, Ngrense=terskel, + lavDG = graaUt_osofagus, skriftStr = skriftStr2) +} + +# outfile <- paste0(figfolder, 'AccordionGrad_osofagus_aar.pdf') +# valgtVar <- 'KumAcc' +# norgastIndikator_rapporteket( +# RegDataAll, valgtVar = valgtVar, outfile=outfile, tittel=tittel, width=width, +# height=height, decreasing=decreasing, terskel=terskel, minstekrav = minstekrav, +# maal = maal, skriftStr=skriftStr, pktStr=pktStr, legPlass=legPlass, +# minstekravTxt=minstekravTxt, maalTxt=maalTxt, graaUt=graaUt, +# lavDG = graaUt_osofagus, inkl_konf=inkl_konf, op_gruppe=op_gruppe, datoFra=datoFra, +# datoTil=datoTil, hastegrad_hybrid=hastegrad_hybrid, malign=malign) +# if (annet_format_ut) { +# outfile <- paste0(substr(outfile, 1, nchar(outfile)-3), ut_format) +# norgastIndikator_rapporteket( +# RegDataAll, valgtVar = valgtVar, outfile=outfile, tittel=tittel, width=width, +# height=height, decreasing=decreasing, terskel=terskel, minstekrav = minstekrav, +# maal = maal, skriftStr=skriftStr, pktStr=pktStr, legPlass=legPlass, +# minstekravTxt=minstekravTxt, maalTxt=maalTxt, graaUt=graaUt, +# lavDG = graaUt_osofagus, inkl_konf=inkl_konf, op_gruppe=op_gruppe, datoFra=datoFra, +# datoTil=datoTil, hastegrad_hybrid=hastegrad_hybrid, malign=malign) +# } + + +outfile <- paste0(figfolder, 'ReLapNarkose_osofagus_aar.pdf') +valgtVar <- 'ReLapNarkose' +norgastIndikator_rapporteket( + RegDataAll, valgtVar = valgtVar, outfile=outfile, tittel=tittel, width=width, + height=height, decreasing=decreasing, terskel=terskel, minstekrav = minstekrav, + maal = maal, skriftStr=skriftStr, pktStr=pktStr, legPlass=legPlass, + minstekravTxt=minstekravTxt, maalTxt=maalTxt, graaUt=graaUt, + lavDG = graaUt_osofagus, lavDGtekst = dg_tekst, inkl_konf=inkl_konf, + op_gruppe=op_gruppe, datoFra=datoFra, datoTil=datoTil, + hastegrad_hybrid=hastegrad_hybrid, malign=malign) +if (annet_format_ut) { + outfile <- paste0(substr(outfile, 1, nchar(outfile)-3), ut_format) + norgastIndikator_rapporteket( + RegDataAll, valgtVar = valgtVar, outfile=outfile, tittel=tittel, width=width, + height=height, decreasing=decreasing, terskel=terskel, minstekrav = minstekrav, + maal = maal, skriftStr=skriftStr, pktStr=pktStr, legPlass=legPlass, + minstekravTxt=minstekravTxt, maalTxt=maalTxt, graaUt=graaUt, + lavDG = graaUt_osofagus, lavDGtekst = dg_tekst, inkl_konf=inkl_konf, + op_gruppe=op_gruppe, datoFra=datoFra, datoTil=datoTil, + hastegrad_hybrid=hastegrad_hybrid, malign=malign) +} +outfile <- paste0(figfolder, 'mortalitet90_osofagus_aar.pdf') +valgtVar <- 'mortalitet90' +norgastIndikator_rapporteket( + RegDataAll, valgtVar = valgtVar, outfile=outfile, tittel=tittel, width=width, + height=height, decreasing=T, terskel=terskel, minstekrav = 8, maal = 5, + skriftStr=skriftStr, lavDG = graaUt_osofagus, lavDGtekst = dg_tekst, + pktStr=pktStr, legPlass=legPlass, minstekravTxt=minstekravTxt, maalTxt=maalTxt, + graaUt=graaUt, inkl_konf=inkl_konf, op_gruppe=op_gruppe, datoFra=datoFra, + datoTil=datoTil, hastegrad_hybrid=hastegrad_hybrid, malign=malign, + kun_ferdigstilte = F) +if (annet_format_ut) { + outfile <- paste0(substr(outfile, 1, nchar(outfile)-3), ut_format) + norgastIndikator_rapporteket( + RegDataAll, valgtVar = valgtVar, outfile=outfile, tittel=tittel, width=width, + height=height, decreasing=T, terskel=terskel, minstekrav = 8, maal = 5, + skriftStr=skriftStr, lavDG = graaUt_osofagus, lavDGtekst = dg_tekst, + pktStr=pktStr, legPlass=legPlass, minstekravTxt=minstekravTxt, maalTxt=maalTxt, + graaUt=graaUt, inkl_konf=inkl_konf, op_gruppe=op_gruppe, datoFra=datoFra, + datoTil=datoTil, hastegrad_hybrid=hastegrad_hybrid, malign=malign, + kun_ferdigstilte = F) +} + + +outfile <- paste0(figfolder, 'Anastomoselekk_osofagus_aar.pdf') +valgtVar <- 'Anastomoselekk_osofagus' +norgastIndikator_rapporteket( + RegDataAll, valgtVar = valgtVar, outfile=outfile, width=width, height=height, + decreasing=T, terskel=terskel, minstekrav = NA, maal = 20, skriftStr=skriftStr, + lavDG = graaUt_osofagus, lavDGtekst = dg_tekst, pktStr=pktStr, legPlass=legPlass, + minstekravTxt=minstekravTxt, maalTxt=maalTxt, graaUt=graaUt, maalretn='lav', + inkl_konf=inkl_konf, op_gruppe=op_gruppe, datoFra='2018-05-01', datoTil=datoTil, + hastegrad_hybrid=hastegrad_hybrid, malign=malign, + tittel=c('Anastomoselekkasje eller dyp infeksjon, eller endoskopisk', + ' intervensjon for lekkasje v/ øsofaguskirurgi')) +if (annet_format_ut) { + outfile <- paste0(substr(outfile, 1, nchar(outfile)-3), ut_format) + norgastIndikator_rapporteket( + RegDataAll, valgtVar = valgtVar, outfile=outfile, width=width, height=height, + decreasing=T, terskel=terskel, minstekrav = NA, maal = 20, skriftStr=skriftStr, + lavDG = graaUt_osofagus, lavDGtekst = dg_tekst, pktStr=pktStr, legPlass=legPlass, + minstekravTxt=minstekravTxt, maalTxt=maalTxt, graaUt=graaUt, maalretn='lav', + inkl_konf=inkl_konf, op_gruppe=op_gruppe, datoFra='2018-05-01', datoTil=datoTil, + hastegrad_hybrid=hastegrad_hybrid, malign=malign, + tittel=c('Anastomoselekkasje eller dyp infeksjon, eller endoskopisk', + ' intervensjon for lekkasje v/ øsofaguskirurgi')) +} + + +outfile <- paste0(figfolder, 'mortalitet90_osofagus_gruppertrobot_nasjonal.pdf') +norgastIndikator_nasjonal( + RegDataAll, valgtVar = "Mort90", outfile=outfile, tittel=tittel, width=width, + height=height, decreasing=decreasing, terskel=terskel, minstekrav = minstekrav, + maal = maal, skriftStr=skriftStr, pktStr=pktStr, legPlass=legPlass, + minstekravTxt=minstekravTxt, maalTxt=maalTxt, graaUt=graaUt, + lavDG = graaUt_ventrikkel, lavDGtekst = dg_tekst, inkl_konf=inkl_konf, + op_gruppe=op_gruppe, datoFra=datoFra, datoTil=datoTil, + hastegrad_hybrid=1, malign=1, Grvar = "Robot", kun_ferdigstilte = FALSE) +if (annet_format_ut) { + outfile <- paste0(substr(outfile, 1, nchar(outfile)-3), ut_format) + norgastIndikator_nasjonal( + RegDataAll, valgtVar = "Mort90", outfile=outfile, tittel=tittel, width=width, + height=height, decreasing=decreasing, terskel=terskel, minstekrav = minstekrav, + maal = maal, skriftStr=skriftStr, pktStr=pktStr, legPlass=legPlass, + minstekravTxt=minstekravTxt, maalTxt=maalTxt, graaUt=graaUt, + lavDG = graaUt_ventrikkel, lavDGtekst = dg_tekst, inkl_konf=inkl_konf, + op_gruppe=op_gruppe, datoFra=datoFra, datoTil=datoTil, + hastegrad_hybrid=1, malign=1, Grvar = "Robot", kun_ferdigstilte = FALSE) +} + +@ + +\begin{figure}[ht] +\centering +\includegraphics[width=\Sexpr{figstr}\textwidth]{\Sexpr{figfolder}TilgangThorax_osofagus.pdf} +\caption{TilgangThorax\_osofagus.pdf} +\end{figure} + +\begin{figure}[ht] +\centering +\includegraphics[width=\Sexpr{figstr}\textwidth]{\Sexpr{figfolder}Tilgang_osofagus.pdf} +\caption{Tilgang\_osofagus.pdf} +\end{figure} + +\begin{figure}[ht] +\centering +\includegraphics[width=\Sexpr{figstr}\textwidth]{\Sexpr{figfolder}AccordionGrad_osofagus.pdf} +\caption{AccordionGrad\_osofagus.pdf} +\end{figure} + +% \begin{figure}[ht] +% \centering +% \includegraphics[width=\Sexpr{figstr}\textwidth]{\Sexpr{figfolder}AccordionGrad_osofagus_aar.pdf} +% \caption{AccordionGrad\_osofagus\_aar.pdf} +% \end{figure} + +\begin{figure}[ht] +\centering +\includegraphics[width=\Sexpr{figstr}\textwidth]{\Sexpr{figfolder}ReLapNarkose_osofagus_aar.pdf} +\caption{ReLapNarkose\_osofagus\_aar.pdf} +\end{figure} + +\begin{figure}[ht] +\centering +\includegraphics[width=\Sexpr{figstr}\textwidth]{\Sexpr{figfolder}mortalitet90_osofagus_aar.pdf} +\caption{mortalitet90\_osofagus\_aar.pdf} +\end{figure} + +\begin{figure}[ht] +\centering +\includegraphics[width=\Sexpr{figstr}\textwidth]{\Sexpr{figfolder}Anastomoselekk_osofagus_aar.pdf} +\caption{Anastomoselekk\_osofagus\_aar.pdf} +\end{figure} + +\begin{figure}[ht] +\centering +\includegraphics[width=\Sexpr{figstr}\textwidth]{\Sexpr{figfolder}mortalitet90_osofagus_gruppertrobot_nasjonal.pdf} +\caption{mortalitet90\_osofagus\_gruppertrobot\_nasjonal.pdf} +\end{figure} + + +\clearpage + + + +%%%%%%%%%%%%%%%%%%%%%%% + +\section{Ventrikkelreseksjoner} + +\begin{table}[htb] +\begin{minipage}{\textwidth} +\centering +<<'Tabell:ReoperasjonerVentrikkel v3', results='asis', echo=FALSE, eval=T, warning=FALSE>>= +aux <- RegData[which(RegData$ReLapNarkose %in% c(0, 1) & + RegData$Op_gr==4 & RegData$FerdigForlop == 1), ] +aux$Tilgang <- factor(aux$Tilgang, levels = 1:3, labels = c("Åpen", "Laparoskopisk", "Konvertert") ) + +nytab <- aux %>% group_by(Tilgang) %>% + summarise(N = n(), + reop_rate = sum(ReLapNarkose), + anastomoselekk = sum(ViktigsteFunn==1, na.rm = T), + dyp_infek = sum(ViktigsteFunn==2, na.rm = T), + bloedning = sum(ViktigsteFunn==3, na.rm = T), + saarrupt = sum(ViktigsteFunn==4, na.rm = T), + annet = sum(ViktigsteFunn==5, na.rm = T), + ingen = sum(ViktigsteFunn==6, na.rm = T)) %>% + janitor::adorn_totals() + +nytab[, -(1:2)] <- nytab[, -(1:2)]/nytab$N*100 +Tabell <- nytab + +print( + xtable::xtable(Tabell, digits=c(0,0,0,rep(1, ncol(Tabell)-2)), + align=c('l', 'l', rep('r', ncol(Tabell)-1))), + floating=FALSE, + hline.after=NULL, + add.to.row=list( + pos=list(-1,0,0,0,0,0, nrow(Tabell)), + command=c('\\toprule\n', '& & & \\multicolumn{4}{c}{Reoperasjonsrate for + ulike årsaker (\\%)} \\\\\n', '\\cline{4-9} \n', + '& & Reoperasjons- & Anastomose- & Dyp &&&& \\\\\n', + 'Tilgang & N & rate (\\%) & lekkasje\\footnote[2]{Dette er av alle + opererte, ikke alle under risiko.} & infeksjon & Blødning & + Sårruptur & Annet & Ingen \\\\\n','\\midrule\n','\\bottomrule\n')), + include.colnames=FALSE, include.rownames=FALSE, + sanitize.text.function = function(x){x}) +@ +\captionof{table}{Ventrikkelreseksjoner. Reoperasjoner \Sexpr{rap_aar} etter Tilgang. Gjelder \textbf{hele landet}.} +\end{minipage} +\end{table} + + + +<<'fig_ventrikkel', include=FALSE, echo=FALSE, eval=T, cache=FALSE>>= +# Ngrense <- 5 +terskel <- 5 +op_gruppe <- 4 + +outfile <- paste0(figfolder, 'Tilgang_ventrikkel_aar.pdf') +valgtVar <- 'LapTilgang2' +norgastIndikator_rapporteket( + RegDataAll, valgtVar = valgtVar, outfile=outfile, tittel=tittel, width=width, + height=height, decreasing=decreasing, terskel=terskel, minstekrav = minstekrav, + maal = maal, skriftStr=skriftStr, pktStr=pktStr, legPlass=legPlass, + minstekravTxt=minstekravTxt, maalTxt=maalTxt, graaUt=graaUt, + lavDG = graaUt_ventrikkel, lavDGtekst = dg_tekst, inkl_konf=inkl_konf, + op_gruppe=op_gruppe, datoFra=datoFra, datoTil=datoTil, + hastegrad_hybrid=hastegrad_hybrid, malign=malign) +if (annet_format_ut) { + outfile <- paste0(substr(outfile, 1, nchar(outfile)-3), ut_format) + norgastIndikator_rapporteket( + RegDataAll, valgtVar = valgtVar, outfile=outfile, tittel=tittel, width=width, + height=height, decreasing=decreasing, terskel=terskel, minstekrav = minstekrav, + maal = maal, skriftStr=skriftStr, pktStr=pktStr, legPlass=legPlass, + minstekravTxt=minstekravTxt, maalTxt=maalTxt, graaUt=graaUt, + lavDG = graaUt_ventrikkel, lavDGtekst = dg_tekst, inkl_konf=inkl_konf, + op_gruppe=op_gruppe, datoFra=datoFra, datoTil=datoTil, + hastegrad_hybrid=hastegrad_hybrid, malign=malign) +} + + +outfile <- paste0(figfolder, 'AccordionGrad_ventrikkel.pdf') +NorgastFigAndelStabelGrVar(RegData, valgtVar='AccordionGrad_drenasje', + op_gruppe=op_gruppe, outfile=outfile, Ngrense=terskel, + lavDG = graaUt_ventrikkel, skriftStr = skriftStr2) +if (annet_format_ut) { + outfile <- paste0(substr(outfile, 1, nchar(outfile)-3), ut_format) + NorgastFigAndelStabelGrVar(RegData, valgtVar='AccordionGrad_drenasje', + op_gruppe=op_gruppe, outfile=outfile, + Ngrense=terskel, lavDG = graaUt_ventrikkel, + skriftStr = skriftStr2) +} + + +outfile <- paste0(figfolder, 'ReLapNarkose_ventrikkel_aar.pdf') +valgtVar <- 'ReLapNarkose' +norgastIndikator_rapporteket( + RegDataAll, valgtVar = valgtVar, outfile=outfile, tittel=tittel, width=width, + height=height, decreasing=T, terskel=terskel, minstekrav = minstekrav, maal = 15, + skriftStr=skriftStr, lavDG = graaUt_ventrikkel, lavDGtekst = dg_tekst, + pktStr=pktStr, legPlass=legPlass, minstekravTxt=minstekravTxt, maalTxt=maalTxt, + graaUt=graaUt, maalretn = 'lav', inkl_konf=inkl_konf, op_gruppe=op_gruppe, + datoFra=datoFra, datoTil=datoTil, hastegrad_hybrid=1, malign=malign) +if (annet_format_ut) { + outfile <- paste0(substr(outfile, 1, nchar(outfile)-3), ut_format) + norgastIndikator_rapporteket( + RegDataAll, valgtVar = valgtVar, outfile=outfile, tittel=tittel, width=width, + height=height, decreasing=T, terskel=terskel, minstekrav = minstekrav, maal = 15, + skriftStr=skriftStr, lavDG = graaUt_ventrikkel, lavDGtekst = dg_tekst, + pktStr=pktStr, legPlass=legPlass, minstekravTxt=minstekravTxt, maalTxt=maalTxt, + graaUt=graaUt, maalretn = 'lav', inkl_konf=inkl_konf, op_gruppe=op_gruppe, + datoFra=datoFra, datoTil=datoTil, hastegrad_hybrid=1, malign=malign) +} + + +outfile <- "ReLapNarkose_ventrikkel_gruppertmalign_nasjonal.pdf" +outfile <- paste0(figfolder, outfile) +norgastIndikator_nasjonal( + RegDataAll, valgtVar = "ReLapNarkose", outfile=outfile, tittel=tittel, width=width, + height=height, decreasing=decreasing, terskel=terskel, minstekrav = minstekrav, + maal = maal, skriftStr=skriftStr, pktStr=pktStr, legPlass=legPlass, + minstekravTxt=minstekravTxt, maalTxt=maalTxt, graaUt=graaUt, + lavDG = graaUt_ventrikkel, lavDGtekst = dg_tekst, inkl_konf=inkl_konf, + op_gruppe=op_gruppe, datoFra=datoFra, datoTil=datoTil, + hastegrad_hybrid=hastegrad_hybrid, malign=malign, Grvar = "maligndiag") +if (annet_format_ut) { + outfile <- paste0(substr(outfile, 1, nchar(outfile)-3), ut_format) + norgastIndikator_nasjonal( + RegDataAll, valgtVar = "ReLapNarkose", outfile=outfile, tittel=tittel, width=width, + height=height, decreasing=decreasing, terskel=terskel, minstekrav = minstekrav, + maal = maal, skriftStr=skriftStr, pktStr=pktStr, legPlass=legPlass, + minstekravTxt=minstekravTxt, maalTxt=maalTxt, graaUt=graaUt, + lavDG = graaUt_ventrikkel, lavDGtekst = dg_tekst, inkl_konf=inkl_konf, + op_gruppe=op_gruppe, datoFra=datoFra, datoTil=datoTil, + hastegrad_hybrid=hastegrad_hybrid, malign=malign, Grvar = "maligndiag") +} + + +outfile <- paste0(figfolder, 'mortalitet90_ventrikkel_aar.pdf') +valgtVar <- 'mortalitet90' +norgastIndikator_rapporteket( + RegDataAll, valgtVar = valgtVar, outfile=outfile, tittel=tittel, width=width, + height=height, decreasing=T, terskel=terskel, minstekrav = 8, maal = 5, + skriftStr=skriftStr, lavDG = graaUt_ventrikkel, lavDGtekst = dg_tekst, + pktStr=pktStr, legPlass=legPlass, minstekravTxt=minstekravTxt, maalTxt=maalTxt, + graaUt=graaUt, inkl_konf=inkl_konf, op_gruppe=op_gruppe, datoFra=datoFra, + datoTil=datoTil, hastegrad_hybrid=1, malign=malign, + kun_ferdigstilte = F) +if (annet_format_ut) { + outfile <- paste0(substr(outfile, 1, nchar(outfile)-3), ut_format) + norgastIndikator_rapporteket( + RegDataAll, valgtVar = valgtVar, outfile=outfile, tittel=tittel, width=width, + height=height, decreasing=T, terskel=terskel, minstekrav = 8, maal = 5, + skriftStr=skriftStr, lavDG = graaUt_ventrikkel, lavDGtekst = dg_tekst, + pktStr=pktStr, legPlass=legPlass, minstekravTxt=minstekravTxt, maalTxt=maalTxt, + graaUt=graaUt, inkl_konf=inkl_konf, op_gruppe=op_gruppe, datoFra=datoFra, + datoTil=datoTil, hastegrad_hybrid=1, malign=malign, + kun_ferdigstilte = F) +} + + +outfile <- paste0(figfolder, 'mortalitet90_ventrikkel_gruppertmalign_nasjonal.pdf') +norgastIndikator_nasjonal( + RegDataAll, valgtVar = "Mort90", outfile=outfile, tittel=tittel, width=width, + height=height, decreasing=decreasing, terskel=terskel, minstekrav = minstekrav, + maal = maal, skriftStr=skriftStr, pktStr=pktStr, legPlass=legPlass, + minstekravTxt=minstekravTxt, maalTxt=maalTxt, graaUt=graaUt, + lavDG = graaUt_ventrikkel, lavDGtekst = dg_tekst, inkl_konf=inkl_konf, + op_gruppe=op_gruppe, datoFra=datoFra, datoTil=datoTil, + hastegrad_hybrid=1, malign=malign, Grvar = "maligndiag", kun_ferdigstilte = FALSE) +if (annet_format_ut) { + outfile <- paste0(substr(outfile, 1, nchar(outfile)-3), ut_format) + norgastIndikator_nasjonal( + RegDataAll, valgtVar = "Mort90", outfile=outfile, tittel=tittel, width=width, + height=height, decreasing=decreasing, terskel=terskel, minstekrav = minstekrav, + maal = maal, skriftStr=skriftStr, pktStr=pktStr, legPlass=legPlass, + minstekravTxt=minstekravTxt, maalTxt=maalTxt, graaUt=graaUt, + lavDG = graaUt_ventrikkel, lavDGtekst = dg_tekst, inkl_konf=inkl_konf, + op_gruppe=op_gruppe, datoFra=datoFra, datoTil=datoTil, + hastegrad_hybrid=1, malign=malign, Grvar = "maligndiag", kun_ferdigstilte = FALSE) +} + +outfile <- paste0(figfolder, 'mortalitet90_ventrikkel_gruppertrobot_nasjonal.pdf') +norgastIndikator_nasjonal( + RegDataAll, valgtVar = "Mort90", outfile=outfile, tittel=tittel, width=width, + height=height, decreasing=decreasing, terskel=terskel, minstekrav = minstekrav, + maal = maal, skriftStr=skriftStr, pktStr=pktStr, legPlass=legPlass, + minstekravTxt=minstekravTxt, maalTxt=maalTxt, graaUt=graaUt, + lavDG = graaUt_ventrikkel, lavDGtekst = dg_tekst, inkl_konf=inkl_konf, + op_gruppe=op_gruppe, datoFra=datoFra, datoTil=datoTil, + hastegrad_hybrid=1, malign=1, Grvar = "Robot", kun_ferdigstilte = FALSE) +if (annet_format_ut) { + outfile <- paste0(substr(outfile, 1, nchar(outfile)-3), ut_format) + norgastIndikator_nasjonal( + RegDataAll, valgtVar = "Mort90", outfile=outfile, tittel=tittel, width=width, + height=height, decreasing=decreasing, terskel=terskel, minstekrav = minstekrav, + maal = maal, skriftStr=skriftStr, pktStr=pktStr, legPlass=legPlass, + minstekravTxt=minstekravTxt, maalTxt=maalTxt, graaUt=graaUt, + lavDG = graaUt_ventrikkel, lavDGtekst = dg_tekst, inkl_konf=inkl_konf, + op_gruppe=op_gruppe, datoFra=datoFra, datoTil=datoTil, + hastegrad_hybrid=1, malign=1, Grvar = "Robot", kun_ferdigstilte = FALSE) +} + +outfile <- paste0(figfolder, 'Anastomoselekk_ventrikkel_aar.pdf') +valgtVar <- 'Anastomoselekkasje' +norgastIndikator_rapporteket( + RegDataAll, valgtVar = valgtVar, outfile=outfile, width=width, height=height, + decreasing=T, terskel=terskel, minstekrav = 8, maal = 5, skriftStr=skriftStr, + lavDG = graaUt_osofagus, lavDGtekst = dg_tekst, pktStr=pktStr, legPlass=legPlass, + minstekravTxt=minstekravTxt, maalTxt=maalTxt, graaUt=graaUt, maalretn='lav', + inkl_konf=inkl_konf, op_gruppe=op_gruppe, datoFra='2018-05-01', datoTil=datoTil, + hastegrad_hybrid=hastegrad_hybrid, malign=1, hastegrad = 1) +if (annet_format_ut) { + outfile <- paste0(substr(outfile, 1, nchar(outfile)-3), ut_format) + norgastIndikator_rapporteket( + RegDataAll, valgtVar = valgtVar, outfile=outfile, width=width, height=height, + decreasing=T, terskel=terskel, minstekrav = 8, maal = 5, skriftStr=skriftStr, + lavDG = graaUt_osofagus, lavDGtekst = dg_tekst, pktStr=pktStr, legPlass=legPlass, + minstekravTxt=minstekravTxt, maalTxt=maalTxt, graaUt=graaUt, maalretn='lav', + inkl_konf=inkl_konf, op_gruppe=op_gruppe, datoFra='2018-05-01', datoTil=datoTil, + hastegrad_hybrid=hastegrad_hybrid, malign=1, hastegrad = 1) +} + +@ + +\begin{figure}[ht] +\centering +\includegraphics[width=\Sexpr{figstr}\textwidth]{\Sexpr{figfolder}Tilgang_ventrikkel_aar.pdf} +\caption{Tilgang\_ventrikkel\_aar.pdf} +\end{figure} + +\begin{figure}[ht] +\centering +\includegraphics[width=\Sexpr{figstr}\textwidth]{\Sexpr{figfolder}AccordionGrad_ventrikkel.pdf} +\caption{AccordionGrad\_ventrikkel.pdf} +\end{figure} + +% \begin{figure}[ht] +% \centering +% \includegraphics[width=\Sexpr{figstr}\textwidth]{\Sexpr{figfolder}AccordionGrad_ventrikkel_aar.pdf} +% \caption{AccordionGrad\_ventrikkel\_aar.pdf} +% \end{figure} + +\begin{figure}[ht] +\centering +\includegraphics[width=\Sexpr{figstr}\textwidth]{\Sexpr{figfolder}ReLapNarkose_ventrikkel_aar.pdf} +\caption{ReLapNarkose\_ventrikkel\_aar.pdf} +\end{figure} + +% \begin{figure}[ht] +% \centering +% \includegraphics[width=\Sexpr{figstr}\textwidth]{\Sexpr{figfolder}ReLapNarkose_ventrikkel_aar_gruppertmalign.pdf} +% \caption{ReLapNarkose\_ventrikkel\_aar\_gruppertmalign.pdf} +% \end{figure} + +\begin{figure}[ht] +\centering +\includegraphics[width=\Sexpr{figstr}\textwidth]{\Sexpr{figfolder}ReLapNarkose_ventrikkel_gruppertmalign_nasjonal.pdf} +\caption{ReLapNarkose\_ventrikkel\_gruppertmalign\_nasjonal.pdf} +\end{figure} + +\begin{figure}[ht] +\centering +\includegraphics[width=\Sexpr{figstr}\textwidth]{\Sexpr{figfolder}mortalitet90_ventrikkel_aar.pdf} +\caption{mortalitet90\_ventrikkel\_aar.pdf} +\end{figure} + +\begin{figure}[ht] +\centering +\includegraphics[width=\Sexpr{figstr}\textwidth]{\Sexpr{figfolder}mortalitet90_ventrikkel_gruppertmalign_nasjonal.pdf} +\caption{mortalitet90\_ventrikkel\_gruppertmalign\_nasjonal.pdf} +\end{figure} + +\begin{figure}[ht] +\centering +\includegraphics[width=\Sexpr{figstr}\textwidth]{\Sexpr{figfolder}mortalitet90_ventrikkel_gruppertrobot_nasjonal.pdf} +\caption{mortalitet90\_ventrikkel\_gruppertrobot\_nasjonal.pdf} +\end{figure} + +\begin{figure}[ht] +\centering +\includegraphics[width=\Sexpr{figstr}\textwidth]{\Sexpr{figfolder}Anastomoselekk_ventrikkel_aar.pdf} +\caption{Anastomoselekk\_ventrikkel\_aar.pdf} +\end{figure} + + +\clearpage + + +\end{document} diff --git a/inst/Aarsrapport2023_ventrikkel_osofagus.pdf b/inst/Aarsrapport2023_ventrikkel_osofagus.pdf new file mode 100644 index 0000000..c8ed387 Binary files /dev/null and b/inst/Aarsrapport2023_ventrikkel_osofagus.pdf differ diff --git a/inst/NorgastSamleDokLandetShiny.Rnw b/inst/NorgastSamleDokLandetShiny.Rnw index 5fe7d46..99e4b0d 100644 --- a/inst/NorgastSamleDokLandetShiny.Rnw +++ b/inst/NorgastSamleDokLandetShiny.Rnw @@ -7,13 +7,7 @@ \usepackage{caption} \usepackage{amssymb} \usepackage[a4paper]{geometry} - -% \newif\ifkolon -% \newif\ifrektum -% \newif\ifoesofagus -% \newif\ifventrikkel -% \newif\iflever -% \newif\ifwhipple +\usepackage[colorlinks=true, urlcolor=blue, linkcolor=black]{hyperref} \title{Resultater fra NORGAST} \author{NORGAST} @@ -45,32 +39,6 @@ knitr::opts_knit$set(root.dir = './') \begin{document} <>= -# hentData <- T -# ## Hvis spørring skjer fra R på server. ###################### -# if(hentData){ -# RegData <- NorgastHentRegData(datoFra = datoFra, datoTil = datoTil) -# } else -# { - -# Kommenter inn for offline bruk - -# library(norgast) -# RegData <- read.table('I:/norgast/AlleVariablerNum2018-11-14 14-30-58.txt', header=TRUE, sep=";", -# encoding = 'UFT-8', stringsAsFactors = F) -# ForlopData <- read.table('I:/norgast/ForlopsOversikt2018-11-14 14-31-11.txt', header=TRUE, sep=";", -# encoding = 'UFT-8', stringsAsFactors = F) -# RegData <- RegData[,c('ForlopsID','VekttapProsent','MedDiabetes','KunCytostatika','KunStraaleterapi', -# 'KjemoRadioKombo','WHOECOG','ModGlasgowScore','ASA','AnestesiStartKl','Hovedoperasjon','OpDato', -# 'NyAnastomose','NyStomi','Tilgang','Robotassistanse','ThoraxTilgang','ReLapNarkose','ViktigsteFunn', -# 'AccordionGrad', 'PRSScore','RegistreringStatus', 'OppfStatus', 'OppfAccordionGrad', -# 'OppfReLapNarkose', 'OppfViktigsteFunn', 'Avdod', 'AvdodDato', 'BMI', 'Hoveddiagnose')] -# # , "Hastegrad")] -# ForlopData <- ForlopData[,c('ErMann', 'AvdRESH', 'Sykehusnavn', 'PasientAlder', 'HovedDato', 'BasisRegStatus', 'ForlopsID', 'PasientID')] -# RegData <- merge(RegData, ForlopData, by.x = "ForlopsID", by.y = "ForlopsID") -# datoFra <- '2016-01-01' -# datoTil <- '2200-01-01' -# reshID <- 0 - figstr <- 0.61 tmp <- Sys.setlocale(category = "LC_ALL", locale = "nb_NO.UTF-8") @ @@ -164,15 +132,21 @@ Templatversjon II, 2016 \clearpage \section{Bakgrunn} -Norsk Register for Gastrokirurgi (NORGAST) er et nasjonalt kvalitetsregister utarbeidet av gastrokirurger fra universitetssykehusmiljøene i Norge. Arbeidet ble påbegynt i begynnelsen av 2010 og registeret ble satt i produksjon fra januar 2014. NORGAST er et register med svært få, men robuste og meningsfulle variabler. Dette for å sikre optimalt datatilfang og størst mulig grad av dekning. Målet er full nasjonal dekning for de formaliserte gastrokirurgiske reseksjonene. -Registeret har nødvendig konsesjon og er samtykkebasert. Databehandlings-ansvaret ligger hos UNN-HF ved direktøren. +Norsk register for gastrokirurgi (NORGAST) er et nasjonalt kvalitetsregister utarbeidet av gastrokirurger fra universitetssykehusmiljøene i Norge. Arbeidet ble påbegynt i begynnelsen av 2010. Registeret ble satt i produksjon fra januar 2014 og oppnådde fra 2015 nasjonal status. NORGAST er et register med svært få, men robuste og meningsfulle variabler. Dette for å sikre optimalt datatilfang og størst mulig grad av dekning. Målet er full nasjonal dekning for de formaliserte gastrokirurgiske reseksjonene. + +\noindent Opplysningene i registeret behandles med hjemmel i: +\begin{itemize} +\item Lov om medisinske kvalitetsregistre +\item Personvernforordningen artikkel 6 nr.1 bokstav e og artikkel 9 nr.2 bokstav j +\end{itemize} + +\noindent Det kreves ikke samtykke fra den registrerte men den registrerte har reservasjonsrett, jf. helseregisterloven § 10 og forskrift om medisinske kvalitetsregistre § 3-2.Databehandlings-ansvaret ligger hos UNN-HF ved direktøren. \\ \\ -En utvidet arbeidsgruppe er etter hvert strukturert i en Styringsgruppe (\mbox{Asgaut} Viste, Morten Tandberg Eriksen, Hans Wasmuth, Hartwig Kørner, Bjørn Atle Bjørnbeth og Stig Norderval). +\noindent En utvidet arbeidsgruppe ble etter hvert strukturert i et fagråd. Fagrådet oppnevnes av registereier, og endres over tid i henhold til registerets vedtekter. For oppdatert sammensetning av Fagråd og registerledelse, se registerets hjemmeside \href{www.norgast.no}{NORGAST}. \\ \\ -Kristoffer Lassen har vært registerets fagleder og daglige leder. Fra 2015 er funksjonen som daglig leder delt med Linn Såve Nymo. +\noindent Registerløsningen er utviklet av Torkil Grindstein ved HN-IKT, analysene er gjort av Kevin Thon (SKDE). Kevin Thon har laget den foreliggende rapporten. -Registerløsningen er utviklet av Torkil Grindstein ved HN-IKT, analysene er gjort av Han Roger Moen ved HN-IKT og Kevin Thon (SKDE). Kevin Thon har laget den foreliggende rapporten. Valideringsverktøy er under utarbeidelse med hjelp av Frank Olsen og Bård Uleberg (begge SKDE). Anne Høie, Are Edvardsen, Lena Ringstad Olsen, Eva Stensland og Philip Skau (alle SKDE) har bidradd med viktige råd underveis. \newpage @@ -237,20 +211,7 @@ print(xtable::xtable(Tabell, digits=0, align=c('l', 'l', rep('r', ncol(Tabell)-1 \section{Innregistrerte operasjoner} <<'Tabell:InnregistrerteOpNasjon', results='asis', echo=FALSE, eval=T, warning=FALSE>>= -# RegData <- NorgastPreprosess(RegData=RegData) RegData$Sykehusnavn <- as.character(RegData$Sykehusnavn) -# if (length(valgtShus) > 1) { -# RegData$AvdRESH[RegData$AvdRESH %in% as.numeric(valgtShus)] <- 99 -# RegData$Sykehusnavn[RegData$AvdRESH == 99] <- 'Ditt utvalg' -# reshID <- 99 -# shtxt <- 'ditt utvalg' -# } - -# Op_grupper <- table(as.factor(RegData$Op_gr)[RegData$Op_gr %in% 1:6 & RegData$AvdRESH == reshID])[1:6] # Bare inkluder kapittel der avdelingen -# Fjern_kapittel <- as.numeric(names(Op_grupper[Op_grupper<5])) # har 5 eller flere operasjoner -# Inkl_i_rapp <- c('\\kolontrue', '\\rektumtrue', '\\oesofagustrue', '\\ventrikkeltrue', '\\levertrue', '\\whippletrue') -# aux <-c('\\kolonfalse', '\\rektumfalse', '\\oesofagusfalse', '\\ventrikkelfalse', '\\leverfalse', '\\whipplefalse') -# Inkl_i_rapp[Fjern_kapittel] <- aux[Fjern_kapittel] Terskel<-20 TabellData_landet <- NorgastTabeller(RegData=RegData, datoFra=datoFra, datoTil=datoTil, @@ -260,29 +221,12 @@ colnames(Tabell) <- c('Operasjonsgruppe', 'Antall', 'Andel (%)') print(xtable::xtable(Tabell, digits=c(0,0,0,1), align=c('l', 'l', rep('r', ncol(Tabell)-1)), caption=paste0('Antall innregistrerte operasjoner etter operasjonsgruppe. Gjelder \\textbf{hele landet}. Bare operasjonsgrupper/NCSP-koder med ', TabellData_landet$Terskel, ' eller flere operasjoner vises, resten faller under \\textit{Andre}'), label='tab:OpgrLandet'), include.rownames=FALSE) -# Terskel<-5 -# TabellData_egen <- NorgastTabeller(RegData=RegData, datoFra=datoFra, datoTil=datoTil, -# minald=0, maxald=130, erMann=99, enhetsUtvalg=2, Terskel=Terskel, reshID=reshID) -# Tabell <- TabellData_egen$Tabell -# colnames(Tabell) <- c('Operasjonsgruppe', 'Antall', 'Andel (%)') -# print(xtable::xtable(Tabell, digits=c(0,0,0,1), align=c('l', 'l', rep('r', ncol(Tabell)-1)), -# caption=paste0('Antall innregistrerte operasjoner etter operasjonsgruppe. Gjelder \\textbf{', shtxt, '}. Bare operasjonsgrupper/NCSP-koder med ', TabellData_egen$Terskel, ' eller flere operasjoner vises, resten faller under \\textit{Andre}'), -# label='tab:OpgrSh'), include.rownames=FALSE) @ -% \Sexpr{Inkl_i_rapp[1]} -% \Sexpr{Inkl_i_rapp[2]} -% \Sexpr{Inkl_i_rapp[3]} -% \Sexpr{Inkl_i_rapp[4]} -% \Sexpr{Inkl_i_rapp[5]} -% \Sexpr{Inkl_i_rapp[6]} - \clearpage \section{Kolonreseksjoner} -% \ifkolon - \subsection{Demografiske data og utvalgte risikovariabler} <<'Demografisk_kolon', include=FALSE, echo=FALSE, eval=T, cache=FALSE>>= varNavn <- c('erMann', 'MedDiabetes','ModGlasgowScore') @@ -369,14 +313,27 @@ for (p in 1:length(varNavn)){ FigAndeler(RegData, valgtVar=varNavn[p], datoFra=datoFra, datoTil=datoTil, minald=0, maxald=130, erMann='', outfile=outfile, reshID=reshID, enhetsUtvalg=0, stabel=T, preprosess=F, op_gruppe=1)} + +outfile=paste0("ohjelp_kveld", '_', gruppe, '.pdf') + FigAndeler(RegData, valgtVar="ohjelp_kveld", datoFra=datoFra, datoTil=datoTil, + minald=0, maxald=130, erMann='', outfile=outfile, + reshID=reshID, enhetsUtvalg=0, stabel=T, preprosess=F, op_gruppe=1) + @ +\begin{figure}[ht] +\centering +\includegraphics[width=\Sexpr{figstr}\textwidth]{ohjelp_kveld_\Sexpr{gruppe}.pdf} +\caption{\Sexpr{gruppe}reseksjoner med anestesistart mellom klokken 08-16. Differensierer ikke mellom virkedag og andre dager.} +\end{figure} + \begin{figure}[ht] \centering \includegraphics[width=\Sexpr{figstr}\textwidth]{Hastegrad_\Sexpr{gruppe}.pdf} -\caption{\Sexpr{gruppe}reseksjoner med anestesistart mellom klokken 08-16 på virkedager regnes som elektive. Virkedager er her definert som alle dager som ikke er offisielle \emph{røddager} eller helg.} +\caption{\Sexpr{gruppe}reseksjoner. Variabelen akutt elektiv kirurgi ble innført i registeret i 18.04.2018. Dersom utvalget inkluderer data fra før denne dato vil N kunne bli lavere enn antall forløp i samme periode.} \end{figure} + \begin{figure}[ht] \centering \includegraphics[width=\Sexpr{figstr}\textwidth]{Tilgang_\Sexpr{gruppe}.pdf} @@ -534,14 +491,27 @@ for (p in 1:length(varNavn)){ FigAndeler(RegData, valgtVar=varNavn[p], datoFra=datoFra, datoTil=datoTil, minald=0, maxald=130, erMann='', outfile=outfile, reshID=reshID, enhetsUtvalg=0, stabel=T, preprosess=F, op_gruppe=2)} + +outfile=paste0("ohjelp_kveld", '_', gruppe, '.pdf') + FigAndeler(RegData, valgtVar="ohjelp_kveld", datoFra=datoFra, datoTil=datoTil, + minald=0, maxald=130, erMann='', outfile=outfile, + reshID=reshID, enhetsUtvalg=0, stabel=T, preprosess=F, op_gruppe=2) + @ +\begin{figure}[ht] +\centering +\includegraphics[width=\Sexpr{figstr}\textwidth]{ohjelp_kveld_\Sexpr{gruppe}.pdf} +\caption{\Sexpr{gruppe}reseksjoner med anestesistart mellom klokken 08-16. Differensierer ikke mellom virkedag og andre dager.} +\end{figure} + \begin{figure}[ht] \centering \includegraphics[width=\Sexpr{figstr}\textwidth]{Hastegrad_\Sexpr{gruppe}.pdf} -\caption{\Sexpr{gruppe}reseksjoner med anestesistart mellom klokken 08-16 på virkedager regnes som elektive. Virkedager er her definert som alle dager som ikke er offisielle \emph{røddager} eller helg.} +\caption{\Sexpr{gruppe}reseksjoner. Variabelen akutt elektiv kirurgi ble innført i registeret i 18.04.2018. Dersom utvalget inkluderer data fra før denne dato vil N kunne bli lavere enn antall forløp i samme periode.} \end{figure} + \begin{figure}[ht] \centering \includegraphics[width=\Sexpr{figstr}\textwidth]{Tilgang_\Sexpr{gruppe}.pdf} @@ -703,12 +673,24 @@ for (p in 1:length(varNavn)){ FigAndeler(RegData, valgtVar=varNavn[p], datoFra=datoFra, datoTil=datoTil, minald=0, maxald=130, erMann='', outfile=outfile, reshID=reshID, enhetsUtvalg=0, stabel=T, preprosess=F, op_gruppe=4)} + +outfile=paste0("ohjelp_kveld", '_', gruppe, '.pdf') + FigAndeler(RegData, valgtVar="ohjelp_kveld", datoFra=datoFra, datoTil=datoTil, + minald=0, maxald=130, erMann='', outfile=outfile, + reshID=reshID, enhetsUtvalg=0, stabel=T, preprosess=F, op_gruppe=4) + @ +\begin{figure}[ht] +\centering +\includegraphics[width=\Sexpr{figstr}\textwidth]{ohjelp_kveld_\Sexpr{gruppe}.pdf} +\caption{\Sexpr{gruppe}reseksjoner med anestesistart mellom klokken 08-16. Differensierer ikke mellom virkedag og andre dager.} +\end{figure} + \begin{figure}[ht] \centering \includegraphics[width=\Sexpr{figstr}\textwidth]{Hastegrad_\Sexpr{gruppe}.pdf} -\caption{\Sexpr{gruppe}reseksjoner med anestesistart mellom klokken 08-16 på virkedager regnes som elektive. Virkedager er her definert som alle dager som ikke er offisielle \emph{røddager} eller helg.} +\caption{\Sexpr{gruppe}reseksjoner. Variabelen akutt elektiv kirurgi ble innført i registeret i 18.04.2018. Dersom utvalget inkluderer data fra før denne dato vil N kunne bli lavere enn antall forløp i samme periode.} \end{figure} \begin{figure}[ht] @@ -1382,7 +1364,7 @@ print(xtable::xtable(Tabell, digits=c(0,0,0,1,1,1,1,1,1,1)), 'Operasjonsgruppe & $N$ & rate (\\%) & lekkasje\\footnote[2]{Dette er av alle opererte, ikke alle under risiko. Se Tabell \\ref{tab:Anastomose1} for korrekt rate av de under risiko.} & infeksjon & Blødning & Sårruptur & Annet & Ingen\\\\\n','\\midrule\n','\\bottomrule\n')), include.colnames=FALSE, include.rownames=FALSE) @ -\captionof{table}{Reoperasjoner for de ulike operasjonsgruppene inkudert fordeling på årsak til reoperasjon. Gjelder \textbf{hele landet}.} +\captionof{table}{Reoperasjoner for de ulike operasjonsgruppene inkludert fordeling på årsak til reoperasjon. Gjelder \textbf{hele landet}.} \end{minipage} \end{table} diff --git a/inst/NorgastSamleDokShiny.Rnw b/inst/NorgastSamleDokShiny.Rnw index 8f70291..2e6f256 100644 --- a/inst/NorgastSamleDokShiny.Rnw +++ b/inst/NorgastSamleDokShiny.Rnw @@ -7,6 +7,7 @@ \usepackage{caption} \usepackage{amssymb} \usepackage[a4paper]{geometry} +\usepackage[colorlinks=true, urlcolor=blue, linkcolor=black]{hyperref} \newif\ifkolon \newif\ifrektum @@ -73,7 +74,7 @@ tmp <- Sys.setlocale(category = "LC_ALL", locale = "nb_NO.UTF-8") \textbf{NORGAST}\\ \vspace{0.3cm} \LARGE -Norsk Register for Gastrokirurgi +Norsk register for gastrokirurgi \end{flushleft} % \vspace{0.5cm} \vfill @@ -151,15 +152,19 @@ Templatversjon II, 2016 \clearpage \section{Bakgrunn} -Norsk Register for Gastrokirurgi (NORGAST) er et nasjonalt kvalitetsregister utarbeidet av gastrokirurger fra universitetssykehusmiljøene i Norge. Arbeidet ble påbegynt i begynnelsen av 2010 og registeret ble satt i produksjon fra januar 2014. NORGAST er et register med svært få, men robuste og meningsfulle variabler. Dette for å sikre optimalt datatilfang og størst mulig grad av dekning. Målet er full nasjonal dekning for de formaliserte gastrokirurgiske reseksjonene. +Norsk register for gastrokirurgi (NORGAST) er et nasjonalt kvalitetsregister utarbeidet av gastrokirurger fra universitetssykehusmiljøene i Norge. Arbeidet ble påbegynt i begynnelsen av 2010. Registeret ble satt i produksjon fra januar 2014 og oppnådde fra 2015 nasjonal status. NORGAST er et register med svært få, men robuste og meningsfulle variabler. Dette for å sikre optimalt datatilfang og størst mulig grad av dekning. Målet er full nasjonal dekning for de formaliserte gastrokirurgiske reseksjonene. -Registeret har nødvendig konsesjon og er samtykkebasert. Databehandlings-ansvaret ligger hos UNN-HF ved direktøren. +\noindent Opplysningene i registeret behandles med hjemmel i: +\begin{itemize} +\item Lov om medisinske kvalitetsregistre +\item Personvernforordningen artikkel 6 nr.1 bokstav e og artikkel 9 nr.2 bokstav j +\end{itemize} -En utvidet arbeidsgruppe er etter hvert strukturert i en Styringsgruppe (\mbox{Asgaut} Viste, Morten Tandberg Eriksen, Hans Wasmuth, Hartwig Kørner, Bjørn Atle Bjørnbeth og Stig Norderval). +\noindent Det kreves ikke samtykke fra den registrerte men den registrerte har reservasjonsrett, jf. helseregisterloven § 10 og forskrift om medisinske kvalitetsregistre § 3-2.Databehandlings-ansvaret ligger hos UNN-HF ved direktøren. \\ \\ -Kristoffer Lassen har vært registerets fagleder og daglige leder. Fra 2015 er funksjonen som daglig leder delt med Linn Såve Nymo. +\noindent En utvidet arbeidsgruppe ble etter hvert strukturert i et fagråd. Fagrådet oppnevnes av registereier, og endres over tid i henhold til registerets vedtekter. For oppdatert sammensetning av Fagråd og registerledelse, se registerets hjemmeside \href{www.norgast.no}{NORGAST}. \\ \\ -Registerløsningen er utviklet av Torkil Grindstein ved HN-IKT, analysene er gjort av Han Roger Moen ved HN-IKT og Kevin Thon (SKDE). Kevin Thon har laget den foreliggende rapporten. Valideringsverktøy er under utarbeidelse med hjelp av Frank Olsen og Bård Uleberg (begge SKDE). Anne Høie, Are Edvardsen, Lena Ringstad Olsen, Eva Stensland og Philip Skau (alle SKDE) har bidradd med viktige råd underveis. +\noindent Registerløsningen er utviklet av Torkil Grindstein ved HN-IKT, analysene er gjort av Kevin Thon (SKDE). Kevin Thon har laget den foreliggende rapporten. \newpage @@ -247,8 +252,10 @@ if (length(which(RegData$ncsp_lowercase %in% c('jlc10', 'jlc11') & RegData$AvdRE Terskel<-20 -TabellData_landet <- NorgastTabeller(RegData=RegData, datoFra=datoFra, datoTil=datoTil, - minald=0, maxald=130, erMann=99, enhetsUtvalg=0, Terskel=Terskel, reshID=reshID) +TabellData_landet <- NorgastTabeller( + RegData=RegData, datoFra=datoFra, datoTil=datoTil, + minald=0, maxald=130, erMann=99, enhetsUtvalg=0, + Terskel=Terskel, reshID=reshID) Tabell <- TabellData_landet$Tabell colnames(Tabell) <- c('Operasjonsgruppe', 'Antall', 'Andel (%)') print(xtable::xtable(Tabell, digits=c(0,0,0,1), align=c('l', 'l', rep('r', ncol(Tabell)-1)), @@ -364,12 +371,23 @@ for (p in 1:length(varNavn)){ FigAndeler(RegData, valgtVar=varNavn[p], datoFra=datoFra, datoTil=datoTil, minald=0, maxald=130, erMann='', outfile=outfile, reshID=reshID, enhetsUtvalg=1, stabel=T, preprosess=F, op_gruppe=1)} +outfile=paste0("ohjelp_kveld", '_', gruppe, '.pdf') + FigAndeler(RegData, valgtVar="ohjelp_kveld", datoFra=datoFra, datoTil=datoTil, + minald=0, maxald=130, erMann='', outfile=outfile, + reshID=reshID, enhetsUtvalg=1, stabel=T, preprosess=F, op_gruppe=1) + @ +\begin{figure}[ht] +\centering +\includegraphics[width=\Sexpr{figstr}\textwidth]{ohjelp_kveld_\Sexpr{gruppe}.pdf} +\caption{\Sexpr{gruppe}reseksjoner med anestesistart mellom klokken 08-16. Differensierer ikke mellom virkedag og andre dager.} +\end{figure} + \begin{figure}[ht] \centering \includegraphics[width=\Sexpr{figstr}\textwidth]{Hastegrad_\Sexpr{gruppe}.pdf} -\caption{\Sexpr{gruppe}reseksjoner med anestesistart mellom klokken 08-16 på virkedager regnes som elektive. Virkedager er her definert som alle dager som ikke er offisielle \emph{røddager} eller helg.} +\caption{\Sexpr{gruppe}reseksjoner. Variabelen akutt elektiv kirurgi ble innført i registeret i 18.04.2018. Dersom utvalget inkluderer data fra før denne dato vil N kunne bli lavere enn antall forløp i samme periode.} \end{figure} \begin{figure}[ht] @@ -529,12 +547,24 @@ for (p in 1:length(varNavn)){ FigAndeler(RegData, valgtVar=varNavn[p], datoFra=datoFra, datoTil=datoTil, minald=0, maxald=130, erMann='', outfile=outfile, reshID=reshID, enhetsUtvalg=1, stabel=T, preprosess=F, op_gruppe=2)} + +outfile=paste0("ohjelp_kveld", '_', gruppe, '.pdf') + FigAndeler(RegData, valgtVar="ohjelp_kveld", datoFra=datoFra, datoTil=datoTil, + minald=0, maxald=130, erMann='', outfile=outfile, + reshID=reshID, enhetsUtvalg=1, stabel=T, preprosess=F, op_gruppe=2) + @ +\begin{figure}[ht] +\centering +\includegraphics[width=\Sexpr{figstr}\textwidth]{ohjelp_kveld_\Sexpr{gruppe}.pdf} +\caption{\Sexpr{gruppe}reseksjoner med anestesistart mellom klokken 08-16. Differensierer ikke mellom virkedag og andre dager.} +\end{figure} + \begin{figure}[ht] \centering \includegraphics[width=\Sexpr{figstr}\textwidth]{Hastegrad_\Sexpr{gruppe}.pdf} -\caption{\Sexpr{gruppe}reseksjoner med anestesistart mellom klokken 08-16 på virkedager regnes som elektive. Virkedager er her definert som alle dager som ikke er offisielle \emph{røddager} eller helg.} +\caption{\Sexpr{gruppe}reseksjoner. Variabelen akutt elektiv kirurgi ble innført i registeret i 18.04.2018. Dersom utvalget inkluderer data fra før denne dato vil N kunne bli lavere enn antall forløp i samme periode.} \end{figure} \begin{figure}[ht] @@ -698,12 +728,23 @@ for (p in 1:length(varNavn)){ FigAndeler(RegData, valgtVar=varNavn[p], datoFra=datoFra, datoTil=datoTil, minald=0, maxald=130, erMann='', outfile=outfile, reshID=reshID, enhetsUtvalg=1, stabel=T, preprosess=F, op_gruppe=4)} +outfile=paste0("ohjelp_kveld", '_', gruppe, '.pdf') + FigAndeler(RegData, valgtVar="ohjelp_kveld", datoFra=datoFra, datoTil=datoTil, + minald=0, maxald=130, erMann='', outfile=outfile, + reshID=reshID, enhetsUtvalg=1, stabel=T, preprosess=F, op_gruppe=4) + @ +\begin{figure}[ht] +\centering +\includegraphics[width=\Sexpr{figstr}\textwidth]{ohjelp_kveld_\Sexpr{gruppe}.pdf} +\caption{\Sexpr{gruppe}reseksjoner med anestesistart mellom klokken 08-16. Differensierer ikke mellom virkedag og andre dager.} +\end{figure} + \begin{figure}[ht] \centering \includegraphics[width=\Sexpr{figstr}\textwidth]{Hastegrad_\Sexpr{gruppe}.pdf} -\caption{\Sexpr{gruppe}reseksjoner med anestesistart mellom klokken 08-16 på virkedager regnes som elektive. Virkedager er her definert som alle dager som ikke er offisielle \emph{røddager} eller helg.} +\caption{\Sexpr{gruppe}reseksjoner. Variabelen akutt elektiv kirurgi ble innført i registeret i 18.04.2018. Dersom utvalget inkluderer data fra før denne dato vil N kunne bli lavere enn antall forløp i samme periode.} \end{figure} \begin{figure}[ht] @@ -1373,7 +1414,7 @@ print(xtable::xtable(Tabell, digits=c(0,0,0,1,1,1,1,1,1,1)), 'Operasjonsgruppe & $N$ & rate (\\%) & lekkasje\\footnote[2]{Dette er av alle opererte, ikke alle under risiko. Se Tabell \\ref{tab:Anastomose1} for korrekt rate av de under risiko.} & infeksjon & Blødning & Sårruptur & Annet & Ingen\\\\\n','\\midrule\n','\\bottomrule\n')), include.colnames=FALSE, include.rownames=FALSE) @ -\captionof{table}{Reoperasjoner for de ulike operasjonsgruppene inkudert fordeling på årsak til reoperasjon. Gjelder \textbf{hele landet}.} +\captionof{table}{Reoperasjoner for de ulike operasjonsgruppene inkludert fordeling på årsak til reoperasjon. Gjelder \textbf{hele landet}.} \end{minipage} \end{table} @@ -1393,7 +1434,7 @@ print(xtable::xtable(Tabell, digits=c(0,0,0,1,1,1,1,1,1,1)), 'Operasjonsgruppe & $N$ & rate (\\%) & lekkasje\\footnote[2]{Dette er av alle opererte, ikke alle under risiko. Se Tabell \\ref{tab:Anastomose1} for korrekt rate av de under risiko.} & infeksjon & Blødning & Sårruptur & Annet & Ingen\\\\\n','\\midrule\n','\\bottomrule\n')), include.colnames=FALSE, include.rownames=FALSE) @ -\captionof{table}{Reoperasjoner for de ulike operasjonsgruppene inkudert fordeling på årsak til reoperasjon. Gjelder \textbf{\Sexpr{shtxt}}.} +\captionof{table}{Reoperasjoner for de ulike operasjonsgruppene inkludert fordeling på årsak til reoperasjon. Gjelder \textbf{\Sexpr{shtxt}}.} \end{minipage} \end{table} diff --git a/inst/analyse_anastomoselekk_robot.html b/inst/analyse_anastomoselekk_robot.html new file mode 100644 index 0000000..61c6578 --- /dev/null +++ b/inst/analyse_anastomoselekk_robot.html @@ -0,0 +1,744 @@ + + + + + + + + + +Anastomoselekkasje ved robotkirurgi + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+

Anastomoselekkasje ved robotkirurgi

+
+ + + +
+ + + + +
+ + +
+ +
+

Lesing og filtrering av data

+
+
library(norgast)
+library(dplyr)
+rm(list = ls())
+
+RegData_raa <- norgast::NorgastHentRegData() # Laster rådata
+RegData <- NorgastPreprosess(RegData_raa)    # Enkle filtreringer og variabeldefinisjoner
+
+RegData <- RegData %>% 
+  filter(#HovedDato >= "2020-01-01",
+         # HovedDato <= "2024-06-30", # Filtrer på operasjonsdato
+         HovedDato >= "2021-01-01",
+         HovedDato <= "2023-12-31", # Filtrer på operasjonsdato
+         FerdigForlop_v2 == 1,      # Kun fullførte forløp
+         WHOECOG != 9,              # Fjerner de få registreringene med "Ukjent" WHOECOG
+         Op_gr == 2,                # Rektumreseksjoner
+         Hastegrad == 1,            # Elektive operasjoner
+         Hastegrad_tid == 1,        # På ukedag og med anestesistart i normalarbeidstid
+         NyAnastomose == 1,         # Ny anastomomse
+         substr(toupper(Hoveddiagnose), 1, 3) == "C20", # Kun malign
+         Tilgang == 2               # Kun laparoskopiske inngrep, uten de konverterte
+         )
+
+
+
tab1 <- RegData %>% summarise(N = n(),
+                      Lekkkasje = sum(Anastomoselekkasje==1),
+                      MedianAlder = median(Alder),
+                      Bestråling = sum(KunStraaleterapi | KjemoRadioKombo),
+                      Tum_avst = median(AvstandAnalVerge, na.rm = T),
+                      ASA = mean(ASA),
+                      .by = c(NyStomi, Robotassistanse, erMann)) %>% 
+  janitor::adorn_totals() %>% 
+  mutate(Lekkasje_pst = Lekkkasje/N*100,
+         Robotassistanse = ifelse(Robotassistanse %in% 0:1, Robotassistanse, "-"),
+         erMann = ifelse(erMann %in% 0:1, erMann, "-"),
+         MedianAlder = ifelse(Robotassistanse %in% 0:1, MedianAlder, median(RegData$Alder)),
+         Tum_avst = ifelse(erMann %in% 0:1, Tum_avst, median(RegData$AvstandAnalVerge, na.rm = T)),
+         ASA = ifelse(erMann %in% 0:1, ASA, mean(RegData$ASA)))
+
+tab2 <- tab1 %>% filter(NyStomi != "Total") %>% 
+  mutate(Robotassistanse = factor(Robotassistanse, levels=0:1, 
+                                  labels=c("Konvensjonell", "Robot")),
+         NyStomi = factor(NyStomi, levels=0:1, labels=c("Nei", "Ja")),
+         Kjønn = factor(erMann, levels=0:1, labels=c("Kvinne", "Mann"))) %>% 
+  tidyr::pivot_wider(id_cols = c(NyStomi, Kjønn), names_from = Robotassistanse,
+                                    values_from = Lekkasje_pst) %>% 
+  rename("Avlastende stomi" = NyStomi)
+
+knitr::kable(tab1, digits = 2, caption = "Deskriptiv statistikk")
+
+ + ++++++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Deskriptiv statistikk
NyStomiRobotassistanseerMannNLekkkasjeMedianAlderBestrålingTum_avstASALekkasje_pst
0112634867.554512.02.1818.25
0011392067.661512.02.2214.39
111180865.32778.02.224.44
100116164.05418.02.110.86
101200469.23398.52.332.00
110103164.45418.02.170.97
0101661663.083812.02.089.64
000144469.551212.02.122.78
Total--131110266.6530810.02.197.78
+
+
+

I tabellen over er Bestråling definert som at enten KunStraaleterapi eller KjemoRadioKombo er avkrysset.

+
+
knitr::kable(tab2, digits = 2, caption = "Andel anastomoselekkasjer for robotassistert
+             og konvensjonell laparoskopi") %>% 
+  kableExtra::add_header_above(c(" " = 2, "Andel anastomoselekkaskje (%)" = 2))
+
+ + ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Andel anastomoselekkasjer for robotassistert og konvensjonell laparoskopi
+Andel anastomoselekkaskje (%) +
Avlastende stomiKjønnRobotKonvensjonell
NeiMann18.2514.39
JaMann4.442.00
JaKvinne0.970.86
NeiKvinne9.642.78
+ + +
+
+
+
+

Foreløpig analyse

+
+
model1 <- glm(Anastomoselekkasje ~ 1 + Robotassistanse, 
+              data = RegData, family = "binomial")
+summary(model1)
+
+

+Call:
+glm(formula = Anastomoselekkasje ~ 1 + Robotassistanse, family = "binomial", 
+    data = RegData)
+
+Coefficients:
+                Estimate Std. Error z value Pr(>|z|)    
+(Intercept)      -2.9783     0.1903 -15.647  < 2e-16 ***
+Robotassistanse   0.8089     0.2269   3.565 0.000364 ***
+---
+Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
+
+(Dispersion parameter for binomial family taken to be 1)
+
+    Null deviance: 716.78  on 1310  degrees of freedom
+Residual deviance: 702.97  on 1309  degrees of freedom
+AIC: 706.97
+
+Number of Fisher Scoring iterations: 5
+
+
model2 <- glm(Anastomoselekkasje ~ 1 + Robotassistanse + 
+                NyStomi, data = RegData, family = "binomial")
+summary(model2)
+
+

+Call:
+glm(formula = Anastomoselekkasje ~ 1 + Robotassistanse + NyStomi, 
+    family = "binomial", data = RegData)
+
+Coefficients:
+                Estimate Std. Error z value Pr(>|z|)    
+(Intercept)      -2.3880     0.2007 -11.896  < 2e-16 ***
+Robotassistanse   0.6507     0.2308   2.820  0.00481 ** 
+NyStomi          -1.7021     0.2947  -5.776 7.64e-09 ***
+---
+Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
+
+(Dispersion parameter for binomial family taken to be 1)
+
+    Null deviance: 716.78  on 1310  degrees of freedom
+Residual deviance: 656.99  on 1308  degrees of freedom
+AIC: 662.99
+
+Number of Fisher Scoring iterations: 6
+
+
model3 <- glm(Anastomoselekkasje ~ 1 + Robotassistanse + 
+                NyStomi + erMann + as.factor(WHOECOG) + Alder +
+                as.factor(ASA) + as.factor(Forbehandling) +
+                AvstandAnalVerge,
+              data = RegData %>% filter(!is.na(AvstandAnalVerge)), 
+              family = "binomial")
+summary(model3)
+
+

+Call:
+glm(formula = Anastomoselekkasje ~ 1 + Robotassistanse + NyStomi + 
+    erMann + as.factor(WHOECOG) + Alder + as.factor(ASA) + as.factor(Forbehandling) + 
+    AvstandAnalVerge, family = "binomial", data = RegData %>% 
+    filter(!is.na(AvstandAnalVerge)))
+
+Coefficients:
+                            Estimate Std. Error z value Pr(>|z|)    
+(Intercept)                 -1.59949    1.17377  -1.363   0.1730    
+Robotassistanse              0.60010    0.26489   2.265   0.0235 *  
+NyStomi                     -1.97422    0.35392  -5.578 2.43e-08 ***
+erMann                       1.14329    0.28163   4.060 4.92e-05 ***
+as.factor(WHOECOG)1         -0.15576    0.34860  -0.447   0.6550    
+as.factor(WHOECOG)2         -0.68249    1.05975  -0.644   0.5196    
+as.factor(WHOECOG)3          0.99262    1.21330   0.818   0.4133    
+as.factor(WHOECOG)4        -14.33545 1506.35020  -0.010   0.9924    
+Alder                       -0.01374    0.01171  -1.173   0.2407    
+as.factor(ASA)2             -0.12109    0.42930  -0.282   0.7779    
+as.factor(ASA)3             -0.08639    0.50041  -0.173   0.8629    
+as.factor(ASA)4            -12.96990  826.61932  -0.016   0.9875    
+as.factor(Forbehandling)2    0.43330    0.87214   0.497   0.6193    
+as.factor(Forbehandling)3   -0.02367    0.82115  -0.029   0.9770    
+as.factor(Forbehandling)4    0.12788    0.76781   0.167   0.8677    
+AvstandAnalVerge            -0.05768    0.03918  -1.472   0.1409    
+---
+Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
+
+(Dispersion parameter for binomial family taken to be 1)
+
+    Null deviance: 604.69  on 1138  degrees of freedom
+Residual deviance: 528.04  on 1123  degrees of freedom
+AIC: 560.04
+
+Number of Fisher Scoring iterations: 15
+
+
aux1 <- summary(model1)$coefficients %>%
+  as.data.frame.matrix() 
+aux1 <- aux1[row.names(aux1) == "Robotassistanse", ]
+aux2 <- summary(model2)$coefficients %>%
+  as.data.frame.matrix() 
+aux2 <- aux2[row.names(aux2) == "Robotassistanse", ]
+aux3 <- summary(model3)$coefficients %>%
+  as.data.frame.matrix() 
+aux3 <- aux3[row.names(aux3) == "Robotassistanse", ]
+
+
+tab3 <- data.frame(
+  Model = c("Model 1", "Model 2", "Model 3"),
+  OddsRatio = c(exp(aux1$Estimate),
+                exp(aux2$Estimate),
+                exp(aux3$Estimate)),
+  p.verdi = c(aux1$`Pr(>|z|)`,
+                aux2$`Pr(>|z|)`,
+                aux3$`Pr(>|z|)`)
+)
+
+knitr::kable(tab3)
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
ModelOddsRatiop.verdi
Model 12.2454270.0003645
Model 21.9168960.0048096
Model 31.8222970.0234837
+ + +
+
+

Modell 1 er uten justering, modell 2 er justert for avlastende stomi, mens modell 3 er justert for avlastende stomi, kjønn, WHOecog, Alder, ASA-grad, type forbehandling (KunCytostatika=1, KunStraaleterapi=2, KjemoRadioKombo=3, Ingen = 4) og avstand fra analkanten. Modell 3 er filtrert til å kun bruke registreringene som har en verdi på AvstandAnalVerge.

+
+ +
+ + +
+ + + + \ No newline at end of file diff --git a/inst/analyse_anastomoselekk_robot.qmd b/inst/analyse_anastomoselekk_robot.qmd new file mode 100644 index 0000000..b54df81 --- /dev/null +++ b/inst/analyse_anastomoselekk_robot.qmd @@ -0,0 +1,150 @@ +--- +title: "Anastomoselekkasje ved robotkirurgi" +format: html +editor: visual +--- + +## Lesing og filtrering av data + +```{r} +#| warning: false +library(norgast) +library(dplyr) +rm(list = ls()) + +RegData_raa <- norgast::NorgastHentRegData() # Laster rådata +RegData <- NorgastPreprosess(RegData_raa) # Enkle filtreringer og variabeldefinisjoner + +RegData <- RegData %>% + filter(#HovedDato >= "2020-01-01", + # HovedDato <= "2024-06-30", # Filtrer på operasjonsdato + HovedDato >= "2021-01-01", + HovedDato <= "2023-12-31", # Filtrer på operasjonsdato + FerdigForlop_v2 == 1, # Kun fullførte forløp + WHOECOG != 9, # Fjerner de få registreringene med "Ukjent" WHOECOG + Op_gr == 2, # Rektumreseksjoner + Hastegrad == 1, # Elektive operasjoner + Hastegrad_tid == 1, # På ukedag og med anestesistart i normalarbeidstid + NyAnastomose == 1, # Ny anastomomse + substr(toupper(Hoveddiagnose), 1, 3) == "C20", # Kun malign + Tilgang == 2 # Kun laparoskopiske inngrep, uten de konverterte + ) + +``` + +```{r} +tab1 <- RegData %>% summarise(N = n(), + Lekkkasje = sum(Anastomoselekkasje==1), + MedianAlder = median(Alder), + Bestråling = sum(KunStraaleterapi | KjemoRadioKombo), + Tum_avst = median(AvstandAnalVerge, na.rm = T), + ASA = mean(ASA), + .by = c(NyStomi, Robotassistanse, erMann)) %>% + janitor::adorn_totals() %>% + mutate(Lekkasje_pst = Lekkkasje/N*100, + Robotassistanse = ifelse(Robotassistanse %in% 0:1, Robotassistanse, "-"), + erMann = ifelse(erMann %in% 0:1, erMann, "-"), + MedianAlder = ifelse(Robotassistanse %in% 0:1, MedianAlder, median(RegData$Alder)), + Tum_avst = ifelse(erMann %in% 0:1, Tum_avst, median(RegData$AvstandAnalVerge, na.rm = T)), + ASA = ifelse(erMann %in% 0:1, ASA, mean(RegData$ASA))) + +tab2 <- tab1 %>% filter(NyStomi != "Total") %>% + mutate(Robotassistanse = factor(Robotassistanse, levels=0:1, + labels=c("Konvensjonell", "Robot")), + NyStomi = factor(NyStomi, levels=0:1, labels=c("Nei", "Ja")), + Kjønn = factor(erMann, levels=0:1, labels=c("Kvinne", "Mann"))) %>% + tidyr::pivot_wider(id_cols = c(NyStomi, Kjønn), names_from = Robotassistanse, + values_from = Lekkasje_pst) %>% + rename("Avlastende stomi" = NyStomi) + +knitr::kable(tab1, digits = 2, caption = "Deskriptiv statistikk") +``` +I tabellen over er Bestråling definert som at enten KunStraaleterapi eller KjemoRadioKombo er avkrysset. + +```{r} +knitr::kable(tab2, digits = 2, caption = "Andel anastomoselekkasjer for robotassistert + og konvensjonell laparoskopi") %>% + kableExtra::add_header_above(c(" " = 2, "Andel anastomoselekkaskje (%)" = 2)) + +``` + +## Foreløpig analyse + +```{r} +model1 <- glm(Anastomoselekkasje ~ 1 + Robotassistanse, + data = RegData, family = "binomial") +summary(model1) + +model2 <- glm(Anastomoselekkasje ~ 1 + Robotassistanse + + NyStomi, data = RegData, family = "binomial") +summary(model2) + +model3 <- glm(Anastomoselekkasje ~ 1 + Robotassistanse + + NyStomi + erMann + as.factor(WHOECOG) + Alder + + as.factor(ASA) + as.factor(Forbehandling) + + AvstandAnalVerge, + data = RegData %>% filter(!is.na(AvstandAnalVerge)), + family = "binomial") +summary(model3) + +aux1 <- summary(model1)$coefficients %>% + as.data.frame.matrix() +aux1 <- aux1[row.names(aux1) == "Robotassistanse", ] +aux2 <- summary(model2)$coefficients %>% + as.data.frame.matrix() +aux2 <- aux2[row.names(aux2) == "Robotassistanse", ] +aux3 <- summary(model3)$coefficients %>% + as.data.frame.matrix() +aux3 <- aux3[row.names(aux3) == "Robotassistanse", ] + + +tab3 <- data.frame( + Model = c("Model 1", "Model 2", "Model 3"), + OddsRatio = c(exp(aux1$Estimate), + exp(aux2$Estimate), + exp(aux3$Estimate)), + p.verdi = c(aux1$`Pr(>|z|)`, + aux2$`Pr(>|z|)`, + aux3$`Pr(>|z|)`) +) + +knitr::kable(tab3) + +``` + +Modell 1 er uten justering, modell 2 er justert for avlastende stomi, mens modell 3 er justert for +avlastende stomi, kjønn, WHOecog, Alder, ASA-grad, type forbehandling (KunCytostatika=1, KunStraaleterapi=2, KjemoRadioKombo=3, Ingen = 4) og avstand fra analkanten. Modell 3 er filtrert til å kun bruke registreringene som har en verdi på AvstandAnalVerge. + + + +```{r} +#| echo: false +# RegData <- RegData %>% mutate( +# erMann = factor(erMann, levels=0:1, labels=c("Kvinne", "Mann")), +# NyStomi = factor(NyStomi, levels=0:1, labels=c("Ikke-stomi", "Ny stomi")) +# ) +# model3_k <- glm(Anastomoselekkasje ~ 1 + Robotassistanse + +# NyStomi + as.factor(WHOECOG) + Alder + +# as.factor(ASA) + as.factor(Forbehandling) + +# AvstandAnalVerge, +# data = RegData %>% filter(!is.na(AvstandAnalVerge), +# erMann==0), +# family = "binomial") +# summary(model3_k) +# +# model3_m <- glm(Anastomoselekkasje ~ 1 + Robotassistanse + +# NyStomi + as.factor(WHOECOG) + Alder + +# as.factor(ASA) + as.factor(Forbehandling) + +# AvstandAnalVerge, +# data = RegData %>% filter(!is.na(AvstandAnalVerge), +# erMann==1), +# family = "binomial") +# summary(model3_m) +# aux4 <- summary(model3_k)$coefficients %>% +# as.data.frame.matrix() +# aux4 <- aux4[row.names(aux4) == "Robotassistanse", ] +# aux5 <- summary(model3_m)$coefficients %>% +# as.data.frame.matrix() +# aux5 <- aux5[row.names(aux5) == "Robotassistanse", ] + +``` diff --git a/man/FigAndeler.Rd b/man/FigAndeler.Rd index 189b7fc..990271a 100644 --- a/man/FigAndeler.Rd +++ b/man/FigAndeler.Rd @@ -37,7 +37,8 @@ FigAndeler( kun_ferdigstilte = TRUE, tilgang_utvidet = "", ny_stomi = 99, - accordion = "" + accordion = "", + icd_kode = "" ) } \arguments{ diff --git a/man/NorgastBeregnAndeler.Rd b/man/NorgastBeregnAndeler.Rd index d2ad1c4..8029594 100644 --- a/man/NorgastBeregnAndeler.Rd +++ b/man/NorgastBeregnAndeler.Rd @@ -34,7 +34,9 @@ NorgastBeregnAndeler( kun_ferdigstilte = TRUE, tilgang_utvidet = "", ny_stomi = 99, - accordion = "" + accordion = "", + icd = "", + kun_oblig = FALSE ) } \arguments{ diff --git a/man/NorgastFigAndelStabelGrVar.Rd b/man/NorgastFigAndelStabelGrVar.Rd index 4c23698..08d1b80 100644 --- a/man/NorgastFigAndelStabelGrVar.Rd +++ b/man/NorgastFigAndelStabelGrVar.Rd @@ -18,8 +18,10 @@ NorgastFigAndelStabelGrVar( malign = 99, Ngrense = 30, lavDG = "", + ny_anastomose = 99, lavDGtekst = "Dekningsgrad < 60 \%", hastegrad = 99, + icd_kode = "", elektiv = 99, BMI = "", tilgang = "", @@ -37,7 +39,8 @@ NorgastFigAndelStabelGrVar( kun_ferdigstilte = TRUE, skriftStr = 1, tilgang_utvidet = "", - accordion = "" + accordion = "", + snufarger = TRUE ) } \arguments{ diff --git a/man/NorgastUtvalg.Rd b/man/NorgastUtvalg.Rd index f660397..0014535 100644 --- a/man/NorgastUtvalg.Rd +++ b/man/NorgastUtvalg.Rd @@ -27,13 +27,16 @@ NorgastUtvalg( op_gruppe = "", ncsp = "", icd = "", + icd_kode = "", hastegrad_hybrid = 99, + kun_oblig = FALSE, dagtid = 99, robotassiastanse = 99, kun_ferdigstilte = TRUE, tilgang_utvidet = "", ny_stomi = 99, - accordion = "" + accordion = "", + ny_anastomose = 99 ) } \arguments{ diff --git a/man/indikatorfig_UI.Rd b/man/indikatorfig_UI.Rd index 6450584..d18e80f 100644 --- a/man/indikatorfig_UI.Rd +++ b/man/indikatorfig_UI.Rd @@ -2,7 +2,7 @@ % Please edit documentation in R/modul_indikatorer.R \name{indikatorfig_UI} \alias{indikatorfig_UI} -\title{UI-modul for iindikatorfigurer i NORGAST sin shiny-app på Rapporteket} +\title{UI-modul for indikatorfigurer i NORGAST sin shiny-app på Rapporteket} \usage{ indikatorfig_UI(id) } diff --git a/man/norgast.Rd b/man/norgast.Rd index 1c6dbc5..ef2949b 100644 --- a/man/norgast.Rd +++ b/man/norgast.Rd @@ -2,6 +2,7 @@ % Please edit documentation in R/norgast.R \docType{package} \name{norgast} +\alias{norgast-package} \alias{norgast} \title{All R resources needed for NORGAST on Rapporteket} \description{ diff --git a/man/norgastAndelGruppert1Gr.Rd b/man/norgastAndelGruppert1Gr.Rd new file mode 100644 index 0000000..0d2eec7 --- /dev/null +++ b/man/norgastAndelGruppert1Gr.Rd @@ -0,0 +1,20 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/achocfigur2023rapport.R +\name{norgastAndelGruppert1Gr} +\alias{norgastAndelGruppert1Gr} +\title{Andeler gruppert på noe annet enn sykehusnavn} +\usage{ +norgastAndelGruppert1Gr( + valgtVar = "Anastomoselekkasje", + tittel = "Testtittel", + Grvar1 = "Robot", + xtxt = "Andel (\%)", + ytxt = "", + inkl_konf = TRUE, + outfile = "", + ... +) +} +\description{ +Andeler gruppert på noe annet enn sykehusnavn +} diff --git a/man/norgastAndelGruppert2Gr.Rd b/man/norgastAndelGruppert2Gr.Rd new file mode 100644 index 0000000..0c64d04 --- /dev/null +++ b/man/norgastAndelGruppert2Gr.Rd @@ -0,0 +1,21 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/achocfigur2023rapport.R +\name{norgastAndelGruppert2Gr} +\alias{norgastAndelGruppert2Gr} +\title{Adhocfunksjon for årsrapportfigur} +\usage{ +norgastAndelGruppert2Gr( + valgtVar = "Malign", + tittel = "Testtittel", + Grvar1 = "Op_gr", + Grvar2 = "Tilgang_utvidet", + xtxt = "Andel (\%)", + ytxt = "", + inkl_konf = FALSE, + outfile = "", + ... +) +} +\description{ +Adhocfunksjon for årsrapportfigur +} diff --git a/man/norgastAndelGruppert2Gr_ggplot.Rd b/man/norgastAndelGruppert2Gr_ggplot.Rd new file mode 100644 index 0000000..47d80e0 --- /dev/null +++ b/man/norgastAndelGruppert2Gr_ggplot.Rd @@ -0,0 +1,20 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/achocfigur2023rapport.R +\name{norgastAndelGruppert2Gr_ggplot} +\alias{norgastAndelGruppert2Gr_ggplot} +\title{Adhocfunksjon for årsrapportfigur} +\usage{ +norgastAndelGruppert2Gr_ggplot( + valgtVar = "Malign", + tittel = "Testtittel", + Grvar1 = "Op_gr", + Grvar2 = "Tilgang_utvidet", + xtxt = "Andel (\%)", + ytxt = "", + outfile = "", + ... +) +} +\description{ +Adhocfunksjon for årsrapportfigur +} diff --git a/man/norgastFordelingOpGruppert.Rd b/man/norgastFordelingOpGruppert.Rd new file mode 100644 index 0000000..e828935 --- /dev/null +++ b/man/norgastFordelingOpGruppert.Rd @@ -0,0 +1,21 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/achocfigur2023rapport.R +\name{norgastFordelingOpGruppert} +\alias{norgastFordelingOpGruppert} +\title{Fordeling av operasjoner over valgt variabel +og splittet på grupperingsvariabel} +\usage{ +norgastFordelingOpGruppert( + outfile = "", + Grvar1 = "AvstandAnalVerge_fakt", + Grvar2 = "Tilgang_utvidet", + tittel = c("Fordeling av operasjoner", "over avstand fra analkanten"), + ytxt = "Andel (\%)", + xtxt = "Avstand analkanten (cm)", + ... +) +} +\description{ +Fordeling av operasjoner over valgt variabel +og splittet på grupperingsvariabel +} diff --git a/man/norgastIndikator_gruppert.Rd b/man/norgastIndikator_gruppert.Rd new file mode 100644 index 0000000..5582ddd --- /dev/null +++ b/man/norgastIndikator_gruppert.Rd @@ -0,0 +1,170 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/norgastIndikator_rapporteket.R +\name{norgastIndikator_gruppert} +\alias{norgastIndikator_gruppert} +\title{Plot andeler av valgt variabel per sykehus og per gruppe} +\usage{ +norgastIndikator_gruppert( + RegData, + valgtVar, + tittel = "", + width = 800, + height = 700, + decreasing = F, + terskel = 10, + minstekrav = NA, + ny_stomi = 99, + maal = NA, + skriftStr = 1.3, + pktStr = 1.4, + legPlass = "top", + minstekravTxt = "Akseptabelt", + maalTxt = "Mål", + graaUt = NA, + inkl_konf = F, + datoFra = "2014-01-01", + datoTil = "2050-12-31", + minald = 0, + maxald = 130, + erMann = 99, + outfile = "", + preprosess = F, + malign = 99, + elektiv = 99, + hastegrad = 99, + BMI = "", + tilgang = "", + minPRS = 0, + maxPRS = 2.2, + ASA = "", + whoEcog = "", + forbehandling = "", + dagtid = 99, + hentData = 0, + op_gruppe = "", + ncsp = "", + maalretn = "hoy", + lavDG = "", + lavDGtekst = "Dekningsgrad < 60 \%", + hastegrad_hybrid = 99, + inset = 0, + robotassiastanse = 99, + kun_ferdigstilte = TRUE, + prikktall = TRUE, + inkl_N = FALSE, + Grvar1 = "Sykehusnavn", + Grvar2 = "Malign", + ltop = 2, + lbunn = 1, + rotermaaltxt = 45, + ny_anastomose = 99, + pst_kolonne = TRUE, + kun_oblig = FALSE +) +} +\arguments{ +\item{RegData}{En dataramme med alle nødvendige variabler fra registeret} + +\item{valgtVar}{Hvilken variabel skal plottes} + +\item{graaUt}{En vektor med navn på enheter som skal ha grå søyler} + +\item{datoFra}{Tidligste dato i utvalget (vises alltid i figuren).} + +\item{datoTil}{Seneste dato i utvalget (vises alltid i figuren).} + +\item{minald}{Alder, fra og med (Default: 0)} + +\item{maxald}{Alder, til og med (Default: 130)} + +\item{erMann}{kjønn +1: menn +0: kvinner +99: begge (alt annet enn 0 og 1) (Default)} + +\item{outfile}{Navn på fil figuren skrives til. Default: '' (Figur skrives +til systemets default output device (som regel skjerm))} + +\item{preprosess}{Preprosesser data +FALSE: Nei (Default) +TRUE: Ja} + +\item{malign}{Er diagnosen malign eller benign +0: Benign +1: Malign +99: Alle} + +\item{elektiv}{Elektiv eller øyeblikkelig hjelp +0: Øyeblikkelig hjelp +1: Elektiv +99: Begge deler (Default)} + +\item{BMI}{BMI-klasse, flervalg hvor (Default alle) +1: Alvorlig undervekt +2: Undervekt +3: Mild undervekt +4: Normal +5: Overvekt +6: Moderat fedme, klasse I +7: Fedme, klasse II +8: Fedme, klasse III} + +\item{tilgang}{Tilgang i abdomen +1: Åpen eller konvertert +2: Lapaoskopisk +99: Alle (Default)} + +\item{minPRS}{Minimum PRS (Default 0?)} + +\item{maxPRS}{Maksimum PRS (Default 2?)} + +\item{ASA}{ASA-grad, flervalg hvor (Default alle) +1: Ingen organisk, fysiologisk, biokjemisk eller psykisk forstyrrelse. +Den aktuelle lidelsen er lokalisert og gir ikke generelle systemforstyrrelser. +2: Moderat sykdom eller forstyrrelser som ikke forårsaker funksjonelle begrensninger. +3: Alvorlig sykdom eller forstyrrelse som gir definerte funksjonelle begrensninger. +4: Livstruende organisk sykdom som ikke behøver å være knyttet til den aktuelle +kirurgiske lidelsen eller som ikke alltid bedres ved det planlagte kirurgiske inngrepet. +5: Døende pasient som ikke forventes å overleve 24 timer uten kirurgi.} + +\item{whoEcog}{WHO WCOG score, flervalg hvor (Default alle) +0: Fullt aktiv +1: Lett husarbeid og sittende arbeid +2: Oppe > 50% av dagen, selvstelt +3: Oppe < 50% av dagen, delvis selvstelt +4: Kun i stol/seng, hjelp til alt stell +9: Ukjent} + +\item{forbehandling}{Onkologisk forbehandling +1: Cytostatika +2: Stråleterapi +3: Komb. kjemo/radioterapi +4: Ingen +99: Alle} + +\item{hentData}{Gjør spørring mot database +FALSE: Nei, RegData gis som input til funksjonen (Default) +TRUE: Ja} + +\item{op_gruppe}{Reseksjonsgruppe +1: Kolonreseksjoner +2: Rektumreseksjoner +3: Øsofagusreseksjoner +4: Ventrikkelreseksjoner +5: Leverreseksjoner +6: Whipple's operasjon +7: Andre pankreas +8: Cholecystektomi +9: Appendektomi +10: Tynntarmsreseksjon +11: Gastric bypass +12: Gastric sleeve} + +\item{ncsp}{NCSP-koder(r) som skal være inkludert i utvalget} +} +\value{ +Et plot av andeler over tre år +} +\description{ +Plotter andeler av valgt variabel per sykehus og per gruppe +} diff --git a/man/norgastIndikator_nasjonal.Rd b/man/norgastIndikator_nasjonal.Rd new file mode 100644 index 0000000..824d35e --- /dev/null +++ b/man/norgastIndikator_nasjonal.Rd @@ -0,0 +1,162 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/norgastIndikator_rapporteket.R +\name{norgastIndikator_nasjonal} +\alias{norgastIndikator_nasjonal} +\title{Plot andeler i angitt format} +\usage{ +norgastIndikator_nasjonal( + RegData, + valgtVar, + tittel = "", + width = 800, + height = 700, + decreasing = F, + terskel = 10, + minstekrav = NA, + maal = NA, + skriftStr = 1.3, + pktStr = 1.4, + legPlass = "top", + minstekravTxt = "Akseptabelt", + maalTxt = "Mål", + graaUt = NA, + inkl_konf = F, + datoFra = "2014-01-01", + datoTil = "2050-12-31", + minald = 0, + maxald = 130, + erMann = 99, + outfile = "", + preprosess = F, + malign = 99, + elektiv = 99, + hastegrad = 99, + BMI = "", + tilgang = "", + minPRS = 0, + maxPRS = 2.2, + ASA = "", + whoEcog = "", + forbehandling = "", + dagtid = 99, + hentData = 0, + op_gruppe = "", + ncsp = "", + maalretn = "hoy", + lavDG = "", + lavDGtekst = "Dekningsgrad < 60 \%", + hastegrad_hybrid = 99, + icd_kode = "", + robotassiastanse = 99, + kun_ferdigstilte = TRUE, + prikktall = TRUE, + pst_kolonne = FALSE, + ny_anastomose = 99, + Grvar = "Robotassistanse" +) +} +\arguments{ +\item{RegData}{En dataramme med alle nødvendige variabler fra registeret} + +\item{valgtVar}{Hvilken variabel skal plottes} + +\item{datoFra}{Tidligste dato i utvalget (vises alltid i figuren).} + +\item{datoTil}{Seneste dato i utvalget (vises alltid i figuren).} + +\item{minald}{Alder, fra og med (Default: 0)} + +\item{maxald}{Alder, til og med (Default: 130)} + +\item{erMann}{kjønn +1: menn +0: kvinner +99: begge (alt annet enn 0 og 1) (Default)} + +\item{outfile}{Navn på fil figuren skrives til. Default: '' (Figur skrives +til systemets default output device (som regel skjerm))} + +\item{preprosess}{Preprosesser data +FALSE: Nei (Default) +TRUE: Ja} + +\item{malign}{Er diagnosen malign eller benign +0: Benign +1: Malign +99: Alle} + +\item{elektiv}{Elektiv eller øyeblikkelig hjelp +0: Øyeblikkelig hjelp +1: Elektiv +99: Begge deler (Default)} + +\item{BMI}{BMI-klasse, flervalg hvor (Default alle) +1: Alvorlig undervekt +2: Undervekt +3: Mild undervekt +4: Normal +5: Overvekt +6: Moderat fedme, klasse I +7: Fedme, klasse II +8: Fedme, klasse III} + +\item{tilgang}{Tilgang i abdomen +1: Åpen eller konvertert +2: Lapaoskopisk +99: Alle (Default)} + +\item{minPRS}{Minimum PRS (Default 0?)} + +\item{maxPRS}{Maksimum PRS (Default 2?)} + +\item{ASA}{ASA-grad, flervalg hvor (Default alle) +1: Ingen organisk, fysiologisk, biokjemisk eller psykisk forstyrrelse. +Den aktuelle lidelsen er lokalisert og gir ikke generelle systemforstyrrelser. +2: Moderat sykdom eller forstyrrelser som ikke forårsaker funksjonelle begrensninger. +3: Alvorlig sykdom eller forstyrrelse som gir definerte funksjonelle begrensninger. +4: Livstruende organisk sykdom som ikke behøver å være knyttet til den aktuelle +kirurgiske lidelsen eller som ikke alltid bedres ved det planlagte kirurgiske inngrepet. +5: Døende pasient som ikke forventes å overleve 24 timer uten kirurgi.} + +\item{whoEcog}{WHO WCOG score, flervalg hvor (Default alle) +0: Fullt aktiv +1: Lett husarbeid og sittende arbeid +2: Oppe > 50% av dagen, selvstelt +3: Oppe < 50% av dagen, delvis selvstelt +4: Kun i stol/seng, hjelp til alt stell +9: Ukjent} + +\item{forbehandling}{Onkologisk forbehandling +1: Cytostatika +2: Stråleterapi +3: Komb. kjemo/radioterapi +4: Ingen +99: Alle} + +\item{hentData}{Gjør spørring mot database +FALSE: Nei, RegData gis som input til funksjonen (Default) +TRUE: Ja} + +\item{op_gruppe}{Reseksjonsgruppe +1: Kolonreseksjoner +2: Rektumreseksjoner +3: Øsofagusreseksjoner +4: Ventrikkelreseksjoner +5: Leverreseksjoner +6: Whipple's operasjon +7: Andre pankreas +8: Cholecystektomi +9: Appendektomi +10: Tynntarmsreseksjon +11: Gastric bypass +12: Gastric sleeve} + +\item{ncsp}{NCSP-koder(r) som skal være inkludert i utvalget} +} +\value{ +Et plot av andeler over tre år +} +\description{ +Denne funksjonen beregner og plotter andeler av gitt variabel over +valgt grupperingsvariabel +} diff --git a/man/norgastIndikator_rapporteket.Rd b/man/norgastIndikator_rapporteket.Rd index 82352f3..debacec 100644 --- a/man/norgastIndikator_rapporteket.Rd +++ b/man/norgastIndikator_rapporteket.Rd @@ -47,9 +47,14 @@ norgastIndikator_rapporteket( lavDG = "", lavDGtekst = "Dekningsgrad < 60 \%", hastegrad_hybrid = 99, + icd_kode = "", robotassiastanse = 99, kun_ferdigstilte = TRUE, - prikktall = TRUE + prikktall = TRUE, + pst_kolonne = FALSE, + ny_anastomose = 99, + desimaler_pst = 0, + kun_oblig = FALSE ) } \arguments{ diff --git a/man/norgastPlotIndikator.Rd b/man/norgastPlotIndikator.Rd index 73eaf56..68aeafe 100644 --- a/man/norgastPlotIndikator.Rd +++ b/man/norgastPlotIndikator.Rd @@ -26,7 +26,8 @@ norgastPlotIndikator( minstekravTxt = "Akseptabelt", maalTxt = "Mål", maalretn = "hoy", - prikktall = TRUE + prikktall = TRUE, + pst_kolonne = T ) } \arguments{