diff --git a/R/BrValgNorgastShiny.R b/R/BrValgNorgastShiny.R index dc41e31..0ce2868 100644 --- a/R/BrValgNorgastShiny.R +++ b/R/BrValgNorgastShiny.R @@ -9,11 +9,11 @@ BrValgNorgastShiny <- function(RegData) { varvalg <- c('Alder', 'BMI_kodet', 'Vektendring', 'Op_gr', 'AccordionGrad', 'Forbehandling', 'WHOECOG', 'ASA', 'Hastegrad_tid', 'Hastegrad', 'erMann', 'MedDiabetes', 'PRSScore', 'Robotassistanse', 'Tilgang', 'NyAnastomose', 'ModGlasgowScore', 'ReLapNarkose', 'Anastomoselekkasje', - 'mortalitet90', 'Saarruptur') + 'mortalitet90', 'Saarruptur', 'ViktigsteFunn') names(varvalg) <- c('Alder', 'BMI', 'Vektendring', 'Operasjonsgrupper', 'Komplikasjoner', 'Forbehandling', 'WHO-ECOG', 'ASA-grad', 'Tidspunkt for operasjonsstart', 'Hastegrad', 'Kjønn', 'Diabetes', 'mE-PASS', 'Robotassistanse', 'Tilgang i abdomen', 'Ny anastomose', 'Glasgow score', 'Relaparotomi', 'Anastomoselekkasje', - '90-dagers mortalitet', 'Sårruptur') + '90-dagers mortalitet', 'Sårruptur', 'Viktigste funn') aux<-c('Anastomoselekkasje', 'Anastomoselekkasje', '90-dagers mortalitet', 'mortalitet90', 'Relaparotomi', 'ReLapNarkose', 'Robotassistanse', 'Robotassistanse', 'Sårruptur', diff --git a/R/NorgastFigAndelStabelGrVar.R b/R/NorgastFigAndelStabelGrVar.R index 8516eda..6f95511 100644 --- a/R/NorgastFigAndelStabelGrVar.R +++ b/R/NorgastFigAndelStabelGrVar.R @@ -11,14 +11,16 @@ #' @export #' -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, - 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, - tilgang_utvidet='') +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, + 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, + tilgang_utvidet='', accordion='', snufarger = TRUE) { @@ -53,7 +55,7 @@ NorgastFigAndelStabelGrVar <- function(RegData=0, valgtVar='ModGlasgowScore', da 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) + tilgang_utvidet=tilgang_utvidet, accordion=accordion) RegData <- NorgastUtvalg$RegData utvalgTxt <- NorgastUtvalg$utvalgTxt @@ -64,6 +66,7 @@ NorgastFigAndelStabelGrVar <- function(RegData=0, valgtVar='ModGlasgowScore', da if ( max(Ngr) < Ngrense) {#Dvs. hvis ALLE er mindre enn grensa. FigTypUt <- rapFigurer::figtype(outfile, fargepalett = 'BlaaOffAlle') farger <- FigTypUt$farger + plot.new() if (dim(RegData)[1]>0) { tekst <- paste('Færre enn ', Ngrense, ' registreringer ved hvert av sykehusene', sep='') @@ -153,6 +156,7 @@ NorgastFigAndelStabelGrVar <- function(RegData=0, valgtVar='ModGlasgowScore', da FigTypUt <- rapFigurer::figtype(outfile, height=3*800, fargepalett=NorgastUtvalg$fargepalett) #res=96, farger <- FigTypUt$farger + if (snufarger) {farger <- rev(farger)} if (length(legendTxt)==5) {farger <- c('#4D4D4D' ,farger)} landet <- AndelerGr @@ -190,7 +194,7 @@ NorgastFigAndelStabelGrVar <- function(RegData=0, valgtVar='ModGlasgowScore', da # mtext('(Tall på søylene angir antall registreringer)', las=1, side=1, line=3) #Tekst som angir hvilket utvalg som er gjort - mtext(utvalgTxt, side=3, las=1, cex=0.7*skriftStr, adj=0, col=farger[1], line=c(3+0.8*((NutvTxt-1):0))) + mtext(utvalgTxt, side=3, las=1, cex=0.7*skriftStr, adj=0, col=farger[length(farger)], line=c(3+0.8*((NutvTxt-1):0))) par('fig'=c(0, 1, 0, 1)) diff --git a/R/NorgastFigAndelTid.R b/R/NorgastFigAndelTid.R index bba15c1..99707dc 100644 --- a/R/NorgastFigAndelTid.R +++ b/R/NorgastFigAndelTid.R @@ -25,7 +25,7 @@ NorgastFigAndelTid <- function(RegData=0, valgtVar='ReLapNarkose', datoFra='2014 maxPRS=2.2, ASA='', whoEcog= '', forbehandling='', hentData=F, tidsenhet='Aar', op_gruppe='', ncsp='', hastegrad = 99, hastegrad_hybrid = 99, robotassiastanse=99, kun_ferdigstilte=TRUE, - tilgang_utvidet='') + tilgang_utvidet='', accordion='') { ## Hvis spørring skjer fra R på server. ###################### @@ -50,7 +50,7 @@ NorgastFigAndelTid <- function(RegData=0, valgtVar='ReLapNarkose', datoFra='2014 ASA=ASA, whoEcog=whoEcog, forbehandling=forbehandling, malign=malign, op_gruppe=op_gruppe, ncsp=ncsp, hastegrad = hastegrad, hastegrad_hybrid = hastegrad_hybrid, robotassiastanse=robotassiastanse, kun_ferdigstilte=kun_ferdigstilte, - tilgang_utvidet=tilgang_utvidet) + tilgang_utvidet=tilgang_utvidet, accordion=accordion) RegData <- NorgastUtvalg$RegData utvalgTxt <- NorgastUtvalg$utvalgTxt diff --git a/R/NorgastFigAndelTid_kvartalsrapp.R b/R/NorgastFigAndelTid_kvartalsrapp.R index 7a19ae2..9719eed 100644 --- a/R/NorgastFigAndelTid_kvartalsrapp.R +++ b/R/NorgastFigAndelTid_kvartalsrapp.R @@ -24,7 +24,7 @@ NorgastFigAndelTid_kvartalsrapp <- function(RegData=0, valgtVar='ReLapNarkose', elektiv=99, BMI='', tilgang='', valgtShus=c(''), minPRS=0, maxPRS=2.2, ASA='', whoEcog= '', forbehandling='', hentData=F, tidsenhet='Aar', op_gruppe='', ncsp='', robotassiastanse=99, - kun_ferdigstilte=TRUE) + kun_ferdigstilte=TRUE, accordion='') { ## Hvis spørring skjer fra R på server. ###################### @@ -47,7 +47,8 @@ NorgastFigAndelTid_kvartalsrapp <- function(RegData=0, valgtVar='ReLapNarkose', maxald=maxald, erMann=erMann, elektiv=elektiv, BMI=BMI, valgtShus=valgtShus, tilgang=tilgang, minPRS=minPRS, maxPRS=maxPRS, ASA=ASA, whoEcog=whoEcog, forbehandling=forbehandling, malign=malign, - op_gruppe=op_gruppe, ncsp=ncsp, robotassiastanse=robotassiastanse, kun_ferdigstilte=kun_ferdigstilte) + op_gruppe=op_gruppe, ncsp=ncsp, robotassiastanse=robotassiastanse, + kun_ferdigstilte=kun_ferdigstilte, accordion=accordion) RegData <- NorgastUtvalg$RegData utvalgTxt <- NorgastUtvalg$utvalgTxt diff --git a/R/NorgastFigAndelerGrVar.R b/R/NorgastFigAndelerGrVar.R index 053448d..9c9b235 100644 --- a/R/NorgastFigAndelerGrVar.R +++ b/R/NorgastFigAndelerGrVar.R @@ -15,7 +15,8 @@ NorgastFigAndelerGrVar <- function(RegData=0, valgtVar='', datoFra='2014-01-01', preprosess=F, inkl_konf=F, malign=99, Ngrense=10, modGlasgow='', elektiv=99, BMI='', tilgang='', valgtShus=c(''), minPRS=0, hastegrad = 99, maxPRS=2.2, ASA='', whoEcog= '', forbehandling='', hentData=0, op_gruppe='', - ncsp='', robotassiastanse=99, kun_ferdigstilte=TRUE, tilgang_utvidet='') + ncsp='', robotassiastanse=99, kun_ferdigstilte=TRUE, tilgang_utvidet='', + accordion='') { ## Hvis spørring skjer fra R på server. ###################### @@ -43,7 +44,7 @@ NorgastFigAndelerGrVar <- function(RegData=0, valgtVar='', datoFra='2014-01-01', 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) + tilgang_utvidet=tilgang_utvidet, accordion=accordion) RegData <- NorgastUtvalg$RegData utvalgTxt <- NorgastUtvalg$utvalgTxt diff --git a/R/NorgastFigGjsnGrVar.R b/R/NorgastFigGjsnGrVar.R index 9268173..fca96c0 100644 --- a/R/NorgastFigGjsnGrVar.R +++ b/R/NorgastFigGjsnGrVar.R @@ -17,7 +17,7 @@ NorgastFigGjsnGrVar <- function(RegData=0, valgtVar='Alder', datoFra='2014-01-01 elektiv=99, BMI='', tilgang='', valgtShus=c(''), minPRS=0, maxPRS=2.2, ASA='', whoEcog= '', forbehandling='', hentData=0, op_gruppe='', ncsp='', modGlasgow = '', robotassiastanse=99, - kun_ferdigstilte=TRUE, tilgang_utvidet='') + kun_ferdigstilte=TRUE, tilgang_utvidet='', accordion='') { @@ -47,7 +47,7 @@ NorgastFigGjsnGrVar <- function(RegData=0, valgtVar='Alder', datoFra='2014-01-01 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) + tilgang_utvidet=tilgang_utvidet, accordion=accordion) RegData <- NorgastUtvalg$RegData utvalgTxt <- NorgastUtvalg$utvalgTxt diff --git a/R/modul_admtab.R b/R/modul_admtab.R index ffd611f..bf6578f 100644 --- a/R/modul_admtab.R +++ b/R/modul_admtab.R @@ -34,7 +34,7 @@ admtab_UI <- function(id){ inputId = ns("regstatus_tid"), label = "Skjemastatus", choices = c('Ferdige forløp'=1, 'Oppfølging i kladd'=2, - 'Ferdig basisreg. oppfølging mangler'=3, + # 'Ferdig basisreg. oppfølging mangler'=3, 'Basisreg. i kladd'=4))), checkboxInput(inputId = ns("kun_oblig"), label = "Inkluder kun obligatoriske reseksjoner", @@ -53,9 +53,9 @@ admtab_UI <- function(id){ basisregistrering og oppfølging.'), h4(tags$b('Oppfølging i kladd '), 'viser antall forløp med ferdigstilt basisregistrering og oppfølging i kladd.'), - h4(tags$b('Ferdig basisreg. oppfølging mangler '), 'viser antall forløp - med ferdigstilt basisregistrering og ikke påbegynt eller slettet - oppfølging'), + # h4(tags$b('Ferdig basisreg. oppfølging mangler '), 'viser antall forløp + # med ferdigstilt basisregistrering og ikke påbegynt eller slettet + # oppfølging'), h4(tags$b('Basisreg. i kladd '), 'viser antallet basisregistreringer i kladd.'), br(), @@ -174,8 +174,12 @@ admtab <- function(input, output, session, reshID, RegData, userRole, antskjema <- function() { # req(input$admtabeller == "id_ant_skjema") - tmp <- merge(skjemaoversikt[skjemaoversikt$Skjemanavn=='Registrering', c("ForlopsID", "SkjemaStatus", "HovedDato", "OpprettetDato", "Sykehusnavn", "AvdRESH", "Op_gr", "Hovedoperasjon")], - skjemaoversikt[skjemaoversikt$Skjemanavn=='Reinnleggelse/oppføl', c("ForlopsID", "SkjemaStatus")], + tmp <- merge(skjemaoversikt[skjemaoversikt$Skjemanavn=='Registrering', + c("ForlopsID", "SkjemaStatus", "HovedDato", + "OpprettetDato", "Sykehusnavn", "AvdRESH", + "Op_gr", "Hovedoperasjon")], + skjemaoversikt[skjemaoversikt$Skjemanavn=='Reinnleggelse/oppføl', + c("ForlopsID", "SkjemaStatus")], by = 'ForlopsID', all.x = T, suffixes = c('', '_oppf')) if (input$kun_oblig) { @@ -197,20 +201,20 @@ admtab <- function(input, output, session, reshID, RegData, userRole, dplyr::group_by(Sykehusnavn) %>% dplyr::summarise( 'Ferdige forløp' = sum(SkjemaStatus==1 & - SkjemaStatus_oppf==1, na.rm = T), + (SkjemaStatus_oppf==1 | is.na(SkjemaStatus_oppf)), na.rm = T), 'Oppfølging i kladd' = sum(SkjemaStatus==1 & SkjemaStatus_oppf==0, na.rm = T), - 'Ferdig basisreg. oppfølging mangler' = sum(SkjemaStatus==1 & - is.na(SkjemaStatus_oppf), na.rm = T), + # 'Ferdig basisreg. oppfølging mangler' = sum(SkjemaStatus==1 & + # is.na(SkjemaStatus_oppf), na.rm = T), 'Basisreg i kladd' = sum(SkjemaStatus==0, na.rm = T), 'N' = dplyr::n()) aux2 <- tmp %>% dplyr::filter(HovedDato >= input$datovalg_adm[1] & HovedDato <= input$datovalg_adm[2]) %>% dplyr::summarise( - 'Ferdige forløp' = sum(SkjemaStatus==1 & SkjemaStatus_oppf==1, na.rm = T), + 'Ferdige forløp' = sum(SkjemaStatus==1 & (SkjemaStatus_oppf==1 | is.na(SkjemaStatus_oppf)), na.rm = T), 'Oppfølging i kladd' = sum(SkjemaStatus==1 & SkjemaStatus_oppf==0, na.rm = T), - 'Ferdig basisreg. oppfølging mangler' = sum(SkjemaStatus==1 & is.na(SkjemaStatus_oppf), na.rm = T), + # 'Ferdig basisreg. oppfølging mangler' = sum(SkjemaStatus==1 & is.na(SkjemaStatus_oppf), na.rm = T), 'Basisreg i kladd' = sum(SkjemaStatus==0, na.rm = T), 'N' = dplyr::n()) @@ -275,11 +279,24 @@ admtab <- function(input, output, session, reshID, RegData, userRole, aux <- tmp aux$mnd <- factor(format(aux$HovedDato, format='%b-%y'), levels = format(seq(fraDato, tilDato, by="month"), "%b-%y")) - ant_skjema <- switch (req(input$regstatus_tid), - '1' = as.data.frame.matrix(addmargins(table(aux[which(aux$SkjemaStatus==1 & aux$SkjemaStatus_oppf==1) , c('Sykehusnavn', 'mnd')]))), - '2' = as.data.frame.matrix(addmargins(table(aux[which(aux$SkjemaStatus==1 & aux$SkjemaStatus_oppf==0) , c('Sykehusnavn', 'mnd')]))), - '3' = as.data.frame.matrix(addmargins(table(aux[which(aux$SkjemaStatus==1 & is.na(aux$SkjemaStatus_oppf)) , c('Sykehusnavn', 'mnd')]))), - '4' = as.data.frame.matrix(addmargins(table(aux[which(aux$SkjemaStatus==0) , c('Sykehusnavn', 'mnd')]))) + ant_skjema <- switch ( + req(input$regstatus_tid), + '1' = as.data.frame.matrix( + addmargins( + table(aux[which(aux$SkjemaStatus==1 & (aux$SkjemaStatus_oppf==1 | + is.na(aux$SkjemaStatus_oppf))) , + c('Sykehusnavn', 'mnd')]))), + '2' = as.data.frame.matrix( + addmargins( + table(aux[which(aux$SkjemaStatus==1 & aux$SkjemaStatus_oppf==0) , + c('Sykehusnavn', 'mnd')]))), + '3' = as.data.frame.matrix( + addmargins( + table(aux[which(aux$SkjemaStatus==1 & is.na(aux$SkjemaStatus_oppf)) , + c('Sykehusnavn', 'mnd')]))), + '4' = as.data.frame.matrix( + addmargins( + table(aux[which(aux$SkjemaStatus==0) , c('Sykehusnavn', 'mnd')]))) ) %>% dplyr::as_tibble(rownames = 'Sykehusnavn') } @@ -308,11 +325,24 @@ admtab <- function(input, output, session, reshID, RegData, userRole, aux <- tmp aux$mnd <- factor(format(aux$HovedDato, format='%Y'), levels = format(seq(as.Date(fraDato),as.Date(input$datovalg_adm_tid_aar), by="year"), "%Y")) - ant_skjema <- switch (req(input$regstatus_tid), - '1' = as.data.frame.matrix(addmargins(table(aux[which(aux$SkjemaStatus==1 & aux$SkjemaStatus_oppf==1) , c('Sykehusnavn', 'mnd')]))), - '2' = as.data.frame.matrix(addmargins(table(aux[which(aux$SkjemaStatus==1 & aux$SkjemaStatus_oppf==0) , c('Sykehusnavn', 'mnd')]))), - '3' = as.data.frame.matrix(addmargins(table(aux[which(aux$SkjemaStatus==1 & is.na(aux$SkjemaStatus_oppf)) , c('Sykehusnavn', 'mnd')]))), - '4' = as.data.frame.matrix(addmargins(table(aux[which(aux$SkjemaStatus==0) , c('Sykehusnavn', 'mnd')]))) + ant_skjema <- switch ( + req(input$regstatus_tid), + '1' = as.data.frame.matrix( + addmargins( + table(aux[which(aux$SkjemaStatus==1 & (aux$SkjemaStatus_oppf==1 | + is.na(aux$SkjemaStatus_oppf))) , + c('Sykehusnavn', 'mnd')]))), + '2' = as.data.frame.matrix( + addmargins( + table(aux[which(aux$SkjemaStatus==1 & aux$SkjemaStatus_oppf==0) , + c('Sykehusnavn', 'mnd')]))), + '3' = as.data.frame.matrix( + addmargins( + table(aux[which(aux$SkjemaStatus==1 & is.na(aux$SkjemaStatus_oppf)) , + c('Sykehusnavn', 'mnd')]))), + '4' = as.data.frame.matrix( + addmargins( + table(aux[which(aux$SkjemaStatus==0) , c('Sykehusnavn', 'mnd')]))) ) %>% dplyr::as_tibble(rownames = 'Sykehusnavn') } diff --git a/R/modul_fordelingsfig.R b/R/modul_fordelingsfig.R index 75c333c..6b86052 100644 --- a/R/modul_fordelingsfig.R +++ b/R/modul_fordelingsfig.R @@ -105,10 +105,10 @@ fordelingsfig <- function(input, output, session, reshID, RegData, userRole, hvd shinyjs::reset("id_fordeling_panel") }) - observe( - if (userRole != 'SC') { - shinyjs::hide(id = 'valgtShus') - }) + # observe( + # if (userRole != 'SC') { + # shinyjs::hide(id = 'valgtShus') + # }) output$ncsp <- renderUI({ ns <- session$ns @@ -134,8 +134,10 @@ fordelingsfig <- function(input, output, session, reshID, RegData, userRole, hvd output$valgtShus_ui <- renderUI({ ns <- session$ns + if (userRole == 'SC') { selectInput(inputId = ns("valgtShus"), label = "Velg sykehus", choices = BrValg$sykehus, multiple = TRUE) + } }) output$tilgang_utvidet_ui <- renderUI({ diff --git a/R/modul_indikatorer.R b/R/modul_indikatorer.R index 86d4dd2..1e066c6 100644 --- a/R/modul_indikatorer.R +++ b/R/modul_indikatorer.R @@ -1,4 +1,4 @@ -#' UI-modul for iindikatorfigurer i NORGAST sin shiny-app på Rapporteket +#' UI-modul for indikatorfigurer i NORGAST sin shiny-app på Rapporteket #' #' Kun til bruk i Shiny #' @@ -44,6 +44,7 @@ indikatorfig_UI <- function(id){ sliderInput(ns("skriftStr"), "Skriftstørrelse sykehusnavn", min = 0.5, max = 1.8, value = 1.2, step = 0.05, ticks = F), + checkboxInput(ns("pst_kolonne"), "Prosenttall i kolonner", value = FALSE), selectInput(inputId = ns("bildeformat"), label = "Velg bildeformat", choices = c('pdf', 'png', 'jpg', 'bmp', 'tif', 'svg')), tags$hr(), @@ -121,7 +122,9 @@ indikatorfig <- function(input, output, session, reshID, RegData, tittel = indikatordata()$tittel, skriftStr = input$skriftStr, lavDG = input$valgtShus, - maalretn = indikatordata()$maalretn) + maalretn = indikatordata()$maalretn, + prikktall = !input$pst_kolonne, + pst_kolonne = input$pst_kolonne) }, width = 600, height = 700) @@ -201,6 +204,9 @@ indikatorfig <- function(input, output, session, reshID, RegData, tittel = indikatordata()$tittel, skriftStr = input$skriftStr, lavDG = input$valgtShus, + maalretn = indikatordata()$maalretn, + prikktall = !input$pst_kolonne, + pst_kolonne = input$pst_kolonne, outfile = file) } ) diff --git a/R/modul_overlevelse.R b/R/modul_overlevelse.R index 716505e..edbaa4b 100644 --- a/R/modul_overlevelse.R +++ b/R/modul_overlevelse.R @@ -15,10 +15,11 @@ overlevelse_UI <- function(id){ id = ns("id_overlevelse_panel"), h4(tags$b('Utvalg 1')), br(), - checkboxInput(inputId = ns("kun_ferdigstilte"), - label = "Inkludér kun komplette forløp - (også oppfølging ferdigstilt). Gjelder begge utvalg", - value = TRUE), + # checkboxInput(inputId = ns("kun_ferdigstilte"), + # label = "Inkludér kun komplette forløp + # (også oppfølging ferdigstilt). Gjelder begge utvalg", + # value = TRUE), + # checkboxInput(ns("inkl_konf"), label = 'Inkluder konfidensintervall'), dateRangeInput( inputId=ns("datovalg"), label = "Operasjonsdato fra og til", @@ -61,61 +62,109 @@ overlevelse_UI <- function(id){ selectInput(inputId = ns("malign"), label = "Diagnose", choices = c('Ikke valgt'=99, 'Malign'=1, 'Benign'=0)), uiOutput(outputId = ns('icd')), + selectInput(inputId = ns("accordion"), label = "Accordiongrad", + multiple = TRUE, + choices = c('<3'=1, '3'=3, '4'=4, '5'=5, '6'=6)), tags$hr(), actionButton(ns("reset_input"), "Nullstill valg") ), column( 8, - h2("Kaplan-Meier overlevelseskurver", align='center'), - h4("Her kan du plotte overlevelseskurver for to distinkte utvalg. Det er + fluidRow( + column( + 4, + h4("Trykk her for å generere figur etter at du har gjort dine ønskede utvalg: "), + actionButton(ns("goButton"), "Beregn!")), + column( + 4, + checkboxInput(inputId = ns("kun_ferdigstilte"), + label = "Inkludér kun komplette forløp + (også oppfølging ferdigstilt). Gjelder begge utvalg", + value = TRUE)), + column( + 4, + checkboxInput(ns("inkl_konf"), label = 'Inkluder konfidensintervall')) + ), + br(), + tabsetPanel( + tabPanel("Versjon 1", + h2("Kaplan-Meier overlevelseskurver", align='center'), + h4("Her kan du plotte overlevelseskurver for to distinkte utvalg. Det er ikke helt rett frem å bruke verktøyet, og brukeren bør være oppmerksom på måten utvalgene gjøres: "), - div(class = "container", style ="margin-right:(@gutter / 10)" , - tags$ul( - tags$li(h4("Hvis en pasient har flere forløp i ett enkelt utvalg + div(class = "container", style ="margin-right:(@gutter / 10)" , + tags$ul( + tags$li(h4("Hvis en pasient har flere forløp i ett enkelt utvalg ('Utvalg 1' eller 'Utvalg 2') benyttes forløpet med den tidligst forekommende operasjonen")), - tags$li(h4("Dersom en pasient har forløp i både 'Utvalg 1' og + tags$li(h4("Dersom en pasient har forløp i både 'Utvalg 1' og 'Utvalg 2' så velges det eldste forløpet.")), - tags$li(h4("Hvis det eldste forløpet finnes i både 'Utvalg 1' og + tags$li(h4("Hvis det eldste forløpet finnes i både 'Utvalg 1' og 'Utvalg 2' eller hvis 'Utvalg 1' og 'Utvalg 2 'sitt eldste forløp faller på samme dato, så knyttes pasienten til 'Utvalg 1'. Dette innebærer at man potensielt kan få litt forskjellige resultater hvis du f.eks. ser på 'Åpen' i 'Utvalg 1' mot 'Laparoskopisk' i 'Utvalg 2' kontra 'Laparoskopisk' i 'Utvalg 1' mot 'Åpen' i 'Utvalg 2'.")), - tags$li(h4("Hvis man vil unngå noen av problemene tilknyttet + tags$li(h4("Hvis man vil unngå noen av problemene tilknyttet pasienter som finnes i begge utvalg så kan det krysses av for 'Fjern pasienter med forløp som tilfredsstiller begge utvalg'")), - tags$li(h4("Å ikke gjøre utvalg impliserer at alle pasienter velges. + tags$li(h4("Å ikke gjøre utvalg impliserer at alle pasienter velges. Dette innebærer at hvis man kun gjør utvalg på ventresiden ('Utvalg 1'), så vil 'Utvalg 2' bestå av alle pasienter som ikke er i 'Utvalg 1'. Gjør du imidlertid kun utvalg på høyresiden ('Utvalg 2'), så vil 'Utvalg 2' forbli tom siden alle valgte forløp også finnes i 'Utvalg 1'.")) - ) - ), - br(), - actionButton(ns("goButton"), "Beregn!"), - checkboxInput(ns("inkl_konf"), label = 'Inkluder konfidensintervall'), - br(), - fluidRow( - column(7, - plotOutput(ns("Figur_surv"))), - column( - 4, offset = 1, - uiOutput(ns("utvalg")), - br(), - checkboxInput(ns("ekskluder_felles"), - label = 'Fjern pasienter med forløp som tilfredsstiller + ) + ), + br(), + # actionButton(ns("goButton"), "Beregn!"), + br(), + fluidRow( + column(7, + plotOutput(ns("Figur_surv"))), + column( + 4, offset = 1, + uiOutput(ns("utvalg")), + br(), + checkboxInput(ns("ekskluder_felles"), + label = 'Fjern pasienter med forløp som tilfredsstiller begge utvalg'), - br(), - br(), - selectInput(inputId = ns("bildeformat"), label = "Velg bildeformat", - choices = c('pdf', 'png', 'jpg', 'bmp', 'tif', 'svg')), - textInput(ns("tittel"), "Angi tittel for lagret plot", ""), - downloadButton(ns("lastNedBilde"), "Last ned figur")) + br(), + br(), + selectInput(inputId = ns("bildeformat"), label = "Velg bildeformat", + choices = c('pdf', 'png', 'jpg', 'bmp', 'tif', 'svg')), + textInput(ns("tittel"), "Angi tittel for lagret plot", ""), + downloadButton(ns("lastNedBilde"), "Last ned figur")) + ) + ), + tabPanel("Versjon 2", + h2("Kaplan-Meier overlevelseskurver", align='center'), + h4("Forenklet versjon hvor pasienter og forløp tillates å være i begge utvalg. + Hver pasient kan også ha flere forløp."), + br(), + # actionButton(ns("goButton2"), "Beregn!"), + # checkboxInput(ns("inkl_konf2"), label = 'Inkluder konfidensintervall'), + br(), + fluidRow( + column(7, + plotOutput(ns("Figur_surv2"))), + column( + 4, offset = 1, + uiOutput(ns("utvalg2")), + br(), + checkboxInput(ns("ekskluder_felles2"), + label = 'Fjern forløp som tilfredsstiller + begge utvalg'), + br(), + br(), + selectInput(inputId = ns("bildeformat"), label = "Velg bildeformat", + choices = c('pdf', 'png', 'jpg', 'bmp', 'tif', 'svg')), + textInput(ns("tittel"), "Angi tittel for lagret plot", ""), + downloadButton(ns("lastNedBilde2"), "Last ned figur")) + ) + ) ) ), column( @@ -165,6 +214,9 @@ overlevelse_UI <- function(id){ selectInput(inputId = ns("malign2"), label = "Diagnose", choices = c('Ikke valgt'=99, 'Malign'=1, 'Benign'=0)), uiOutput(outputId = ns('icd2')), + selectInput(inputId = ns("accordion2"), label = "Accordiongrad", + multiple = TRUE, + choices = c('<3'=1, '3'=3, '4'=4, '5'=5, '6'=6)), tags$hr(), actionButton(ns("reset_input2"), "Nullstill valg")) ) @@ -182,6 +234,13 @@ overlevelse_UI <- function(id){ overlevelse <- function(input, output, session, reshID, RegData, userRole, hvd_session, BrValg){ + feilreg <- which(RegData$OpDoedTid<0) + if (length(feilreg) != 0) { + RegData <- RegData[-which(RegData$OpDoedTid<0), ] #feilregistreringer: død før operasjon + } + RegData <- RegData[!(RegData$Avdod == 1 & is.na(RegData$OpDoedTid)), ] #manglende data: død men ingen dødsdato + RegData$OpDoedTid[RegData$OpDoedTid==0] <- 0.5 #Døde ved dag 0 settes til 0.5 for å inkluderes i analysen + observeEvent(input$reset_input, { shinyjs::reset("id_overlevelse_panel") }) @@ -189,11 +248,11 @@ overlevelse <- function(input, output, session, reshID, RegData, shinyjs::reset("id_overlevelse_panel2") }) - observe( - if (userRole != 'SC') { - shinyjs::hide(id = 'valgtShus') - shinyjs::hide(id = 'valgtShus2') - }) + # observe( + # if (userRole != 'SC') { + # shinyjs::hide(id = 'valgtShus') + # shinyjs::hide(id = 'valgtShus2') + # }) observe( if (userRole == 'SC') { @@ -241,14 +300,18 @@ overlevelse <- function(input, output, session, reshID, RegData, output$valgtShus_ui <- renderUI({ ns <- session$ns - selectInput(inputId = ns("valgtShus"), label = "Velg sykehus", - choices = BrValg$sykehus, multiple = TRUE) + if (userRole == 'SC') { + selectInput(inputId = ns("valgtShus"), label = "Velg sykehus", + choices = BrValg$sykehus, multiple = TRUE) + } }) output$valgtShus2_ui <- renderUI({ ns <- session$ns - selectInput(inputId = ns("valgtShus2"), label = "Velg sykehus", - choices = BrValg$sykehus, multiple = TRUE) + if (userRole == 'SC') { + selectInput(inputId = ns("valgtShus2"), label = "Velg sykehus", + choices = BrValg$sykehus, multiple = TRUE) + } }) output$op_gruppe_ui <- renderUI({ @@ -347,12 +410,12 @@ overlevelse <- function(input, output, session, reshID, RegData, input$goButton - feilreg <- which(RegData$OpDoedTid<0) - if (length(feilreg) != 0) { - RegData <- RegData[-which(RegData$OpDoedTid<0), ] #feilregistreringer: død før operasjon - } - RegData <- RegData[!(RegData$Avdod == 1 & is.na(RegData$OpDoedTid)), ] #manglende data: død men ingen dødsdato - RegData$OpDoedTid[RegData$OpDoedTid==0] <- 0.5 #Døde ved dag 0 settes til 0.5 for å inkluderes i analysen + # feilreg <- which(RegData$OpDoedTid<0) + # if (length(feilreg) != 0) { + # RegData <- RegData[-which(RegData$OpDoedTid<0), ] #feilregistreringer: død før operasjon + # } + # RegData <- RegData[!(RegData$Avdod == 1 & is.na(RegData$OpDoedTid)), ] #manglende data: død men ingen dødsdato + # RegData$OpDoedTid[RegData$OpDoedTid==0] <- 0.5 #Døde ved dag 0 settes til 0.5 for å inkluderes i analysen Utvalg1 <- shiny::isolate(NorgastUtvalg(RegData = RegData, datoFra = input$datovalg[1], datoTil = input$datovalg[2], minald=as.numeric(input$alder[1]), maxald=as.numeric(input$alder[2]), erMann = as.numeric(input$erMann), @@ -370,7 +433,8 @@ overlevelse <- function(input, output, session, reshID, RegData, whoEcog = if (!is.null(input$whoEcog)) {input$whoEcog} else {''}, forbehandling = if (!is.null(input$forbehandling)) {input$forbehandling} else {''}, malign = as.numeric(input$malign), kun_ferdigstilte = input$kun_ferdigstilte, - icd = if (!is.null(input$icd_verdi)) {input$icd_verdi} else {''})) + icd = if (!is.null(input$icd_verdi)) {input$icd_verdi} else {''}, + accordion = if (!is.null(input$accordion)) {input$accordion} else {''})) Utvalg1data <- Utvalg1$RegData shiny::isolate(if (!is.null(input$valgtShus)) { Utvalg1data <- Utvalg1data[which(Utvalg1data$AvdRESH %in% as.numeric(input$valgtShus)), ] @@ -398,7 +462,8 @@ overlevelse <- function(input, output, session, reshID, RegData, whoEcog = if (!is.null(input$whoEcog2)) {input$whoEcog2} else {''}, forbehandling = if (!is.null(input$forbehandling2)) {input$forbehandling2} else {''}, malign = as.numeric(input$malign2), kun_ferdigstilte = input$kun_ferdigstilte, - icd = if (!is.null(input$icd_verdi2)) {input$icd_verdi2} else {''})) + icd = if (!is.null(input$icd_verdi2)) {input$icd_verdi2} else {''}, + accordion = if (!is.null(input$accordion2)) {input$accordion2} else {''})) Utvalg2data <- Utvalg2$RegData shiny::isolate(if (!is.null(input$valgtShus2)) { Utvalg2data <- Utvalg2data[which(Utvalg2data$AvdRESH %in% as.numeric(input$valgtShus2)), ] @@ -436,10 +501,105 @@ overlevelse <- function(input, output, session, reshID, RegData, return(utdata) } + calc_overlevelse_v2 <- function() { + + input$goButton + + Utvalg1 <- shiny::isolate( + NorgastUtvalg( + RegData = RegData, datoFra = input$datovalg[1], + datoTil = input$datovalg[2], + minald=as.numeric(input$alder[1]), + maxald=as.numeric(input$alder[2]), erMann = as.numeric(input$erMann), + elektiv = as.numeric(input$elektiv), hastegrad = as.numeric(input$hastegrad), + hastegrad_hybrid = as.numeric(input$hastegrad_hybrid), + BMI = if (!is.null(input$BMI)) {input$BMI} else {''}, + valgtShus = if (!is.null(input$valgtShus)) {input$valgtShus} else {''}, + op_gruppe = if (!is.null(input$op_gruppe)) {input$op_gruppe} else {''}, + ncsp = if (!is.null(input$ncsp_verdi)) {input$ncsp_verdi} else {''}, + # tilgang = if (!is.null(input$tilgang)) {input$tilgang} else {''}, + tilgang_utvidet = if (!is.null(input$tilgang_utvidet)) {input$tilgang_utvidet} else {''}, + minPRS = as.numeric(input$PRS[1]), maxPRS = as.numeric(input$PRS[2]), + ASA = if (!is.null(input$ASA)) {input$ASA} else {''}, + modGlasgow = if (!is.null(input$modGlasgow)) {input$modGlasgow} else {''}, + whoEcog = if (!is.null(input$whoEcog)) {input$whoEcog} else {''}, + forbehandling = if (!is.null(input$forbehandling)) {input$forbehandling} else {''}, + malign = as.numeric(input$malign), kun_ferdigstilte = input$kun_ferdigstilte, + icd = if (!is.null(input$icd_verdi)) {input$icd_verdi} else {''}, + accordion = if (!is.null(input$accordion)) {input$accordion} else {''})) + Utvalg1data <- Utvalg1$RegData + shiny::isolate(if (!is.null(input$valgtShus)) { + Utvalg1data <- Utvalg1data[which(Utvalg1data$AvdRESH %in% as.numeric(input$valgtShus)), ] + }) + shiny::isolate(if (!is.null(input$enhetsUtvalg)) { + if (input$enhetsUtvalg == 2) {Utvalg1data <- Utvalg1data[which(Utvalg1data$AvdRESH == reshID), ]} + }) + Utvalg1data$Utvalg <- 1 + + Utvalg2 <- shiny::isolate( + NorgastUtvalg( + RegData = RegData, datoFra = input$datovalg2[1], + datoTil = input$datovalg2[2], + minald=as.numeric(input$alder2[1]), + maxald=as.numeric(input$alder2[2]), erMann = as.numeric(input$erMann2), + elektiv = as.numeric(input$elektiv2), hastegrad = as.numeric(input$hastegrad2), + hastegrad_hybrid = as.numeric(input$hastegrad_hybrid2), + BMI = if (!is.null(input$BMI2)) {input$BMI2} else {''}, + valgtShus = if (!is.null(input$valgtShus2)) {input$valgtShus2} else {''}, + op_gruppe = if (!is.null(input$op_gruppe2)) {input$op_gruppe2} else {''}, + ncsp = if (!is.null(input$ncsp_verdi2)) {input$ncsp_verdi2} else {''}, + # tilgang = if (!is.null(input$tilgang2)) {input$tilgang2} else {''}, + tilgang_utvidet = if (!is.null(input$tilgang_utvidet2)) {input$tilgang_utvidet2} else {''}, + minPRS = as.numeric(input$PRS2[1]), maxPRS = as.numeric(input$PRS2[2]), + ASA = if (!is.null(input$ASA2)) {input$ASA2} else {''}, + modGlasgow = if (!is.null(input$modGlasgow2)) {input$modGlasgow2} else {''}, + whoEcog = if (!is.null(input$whoEcog2)) {input$whoEcog2} else {''}, + forbehandling = if (!is.null(input$forbehandling2)) {input$forbehandling2} else {''}, + malign = as.numeric(input$malign2), kun_ferdigstilte = input$kun_ferdigstilte, + icd = if (!is.null(input$icd_verdi2)) {input$icd_verdi2} else {''}, + accordion = if (!is.null(input$accordion2)) {input$accordion2} else {''})) + Utvalg2data <- Utvalg2$RegData + shiny::isolate(if (!is.null(input$valgtShus2)) { + Utvalg2data <- Utvalg2data[which(Utvalg2data$AvdRESH %in% as.numeric(input$valgtShus2)), ] + }) + shiny::isolate(if (!is.null(input$enhetsUtvalg2)) { + if (input$enhetsUtvalg2 == 2) {Utvalg2data <- Utvalg2data[which(Utvalg2data$AvdRESH == reshID), ]} + }) + Utvalg2data$Utvalg <- 2 + utdata <- list(Utvalg1 = Utvalg1data, Utvalg2 = Utvalg2data, utvalgTxt1 = Utvalg1$utvalgTxt, utvalgTxt2 = Utvalg2$utvalgTxt) + Samlet <- dplyr::bind_rows(Utvalg1data, Utvalg2data) + + fellesforlop <- intersect(Utvalg1data$ForlopsID, Utvalg2data$ForlopsID) + + if (input$ekskluder_felles2) { + Samlet <- Samlet[!(Samlet$ForlopsID %in% fellesforlop), ] + } + + Samlet$overlev <- difftime(as.Date(Sys.Date()), Samlet$OperasjonsDato, units = 'days') + Samlet$overlev[Samlet$Avdod==1] <- Samlet$OpDoedTid[Samlet$Avdod==1] + Samlet$overlev <- as.numeric(Samlet$overlev) + Samlet$SurvObj <- with(Samlet, survival::Surv(overlev, Avdod == 1)) + + fit1 <- survival::survfit(SurvObj ~ Utvalg, data = Samlet) + + utdata$Samlet <- Samlet + utdata$fit1 <- fit1 + + return(utdata) + } + output$Figur_surv <- renderPlot({ overlevdata <- calc_overlevelse() - survminer::ggsurvplot(overlevdata$fit1, data = overlevdata$Samlet, pval = TRUE, conf.int = input$inkl_konf, fun = "pct", + survminer::ggsurvplot(overlevdata$fit1, data = overlevdata$Samlet, + pval = TRUE, conf.int = input$inkl_konf, fun = "pct", + risk.table = TRUE, legend = "bottom") + }) + + output$Figur_surv2 <- renderPlot({ + overlevdata <- calc_overlevelse_v2() + survminer::ggsurvplot(overlevdata$fit1, data = overlevdata$Samlet, + pval = TRUE, conf.int = input$inkl_konf, fun = "pct", risk.table = TRUE, legend = "bottom") }) # }, width = 800, height = 800) # @@ -482,6 +642,41 @@ overlevelse <- function(input, output, session, reshID, RegData, } )}) + output$utvalg2 <- renderUI({ + utvlgdata <- calc_overlevelse_v2() + tagList( + h4('Utvalg 1:'), + h5(HTML(paste0(utvlgdata$utvalgTxt1, '
'))), + shiny::isolate(h5(if (!is.null(input$valgtShus)) { + HTML(paste0("Avdeling(er): ", paste(unique(utvlgdata$Utvalg1$Sykehusnavn), collapse=', '))) + })), + shiny::isolate(h5(if (!is.null(input$enhetsUtvalg)) { + if (input$enhetsUtvalg == 2) {HTML(paste0("Avdeling: ", paste(unique(utvlgdata$Utvalg1$Sykehusnavn), collapse=', ')))} + })), + br(), + br(), + h4('Utvalg 2:'), + h5(HTML(paste0(utvlgdata$utvalgTxt2, '
'))), + shiny::isolate(h5(if (!is.null(input$valgtShus2)) { + HTML(paste0("Avdeling(er): ", paste(unique(utvlgdata$Utvalg2$Sykehusnavn), collapse=', '))) + })), + shiny::isolate(h5(if (!is.null(input$enhetsUtvalg2)) { + if (input$enhetsUtvalg2 == 2) {HTML(paste0("Avdeling: ", paste(unique(utvlgdata$Utvalg2$Sykehusnavn), collapse=', ')))} + })), + br(), + br(), + h4('Merknad:'), + if (input$ekskluder_felles) { + h5(paste0(length(intersect(utvlgdata$Utvalg1$ForlopsID, utvlgdata$Utvalg2$ForlopsID)), + ' forløp er ekskludert siden forløpene tilfredstiller begge utvalg.')) + } else { + h5(paste0(length(intersect(utvlgdata$Utvalg1$ForlopsID, utvlgdata$Utvalg2$ForlopsID)), + ' forløp finnes i begge utvalg. ', + length(intersect(utvlgdata$Utvalg1$PasientID, utvlgdata$Utvalg2$PasientID)), + ' pasienter finnes i begge utvalg.')) + } + )}) + output$lastNedBilde <- downloadHandler( filename = function(){ paste0('KM_kurve', Sys.time(), '.', input$bildeformat) @@ -497,6 +692,21 @@ overlevelse <- function(input, output, session, reshID, RegData, } ) + output$lastNedBilde2 <- downloadHandler( + filename = function(){ + paste0('KM_kurve_v2', Sys.time(), '.', input$bildeformat) + }, + + content = function(file){ + overlevdata <- calc_overlevelse_v2() + survp <- survminer::ggsurvplot(overlevdata$fit1, data = overlevdata$Samlet, title = input$tittel, pval = TRUE, + conf.int = input$inkl_konf, fun = "pct", risk.table = TRUE, legend = "bottom") + rapFigurer::figtype(outfile=file, pointsizePDF=11) + print(survp, newpage = FALSE) + dev.off() + } + ) + shiny::observe({ if (rapbase::isRapContext()) { # rapbase::repLogger( diff --git a/R/modul_sammenlign_utvalg_tid.R b/R/modul_sammenlign_utvalg_tid.R index b735af1..ab87370 100644 --- a/R/modul_sammenlign_utvalg_tid.R +++ b/R/modul_sammenlign_utvalg_tid.R @@ -51,6 +51,9 @@ saml_andeler_UI <- function(id){ selectInput(inputId = ns("malign"), label = "Diagnose", choices = c('Ikke valgt'=99, 'Malign'=1, 'Benign'=0)), uiOutput(outputId = ns('icd')), + selectInput(inputId = ns("accordion"), label = "Accordiongrad", + multiple = TRUE, + choices = c('<3'=1, '3'=3, '4'=4, '5'=5, '6'=6)), tags$hr(), actionButton(ns("reset_input"), "Nullstill valg") ), @@ -178,6 +181,9 @@ saml_andeler_UI <- function(id){ selectInput(inputId = ns("malign2"), label = "Diagnose", choices = c('Ikke valgt'=99, 'Malign'=1, 'Benign'=0)), uiOutput(outputId = ns('icd2')), + selectInput(inputId = ns("accordion2"), label = "Accordiongrad", + multiple = TRUE, + choices = c('<3'=1, '3'=3, '4'=4, '5'=5, '6'=6)), tags$hr(), actionButton(ns("reset_input2"), "Nullstill valg")) ) @@ -201,11 +207,11 @@ saml_andeler <- function(input, output, session, reshID, RegData, shinyjs::reset("id_overlevelse_panel2") }) - observe( - if (userRole != 'SC') { - shinyjs::hide(id = 'valgtShus') - shinyjs::hide(id = 'valgtShus2') - }) + # observe( + # if (userRole != 'SC') { + # shinyjs::hide(id = 'valgtShus') + # shinyjs::hide(id = 'valgtShus2') + # }) observe( if (userRole == 'SC') { @@ -240,14 +246,18 @@ saml_andeler <- function(input, output, session, reshID, RegData, output$valgtShus_ui <- renderUI({ ns <- session$ns + if (userRole == 'SC') { selectInput(inputId = ns("valgtShus"), label = "Velg sykehus", choices = BrValg$sykehus, multiple = TRUE) + } }) output$valgtShus2_ui <- renderUI({ ns <- session$ns + if (userRole == 'SC') { selectInput(inputId = ns("valgtShus2"), label = "Velg sykehus", choices = BrValg$sykehus, multiple = TRUE) + } }) output$valgtVar_ui <- renderUI({ @@ -355,24 +365,27 @@ saml_andeler <- function(input, output, session, reshID, RegData, valgtVar=if (!is.null(input$valgtVar)) {input$valgtVar} else {'Anastomoselekkasje'}) RegData <- PlotParams$RegData - Utvalg1 <- shiny::isolate(NorgastUtvalg(RegData = RegData, datoFra = input$datovalg[1], datoTil = input$datovalg[2], - minald=as.numeric(input$alder[1]), maxald=as.numeric(input$alder[2]), - erMann = as.numeric(input$erMann), kun_ferdigstilte = input$kun_ferdigstilte, - elektiv = as.numeric(input$elektiv), hastegrad = as.numeric(input$hastegrad), - hastegrad_hybrid = as.numeric(input$hastegrad_hybrid), - BMI = if (!is.null(input$BMI)) {input$BMI} else {''}, - valgtShus = if (!is.null(input$valgtShus)) {input$valgtShus} else {''}, - op_gruppe = if (!is.null(input$op_gruppe)) {input$op_gruppe} else {''}, - ncsp = if (!is.null(input$ncsp_verdi)) {input$ncsp_verdi} else {''}, - # tilgang = if (!is.null(input$tilgang)) {input$tilgang} else {''}, - tilgang_utvidet = if (!is.null(input$tilgang_utvidet)) {input$tilgang_utvidet} else {''}, - minPRS = as.numeric(input$PRS[1]), maxPRS = as.numeric(input$PRS[2]), - ASA = if (!is.null(input$ASA)) {input$ASA} else {''}, - modGlasgow = if (!is.null(input$modGlasgow)) {input$modGlasgow} else {''}, - whoEcog = if (!is.null(input$whoEcog)) {input$whoEcog} else {''}, - forbehandling = if (!is.null(input$forbehandling)) {input$forbehandling} else {''}, - malign = as.numeric(input$malign), - icd = if (!is.null(input$icd_verdi)) {input$icd_verdi} else {''})) + Utvalg1 <- shiny::isolate( + NorgastUtvalg( + RegData = RegData, datoFra = input$datovalg[1], datoTil = input$datovalg[2], + minald=as.numeric(input$alder[1]), maxald=as.numeric(input$alder[2]), + erMann = as.numeric(input$erMann), kun_ferdigstilte = input$kun_ferdigstilte, + elektiv = as.numeric(input$elektiv), hastegrad = as.numeric(input$hastegrad), + hastegrad_hybrid = as.numeric(input$hastegrad_hybrid), + BMI = if (!is.null(input$BMI)) {input$BMI} else {''}, + valgtShus = if (!is.null(input$valgtShus)) {input$valgtShus} else {''}, + op_gruppe = if (!is.null(input$op_gruppe)) {input$op_gruppe} else {''}, + ncsp = if (!is.null(input$ncsp_verdi)) {input$ncsp_verdi} else {''}, + # tilgang = if (!is.null(input$tilgang)) {input$tilgang} else {''}, + tilgang_utvidet = if (!is.null(input$tilgang_utvidet)) {input$tilgang_utvidet} else {''}, + minPRS = as.numeric(input$PRS[1]), maxPRS = as.numeric(input$PRS[2]), + ASA = if (!is.null(input$ASA)) {input$ASA} else {''}, + modGlasgow = if (!is.null(input$modGlasgow)) {input$modGlasgow} else {''}, + whoEcog = if (!is.null(input$whoEcog)) {input$whoEcog} else {''}, + forbehandling = if (!is.null(input$forbehandling)) {input$forbehandling} else {''}, + malign = as.numeric(input$malign), + icd = if (!is.null(input$icd_verdi)) {input$icd_verdi} else {''}, + accordion = if (!is.null(input$accordion)) {input$accordion} else {''})) Utvalg1data <- Utvalg1$RegData if (dim(Utvalg1data)[1] > 0) { shiny::isolate(if (!is.null(input$valgtShus)) { @@ -385,24 +398,27 @@ saml_andeler <- function(input, output, session, reshID, RegData, Utvalg1data <- Utvalg1data[order(Utvalg1data$HovedDato, decreasing = F), ] # Hvis pasient opptrer flere ganger, velg Utvalg1data <- Utvalg1data[match(unique(Utvalg1data$PasientID), Utvalg1data$PasientID), ] # første operasjon i utvalget } - Utvalg2 <- shiny::isolate(NorgastUtvalg(RegData = RegData, datoFra = input$datovalg[1], datoTil = input$datovalg[2], - minald=as.numeric(input$alder2[1]), maxald=as.numeric(input$alder2[2]), - erMann = as.numeric(input$erMann2), kun_ferdigstilte = input$kun_ferdigstilte, - elektiv = as.numeric(input$elektiv2), hastegrad = as.numeric(input$hastegrad2), - hastegrad_hybrid = as.numeric(input$hastegrad_hybrid2), - BMI = if (!is.null(input$BMI2)) {input$BMI2} else {''}, - valgtShus = if (!is.null(input$valgtShus2)) {input$valgtShus2} else {''}, - op_gruppe = if (!is.null(input$op_gruppe2)) {input$op_gruppe2} else {''}, - ncsp = if (!is.null(input$ncsp_verdi2)) {input$ncsp_verdi2} else {''}, - # tilgang = if (!is.null(input$tilgang2)) {input$tilgang2} else {''}, - tilgang_utvidet = if (!is.null(input$tilgang_utvidet2)) {input$tilgang_utvidet2} else {''}, - minPRS = as.numeric(input$PRS2[1]), maxPRS = as.numeric(input$PRS2[2]), - ASA = if (!is.null(input$ASA2)) {input$ASA2} else {''}, - modGlasgow = if (!is.null(input$modGlasgow2)) {input$modGlasgow2} else {''}, - whoEcog = if (!is.null(input$whoEcog2)) {input$whoEcog2} else {''}, - forbehandling = if (!is.null(input$forbehandling2)) {input$forbehandling2} else {''}, - malign = as.numeric(input$malign2), - icd = if (!is.null(input$icd_verdi2)) {input$icd_verdi2} else {''})) + Utvalg2 <- shiny::isolate( + NorgastUtvalg( + RegData = RegData, datoFra = input$datovalg[1], datoTil = input$datovalg[2], + minald=as.numeric(input$alder2[1]), maxald=as.numeric(input$alder2[2]), + erMann = as.numeric(input$erMann2), kun_ferdigstilte = input$kun_ferdigstilte, + elektiv = as.numeric(input$elektiv2), hastegrad = as.numeric(input$hastegrad2), + hastegrad_hybrid = as.numeric(input$hastegrad_hybrid2), + BMI = if (!is.null(input$BMI2)) {input$BMI2} else {''}, + valgtShus = if (!is.null(input$valgtShus2)) {input$valgtShus2} else {''}, + op_gruppe = if (!is.null(input$op_gruppe2)) {input$op_gruppe2} else {''}, + ncsp = if (!is.null(input$ncsp_verdi2)) {input$ncsp_verdi2} else {''}, + # tilgang = if (!is.null(input$tilgang2)) {input$tilgang2} else {''}, + tilgang_utvidet = if (!is.null(input$tilgang_utvidet2)) {input$tilgang_utvidet2} else {''}, + minPRS = as.numeric(input$PRS2[1]), maxPRS = as.numeric(input$PRS2[2]), + ASA = if (!is.null(input$ASA2)) {input$ASA2} else {''}, + modGlasgow = if (!is.null(input$modGlasgow2)) {input$modGlasgow2} else {''}, + whoEcog = if (!is.null(input$whoEcog2)) {input$whoEcog2} else {''}, + forbehandling = if (!is.null(input$forbehandling2)) {input$forbehandling2} else {''}, + malign = as.numeric(input$malign2), + icd = if (!is.null(input$icd_verdi2)) {input$icd_verdi2} else {''}, + accordion = if (!is.null(input$accordion2)) {input$accordion2} else {''})) Utvalg2data <- Utvalg2$RegData if (dim(Utvalg2data)[1] > 0) { shiny::isolate(if (!is.null(input$valgtShus2)) { @@ -495,23 +511,23 @@ saml_andeler <- function(input, output, session, reshID, RegData, fra0 = input$fra0, inkl_tall=input$inkl_tall)) if (is.na(utdata$Konf$Utvalg2[1])){ Tabell_tid <- dplyr::tibble(Tidsperiode = utdata$andeler$TidsEnhet, - Antall = utdata$antall[["1"]], - N = utdata$N[["1"]], 'Andel (%)'= utdata$andeler[["1"]], KI_nedre = utdata$Konf$Utvalg1[1,], - KI_ovre = utdata$Konf$Utvalg1[2,]) + Antall = utdata$antall[["1"]], + N = utdata$N[["1"]], 'Andel (%)'= utdata$andeler[["1"]], KI_nedre = utdata$Konf$Utvalg1[1,], + KI_ovre = utdata$Konf$Utvalg1[2,]) Tabell_tid %>% knitr::kable("html", digits = c(0,0,0,1,1,1)) %>% kableExtra::kable_styling("hover", full_width = F) } else { Tabell_tid <- dplyr::tibble(Tidsperiode = utdata$andeler$TidsEnhet, Antall = utdata$antall[["1"]], - N = utdata$N[["1"]], Andel = utdata$andeler[["1"]], Konf.int.nedre = utdata$Konf$Utvalg1[1,], - Konf.int.ovre = utdata$Konf$Utvalg1[2,], Antall2 = utdata$antall[["2"]], - N2 = utdata$N[["2"]], Andel2 = utdata$andeler[["2"]], Konf.int.nedre2 = utdata$Konf$Utvalg2[1,], - Konf.int.ovre2 = utdata$Konf$Utvalg2[2,]) + N = utdata$N[["1"]], Andel = utdata$andeler[["1"]], Konf.int.nedre = utdata$Konf$Utvalg1[1,], + Konf.int.ovre = utdata$Konf$Utvalg1[2,], Antall2 = utdata$antall[["2"]], + N2 = utdata$N[["2"]], Andel2 = utdata$andeler[["2"]], Konf.int.nedre2 = utdata$Konf$Utvalg2[1,], + Konf.int.ovre2 = utdata$Konf$Utvalg2[2,]) names(Tabell_tid) <- c('Tidsperiode', 'Antall', 'N', 'Andel (%)', 'KI_nedre', 'KI_ovre', 'Antall', 'N', 'Andel (%)', 'KI_nedre', 'KI_ovre') Tabell_tid %>% knitr::kable("html", digits = c(0,0,0,1,1,1,0,0,1,1,1)) %>% kableExtra::kable_styling("hover", full_width = F) %>% - add_header_above(c(" ", "Utvalg 1" = 5, "Utvalg 2" = 5)) + kableExtra::add_header_above(c(" ", "Utvalg 1" = 5, "Utvalg 2" = 5)) } } @@ -526,15 +542,15 @@ saml_andeler <- function(input, output, session, reshID, RegData, fra0 = input$fra0, inkl_tall=input$inkl_tall)) if (is.na(utdata$Konf$Utvalg2)[1]){ Tabell_tid <- dplyr::tibble(Tidsperiode = utdata$andeler$TidsEnhet, - Antall = utdata$antall[["1"]], - N = utdata$N[["1"]], 'Andel (%)'= utdata$andeler[["1"]], KI_nedre = utdata$Konf$Utvalg1[1,], - KI_ovre = utdata$Konf$Utvalg1[2,]) + Antall = utdata$antall[["1"]], + N = utdata$N[["1"]], 'Andel (%)'= utdata$andeler[["1"]], KI_nedre = utdata$Konf$Utvalg1[1,], + KI_ovre = utdata$Konf$Utvalg1[2,]) } else { Tabell_tid <- dplyr::tibble(Tidsperiode = utdata$andeler$TidsEnhet, Antall = utdata$antall[["1"]], - N = utdata$N[["1"]], Andel = utdata$andeler[["1"]], Konf.int.nedre = utdata$Konf$Utvalg1[1,], - Konf.int.ovre = utdata$Konf$Utvalg1[2,], Antall2 = utdata$antall[["2"]], - N2 = utdata$N[["2"]], Andel2 = utdata$andeler[["2"]], Konf.int.nedre2 = utdata$Konf$Utvalg2[1,], - Konf.int.ovre2 = utdata$Konf$Utvalg2[2,]) + N = utdata$N[["1"]], Andel = utdata$andeler[["1"]], Konf.int.nedre = utdata$Konf$Utvalg1[1,], + Konf.int.ovre = utdata$Konf$Utvalg1[2,], Antall2 = utdata$antall[["2"]], + N2 = utdata$N[["2"]], Andel2 = utdata$andeler[["2"]], Konf.int.nedre2 = utdata$Konf$Utvalg2[1,], + Konf.int.ovre2 = utdata$Konf$Utvalg2[2,]) names(Tabell_tid) <- c('Tidsperiode', 'Antall', 'N', 'Andel (%)', 'KI_nedre', 'KI_ovre', 'Antall', 'N', 'Andel (%)', 'KI_nedre', 'KI_ovre') } diff --git a/R/modul_sykehusvisning.R b/R/modul_sykehusvisning.R index 33ddd77..9a67174 100644 --- a/R/modul_sykehusvisning.R +++ b/R/modul_sykehusvisning.R @@ -58,6 +58,9 @@ sykehusvisning_UI <- function(id){ choices = c('Cytostatika'=1, 'Stråleterapi'=2, 'Komb. kjemo/radioterapi'=3, 'Ingen'=4)), selectInput(inputId = ns("malign"), label = "Diagnose", choices = c('Ikke valgt'=99, 'Malign'=1, 'Benign'=0)), + selectInput(inputId = ns("accordion"), label = "Accordiongrad", + multiple = TRUE, + choices = c('<3'=1, '3'=3, '4'=4, '5'=5, '6'=6)), selectInput(inputId = ns("bildeformat"), label = "Velg bildeformat", choices = c('pdf', 'png', 'jpg', 'bmp', 'tif', 'svg')), tags$hr(), @@ -133,11 +136,12 @@ sykehusvisning <- function(input, output, session, reshID, RegData, hvd_session, output$ncsp <- renderUI({ ns <- session$ns if (!is.null(input$op_gruppe)) { - selectInput(inputId = ns("ncsp_verdi"), label = "NCSP koder (velg en eller flere)", - choices = if (!is.null(input$op_gruppe)) { - setNames(substr(sort(unique(RegData$Hovedoperasjon[RegData$Op_gr %in% as.numeric(input$op_gruppe)])), 1, 5), - sort(unique(RegData$Hovedoperasjon[RegData$Op_gr %in% as.numeric(input$op_gruppe)]))) - }, multiple = TRUE) + selectInput( + inputId = ns("ncsp_verdi"), label = "NCSP koder (velg en eller flere)", + choices = if (!is.null(input$op_gruppe)) { + setNames(substr(sort(unique(RegData$Hovedoperasjon[RegData$Op_gr %in% as.numeric(input$op_gruppe)])), 1, 5), + sort(unique(RegData$Hovedoperasjon[RegData$Op_gr %in% as.numeric(input$op_gruppe)]))) + }, multiple = TRUE) } }) @@ -159,8 +163,6 @@ sykehusvisning <- function(input, output, session, reshID, RegData, hvd_session, choices = BrValg$varvalg_andel_stabel) }) - - output$op_gruppe_ui <- renderUI({ ns <- session$ns selectInput(inputId = ns("op_gruppe"), label = "Velg reseksjonsgruppe(r)", @@ -193,9 +195,6 @@ sykehusvisning <- function(input, output, session, reshID, RegData, hvd_session, }) - - - ############### Andeler ####################################################### output$fig_andel_grvar <- renderPlot({ @@ -224,7 +223,8 @@ sykehusvisning <- function(input, output, session, reshID, RegData, hvd_session, ncsp = fiksNULL(input$ncsp_verdi), hastegrad = as.numeric(input$hastegrad), kun_ferdigstilte = input$kun_ferdigstilte, - hastegrad_hybrid = as.numeric(input$hastegrad_hybrid)) + hastegrad_hybrid = as.numeric(input$hastegrad_hybrid), + accordion = if (!is.null(input$accordion)) {input$accordion} else {''}) }, width = 700, height = 700) tabellReagerSykehusAndel <- reactive({ @@ -254,7 +254,8 @@ sykehusvisning <- function(input, output, session, reshID, RegData, hvd_session, ncsp = fiksNULL(input$ncsp_verdi), hastegrad = as.numeric(input$hastegrad), kun_ferdigstilte = input$kun_ferdigstilte, - hastegrad_hybrid = as.numeric(input$hastegrad_hybrid)) + hastegrad_hybrid = as.numeric(input$hastegrad_hybrid), + accordion = if (!is.null(input$accordion)) {input$accordion} else {''}) }) output$utvalg_sykehus_andel <- renderUI({ @@ -267,9 +268,9 @@ sykehusvisning <- function(input, output, session, reshID, RegData, hvd_session, output$Tabell_sykehus_andel <- function() { utdata <- tabellReagerSykehusAndel() Tabell <- dplyr::tibble(Avdeling = names(utdata$Nvar), Antall=utdata$Nvar, - 'Antall totalt'=utdata$Ngr, - 'Andel (%)' = as.numeric(utdata$Nvar/utdata$Ngr*100), - KI_nedre=utdata$KI[1,], KI_ovre=utdata$KI[2,]) + 'Antall totalt'=utdata$Ngr, + 'Andel (%)' = as.numeric(utdata$Nvar/utdata$Ngr*100), + KI_nedre=utdata$KI[1,], KI_ovre=utdata$KI[2,]) Tabell[utdata$Andeler==-0.001, 2:6] <- NA Tabell <- Tabell[dim(Tabell)[1]:1, ] Tabell %>% knitr::kable("html", digits = c(0,0,0,1,1,1)) %>% @@ -283,9 +284,9 @@ sykehusvisning <- function(input, output, session, reshID, RegData, hvd_session, content = function(file){ utdata <- tabellReagerSykehusAndel() Tabell <- dplyr::tibble(Avdeling = names(utdata$Nvar), Antall=utdata$Nvar, - 'Antall totalt'=utdata$Ngr, - 'Andel (%)' = as.numeric(utdata$Nvar/utdata$Ngr*100), - KI_nedre=utdata$KI[1,], KI_ovre=utdata$KI[2,]) + 'Antall totalt'=utdata$Ngr, + 'Andel (%)' = as.numeric(utdata$Nvar/utdata$Ngr*100), + KI_nedre=utdata$KI[1,], KI_ovre=utdata$KI[2,]) Tabell[utdata$Andeler==-0.001, 2:6] <- NA Tabell <- Tabell[dim(Tabell)[1]:1, ] write.csv3(Tabell, file, row.names = F, na = '') @@ -324,7 +325,8 @@ sykehusvisning <- function(input, output, session, reshID, RegData, hvd_session, outfile = file, hastegrad = as.numeric(input$hastegrad), kun_ferdigstilte = input$kun_ferdigstilte, - hastegrad_hybrid = as.numeric(input$hastegrad_hybrid)) + hastegrad_hybrid = as.numeric(input$hastegrad_hybrid), + accordion = if (!is.null(input$accordion)) {input$accordion} else {''}) } ) @@ -335,7 +337,7 @@ sykehusvisning <- function(input, output, session, reshID, RegData, hvd_session, RegData, valgtVar = if (!is.null(input$valgtVar_andel_stabel)) { input$valgtVar_andel_stabel - } else {'ModGlasgowScore'}, + } else {'ModGlasgowScore'}, datoFra = input$datovalg[1], datoTil = input$datovalg[2], minald=as.numeric(input$alder[1]), @@ -356,7 +358,8 @@ sykehusvisning <- function(input, output, session, reshID, RegData, hvd_session, ncsp = fiksNULL(input$ncsp_verdi), hastegrad = as.numeric(input$hastegrad), kun_ferdigstilte = input$kun_ferdigstilte, - hastegrad_hybrid = as.numeric(input$hastegrad_hybrid)) + hastegrad_hybrid = as.numeric(input$hastegrad_hybrid), + accordion = if (!is.null(input$accordion)) {input$accordion} else {''}) }, width = 700, height = 700) @@ -385,7 +388,8 @@ sykehusvisning <- function(input, output, session, reshID, RegData, hvd_session, ncsp = fiksNULL(input$ncsp_verdi), hastegrad = as.numeric(input$hastegrad), kun_ferdigstilte = input$kun_ferdigstilte, - hastegrad_hybrid = as.numeric(input$hastegrad_hybrid)) + hastegrad_hybrid = as.numeric(input$hastegrad_hybrid), + accordion = if (!is.null(input$accordion)) {input$accordion} else {''}) }) output$utvalg_sykehus_andel_stabel <- renderUI({ @@ -398,7 +402,7 @@ sykehusvisning <- function(input, output, session, reshID, RegData, hvd_session, output$Tabell_sykehus_andel_stabel <- function() { TabellData <- tabellReagerSykehusAndelStabel() Tabell <- dplyr::bind_cols(TabellData$antall, TabellData$andeler[, 2:(dim(TabellData$andeler)[2]-1)], - .name_repair = "minimal") + .name_repair = "minimal") names(Tabell)[dim(Tabell)[2]/2 + 1] <- 'N' Tabell %>% knitr::kable("html", digits = c(rep(0, dim(Tabell)[2]/2 + 1), rep(1, dim(Tabell)[2]/2 - 1))) %>% @@ -415,7 +419,7 @@ sykehusvisning <- function(input, output, session, reshID, RegData, hvd_session, content = function(file){ TabellData <- tabellReagerSykehusAndelStabel() Tabell <- dplyr::bind_cols(TabellData$antall, TabellData$andeler[, 2:(dim(TabellData$andeler)[2]-1)], - .name_repair = "minimal") + .name_repair = "minimal") names(Tabell)[dim(Tabell)[2]/2 + 1] <- 'N' write.csv3(Tabell, file, row.names = F, na = '') } @@ -455,7 +459,8 @@ sykehusvisning <- function(input, output, session, reshID, RegData, hvd_session, outfile = file, hastegrad = as.numeric(input$hastegrad), kun_ferdigstilte = input$kun_ferdigstilte, - hastegrad_hybrid = as.numeric(input$hastegrad_hybrid)) + hastegrad_hybrid = as.numeric(input$hastegrad_hybrid), + accordion = if (!is.null(input$accordion)) {input$accordion} else {''}) } ) @@ -488,7 +493,8 @@ sykehusvisning <- function(input, output, session, reshID, RegData, hvd_session, ncsp = fiksNULL(input$ncsp_verdi), hastegrad = as.numeric(input$hastegrad), kun_ferdigstilte = input$kun_ferdigstilte, - hastegrad_hybrid = as.numeric(input$hastegrad_hybrid)) + hastegrad_hybrid = as.numeric(input$hastegrad_hybrid), + accordion = if (!is.null(input$accordion)) {input$accordion} else {''}) }, width = 700, height = 700) tabellReagerSykehusGjsn <- reactive({ @@ -517,7 +523,8 @@ sykehusvisning <- function(input, output, session, reshID, RegData, hvd_session, ncsp = fiksNULL(input$ncsp_verdi), hastegrad = as.numeric(input$hastegrad), kun_ferdigstilte = input$kun_ferdigstilte, - hastegrad_hybrid = as.numeric(input$hastegrad_hybrid)) + hastegrad_hybrid = as.numeric(input$hastegrad_hybrid), + accordion = if (!is.null(input$accordion)) {input$accordion} else {''}) }) output$utvalg_sykehus_gjsn <- renderUI({ @@ -580,7 +587,8 @@ sykehusvisning <- function(input, output, session, reshID, RegData, hvd_session, ncsp = fiksNULL(input$ncsp_verdi), kun_ferdigstilte = input$kun_ferdigstilte, outfile = file, - hastegrad_hybrid = as.numeric(input$hastegrad_hybrid)) + hastegrad_hybrid = as.numeric(input$hastegrad_hybrid), + accordion = if (!is.null(input$accordion)) {input$accordion} else {''}) } ) diff --git a/R/modul_tidsvisning.R b/R/modul_tidsvisning.R index a0ecefd..92a1013 100644 --- a/R/modul_tidsvisning.R +++ b/R/modul_tidsvisning.R @@ -64,6 +64,9 @@ tidsvisning_UI <- function(id){ 'Komb. kjemo/radioterapi'=3, 'Ingen'=4)), selectInput(inputId = ns("malign"), label = "Diagnose", choices = c('Ikke valgt'=99, 'Malign'=1, 'Benign'=0)), + selectInput(inputId = ns("accordion"), label = "Accordiongrad", + multiple = TRUE, + choices = c('<3'=1, '3'=3, '4'=4, '5'=5, '6'=6)), selectInput(inputId = ns("bildeformat"), label = "Velg bildeformat", choices = c('pdf', 'png', 'jpg', 'bmp', 'tif', 'svg')), tags$hr(), @@ -122,8 +125,10 @@ tidsvisning <- function(input, output, session, reshID, RegData, userRole, output$valgtShus_ui <- renderUI({ ns <- session$ns + if (userRole == 'SC') { selectInput(inputId = ns("valgtShus"), label = "Velg sykehus", choices = BrValg$sykehus, multiple = TRUE) + } }) output$valgtVar_ui <- renderUI({ @@ -167,65 +172,67 @@ tidsvisning <- function(input, output, session, reshID, RegData, userRole, output$fig_andel_tid <- renderPlot({ - norgast::NorgastFigAndelTid(RegData, - valgtVar=input$valgtVar, - datoFra = input$datovalg[1], - datoTil = input$datovalg[2], - reshID = reshID, - enhetsUtvalg=as.numeric(input$enhetsUtvalg), - minald=as.numeric(input$alder[1]), - maxald=as.numeric(input$alder[2]), - valgtShus = fiksNULL(input$valgtShus), - op_gruppe = fiksNULL(input$op_gruppe), - ncsp = fiksNULL(input$ncsp_verdi), - BMI = fiksNULL(input$BMI), - # tilgang = fiksNULL(input$tilgang), - tilgang_utvidet = if (!is.null(input$tilgang_utvidet)) {input$tilgang_utvidet} else {''}, - minPRS = as.numeric(input$PRS[1]), - maxPRS = as.numeric(input$PRS[2]), - ASA = fiksNULL(input$ASA), - whoEcog = fiksNULL(input$whoEcog), - forbehandling = fiksNULL(input$forbehandling), - modGlasgow = fiksNULL(input$modGlasgow), - malign = as.numeric(input$malign), - erMann = as.numeric(input$erMann), - elektiv = as.numeric(input$elektiv), - tidsenhet = fiksNULL(input$tidsenhet, 'Aar'), - inkl_konf = fiksNULL(input$inkl_konf, 99), - hastegrad=as.numeric(input$hastegrad), - kun_ferdigstilte = input$kun_ferdigstilte, - hastegrad_hybrid = as.numeric(input$hastegrad_hybrid)) + norgast::NorgastFigAndelTid( + RegData, + valgtVar=input$valgtVar, + datoFra = input$datovalg[1], + datoTil = input$datovalg[2], + reshID = reshID, + enhetsUtvalg=as.numeric(input$enhetsUtvalg), + minald=as.numeric(input$alder[1]), + maxald=as.numeric(input$alder[2]), + valgtShus = fiksNULL(input$valgtShus), + op_gruppe = fiksNULL(input$op_gruppe), + ncsp = fiksNULL(input$ncsp_verdi), + BMI = fiksNULL(input$BMI), + tilgang_utvidet = if (!is.null(input$tilgang_utvidet)) {input$tilgang_utvidet} else {''}, + minPRS = as.numeric(input$PRS[1]), + maxPRS = as.numeric(input$PRS[2]), + ASA = fiksNULL(input$ASA), + whoEcog = fiksNULL(input$whoEcog), + forbehandling = fiksNULL(input$forbehandling), + modGlasgow = fiksNULL(input$modGlasgow), + malign = as.numeric(input$malign), + erMann = as.numeric(input$erMann), + elektiv = as.numeric(input$elektiv), + tidsenhet = fiksNULL(input$tidsenhet, 'Aar'), + inkl_konf = fiksNULL(input$inkl_konf, 99), + hastegrad=as.numeric(input$hastegrad), + kun_ferdigstilte = input$kun_ferdigstilte, + hastegrad_hybrid = as.numeric(input$hastegrad_hybrid), + accordion = if (!is.null(input$accordion)) {input$accordion} else {''}) }, width = 700, height = 700) tabellReagerTid <- reactive({ - TabellData_Tid <- norgast::NorgastFigAndelTid(RegData, - valgtVar=input$valgtVar, - datoFra = input$datovalg[1], - datoTil = input$datovalg[2], - reshID = reshID, - enhetsUtvalg=as.numeric(input$enhetsUtvalg), - minald=as.numeric(input$alder[1]), - maxald=as.numeric(input$alder[2]), - valgtShus = fiksNULL(input$valgtShus), - op_gruppe = fiksNULL(input$op_gruppe), - ncsp = fiksNULL(input$ncsp_verdi), - BMI = fiksNULL(input$BMI), - # tilgang = fiksNULL(input$tilgang), - tilgang_utvidet = if (!is.null(input$tilgang_utvidet)) {input$tilgang_utvidet} else {''}, - minPRS = as.numeric(input$PRS[1]), - maxPRS = as.numeric(input$PRS[2]), - ASA = fiksNULL(input$ASA), - whoEcog = fiksNULL(input$whoEcog), - forbehandling = fiksNULL(input$forbehandling), - modGlasgow = fiksNULL(input$modGlasgow), - malign = as.numeric(input$malign), - erMann = as.numeric(input$erMann), - elektiv = as.numeric(input$elektiv), - tidsenhet = fiksNULL(input$tidsenhet, 'Aar'), - inkl_konf = fiksNULL(input$inkl_konf, 99), - hastegrad=as.numeric(input$hastegrad), - kun_ferdigstilte = input$kun_ferdigstilte, - hastegrad_hybrid = as.numeric(input$hastegrad_hybrid)) + TabellData_Tid <- norgast::NorgastFigAndelTid( + RegData, + valgtVar=input$valgtVar, + datoFra = input$datovalg[1], + datoTil = input$datovalg[2], + reshID = reshID, + enhetsUtvalg=as.numeric(input$enhetsUtvalg), + minald=as.numeric(input$alder[1]), + maxald=as.numeric(input$alder[2]), + valgtShus = fiksNULL(input$valgtShus), + op_gruppe = fiksNULL(input$op_gruppe), + ncsp = fiksNULL(input$ncsp_verdi), + BMI = fiksNULL(input$BMI), + tilgang_utvidet = if (!is.null(input$tilgang_utvidet)) {input$tilgang_utvidet} else {''}, + minPRS = as.numeric(input$PRS[1]), + maxPRS = as.numeric(input$PRS[2]), + ASA = fiksNULL(input$ASA), + whoEcog = fiksNULL(input$whoEcog), + forbehandling = fiksNULL(input$forbehandling), + modGlasgow = fiksNULL(input$modGlasgow), + malign = as.numeric(input$malign), + erMann = as.numeric(input$erMann), + elektiv = as.numeric(input$elektiv), + tidsenhet = fiksNULL(input$tidsenhet, 'Aar'), + inkl_konf = fiksNULL(input$inkl_konf, 99), + hastegrad=as.numeric(input$hastegrad), + kun_ferdigstilte = input$kun_ferdigstilte, + hastegrad_hybrid = as.numeric(input$hastegrad_hybrid), + accordion = if (!is.null(input$accordion)) {input$accordion} else {''}) }) output$utvalg_tid <- renderUI({ @@ -242,10 +249,10 @@ tidsvisning <- function(input, output, session, reshID, RegData, userRole, utdata <- tabellReagerTid() if (input$enhetsUtvalg == 1) { Tabell_tid <- dplyr::tibble(Tidsperiode = utdata$Tidtxt, Antall = round(utdata$Andeler$AndelHoved*utdata$NTid$NTidHoved/100), - N = utdata$NTid$NTidHoved, Andel = utdata$Andeler$AndelHoved, Konf.int.nedre = utdata$KonfInt$Konf[1,], - Konf.int.ovre = utdata$KonfInt$Konf[2,], Antall2 = round(utdata$Andeler$AndelRest*utdata$NTid$NTidRest/100), - N2 = utdata$NTid$NTidRest, Andel2 = utdata$Andeler$AndelRest, Konf.int.nedre2 = utdata$KonfInt$KonfRest[1,], - Konf.int.ovre2 = utdata$KonfInt$KonfRest[2,]) + N = utdata$NTid$NTidHoved, Andel = utdata$Andeler$AndelHoved, Konf.int.nedre = utdata$KonfInt$Konf[1,], + Konf.int.ovre = utdata$KonfInt$Konf[2,], Antall2 = round(utdata$Andeler$AndelRest*utdata$NTid$NTidRest/100), + N2 = utdata$NTid$NTidRest, Andel2 = utdata$Andeler$AndelRest, Konf.int.nedre2 = utdata$KonfInt$KonfRest[1,], + Konf.int.ovre2 = utdata$KonfInt$KonfRest[2,]) names(Tabell_tid) <- c('Tidsperiode', 'Antall', 'N', 'Andel (%)', 'KI_nedre', 'KI_ovre', 'Antall', 'N', 'Andel (%)', 'KI_nedre', 'KI_ovre') Tabell_tid %>% knitr::kable("html", digits = c(0,0,0,1,1,1,0,0,1,1,1)) %>% @@ -253,9 +260,9 @@ tidsvisning <- function(input, output, session, reshID, RegData, userRole, kableExtra::add_header_above(c(" ", "Din avdeling" = 5, "Landet forøvrig" = 5)) } else { Tabell_tid <- dplyr::tibble(Tidsperiode = utdata$Tidtxt, - Antall = round(utdata$Andeler$AndelHoved*utdata$NTid$NTidHoved/100), - N = utdata$NTid$NTidHoved, 'Andel (%)'= utdata$Andeler$AndelHoved, KI_nedre = utdata$KonfInt$Konf[1,], - KI_ovre = utdata$KonfInt$Konf[2,]) + Antall = round(utdata$Andeler$AndelHoved*utdata$NTid$NTidHoved/100), + N = utdata$NTid$NTidHoved, 'Andel (%)'= utdata$Andeler$AndelHoved, KI_nedre = utdata$KonfInt$Konf[1,], + KI_ovre = utdata$KonfInt$Konf[2,]) Tabell_tid %>% knitr::kable("html", digits = c(0,0,0,1,1,1)) %>% kableExtra::kable_styling("hover", full_width = F) @@ -270,15 +277,15 @@ tidsvisning <- function(input, output, session, reshID, RegData, userRole, utdata <- tabellReagerTid() if (input$enhetsUtvalg == 1) { Tabell_tid <- dplyr::tibble(Tidsperiode = utdata$Tidtxt, Antall = round(utdata$Andeler$AndelHoved*utdata$NTid$NTidHoved/100), - N = utdata$NTid$NTidHoved, Andel = utdata$Andeler$AndelHoved, Konf.int.nedre = utdata$KonfInt$Konf[1,], - Konf.int.ovre = utdata$KonfInt$Konf[2,], Antall2 = round(utdata$Andeler$AndelRest*utdata$NTid$NTidRest/100), - N2 = utdata$NTid$NTidRest, Andel2 = utdata$Andeler$AndelRest, Konf.int.nedre2 = utdata$KonfInt$KonfRest[1,], - Konf.int.ovre2 = utdata$KonfInt$KonfRest[2,]) + N = utdata$NTid$NTidHoved, Andel = utdata$Andeler$AndelHoved, Konf.int.nedre = utdata$KonfInt$Konf[1,], + Konf.int.ovre = utdata$KonfInt$Konf[2,], Antall2 = round(utdata$Andeler$AndelRest*utdata$NTid$NTidRest/100), + N2 = utdata$NTid$NTidRest, Andel2 = utdata$Andeler$AndelRest, Konf.int.nedre2 = utdata$KonfInt$KonfRest[1,], + Konf.int.ovre2 = utdata$KonfInt$KonfRest[2,]) } else { Tabell_tid <- dplyr::tibble(Tidsperiode = utdata$Tidtxt, - Antall = round(utdata$Andeler$AndelHoved*utdata$NTid$NTidHoved/100), - N = utdata$NTid$NTidHoved, Andel = utdata$Andeler$AndelHoved, Konf.int.nedre = utdata$KonfInt$Konf[1,], - Konf.int.ovre = utdata$KonfInt$Konf[2,]) + Antall = round(utdata$Andeler$AndelHoved*utdata$NTid$NTidHoved/100), + N = utdata$NTid$NTidHoved, Andel = utdata$Andeler$AndelHoved, Konf.int.nedre = utdata$KonfInt$Konf[1,], + Konf.int.ovre = utdata$KonfInt$Konf[2,]) } write.csv3(Tabell_tid, file, row.names = F) } @@ -289,35 +296,36 @@ tidsvisning <- function(input, output, session, reshID, RegData, userRole, paste0(input$valgtVar, '_tid', Sys.time(), '.', input$bildeformat) }, content = function(file){ - norgast::NorgastFigAndelTid(RegData, - valgtVar=input$valgtVar, - datoFra = input$datovalg[1], - datoTil = input$datovalg[2], - reshID = reshID, - enhetsUtvalg=as.numeric(input$enhetsUtvalg), - minald=as.numeric(input$alder[1]), - maxald=as.numeric(input$alder[2]), - valgtShus = fiksNULL(input$valgtShus), - op_gruppe = fiksNULL(input$op_gruppe), - ncsp = fiksNULL(input$ncsp_verdi), - BMI = fiksNULL(input$BMI), - # tilgang = fiksNULL(input$tilgang), - tilgang_utvidet = if (!is.null(input$tilgang_utvidet)) {input$tilgang_utvidet} else {''}, - minPRS = as.numeric(input$PRS[1]), - maxPRS = as.numeric(input$PRS[2]), - ASA = fiksNULL(input$ASA), - hastegrad=as.numeric(input$hastegrad), - whoEcog = fiksNULL(input$whoEcog), - forbehandling = fiksNULL(input$forbehandling), - modGlasgow = fiksNULL(input$modGlasgow), - malign = as.numeric(input$malign), - erMann = as.numeric(input$erMann), - elektiv = as.numeric(input$elektiv), - tidsenhet = fiksNULL(input$tidsenhet, 'Aar'), - inkl_konf = fiksNULL(input$inkl_konf, 99), - kun_ferdigstilte = input$kun_ferdigstilte, - outfile = file, - hastegrad_hybrid = as.numeric(input$hastegrad_hybrid)) + norgast::NorgastFigAndelTid( + RegData, + valgtVar=input$valgtVar, + datoFra = input$datovalg[1], + datoTil = input$datovalg[2], + reshID = reshID, + enhetsUtvalg=as.numeric(input$enhetsUtvalg), + minald=as.numeric(input$alder[1]), + maxald=as.numeric(input$alder[2]), + valgtShus = fiksNULL(input$valgtShus), + op_gruppe = fiksNULL(input$op_gruppe), + ncsp = fiksNULL(input$ncsp_verdi), + BMI = fiksNULL(input$BMI), + tilgang_utvidet = if (!is.null(input$tilgang_utvidet)) {input$tilgang_utvidet} else {''}, + minPRS = as.numeric(input$PRS[1]), + maxPRS = as.numeric(input$PRS[2]), + ASA = fiksNULL(input$ASA), + hastegrad=as.numeric(input$hastegrad), + whoEcog = fiksNULL(input$whoEcog), + forbehandling = fiksNULL(input$forbehandling), + modGlasgow = fiksNULL(input$modGlasgow), + malign = as.numeric(input$malign), + erMann = as.numeric(input$erMann), + elektiv = as.numeric(input$elektiv), + tidsenhet = fiksNULL(input$tidsenhet, 'Aar'), + inkl_konf = fiksNULL(input$inkl_konf, 99), + kun_ferdigstilte = input$kun_ferdigstilte, + outfile = file, + hastegrad_hybrid = as.numeric(input$hastegrad_hybrid), + accordion = if (!is.null(input$accordion)) {input$accordion} else {''}) } ) diff --git a/R/modul_traktplot.R b/R/modul_traktplot.R index a0cbb84..efa43cd 100644 --- a/R/modul_traktplot.R +++ b/R/modul_traktplot.R @@ -9,53 +9,65 @@ traktplot_UI <- function(id){ ns <- shiny::NS(id) shiny::sidebarLayout( - sidebarPanel(width = 3, - id = ns("id_trakt_panel"), - div(id = ns("br_kontroller1"), - checkboxInput(inputId = ns("referansepasient"), label = "Velg referansepasient"), - checkboxInput(inputId = ns("kun_ferdigstilte"), label = "Inkludér kun komplette forløp (også oppfølging ferdigstilt)", value = TRUE), - # selectInput(inputId = ns("valgtVar"), label = "Velg variabel", - # choices = BrValg$varvalg_andel), - uiOutput(ns("valgtVar_ui")), - numericInput(ns("fjern_n"),"Fjern avdelinger med antall forløp færre enn:", value = 10, min = 0, max = 500, step = 1), - checkboxInput(inputId = ns("aktiver_justering"), label = "Juster midtverdi"), - uiOutput(outputId = ns('settMaalnivaa'))), - uiOutput(ns("slider_to_anim")), - div(id = ns("br_kontroller2"), - uiOutput(ns("speed_value")), - sliderInput(inputId=ns("alder"), label = "Alder", min = 0, - max = 120, value = c(0, 120)), - selectInput(inputId = ns("erMann"), label = "Kjønn", - choices = c('Begge'=99, 'Kvinne'=0, 'Mann'=1)), - # selectInput(inputId = ns("op_gruppe"), label = "Velg reseksjonsgruppe(r)", - # choices = BrValg$reseksjonsgrupper, multiple = TRUE), - uiOutput(ns("op_gruppe_ui")), - uiOutput(outputId = ns('ncsp')), - selectInput(inputId = ns("elektiv"), label = "Tidspunkt for operasjonsstart", - choices = c('Ikke valgt'=99, 'Innenfor normalarbeidstid'=1, 'Utenfor normalarbeidstid'=0)), - selectInput(inputId = ns("hastegrad"), label = "Hastegrad", - choices = c('Ikke valgt'=99, 'Elektiv'=1, 'Akutt'=2)), - selectInput(inputId = ns("hastegrad_hybrid"), label = "Hastegrad, hybrid (bruker hastegrad når den finnes, ellers tidspkt for op.start)", - choices = c('Ikke valgt'=99, 'Elektiv'=1, 'Akutt'=0)), - # selectInput(inputId = ns("BMI"), label = "BMI", choices = BrValg$bmi_valg, multiple = TRUE), - uiOutput(ns("BMI_ui")), - # selectInput(inputId = ns("tilgang_utvidet"), - # label = "Tilgang i abdomen (inkl. robotassistanse)", - # choices = BrValg$tilgang_utvidet, multiple = TRUE), - uiOutput(outputId = ns('tilgang_utvidet_ui')), - sliderInput(inputId = ns("PRS"), label = "mE-PASS", min = 0, max = 2.2, value = c(0, 2.2), step = 0.05), - # selectInput(inputId = ns("ASA"), label = "ASA-grad", choices = BrValg$ASA_valg, multiple = TRUE), - uiOutput(outputId = ns('ASA_ui')), - selectInput(inputId = ns("modGlasgow"), label = "Modified Glasgow score", choices = 0:2, multiple = TRUE), - # selectInput(inputId = ns("whoEcog"), label = "WHO ECOG score", choices = BrValg$whoEcog_valg, multiple = TRUE), - uiOutput(outputId = ns('whoEcog_ui')), - selectInput(inputId = ns("forbehandling"), label = "Onkologisk forbehandling", multiple = TRUE, - choices = c('Cytostatika'=1, 'Stråleterapi'=2, 'Komb. kjemo/radioterapi'=3, 'Ingen'=4)), - selectInput(inputId = ns("malign"), label = "Diagnose", choices = c('Ikke valgt'=99, 'Malign'=1, 'Benign'=0)), - selectInput(inputId = ns("bildeformat"), label = "Velg bildeformat", - choices = c('pdf', 'png', 'jpg', 'bmp', 'tif', 'svg'))), - tags$hr(), - actionButton(ns("reset_input"), "Nullstill valg") + sidebarPanel( + width = 3, + id = ns("id_trakt_panel"), + div(id = ns("br_kontroller1"), + checkboxInput(inputId = ns("referansepasient"), + label = "Velg referansepasient"), + checkboxInput(inputId = ns("kun_ferdigstilte"), + label = "Inkludér kun komplette forløp (også oppfølging ferdigstilt)", + value = TRUE), + uiOutput(ns("valgtVar_ui")), + numericInput(ns("fjern_n"), + "Fjern avdelinger med antall forløp færre enn:", + value = 10, min = 0, max = 500, step = 1), + checkboxInput(inputId = ns("aktiver_justering"), + label = "Juster midtverdi"), + uiOutput(outputId = ns('settMaalnivaa'))), + uiOutput(ns("slider_to_anim")), + div(id = ns("br_kontroller2"), + uiOutput(ns("speed_value")), + sliderInput(inputId=ns("alder"), label = "Alder", min = 0, + max = 120, value = c(0, 120)), + selectInput(inputId = ns("erMann"), label = "Kjønn", + choices = c('Begge'=99, 'Kvinne'=0, 'Mann'=1)), + uiOutput(ns("op_gruppe_ui")), + uiOutput(outputId = ns('ncsp')), + selectInput(inputId = ns("elektiv"), + label = "Tidspunkt for operasjonsstart", + choices = c('Ikke valgt'=99, + 'Innenfor normalarbeidstid'=1, + 'Utenfor normalarbeidstid'=0)), + selectInput(inputId = ns("hastegrad"), label = "Hastegrad", + choices = c('Ikke valgt'=99, 'Elektiv'=1, 'Akutt'=2)), + selectInput(inputId = ns("hastegrad_hybrid"), + label = "Hastegrad, hybrid (bruker hastegrad når den + finnes, ellers tidspkt for op.start)", + choices = c('Ikke valgt'=99, 'Elektiv'=1, 'Akutt'=0)), + uiOutput(ns("BMI_ui")), + uiOutput(outputId = ns('tilgang_utvidet_ui')), + sliderInput(inputId = ns("PRS"), label = "mE-PASS", + min = 0, max = 2.2, value = c(0, 2.2), step = 0.05), + uiOutput(outputId = ns('ASA_ui')), + selectInput(inputId = ns("modGlasgow"), + label = "Modified Glasgow score", + choices = 0:2, multiple = TRUE), + uiOutput(outputId = ns('whoEcog_ui')), + selectInput(inputId = ns("forbehandling"), + label = "Onkologisk forbehandling", + multiple = TRUE, + choices = c('Cytostatika'=1, 'Stråleterapi'=2, + 'Komb. kjemo/radioterapi'=3, 'Ingen'=4)), + selectInput(inputId = ns("malign"), label = "Diagnose", + choices = c('Ikke valgt'=99, 'Malign'=1, 'Benign'=0)), + selectInput(inputId = ns("accordion"), label = "Accordiongrad", + multiple = TRUE, + choices = c('<3'=1, '3'=3, '4'=4, '5'=5, '6'=6)), + selectInput(inputId = ns("bildeformat"), label = "Velg bildeformat", + choices = c('pdf', 'png', 'jpg', 'bmp', 'tif', 'svg'))), + tags$hr(), + actionButton(ns("reset_input"), "Nullstill valg") ), mainPanel( # tabsetPanel( @@ -204,28 +216,29 @@ traktplot <- function(input, output, session, reshID, RegData, hvd_session, BrVa ## Gjør utvalg basert på brukervalg (LibUtvalg) if (!is.null(input$datovalg)) { - NorgastUtvalg <- NorgastUtvalg(RegData=RegData, datoFra = input$datovalg[1], - datoTil = input$datovalg[2], - kun_ferdigstilte = input$kun_ferdigstilte, - minald=as.numeric(input$alder[1]), - maxald=as.numeric(input$alder[2]), - erMann=as.numeric(input$erMann), - elektiv=as.numeric(input$elektiv), - hastegrad = as.numeric(input$hastegrad), - hastegrad_hybrid = as.numeric(input$hastegrad_hybrid), - BMI=fiksNULL(input$BMI), valgtShus='', - # tilgang=fiksNULL(input$tilgang), - tilgang_utvidet = if (!is.null(input$tilgang_utvidet)) {input$tilgang_utvidet} else {''}, - minPRS = as.numeric(input$PRS[1]), - maxPRS = as.numeric(input$PRS[2]), - ASA=fiksNULL(input$ASA), - whoEcog=fiksNULL(input$whoEcog), - forbehandling = fiksNULL(input$forbehandling), - malign=as.numeric(input$malign), - # robotassiastanse = as.numeric(fiksNULL(input$robotassistanse_verdi, 99)), - op_gruppe=fiksNULL(input$op_gruppe), - ncsp = fiksNULL(input$ncsp_verdi), - modGlasgow=fiksNULL(input$modGlasgow)) + NorgastUtvalg <- NorgastUtvalg( + RegData=RegData, datoFra = input$datovalg[1], + datoTil = input$datovalg[2], + kun_ferdigstilte = input$kun_ferdigstilte, + minald=as.numeric(input$alder[1]), + maxald=as.numeric(input$alder[2]), + erMann=as.numeric(input$erMann), + elektiv=as.numeric(input$elektiv), + hastegrad = as.numeric(input$hastegrad), + hastegrad_hybrid = as.numeric(input$hastegrad_hybrid), + BMI=fiksNULL(input$BMI), valgtShus='', + tilgang_utvidet = if (!is.null(input$tilgang_utvidet)) { + input$tilgang_utvidet} else {''}, + minPRS = as.numeric(input$PRS[1]), + maxPRS = as.numeric(input$PRS[2]), + ASA=fiksNULL(input$ASA), + whoEcog=fiksNULL(input$whoEcog), + forbehandling = fiksNULL(input$forbehandling), + malign=as.numeric(input$malign), + op_gruppe=fiksNULL(input$op_gruppe), + ncsp = fiksNULL(input$ncsp_verdi), + modGlasgow=fiksNULL(input$modGlasgow), + accordion = if (!is.null(input$accordion)) {input$accordion} else {''}) RegData <- NorgastUtvalg$RegData utvalgTxt <- NorgastUtvalg$utvalgTxt} else utvalgTxt <-"" @@ -239,17 +252,17 @@ traktplot <- function(input, output, session, reshID, RegData, hvd_session, BrVa if (input$aktiver_justering & !is.null(input$settMaalnivaa_verdi)) { my_limits <- funnelR::fundata(input=my_data, - benchmark= as.numeric(input$settMaalnivaa_verdi)/100, - alpha=0.80, - alpha2=0.95, - method='approximate', - step=1) + benchmark= as.numeric(input$settMaalnivaa_verdi)/100, + alpha=0.80, + alpha2=0.95, + method='approximate', + step=1) } else { my_limits <- funnelR::fundata(input=my_data, - alpha=0.80, - alpha2=0.95, - method='approximate', - step=1) + alpha=0.80, + alpha2=0.95, + method='approximate', + step=1) } my_limits$lo[my_limits$lo < 0] <- 0 @@ -274,7 +287,7 @@ traktplot <- function(input, output, session, reshID, RegData, hvd_session, BrVa observeEvent(input$plot_click2, { vals$shus <- data.frame(traktdata()$my_data[order(traktdata()$my_data$andel), ], color="blue") vals$shus$color[round(as.numeric(input$plot_click2$y))] <- 'red' - vals$klikkinfo <- c(round(as.numeric(input$plot_click2$y)), vals$klikkinfo) + vals$klikkinfo <- c(round(as.numeric(input$plot_click2$y)), vals$klikkinfo) }) observeEvent(input$plot_click, { vals$shus <- data.frame(traktdata()$my_data[order(traktdata()$my_data$andel), ], color="blue") @@ -289,18 +302,18 @@ traktplot <- function(input, output, session, reshID, RegData, hvd_session, BrVa my_data <- merge(my_data, vals$shus[, c("Sykehusnavn", "color")], by="Sykehusnavn") } else {my_data$color <- "blue"} my_data$color[is.na(my_data$color)] <- "red" - ggplot2::ggplot(data=my_data, ggplot2::aes(x=d,y=andel, color=color)) + - ggplot2::geom_line(data=my_limits, ggplot2::aes(x=d, y=up2), colour=farger[1]) + - ggplot2::geom_line(data=my_limits, ggplot2::aes(x=d, y=lo2), colour=farger[1]) + - ggplot2::geom_hline(data=my_limits, ggplot2::aes(yintercept=benchmark*100), colour="red") + - ggplot2::coord_cartesian(ylim=c(0,max(my_limits$up2, my_data$andel)), clip = "off") + - ggplot2::annotate("text", x = round(max(my_data$d)[1]*1.1), - y = my_limits$benchmark[1]*110, - label = as.character(round(my_limits$benchmark[1]*100, 2))) + - ggplot2::theme_classic()+ ggplot2::geom_point(data=my_data, size=1.5) + - ggplot2::scale_color_manual(values = c("red" = "red", "blue" = "black"), na.value = "red") + - ggplot2::labs(x = "Antall forløp", y = "Andel (%)") + #scale_x_discrete(expand = c(0, 10)) + - ggplot2::theme(legend.position = "none") + ggplot2::ggplot(data=my_data, ggplot2::aes(x=d,y=andel, color=color)) + + ggplot2::geom_line(data=my_limits, ggplot2::aes(x=d, y=up2), colour=farger[1]) + + ggplot2::geom_line(data=my_limits, ggplot2::aes(x=d, y=lo2), colour=farger[1]) + + ggplot2::geom_hline(data=my_limits, ggplot2::aes(yintercept=benchmark*100), colour="red") + + ggplot2::coord_cartesian(ylim=c(0,max(my_limits$up2, my_data$andel)), clip = "off") + + ggplot2::annotate("text", x = round(max(my_data$d)[1]*1.1), + y = my_limits$benchmark[1]*110, + label = as.character(round(my_limits$benchmark[1]*100, 2))) + + ggplot2::theme_classic()+ ggplot2::geom_point(data=my_data, size=1.5) + + ggplot2::scale_color_manual(values = c("red" = "red", "blue" = "black"), na.value = "red") + + ggplot2::labs(x = "Antall forløp", y = "Andel (%)") + #scale_x_discrete(expand = c(0, 10)) + + ggplot2::theme(legend.position = "none") }) output$barplot <- renderPlot({ @@ -312,53 +325,23 @@ traktplot <- function(input, output, session, reshID, RegData, hvd_session, BrVa my_data <- my_data[order(my_data$andel), ] my_data$Sykehusnavn <- factor(my_data$Sykehusnavn, levels = my_data$Sykehusnavn) my_data$color[is.na(my_data$color)] <- "red" - ggplot2::ggplot(data=my_data, ggplot2::aes(x=Sykehusnavn, y=andel, fill = color)) + - ggplot2::geom_bar(stat = "identity", width = 0.5) + - ggplot2::coord_flip() + - ggplot2::theme_classic() + - ggplot2::scale_x_discrete(expand = c(0, 0)) + - ggplot2::scale_y_continuous(expand = c(0,0)) + - ggplot2::labs(y = "Andel (%)") + - ggplot2::theme(legend.position = "none", - plot.title = ggplot2::element_text(hjust = 0.5), - axis.line.y = ggplot2::element_blank(), - axis.ticks.y = ggplot2::element_blank(), - axis.title.y = ggplot2::element_blank()) + - ggplot2::scale_fill_manual(values = c("red" = "red", "blue" = farger[1]), - na.value = "red") + ggplot2::ggplot(data=my_data, ggplot2::aes(x=Sykehusnavn, y=andel, fill = color)) + + ggplot2::geom_bar(stat = "identity", width = 0.5) + + ggplot2::coord_flip() + + ggplot2::theme_classic() + + ggplot2::scale_x_discrete(expand = c(0, 0)) + + ggplot2::scale_y_continuous(expand = c(0,0)) + + ggplot2::labs(y = "Andel (%)") + + ggplot2::theme(legend.position = "none", + plot.title = ggplot2::element_text(hjust = 0.5), + axis.line.y = ggplot2::element_blank(), + axis.ticks.y = ggplot2::element_blank(), + axis.title.y = ggplot2::element_blank()) + + ggplot2::scale_fill_manual(values = c("red" = "red", "blue" = farger[1]), + na.value = "red") } }) - # output$hover_info <- renderUI({ - # hover <- input$plot_hover - # my_data <-traktdata()$my_data - # point <- nearPoints(my_data, hover, xvar = "d", yvar = "andel", threshold = 5, maxpoints = 1, addDist = TRUE) - # if (nrow(point) == 0) return(NULL) - # - # # calculate point position INSIDE the image as percent of total dimensions - # # from left (horizontal) and from top (vertical) - # left_pct <- (hover$x - hover$domain$left) / (hover$domain$right - hover$domain$left) - # top_pct <- (hover$domain$top - hover$y) / (hover$domain$top - hover$domain$bottom) - # - # # calculate distance from left and bottom side of the picture in pixels - # left_px <- hover$range$left + left_pct * (hover$range$right - hover$range$left) - # top_px <- hover$range$top + top_pct * (hover$range$bottom - hover$range$top) - # - # # create style property fot tooltip - # # background color is set so tooltip is a bit transparent - # # z-index is set so we are sure are tooltip will be on top - # style <- paste0("position:absolute; z-index:100; background-color: rgba(245, 245, 245, 0.85); ", - # "left:", left_px -6, "px; top:", top_px + 452, "px;") - # - # # actual tooltip created as wellPanel - # wellPanel( - # style = style, - # p(HTML(paste0(" Avdeling: ", point$Sykehusnavn, "
", - # " Andel: ", round(point$andel, 1), " % ","
", - # " N: ", point$d, "
"))) - # ) - # }) - output$click_info_verbatim <- renderUI({ if (dim(vals$shus)[1]>0) { my_data <- traktdata()$my_data diff --git a/R/norgastBeregnIndikator.R b/R/norgastBeregnIndikator.R index 09b4ba9..0c2435f 100644 --- a/R/norgastBeregnIndikator.R +++ b/R/norgastBeregnIndikator.R @@ -60,8 +60,8 @@ norgastBeregnIndikator <- function(RegData, ind_id) { dplyr::filter(Op_gr %in% 1:8, # Kun obligatoriske OppfStatus == 1 | is.na(OppfStatus), # Kun ferdige Hastegrad_hybrid==1) %>% - dplyr::mutate(var = case_when(TelefonKontroll==1 | FysiskKontroll==1 ~ 1, - TelefonKontroll==0 & FysiskKontroll==0 ~ 0), + dplyr::mutate(var = dplyr::case_when(TelefonKontroll==1 | FysiskKontroll==1 ~ 1, + TelefonKontroll==0 & FysiskKontroll==0 ~ 0), context = "caregiver", denominator = 1, ind_id = "norgast_aktivkontroll", @@ -162,7 +162,7 @@ norgastBeregnIndikator <- function(RegData, ind_id) { denominator = 1, ind_id = "konv_rate_kolon", orgnr = map_resh_orgnr$orgnr_sh[match(AvdRESH, map_resh_orgnr$resh)], - var = case_when( + var = dplyr::case_when( Tilgang == 2 ~ 0, Tilgang == 3 ~ 1 )) %>% @@ -264,7 +264,7 @@ norgastBeregnIndikator <- function(RegData, ind_id) { denominator = 1, ind_id = "konv_rate_rektum", orgnr = map_resh_orgnr$orgnr_sh[match(AvdRESH, map_resh_orgnr$resh)], - var = case_when( + var = dplyr::case_when( Tilgang == 2 ~ 0, Tilgang == 3 ~ 1 )) %>% @@ -650,7 +650,8 @@ norgastPlotIndikator <- function(AntTilfeller, N, andeler, tittel="", graaUt=NA, skriftStr=1.2, utvalgTxt="", minstekrav = NA, maal = NA, pktStr=1.4, legPlass='top', minstekravTxt='Akseptabelt', - maalTxt='Mål', maalretn='hoy', prikktall=TRUE) { + maalTxt='Mål', maalretn='hoy', prikktall=TRUE, + pst_kolonne = T) { tittel <- c(tittel, 'inkl. 95% konf. int.') @@ -701,6 +702,8 @@ norgastPlotIndikator <- function(AntTilfeller, N, andeler, tittel="", par('oma'=c(0,1,length(utvalgTxt),0)) par('mar'=c(5.1, 4.1, 5.1, 2.1)) + if (pst_kolonne) {par('mar'=c(5.1, 4.1, 5.1, 9.1)) } + xmax <- min(max(KI, max(andeler, na.rm = T), na.rm = T)*1.15,100) andeler <- rbind(c(NA,NA), andeler, c(NA,NA)) rownames(andeler)[dim(andeler)[1]] <- ' ' @@ -715,15 +718,21 @@ norgastPlotIndikator <- function(AntTilfeller, N, andeler, tittel="", fargerMaalNiva <- c('aquamarine3','#fbf850', 'red') if (maal > 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)} + 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)} + 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=0, ybottom=1, xright=maal, ytop=max(ypos)-1.6, col = fargerMaalNiva[1], 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=1, xright=min(xmax, 100), ytop=max(ypos)-1.6, col = fargerMaalNiva[1], 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]), @@ -731,7 +740,7 @@ norgastPlotIndikator <- function(AntTilfeller, N, andeler, tittel="", col=soyleFarger, border=NA, xlab = 'Andel (%)', add=TRUE) # title(main = tittel, outer=T) - title(main = tittel) + 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)) { @@ -785,8 +794,17 @@ norgastPlotIndikator <- function(AntTilfeller, N, andeler, tittel="", 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])} - text(x=0, y=ypos, labels = pst_txt, cex=0.75, pos=4)# - if (prikktall) {text(x=andeler[,1], y=ypos, labels = pst_txt_prikk, cex=0.75, pos=4, xpd = T)} + 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=(length(utvalgTxt)-1):0, outer=TRUE) diff --git a/R/norgastFigAndelGrVarTid.R b/R/norgastFigAndelGrVarTid.R index 67297c2..4a57439 100644 --- a/R/norgastFigAndelGrVarTid.R +++ b/R/norgastFigAndelGrVarTid.R @@ -16,7 +16,7 @@ norgastFigAndelGrVarTid <- function(RegData, valgtVar, tittel='', width=800, hei minstekravTxt='Min.', 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, BMI='', tilgang='', minPRS=0, maxPRS=2.2, ASA='', whoEcog= '', forbehandling='', - hentData=0, op_gruppe='', ncsp='', robotassiastanse=99, kun_ferdigstilte=FALSE) + hentData=0, op_gruppe='', ncsp='', robotassiastanse=99, kun_ferdigstilte=FALSE, accordion='') { ## Hvis spørring skjer fra R på server. ###################### if(hentData){ @@ -43,7 +43,7 @@ norgastFigAndelGrVarTid <- function(RegData, valgtVar, tittel='', width=800, hei BMI=BMI, tilgang=tilgang, minPRS=minPRS, maxPRS=maxPRS, ASA=ASA, whoEcog=whoEcog, forbehandling=forbehandling, malign=malign, op_gruppe=op_gruppe, ncsp=ncsp, robotassiastanse=robotassiastanse, - kun_ferdigstilte=kun_ferdigstilte) + kun_ferdigstilte=kun_ferdigstilte, accordion=accordion) RegData <- NorgastUtvalg$RegData utvalgTxt <- NorgastUtvalg$utvalgTxt NutvTxt <- length(utvalgTxt) diff --git a/R/norgastFigAntRegTid.R b/R/norgastFigAntRegTid.R index f29dcd4..bab4f38 100644 --- a/R/norgastFigAntRegTid.R +++ b/R/norgastFigAntRegTid.R @@ -20,7 +20,8 @@ norgastFigAntRegTid <- function( datoFra='2014-01-01', datoTil='2050-12-31', minald=0, maxald=130, erMann=99, outfile='', preprosess=F, malign=99, elektiv=99, BMI='', tilgang='', minPRS=0, maxPRS=2.2, ASA='', whoEcog= '', forbehandling='', hentData=0, op_gruppe='', - ncsp='', robotassiastanse=99, kun_ferdigstilte=TRUE, alletider=FALSE) + ncsp='', robotassiastanse=99, kun_ferdigstilte=TRUE, alletider=FALSE, + accordion='') { if (tittel[1] == '') { tittel <- 'Registrerende avdelinger i NORGAST' @@ -33,7 +34,7 @@ norgastFigAntRegTid <- function( BMI=BMI, tilgang=tilgang, minPRS=minPRS, maxPRS=maxPRS, ASA=ASA, whoEcog=whoEcog, forbehandling=forbehandling, malign=malign, op_gruppe=op_gruppe, ncsp=ncsp, robotassiastanse=robotassiastanse, - kun_ferdigstilte=kun_ferdigstilte) + kun_ferdigstilte=kun_ferdigstilte, accordion=accordion) RegData <- NorgastUtvalg$RegData utvalgTxt <- NorgastUtvalg$utvalgTxt NutvTxt <- length(utvalgTxt) @@ -79,7 +80,7 @@ norgastFigAntRegTid <- function( BMI=BMI, tilgang=tilgang, minPRS=minPRS, maxPRS=maxPRS, ASA=ASA, whoEcog=whoEcog, forbehandling=forbehandling, malign=malign, op_gruppe=op_gruppe, ncsp=ncsp, robotassiastanse=robotassiastanse, - kun_ferdigstilte=kun_ferdigstilte) + kun_ferdigstilte=kun_ferdigstilte, accordion=accordion) RegData <- NorgastUtvalg$RegData utvalgTxt <- NorgastUtvalg$utvalgTxt NutvTxt <- length(utvalgTxt) diff --git a/doc/BestillingerOgUtleveringer.R b/doc/BestillingerOgUtleveringer.R index 66d6dbd..581b897 100644 --- a/doc/BestillingerOgUtleveringer.R +++ b/doc/BestillingerOgUtleveringer.R @@ -3,6 +3,45 @@ library(norgast) library(tidyverse) rm(list=ls()) +#### FLORENCE 26.01.2024 ####################################################### +kobling_krg <- read.csv2("~/mydata/norgast/Nøkkel_NORGAST.csv", + colClasses = c("character", "integer")) +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() +varnavn <- readxl::read_xlsx("~/mydata/norgast/Klokeboken_med_RAPPORTEKNAVN_FLORENCE.xlsx", + 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) + + +#### 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")) + +felles <- merge(kobling_krg, kobling_hnikt, by.x = "FNR", by.y = "SSN", + suffixes = c("", "_hnikt")) %>% + dplyr::select(-FNR) + +RegData <- norgast::NorgastHentRegData() %>% + norgast::NorgastPreprosess() %>% + dplyr::filter(OperasjonsDato >= "2019-01-01" & OperasjonsDato < "2023-01-01") %>% + merge(felles, by.x = "PasientId", by.y = "PID_hnikt") %>% + dplyr::select(PID, OperasjonsDato, BMI, ASA, Vekt6MndFoer, Hoyde, + VektVedInnleggelse, WHOECOG, MedDiabetes, Albumin, CRP, + Hjertesykdom, Lungesykdom, Hovedoperasjon, PostopLiggedogn, + UtskrevetTil) + +write.csv2(RegData, "~/mydata/norgast/pdac_20231211.csv", row.names = FALSE, + fileEncoding = "Latin1") + + + + #### Kjerstin 30.05.2023 ######################################################## RegData <- norgast::NorgastHentRegData() RegData <- norgast::NorgastPreprosess(RegData) diff --git a/doc/indikatorerSykehusviser.R b/doc/indikatorerSykehusviser.R index 1e4f830..00c5efb 100644 --- a/doc/indikatorerSykehusviser.R +++ b/doc/indikatorerSykehusviser.R @@ -2,13 +2,14 @@ library(norgast) library(tidyverse) rm(list = ls()) -rap_aar <- 2022 +rap_aar <- 2023 RegData <- norgast::NorgastHentRegData() 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 ind <- c("norgast_saarruptur", "norgast_aktivkontroll", "norgast_vekt_reg", "norgast_avdoede_spiseroer", "norgast_avdoede_magesekk", @@ -23,21 +24,6 @@ for (ind_id in ind[-1]) { indikator <- dplyr::bind_rows(indikator, norgastBeregnIndikator(RegDataOblig, ind_id)$Indikator) } - -indikatordata <- norgastBeregnIndikator(RegDataOblig, "norgast_vekt_reg") - - -norgastPlotIndikator(AntTilfeller = indikatordata$AntTilfeller, - N = indikatordata$N, - andeler = indikatordata$andeler, - decreasing = indikatordata$decreasing, - terskel = indikatordata$terskel, - minstekrav = indikatordata$minstekrav, - maal = indikatordata$maal, - utvalgTxt = indikatordata$utvalgTxt, - tittel = indikatordata$tittel) - - ### Tilbered dekningsgrad for sykehusviser dg_kobl_resh_orgnr <- data.frame(orgnr_sh = c(974733013, 974631407, 974557746, 974632535, 974795787, 974705788, 974633574, 974795639, @@ -52,118 +38,7 @@ dg_kobl_resh_orgnr <- data.frame(orgnr_sh = c(974733013, 974631407, 974557746, 9 103312,4205289, 974631776, 974744570, 974747545, 974753898, 974795558, 974795574, 4212917, 106168, 4207594, 4216823)) -# dg <- readxl::read_excel("~/.ssh/norgast/DG_Norgast.xlsx", -# sheet = "Total DG per SH") -# dg$orgnr <- dg_kobl_resh_orgnr$orgnr_sh[match(dg$ReshID, dg_kobl_resh_orgnr$resh)] -# # dg$orgnr[which(dg$Sykehus=="Levanger")] <- 974754118 -# dg <- dg[,c(10,6,2,3)] -# dg <- dg[!is.na(dg$orgnr), ] -# dg$ind_id <- "norgast_dg_total" -# names(dg)[2:4] <- c("year", "var", "denominator") -# dg_samlet <- dg -# -# -# dg <- readxl::read_excel("~/.ssh/norgast/DG_Norgast.xlsx", -# sheet = "DG Tykktarm") -# dg$orgnr <- dg_kobl_resh_orgnr$orgnr_sh[match(dg$ReshID, dg_kobl_resh_orgnr$resh)] -# # dg$orgnr[dg$Sykehus=="Levanger"] <- 974754118 -# dg <- dg[,c(10,6,2,3)] -# dg <- dg[!is.na(dg$orgnr), ] -# dg$ind_id <- "norgast_dg_tykktarm" -# names(dg)[2:4] <- c("year", "var", "denominator") -# dg_samlet <- bind_rows(dg_samlet, dg) -# -# dg <- readxl::read_excel("~/.ssh/norgast/DG_Norgast.xlsx", -# sheet = "DG_Lever") -# dg$orgnr <- dg_kobl_resh_orgnr$orgnr_sh[match(dg$ReshID, dg_kobl_resh_orgnr$resh)] -# # dg$orgnr[dg$Sykehus=="Levanger"] <- 974754118 -# dg <- dg[,c(10,6,2,3)] -# dg <- dg[!is.na(dg$orgnr), ] -# dg$ind_id <- "norgast_dg_lever" -# names(dg)[2:4] <- c("year", "var", "denominator") -# dg_samlet <- bind_rows(dg_samlet, dg) -# -# dg <- readxl::read_excel("~/.ssh/norgast/DG_Norgast.xlsx", -# sheet = "DG_Pankreas") -# dg$orgnr <- dg_kobl_resh_orgnr$orgnr_sh[match(dg$ReshID, dg_kobl_resh_orgnr$resh)] -# # dg$orgnr[dg$Sykehus=="Levanger"] <- 974754118 -# dg <- dg[,c(10,6,2,3)] -# dg <- dg[!is.na(dg$orgnr), ] -# dg$ind_id <- "norgast_dg_pankreas" -# names(dg)[2:4] <- c("year", "var", "denominator") -# dg_samlet <- bind_rows(dg_samlet, dg) -# -# dg <- readxl::read_excel("~/.ssh/norgast/DG_Norgast.xlsx", -# sheet = "DG_Endetarm") -# dg$orgnr <- dg_kobl_resh_orgnr$orgnr_sh[match(dg$ReshID, dg_kobl_resh_orgnr$resh)] -# # dg$orgnr[dg$Sykehus=="Levanger"] <- 974754118 -# dg <- dg[,c(10,6,2,3)] -# dg <- dg[!is.na(dg$orgnr), ] -# dg$ind_id <- "norgast_dg_endetarm" -# names(dg)[2:4] <- c("year", "var", "denominator") -# dg_samlet <- bind_rows(dg_samlet, dg) -# -# dg <- readxl::read_excel("~/.ssh/norgast/DG_Norgast.xlsx", -# sheet = "DG_Magesekk") -# dg$orgnr <- dg_kobl_resh_orgnr$orgnr_sh[match(dg$ReshID, dg_kobl_resh_orgnr$resh)] -# # dg$orgnr[dg$Sykehus=="Levanger"] <- 974754118 -# dg <- dg[,c(10,6,2,3)] -# dg <- dg[!is.na(dg$orgnr), ] -# dg$ind_id <- "norgast_dg_magesekk" -# names(dg)[2:4] <- c("year", "var", "denominator") -# dg_samlet <- bind_rows(dg_samlet, dg) -# -# dg <- readxl::read_excel("~/.ssh/norgast/DG_Norgast.xlsx", -# sheet = "DG_Spiseroer") -# dg$orgnr <- dg_kobl_resh_orgnr$orgnr_sh[match(dg$ReshID, dg_kobl_resh_orgnr$resh)] -# # dg$orgnr[dg$Sykehus=="Levanger"] <- 974754118 -# dg <- dg[,c(10,6,2,3)] -# dg <- dg[!is.na(dg$orgnr), ] -# dg$ind_id <- "norgast_dg_spiseroer" -# names(dg)[2:4] <- c("year", "var", "denominator") -# dg_samlet <- bind_rows(dg_samlet, dg) -# -# # Legg til 2021 -# mapping_npr <- read.csv2('~/.ssh/Sykehus/Koblingstabell_AvdRESH_sh_standard.csv', fileEncoding = "Latin1") -# DG <- read.csv2('~/.ssh/Sykehus/Alle_sh.csv', fileEncoding = "Latin1") -# DG$ind_id <- "norgast_dg_total" -# DG_samlet <- DG -# -# DG <- read.csv2('~/.ssh/Sykehus/Kolon_sh.csv', fileEncoding = "Latin1") -# DG$ind_id <- "norgast_dg_tykktarm" -# DG_samlet <- bind_rows(DG_samlet, DG) -# -# DG <- read.csv2('~/.ssh/Sykehus/Rektum_sh.csv', fileEncoding = "Latin1") -# DG$ind_id <- "norgast_dg_endetarm" -# DG_samlet <- bind_rows(DG_samlet, DG) -# -# DG <- read.csv2('~/.ssh/Sykehus/Lever_sh.csv', fileEncoding = "Latin1") -# DG$ind_id <- "norgast_dg_lever" -# DG_samlet <- bind_rows(DG_samlet, DG) -# -# DG <- read.csv2('~/.ssh/Sykehus/Ventrikkel_sh.csv', fileEncoding = "Latin1") -# DG$ind_id <- "norgast_dg_magesekk" -# DG_samlet <- bind_rows(DG_samlet, DG) -# -# DG <- read.csv2('~/.ssh/Sykehus/Whipple_sh.csv', fileEncoding = "Latin1") -# DG$ind_id <- "norgast_dg_pankreas" -# DG_samlet <- bind_rows(DG_samlet, DG) -# -# DG <- read.csv2('~/.ssh/Sykehus/Øsofagus_sh.csv', fileEncoding = "Latin1") -# DG$ind_id <- "norgast_dg_spiseroer" -# DG_samlet <- bind_rows(DG_samlet, DG) -# -# DG_samlet$AvdRESH <- mapping_npr$AvdRESH[match(DG_samlet$sh_standard, mapping_npr$sh_standard)] -# DG_samlet <- DG_samlet[!is.na(DG_samlet$AvdRESH), ] -# DG_samlet$orgnr <- dg_kobl_resh_orgnr$orgnr_sh[match(DG_samlet$AvdRESH, dg_kobl_resh_orgnr$resh)] -# DG_samlet$year <- 2021 -# DG_samlet$var <- DG_samlet$Begge + DG_samlet$Kun_norgast -# DG_samlet$denominator <- DG_samlet$Total -# -# DG_samlet <- DG_samlet[,c("orgnr", "year", "var", "denominator", "ind_id")] -# dg_samlet <- bind_rows(DG_samlet, dg_samlet) -# dg_samlet$context <- "caregiver" -# dg_samlet$var <- round(dg_samlet$var) + dg_samlet <- read.csv2("~/mydata/norgast/dg_norgast.csv") dg_samlet <- dg_samlet %>% dplyr::filter(substr(ind_id, 1, 10) == "norgast_dg") @@ -219,14 +94,3 @@ indikator <- bind_rows(indikator, dg_samlet) write.csv2(indikator, paste0("~/mydata/norgast/norgast_indikator_", lubridate::today(), ".csv"), row.names = F, fileEncoding = 'UTF-8') -# slett_resident <- indikator[match(unique(indikator$ind_id), indikator$ind_id), ] -# slett_resident$context <- "resident" -# slett_resident$var <- 0 -# slett_resident$denominator <- 1 -# -# write.csv2(slett_resident, "~/.ssh/norgast/norgast_slett_resident_2022_09_06.csv", row.names = F, fileEncoding = 'UTF-8') - -# write.csv2(dg_samlet[dg_samlet$year <= rap_aar, ], "~/.ssh/norgast/norgast_dg.csv", row.names = F, fileEncoding = 'UTF-8') -# -# ind_info <- readxl::read_xlsx("~/.ssh/norgast/Indikatorbeskrivelse publisering SKDE_KH.xlsx", sheet = 2) - diff --git a/inst/Aarsrapport2023_kolorekt.Rnw b/inst/Aarsrapport2023_kolorekt.Rnw new file mode 100644 index 0000000..d60609f --- /dev/null +++ b/inst/Aarsrapport2023_kolorekt.Rnw @@ -0,0 +1,981 @@ +\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 - Kolon og rektum} +\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) +options(dplyr.summarise.inform = FALSE) +rm(list = ls()) + +RegData <- norgast::NorgastHentRegData() +RegData <- NorgastPreprosess(RegData) +RegData$AvdRESH[RegData$AvdRESH == 4204126] <- 4204084 # Tull med Ringerike + +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[!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") +@ + +\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.0 +legPlass='top' +minstekravTxt='Akseptabelt' +maalTxt='Mål' +dg_tekst <- "Dekningsgrad < 60 %" +graaUt=NA +minald=0 +maxald=130 +erMann <- 99 +inkl_konf <- T +elektiv=99 +datoFra <- '2015-01-01' +tittel <- '' +hentData <- F +preprosess <- F +BMI='' +tilgang='' +minPRS=0 +maxPRS=2.2 +ASA='' +whoEcog= '' +hastegrad <- '' +modGlasgow <- '' +ncsp='' +forbehandling='' +valgtShus=c('') +op_gruppe <- '' +malign <- 99 +annet_format_ut <- T +ut_format <- 'svg' + +figfolder <- "~/mydata/norgast/fig_aarsrapp2022/kolon/" +if (!dir.exists(figfolder)) { + dir.create(figfolder) +} +@ + +\section{Kolonreseksjoner} + + + +% \begin{table}[htb] +% \begin{minipage}{\textwidth} +% \centering +<<'Tabell:ReoperasjonerKolon 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==1 & 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() + +aux$Robotassistanse <- factor(aux$Robotassistanse, levels = 0:1, + labels = c("\\quad \\textit{Standard}", + "\\quad \\textit{Robotassistert}") ) + +undergr_lap <- aux %>% filter(Tilgang=="Laparoskopisk") %>% + group_by(Robotassistanse) %>% + 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)) + +undergr_konv <- aux %>% filter(Tilgang=="Konvertert") %>% + group_by(Robotassistanse) %>% + 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)) + +undergr <- bind_rows(undergr_lap, undergr_konv) %>% + rename(Tilgang = Robotassistanse) %>% + mutate(Tilgang = as.character(Tilgang)) + +nytab <- bind_rows(nytab, undergr) +nytab <- nytab[c(1,2,5,6,3,7,8,4), ] + +nytab[, -(1:2)] <- nytab[, -(1:2)]/nytab$N*100 + +Tabell <- nytab +Tabell$N[c(3,4,6,7)] <- paste0("\\textit{", Tabell$N[c(3,4,6,7)], "}") + +# 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} +# ) + +Tabell_ny <- Tabell +@ +% \captionof{table}{Kolonreseksjoner. Elektive operasjoner. Reoperasjoner \Sexpr{rap_aar} etter Tilgang. Gjelder \textbf{hele landet}.} +% \end{minipage} +% \end{table} + +\addtolength{\hoffset}{-1.5cm} + +\begin{table}[htb] +\begin{minipage}{\textwidth} +\begin{small} +\centering +<<'Tabell:ReoperasjonerKolon robotassistanse', results='asis', echo=FALSE, eval=T, warning=FALSE>>= +aux <- RegData %>% + filter(Hastegrad_hybrid==1) %>% + filter(ReLapNarkose %in% c(0, 1)) %>% + filter(Op_gr==1) %>% + filter(FerdigForlop == 1) %>% + filter(Tilgang %in% 2:3) + +aux$Tilgang <- factor(aux$Tilgang, levels = 2:3, + labels = c("\\quad \\textit{Laparoskopisk}", + "\\quad \\textit{Konvertert}") ) + +nytab <- aux %>% group_by(Robotassistanse, 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() + + +ikkerobot <- aux %>% filter(Robotassistanse == 0) %>% + 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(name = "Ikke-robot") + +robot <- aux %>% filter(Robotassistanse == 1) %>% + 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(name = "Robotassistert") + +tab_4c <- dplyr::bind_rows(robot[c(3,1,2), ], ikkerobot[c(3,1,2), ]) +tab_4c <- dplyr::bind_rows(tab_4c, + data.frame(Tilgang = "Totalt", + t(colSums(tab_4c[c(1,4), -1])))) + +tab_4c[, -(1:2)] <- tab_4c[, -(1:2)]/tab_4c$N*100 + +Tabell <- tab_4c +Tabell$N[c(2,3,5,6)] <- paste0("\\textit{", Tabell$N[c(2,3,5,6)], "}") + +Tabell_sml <- Tabell_ny[1, ] %>% + bind_rows(Tabell[7, ]) %>% + bind_rows(Tabell[1:3, ]) %>% + bind_rows(Tabell[4:6, ]) %>% + bind_rows(Tabell_ny[8, ]) +Tabell_sml$Tilgang <- c("\\textbf{Åpen}", "\\textbf{Laparoskopisk (ITT)}", + "\\quad Robotassistert", "\\quad \\quad \\textit{Fullført laparoskopisk}", + "\\quad \\quad \\textit{Konvertert}", "\\quad Ikke-robot", + "\\quad \\quad \\textit{Fullført laparoskopisk}", + "\\quad \\quad \\textit{Konvertert}", "\\textbf{Totalt}") + +print( + xtable::xtable(Tabell_sml, digits=c(0,0,0,rep(1, ncol(Tabell_sml)-2)), + align=c('l', 'l', rep('r', ncol(Tabell_sml)-1))), + floating=FALSE, + hline.after=NULL, + add.to.row=list( + pos=list(-1,0,0,0,0,0, nrow(Tabell_sml)), + 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}{Kolonreseksjoner. Elektive operasjoner. Reoperasjoner \Sexpr{rap_aar} etter robotassistert og ikke-robotassistert laparoskopi. ITT = Intention to treat.} +\end{small} +\end{minipage} +\end{table} + +% \addtolength{\hoffset}{-1.5cm} + +<<'fig_kolon', include=FALSE, echo=FALSE, eval=T, cache=FALSE>>= +op_gruppe <- 1 +elektiv <- 1 +hastegrad_hybrid <- 1 + +tittel <- '' +valgtVar <- 'LapTilgang2' +outfile <- 'Tilgang_elektiv_malign_ecog_0_1.pdf' +outfile <- paste0(figfolder, outfile) +norgastIndikator_rapporteket( + RegDataAll, valgtVar = valgtVar, outfile=outfile, tittel=tittel, width=width, + height=height, decreasing=decreasing, terskel=terskel, minstekrav = 60, maal = 70, + 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) +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 = 60, maal = 70, + 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) +} + + +outfile <- 'AccordionGrad_elektiv_benign.pdf' +outfile <- paste0(figfolder, outfile) +NorgastFigAndelStabelGrVar( + RegData, valgtVar='AccordionGrad_drenasje', op_gruppe=op_gruppe, + hastegrad_hybrid=1, outfile=outfile, Ngrense=10, malign = 0, lavDG = graaUt_kolon) +if (annet_format_ut) { + outfile <- paste0(substr(outfile, 1, nchar(outfile)-3), ut_format) + NorgastFigAndelStabelGrVar( + RegData, valgtVar='AccordionGrad_drenasje', op_gruppe=op_gruppe, + hastegrad_hybrid=1, outfile=outfile, Ngrense=10, malign = 0, lavDG = graaUt_kolon) +} + +outfile <- 'AccordionGrad_elektiv_malign.pdf' +outfile <- paste0(figfolder, outfile) +NorgastFigAndelStabelGrVar( + RegData, valgtVar='AccordionGrad_drenasje', op_gruppe=op_gruppe, + hastegrad_hybrid=1, outfile=outfile, Ngrense=10, malign = 1, lavDG = graaUt_kolon) +if (annet_format_ut) { + outfile <- paste0(substr(outfile, 1, nchar(outfile)-3), ut_format) + NorgastFigAndelStabelGrVar( + RegData, valgtVar='AccordionGrad_drenasje', op_gruppe=op_gruppe, + hastegrad_hybrid=1, outfile=outfile, Ngrense=10, malign = 1, lavDG = graaUt_kolon) +} + +outfile <- 'AccordionGrad_ohjelp.pdf' +outfile <- paste0(figfolder, outfile) +FigAndeler( + RegData, valgtVar='AccordionGrad', enhetsUtvalg=0, op_gruppe=op_gruppe, + hastegrad_hybrid=0, outfile=outfile, reshID=reshID) +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_hybrid=0, outfile=outfile, reshID=reshID) +} + + + +valgtVar <- 'ReLapNarkose' +malign <- 1 +outfile <- 'ReLapNarkose_malign_ecog0_1_aar.pdf' +outfile <- paste0(figfolder, outfile) +norgastIndikator_rapporteket( + RegDataAll, valgtVar = valgtVar, outfile=outfile, tittel=tittel, width=width, + height=height, decreasing=T, terskel=terskel, minstekrav = NA, maal = 12, + 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) +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 = 12, + 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) +} + +outfile <- 'konv_rate_malign_ecog0_1_aar.pdf' +outfile <- paste0(figfolder, outfile) +valgtVar <- 'konv_rate' +norgastIndikator_rapporteket( + RegDataAll, valgtVar = valgtVar, outfile=outfile, tittel=tittel, width=width, + height=height, decreasing=T, terskel=terskel, minstekrav = 15, maal = 10, + 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) +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 = 15, maal = 10, + 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) +} + +valgtVar <- 'Anastomoselekkasje' +outfile <- 'Anastomoselekkasje_malign_ecog0_1aar.pdf' +outfile <- paste0(figfolder, outfile) +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) +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 = 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) +} + +outfile <- 'mortalitet90_kolon_aar.pdf' +outfile <- paste0(figfolder, outfile) +valgtVar <- 'mortalitet90' +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) +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) +} + +outfile <- 'mortalitet90_kolon_aar_refpas.pdf' +outfile <- paste0(figfolder, outfile) +valgtVar <- 'mortalitet90' +norgastIndikator_rapporteket( + RegDataAll, valgtVar = valgtVar, outfile=outfile, tittel=tittel, width=width, + height=height, decreasing=T, terskel=terskel, minstekrav = NA, maal = NA, + skriftStr=skriftStr, whoEcog = c(0,1), 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=1, malign=1, 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 = NA, maal = NA, + skriftStr=skriftStr, whoEcog = c(0,1), 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=1, malign=1, kun_ferdigstilte = F) +} + +outfile <- 'hastegrad_ny_kolon_aar.pdf' +outfile <- paste0(figfolder, outfile) +valgtVar <- 'Hastegrad' +norgastIndikator_rapporteket( + RegDataAll, valgtVar = valgtVar, outfile=outfile, tittel=tittel, width=width, + height=height, decreasing=F, 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='2018-05-01', datoTil=datoTil, + hastegrad_hybrid=99, malign=99) +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=F, 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='2018-05-01', datoTil=datoTil, + hastegrad_hybrid=99, malign=99) +} + +outfile <- 'ohjelp_kveld_kolon_aar.pdf' +outfile <- paste0(figfolder, outfile) +valgtVar <- 'ohjelp_kveld' +norgastIndikator_rapporteket( + RegDataAll, valgtVar = valgtVar, outfile=outfile, tittel=tittel, width=width, + height=height, decreasing=F, 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='2018-05-01', datoTil=datoTil, + hastegrad=2, malign=99) +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=F, 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='2018-05-01', datoTil=datoTil, + hastegrad=2, malign=99) +} + +@ + +\begin{figure}[ht] +\centering +\includegraphics[width=\Sexpr{figstr}\textwidth]{\Sexpr{figfolder}Tilgang_elektiv_malign_ecog_0_1.pdf} +\caption{Tilgang\_elektiv\_malign\_ecog\_0\_1.pdf} +\end{figure} + +\begin{figure}[ht] +\centering +\includegraphics[width=\Sexpr{figstr}\textwidth]{\Sexpr{figfolder}AccordionGrad_elektiv_benign.pdf} +\caption{AccordionGrad\_elektiv\_benign.pdf} +\end{figure} + +\begin{figure}[ht] +\centering +\includegraphics[width=\Sexpr{figstr}\textwidth]{\Sexpr{figfolder}AccordionGrad_elektiv_malign.pdf} % 10 +\caption{AccordionGrad\_elektiv\_malign.pdf} +\end{figure} + +\begin{figure}[ht] +\centering +\includegraphics[width=\Sexpr{figstr}\textwidth]{\Sexpr{figfolder}AccordionGrad_ohjelp.pdf} % 12 +\caption{AccordionGrad\_ohjelp.pdf} +\end{figure} + +\begin{figure}[ht] +\centering +\includegraphics[width=\Sexpr{figstr}\textwidth]{\Sexpr{figfolder}ReLapNarkose_malign_ecog0_1_aar.pdf} +\caption{ReLapNarkose\_malign\_ecog0\_1\_aar.pdf} +\end{figure} + +\begin{figure}[ht] +\centering +\includegraphics[width=\Sexpr{figstr}\textwidth]{\Sexpr{figfolder}konv_rate_malign_ecog0_1_aar.pdf} +\caption{konv\_rate\_malign\_ecog0\_1\_aar.pdf} +\end{figure} + +\begin{figure}[ht] +\centering +\includegraphics[width=\Sexpr{figstr}\textwidth]{\Sexpr{figfolder}Anastomoselekkasje_malign_ecog0_1aar.pdf} +\caption{Anastomoselekkasje\_malign\_ecog0\_1aar.pdf} +\end{figure} + +\begin{figure}[ht] +\centering +\includegraphics[width=\Sexpr{figstr}\textwidth]{\Sexpr{figfolder}mortalitet90_kolon_aar.pdf} +\caption{mortalitet90\_kolon\_aar.pdf} +\end{figure} + +\begin{figure}[ht] +\centering +\includegraphics[width=\Sexpr{figstr}\textwidth]{\Sexpr{figfolder}mortalitet90_kolon_aar_refpas.pdf} +\caption{mortalitet90\_kolon\_aar\_refpas.pdf} +\end{figure} + +\begin{figure}[ht] +\centering +\includegraphics[width=\Sexpr{figstr}\textwidth]{\Sexpr{figfolder}hastegrad_ny_kolon_aar.pdf} +\caption{hastegrad\_ny\_kolon\_aar.pdf} +\end{figure} + +\begin{figure}[ht] +\centering +\includegraphics[width=\Sexpr{figstr}\textwidth]{\Sexpr{figfolder}ohjelp_kveld_kolon_aar.pdf} +\caption{ohjelp\_kveld\_kolon\_aar.pdf} +\end{figure} + +\clearpage + +\section{Rektumreseksjoner} + + +% \begin{table}[htb] +% \begin{minipage}{\textwidth} +% \centering +<<'Tabell:ReoperasjonerRektum 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==2 & 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() + +aux$Robotassistanse <- factor(aux$Robotassistanse, levels = 0:1, + labels = c("\\quad \\textit{Standard}", + "\\quad \\textit{Robotassistert}") ) + +undergr_lap <- aux %>% filter(Tilgang=="Laparoskopisk") %>% + group_by(Robotassistanse) %>% + 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)) + +undergr_konv <- aux %>% filter(Tilgang=="Konvertert") %>% + group_by(Robotassistanse) %>% + 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)) + +undergr <- bind_rows(undergr_lap, undergr_konv) %>% + rename(Tilgang = Robotassistanse) %>% + mutate(Tilgang = as.character(Tilgang)) + +nytab <- bind_rows(nytab, undergr) +nytab <- nytab[c(1,2,5,6,3,7,8,4), ] + +nytab[, -(1:2)] <- nytab[, -(1:2)]/nytab$N*100 + +Tabell <- nytab +Tabell$N[c(3,4,6,7)] <- paste0("\\textit{", Tabell$N[c(3,4,6,7)], "}") + +Tabell_ny <- Tabell + +# 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}{Rektumreseksjoner. Elektive operasjoner. Reoperasjoner \Sexpr{rap_aar} etter Tilgang. Gjelder \textbf{hele landet}.} +% \end{minipage} +% \end{table} + + +\begin{table}[htb] +\begin{minipage}{\textwidth} +\begin{small} +\centering +<<'Tabell:ReoperasjonerRektum robotassistanse', results='asis', echo=FALSE, eval=T, warning=FALSE>>= +aux <- RegData %>% + filter(Hastegrad_hybrid==1) %>% + filter(ReLapNarkose %in% c(0, 1)) %>% + filter(Op_gr==2) %>% + filter(FerdigForlop == 1) %>% + filter(Tilgang %in% 2:3) + +aux$Tilgang <- factor(aux$Tilgang, levels = 2:3, + labels = c("\\quad \\textit{Laparoskopisk}", + "\\quad \\textit{Konvertert}") ) + +nytab <- aux %>% group_by(Robotassistanse, 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() + +ikkerobot <- aux %>% filter(Robotassistanse == 0) %>% + 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(name = "Ikke-robot") + +robot <- aux %>% filter(Robotassistanse == 1) %>% + 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(name = "Robotassistert") + +tab_4c <- dplyr::bind_rows(robot[c(3,1,2), ], ikkerobot[c(3,1,2), ]) +tab_4c <- dplyr::bind_rows(tab_4c, data.frame(Tilgang = "Totalt", + t(colSums(tab_4c[c(1,4), -1])))) + +tab_4c[, -(1:2)] <- tab_4c[, -(1:2)]/tab_4c$N*100 + +Tabell <- tab_4c +Tabell$N[c(2,3,5,6)] <- paste0("\\textit{", Tabell$N[c(2,3,5,6)], "}") + +Tabell_sml <- Tabell_ny[1, ] %>% + bind_rows(Tabell[7, ]) %>% + bind_rows(Tabell[1:3, ]) %>% + bind_rows(Tabell[4:6, ]) %>% + bind_rows(Tabell_ny[8, ]) +Tabell_sml$Tilgang <- c("\\textbf{Åpen}", "\\textbf{Laparoskopisk (ITT)}", + "\\quad Robotassistert", "\\quad \\quad \\textit{Fullført laparoskopisk}", + "\\quad \\quad \\textit{Konvertert}", "\\quad Ikke-robot", + "\\quad \\quad \\textit{Fullført laparoskopisk}", + "\\quad \\quad \\textit{Konvertert}", "\\textbf{Totalt}") + +print( + xtable::xtable(Tabell_sml, digits=c(0,0,0,rep(1, ncol(Tabell_sml)-2)), + align=c('l', 'l', rep('r', ncol(Tabell_sml)-1))), + floating=FALSE, + hline.after=NULL, + add.to.row=list( + pos=list(-1,0,0,0,0,0, nrow(Tabell_sml)), + 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}{Rektumreseksjoner. Elektive operasjoner. Reoperasjoner \Sexpr{rap_aar} etter robotassistert og ikke-robotassistert laparoskopi. ITT = Intention to treat.} +\end{small} +\end{minipage} +\end{table} + + + + +<<'fig_rektum', include=FALSE, echo=FALSE, eval=T, cache=FALSE>>= +op_gruppe <- 2 +malign <- 99 +elektiv <- 99 +hastegrad_hybrid <- 99 +terskel <- 10 + +outfile <- 'AvstandAnalVerge_kat_rekt.pdf' +outfile <- paste0(figfolder, outfile) +NorgastFigAndelStabelGrVar( + RegData, valgtVar='AvstandAnalVerge_kat', op_gruppe=op_gruppe, outfile=outfile, + Ngrense=terskel, lavDG = graaUt_rektum, lavDGtekst = dg_tekst, malign = 1) +if (annet_format_ut) { + outfile <- paste0(substr(outfile, 1, nchar(outfile)-3), ut_format) + NorgastFigAndelStabelGrVar( + RegData, valgtVar='AvstandAnalVerge_kat', op_gruppe=op_gruppe, outfile=outfile, + Ngrense=terskel, lavDG = graaUt_rektum, lavDGtekst = dg_tekst, malign = 1) +} + +valgtVar <- 'LapTilgang2' +outfile <- 'Tilgang_rekt_malign_ecog_0_1.pdf' +outfile <- paste0(figfolder, outfile) +norgastIndikator_rapporteket( + RegDataAll, valgtVar = valgtVar, outfile=outfile, tittel=tittel, width=width, + height=height, decreasing=decreasing, terskel=terskel, minstekrav = 60, maal = 70, + skriftStr=skriftStr, lavDG = graaUt_rektum, lavDGtekst = dg_tekst, pktStr=pktStr, + legPlass=legPlass, 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) +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 = 60, maal = 70, + skriftStr=skriftStr, lavDG = graaUt_rektum, lavDGtekst = dg_tekst, pktStr=pktStr, + legPlass=legPlass, 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) +} + + +valgtVar <- 'ReLapNarkose' +outfile <- 'ReLapNarkose_rekt_malign_ecog_0_1.pdf' +outfile <- paste0(figfolder, outfile) +norgastIndikator_rapporteket( + RegDataAll, valgtVar = valgtVar, outfile=outfile, tittel=tittel, width=width, + height=height, decreasing=T, terskel=terskel, minstekrav = NA, maal = 12, + 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) +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 = 12, + 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) +} + +valgtVar <- 'Anastomoselekkasje' +outfile <- 'Anastomoselekkasje_rekt_malign_ecog_0_1.pdf' +outfile <- paste0(figfolder, outfile) +norgastIndikator_rapporteket( + RegDataAll, valgtVar = valgtVar, outfile=outfile, tittel=tittel, width=width, + height=height, decreasing=T, terskel=terskel, minstekrav = 7, maal = 5, + 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) +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 = 7, maal = 5, + 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) +} + +outfile <- 'konv_rate_rektum_malign_ecog0_1.pdf' +outfile <- paste0(figfolder, outfile) +valgtVar <- 'konv_rate' +norgastIndikator_rapporteket( + RegDataAll, valgtVar = valgtVar, outfile=outfile, tittel=tittel, width=width, + height=height, decreasing=T, terskel=terskel, minstekrav = 15, maal = 10, + 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) +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 = 15, maal = 10, + 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) +} + +outfile <- 'mortalitet90_rektum_aar.pdf' +outfile <- paste0(figfolder, outfile) +valgtVar <- 'mortalitet90' +norgastIndikator_rapporteket( + 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=malign, + kun_ferdigstilte = F, prikktall = FALSE) +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, 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 = F, prikktall = FALSE) +} + +outfile <- 'AccordionGrad_rekt.pdf' +outfile <- paste0(figfolder, outfile) +NorgastFigAndelStabelGrVar( + RegData, valgtVar='AccordionGrad_drenasje', op_gruppe=op_gruppe, outfile=outfile, + Ngrense=terskel, lavDG = graaUt_rektum) +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_rektum) +} + + +outfile <- 'KumAcc_rekt_aar.pdf' +outfile <- paste0(figfolder, outfile) +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_rektum, + 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_rektum, + inkl_konf=inkl_konf, op_gruppe=op_gruppe, datoFra=datoFra, datoTil=datoTil, + hastegrad_hybrid=hastegrad_hybrid, malign=malign) +} + + + +@ + +\begin{figure}[ht] +\centering +\includegraphics[width=\Sexpr{figstr}\textwidth]{\Sexpr{figfolder}Tilgang_rekt_malign_ecog_0_1.pdf} +\caption{Tilgang\_rekt\_malign\_ecog\_0\_1.pdf} +\end{figure} + +\begin{figure}[ht] +\centering +\includegraphics[width=\Sexpr{figstr}\textwidth]{\Sexpr{figfolder}ReLapNarkose_rekt_malign_ecog_0_1.pdf} +\caption{ReLapNarkose\_rekt\_malign\_ecog\_0\_1.pdf} +\end{figure} + +\begin{figure}[ht] +\centering +\includegraphics[width=\Sexpr{figstr}\textwidth]{\Sexpr{figfolder}Anastomoselekkasje_rekt_malign_ecog_0_1.pdf} +\caption{Anastomoselekkasje\_rekt\_malign\_ecog\_0\_1.pdf} +\end{figure} + +\begin{figure}[ht] +\centering +\includegraphics[width=\Sexpr{figstr}\textwidth]{\Sexpr{figfolder}konv_rate_rektum_malign_ecog0_1.pdf} +\caption{konv\_rate\_rektum\_malign\_ecog0\_1.pdf} +\end{figure} + +\begin{figure}[ht] +\centering +\includegraphics[width=\Sexpr{figstr}\textwidth]{\Sexpr{figfolder}AccordionGrad_rekt.pdf} +\caption{AccordionGrad\_rekt.pdf} +\end{figure} + +\begin{figure}[ht] +\centering +\includegraphics[width=\Sexpr{figstr}\textwidth]{\Sexpr{figfolder}KumAcc_rekt_aar.pdf} +\caption{KumAcc\_rekt\_aar.pdf} +\end{figure} + + +\begin{figure}[ht] +\centering +\includegraphics[width=\Sexpr{figstr}\textwidth]{\Sexpr{figfolder}mortalitet90_rektum_aar.pdf} +\caption{mortalitet90\_rektum\_aar.pdf} +\end{figure} + +\begin{figure}[ht] +\centering +\includegraphics[width=\Sexpr{figstr}\textwidth]{\Sexpr{figfolder}AvstandAnalVerge_kat_rekt.pdf} +\caption{AvstandAnalVerge\_kat\_rekt.pdf} +\end{figure} + +\end{document} diff --git a/inst/Aarsrapport2023_kolorekt.pdf b/inst/Aarsrapport2023_kolorekt.pdf new file mode 100644 index 0000000..53aad02 Binary files /dev/null and b/inst/Aarsrapport2023_kolorekt.pdf differ diff --git a/inst/Aarsrapport2023_pankreas_lever.Rnw b/inst/Aarsrapport2023_pankreas_lever.Rnw new file mode 100644 index 0000000..1b327d1 --- /dev/null +++ b/inst/Aarsrapport2023_pankreas_lever.Rnw @@ -0,0 +1,697 @@ +\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 - Lever og pankreas} +\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 <- RegData %>% dplyr::filter(AvdRESH %in% c(114271, 700922, 103312, 107440, 601225)) + +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[!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] + +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 <- "Dekningsgrad < 60 %" +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('') +# reseksjonsGr <- '' +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/" +if (!dir.exists(figfolder)) { + dir.create(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:ReoperasjonerKolon 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==5 & 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}{Leverreseksjoner. Elektive operasjoner. Reoperasjoner \Sexpr{rap_aar} etter Tilgang. Gjelder \textbf{hele landet}.} +\end{minipage} +\end{table} + + +<<'fig_lever', include=FALSE, echo=FALSE, eval=T, cache=FALSE>>= +op_gruppe <- 5 + +outfile <- figfolder %>% paste0('AccordionGrad_lever.pdf') +NorgastFigAndelStabelGrVar( + RegData, valgtVar='AccordionGrad_drenasje', op_gruppe=op_gruppe, + outfile=outfile, Ngrense=terskel, lavDG = graaUt_lever) +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_lever) +} + +outfile <- figfolder %>% paste0('Tilgang_lever_aar.pdf') +valgtVar <- 'LapTilgang2' +norgastIndikator_rapporteket( + RegDataAll, valgtVar = valgtVar, outfile=outfile, tittel=tittel, width=width, + height=height, decreasing=decreasing, terskel=terskel, minstekrav = minstekrav, + maal = 30, skriftStr=skriftStr, pktStr=pktStr, legPlass=legPlass, + minstekravTxt=minstekravTxt, maalTxt=maalTxt, graaUt=graaUt, + lavDG = graaUt_lever, 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 = 30, skriftStr=skriftStr, pktStr=pktStr, legPlass=legPlass, + minstekravTxt=minstekravTxt, maalTxt=maalTxt, graaUt=graaUt, + lavDG = graaUt_lever, lavDGtekst = dg_tekst, inkl_konf=inkl_konf, + op_gruppe=op_gruppe, datoFra=datoFra, datoTil=datoTil, + hastegrad_hybrid=hastegrad_hybrid, malign=malign) +} + +outfile <- figfolder %>% paste0('ReLapNarkose_lever_aar.pdf') +valgtVar <- 'ReLapNarkose' +norgastIndikator_rapporteket( + RegDataAll, valgtVar = valgtVar, outfile=outfile, tittel=tittel, width=width, + height=height, decreasing=T, terskel=terskel, minstekrav = 10, maal = 7, + skriftStr=skriftStr, lavDG = graaUt_lever, 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=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=T, terskel=terskel, minstekrav = 10, maal = 7, + skriftStr=skriftStr, lavDG = graaUt_lever, 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=hastegrad_hybrid, malign=malign) +} + +outfile <- figfolder %>% paste0('mortalitet90_lever_aar.pdf') +valgtVar <- 'mortalitet90' +norgastIndikator_rapporteket( + RegDataAll, valgtVar = valgtVar, outfile=outfile, tittel=tittel, width=width, + height=height, decreasing=T, terskel=terskel, minstekrav = 5, maal = 3, + skriftStr=skriftStr, lavDG = graaUt_lever, 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 = 5, maal = 3, + skriftStr=skriftStr, lavDG = graaUt_lever, 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) +} +@ + +\begin{figure}[ht] +\centering +\includegraphics[width=\Sexpr{figstr}\textwidth]{\Sexpr{figfolder}Tilgang_lever_aar.pdf} +\caption{Tilgang\_lever\_aar.pdf} +\end{figure} + +\begin{figure}[ht] +\centering +\includegraphics[width=\Sexpr{figstr}\textwidth]{\Sexpr{figfolder}AccordionGrad_lever.pdf} +\caption{AccordionGrad\_lever.pdf} +\end{figure} + +\begin{figure}[ht] +\centering +\includegraphics[width=\Sexpr{figstr}\textwidth]{\Sexpr{figfolder}ReLapNarkose_lever_aar.pdf} +\caption{ReLapNarkose\_lever\_aar.pdf} +\end{figure} + + +\begin{figure}[ht] +\centering +\includegraphics[width=\Sexpr{figstr}\textwidth]{\Sexpr{figfolder}mortalitet90_lever_aar.pdf} +\caption{mortalitet90\_lever\_aar.pdf} +\end{figure} + +\clearpage + +\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 v3', results='asis', echo=FALSE, eval=T, warning=FALSE>>= +aux <- RegData[which(RegData$ReLapNarkose %in% c(0, 1) & + RegData$Op_gr==6 & 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}{Whipples operasjon. Reoperasjoner \Sexpr{rap_aar} etter Tilgang. Gjelder \textbf{hele landet}.} +\end{minipage} +\end{table} + + +<<'fig_whipple', include=FALSE, echo=FALSE, eval=T, cache=FALSE>>= +# reseksjonsGr <- 'JLC30|JLC31' +op_gruppe <- 6 + +outfile <- figfolder %>% paste0('Rekonstruksjon_whipple_aar.pdf') +valgtVar <- 'Rekonstruksjon' +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_whipple, lavDGtekst = dg_tekst, inkl_konf=inkl_konf, + op_gruppe=op_gruppe, datoFra='2018-05-01', 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_whipple, lavDGtekst = dg_tekst, inkl_konf=inkl_konf, + op_gruppe=op_gruppe, datoFra='2018-05-01', datoTil=datoTil, + hastegrad_hybrid=hastegrad_hybrid, malign=malign) +} + +outfile <- figfolder %>% paste0('CR_POPF_whipple_aar.pdf') +valgtVar <- 'CR_POPF' +norgastIndikator_rapporteket( + RegDataAll, valgtVar = valgtVar, outfile=outfile, tittel=tittel, width=width, + height=height, decreasing=decreasing, terskel=terskel, minstekrav = 20, maal = 15, + 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='2018-05-01', 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 = 20, maal = 15, + 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='2018-05-01', datoTil=datoTil, + hastegrad_hybrid=hastegrad_hybrid, malign=malign) +} + + +outfile <- figfolder %>% paste0('ReLapNarkose_whipple.pdf') +valgtVar <- 'ReLapNarkose' +norgastIndikator_rapporteket( + RegDataAll, valgtVar = valgtVar, outfile=outfile, tittel=tittel, width=width, + height=height, decreasing=T, terskel=terskel, minstekrav = minstekrav, maal = 20, + 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, + maalretn = 'lav', 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=T, terskel=terskel, minstekrav = minstekrav, maal = 20, + 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, + maalretn = 'lav', hastegrad_hybrid=hastegrad_hybrid, malign=malign) +} + +outfile <- figfolder %>% paste0('mortalitet90_whipple_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, 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) +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, 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) +} + +outfile <- figfolder %>% paste0('AccordionGrad_whipple.pdf') +NorgastFigAndelStabelGrVar( + RegData, valgtVar='AccordionGrad_drenasje', op_gruppe=op_gruppe, + outfile=outfile, Ngrense=terskel, lavDG = graaUt_whipple) +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_whipple) +} +@ + +\begin{figure}[ht] +\centering +\includegraphics[width=\Sexpr{figstr}\textwidth]{\Sexpr{figfolder}Rekonstruksjon_whipple_aar.pdf} +\caption{Rekonstruksjon\_whipple\_aar.pdf} +\end{figure} + +\begin{figure}[ht] +\centering +\includegraphics[width=\Sexpr{figstr}\textwidth]{\Sexpr{figfolder}ReLapNarkose_whipple.pdf} +\caption{ReLapNarkose\_whipple.pdf} +\end{figure} + +\begin{figure}[ht] +\centering +\includegraphics[width=\Sexpr{figstr}\textwidth]{\Sexpr{figfolder}AccordionGrad_whipple.pdf} +\caption{AccordionGrad\_whipple.pdf} +\end{figure} + +\begin{figure}[ht] +\centering +\includegraphics[width=\Sexpr{figstr}\textwidth]{\Sexpr{figfolder}mortalitet90_whipple_aar.pdf} +\caption{mortalitet90\_whipple\_aar.pdf} +\end{figure} + +\begin{figure}[ht] +\centering +\includegraphics[width=\Sexpr{figstr}\textwidth]{\Sexpr{figfolder}CR_POPF_whipple_aar.pdf} +\caption{CR\_POPF\_whipple\_aar.pdf} +\end{figure} + +\clearpage + +\section{Øvrige 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: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), ] +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}{Øvrige pankreasreseksjoner. Elektive operasjoner. Reoperasjoner \Sexpr{rap_aar} etter Tilgang. Gjelder \textbf{hele landet}.} +\end{minipage} +\end{table} + + + +<<'fig_ovrigpankreas', include=FALSE, echo=FALSE, eval=T, cache=FALSE>>= +op_gruppe <- 7 + +outfile <- figfolder %>% paste0('Tilgang_ovrigpankreas_aar.pdf') +valgtVar <- 'LapTilgang2' +norgastIndikator_rapporteket( + RegDataAll, valgtVar = valgtVar, outfile=outfile, tittel=tittel, width=width, + height=height, decreasing=decreasing, terskel=terskel, minstekrav = minstekrav, + maal = 35, skriftStr=skriftStr, pktStr=pktStr, legPlass=legPlass, + minstekravTxt=minstekravTxt, maalTxt=maalTxt, graaUt=graaUt, + lavDG = graaUt_pankreas, 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 = 35, skriftStr=skriftStr, pktStr=pktStr, legPlass=legPlass, + minstekravTxt=minstekravTxt, maalTxt=maalTxt, graaUt=graaUt, + lavDG = graaUt_pankreas, lavDGtekst = dg_tekst, inkl_konf=inkl_konf, + op_gruppe=op_gruppe, datoFra=datoFra, datoTil=datoTil, + hastegrad_hybrid=hastegrad_hybrid, malign=malign) +} + +outfile <- figfolder %>% paste0('Rekonstruksjon_ovrigpankreas_aar.pdf') +valgtVar <- 'Rekonstruksjon' +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_pankreas, lavDGtekst = dg_tekst, inkl_konf=inkl_konf, + op_gruppe=op_gruppe, datoFra='2018-05-01', 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_pankreas, lavDGtekst = dg_tekst, inkl_konf=inkl_konf, + op_gruppe=op_gruppe, datoFra='2018-05-01', datoTil=datoTil, + hastegrad_hybrid=hastegrad_hybrid, malign=malign) +} + +outfile <- figfolder %>% paste0('CR_POPF_ovrigpankreas_aar.pdf') +valgtVar <- 'CR_POPF' +norgastIndikator_rapporteket( + RegDataAll, valgtVar = valgtVar, outfile=outfile, tittel=tittel, width=width, + height=height, decreasing=decreasing, terskel=terskel, minstekrav = 20, maal = 15, + skriftStr=skriftStr, pktStr=pktStr, legPlass=legPlass, minstekravTxt=minstekravTxt, + maalTxt=maalTxt, graaUt=graaUt, lavDG = graaUt_pankreas, lavDGtekst = dg_tekst, + inkl_konf=inkl_konf, op_gruppe=op_gruppe, datoFra='2018-05-01', 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 = 20, maal = 15, + skriftStr=skriftStr, pktStr=pktStr, legPlass=legPlass, minstekravTxt=minstekravTxt, + maalTxt=maalTxt, graaUt=graaUt, lavDG = graaUt_pankreas, lavDGtekst = dg_tekst, + inkl_konf=inkl_konf, op_gruppe=op_gruppe, datoFra='2018-05-01', datoTil=datoTil, + hastegrad_hybrid=hastegrad_hybrid, malign=malign) +} + + +outfile <- figfolder %>% paste0('AccordionGrad_ovrigpankreas.pdf') +NorgastFigAndelStabelGrVar( + RegData, valgtVar='AccordionGrad_drenasje', op_gruppe=op_gruppe, + outfile=outfile, Ngrense=terskel, lavDG = graaUt_pankreas) +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_pankreas) +} +@ + +\begin{figure}[ht] +\centering +\includegraphics[width=\Sexpr{figstr}\textwidth]{\Sexpr{figfolder}Tilgang_ovrigpankreas_aar.pdf} +\caption{Tilgang\_ovrigpankreas\_aar.pdf} +\end{figure} + +\begin{figure}[ht] +\centering +\includegraphics[width=\Sexpr{figstr}\textwidth]{\Sexpr{figfolder}Rekonstruksjon_ovrigpankreas_aar.pdf} +\caption{Rekonstruksjon\_ovrigpankreas\_aar.pdf} +\end{figure} + +\begin{figure}[ht] +\centering +\includegraphics[width=\Sexpr{figstr}\textwidth]{\Sexpr{figfolder}CR_POPF_ovrigpankreas_aar.pdf} +\caption{CR\_POPF\_ovrigpankreas\_aar.pdf} +\end{figure} + +\begin{figure}[ht] +\centering +\includegraphics[width=\Sexpr{figstr}\textwidth]{\Sexpr{figfolder}AccordionGrad_ovrigpankreas.pdf} +\caption{AccordionGrad\_ovrigpankreas.pdf} +\end{figure} + + +\end{document} diff --git a/inst/Aarsrapport2023_pankreas_lever.pdf b/inst/Aarsrapport2023_pankreas_lever.pdf new file mode 100644 index 0000000..af2235e Binary files /dev/null and b/inst/Aarsrapport2023_pankreas_lever.pdf differ diff --git a/man/NorgastFigAndelStabelGrVar.Rd b/man/NorgastFigAndelStabelGrVar.Rd index 0a321a4..4c23698 100644 --- a/man/NorgastFigAndelStabelGrVar.Rd +++ b/man/NorgastFigAndelStabelGrVar.Rd @@ -36,7 +36,8 @@ NorgastFigAndelStabelGrVar( robotassiastanse = 99, kun_ferdigstilte = TRUE, skriftStr = 1, - tilgang_utvidet = "" + tilgang_utvidet = "", + accordion = "" ) } \arguments{ diff --git a/man/NorgastFigAndelTid.Rd b/man/NorgastFigAndelTid.Rd index 1866915..79b99d4 100644 --- a/man/NorgastFigAndelTid.Rd +++ b/man/NorgastFigAndelTid.Rd @@ -36,7 +36,8 @@ NorgastFigAndelTid( hastegrad_hybrid = 99, robotassiastanse = 99, kun_ferdigstilte = TRUE, - tilgang_utvidet = "" + tilgang_utvidet = "", + accordion = "" ) } \arguments{ diff --git a/man/NorgastFigAndelTid_kvartalsrapp.Rd b/man/NorgastFigAndelTid_kvartalsrapp.Rd index 5b7bfa3..a02ceb6 100644 --- a/man/NorgastFigAndelTid_kvartalsrapp.Rd +++ b/man/NorgastFigAndelTid_kvartalsrapp.Rd @@ -32,7 +32,8 @@ NorgastFigAndelTid_kvartalsrapp( op_gruppe = "", ncsp = "", robotassiastanse = 99, - kun_ferdigstilte = TRUE + kun_ferdigstilte = TRUE, + accordion = "" ) } \arguments{ diff --git a/man/NorgastFigAndelerGrVar.Rd b/man/NorgastFigAndelerGrVar.Rd index 3f26eb1..eda9968 100644 --- a/man/NorgastFigAndelerGrVar.Rd +++ b/man/NorgastFigAndelerGrVar.Rd @@ -34,7 +34,8 @@ NorgastFigAndelerGrVar( ncsp = "", robotassiastanse = 99, kun_ferdigstilte = TRUE, - tilgang_utvidet = "" + tilgang_utvidet = "", + accordion = "" ) } \arguments{ diff --git a/man/NorgastFigGjsnGrVar.Rd b/man/NorgastFigGjsnGrVar.Rd index c3a41d8..b5a1107 100644 --- a/man/NorgastFigGjsnGrVar.Rd +++ b/man/NorgastFigGjsnGrVar.Rd @@ -33,7 +33,8 @@ NorgastFigGjsnGrVar( modGlasgow = "", robotassiastanse = 99, kun_ferdigstilte = TRUE, - tilgang_utvidet = "" + tilgang_utvidet = "", + accordion = "" ) } \arguments{ diff --git a/man/norgastFigAndelGrVarTid.Rd b/man/norgastFigAndelGrVarTid.Rd index 33df6b7..df4bc91 100644 --- a/man/norgastFigAndelGrVarTid.Rd +++ b/man/norgastFigAndelGrVarTid.Rd @@ -42,7 +42,8 @@ norgastFigAndelGrVarTid( op_gruppe = "", ncsp = "", robotassiastanse = 99, - kun_ferdigstilte = FALSE + kun_ferdigstilte = FALSE, + accordion = "" ) } \arguments{ diff --git a/man/norgastFigAntRegTid.Rd b/man/norgastFigAntRegTid.Rd index ac5a403..698e584 100644 --- a/man/norgastFigAntRegTid.Rd +++ b/man/norgastFigAntRegTid.Rd @@ -42,7 +42,8 @@ norgastFigAntRegTid( ncsp = "", robotassiastanse = 99, kun_ferdigstilte = TRUE, - alletider = FALSE + alletider = FALSE, + accordion = "" ) } \arguments{