From 5ffc3fc4adb6b4ca61dcbb64f8019b222e8237e9 Mon Sep 17 00:00:00 2001 From: kevinthon Date: Thu, 4 Jan 2024 10:16:08 +0100 Subject: [PATCH 01/10] =?UTF-8?q?F=C3=B8rste=20versjon=20til=20QA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- NAMESPACE | 2 + R/appServer.R | 6 + R/appUi.R | 79 ++++----- R/modul_indikatorer.R | 144 +++++++++++++++++ R/norspisBeregnIndikator.R | 164 +++++++++---------- R/norspisLesOgProsesser.R | 4 +- R/norspisPlotIndikator.R | 7 +- data-raw/mapping_og_variabelutvalg.R | 233 +++++++++++++++++++++++++++ man/indikatorfigServer.Rd | 11 ++ man/indikatorfig_UI.Rd | 11 ++ man/norspisLesOgProsesser.Rd | 3 + 11 files changed, 537 insertions(+), 127 deletions(-) create mode 100644 R/modul_indikatorer.R create mode 100644 data-raw/mapping_og_variabelutvalg.R create mode 100644 man/indikatorfigServer.Rd create mode 100644 man/indikatorfig_UI.Rd diff --git a/NAMESPACE b/NAMESPACE index 30764ec..7423a24 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -13,6 +13,8 @@ export(admtab_ui) export(appServer) export(appUi) export(binomkonf) +export(indikatorfigServer) +export(indikatorfig_UI) export(norspisApp) export(norspisBeregnIndikator) export(norspisLesOgProsesser) diff --git a/R/appServer.R b/R/appServer.R index b6f490c..8a22a97 100644 --- a/R/appServer.R +++ b/R/appServer.R @@ -15,6 +15,7 @@ appServer <- function(input, output, session) { norspisdata <- norspis::norspisLesOgProsesser() SkjemaOversikt <- norspisdata$SkjemaOversikt ForlopsOversikt <- norspisdata$ForlopsOversikt + RegData <- norspisdata$RegData registryName <- "norspis" userFullName <- rapbase::getUserFullName(session) @@ -25,6 +26,11 @@ appServer <- function(input, output, session) { rapbase::navbarWidgetServer("norspisNavbarWidget", "norspis", caller = "norspis") + # Indikatorfigur + norspis::indikatorfigServer("indikatorfig_id", + RegData = RegData, userRole = userRole, + hvd_session = session) + # Administrative tabeller norspis::admtab_server("admtabell", SkjemaOversikt, ForlopsOversikt) diff --git a/R/appUi.R b/R/appUi.R index 47a0a5c..1fd772e 100644 --- a/R/appUi.R +++ b/R/appUi.R @@ -34,33 +34,38 @@ appUi <- function() { ) ), - shiny::tabPanel( - "Eksempelrapport", - shiny::sidebarLayout( - shiny::sidebarPanel( - shiny::radioButtons("formatReport", - "Format for nedlasting", - list(PDF = "pdf", HTML = "html"), - inline = FALSE), - shiny::downloadButton("downloadReport", "Last ned!") - ), - shiny::mainPanel( - shiny::htmlOutput("exReport", inline = TRUE) - ) + # shiny::tabPanel( + # "Eksempelrapport", + # shiny::sidebarLayout( + # shiny::sidebarPanel( + # shiny::radioButtons("formatReport", + # "Format for nedlasting", + # list(PDF = "pdf", HTML = "html"), + # inline = FALSE), + # shiny::downloadButton("downloadReport", "Last ned!") + # ), + # shiny::mainPanel( + # shiny::htmlOutput("exReport", inline = TRUE) + # ) + # + # ) + # ), - ) - ), + # shiny::tabPanel( + # "Abonnement", + # shiny::sidebarLayout( + # shiny::sidebarPanel( + # rapbase::autoReportInput("norspisSubscription") + # ), + # shiny::mainPanel( + # rapbase::autoReportUI("norspisSubscription") + # ) + # ) + # ), shiny::tabPanel( - "Abonnement", - shiny::sidebarLayout( - shiny::sidebarPanel( - rapbase::autoReportInput("norspisSubscription") - ), - shiny::mainPanel( - rapbase::autoReportUI("norspisSubscription") - ) - ) + "Indikatorer", + norspis::indikatorfig_UI(id = "indikatorfig_id") ), shiny::tabPanel( @@ -71,19 +76,19 @@ appUi <- function() { shiny::navbarMenu( "Verkt\u00f8y", - shiny::tabPanel( - "Utsending", - shiny::sidebarLayout( - shiny::sidebarPanel( - rapbase::autoReportFormatInput("norspisDispatchFormat"), - rapbase::autoReportOrgInput("norspisDispatchOrg"), - rapbase::autoReportInput("norspisDispatch") - ), - shiny::mainPanel( - rapbase::autoReportUI("norspisDispatch") - ) - ) - ), + # shiny::tabPanel( + # "Utsending", + # shiny::sidebarLayout( + # shiny::sidebarPanel( + # rapbase::autoReportFormatInput("norspisDispatchFormat"), + # rapbase::autoReportOrgInput("norspisDispatchOrg"), + # rapbase::autoReportInput("norspisDispatch") + # ), + # shiny::mainPanel( + # rapbase::autoReportUI("norspisDispatch") + # ) + # ) + # ), shiny::tabPanel( "Bruksstatistikk", diff --git a/R/modul_indikatorer.R b/R/modul_indikatorer.R new file mode 100644 index 0000000..84b144a --- /dev/null +++ b/R/modul_indikatorer.R @@ -0,0 +1,144 @@ +#' UI-modul for indikatorfigurer i Norspis sin shiny-app på Rapporteket +#' +#' Kun til bruk i Shiny +#' +#' @export +#' +indikatorfig_UI <- function(id){ + ns <- shiny::NS(id) + + shiny::sidebarLayout( + sidebarPanel( + width = 3, + id = ns("id_indikator_panel"), + selectInput( + inputId = ns("valgtVar"), label = "Velg indikator", + choices = c("Symptomreduksjon EDEQ, voksne" = "norspis_KI1_symptomreduksjon_EDEQ_V", + "Symptomreduksjon EDEQ, barn/ungdom" = "norspis_KI1_symptomreduksjon_EDEQ_BU", + "Bedring i livskvalitet, voksne" = "norspis_KI2_funksjonsbedring_CIA_V", + "Bedring i livskvalitet, barn/ungdom" = "norspis_KI2_funksjonsbedring_CIA_BU", + "Endring i undervektsstatus" = "norspis_KI3_undervektsreduksjon", + "Utfallsvurdering, voksne" = "norspis_KI4_utfallsvurdering_V", + "Utfallsvurdering, barn/ungdom" = "norspis_KI4_utfallsvurdering_BU", + "Familie/venner involvert i behandlingen, voksne" = "norspis_involvering_famlie_venner_V", + "Familie/venner involvert i behandlingen, barn/ungdom" = "norspis_involvering_famlie_venner_BU", + "Blodprøver ved start, undervektige" = "norspis_undervekt_prodprove", + "Blodprøver ved start, oppkast" = "norspis_oppkast_prodprove", + "Beintetthetsmåling ved start, undervektige voksne" = "norspis_beintetthetsmaling_V", + "Beintetthetsmåling ved start, undervektige barn/ungdom" = "norspis_beintetthetsmaling_BU" + ) + ), + uiOutput(outputId = ns('tilAar_ui')), + 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(id = ns("tab"), + tabPanel("Figur", value = "fig", + plotOutput(ns("Figur1"), height="auto"), + downloadButton(ns("lastNedBilde"), "Last ned figur")), + tabPanel("Tabell", value = "tab", + DT::DTOutput(ns("tabell")) + ) + ) + ) + ) + +} + +#' Server-modul for indikatorfigurer i Norspis sin shiny-app på Rapporteket +#' +#' Kun til bruk i Shiny +#' +#' @export +#' +indikatorfigServer <- function(id, RegData, userRole, hvd_session){ + moduleServer( + id, + + function(input, output, session) { + + observeEvent(input$reset_input, { + shinyjs::reset("id_indikator_panel") + }) + + output$tilAar_ui <- renderUI({ + ns <- session$ns + selectInput(inputId = ns("tilAar"), label = "T.o.m. år", + choices = rev((min(RegData$StartAar)+2):max(RegData$StartAar))) + }) + + + tabellReager <- reactive({ + indikatordata <- norspis::norspisBeregnIndikator(RegData = RegData, + ind_id = input$valgtVar) + TabellData <- indikatordata$indikator + TabellData <- TabellData[which(TabellData$year <= as.numeric(req(input$tilAar))), ] + indikatordata$indikator <- TabellData + indikatordata + }) + + output$Figur1 <- renderPlot({ + norspis::norspisPlotIndikator(indikatordata = tabellReager(), + graaUt=NA, outfile = '', + lavDG=NA, inkl_konf=F) + }, width = 700, height = 700) + + # output$tabell <- DT::renderDT({ + # indikatordata = tabellReager() + # tabell <- indikatordata$indikator %>% + # dplyr::group_by(SykehusNavn, year) %>% + # dplyr::summarise(Antall = sum(var), + # N = sum(denominator), + # Andel = Antall/N*100) + # # antall <- + # # + # # %>% + # # janitor::adorn_totals() + # + # }) + + output$tabell <- DT::renderDataTable( + server = FALSE, + DT::datatable( + {tabellReager()$indikator %>% + dplyr::group_by(SykehusNavn, year) %>% + dplyr::summarise(Antall = sum(var), + N = sum(denominator), + Andel = Antall/N*100)}, + + extensions = 'Buttons', + rownames = FALSE, + + options = list( + paging = TRUE, + pageLength = 40, + searching = TRUE, + fixedColumns = TRUE, + autoWidth = TRUE, + ordering = TRUE, + dom = 'tB', + buttons = c('copy', 'csv', 'excel') + ), + + class = "display" + ) %>% DT::formatRound(columns = "Andel", digits = 1) + ) + + output$lastNedBilde <- downloadHandler( + filename = function(){ + paste0(input$valgtVar, Sys.time(), '.', input$bildeformat) + }, + + content = function(file){ + norspis::norspisPlotIndikator(indikatordata = tabellReager(), + graaUt=NA, lavDG=NA, inkl_konf=F, + outfile = file) + } + ) + + } + ) +} diff --git a/R/norspisBeregnIndikator.R b/R/norspisBeregnIndikator.R index a73d31d..b13c0b2 100644 --- a/R/norspisBeregnIndikator.R +++ b/R/norspisBeregnIndikator.R @@ -9,30 +9,26 @@ norspisBeregnIndikator <- function(RegData, ind_id = "norspis_KI1_symptomreduksj terskel=5 minstekrav = NA maal = NA - skriftStr=1.0 - pktStr=1.4 legPlass="top" minstekravTxt="Min." maalTxt="Mål" decreasing=F - width=800 - height=700 maalretn="hoy" if (ind_id == "norspis_KI1_symptomreduksjon_EDEQ_V") { Indikator <- RegData %>% - filter(!is.na(EDEQ60GlobalScore_start), + dplyr::filter(!is.na(EDEQ60GlobalScore_start), !is.na(EDEQ60GlobalScore_slutt), Over18_start) %>% - mutate(year = format(RegHendelsesdato_slutt, "%Y") %>% as.numeric()) %>% - mutate(var = ifelse((EDEQ60GlobalScore_start-EDEQ60GlobalScore_slutt) >= 0.9, + dplyr::mutate(year = format(RegHendelsesdato_slutt, "%Y") %>% as.numeric()) %>% + dplyr::mutate(var = ifelse((EDEQ60GlobalScore_start-EDEQ60GlobalScore_slutt) >= 0.9, 1, 0), denominator = 1) %>% - select(AvdRESH, year, var, denominator, Kortnavn, AvdBUV_start) %>% - rename(SykehusNavn = Kortnavn) %>% - mutate(ind_id = ind_id, + dplyr::select(AvdRESH, year, var, denominator, Kortnavn, AvdBUV_start) %>% + dplyr::rename(SykehusNavn = Kortnavn) %>% + dplyr::mutate(ind_id = ind_id, context = "caregiver") maal <- 50 tittel <- c("Andelen med klinisk signifikant", "bedring i spiseforstyrrelsessymptomer (V)") @@ -41,16 +37,16 @@ norspisBeregnIndikator <- function(RegData, ind_id = "norspis_KI1_symptomreduksj if (ind_id == "norspis_KI1_symptomreduksjon_EDEQ_BU") { Indikator <- RegData %>% - filter(!is.na(EDEQ60GlobalScore_start), + dplyr::filter(!is.na(EDEQ60GlobalScore_start), !is.na(EDEQ60GlobalScore_slutt), !Over18_start) %>% - mutate(year = format(RegHendelsesdato_slutt, "%Y") %>% as.numeric()) %>% - mutate(var = ifelse((EDEQ60GlobalScore_start-EDEQ60GlobalScore_slutt) >= 0.9, + dplyr::mutate(year = format(RegHendelsesdato_slutt, "%Y") %>% as.numeric()) %>% + dplyr::mutate(var = ifelse((EDEQ60GlobalScore_start-EDEQ60GlobalScore_slutt) >= 0.9, 1, 0), denominator = 1) %>% - select(AvdRESH, year, var, denominator, Kortnavn, AvdBUV_start) %>% - rename(SykehusNavn = Kortnavn) %>% - mutate(ind_id = ind_id, + dplyr::select(AvdRESH, year, var, denominator, Kortnavn, AvdBUV_start) %>% + dplyr::rename(SykehusNavn = Kortnavn) %>% + dplyr::mutate(ind_id = ind_id, context = "caregiver") maal <- 70 tittel <- c("Andelen med klinisk signifikant", "bedring i spiseforstyrrelsessymptomer (BU)") @@ -60,16 +56,16 @@ norspisBeregnIndikator <- function(RegData, ind_id = "norspis_KI1_symptomreduksj if (ind_id == "norspis_KI2_funksjonsbedring_CIA_V") { Indikator <- RegData %>% - filter(!is.na(CIA30GlobalScore_slutt), + dplyr::filter(!is.na(CIA30GlobalScore_slutt), !is.na(CIA30GlobalScore_start), Over18_start) %>% - mutate(year = format(RegHendelsesdato_slutt, "%Y") %>% as.numeric()) %>% - mutate(var = ifelse((CIA30GlobalScore_start-CIA30GlobalScore_slutt) >= 7, + dplyr::mutate(year = format(RegHendelsesdato_slutt, "%Y") %>% as.numeric()) %>% + dplyr::mutate(var = ifelse((CIA30GlobalScore_start-CIA30GlobalScore_slutt) >= 7, 1, 0), denominator = 1) %>% - select(AvdRESH, year, var, denominator, Kortnavn, AvdBUV_start) %>% - rename(SykehusNavn = Kortnavn) %>% - mutate(ind_id = ind_id, + dplyr::select(AvdRESH, year, var, denominator, Kortnavn, AvdBUV_start) %>% + dplyr::rename(SykehusNavn = Kortnavn) %>% + dplyr::mutate(ind_id = ind_id, context = "caregiver") maal <- 50 tittel <- c("Andelen med bedring i", "funksjon/livskvalitet (V)") @@ -78,16 +74,16 @@ norspisBeregnIndikator <- function(RegData, ind_id = "norspis_KI1_symptomreduksj if (ind_id == "norspis_KI2_funksjonsbedring_CIA_BU") { Indikator <- RegData %>% - filter(!is.na(CIA30GlobalScore_slutt), + dplyr::filter(!is.na(CIA30GlobalScore_slutt), !is.na(CIA30GlobalScore_start), !Over18_start) %>% - mutate(year = format(RegHendelsesdato_slutt, "%Y") %>% as.numeric()) %>% - mutate(var = ifelse((CIA30GlobalScore_start-CIA30GlobalScore_slutt) >= 7, + dplyr::mutate(year = format(RegHendelsesdato_slutt, "%Y") %>% as.numeric()) %>% + dplyr::mutate(var = ifelse((CIA30GlobalScore_start-CIA30GlobalScore_slutt) >= 7, 1, 0), denominator = 1) %>% - select(AvdRESH, year, var, denominator, Kortnavn, AvdBUV_start) %>% - rename(SykehusNavn = Kortnavn) %>% - mutate(ind_id = ind_id, + dplyr::select(AvdRESH, year, var, denominator, Kortnavn, AvdBUV_start) %>% + dplyr::rename(SykehusNavn = Kortnavn) %>% + dplyr::mutate(ind_id = ind_id, context = "caregiver") maal <- 70 tittel <- c("Andelen med bedring i", "funksjon/livskvalitet (BU)") @@ -98,19 +94,19 @@ norspisBeregnIndikator <- function(RegData, ind_id = "norspis_KI1_symptomreduksj if (ind_id == "norspis_KI3_undervektsreduksjon") { Indikator <- RegData %>% - mutate(bmi = ifelse(!is.na(MedIsoBMIBGS_start), + dplyr::mutate(bmi = ifelse(!is.na(MedIsoBMIBGS_start), MedIsoBMIBGS_start, MedBMI_start), bmi_slutt = ifelse(!is.na(MedIsoBMIBGS_slutt), MedIsoBMIBGS_slutt, MedBMI_slutt)) %>% - filter(!is.na(bmi), + dplyr::filter(!is.na(bmi), bmi < 18.5, !is.na(bmi_slutt)) %>% - mutate(var = ifelse(bmi_slutt >= 18.5, 1, 0), + dplyr::mutate(var = ifelse(bmi_slutt >= 18.5, 1, 0), denominator = 1, year = format(RegHendelsesdato_slutt, "%Y") %>% as.numeric()) %>% - select(AvdRESH, year, var, denominator, Kortnavn, AvdBUV_start) %>% - rename(SykehusNavn = Kortnavn) %>% - mutate(ind_id = ind_id, + dplyr::select(AvdRESH, year, var, denominator, Kortnavn, AvdBUV_start) %>% + dplyr::rename(SykehusNavn = Kortnavn) %>% + dplyr::mutate(ind_id = ind_id, context = "caregiver") maal <- 60 tittel <- c("Andelen med endring av undervektstatus", "til ikke undervektig ved slutt") @@ -120,48 +116,48 @@ norspisBeregnIndikator <- function(RegData, ind_id = "norspis_KI1_symptomreduksj if (ind_id == "norspis_KI4_utfallsvurdering_V") { Indikator <- RegData %>% - filter(!is.na(PT03Utfallsvurd), + dplyr::filter(!is.na(PT03Utfallsvurd), PT03Utfallsvurd != 9, Over18_start) %>% - mutate(var = ifelse(PT03Utfallsvurd %in% 1:2, 1, 0), + dplyr::mutate(var = ifelse(PT03Utfallsvurd %in% 1:2, 1, 0), denominator = 1, year = format(RegHendelsesdato_slutt, "%Y") %>% as.numeric()) %>% - select(AvdRESH, year, var, denominator, Kortnavn, AvdBUV_start) %>% - rename(SykehusNavn = Kortnavn) %>% - mutate(ind_id = ind_id, + dplyr::select(AvdRESH, year, var, denominator, Kortnavn, AvdBUV_start) %>% + dplyr::rename(SykehusNavn = Kortnavn) %>% + dplyr::mutate(ind_id = ind_id, context = "caregiver") maal <- 50 - tittel <- c("Andelen som rapporterer Klar bedring", "eller Ikke noe problem lenger (V)") + tittel <- c("Andelen som rapporterer \"Klar bedring\"", "eller \"Ikke noe problem lenger\" (V)") } if (ind_id == "norspis_KI4_utfallsvurdering_BU") { Indikator <- RegData %>% - filter(!is.na(PT03Utfallsvurd), + dplyr::filter(!is.na(PT03Utfallsvurd), PT03Utfallsvurd != 9, !Over18_start) %>% - mutate(var = ifelse(PT03Utfallsvurd %in% 1:2, 1, 0), + dplyr::mutate(var = ifelse(PT03Utfallsvurd %in% 1:2, 1, 0), denominator = 1, year = format(RegHendelsesdato_slutt, "%Y") %>% as.numeric()) %>% - select(AvdRESH, year, var, denominator, Kortnavn, AvdBUV_start) %>% - rename(SykehusNavn = Kortnavn) %>% - mutate(ind_id = ind_id, + dplyr::select(AvdRESH, year, var, denominator, Kortnavn, AvdBUV_start) %>% + dplyr::rename(SykehusNavn = Kortnavn) %>% + dplyr::mutate(ind_id = ind_id, context = "caregiver") maal <- 70 - tittel <- c("Andelen som rapporterer Klar bedring", "eller Ikke noe problem lenger (BU)") + tittel <- c("Andelen som rapporterer \"Klar bedring\"", "eller \"Ikke noe problem lenger\" (BU)") } if (ind_id == "norspis_involvering_famlie_venner_BU") { Indikator <- RegData %>% - filter(!is.na(PT02BleInvolv) & PT02BleInvolv!= 9, + dplyr::filter(!is.na(PT02BleInvolv) & PT02BleInvolv!= 9, !Over18_start) %>% - mutate(year = format(RegHendelsesdato_slutt, "%Y") %>% as.numeric(), + dplyr::mutate(year = format(RegHendelsesdato_slutt, "%Y") %>% as.numeric(), var = PT02BleInvolv, denominator = 1) %>% - select(AvdRESH, year, var, denominator, Kortnavn, AvdBUV_start) %>% - rename(SykehusNavn = Kortnavn) %>% - mutate(ind_id = ind_id, + dplyr::select(AvdRESH, year, var, denominator, Kortnavn, AvdBUV_start) %>% + dplyr::rename(SykehusNavn = Kortnavn) %>% + dplyr::mutate(ind_id = ind_id, context = "caregiver") maal <- 100 tittel <- c("Andelen som rapporterer at familie og/eller", "venner ble involvert i behandlingen (BU)") @@ -170,15 +166,15 @@ norspisBeregnIndikator <- function(RegData, ind_id = "norspis_KI1_symptomreduksj if (ind_id == "norspis_involvering_famlie_venner_V") { Indikator <- RegData %>% - filter(PT01OnsketInvolv == 1, + dplyr::filter(PT01OnsketInvolv == 1, !is.na(PT02BleInvolv) & PT02BleInvolv != 9, Over18_start) %>% - mutate(year = format(RegHendelsesdato_slutt, "%Y") %>% as.numeric(), + dplyr::mutate(year = format(RegHendelsesdato_slutt, "%Y") %>% as.numeric(), var = PT02BleInvolv, denominator = 1) %>% - select(AvdRESH, year, var, denominator, Kortnavn, AvdBUV_start) %>% - rename(SykehusNavn = Kortnavn) %>% - mutate(ind_id = ind_id, + dplyr::select(AvdRESH, year, var, denominator, Kortnavn, AvdBUV_start) %>% + dplyr::rename(SykehusNavn = Kortnavn) %>% + dplyr::mutate(ind_id = ind_id, context = "caregiver") maal <- 100 tittel <- c("Andelen som rapporterer at familie og/eller", "venner ble involvert i behandlingen (V)") @@ -187,17 +183,17 @@ norspisBeregnIndikator <- function(RegData, ind_id = "norspis_KI1_symptomreduksj if (ind_id == "norspis_undervekt_prodprove") { Indikator <- RegData %>% - mutate(bmi = ifelse(!is.na(MedIsoBMIBGS_start), + dplyr::mutate(bmi = ifelse(!is.na(MedIsoBMIBGS_start), MedIsoBMIBGS_start, MedBMI_start)) %>% - filter(!is.na(bmi), + dplyr::filter(!is.na(bmi), bmi < 18.5, MedBlodprove_start %in% c(0,1)) %>% - mutate(var = MedBlodprove_start, + dplyr::mutate(var = MedBlodprove_start, denominator = 1, year = format(RegHendelsesdato_start, "%Y") %>% as.numeric()) %>% - select(AvdRESH, year, var, denominator, Kortnavn, AvdBUV_start) %>% - rename(SykehusNavn = Kortnavn) %>% - mutate(ind_id = ind_id, + dplyr::select(AvdRESH, year, var, denominator, Kortnavn, AvdBUV_start) %>% + dplyr::rename(SykehusNavn = Kortnavn) %>% + dplyr::mutate(ind_id = ind_id, context = "caregiver") maal <- 90 tittel <- c("Andelen undervektige pasienter (BMI < 18,5) ved ", "start, der det er tatt blodprøver ved start.") @@ -206,14 +202,14 @@ norspisBeregnIndikator <- function(RegData, ind_id = "norspis_KI1_symptomreduksj if (ind_id == "norspis_oppkast_prodprove") { Indikator <- RegData %>% - filter(!is.na(EDE16GgrOppkast_start), + dplyr::filter(!is.na(EDE16GgrOppkast_start), MedBlodprove_start %in% c(0,1)) %>% - mutate(var = MedBlodprove_start, + dplyr::mutate(var = MedBlodprove_start, denominator = 1, year = format(RegHendelsesdato_start, "%Y") %>% as.numeric()) %>% - select(AvdRESH, year, var, denominator, Kortnavn, AvdBUV_start) %>% - rename(SykehusNavn = Kortnavn) %>% - mutate(ind_id = ind_id, + dplyr::select(AvdRESH, year, var, denominator, Kortnavn, AvdBUV_start) %>% + dplyr::rename(SykehusNavn = Kortnavn) %>% + dplyr::mutate(ind_id = ind_id, context = "caregiver") maal <- 90 tittel <- c("Andelen med alvorlig eller ekstremt oppkast ved", "start, der det er tatt blodprøver ved start.") @@ -222,22 +218,22 @@ norspisBeregnIndikator <- function(RegData, ind_id = "norspis_KI1_symptomreduksj if (ind_id == "norspis_beintetthetsmaling_V") { Indikator <- RegData %>% - mutate(bmi = ifelse(!is.na(MedIsoBMIBGS_start), + dplyr::mutate(bmi = ifelse(!is.na(MedIsoBMIBGS_start), MedIsoBMIBGS_start, MedBMI_start), BeintetthMaling = ifelse(MedBeintetthMaling_start == 1 | MedBeintetthMaling_slutt == 1, 1, 0)) %>% - filter(Over18_start, + dplyr::filter(Over18_start, bmi < 18.5, MedBeintetthMaling_start %in% 0:1 | MedBeintetthMaling_slutt %in% 0:1) %>% - mutate(BeintetthMaling = ifelse(is.na(BeintetthMaling), 0, BeintetthMaling)) %>% - mutate(var = BeintetthMaling, + dplyr::mutate(BeintetthMaling = ifelse(is.na(BeintetthMaling), 0, BeintetthMaling)) %>% + dplyr::mutate(var = BeintetthMaling, denominator = 1, year = format(RegHendelsesdato_start, "%Y") %>% as.numeric()) %>% - select(AvdRESH, year, var, denominator, Kortnavn, AvdBUV_start) %>% - rename(SykehusNavn = Kortnavn) %>% - mutate(ind_id = ind_id, + dplyr::select(AvdRESH, year, var, denominator, Kortnavn, AvdBUV_start) %>% + dplyr::rename(SykehusNavn = Kortnavn) %>% + dplyr::mutate(ind_id = ind_id, context = "caregiver") maal <- 90 tittel <- c("Andelen undervektige ved start der det", "oppgis at det er gjort en beintetthetsmåling (V)") @@ -246,22 +242,22 @@ norspisBeregnIndikator <- function(RegData, ind_id = "norspis_KI1_symptomreduksj if (ind_id == "norspis_beintetthetsmaling_BU") { Indikator <- RegData %>% - mutate(bmi = ifelse(!is.na(MedIsoBMIBGS_start), + dplyr::mutate(bmi = ifelse(!is.na(MedIsoBMIBGS_start), MedIsoBMIBGS_start, MedBMI_start), BeintetthMaling = ifelse(MedBeintetthMaling_start == 1 | MedBeintetthMaling_slutt == 1, 1, 0)) %>% - filter(!Over18_start, + dplyr::filter(!Over18_start, bmi < 18.5, MedBeintetthMaling_start %in% 0:1 | MedBeintetthMaling_slutt %in% 0:1) %>% - mutate(BeintetthMaling = ifelse(is.na(BeintetthMaling), 0, BeintetthMaling)) %>% - mutate(var = BeintetthMaling, + dplyr::mutate(BeintetthMaling = ifelse(is.na(BeintetthMaling), 0, BeintetthMaling)) %>% + dplyr::mutate(var = BeintetthMaling, denominator = 1, year = format(RegHendelsesdato_start, "%Y") %>% as.numeric()) %>% - select(AvdRESH, year, var, denominator, Kortnavn, AvdBUV_start) %>% - rename(SykehusNavn = Kortnavn) %>% - mutate(ind_id = ind_id, + dplyr::select(AvdRESH, year, var, denominator, Kortnavn, AvdBUV_start) %>% + dplyr::rename(SykehusNavn = Kortnavn) %>% + dplyr::mutate(ind_id = ind_id, context = "caregiver") maal <- 90 tittel <- c("Andelen undervektige ved start der det", "oppgis at det er gjort en beintetthetsmåling (BU)") @@ -270,10 +266,10 @@ norspisBeregnIndikator <- function(RegData, ind_id = "norspis_KI1_symptomreduksj indikatordata <- list(indikator=Indikator, tittel=tittel, terskel=terskel, - minstekrav=minstekrav, maal=maal, skriftStr=skriftStr, - pktStr=pktStr, legPlass=legPlass, minstekravTxt=minstekravTxt, + minstekrav=minstekrav, maal=maal, legPlass=legPlass, + minstekravTxt=minstekravTxt, maalTxt=maalTxt, decreasing=decreasing, - width=width, height=height, maalretn=maalretn) + maalretn=maalretn) } diff --git a/R/norspisLesOgProsesser.R b/R/norspisLesOgProsesser.R index e055a85..309e2b7 100644 --- a/R/norspisLesOgProsesser.R +++ b/R/norspisLesOgProsesser.R @@ -62,7 +62,9 @@ norspisLesOgProsesser <- function() { RegData <- merge(RegData_start, RegData_slutt, by.x = "ForlopsID", by.y = "RegTilhorendeStartReg", suffixes = c("_start", "_slutt"), - all.x = TRUE) + all.x = TRUE) %>% + dplyr::mutate(StartAar = format(RegHendelsesdato_start, "%Y") %>% as.numeric(), + SluttAar = format(RegHendelsesdato_slutt, "%Y") %>% as.numeric()) ## Foreløpig, velg én sluttregistrering der det finnes flere RegData <- RegData[match(unique(RegData$ForlopsID), RegData$ForlopsID), ] diff --git a/R/norspisPlotIndikator.R b/R/norspisPlotIndikator.R index 55bd815..8632d09 100644 --- a/R/norspisPlotIndikator.R +++ b/R/norspisPlotIndikator.R @@ -9,21 +9,18 @@ #' @export #' norspisPlotIndikator <- function(indikatordata, graaUt=NA, outfile = '', - lavDG=NA, inkl_konf=F) + lavDG=NA, inkl_konf=F, width=800, + height=700, skriftStr=1.0, pktStr=1.4) { indikator=indikatordata$indikator tittel=indikatordata$tittel terskel=indikatordata$terskel minstekrav=indikatordata$minstekrav maal=indikatordata$maal - skriftStr=indikatordata$skriftStr - pktStr=indikatordata$pktStr legPlass=indikatordata$legPlass minstekravTxt=indikatordata$minstekravTxt maalTxt=indikatordata$maalTxt decreasing=indikatordata$decreasing - width=indikatordata$width - height=indikatordata$height maalretn=indikatordata$maalretn indikator <- indikator[indikator$year > max(indikator$year)-3, ] # behold bare siste 3 år diff --git a/data-raw/mapping_og_variabelutvalg.R b/data-raw/mapping_og_variabelutvalg.R new file mode 100644 index 0000000..941c5f2 --- /dev/null +++ b/data-raw/mapping_og_variabelutvalg.R @@ -0,0 +1,233 @@ +# Denne filen lager noen datasett som er nødvendig i preprosesseringen + +# resh_voksen_barn <- +# readxl::read_xlsx("~/mydata/norspis/RESH, navn, BUV, org.nr. 18.12.23.xlsx", +# sheet = 1) +# resh_voksen_barn <- resh_voksen_barn[match(unique(resh_voksen_barn$RESH), +# resh_voksen_barn$RESH), ] %>% +# rename(AvdRESH = RESH, +# Kortnavn = `Kortnavn i årsrapporten`, +# AvdBUV = `Barn/unge (BU) eller voksen (V)`, +# orgnr = Org.nr.) %>% +# select(AvdRESH, Kortnavn, AvdBUV, orgnr) +# +# write.csv(resh_voksen_barn, "~/mydata/norspis/resh_voksen_barn.csv", row.names = F) + +resh_voksen_barn <- + tibble::tribble( + ~AvdRESH, ~Kortnavn, ~AvdBUV, ~orgnr, + 106854,"NKS Jæren DPS","V",333333, + 4210626,"HSYK: Allm.pol. BU Mosjøen","BU",875326562, + 4210303,"ST. OLAVS: Spes.pol. V","V",883974832, + 4208548,"DIAKONSYK: Allm.pol. V","V",974116804, + 700698,"UNN: Reg.døgn BU","BU",974547031, + 707383,"AHUS: EFS Spes.pol. V","V",974705168, + 4207041,"AHUS: EFS Spes.døgn V","V",974705168, + 105806,"HNT: Reg. V","V",974754142, + 700821,"NLSH: Reg. V","V",974795345, + 4210562,"NLSH: Spes.pol. BU","BU",975296008, + 4210825,"HSYK: Allm.pol. V Mosjøen","V",975326551, + 4204191,"CAPIO: Spes.døgn BU","BU",980524493, + 4208300,"SIHF: Spes.døgn V","V",983971709, + 4204275,"SOHF: Spes.døgn V","V",983971768, + 4207697,"HNT: MHOBY","V",983974791, + 102152,"HSYK: Allm.pol. V Sandnessjøen","V",983974929, + 102154,"HSYK: Allm.pol. BU Sandnessjøen","BU",983974929, + 104083,"SSHF: Spes.døgn V","V",983975240, + 105008,"SSHF: Allm.pol. V Arendal/Froland","V",983975240, + 108462,"SSHF Allm.pol. V Solvang","V",983975240, + 104364,"SIV: Spis.pol. V","V",983975259, + 4209009,"SIV: Spes.pol. BU","BU",983975259, + 109979,"OUS: Reg. BU","BU",987547243, + 107026,"HB: Reg. V","V",991992677, + 110361,"OUS: Spes.pol. V","V",998158923) + + + +# variabeloversikt <- readxl::read_xlsx("~/mydata/norspis/Variabler i forløp v2.xlsx", +# sheet = 1) %>% +# rename(status = `Start/slutt/utgått`, +# OppfolgingNum = `Også i tabellen OppfolgingNum`) %>% +# mutate(status = case_when(status == "Ikke slutt" ~ "IkkeSlutt", +# status == "Ikke start" ~ "IkkeStart", +# status == "Utgått" ~ "Utgaatt")) +# write.csv(variabeloversikt, "~/mydata/norspis/variabeloversikt.csv", row.names = F) + +variabeloversikt <- + tibble::tribble( + ~Tabell, ~status, ~Variabelnavn, ~OppfolgingNum, + "AlleScorer","IkkeStart","PasOppErfaring","Nei", + "AlleScorer","IkkeStart","PasOppTilfredshet","Nei", + "AlleScorer","IkkeStart","PasOppTilgjengelighet","Nei", + "AlleScorer","IkkeStart","PasOppSikkerhet","Nei", + "AlleScorer","Utgaatt","RAND36FysFunk","Nei", + "AlleScorer","Utgaatt","RAND36RollebegFys","Nei", + "AlleScorer","Utgaatt","RAND36RollebegEmo","Nei", + "AlleScorer","Utgaatt","RAND36Tretthet","Nei", + "AlleScorer","Utgaatt","RAND36MentalHelse","Nei", + "AlleScorer","Utgaatt","RAND36SosialFunk","Nei", + "AlleScorer","Utgaatt","RAND36Smerte","Nei", + "AlleScorer","Utgaatt","RAND36GenHelse","Nei", + "AlleScorer","Utgaatt","RAND36EndringHelse","Nei", + "AlleScorer","Utgaatt","HoNOSSumScore","Nei", + "AlleScorer","Utgaatt","HoNOSSnittScore","Nei", + "AlleScorer","Utgaatt","HoNOSAntSvar","Nei", + "AlleScorer","Utgaatt","HoNOSCATotalSum","Nei", + "AlleScorer","Utgaatt","HoNOSCATotalSnitt","Nei", + "AlleScorer","Utgaatt","HoNOSCADelASum","Nei", + "AlleScorer","Utgaatt","HoNOSCADelASnitt","Nei", + "AlleScorer","Utgaatt","HoNOSCADelBSum","Nei", + "AlleScorer","Utgaatt","HoNOSCADelBSnitt","Nei", + "AlleScorer","Utgaatt","HoNOSCATotalSvar","Nei", + "AlleScorer","Utgaatt","HoNOSCADelASvar","Nei", + "AlleScorer","Utgaatt","HoNOSCADelBSvar","Nei", + "EnkeltLeddNum","IkkeStart","DiagBUAkse1","Nei", + "EnkeltLeddNum","IkkeStart","DiagBUAkse2","Nei", + "EnkeltLeddNum","IkkeStart","DiagBUAkse3","Nei", + "EnkeltLeddNum","IkkeStart","DiagBUAkse4","Nei", + "EnkeltLeddNum","IkkeStart","DiagBUAkse5","Nei", + "EnkeltLeddNum","IkkeStart","DiagBUAkse6","Nei", + "EnkeltLeddNum","IkkeStart","DiagBUDSM5utfylles","Nei", + "EnkeltLeddNum","IkkeStart","DiagBUDSM5Hoved","Nei", + "EnkeltLeddNum","IkkeStart","DiagBUDSM5ANSub","Nei", + "EnkeltLeddNum","IkkeStart","DiagBUDSM5AnnenSub","Nei", + "EnkeltLeddNum","IkkeStart","DiagBUDSM5ANAlvGrd","Nei", + "EnkeltLeddNum","IkkeStart","DiagBUDSM5BNAlvGrd","Nei", + "EnkeltLeddNum","IkkeStart","DiagBUDSM5OverspisAlvGrd","Nei", + "EnkeltLeddNum","IkkeStart","DiagBUForstLukketAV","Nei", + "EnkeltLeddNum","IkkeStart","DiagBUForstLukket","Nei", + "EnkeltLeddNum","IkkeStart","DiagVSF","Nei", + "EnkeltLeddNum","IkkeStart","DiagVSomatiske","Nei", + "EnkeltLeddNum","IkkeStart","DiagVMalabsorpsjon","Nei", + "EnkeltLeddNum","IkkeStart","DiagVDiabetes","Nei", + "EnkeltLeddNum","IkkeStart","DiagVDSM5utfylles","Nei", + "EnkeltLeddNum","IkkeStart","DiagVDSM5Hoved","Nei", + "EnkeltLeddNum","IkkeStart","DiagVDSM5ANSub","Nei", + "EnkeltLeddNum","IkkeStart","DiagVDSM5AnnenSub","Nei", + "EnkeltLeddNum","IkkeStart","DiagVDSM5ANAlvGrd","Nei", + "EnkeltLeddNum","IkkeStart","DiagVDSM5BNAlvGrd","Nei", + "EnkeltLeddNum","IkkeStart","DiagVDSM5OverspisAlvGrd","Nei", + "EnkeltLeddNum","IkkeStart","DiagVForstLukketAV","Nei", + "EnkeltLeddNum","IkkeStart","DiagVForstLukket","Nei", + "EnkeltLeddNum","Utgaatt","H01Atferd","Nei", + "EnkeltLeddNum","Utgaatt","H02Selvskade","Nei", + "EnkeltLeddNum","Utgaatt","H03Rusmisbruk","Nei", + "EnkeltLeddNum","Utgaatt","H04KognitiveProbl","Nei", + "EnkeltLeddNum","Utgaatt","H05FysiskeProbl","Nei", + "EnkeltLeddNum","Utgaatt","H06Hallusinasjoner","Nei", + "EnkeltLeddNum","Utgaatt","H07Stemningsleie","Nei", + "EnkeltLeddNum","Utgaatt","H08AndreProbl","Nei", + "EnkeltLeddNum","Utgaatt","H08aVelgTypeProbl","Nei", + "EnkeltLeddNum","Utgaatt","H09ForhAndre","Nei", + "EnkeltLeddNum","Utgaatt","H10ADLProbl","Nei", + "EnkeltLeddNum","Utgaatt","H11BoligProbl","Nei", + "EnkeltLeddNum","Utgaatt","H12YrkeProbl","Nei", + "EnkeltLeddNum","Utgaatt","HForstLukketAV","Nei", + "EnkeltLeddNum","Utgaatt","HForstLukket","Nei", + "EnkeltLeddNum","Utgaatt","HCA01Atferd","Nei", + "EnkeltLeddNum","Utgaatt","HCA02Aktivitetsniva","Nei", + "EnkeltLeddNum","Utgaatt","HCA03Selvskade","Nei", + "EnkeltLeddNum","Utgaatt","HCA04Rusmisbruk","Nei", + "EnkeltLeddNum","Utgaatt","HCA05SkoleSprak","Nei", + "EnkeltLeddNum","Utgaatt","HCA06FysiskProblem","Nei", + "EnkeltLeddNum","Utgaatt","HCA07Hallusinasjoner","Nei", + "EnkeltLeddNum","Utgaatt","HCA08SomatiskSymp","Nei", + "EnkeltLeddNum","Utgaatt","HCA09EmosjonelleSymp","Nei", + "EnkeltLeddNum","Utgaatt","HCA10JevnaldrProbl","Nei", + "EnkeltLeddNum","Utgaatt","HCA11Egenomsorg","Nei", + "EnkeltLeddNum","Utgaatt","HCA12FamilieProbl","Nei", + "EnkeltLeddNum","Utgaatt","HCASkoleframmote","Nei", + "EnkeltLeddNum","Utgaatt","HCADelButfylles","Nei", + "EnkeltLeddNum","Utgaatt","HCA14ProblKunnskap","Nei", + "EnkeltLeddNum","Utgaatt","HCA15Mangelinfo","Nei", + "EnkeltLeddNum","Utgaatt","HCAForstLukketAV","Nei", + "EnkeltLeddNum","Utgaatt","HCAForstLukket","Nei", + "EnkeltLeddNum","IkkeStart","POTilfredsBesvart","Nei", + "EnkeltLeddNum","IkkeStart","POArsakIkkeBesvart","Nei", + "EnkeltLeddNum","IkkeStart","PO01Forstod","Nei", + "EnkeltLeddNum","IkkeStart","PO02Tillit","Nei", + "EnkeltLeddNum","IkkeStart","PO03InfoDiagnose","Nei", + "EnkeltLeddNum","IkkeStart","PO04Tilpasset","Nei", + "EnkeltLeddNum","IkkeStart","PO05Involvert","Nei", + "EnkeltLeddNum","IkkeStart","PO06Organisert","Nei", + "EnkeltLeddNum","IkkeStart","PO07Tilfredsstillende","Nei", + "EnkeltLeddNum","IkkeStart","PO08Tilgjengelighet","Nei", + "EnkeltLeddNum","IkkeStart","PO09Utbytte","Nei", + "EnkeltLeddNum","IkkeStart","PO10Pasientsikkerhet","Nei", + "EnkeltLeddNum","IkkeStart","POLukketViaEproms","Nei", + "EnkeltLeddNum","IkkeStart","POForstLukketAV","Nei", + "EnkeltLeddNum","IkkeStart","POForstLukket","Nei", + "EnkeltLeddNum","IkkeSlutt","BTilfredsBesvart","Ja", + "EnkeltLeddNum","IkkeSlutt","BArsakIkkeBesvart","Ja", + "EnkeltLeddNum","IkkeSlutt","B01Sivilstatus","Nei", + "EnkeltLeddNum","IkkeSlutt","B02EgneBarn","Nei", + "EnkeltLeddNum","IkkeSlutt","B03Bosituasjon","Nei", + "EnkeltLeddNum","IkkeSlutt","B03BostatusV1_4","Ja", + "EnkeltLeddNum","IkkeSlutt","B04PabegyntUtd","Nei", + "EnkeltLeddNum","IkkeSlutt","B05FullfortUtd","Nei", + "EnkeltLeddNum","IkkeSlutt","B04UtdanningV1_4","Ja", + "EnkeltLeddNum","IkkeSlutt","B06Hovedaktivitet","Nei", + "EnkeltLeddNum","IkkeSlutt","B06ArbeidsstatusV1_4","Ja", + "EnkeltLeddNum","IkkeSlutt","B07Hovedinntekt","Nei", + "EnkeltLeddNum","IkkeSlutt","B08StartAldrProbl","Nei", + "EnkeltLeddNum","IkkeSlutt","B09LavestVekt","Nei", + "EnkeltLeddNum","IkkeSlutt","B09aAldrLavestVekt","Nei", + "EnkeltLeddNum","IkkeSlutt","B10HoyestVekt","Nei", + "EnkeltLeddNum","IkkeSlutt","B10aAldrHoyestVekt","Nei", + "EnkeltLeddNum","IkkeSlutt","B11FamilieSF","Nei", + "EnkeltLeddNum","IkkeSlutt","B12TidlBehSF","Nei", + "EnkeltLeddNum","IkkeSlutt","B12aPrimarhtj","Nei", + "EnkeltLeddNum","IkkeSlutt","B12aSpesialisthtj","Nei", + "EnkeltLeddNum","IkkeSlutt","B12aSpesEnhetSF","Nei", + "EnkeltLeddNum","IkkeSlutt","B12aAnnenInstans","Nei", + "EnkeltLeddNum","IkkeSlutt","B12bTidlTvangsinnl","Nei", + "EnkeltLeddNum","IkkeSlutt","B12cAldrForsteBeh","Nei", + "EnkeltLeddNum","IkkeSlutt","B12dArTilBehstart","Nei", + "EnkeltLeddNum","IkkeSlutt","B12dMndTilBehstart","Nei", + "EnkeltLeddNum","IkkeSlutt","B13MensNoenGang","Nei", + "EnkeltLeddNum","IkkeSlutt","B14MensSiste3mnd","Nei", + "EnkeltLeddNum","IkkeSlutt","B15MedPrevensjon","Nei", + "EnkeltLeddNum","IkkeSlutt","B16Gravid","Nei", + "EnkeltLeddNum","IkkeSlutt","B17FysMishandl","Nei", + "EnkeltLeddNum","IkkeSlutt","B18PsykMishandl","Nei", + "EnkeltLeddNum","IkkeSlutt","B19Overgrep","Nei", + "EnkeltLeddNum","IkkeSlutt","B20Mobbing","Nei", + "EnkeltLeddNum","IkkeSlutt","B21SelvskadTidl","Nei", + "EnkeltLeddNum","IkkeSlutt","B22SelvskadSisteAr","Nei", + "EnkeltLeddNum","IkkeSlutt","B23SelvmordFTidl","Nei", + "EnkeltLeddNum","IkkeSlutt","B24SelvmordFSisteAr","Nei", + "EnkeltLeddNum","IkkeSlutt","B25Avhengighet","Nei", + "EnkeltLeddNum","IkkeSlutt","BLukketViaEproms","Ja", + "EnkeltLeddNum","IkkeSlutt","BForstLukketAV","Ja", + "EnkeltLeddNum","IkkeSlutt","BForstLukket","Ja", + "EnkeltLeddNum","IkkeStart","PTTilfredsBesvart","Nei", + "EnkeltLeddNum","IkkeStart","PTArsakIkkeBesvart","Nei", + "EnkeltLeddNum","IkkeStart","PT01OnsketInvolv","Nei", + "EnkeltLeddNum","IkkeStart","PT02BleInvolv","Nei", + "EnkeltLeddNum","IkkeStart","PT03Utfallsvurd","Nei", + "EnkeltLeddNum","IkkeStart","PT04KontaktBrukerorg","Nei", + "EnkeltLeddNum","IkkeStart","PT05OrientertBrukerorg","Nei", + "EnkeltLeddNum","IkkeStart","PTLukketViaEproms","Nei", + "EnkeltLeddNum","IkkeStart","PTForstLukketAV","Nei", + "EnkeltLeddNum","IkkeStart","PTForstLukket","Nei", + "EnkeltLeddNum","IkkeStart","Beh2Spm1KunUtredning","Nei", + "EnkeltLeddNum","IkkeStart","Beh2Spm1Poliklinikk","Nei", + "EnkeltLeddNum","IkkeStart","Beh2Spm1Dag","Nei", + "EnkeltLeddNum","IkkeStart","Beh2Spm1Dogn","Nei", + "EnkeltLeddNum","IkkeStart","Beh2Spm2Tvang","Nei", + "EnkeltLeddNum","IkkeStart","Beh2Spm3Ernaring","Nei", + "EnkeltLeddNum","IkkeStart","Beh2Spm4Avbrudd","Nei", + "EnkeltLeddNum","IkkeStart","Beh2Spm5Arsak","Nei", + "EnkeltLeddNum","IkkeStart","Beh2Spm6Utfall","Nei", + "EnkeltLeddNum","IkkeStart","Beh2Spm7Individuell","Nei", + "EnkeltLeddNum","IkkeStart","Beh2Spm7Gruppe","Nei", + "EnkeltLeddNum","IkkeStart","Beh2Spm7Familieterapi","Nei", + "EnkeltLeddNum","IkkeStart","Beh2Spm7Flerfamilie","Nei", + "EnkeltLeddNum","IkkeStart","Beh2Spm8ManualIndividual","Nei", + "EnkeltLeddNum","IkkeStart","Beh2Spm8ManualGruppe","Nei", + "EnkeltLeddNum","IkkeStart","BehSpm8ManualFamilieterapi","Nei", + "EnkeltLeddNum","IkkeStart","Beh2Spm8ManualFlerfamilie","Nei", + "EnkeltLeddNum","IkkeStart","Beh2Spm9Oppfolging","Nei") + + +usethis::use_data(resh_voksen_barn, variabeloversikt, overwrite = TRUE) diff --git a/man/indikatorfigServer.Rd b/man/indikatorfigServer.Rd new file mode 100644 index 0000000..3b9b00e --- /dev/null +++ b/man/indikatorfigServer.Rd @@ -0,0 +1,11 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/modul_indikatorer.R +\name{indikatorfigServer} +\alias{indikatorfigServer} +\title{Server-modul for indikatorfigurer i Norspis sin shiny-app på Rapporteket} +\usage{ +indikatorfigServer(id, RegData, userRole, hvd_session) +} +\description{ +Kun til bruk i Shiny +} diff --git a/man/indikatorfig_UI.Rd b/man/indikatorfig_UI.Rd new file mode 100644 index 0000000..3fea187 --- /dev/null +++ b/man/indikatorfig_UI.Rd @@ -0,0 +1,11 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/modul_indikatorer.R +\name{indikatorfig_UI} +\alias{indikatorfig_UI} +\title{UI-modul for indikatorfigurer i Norspis sin shiny-app på Rapporteket} +\usage{ +indikatorfig_UI(id) +} +\description{ +Kun til bruk i Shiny +} diff --git a/man/norspisLesOgProsesser.Rd b/man/norspisLesOgProsesser.Rd index 3150919..b0cd017 100644 --- a/man/norspisLesOgProsesser.Rd +++ b/man/norspisLesOgProsesser.Rd @@ -6,6 +6,9 @@ \usage{ norspisLesOgProsesser() } +\value{ +norspisdata En liste med registerdata i ulike former +} \description{ Leg nødvendige tabeller for Norspis og returner en utflatet dataramme } From 136ac665c5aba6541c306ff5fa5a2a6549f00e44 Mon Sep 17 00:00:00 2001 From: kevinthon Date: Thu, 4 Jan 2024 13:07:11 +0100 Subject: [PATCH 02/10] =?UTF-8?q?klargj=C3=B8r=20versjon?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DESCRIPTION | 3 +- NAMESPACE | 2 + R/appServer.R | 4 ++ R/appUi.R | 4 ++ R/modul_datadump.R | 102 ++++++++++++++++++++++++++++++++++++ man/datadump.Rd | 16 ++++++ man/norspisPlotIndikator.Rd | 6 ++- 7 files changed, 135 insertions(+), 2 deletions(-) create mode 100644 R/modul_datadump.R create mode 100644 man/datadump.Rd diff --git a/DESCRIPTION b/DESCRIPTION index c01a003..5a2bed3 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -27,7 +27,8 @@ Imports: shiny, rapbase, rlang, - janitor + janitor, + shinyjs Remotes: Rapporteket/rapbase@*release, Suggests: diff --git a/NAMESPACE b/NAMESPACE index 7423a24..a01caf2 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -13,6 +13,8 @@ export(admtab_ui) export(appServer) export(appUi) export(binomkonf) +export(datadump_UI) +export(datadump_server) export(indikatorfigServer) export(indikatorfig_UI) export(norspisApp) diff --git a/R/appServer.R b/R/appServer.R index 8a22a97..724ce7e 100644 --- a/R/appServer.R +++ b/R/appServer.R @@ -31,6 +31,10 @@ appServer <- function(input, output, session) { RegData = RegData, userRole = userRole, hvd_session = session) + # Datadump + norspis::datadump_server("datadump_id", reshID = userReshId, + RegData = RegData, userRole = userRole, hvd_session = session) + # Administrative tabeller norspis::admtab_server("admtabell", SkjemaOversikt, ForlopsOversikt) diff --git a/R/appUi.R b/R/appUi.R index 1fd772e..dea9b10 100644 --- a/R/appUi.R +++ b/R/appUi.R @@ -68,6 +68,10 @@ appUi <- function() { norspis::indikatorfig_UI(id = "indikatorfig_id") ), + shiny::tabPanel("Datadump", + norspis::datadump_UI(id = "datadump_id") + ), + shiny::tabPanel( "Administrative tabeller", norspis::admtab_ui("admtabell") diff --git a/R/modul_datadump.R b/R/modul_datadump.R new file mode 100644 index 0000000..2d3af3d --- /dev/null +++ b/R/modul_datadump.R @@ -0,0 +1,102 @@ +#' Modul for datadump-fane i Norspis sin shiny-app på Rapporteket +#' +#' Kun til bruk i Shiny +#' +#' @name datadump +#' @aliases datadump_ui datadump_server +#' +#' @rdname datadump +#' @export +datadump_UI <- function(id){ + ns <- shiny::NS(id) + + shiny::sidebarLayout( + sidebarPanel( + id = ns("id_dump_panel"), + dateRangeInput(inputId=ns("datovalg"), + label = "Dato fra og til", + language = "nb", + max = Sys.Date(), + start = '2014-01-01', + end = Sys.Date(), + separator = " til "), + selectInput(inputId = ns("dumptype"), + label = "Velg type datadump", + choices = c("AlleScorer", + "Behandling", + "BehandlingNum", + "EnkeltLedd", + "EnkeltLeddNum", + "ForlopsOversikt", + "SkjemaOversikt", + "Norspisdata_utflatet")), + tags$hr(), + downloadButton(ns("lastNed_dump"), "Last ned datadump") + ), + mainPanel( + h2('Datadump - Norspis', align='center'), + br(), + h4('Her kan du laste ned forskjellige varianter av datadump for Norspis. + Lokale brukere vil bare kunne laste ned data for egen avdeling.'), + br(), + h4(tags$b(tags$u('Forklaring til de ulike datadump-typene:'))), + h4(tags$b('AlleScorer: '), 'forklaring fra register'), + h4(tags$b('Behandling: '), 'forklaring fra register'), + h4(tags$b('BehandlingNum: '), 'forklaring fra register'), + h4(tags$b('EnkeltLedd: '), 'forklaring fra register'), + h4(tags$b('EnkeltLeddNum: '), 'forklaring fra register'), + h4(tags$b('ForlopsOversikt: '), 'forklaring fra register'), + h4(tags$b('SkjemaOversikt: '), 'En oversikt med informasjon om status på + alle påbegynte og avsluttede skjema.'), + h4(tags$b('Norspisdata_utflatet: '), 'inneholder alle kliniske variabler + i registeret og benytter tallkodene til kategoriske variabler. + At tabellen er utflatet innebærer at sluttregistrering er koblet til + startregistrering slik at en linje utgjør et forløp.') + ) + ) +} + +#' @rdname datadump +#' @export +datadump_server <- function(id, RegData, userRole, hvd_session, reshID){ + moduleServer( + id, + + function(input, output, session) { + + output$lastNed_dump <- downloadHandler( + filename = function(){ + fs::path_sanitize(paste0(input$dumptype, Sys.time(), '.csv')) + }, + content = function(file){ + if (input$dumptype == "Norspisdata_utflatet") { + dumpdata <- RegData + } else { + query <- paste0("SELECT * FROM ", input$dumptype) + dumpdata <- rapbase::loadRegData("norspis", query) + } + # dumpdata <- tmpData[which(as.Date(tmpData$S1b_DateOfCompletion, format="%d.%m.%Y") >= input$datovalg[1] & + # as.Date(tmpData$S1b_DateOfCompletion, format="%d.%m.%Y") <= input$datovalg[2]), ] + if (userRole != 'SC') { + dumpdata <- dumpdata[dumpdata$AvdRESH %in% reshID, ] + } + # write.csv2(dumpdata, file, row.names = F, na = '', fileEncoding = 'Latin1') + readr::write_excel_csv2(dumpdata, file, na = "") + } + ) + + shiny::observe({ + if (rapbase::isRapContext()) { + + shinyjs::onclick( + "lastNed_dump", + rapbase::repLogger( + session = hvd_session, + msg = paste0("Norspis: nedlasting datadump: ", input$dumptype) + ) + ) + } + }) + + } + )} diff --git a/man/datadump.Rd b/man/datadump.Rd new file mode 100644 index 0000000..dd275ac --- /dev/null +++ b/man/datadump.Rd @@ -0,0 +1,16 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/modul_datadump.R +\name{datadump} +\alias{datadump} +\alias{datadump_UI} +\alias{datadump_ui} +\alias{datadump_server} +\title{Modul for datadump-fane i Norspis sin shiny-app på Rapporteket} +\usage{ +datadump_UI(id) + +datadump_server(id, RegData, userRole, hvd_session, reshID) +} +\description{ +Kun til bruk i Shiny +} diff --git a/man/norspisPlotIndikator.Rd b/man/norspisPlotIndikator.Rd index f898500..1c97e77 100644 --- a/man/norspisPlotIndikator.Rd +++ b/man/norspisPlotIndikator.Rd @@ -9,7 +9,11 @@ norspisPlotIndikator( graaUt = NA, outfile = "", lavDG = NA, - inkl_konf = F + inkl_konf = F, + width = 800, + height = 700, + skriftStr = 1, + pktStr = 1.4 ) } \arguments{ From 23c21a6282251d94e368faa4a463749d24e1994c Mon Sep 17 00:00:00 2001 From: kevinthon Date: Thu, 4 Jan 2024 14:24:57 +0100 Subject: [PATCH 03/10] =?UTF-8?q?Sjul=20Verkt=C3=B8ylinjen=20fra=20LU-bruk?= =?UTF-8?q?er?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- R/appServer.R | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/R/appServer.R b/R/appServer.R index 724ce7e..f6c83ba 100644 --- a/R/appServer.R +++ b/R/appServer.R @@ -23,6 +23,10 @@ appServer <- function(input, output, session) { userReshId <- rapbase::getUserReshId(session) hospitalName <- ForlopsOversikt$Kortnavn[match(userReshId, ForlopsOversikt$AvdRESH)] + if (userRole != 'SC') { + shiny::hideTab("tabs", target = "Verkt\u00f8y") + } + rapbase::navbarWidgetServer("norspisNavbarWidget", "norspis", caller = "norspis") From 19d00074243dc253278f15e5d1980a2c21fd3eb6 Mon Sep 17 00:00:00 2001 From: kevinthon Date: Thu, 16 May 2024 15:58:06 +0200 Subject: [PATCH 04/10] =?UTF-8?q?=C3=A5rsrapportjobbing?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- R/norspisLesOgProsesser.R | 2 + docker-compose.yml | 2 +- inst/TabOgFigAarrappNorspis.Rnw | 143 ++++++++++++++++++++++++++++++++ norspis.Rproj | 2 +- 4 files changed, 147 insertions(+), 2 deletions(-) create mode 100644 inst/TabOgFigAarrappNorspis.Rnw diff --git a/R/norspisLesOgProsesser.R b/R/norspisLesOgProsesser.R index 309e2b7..511da22 100644 --- a/R/norspisLesOgProsesser.R +++ b/R/norspisLesOgProsesser.R @@ -69,6 +69,8 @@ norspisLesOgProsesser <- function() { ## Foreløpig, velg én sluttregistrering der det finnes flere RegData <- RegData[match(unique(RegData$ForlopsID), RegData$ForlopsID), ] ########################################################################## + RegData <- merge(RegData, ForlopsOversikt[, c("ForlopsID", "erMann", "Norsktalende", + "Sivilstatus", "UtdanningSSB")]) SkjemaOversikt <- norspis::querySkjemaOversikt("norspis") %>% diff --git a/docker-compose.yml b/docker-compose.yml index 2cbdb18..4c8b7da 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -13,7 +13,7 @@ services: dev: depends_on: - db - image: rapporteket/norspis-dev:nightly + image: rapporteket/norspis-dev:main volumes: - ~/.ssh:/home/rstudio/.ssh - ~/.gitconfig:/home/rstudio/.gitconfig diff --git a/inst/TabOgFigAarrappNorspis.Rnw b/inst/TabOgFigAarrappNorspis.Rnw new file mode 100644 index 0000000..68358fb --- /dev/null +++ b/inst/TabOgFigAarrappNorspis.Rnw @@ -0,0 +1,143 @@ +\documentclass[a4paper]{article} +\usepackage[norsk]{babel} +\usepackage[utf8x]{inputenc} +\usepackage[pdftex, colorlinks, linkcolor=lysblaa, urlcolor=lysblaa]{hyperref} +\usepackage{xcolor} +\usepackage{graphicx} +% \usepackage{subfig} +% \usepackage{pdfpages} +% \usepackage{booktabs} +% \usepackage{caption} +% \usepackage{amssymb} +% \usepackage[a4paper]{geometry} + + +\title{Tabeller og figurer årsrapport Norspis} + +<<'initOpts',include=FALSE>>= +knitr::opts_chunk$set(warnings=FALSE,echo=FALSE) +knitr::opts_knit$set(root.dir = './') +@ + + +<>= +rm(list=ls()) +library(norspis) +library(dplyr) +library(tidyr) +options(dplyr.summarise.inform = FALSE) + +rap_aar <- 2023 + +norspisdata <- norspisLesOgProsesser() +RegData <- norspisdata$RegData +ForlopsOversikt <- norspisdata$ForlopsOversikt +SkjemaOversikt <- norspisdata$SkjemaOversikt + + +figstr <- 0.61 +tmp <- Sys.setlocale(category = "LC_ALL", locale = "nb_NO.UTF-8") + +figfolder <- paste0("~/mydata/norspis/fig_aarsrapp2023/") +if (!dir.exists(figfolder)) { + dir.create(figfolder) +} +tabfolder <- paste0("~/mydata/ethirgast/tab_aarsrapp2023/") +if (!dir.exists(tabfolder)) { + dir.create(tabfolder) +} +@ + +\begin{document} +\maketitle + +Dette dokumentet inneholder noe oppsummerende statistikk for Norspis ifm. årsrapport. +% +% <<'Fig. ', include=FALSE, echo=FALSE, eval=T>>= +% +% @ +% +% +% \begin{figure}[ht] +% \centering +% \includegraphics[width=\Sexpr{figstr}\textwidth]{\Sexpr{figfolder}.pdf} +% \caption{figurtekst her} +% \end{figure} + + +<<'Table: ', results='asis', echo=FALSE>>= + +rapportdata <- RegData %>% + mutate(Kjonn = factor(erMann, levels = 0:1, labels = c("Kvinne", "Mann")), + Alder_kat = cut(PasientAlder_start, breaks = c(10,15,20,25,30,40,50,100)), + Alder_kat = recode(Alder_kat, "(50,100]"="50+"), + B01Sivilstatus = ifelse(is.na(B01Sivilstatus), 99, B01Sivilstatus), + Sivilstatus = factor(B01Sivilstatus, levels = c(1:5, 9, 99), + labels = c('Enslig','Samboer','Gift','Skilt', + 'Enke/enkemann','Annen', "Ikke reg.")), + B03Bosituasjon = case_when( + B03Bosituasjon %in% c(1,2,4,5) ~ 2, + B03Bosituasjon == 3 ~ 1, + B03Bosituasjon %in% c(6,9) ~ 9, + ), + Bostatus = ifelse(is.na(B03BostatusV1_4), B03Bosituasjon, B03BostatusV1_4), + Bostatus = ifelse(is.na(Bostatus), 9, Bostatus) %>% + factor(levels = c(1:3, 9), labels = c("Bor alene", "Bor med noen", + "Bor på institusjon", "Ukjent")) + ) %>% + filter(StartAar <= rap_aar, + StartAar >= rap_aar-2) %>% + mutate(regtid = ifelse(StartAar == rap_aar, rap_aar, paste0(rap_aar-2, "-", rap_aar-1))) + +kjonn <- rapportdata %>% + summarise(n = n(), + .by = c(Kjonn, regtid)) %>% + pivot_wider(names_from = regtid, values_from = n, values_fill = 0) %>% + mutate(andel1 = .[,2]/sum(.[,2])*100, + andel2 = .[,3]/sum(.[,3])*100) %>% + mutate(Variabel = c("Kjønn", rep('', dim(.)[1]-1))) %>% + select(6,1,2,4,3,5) + + +alder <- rapportdata %>% + summarise(n = n(), + .by = c(Alder_kat, regtid)) %>% + pivot_wider(names_from = regtid, values_from = n, values_fill = 0) %>% + mutate(andel1 = .[,2]/sum(.[,2])*100, + andel2 = .[,3]/sum(.[,3])*100) %>% + arrange(Alder_kat) %>% + mutate(Variabel = c("Alder", rep('', dim(.)[1]-1))) %>% + select(6,1,2,4,3,5) + +sivilstatus <- rapportdata %>% + summarise(n = n(), + .by = c(Sivilstatus, regtid)) %>% + pivot_wider(names_from = regtid, values_from = n, values_fill = 0) %>% + mutate(andel1 = .[,2]/sum(.[,2])*100, + andel2 = .[,3]/sum(.[,3])*100) %>% + arrange(Sivilstatus) %>% + mutate(Variabel = c("Sivilstatus", rep('', dim(.)[1]-1))) %>% + select(6,1,2,4,3,5) + +bostatus <- rapportdata %>% + summarise(n = n(), + .by = c(Bostatus, regtid)) %>% + pivot_wider(names_from = regtid, values_from = n, values_fill = 0) %>% + mutate(andel1 = .[,2]/sum(.[,2])*100, + andel2 = .[,3]/sum(.[,3])*100) %>% + arrange(Bostatus) %>% + mutate(Variabel = c("Bostatus", rep('', dim(.)[1]-1))) %>% + select(6,1,2,4,3,5) + + +print(xtable::xtable(reg_overview, digits=0, + caption='Registration by registration status'), + include.rownames=FALSE) + +@ + + + + + +\end{document} diff --git a/norspis.Rproj b/norspis.Rproj index 69fafd4..766b3b2 100644 --- a/norspis.Rproj +++ b/norspis.Rproj @@ -9,7 +9,7 @@ UseSpacesForTab: Yes NumSpacesForTab: 2 Encoding: UTF-8 -RnwWeave: Sweave +RnwWeave: knitr LaTeX: pdfLaTeX AutoAppendNewline: Yes From 729ebde1cfb0c18c7e408e01d4646a888758da12 Mon Sep 17 00:00:00 2001 From: kevinthon Date: Fri, 24 May 2024 16:11:39 +0200 Subject: [PATCH 05/10] =?UTF-8?q?=C3=A5rsrappjobb?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DESCRIPTION | 2 +- NAMESPACE | 2 + R/stottefunksjoner.R | 54 ++ inst/TabOgFigAarrappNorspis.Rnw | 953 ++++++++++++++++++++++++++++++-- man/separer.Rd | 31 ++ man/tr_summarize_output.Rd | 18 + 6 files changed, 1015 insertions(+), 45 deletions(-) create mode 100644 man/separer.Rd create mode 100644 man/tr_summarize_output.Rd diff --git a/DESCRIPTION b/DESCRIPTION index 5a2bed3..fc32f29 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -19,7 +19,7 @@ License: GPL (>= 3) Encoding: UTF-8 LazyData: true Roxygen: list(markdown = TRUE) -RoxygenNote: 7.2.1 +RoxygenNote: 7.2.3 Imports: dplyr, lubridate, diff --git a/NAMESPACE b/NAMESPACE index a01caf2..539a37d 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -30,6 +30,8 @@ export(queryForlopsOversikt) export(queryReshNames) export(querySkjemaOversikt) export(reportProcessor) +export(separer) +export(tr_summarize_output) importFrom(lubridate,"%m-%") importFrom(magrittr,"%$%") importFrom(magrittr,"%<>%") diff --git a/R/stottefunksjoner.R b/R/stottefunksjoner.R index 72d3a6b..ed3142d 100644 --- a/R/stottefunksjoner.R +++ b/R/stottefunksjoner.R @@ -22,3 +22,57 @@ binomkonf <- function(n, N, konfnivaa=0.95) } return(invisible(binkonf)) } + + +#' Trekk ut diagnoser fra kolonne med kommaseparerte diagnoser til separate +#' kolonner +#' +#' @param variable - kolonnen som skal splittes i flere +#' @param separator - separator mellom elementer i tekststreng. Overflødig hvis +#' unique_varnames gis som input +#' @param unique_varnames - vektor med navnene som skal trekkes ut i nye kolonner, må/bør +#' samsvare med navn som eksisterer i kolonnen som skal splittes +#' +#' @return En dataramme med separerte variabler +#' +#' @export +separer <- function(variable, separator = ",", unique_varnames = NULL) { + if (is.null(unique_varnames)){ + unique_varnames <- stringi::stri_split_fixed(variable[!is.na(variable)], separator) %>% + unlist() %>% unique() + } + df <- lapply( + unique_varnames, + function(x, variable){ + stringr::str_detect(variable,x) + }, + variable + ) + + df <- as.data.frame.list(df) + names(df) <- unique_varnames + return(df) +} + + +#' Transponer output fra dplyr::summarise +#' +#' Denne funksjonen tar som input resultatet av dplyr::summarise og returnerer dens +#' transponerte uten at formatene endres. +#' +#' Her kan detaljer skrives +#' +#' @return tr_frame Den transponerte av inputen +#' +#' @export +#' +tr_summarize_output <- function(x, kolnavn1 = ""){ + + rekkefolge <- names(x)[-1] + y <- x %>% gather(names(x)[-1], key=nokkel, value = verdi) %>% + spread(key=names(x)[1], value = verdi) + y <- y[match(rekkefolge, y$nokkel), ] + names(y)[1] <- kolnavn1 + + return(y) +} diff --git a/inst/TabOgFigAarrappNorspis.Rnw b/inst/TabOgFigAarrappNorspis.Rnw index 68358fb..0ca566a 100644 --- a/inst/TabOgFigAarrappNorspis.Rnw +++ b/inst/TabOgFigAarrappNorspis.Rnw @@ -4,6 +4,10 @@ \usepackage[pdftex, colorlinks, linkcolor=lysblaa, urlcolor=lysblaa]{hyperref} \usepackage{xcolor} \usepackage{graphicx} +\usepackage{array} +\newcolumntype{R}[1]{>{\raggedleft\let\newline\\\arraybackslash\hspace{0pt}}p{#1}} +\newcolumntype{L}[1]{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{#1}} +\newcolumntype{C}[1]{>{\centering\let\newline\\\arraybackslash\hspace{0pt}}m{#1}} % \usepackage{subfig} % \usepackage{pdfpages} % \usepackage{booktabs} @@ -42,7 +46,7 @@ figfolder <- paste0("~/mydata/norspis/fig_aarsrapp2023/") if (!dir.exists(figfolder)) { dir.create(figfolder) } -tabfolder <- paste0("~/mydata/ethirgast/tab_aarsrapp2023/") +tabfolder <- paste0("~/mydata/norspis/tab_aarsrapp2023/") if (!dir.exists(tabfolder)) { dir.create(tabfolder) } @@ -65,9 +69,9 @@ Dette dokumentet inneholder noe oppsummerende statistikk for Norspis ifm. årsra % \end{figure} -<<'Table: ', results='asis', echo=FALSE>>= +<<'Table: sosiodemografisk', results='asis', echo=FALSE>>= -rapportdata <- RegData %>% +rapportdata <- RegData %>% mutate(Kjonn = factor(erMann, levels = 0:1, labels = c("Kvinne", "Mann")), Alder_kat = cut(PasientAlder_start, breaks = c(10,15,20,25,30,40,50,100)), Alder_kat = recode(Alder_kat, "(50,100]"="50+"), @@ -83,61 +87,922 @@ rapportdata <- RegData %>% Bostatus = ifelse(is.na(B03BostatusV1_4), B03Bosituasjon, B03BostatusV1_4), Bostatus = ifelse(is.na(Bostatus), 9, Bostatus) %>% factor(levels = c(1:3, 9), labels = c("Bor alene", "Bor med noen", - "Bor på institusjon", "Ukjent")) - ) %>% - filter(StartAar <= rap_aar, - StartAar >= rap_aar-2) %>% - mutate(regtid = ifelse(StartAar == rap_aar, rap_aar, paste0(rap_aar-2, "-", rap_aar-1))) - -kjonn <- rapportdata %>% - summarise(n = n(), - .by = c(Kjonn, regtid)) %>% - pivot_wider(names_from = regtid, values_from = n, values_fill = 0) %>% - mutate(andel1 = .[,2]/sum(.[,2])*100, - andel2 = .[,3]/sum(.[,3])*100) %>% + "Bor på institusjon", "Ukjent")), + Egnebarn = ifelse(B02EgneBarn > 0, 1, 0), + Egnebarn = ifelse(is.na(Egnebarn), 99, Egnebarn), + Egnebarn = factor(Egnebarn, levels = c(0,1,99), labels = c("0", "1+", "Ikke reg.")), + B05FullfortUtd = ifelse(B05FullfortUtd %in% 1:5, B05FullfortUtd-1, B05FullfortUtd), + Utdanning = ifelse(is.na(B04UtdanningV1_4), B05FullfortUtd, B04UtdanningV1_4), + Utdanning = ifelse(is.na(Utdanning), 9, Utdanning), + Utdanning = factor(Utdanning, levels = c(0,1,2,3,4,9,99), + labels = c("Ingen utdanning","Grunnskole","Videregående", + "Universitetet/Høgskole (mindre enn 4 år)", + "Universitet/Høgskole (4 år eller mer)","Ukjent", + "Spørsmål ikke stilt pga. pasient under 18")), + B06Hovedaktivitet = case_when( + B06Hovedaktivitet %in% 1:2 ~ 1, + B06Hovedaktivitet %in% c(3,7,8) ~ 2, + B06Hovedaktivitet %in% c(4,9) ~ 9, + B06Hovedaktivitet %in% 5:6 ~ 4 + ), + Arbeidsstatus = ifelse(is.na(B06ArbeidsstatusV1_4), B06Hovedaktivitet, B06ArbeidsstatusV1_4), + Arbeidsstatus = ifelse(is.na(Arbeidsstatus), 9, Arbeidsstatus), + Arbeidsstatus = factor(Arbeidsstatus, levels = c(1,2,3,4,9), + labels = c("I arbeid","Ikke i arbeid","Alderspensjonist", + "Under utdanning/studerer","Ukjent")), + B07Hovedinntekt =ifelse(is.na(B07Hovedinntekt), 9, B07Hovedinntekt), + Hovedinntekt = factor(B07Hovedinntekt, levels = c(1,2,3,4,5,6,7,9), + labels = c("Arbeidsinntekt","Sykepenger/trygd/pensjon", + "Blir forsørget","Sosialhjelp", "Stipend/lån", + "Kursstønad/lønn i arbeidsmarkedstiltak", + "Andre inntekter","Ukjent")), + DiagBUAkse1 = toupper(DiagBUAkse1), + bmi = ifelse(!is.na(MedIsoBMIBGS_start), + MedIsoBMIBGS_start, MedBMI_start), + bmi_kat = cut(bmi, breaks = c(0,10,12.5,15,17.5,20,25,30, 100)), + bmi_kat = case_match(bmi_kat, "(0,10]" ~ "<10", "(30,100]" ~ ">30", .default = bmi_kat), + bmi_slutt = ifelse(!is.na(MedIsoBMIBGS_slutt), + MedIsoBMIBGS_slutt, MedBMI_slutt), + bmi_slutt_kat = cut(bmi_slutt, breaks = c(0,10,12.5,15,17.5,20,25,30, 100)), + bmi_slutt_kat = case_match(bmi_slutt_kat, "(0,10]" ~ "<10", "(30,100]" ~ ">30", .default = bmi_slutt_kat), + ) %>% + mutate(regtid = case_when(StartAar == rap_aar ~ as.character(rap_aar), + StartAar %in% (rap_aar-2):(rap_aar-1) ~ + paste0(rap_aar-2, "-", rap_aar-1)), + regtid_slutt = case_when(SluttAar == rap_aar ~ as.character(rap_aar), + SluttAar %in% (rap_aar-2):(rap_aar-1) ~ + paste0(rap_aar-2, "-", rap_aar-1))) #%>% +# filter(StartAar <= rap_aar, +# StartAar >= rap_aar-2) #%>% +# mutate(regtid = ifelse(StartAar == rap_aar, rap_aar, paste0(rap_aar-2, "-", rap_aar-1))) + +rapportdata_voksen <- rapportdata %>% filter(Over18_start) +rapportdata_barn <- rapportdata %>% filter(!Over18_start) + + +kjonn <- rapportdata_voksen %>% + filter(!is.na(regtid)) %>% + dplyr::count(Kjonn, regtid) %>% + mutate(andel = n/sum(n)*100, .by = regtid) +kjonn <- dplyr::full_join( + pivot_wider(kjonn, id_cols = Kjonn, + names_from = regtid, values_from = n, values_fill = 0), + pivot_wider(kjonn, id_cols = Kjonn, + names_from = regtid, values_from = andel, values_fill = 0), + by = "Kjonn", suffix = c("", " andel")) %>% mutate(Variabel = c("Kjønn", rep('', dim(.)[1]-1))) %>% - select(6,1,2,4,3,5) + select(6,1,2,4,3,5)%>% + rename("Alternativer" = "Kjonn") -alder <- rapportdata %>% - summarise(n = n(), - .by = c(Alder_kat, regtid)) %>% - pivot_wider(names_from = regtid, values_from = n, values_fill = 0) %>% - mutate(andel1 = .[,2]/sum(.[,2])*100, - andel2 = .[,3]/sum(.[,3])*100) %>% - arrange(Alder_kat) %>% +alder <- rapportdata_voksen %>% + filter(!is.na(regtid)) %>% + dplyr::count(Alder_kat, regtid) %>% + mutate(andel = n/sum(n)*100, .by = regtid) +alder <- dplyr::full_join( + pivot_wider(alder, id_cols = Alder_kat, + names_from = regtid, values_from = n, values_fill = 0), + pivot_wider(alder, id_cols = Alder_kat, + names_from = regtid, values_from = andel, values_fill = 0), + by = "Alder_kat", suffix = c("", " andel")) %>% mutate(Variabel = c("Alder", rep('', dim(.)[1]-1))) %>% - select(6,1,2,4,3,5) - -sivilstatus <- rapportdata %>% - summarise(n = n(), - .by = c(Sivilstatus, regtid)) %>% - pivot_wider(names_from = regtid, values_from = n, values_fill = 0) %>% - mutate(andel1 = .[,2]/sum(.[,2])*100, - andel2 = .[,3]/sum(.[,3])*100) %>% - arrange(Sivilstatus) %>% + select(6,1,2,4,3,5)%>% + rename("Alternativer" = "Alder_kat") + + +sivilstatus <- rapportdata_voksen %>% + filter(!is.na(regtid)) %>% + dplyr::count(Sivilstatus, regtid) %>% + mutate(andel = n/sum(n)*100, .by = regtid) +sivilstatus <- dplyr::full_join( + pivot_wider(sivilstatus, id_cols = Sivilstatus, + names_from = regtid, values_from = n, values_fill = 0), + pivot_wider(sivilstatus, id_cols = Sivilstatus, + names_from = regtid, values_from = andel, values_fill = 0), + by = "Sivilstatus", suffix = c("", " andel")) %>% mutate(Variabel = c("Sivilstatus", rep('', dim(.)[1]-1))) %>% - select(6,1,2,4,3,5) - -bostatus <- rapportdata %>% - summarise(n = n(), - .by = c(Bostatus, regtid)) %>% - pivot_wider(names_from = regtid, values_from = n, values_fill = 0) %>% - mutate(andel1 = .[,2]/sum(.[,2])*100, - andel2 = .[,3]/sum(.[,3])*100) %>% - arrange(Bostatus) %>% + select(6,1,2,4,3,5)%>% + rename("Alternativer" = "Sivilstatus") + + +bostatus <- rapportdata_voksen %>% + filter(!is.na(regtid)) %>% + dplyr::count(Bostatus, regtid) %>% + mutate(andel = n/sum(n)*100, .by = regtid) +bostatus <- dplyr::full_join( + pivot_wider(bostatus, id_cols = Bostatus, + names_from = regtid, values_from = n, values_fill = 0), + pivot_wider(bostatus, id_cols = Bostatus, + names_from = regtid, values_from = andel, values_fill = 0), + by = "Bostatus", suffix = c("", " andel")) %>% mutate(Variabel = c("Bostatus", rep('', dim(.)[1]-1))) %>% - select(6,1,2,4,3,5) + select(6,1,2,4,3,5)%>% + rename("Alternativer" = "Bostatus") + +egnebarn <- rapportdata_voksen %>% + filter(!is.na(regtid)) %>% + dplyr::count(Egnebarn, regtid) %>% + mutate(andel = n/sum(n)*100, .by = regtid) +egnebarn <- dplyr::full_join( + pivot_wider(egnebarn, id_cols = Egnebarn, + names_from = regtid, values_from = n, values_fill = 0), + pivot_wider(egnebarn, id_cols = Egnebarn, + names_from = regtid, values_from = andel, values_fill = 0), + by = "Egnebarn", suffix = c("", " andel")) %>% + mutate(Variabel = c("Egnebarn", rep('', dim(.)[1]-1))) %>% + select(6,1,2,4,3,5)%>% + rename("Alternativer" = "Egnebarn") + +utdanning <- rapportdata_voksen %>% + filter(!is.na(regtid)) %>% + dplyr::count(Utdanning, regtid) %>% + mutate(andel = n/sum(n)*100, .by = regtid) +utdanning <- dplyr::full_join( + pivot_wider(utdanning, id_cols = Utdanning, + names_from = regtid, values_from = n, values_fill = 0), + pivot_wider(utdanning, id_cols = Utdanning, + names_from = regtid, values_from = andel, values_fill = 0), + by = "Utdanning", suffix = c("", " andel")) %>% + mutate(Variabel = c("Utdanning", rep('', dim(.)[1]-1))) %>% + select(6,1,2,4,3,5)%>% + rename("Alternativer" = "Utdanning") + +arbeidsstatus <- rapportdata_voksen %>% + filter(!is.na(regtid)) %>% + dplyr::count(Arbeidsstatus, regtid) %>% + mutate(andel = n/sum(n)*100, .by = regtid) +arbeidsstatus <- dplyr::full_join( + pivot_wider(arbeidsstatus, id_cols = Arbeidsstatus, + names_from = regtid, values_from = n, values_fill = 0), + pivot_wider(arbeidsstatus, id_cols = Arbeidsstatus, + names_from = regtid, values_from = andel, values_fill = 0), + by = "Arbeidsstatus", suffix = c("", " andel")) %>% + mutate(Variabel = c("Arbeidsstatus", rep('', dim(.)[1]-1))) %>% + select(6,1,2,4,3,5)%>% + rename("Alternativer" = "Arbeidsstatus") + + +hovedinntekt <- rapportdata_voksen %>% + filter(!is.na(regtid)) %>% + dplyr::count(Hovedinntekt, regtid) %>% + mutate(andel = n/sum(n)*100, .by = regtid) +hovedinntekt <- dplyr::full_join( + pivot_wider(hovedinntekt, id_cols = Hovedinntekt, + names_from = regtid, values_from = n, values_fill = 0), + pivot_wider(hovedinntekt, id_cols = Hovedinntekt, + names_from = regtid, values_from = andel, values_fill = 0), + by = "Hovedinntekt", suffix = c("", " andel")) %>% + mutate(Variabel = c("Hovedinntekt", rep('', dim(.)[1]-1))) %>% + select(6,1,2,4,3,5)%>% + rename("Alternativer" = "Hovedinntekt") + + + +sosio_voksen <- dplyr::bind_rows(kjonn,alder,sivilstatus,bostatus, egnebarn, + utdanning,arbeidsstatus, hovedinntekt) + +write.csv2(sosio_voksen, paste0(tabfolder, "sosio_voksen.csv"), row.names = F, fileEncoding = "Latin1") + +names(sosio_voksen) <- c("", "", "Antall 2021-2022", "Andel 2021-2022", "Antall 2023", "Andel 2023") + +print(xtable::xtable(sosio_voksen, digits=c(0,0,0,0,1,0,1), + align = c('l', 'l','L{1.0in}', 'r', 'r', 'r', 'r'), + caption='Sosiodemografiske data for voksne'), + include.rownames=FALSE) + +kjonn <- rapportdata_barn %>% + filter(!is.na(regtid)) %>% + dplyr::count(Kjonn, regtid) %>% + mutate(andel = n/sum(n)*100, .by = regtid) +kjonn <- dplyr::full_join( + pivot_wider(kjonn, id_cols = Kjonn, + names_from = regtid, values_from = n, values_fill = 0), + pivot_wider(kjonn, id_cols = Kjonn, + names_from = regtid, values_from = andel, values_fill = 0), + by = "Kjonn", suffix = c("", " andel")) %>% + mutate(Variabel = c("Kjønn", rep('', dim(.)[1]-1))) %>% + select(6,1,2,4,3,5)%>% + rename("Alternativer" = "Kjonn") + + +alder <- rapportdata_barn %>% + filter(!is.na(regtid)) %>% + dplyr::count(Alder_kat, regtid) %>% + mutate(andel = n/sum(n)*100, .by = regtid) +alder <- dplyr::full_join( + pivot_wider(alder, id_cols = Alder_kat, + names_from = regtid, values_from = n, values_fill = 0), + pivot_wider(alder, id_cols = Alder_kat, + names_from = regtid, values_from = andel, values_fill = 0), + by = "Alder_kat", suffix = c("", " andel")) %>% + mutate(Variabel = c("Alder", rep('', dim(.)[1]-1))) %>% + select(6,1,2,4,3,5)%>% + rename("Alternativer" = "Alder_kat") + + +sivilstatus <- rapportdata_barn %>% + filter(!is.na(regtid)) %>% + dplyr::count(Sivilstatus, regtid) %>% + mutate(andel = n/sum(n)*100, .by = regtid) +sivilstatus <- dplyr::full_join( + pivot_wider(sivilstatus, id_cols = Sivilstatus, + names_from = regtid, values_from = n, values_fill = 0), + pivot_wider(sivilstatus, id_cols = Sivilstatus, + names_from = regtid, values_from = andel, values_fill = 0), + by = "Sivilstatus", suffix = c("", " andel")) %>% + mutate(Variabel = c("Sivilstatus", rep('', dim(.)[1]-1))) %>% + select(6,1,2,4,3,5)%>% + rename("Alternativer" = "Sivilstatus") + + +bostatus <- rapportdata_barn %>% + filter(!is.na(regtid)) %>% + dplyr::count(Bostatus, regtid) %>% + mutate(andel = n/sum(n)*100, .by = regtid) +bostatus <- dplyr::full_join( + pivot_wider(bostatus, id_cols = Bostatus, + names_from = regtid, values_from = n, values_fill = 0), + pivot_wider(bostatus, id_cols = Bostatus, + names_from = regtid, values_from = andel, values_fill = 0), + by = "Bostatus", suffix = c("", " andel")) %>% + mutate(Variabel = c("Bostatus", rep('', dim(.)[1]-1))) %>% + select(6,1,2,4,3,5)%>% + rename("Alternativer" = "Bostatus") + +egnebarn <- rapportdata_barn %>% + filter(!is.na(regtid)) %>% + dplyr::count(Egnebarn, regtid) %>% + mutate(andel = n/sum(n)*100, .by = regtid) +egnebarn <- dplyr::full_join( + pivot_wider(egnebarn, id_cols = Egnebarn, + names_from = regtid, values_from = n, values_fill = 0), + pivot_wider(egnebarn, id_cols = Egnebarn, + names_from = regtid, values_from = andel, values_fill = 0), + by = "Egnebarn", suffix = c("", " andel")) %>% + mutate(Variabel = c("Egnebarn", rep('', dim(.)[1]-1))) %>% + select(6,1,2,4,3,5)%>% + rename("Alternativer" = "Egnebarn") + +utdanning <- rapportdata_barn %>% + filter(!is.na(regtid)) %>% + dplyr::count(Utdanning, regtid) %>% + mutate(andel = n/sum(n)*100, .by = regtid) +utdanning <- dplyr::full_join( + pivot_wider(utdanning, id_cols = Utdanning, + names_from = regtid, values_from = n, values_fill = 0), + pivot_wider(utdanning, id_cols = Utdanning, + names_from = regtid, values_from = andel, values_fill = 0), + by = "Utdanning", suffix = c("", " andel")) %>% + mutate(Variabel = c("Utdanning", rep('', dim(.)[1]-1))) %>% + select(6,1,2,4,3,5)%>% + rename("Alternativer" = "Utdanning") + +arbeidsstatus <- rapportdata_barn %>% + filter(!is.na(regtid)) %>% + dplyr::count(Arbeidsstatus, regtid) %>% + mutate(andel = n/sum(n)*100, .by = regtid) +arbeidsstatus <- dplyr::full_join( + pivot_wider(arbeidsstatus, id_cols = Arbeidsstatus, + names_from = regtid, values_from = n, values_fill = 0), + pivot_wider(arbeidsstatus, id_cols = Arbeidsstatus, + names_from = regtid, values_from = andel, values_fill = 0), + by = "Arbeidsstatus", suffix = c("", " andel")) %>% + mutate(Variabel = c("Arbeidsstatus", rep('', dim(.)[1]-1))) %>% + select(6,1,2,4,3,5)%>% + rename("Alternativer" = "Arbeidsstatus") + + +hovedinntekt <- rapportdata_barn %>% + filter(!is.na(regtid)) %>% + dplyr::count(Hovedinntekt, regtid) %>% + mutate(andel = n/sum(n)*100, .by = regtid) +hovedinntekt <- dplyr::full_join( + pivot_wider(hovedinntekt, id_cols = Hovedinntekt, + names_from = regtid, values_from = n, values_fill = 0), + pivot_wider(hovedinntekt, id_cols = Hovedinntekt, + names_from = regtid, values_from = andel, values_fill = 0), + by = "Hovedinntekt", suffix = c("", " andel")) %>% + mutate(Variabel = c("Hovedinntekt", rep('', dim(.)[1]-1))) %>% + select(6,1,2,4,3,5)%>% + rename("Alternativer" = "Hovedinntekt") + +# kjonn <- rapportdata_barn %>% +# filter(!is.na(regtid)) %>% +# summarise(n = n(), +# .by = c(Kjonn, regtid)) %>% +# pivot_wider(names_from = regtid, values_from = n, values_fill = 0) %>% +# mutate(andel1 = .[,2]/sum(.[,2])*100, +# andel2 = .[,3]/sum(.[,3])*100) %>% +# mutate(Variabel = c("Kjønn", rep('', dim(.)[1]-1))) %>% +# select(6,1,2,4,3,5) %>% +# rename("Alternativer" = "Kjonn") +# +# +# alder <- rapportdata_barn %>% +# filter(!is.na(regtid)) %>% +# summarise(n = n(), +# .by = c(Alder_kat, regtid)) %>% +# pivot_wider(names_from = regtid, values_from = n, values_fill = 0) %>% +# mutate(andel1 = .[,2]/sum(.[,2])*100, +# andel2 = .[,3]/sum(.[,3])*100) %>% +# arrange(Alder_kat) %>% +# mutate(Variabel = c("Alder", rep('', dim(.)[1]-1))) %>% +# select(6,1,2,4,3,5) %>% +# rename("Alternativer" = "Alder_kat") +# +# sivilstatus <- rapportdata_barn %>% +# filter(!is.na(regtid)) %>% +# summarise(n = n(), +# .by = c(Sivilstatus, regtid)) %>% +# pivot_wider(names_from = regtid, values_from = n, values_fill = 0) %>% +# mutate(andel1 = .[,2]/sum(.[,2])*100, +# andel2 = .[,3]/sum(.[,3])*100) %>% +# arrange(Sivilstatus) %>% +# mutate(Variabel = c("Sivilstatus", rep('', dim(.)[1]-1))) %>% +# select(6,1,2,4,3,5) %>% +# rename("Alternativer" = "Sivilstatus") +# +# bostatus <- rapportdata_barn %>% +# filter(!is.na(regtid)) %>% +# summarise(n = n(), +# .by = c(Bostatus, regtid)) %>% +# pivot_wider(names_from = regtid, values_from = n, values_fill = 0) %>% +# mutate(andel1 = .[,2]/sum(.[,2])*100, +# andel2 = .[,3]/sum(.[,3])*100) %>% +# arrange(Bostatus) %>% +# mutate(Variabel = c("Bostatus", rep('', dim(.)[1]-1))) %>% +# select(6,1,2,4,3,5) %>% +# rename("Alternativer" = "Bostatus") +# +# egnebarn <- rapportdata_barn %>% +# filter(!is.na(regtid)) %>% +# summarise(n = n(), +# .by = c(Egnebarn, regtid)) %>% +# pivot_wider(names_from = regtid, values_from = n, values_fill = 0) %>% +# mutate(andel1 = .[,2]/sum(.[,2])*100, +# andel2 = .[,3]/sum(.[,3])*100) %>% +# arrange(Egnebarn) %>% +# mutate(Variabel = c("Egnebarn", rep('', dim(.)[1]-1))) %>% +# select(6,1,2,4,3,5) %>% +# rename("Alternativer" = "Egnebarn") +# +# utdanning <- rapportdata_barn %>% +# filter(!is.na(regtid)) %>% +# summarise(n = n(), +# .by = c(Utdanning, regtid)) %>% +# pivot_wider(names_from = regtid, values_from = n, values_fill = 0) %>% +# mutate(andel1 = .[,2]/sum(.[,2])*100, +# andel2 = .[,3]/sum(.[,3])*100) %>% +# arrange(Utdanning) %>% +# mutate(Variabel = c("Utdanning", rep('', dim(.)[1]-1))) %>% +# select(6,1,2,4,3,5) %>% +# rename("Alternativer" = "Utdanning") +# +# +# arbeidsstatus <- rapportdata_barn %>% +# filter(!is.na(regtid)) %>% +# summarise(n = n(), +# .by = c(Arbeidsstatus, regtid)) %>% +# pivot_wider(names_from = regtid, values_from = n, values_fill = 0) %>% +# mutate(andel1 = .[,2]/sum(.[,2])*100, +# andel2 = .[,3]/sum(.[,3])*100) %>% +# arrange(Arbeidsstatus) %>% +# mutate(Variabel = c("Arbeidsstatus", rep('', dim(.)[1]-1))) %>% +# select(6,1,2,4,3,5) %>% +# rename("Alternativer" = "Arbeidsstatus") +# +# +# hovedinntekt <- rapportdata_barn %>% +# filter(!is.na(regtid)) %>% +# summarise(n = n(), +# .by = c(Hovedinntekt, regtid)) %>% +# pivot_wider(names_from = regtid, values_from = n, values_fill = 0) %>% +# mutate(andel1 = .[,2]/sum(.[,2])*100, +# andel2 = .[,3]/sum(.[,3])*100) %>% +# arrange(Hovedinntekt) %>% +# mutate(Variabel = c("Hovedinntekt", rep('', dim(.)[1]-1))) %>% +# select(6,1,2,4,3,5) %>% +# rename("Alternativer" = "Hovedinntekt") + + +sosio_barn <- dplyr::bind_rows(kjonn,alder,sivilstatus,bostatus, egnebarn, + utdanning,arbeidsstatus, hovedinntekt) + +names(sosio_barn) <- c("", "", "Antall 2021-2022", "Andel 2021-2022", "Antall 2023", "Andel 2023") + +write.csv2(sosio_barn, paste0(tabfolder, "sosio_barn.csv"), row.names = F, fileEncoding = "Latin1") + +print(xtable::xtable(sosio_barn, digits=c(0,0,0,0,1,0,1), + align = c('l', 'l','L{1.0in}', 'r', 'r', 'r', 'r'), + caption='Sosiodemografiske data for barn'), + include.rownames=FALSE) + +@ + + +<<'Tabell: plaging', results='asis', echo=FALSE>>= + + +fysiskmisshandling <- rapportdata_voksen %>% + filter(B17FysMishandl %in% 0:1, + !is.na(regtid)) %>% + summarise(antall = sum(B17FysMishandl), + N = n(), + andel = antall/N*100, + .by = c(regtid)) + +psykiskmisshandling <- rapportdata_voksen %>% + filter(B18PsykMishandl %in% 0:1, + !is.na(regtid)) %>% + summarise(antall = sum(B18PsykMishandl), + N = n(), + andel = antall/N*100, + .by = c(regtid)) + +overgrep <- rapportdata_voksen %>% + filter(B19Overgrep %in% 0:1, + !is.na(regtid)) %>% + summarise(antall = sum(B19Overgrep), + N = n(), + andel = antall/N*100, + .by = c(regtid)) + +mobbing <- rapportdata_voksen %>% + filter(B20Mobbing %in% 0:1, + !is.na(regtid)) %>% + summarise(antall = sum(B20Mobbing), + N = n(), + andel = antall/N*100, + .by = c(regtid)) + +selvskading_tidl <- rapportdata_voksen %>% + filter(B21SelvskadTidl %in% 0:1, + !is.na(regtid)) %>% + summarise(antall = sum(B21SelvskadTidl), + N = n(), + andel = antall/N*100, + .by = c(regtid)) + +selvskading_sisteaar <- rapportdata_voksen %>% + filter(B22SelvskadSisteAr %in% 0:1, + !is.na(regtid)) %>% + summarise(antall = sum(B22SelvskadSisteAr), + N = n(), + andel = antall/N*100, + .by = c(regtid)) + +selvmordforsok_tidl <- rapportdata_voksen %>% + filter(B23SelvmordFTidl %in% 0:1, + !is.na(regtid)) %>% + summarise(antall = sum(B23SelvmordFTidl), + N = n(), + andel = antall/N*100, + .by = c(regtid)) + +selvmordforsok_sisteaar <- rapportdata_voksen %>% + filter(B24SelvmordFSisteAr %in% 0:1, + !is.na(regtid)) %>% + summarise(antall = sum(B24SelvmordFSisteAr), + N = n(), + andel = antall/N*100, + .by = c(regtid)) + +avhengighet <- rapportdata_voksen %>% + filter(B25Avhengighet %in% 0:1, + !is.na(regtid)) %>% + summarise(antall = sum(B25Avhengighet), + N = n(), + andel = antall/N*100, + .by = c(regtid)) + + +Tabell_plaging_voksen <- bind_rows( + data.frame(Variabelnavn = "Fysisk mishandling", cbind(fysiskmisshandling[1,2:4], fysiskmisshandling[2,2:4])), + data.frame(Variabelnavn = "Fysisk mishandling", cbind(fysiskmisshandling[1,2:4], fysiskmisshandling[2,2:4]))) %>% + bind_rows( + data.frame(Variabelnavn = "Psykisk mishandling", cbind(psykiskmisshandling[1,2:4], psykiskmisshandling[2,2:4]))) %>% + bind_rows(data.frame(Variabelnavn = "Misbruk/overgrep", cbind(overgrep[1,2:4], overgrep[2,2:4]))) %>% + bind_rows(data.frame(Variabelnavn = "Mobbing", cbind(mobbing[1,2:4], mobbing[2,2:4]))) %>% + bind_rows( + data.frame(Variabelnavn = "Selvskading (>1 år siden)", cbind(selvskading_tidl[1,2:4], selvskading_tidl[2,2:4]))) %>% + bind_rows( + data.frame(Variabelnavn = "Selvskading siste år", cbind(selvskading_sisteaar[1,2:4], selvskading_sisteaar[2,2:4]))) %>% + bind_rows(data.frame(Variabelnavn = "Selvmordsforsøk (>1 år)", cbind(selvmordforsok_tidl[1,2:4], selvmordforsok_tidl[2,2:4]))) %>% + bind_rows( + data.frame(Variabelnavn = "Selvmordsforsøk siste år", cbind(selvmordforsok_sisteaar[1,2:4], selvmordforsok_sisteaar[2,2:4]))) %>% + bind_rows( + data.frame(Variabelnavn = "Misbruk/avhengighet rusmidler/medikamenter", cbind(avhengighet[1,2:4], avhengighet[2,2:4]))) + + + +fysiskmisshandling <- rapportdata_barn %>% + filter(B17FysMishandl %in% 0:1, + !is.na(regtid)) %>% + summarise(antall = sum(B17FysMishandl), + N = n(), + andel = antall/N*100, + .by = c(regtid)) + +psykiskmisshandling <- rapportdata_barn %>% + filter(B18PsykMishandl %in% 0:1, + !is.na(regtid)) %>% + summarise(antall = sum(B18PsykMishandl), + N = n(), + andel = antall/N*100, + .by = c(regtid)) + +overgrep <- rapportdata_barn %>% + filter(B19Overgrep %in% 0:1, + !is.na(regtid)) %>% + summarise(antall = sum(B19Overgrep), + N = n(), + andel = antall/N*100, + .by = c(regtid)) + +mobbing <- rapportdata_barn %>% + filter(B20Mobbing %in% 0:1, + !is.na(regtid)) %>% + summarise(antall = sum(B20Mobbing), + N = n(), + andel = antall/N*100, + .by = c(regtid)) + +selvskading_tidl <- rapportdata_barn %>% + filter(B21SelvskadTidl %in% 0:1, + !is.na(regtid)) %>% + summarise(antall = sum(B21SelvskadTidl), + N = n(), + andel = antall/N*100, + .by = c(regtid)) + +selvskading_sisteaar <- rapportdata_barn %>% + filter(B22SelvskadSisteAr %in% 0:1, + !is.na(regtid)) %>% + summarise(antall = sum(B22SelvskadSisteAr), + N = n(), + andel = antall/N*100, + .by = c(regtid)) + +selvmordforsok_tidl <- rapportdata_barn %>% + filter(B23SelvmordFTidl %in% 0:1, + !is.na(regtid)) %>% + summarise(antall = sum(B23SelvmordFTidl), + N = n(), + andel = antall/N*100, + .by = c(regtid)) + +selvmordforsok_sisteaar <- rapportdata_barn %>% + filter(B24SelvmordFSisteAr %in% 0:1, + !is.na(regtid)) %>% + summarise(antall = sum(B24SelvmordFSisteAr), + N = n(), + andel = antall/N*100, + .by = c(regtid)) +avhengighet <- rapportdata_barn %>% + filter(B25Avhengighet %in% 0:1, + !is.na(regtid)) %>% + summarise(antall = sum(B25Avhengighet), + N = n(), + andel = antall/N*100, + .by = c(regtid)) -print(xtable::xtable(reg_overview, digits=0, - caption='Registration by registration status'), + +Tabell_plaging_barn <- bind_rows( + data.frame(Variabelnavn = "Fysisk mishandling", cbind(fysiskmisshandling[1,2:4], fysiskmisshandling[2,2:4])), + data.frame(Variabelnavn = "Fysisk mishandling", cbind(fysiskmisshandling[1,2:4], fysiskmisshandling[2,2:4]))) %>% + bind_rows( + data.frame(Variabelnavn = "Psykisk mishandling", cbind(psykiskmisshandling[1,2:4], psykiskmisshandling[2,2:4]))) %>% + bind_rows(data.frame(Variabelnavn = "Misbruk/overgrep", cbind(overgrep[1,2:4], overgrep[2,2:4]))) %>% + bind_rows(data.frame(Variabelnavn = "Mobbing", cbind(mobbing[1,2:4], mobbing[2,2:4]))) %>% + bind_rows( + data.frame(Variabelnavn = "Selvskading (>1 år siden)", cbind(selvskading_tidl[1,2:4], selvskading_tidl[2,2:4]))) %>% + bind_rows( + data.frame(Variabelnavn = "Selvskading siste år", cbind(selvskading_sisteaar[1,2:4], selvskading_sisteaar[2,2:4]))) %>% + bind_rows(data.frame(Variabelnavn = "Selvmordsforsøk (>1 år)", cbind(selvmordforsok_tidl[1,2:4], selvmordforsok_tidl[2,2:4]))) %>% + bind_rows( + data.frame(Variabelnavn = "Selvmordsforsøk siste år", cbind(selvmordforsok_sisteaar[1,2:4], selvmordforsok_sisteaar[2,2:4]))) %>% + bind_rows( + data.frame(Variabelnavn = "Misbruk/avhengighet rusmidler/medikamenter", cbind(avhengighet[1,2:4], avhengighet[2,2:4]))) + +write.csv2(Tabell_plaging_voksen, paste0(tabfolder, "negative_hendelser_voksen.csv"), + row.names = F, fileEncoding = "Latin1") +write.csv2(Tabell_plaging_barn, paste0(tabfolder, "negative_hendelser_barn.csv"), + row.names = F, fileEncoding = "Latin1") + + +names(Tabell_plaging_voksen) <- c("", "Antall 2021-2022", "N 2021-2022", "Andel 2021-2022", + "Antall 2023", "N 2023", "Andel 2023") + +print(xtable::xtable(Tabell_plaging_voksen, digits=c(0,0,0,0,1,0,0,1), + align = c('l', 'L{1.0in}', 'R{0.7in}', 'R{0.6in}', 'R{0.7in}', 'R{0.7in}','R{0.6in}','R{0.7in}'), + caption='Negative hendelser mm. voksen'), + include.rownames=FALSE) + +names(Tabell_plaging_barn) <- c("", "Antall 2021-2022", "N 2021-2022", "Andel 2021-2022", + "Antall 2023", "N 2023", "Andel 2023") + +print(xtable::xtable(Tabell_plaging_barn, digits=c(0,0,0,0,1,0,0,1), + align = c('l', 'L{1.0in}', 'R{0.7in}', 'R{0.6in}', 'R{0.7in}', 'R{0.7in}','R{0.6in}','R{0.7in}'), + caption='Negative hendelser mm. barn'), include.rownames=FALSE) @ +<<'Tabell: diagnoser', results='asis', echo=FALSE>>= + +rapportdata_barn <- bind_cols( + rapportdata_barn, + norspis::separer( + rapportdata_barn$DiagBUAkse1, + unique_varnames = c("F500", "F501", "F502", "F503", "F504", + "F505", "F508", "F509", "F982", "F983"))) + +rapportdata_barn <- rapportdata_barn %>% + mutate(F500 = ifelse(F500 | DiagVSF == "F500", TRUE, FALSE), + F501 = ifelse(F501 | DiagVSF == "F501", TRUE, FALSE), + F502 = ifelse(F502 | DiagVSF == "F502", TRUE, FALSE), + F503 = ifelse(F503 | DiagVSF == "F503", TRUE, FALSE), + F504 = ifelse(F504 | DiagVSF == "F504", TRUE, FALSE), + F505 = ifelse(F505 | DiagVSF == "F505", TRUE, FALSE), + F508 = ifelse(F508 | DiagVSF == "F508", TRUE, FALSE), + F509 = ifelse(F509 | DiagVSF == "F509", TRUE, FALSE), + F982 = ifelse(F982 | DiagVSF == "F982", TRUE, FALSE), + F983 = ifelse(F983 | DiagVSF == "F983", TRUE, FALSE)) + +diagnoser_barn <- rapportdata_barn %>% + filter(!is.na(regtid_slutt)) %>% + summarise( + "F50.0 Anorexia nervosa" = sum(F500, na.rm = TRUE), + "F50.1 Atypisk anorexia nervosa" = sum(F501, na.rm = TRUE), + "F50.2 Bulimia nervosa" = sum(F502, na.rm = TRUE), + "F50.3 Atypisk bulimia nervosa" = sum(F503, na.rm = TRUE), + "F50.4 Overspising forbundet med andre psykiske lidelser" = sum(F504, na.rm = TRUE), + "F50.5 Oppkast forbundet med andre psykiske lidelser" = sum(F505, na.rm = TRUE), + "F50.8 Andre spesifiserte spiseforstyrrelser" = sum(F508, na.rm = TRUE), + "F50.9 Uspesifisert spiseforstyrrelse" = sum(F509, na.rm = TRUE), + "F98.2 Spiseforstyrrelse i barndommen" = sum(F982, na.rm = TRUE), + "F98.3 Pica i spedbarns- og barnealder" = sum(F983, na.rm = TRUE), + .by = c(regtid_slutt) + ) %>% + tr_summarize_output(kolnavn1 = "Diagnoser (ICD-10)") %>% + filter(`2021-2022` != 0 | `2023` !=0) + + +diagnoser_voksne <- rapportdata_voksen %>% + filter(!is.na(regtid_slutt)) %>% + select(DiagVSF, regtid_slutt) %>% + table(useNA = 'ifany') %>% + as_tibble() %>% pivot_wider(names_from = regtid_slutt, values_from = n) %>% + filter(DiagVSF %in% c("F500", "F501", "F502", "F503", "F504", + "F505", "F508", "F509", "F982", "F983")) %>% + mutate(DiagVSF = case_match(DiagVSF, + "F500" ~ "F50.0 Anorexia nervosa", + "F501" ~ "F50.1 Atypisk anorexia nervosa", + "F502" ~ "F50.2 Bulimia nervosa", + "F503" ~ "F50.3 Atypisk bulimia nervosa", + "F504" ~ "F50.4 Overspising forbundet med andre psykiske lidelser", + "F505" ~ "F50.5 Oppkast forbundet med andre psykiske lidelser", + "F508" ~ "F50.8 Andre spesifiserte spiseforstyrrelser", + "F509" ~ "F50.9 Uspesifisert spiseforstyrrelse", + "F982" ~ "F98.2 Spiseforstyrrelse i barndommen", + "F983" ~ "F98.3 Pica i spedbarns- og barnealder", + )) %>% + rename("Diagnoser (ICD-10)" = DiagVSF) + + +print(xtable::xtable(diagnoser_barn, digits=0, + align = c('l', 'L{1.2in}', 'r', 'r'), + caption='Diagnoser barn'), + include.rownames=FALSE) + +print(xtable::xtable(diagnoser_voksne, digits=0, + align = c('l', 'L{1.2in}', 'r', 'r'), + caption='Diagnoser voksne'), + include.rownames=FALSE) + +write.csv2(diagnoser_barn, paste0(tabfolder, "diagnoser_barn.csv"), + row.names = F, fileEncoding = "Latin1") +write.csv2(diagnoser_voksne, paste0(tabfolder, "diagnoser_voksne.csv"), + row.names = F, fileEncoding = "Latin1") + +@ + + +<<'Tabell: BMI', results='asis', echo=FALSE>>= + +tmp <- rapportdata_barn %>% + mutate(bmi_kat = factor(bmi_kat, + levels = c("<10", "(10,12.5]", "(12.5,15]", "(15,17.5]", + "(17.5,20]", "(20,25]", "(25,30]", ">30"))) %>% + filter(!is.na(bmi_kat), + !is.na(regtid)) %>% + count(bmi_kat, regtid, .drop = FALSE) %>% + mutate(andel = n/sum(n)*100, .by = regtid) +bmi_start_barn <- dplyr::full_join( + pivot_wider(tmp, id_cols = bmi_kat, + names_from = regtid, values_from = n, values_fill = 0) %>% + select(-2), + pivot_wider(tmp, id_cols = bmi_kat, + names_from = regtid, values_from = andel, values_fill = 0) %>% + select(-2), + by = "bmi_kat", suffix = c("", " andel")) %>% + select(1,2,4,3,5) %>% + rename("BMI" = "bmi_kat") + + +tmp <- rapportdata_barn %>% + mutate(bmi_slutt_kat = factor(bmi_slutt_kat, + levels = c("<10", "(10,12.5]", "(12.5,15]", "(15,17.5]", + "(17.5,20]", "(20,25]", "(25,30]", ">30"))) %>% + filter(!is.na(bmi_slutt_kat), + !is.na(regtid_slutt)) %>% + count(bmi_slutt_kat, regtid_slutt, .drop = FALSE) %>% + mutate(andel = n/sum(n)*100, .by = regtid_slutt) +bmi_slutt_barn <- dplyr::full_join( + pivot_wider(tmp, id_cols = bmi_slutt_kat, + names_from = regtid_slutt, values_from = n, values_fill = 0) %>% + select(-2), + pivot_wider(tmp, id_cols = bmi_slutt_kat, + names_from = regtid_slutt, values_from = andel, values_fill = 0) %>% + select(-2), + by = "bmi_slutt_kat", suffix = c("", " andel")) %>% + select(1,2,4,3,5) %>% + rename("BMI" = "bmi_slutt_kat") + +tmp <- rapportdata_voksen %>% + mutate(bmi_kat = factor(bmi_kat, + levels = c("<10", "(10,12.5]", "(12.5,15]", "(15,17.5]", + "(17.5,20]", "(20,25]", "(25,30]", ">30"))) %>% + filter(!is.na(bmi_kat), + !is.na(regtid)) %>% + count(bmi_kat, regtid, .drop = FALSE) %>% + mutate(andel = n/sum(n)*100, .by = regtid) +bmi_start_voksen <- dplyr::full_join( + pivot_wider(tmp, id_cols = bmi_kat, + names_from = regtid, values_from = n, values_fill = 0), + pivot_wider(tmp, id_cols = bmi_kat, + names_from = regtid, values_from = andel, values_fill = 0), + by = "bmi_kat", suffix = c("", " andel")) %>% + select(1,2,4,3,5) %>% + rename("BMI" = "bmi_kat") + + +tmp <- rapportdata_voksen %>% + mutate(bmi_slutt_kat = factor(bmi_slutt_kat, + levels = c("<10", "(10,12.5]", "(12.5,15]", "(15,17.5]", + "(17.5,20]", "(20,25]", "(25,30]", ">30"))) %>% + filter(!is.na(bmi_slutt_kat), + !is.na(regtid_slutt)) %>% + count(bmi_slutt_kat, regtid_slutt, .drop = FALSE) %>% + mutate(andel = n/sum(n)*100, .by = regtid_slutt) +bmi_slutt_voksen <- dplyr::full_join( + pivot_wider(tmp, id_cols = bmi_slutt_kat, + names_from = regtid_slutt, values_from = n, values_fill = 0) %>% + select(-2), + pivot_wider(tmp, id_cols = bmi_slutt_kat, + names_from = regtid_slutt, values_from = andel, values_fill = 0) %>% + select(-2), + by = "bmi_slutt_kat", suffix = c("", " andel")) %>% + select(1,2,4,3,5) %>% + rename("BMI" = "bmi_slutt_kat") + + + +write.csv2(bmi_start_barn, paste0(tabfolder, "bmi_start_barn.csv"), + row.names = F, fileEncoding = "Latin1") +write.csv2(bmi_slutt_barn, paste0(tabfolder, "bmi_slutt_barn.csv"), + row.names = F, fileEncoding = "Latin1") +write.csv2(bmi_start_voksen, paste0(tabfolder, "bmi_start_voksen.csv"), + row.names = F, fileEncoding = "Latin1") +write.csv2(bmi_slutt_voksen, paste0(tabfolder, "bmi_slutt_voksen.csv"), + row.names = F, fileEncoding = "Latin1") + +names(bmi_start_barn) <- c("BMI", "Antall 2021-2022", "Andel 2021-2022", "Antall 2023", "Andel 2023") +names(bmi_slutt_barn) <- c("BMI", "Antall 2021-2022", "Andel 2021-2022", "Antall 2023", "Andel 2023") +names(bmi_start_voksen) <- c("BMI", "Antall 2021-2022", "Andel 2021-2022", "Antall 2023", "Andel 2023") +names(bmi_slutt_voksen) <- c("BMI", "Antall 2021-2022", "Andel 2021-2022", "Antall 2023", "Andel 2023") + +print(xtable::xtable(bmi_start_barn, digits=c(0,0,0,1,0,1), + align = c('l', 'l', 'r', 'r', 'r', 'r'), + caption='Kroppsmasseindeks (BMI) ved start for barn'), + include.rownames=FALSE) +print(xtable::xtable(bmi_slutt_barn, digits=c(0,0,0,1,0,1), + align = c('l', 'l', 'r', 'r', 'r', 'r'), + caption='Kroppsmasseindeks (BMI) ved slutt for barn'), + include.rownames=FALSE) + +print(xtable::xtable(bmi_start_voksen, digits=c(0,0,0,1,0,1), + align = c('l', 'l', 'r', 'r', 'r', 'r'), + caption='Kroppsmasseindeks (BMI) ved start for voksne'), + include.rownames=FALSE) + +print(xtable::xtable(bmi_slutt_voksen, digits=c(0,0,0,1,0,1), + align = c('l', 'l', 'r', 'r', 'r', 'r'), + caption='Kroppsmasseindeks (BMI) ved slutt for voksne'), + include.rownames=FALSE) + +@ + + + +<<'Tabell: Medikamentell behandling', results='asis', echo=FALSE>>= + +medikament_barn_start <- rapportdata_barn %>% + filter(!is.na(regtid)) %>% + summarise( + "Psykofarmakologisk behandling" = sum(MedPsykofarmaka_start, na.rm = TRUE), + "Antidepressiva" = sum(MedAntidepressiva_start, na.rm = TRUE), + "Benzodiazepiner" = sum(MedBenzodiazepiner_start, na.rm = TRUE), + "Nevroleptika" = sum(MedNevroleptika_start, na.rm = TRUE), + "Annen medikamentell behandling" = sum(MedAnnenMedBeh_start, na.rm = TRUE), + N = sum(MedPsykofarmaka_start %in% 0:1), + .by = c(regtid) + ) %>% + tr_summarize_output(kolnavn1 = "Medikamentell behandling") #%>% +# filter(`2021-2022` != 0 | `2023` !=0) + + +medikament_barn_slutt <- rapportdata_barn %>% + filter(!is.na(regtid_slutt)) %>% + summarise( + "Psykofarmakologisk behandling" = sum(MedPsykofarmaka_slutt, na.rm = TRUE), + "Antidepressiva" = sum(MedAntidepressiva_slutt, na.rm = TRUE), + "Benzodiazepiner" = sum(MedBenzodiazepiner_slutt, na.rm = TRUE), + "Nevroleptika" = sum(MedNevroleptika_slutt, na.rm = TRUE), + "Annen medikamentell behandling" = sum(MedAnnenMedBeh_slutt, na.rm = TRUE), + N = sum(MedPsykofarmaka_start %in% 0:1), + .by = c(regtid_slutt) + ) %>% + tr_summarize_output(kolnavn1 = "Medikamentell behandling") + + +medikament_voksen_start <- rapportdata_voksen %>% + filter(!is.na(regtid)) %>% + summarise( + "Psykofarmakologisk behandling" = sum(MedPsykofarmaka_start, na.rm = TRUE), + "Antidepressiva" = sum(MedAntidepressiva_start, na.rm = TRUE), + "Benzodiazepiner" = sum(MedBenzodiazepiner_start, na.rm = TRUE), + "Nevroleptika" = sum(MedNevroleptika_start, na.rm = TRUE), + "Annen medikamentell behandling" = sum(MedAnnenMedBeh_start, na.rm = TRUE), + N = sum(MedPsykofarmaka_start %in% 0:1), + .by = c(regtid) + ) %>% + tr_summarize_output(kolnavn1 = "Medikamentell behandling") #%>% +# filter(`2021-2022` != 0 | `2023` !=0) + + +medikament_voksen_slutt <- rapportdata_voksen %>% + filter(!is.na(regtid_slutt)) %>% + summarise( + "Psykofarmakologisk behandling" = sum(MedPsykofarmaka_slutt, na.rm = TRUE), + "Antidepressiva" = sum(MedAntidepressiva_slutt, na.rm = TRUE), + "Benzodiazepiner" = sum(MedBenzodiazepiner_slutt, na.rm = TRUE), + "Nevroleptika" = sum(MedNevroleptika_slutt, na.rm = TRUE), + "Annen medikamentell behandling" = sum(MedAnnenMedBeh_slutt, na.rm = TRUE), + N = sum(MedPsykofarmaka_start %in% 0:1), + .by = c(regtid_slutt) + ) %>% + tr_summarize_output(kolnavn1 = "Medikamentell behandling") + + + +print(xtable::xtable(medikament_barn_start, digits=0, + align = c('l', 'l', 'r', 'r'), + caption='Medikamentell behandling ved start for barn'), + include.rownames=FALSE) + + +print(xtable::xtable(medikament_barn_slutt, digits=0, + align = c('l', 'l', 'r', 'r'), + caption='Medikamentell behandling ved slutt for barn'), + include.rownames=FALSE) + +print(xtable::xtable(medikament_voksen_start, digits=0, + align = c('l', 'l', 'r', 'r'), + caption='Medikamentell behandling ved start for voksne'), + include.rownames=FALSE) + + +print(xtable::xtable(medikament_voksen_slutt, digits=0, + align = c('l', 'l', 'r', 'r'), + caption='Medikamentell behandling ved slutt for voksne'), + include.rownames=FALSE) + + +write.csv2(medikament_barn_start, paste0(tabfolder, "medikament_barn_start.csv"), + row.names = F, fileEncoding = "Latin1") +write.csv2(medikament_barn_slutt, paste0(tabfolder, "medikament_barn_slutt.csv"), + row.names = F, fileEncoding = "Latin1") +write.csv2(medikament_voksen_start, paste0(tabfolder, "medikament_voksen_start.csv"), + row.names = F, fileEncoding = "Latin1") +write.csv2(medikament_voksen_slutt, paste0(tabfolder, "medikament_voksen_slutt.csv"), + row.names = F, fileEncoding = "Latin1") + + +@ \end{document} diff --git a/man/separer.Rd b/man/separer.Rd new file mode 100644 index 0000000..7ecf391 --- /dev/null +++ b/man/separer.Rd @@ -0,0 +1,31 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/stottefunksjoner.R +\name{separer} +\alias{separer} +\title{Trekk ut diagnoser fra kolonne med kommaseparerte diagnoser til separate +kolonner} +\usage{ +separer(variable, separator = ",", unique_varnames = NULL) +} +\arguments{ +\item{variable}{\itemize{ +\item kolonnen som skal splittes i flere +}} + +\item{separator}{\itemize{ +\item separator mellom elementer i tekststreng. Overflødig hvis +unique_varnames gis som input +}} + +\item{unique_varnames}{\itemize{ +\item vektor med navnene som skal trekkes ut i nye kolonner, må/bør +samsvare med navn som eksisterer i kolonnen som skal splittes +}} +} +\value{ +En dataramme med separerte variabler +} +\description{ +Trekk ut diagnoser fra kolonne med kommaseparerte diagnoser til separate +kolonner +} diff --git a/man/tr_summarize_output.Rd b/man/tr_summarize_output.Rd new file mode 100644 index 0000000..18fa9b9 --- /dev/null +++ b/man/tr_summarize_output.Rd @@ -0,0 +1,18 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/stottefunksjoner.R +\name{tr_summarize_output} +\alias{tr_summarize_output} +\title{Transponer output fra dplyr::summarise} +\usage{ +tr_summarize_output(x, kolnavn1 = "") +} +\value{ +tr_frame Den transponerte av inputen +} +\description{ +Denne funksjonen tar som input resultatet av dplyr::summarise og returnerer dens +transponerte uten at formatene endres. +} +\details{ +Her kan detaljer skrives +} From 0bc7fe4aa49a6e1e07dad5e0bffbf23e614dc6bd Mon Sep 17 00:00:00 2001 From: kevinthon Date: Mon, 27 May 2024 11:30:20 +0200 Subject: [PATCH 06/10] modifikasjoner indikatorer --- R/modul_indikatorer.R | 8 +- R/norspisBeregnIndikator.R | 257 +++++++++++++++++++++++++------------ 2 files changed, 180 insertions(+), 85 deletions(-) diff --git a/R/modul_indikatorer.R b/R/modul_indikatorer.R index 84b144a..7f71374 100644 --- a/R/modul_indikatorer.R +++ b/R/modul_indikatorer.R @@ -17,13 +17,17 @@ indikatorfig_UI <- function(id){ "Symptomreduksjon EDEQ, barn/ungdom" = "norspis_KI1_symptomreduksjon_EDEQ_BU", "Bedring i livskvalitet, voksne" = "norspis_KI2_funksjonsbedring_CIA_V", "Bedring i livskvalitet, barn/ungdom" = "norspis_KI2_funksjonsbedring_CIA_BU", - "Endring i undervektsstatus" = "norspis_KI3_undervektsreduksjon", + "Endring i undervektsstatus, voksne" = "norspis_KI3_undervektsreduksjon_V", + "Endring i undervektsstatus, barn/ungdom" = "norspis_KI3_undervektsreduksjon_BU", "Utfallsvurdering, voksne" = "norspis_KI4_utfallsvurdering_V", "Utfallsvurdering, barn/ungdom" = "norspis_KI4_utfallsvurdering_BU", "Familie/venner involvert i behandlingen, voksne" = "norspis_involvering_famlie_venner_V", "Familie/venner involvert i behandlingen, barn/ungdom" = "norspis_involvering_famlie_venner_BU", - "Blodprøver ved start, undervektige" = "norspis_undervekt_prodprove", + "Blodprøver ved start, undervektige, voksne" = "norspis_undervekt_prodprove_V", + "Blodprøver ved start, undervektige, barn/ungdom" = "norspis_undervekt_prodprove_BU", "Blodprøver ved start, oppkast" = "norspis_oppkast_prodprove", + "Blodprøver ved start, oppkast, voksne" = "norspis_oppkast_prodprove_V", + "Blodprøver ved start, oppkast, barn/ungdom" = "norspis_oppkast_prodprove_BU", "Beintetthetsmåling ved start, undervektige voksne" = "norspis_beintetthetsmaling_V", "Beintetthetsmåling ved start, undervektige barn/ungdom" = "norspis_beintetthetsmaling_BU" ) diff --git a/R/norspisBeregnIndikator.R b/R/norspisBeregnIndikator.R index b13c0b2..dc82e4f 100644 --- a/R/norspisBeregnIndikator.R +++ b/R/norspisBeregnIndikator.R @@ -20,16 +20,17 @@ norspisBeregnIndikator <- function(RegData, ind_id = "norspis_KI1_symptomreduksj Indikator <- RegData %>% dplyr::filter(!is.na(EDEQ60GlobalScore_start), - !is.na(EDEQ60GlobalScore_slutt), - Over18_start) %>% + !is.na(EDEQ60GlobalScore_slutt), + AvdBUV_start == "V") %>% + # Over18_start) %>% dplyr::mutate(year = format(RegHendelsesdato_slutt, "%Y") %>% as.numeric()) %>% dplyr::mutate(var = ifelse((EDEQ60GlobalScore_start-EDEQ60GlobalScore_slutt) >= 0.9, - 1, 0), - denominator = 1) %>% + 1, 0), + denominator = 1) %>% dplyr::select(AvdRESH, year, var, denominator, Kortnavn, AvdBUV_start) %>% dplyr::rename(SykehusNavn = Kortnavn) %>% dplyr::mutate(ind_id = ind_id, - context = "caregiver") + context = "caregiver") maal <- 50 tittel <- c("Andelen med klinisk signifikant", "bedring i spiseforstyrrelsessymptomer (V)") } @@ -38,16 +39,17 @@ norspisBeregnIndikator <- function(RegData, ind_id = "norspis_KI1_symptomreduksj Indikator <- RegData %>% dplyr::filter(!is.na(EDEQ60GlobalScore_start), - !is.na(EDEQ60GlobalScore_slutt), - !Over18_start) %>% + !is.na(EDEQ60GlobalScore_slutt), + AvdBUV_start == "BU") %>% + # Over18_start) %>% dplyr::mutate(year = format(RegHendelsesdato_slutt, "%Y") %>% as.numeric()) %>% dplyr::mutate(var = ifelse((EDEQ60GlobalScore_start-EDEQ60GlobalScore_slutt) >= 0.9, - 1, 0), - denominator = 1) %>% + 1, 0), + denominator = 1) %>% dplyr::select(AvdRESH, year, var, denominator, Kortnavn, AvdBUV_start) %>% dplyr::rename(SykehusNavn = Kortnavn) %>% dplyr::mutate(ind_id = ind_id, - context = "caregiver") + context = "caregiver") maal <- 70 tittel <- c("Andelen med klinisk signifikant", "bedring i spiseforstyrrelsessymptomer (BU)") } @@ -57,16 +59,17 @@ norspisBeregnIndikator <- function(RegData, ind_id = "norspis_KI1_symptomreduksj Indikator <- RegData %>% dplyr::filter(!is.na(CIA30GlobalScore_slutt), - !is.na(CIA30GlobalScore_start), - Over18_start) %>% + !is.na(CIA30GlobalScore_start), + AvdBUV_start == "V") %>% + # Over18_start) %>% dplyr::mutate(year = format(RegHendelsesdato_slutt, "%Y") %>% as.numeric()) %>% dplyr::mutate(var = ifelse((CIA30GlobalScore_start-CIA30GlobalScore_slutt) >= 7, - 1, 0), - denominator = 1) %>% + 1, 0), + denominator = 1) %>% dplyr::select(AvdRESH, year, var, denominator, Kortnavn, AvdBUV_start) %>% dplyr::rename(SykehusNavn = Kortnavn) %>% dplyr::mutate(ind_id = ind_id, - context = "caregiver") + context = "caregiver") maal <- 50 tittel <- c("Andelen med bedring i", "funksjon/livskvalitet (V)") } @@ -75,41 +78,65 @@ norspisBeregnIndikator <- function(RegData, ind_id = "norspis_KI1_symptomreduksj Indikator <- RegData %>% dplyr::filter(!is.na(CIA30GlobalScore_slutt), - !is.na(CIA30GlobalScore_start), - !Over18_start) %>% + !is.na(CIA30GlobalScore_start), + AvdBUV_start == "BU") %>% + # Over18_start) %>% dplyr::mutate(year = format(RegHendelsesdato_slutt, "%Y") %>% as.numeric()) %>% dplyr::mutate(var = ifelse((CIA30GlobalScore_start-CIA30GlobalScore_slutt) >= 7, - 1, 0), - denominator = 1) %>% + 1, 0), + denominator = 1) %>% dplyr::select(AvdRESH, year, var, denominator, Kortnavn, AvdBUV_start) %>% dplyr::rename(SykehusNavn = Kortnavn) %>% dplyr::mutate(ind_id = ind_id, - context = "caregiver") + context = "caregiver") maal <- 70 tittel <- c("Andelen med bedring i", "funksjon/livskvalitet (BU)") } - if (ind_id == "norspis_KI3_undervektsreduksjon") { + if (ind_id == "norspis_KI3_undervektsreduksjon_V") { Indikator <- RegData %>% dplyr::mutate(bmi = ifelse(!is.na(MedIsoBMIBGS_start), - MedIsoBMIBGS_start, MedBMI_start), - bmi_slutt = ifelse(!is.na(MedIsoBMIBGS_slutt), - MedIsoBMIBGS_slutt, MedBMI_slutt)) %>% + MedIsoBMIBGS_start, MedBMI_start), + bmi_slutt = ifelse(!is.na(MedIsoBMIBGS_slutt), + MedIsoBMIBGS_slutt, MedBMI_slutt)) %>% dplyr::filter(!is.na(bmi), - bmi < 18.5, - !is.na(bmi_slutt)) %>% + bmi < 18.5, + !is.na(bmi_slutt), + AvdBUV_start == "V") %>% dplyr::mutate(var = ifelse(bmi_slutt >= 18.5, 1, 0), - denominator = 1, - year = format(RegHendelsesdato_slutt, "%Y") %>% as.numeric()) %>% + denominator = 1, + year = format(RegHendelsesdato_slutt, "%Y") %>% as.numeric()) %>% dplyr::select(AvdRESH, year, var, denominator, Kortnavn, AvdBUV_start) %>% dplyr::rename(SykehusNavn = Kortnavn) %>% dplyr::mutate(ind_id = ind_id, - context = "caregiver") + context = "caregiver") maal <- 60 - tittel <- c("Andelen med endring av undervektstatus", "til ikke undervektig ved slutt") + tittel <- c("Andelen med endring av undervektstatus", "til ikke undervektig ved slutt (V)") + } + + if (ind_id == "norspis_KI3_undervektsreduksjon_BU") { + + Indikator <- RegData %>% + dplyr::mutate(bmi = ifelse(!is.na(MedIsoBMIBGS_start), + MedIsoBMIBGS_start, MedBMI_start), + bmi_slutt = ifelse(!is.na(MedIsoBMIBGS_slutt), + MedIsoBMIBGS_slutt, MedBMI_slutt)) %>% + dplyr::filter(!is.na(bmi), + bmi < 18.5, + !is.na(bmi_slutt), + AvdBUV_start == "BU") %>% + dplyr::mutate(var = ifelse(bmi_slutt >= 18.5, 1, 0), + denominator = 1, + year = format(RegHendelsesdato_slutt, "%Y") %>% as.numeric()) %>% + dplyr::select(AvdRESH, year, var, denominator, Kortnavn, AvdBUV_start) %>% + dplyr::rename(SykehusNavn = Kortnavn) %>% + dplyr::mutate(ind_id = ind_id, + context = "caregiver") + maal <- 60 + tittel <- c("Andelen med endring av undervektstatus", "til ikke undervektig ved slutt (BU)") } @@ -117,15 +144,16 @@ norspisBeregnIndikator <- function(RegData, ind_id = "norspis_KI1_symptomreduksj Indikator <- RegData %>% dplyr::filter(!is.na(PT03Utfallsvurd), - PT03Utfallsvurd != 9, - Over18_start) %>% + PT03Utfallsvurd != 9, + AvdBUV_start == "V") %>% + # Over18_start) %>% dplyr::mutate(var = ifelse(PT03Utfallsvurd %in% 1:2, 1, 0), - denominator = 1, - year = format(RegHendelsesdato_slutt, "%Y") %>% as.numeric()) %>% + denominator = 1, + year = format(RegHendelsesdato_slutt, "%Y") %>% as.numeric()) %>% dplyr::select(AvdRESH, year, var, denominator, Kortnavn, AvdBUV_start) %>% dplyr::rename(SykehusNavn = Kortnavn) %>% dplyr::mutate(ind_id = ind_id, - context = "caregiver") + context = "caregiver") maal <- 50 tittel <- c("Andelen som rapporterer \"Klar bedring\"", "eller \"Ikke noe problem lenger\" (V)") } @@ -134,15 +162,16 @@ norspisBeregnIndikator <- function(RegData, ind_id = "norspis_KI1_symptomreduksj Indikator <- RegData %>% dplyr::filter(!is.na(PT03Utfallsvurd), - PT03Utfallsvurd != 9, - !Over18_start) %>% + PT03Utfallsvurd != 9, + AvdBUV_start == "BU") %>% + # Over18_start) %>% dplyr::mutate(var = ifelse(PT03Utfallsvurd %in% 1:2, 1, 0), - denominator = 1, - year = format(RegHendelsesdato_slutt, "%Y") %>% as.numeric()) %>% + denominator = 1, + year = format(RegHendelsesdato_slutt, "%Y") %>% as.numeric()) %>% dplyr::select(AvdRESH, year, var, denominator, Kortnavn, AvdBUV_start) %>% dplyr::rename(SykehusNavn = Kortnavn) %>% dplyr::mutate(ind_id = ind_id, - context = "caregiver") + context = "caregiver") maal <- 70 tittel <- c("Andelen som rapporterer \"Klar bedring\"", "eller \"Ikke noe problem lenger\" (BU)") } @@ -151,90 +180,152 @@ norspisBeregnIndikator <- function(RegData, ind_id = "norspis_KI1_symptomreduksj Indikator <- RegData %>% dplyr::filter(!is.na(PT02BleInvolv) & PT02BleInvolv!= 9, - !Over18_start) %>% + !Over18_start) %>% dplyr::mutate(year = format(RegHendelsesdato_slutt, "%Y") %>% as.numeric(), - var = PT02BleInvolv, - denominator = 1) %>% + var = PT02BleInvolv, + denominator = 1) %>% dplyr::select(AvdRESH, year, var, denominator, Kortnavn, AvdBUV_start) %>% dplyr::rename(SykehusNavn = Kortnavn) %>% dplyr::mutate(ind_id = ind_id, - context = "caregiver") + context = "caregiver") maal <- 100 - tittel <- c("Andelen som rapporterer at familie og/eller", "venner ble involvert i behandlingen (BU)") + tittel <- c("Andelen som rapporterer at familie og/eller", + "venner ble involvert i behandlingen,", + "av pasientene som ønsket involvering (BU).") } if (ind_id == "norspis_involvering_famlie_venner_V") { Indikator <- RegData %>% dplyr::filter(PT01OnsketInvolv == 1, - !is.na(PT02BleInvolv) & PT02BleInvolv != 9, - Over18_start) %>% + !is.na(PT02BleInvolv) & PT02BleInvolv != 9, + Over18_start) %>% dplyr::mutate(year = format(RegHendelsesdato_slutt, "%Y") %>% as.numeric(), - var = PT02BleInvolv, - denominator = 1) %>% + var = PT02BleInvolv, + denominator = 1) %>% dplyr::select(AvdRESH, year, var, denominator, Kortnavn, AvdBUV_start) %>% dplyr::rename(SykehusNavn = Kortnavn) %>% dplyr::mutate(ind_id = ind_id, - context = "caregiver") + context = "caregiver") maal <- 100 - tittel <- c("Andelen som rapporterer at familie og/eller", "venner ble involvert i behandlingen (V)") + tittel <- c("Andelen som rapporterer at familie og/eller", + "venner ble involvert i behandlingen,", + "av pasientene som ønsket involvering (V).") + } + + if (ind_id == "norspis_undervekt_prodprove_V") { + + Indikator <- RegData %>% + dplyr::mutate(bmi = ifelse(!is.na(MedIsoBMIBGS_start), + MedIsoBMIBGS_start, MedBMI_start)) %>% + dplyr::filter(!is.na(bmi), + bmi < 18.5, + MedBlodprove_start %in% c(0,1), + AvdBUV_start == "V") %>% + dplyr::mutate(var = MedBlodprove_start, + denominator = 1, + year = format(RegHendelsesdato_start, "%Y") %>% as.numeric()) %>% + dplyr::select(AvdRESH, year, var, denominator, Kortnavn, AvdBUV_start) %>% + dplyr::rename(SykehusNavn = Kortnavn) %>% + dplyr::mutate(ind_id = ind_id, + context = "caregiver") + maal <- 90 + tittel <- c("Andelen undervektige pasienter (BMI < 18,5) ved ", "start, der det er tatt blodprøver ved start (V).") } - if (ind_id == "norspis_undervekt_prodprove") { + if (ind_id == "norspis_undervekt_prodprove_BU") { Indikator <- RegData %>% dplyr::mutate(bmi = ifelse(!is.na(MedIsoBMIBGS_start), - MedIsoBMIBGS_start, MedBMI_start)) %>% + MedIsoBMIBGS_start, MedBMI_start)) %>% dplyr::filter(!is.na(bmi), - bmi < 18.5, - MedBlodprove_start %in% c(0,1)) %>% + bmi < 18.5, + MedBlodprove_start %in% c(0,1), + AvdBUV_start == "BU") %>% dplyr::mutate(var = MedBlodprove_start, - denominator = 1, - year = format(RegHendelsesdato_start, "%Y") %>% as.numeric()) %>% + denominator = 1, + year = format(RegHendelsesdato_start, "%Y") %>% as.numeric()) %>% dplyr::select(AvdRESH, year, var, denominator, Kortnavn, AvdBUV_start) %>% dplyr::rename(SykehusNavn = Kortnavn) %>% dplyr::mutate(ind_id = ind_id, - context = "caregiver") + context = "caregiver") maal <- 90 - tittel <- c("Andelen undervektige pasienter (BMI < 18,5) ved ", "start, der det er tatt blodprøver ved start.") + tittel <- c("Andelen undervektige pasienter (BMI < 18,5) ved ", "start, der det er tatt blodprøver ved start (BU).") } if (ind_id == "norspis_oppkast_prodprove") { Indikator <- RegData %>% dplyr::filter(!is.na(EDE16GgrOppkast_start), - MedBlodprove_start %in% c(0,1)) %>% + EDE16GgrOppkast_start >= 32, + MedBlodprove_start %in% c(0,1)) %>% dplyr::mutate(var = MedBlodprove_start, - denominator = 1, - year = format(RegHendelsesdato_start, "%Y") %>% as.numeric()) %>% + denominator = 1, + year = format(RegHendelsesdato_start, "%Y") %>% as.numeric()) %>% dplyr::select(AvdRESH, year, var, denominator, Kortnavn, AvdBUV_start) %>% dplyr::rename(SykehusNavn = Kortnavn) %>% dplyr::mutate(ind_id = ind_id, - context = "caregiver") + context = "caregiver") maal <- 90 tittel <- c("Andelen med alvorlig eller ekstremt oppkast ved", "start, der det er tatt blodprøver ved start.") } + if (ind_id == "norspis_oppkast_prodprove_V") { + + Indikator <- RegData %>% + dplyr::filter(!is.na(EDE16GgrOppkast_start), + EDE16GgrOppkast_start >= 32, + MedBlodprove_start %in% c(0,1), + AvdBUV_start == "V") %>% + dplyr::mutate(var = MedBlodprove_start, + denominator = 1, + year = format(RegHendelsesdato_start, "%Y") %>% as.numeric()) %>% + dplyr::select(AvdRESH, year, var, denominator, Kortnavn, AvdBUV_start) %>% + dplyr::rename(SykehusNavn = Kortnavn) %>% + dplyr::mutate(ind_id = ind_id, + context = "caregiver") + maal <- 90 + tittel <- c("Andelen med alvorlig eller ekstremt oppkast ved", "start, der det er tatt blodprøver ved start (V).") + } + + if (ind_id == "norspis_oppkast_prodprove_BU") { + + Indikator <- RegData %>% + dplyr::filter(!is.na(EDE16GgrOppkast_start), + EDE16GgrOppkast_start >= 32, + MedBlodprove_start %in% c(0,1), + AvdBUV_start == "BU") %>% + dplyr::mutate(var = MedBlodprove_start, + denominator = 1, + year = format(RegHendelsesdato_start, "%Y") %>% as.numeric()) %>% + dplyr::select(AvdRESH, year, var, denominator, Kortnavn, AvdBUV_start) %>% + dplyr::rename(SykehusNavn = Kortnavn) %>% + dplyr::mutate(ind_id = ind_id, + context = "caregiver") + maal <- 90 + tittel <- c("Andelen med alvorlig eller ekstremt oppkast ved", "start, der det er tatt blodprøver ved start (BU).") + } + if (ind_id == "norspis_beintetthetsmaling_V") { Indikator <- RegData %>% dplyr::mutate(bmi = ifelse(!is.na(MedIsoBMIBGS_start), - MedIsoBMIBGS_start, MedBMI_start), - BeintetthMaling = ifelse(MedBeintetthMaling_start == 1 | - MedBeintetthMaling_slutt == 1, - 1, 0)) %>% + MedIsoBMIBGS_start, MedBMI_start), + BeintetthMaling = ifelse(MedBeintetthMaling_start == 1 | + MedBeintetthMaling_slutt == 1, + 1, 0)) %>% dplyr::filter(Over18_start, - bmi < 18.5, - MedBeintetthMaling_start %in% 0:1 | - MedBeintetthMaling_slutt %in% 0:1) %>% + bmi < 18.5, + MedBeintetthMaling_start %in% 0:1 | + MedBeintetthMaling_slutt %in% 0:1) %>% dplyr::mutate(BeintetthMaling = ifelse(is.na(BeintetthMaling), 0, BeintetthMaling)) %>% dplyr::mutate(var = BeintetthMaling, - denominator = 1, - year = format(RegHendelsesdato_start, "%Y") %>% as.numeric()) %>% + denominator = 1, + year = format(RegHendelsesdato_start, "%Y") %>% as.numeric()) %>% dplyr::select(AvdRESH, year, var, denominator, Kortnavn, AvdBUV_start) %>% dplyr::rename(SykehusNavn = Kortnavn) %>% dplyr::mutate(ind_id = ind_id, - context = "caregiver") + context = "caregiver") maal <- 90 tittel <- c("Andelen undervektige ved start der det", "oppgis at det er gjort en beintetthetsmåling (V)") } @@ -243,22 +334,22 @@ norspisBeregnIndikator <- function(RegData, ind_id = "norspis_KI1_symptomreduksj Indikator <- RegData %>% dplyr::mutate(bmi = ifelse(!is.na(MedIsoBMIBGS_start), - MedIsoBMIBGS_start, MedBMI_start), - BeintetthMaling = ifelse(MedBeintetthMaling_start == 1 | - MedBeintetthMaling_slutt == 1, - 1, 0)) %>% + MedIsoBMIBGS_start, MedBMI_start), + BeintetthMaling = ifelse(MedBeintetthMaling_start == 1 | + MedBeintetthMaling_slutt == 1, + 1, 0)) %>% dplyr::filter(!Over18_start, - bmi < 18.5, - MedBeintetthMaling_start %in% 0:1 | - MedBeintetthMaling_slutt %in% 0:1) %>% + bmi < 18.5, + MedBeintetthMaling_start %in% 0:1 | + MedBeintetthMaling_slutt %in% 0:1) %>% dplyr::mutate(BeintetthMaling = ifelse(is.na(BeintetthMaling), 0, BeintetthMaling)) %>% dplyr::mutate(var = BeintetthMaling, - denominator = 1, - year = format(RegHendelsesdato_start, "%Y") %>% as.numeric()) %>% + denominator = 1, + year = format(RegHendelsesdato_start, "%Y") %>% as.numeric()) %>% dplyr::select(AvdRESH, year, var, denominator, Kortnavn, AvdBUV_start) %>% dplyr::rename(SykehusNavn = Kortnavn) %>% dplyr::mutate(ind_id = ind_id, - context = "caregiver") + context = "caregiver") maal <- 90 tittel <- c("Andelen undervektige ved start der det", "oppgis at det er gjort en beintetthetsmåling (BU)") } From a9d16deea4a3b5c669d2e73e756c74c8ca1d14c6 Mon Sep 17 00:00:00 2001 From: kevinthon Date: Mon, 27 May 2024 12:47:17 +0200 Subject: [PATCH 07/10] =?UTF-8?q?Alltid=20vis=20m=C3=A5lniv=C3=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- R/norspisPlotIndikator.R | 3 +++ 1 file changed, 3 insertions(+) diff --git a/R/norspisPlotIndikator.R b/R/norspisPlotIndikator.R index 8632d09..b66efbb 100644 --- a/R/norspisPlotIndikator.R +++ b/R/norspisPlotIndikator.R @@ -109,6 +109,9 @@ norspisPlotIndikator <- function(indikatordata, graaUt=NA, outfile = '', } else { xmax <- min(100, 1.15*max(andeler[,-1], na.rm = T)) } + if (!is.na(maal)) { + xmax <- min(100, max(1.15*maal, xmax), na.rm = T) + } ypos <- barplot( t(andeler[,dim(andeler)[2]]), beside=T, las=1, xlim=c(0,xmax), From 5c2675aa446eea5b9ecfc35f8963798ffe43913d Mon Sep 17 00:00:00 2001 From: kevinthon Date: Fri, 7 Jun 2024 12:57:39 +0200 Subject: [PATCH 08/10] Fiks indikatordefinisjoner --- R/modul_indikatorer.R | 1 - R/norspisBeregnIndikator.R | 26 ++++---------------------- 2 files changed, 4 insertions(+), 23 deletions(-) diff --git a/R/modul_indikatorer.R b/R/modul_indikatorer.R index 7f71374..bffea33 100644 --- a/R/modul_indikatorer.R +++ b/R/modul_indikatorer.R @@ -25,7 +25,6 @@ indikatorfig_UI <- function(id){ "Familie/venner involvert i behandlingen, barn/ungdom" = "norspis_involvering_famlie_venner_BU", "Blodprøver ved start, undervektige, voksne" = "norspis_undervekt_prodprove_V", "Blodprøver ved start, undervektige, barn/ungdom" = "norspis_undervekt_prodprove_BU", - "Blodprøver ved start, oppkast" = "norspis_oppkast_prodprove", "Blodprøver ved start, oppkast, voksne" = "norspis_oppkast_prodprove_V", "Blodprøver ved start, oppkast, barn/ungdom" = "norspis_oppkast_prodprove_BU", "Beintetthetsmåling ved start, undervektige voksne" = "norspis_beintetthetsmaling_V", diff --git a/R/norspisBeregnIndikator.R b/R/norspisBeregnIndikator.R index dc82e4f..af9ff27 100644 --- a/R/norspisBeregnIndikator.R +++ b/R/norspisBeregnIndikator.R @@ -190,8 +190,7 @@ norspisBeregnIndikator <- function(RegData, ind_id = "norspis_KI1_symptomreduksj context = "caregiver") maal <- 100 tittel <- c("Andelen som rapporterer at familie og/eller", - "venner ble involvert i behandlingen,", - "av pasientene som ønsket involvering (BU).") + "venner ble involvert i behandlingen (BU)") } if (ind_id == "norspis_involvering_famlie_venner_V") { @@ -253,23 +252,6 @@ norspisBeregnIndikator <- function(RegData, ind_id = "norspis_KI1_symptomreduksj tittel <- c("Andelen undervektige pasienter (BMI < 18,5) ved ", "start, der det er tatt blodprøver ved start (BU).") } - if (ind_id == "norspis_oppkast_prodprove") { - - Indikator <- RegData %>% - dplyr::filter(!is.na(EDE16GgrOppkast_start), - EDE16GgrOppkast_start >= 32, - MedBlodprove_start %in% c(0,1)) %>% - dplyr::mutate(var = MedBlodprove_start, - denominator = 1, - year = format(RegHendelsesdato_start, "%Y") %>% as.numeric()) %>% - dplyr::select(AvdRESH, year, var, denominator, Kortnavn, AvdBUV_start) %>% - dplyr::rename(SykehusNavn = Kortnavn) %>% - dplyr::mutate(ind_id = ind_id, - context = "caregiver") - maal <- 90 - tittel <- c("Andelen med alvorlig eller ekstremt oppkast ved", "start, der det er tatt blodprøver ved start.") - } - if (ind_id == "norspis_oppkast_prodprove_V") { Indikator <- RegData %>% @@ -284,7 +266,7 @@ norspisBeregnIndikator <- function(RegData, ind_id = "norspis_KI1_symptomreduksj dplyr::rename(SykehusNavn = Kortnavn) %>% dplyr::mutate(ind_id = ind_id, context = "caregiver") - maal <- 90 + maal <- 100 tittel <- c("Andelen med alvorlig eller ekstremt oppkast ved", "start, der det er tatt blodprøver ved start (V).") } @@ -302,7 +284,7 @@ norspisBeregnIndikator <- function(RegData, ind_id = "norspis_KI1_symptomreduksj dplyr::rename(SykehusNavn = Kortnavn) %>% dplyr::mutate(ind_id = ind_id, context = "caregiver") - maal <- 90 + maal <- 100 tittel <- c("Andelen med alvorlig eller ekstremt oppkast ved", "start, der det er tatt blodprøver ved start (BU).") } @@ -350,7 +332,7 @@ norspisBeregnIndikator <- function(RegData, ind_id = "norspis_KI1_symptomreduksj dplyr::rename(SykehusNavn = Kortnavn) %>% dplyr::mutate(ind_id = ind_id, context = "caregiver") - maal <- 90 + maal <- NA tittel <- c("Andelen undervektige ved start der det", "oppgis at det er gjort en beintetthetsmåling (BU)") } From dd275690c90ce3e0d6a2a487f073087e8c5103b7 Mon Sep 17 00:00:00 2001 From: kevinthon Date: Wed, 19 Jun 2024 09:40:59 +0200 Subject: [PATCH 09/10] fiks indikator id --- R/modul_indikatorer.R | 12 +++--- R/norspisBeregnIndikator.R | 12 +++--- doc/indikatorer_behandlingskvalitet.R | 54 +++++++++++++++++++++++++++ 3 files changed, 66 insertions(+), 12 deletions(-) create mode 100644 doc/indikatorer_behandlingskvalitet.R diff --git a/R/modul_indikatorer.R b/R/modul_indikatorer.R index bffea33..3b5d455 100644 --- a/R/modul_indikatorer.R +++ b/R/modul_indikatorer.R @@ -21,12 +21,12 @@ indikatorfig_UI <- function(id){ "Endring i undervektsstatus, barn/ungdom" = "norspis_KI3_undervektsreduksjon_BU", "Utfallsvurdering, voksne" = "norspis_KI4_utfallsvurdering_V", "Utfallsvurdering, barn/ungdom" = "norspis_KI4_utfallsvurdering_BU", - "Familie/venner involvert i behandlingen, voksne" = "norspis_involvering_famlie_venner_V", - "Familie/venner involvert i behandlingen, barn/ungdom" = "norspis_involvering_famlie_venner_BU", - "Blodprøver ved start, undervektige, voksne" = "norspis_undervekt_prodprove_V", - "Blodprøver ved start, undervektige, barn/ungdom" = "norspis_undervekt_prodprove_BU", - "Blodprøver ved start, oppkast, voksne" = "norspis_oppkast_prodprove_V", - "Blodprøver ved start, oppkast, barn/ungdom" = "norspis_oppkast_prodprove_BU", + "Familie/venner involvert i behandlingen, voksne" = "norspis_involvering_familie_venner_V", + "Familie/venner involvert i behandlingen, barn/ungdom" = "norspis_involvering_familie_venner_BU", + "Blodprøver ved start, undervektige, voksne" = "norspis_undervekt_blodprove_V", + "Blodprøver ved start, undervektige, barn/ungdom" = "norspis_undervekt_blodprove_BU", + "Blodprøver ved start, oppkast, voksne" = "norspis_oppkast_blodprove_V", + "Blodprøver ved start, oppkast, barn/ungdom" = "norspis_oppkast_blodprove_BU", "Beintetthetsmåling ved start, undervektige voksne" = "norspis_beintetthetsmaling_V", "Beintetthetsmåling ved start, undervektige barn/ungdom" = "norspis_beintetthetsmaling_BU" ) diff --git a/R/norspisBeregnIndikator.R b/R/norspisBeregnIndikator.R index af9ff27..5b31bcb 100644 --- a/R/norspisBeregnIndikator.R +++ b/R/norspisBeregnIndikator.R @@ -176,7 +176,7 @@ norspisBeregnIndikator <- function(RegData, ind_id = "norspis_KI1_symptomreduksj tittel <- c("Andelen som rapporterer \"Klar bedring\"", "eller \"Ikke noe problem lenger\" (BU)") } - if (ind_id == "norspis_involvering_famlie_venner_BU") { + if (ind_id == "norspis_involvering_familie_venner_BU") { Indikator <- RegData %>% dplyr::filter(!is.na(PT02BleInvolv) & PT02BleInvolv!= 9, @@ -193,7 +193,7 @@ norspisBeregnIndikator <- function(RegData, ind_id = "norspis_KI1_symptomreduksj "venner ble involvert i behandlingen (BU)") } - if (ind_id == "norspis_involvering_famlie_venner_V") { + if (ind_id == "norspis_involvering_familie_venner_V") { Indikator <- RegData %>% dplyr::filter(PT01OnsketInvolv == 1, @@ -212,7 +212,7 @@ norspisBeregnIndikator <- function(RegData, ind_id = "norspis_KI1_symptomreduksj "av pasientene som ønsket involvering (V).") } - if (ind_id == "norspis_undervekt_prodprove_V") { + if (ind_id == "norspis_undervekt_blodprove_V") { Indikator <- RegData %>% dplyr::mutate(bmi = ifelse(!is.na(MedIsoBMIBGS_start), @@ -232,7 +232,7 @@ norspisBeregnIndikator <- function(RegData, ind_id = "norspis_KI1_symptomreduksj tittel <- c("Andelen undervektige pasienter (BMI < 18,5) ved ", "start, der det er tatt blodprøver ved start (V).") } - if (ind_id == "norspis_undervekt_prodprove_BU") { + if (ind_id == "norspis_undervekt_blodprove_BU") { Indikator <- RegData %>% dplyr::mutate(bmi = ifelse(!is.na(MedIsoBMIBGS_start), @@ -252,7 +252,7 @@ norspisBeregnIndikator <- function(RegData, ind_id = "norspis_KI1_symptomreduksj tittel <- c("Andelen undervektige pasienter (BMI < 18,5) ved ", "start, der det er tatt blodprøver ved start (BU).") } - if (ind_id == "norspis_oppkast_prodprove_V") { + if (ind_id == "norspis_oppkast_blodprove_V") { Indikator <- RegData %>% dplyr::filter(!is.na(EDE16GgrOppkast_start), @@ -270,7 +270,7 @@ norspisBeregnIndikator <- function(RegData, ind_id = "norspis_KI1_symptomreduksj tittel <- c("Andelen med alvorlig eller ekstremt oppkast ved", "start, der det er tatt blodprøver ved start (V).") } - if (ind_id == "norspis_oppkast_prodprove_BU") { + if (ind_id == "norspis_oppkast_blodprove_BU") { Indikator <- RegData %>% dplyr::filter(!is.na(EDE16GgrOppkast_start), diff --git a/doc/indikatorer_behandlingskvalitet.R b/doc/indikatorer_behandlingskvalitet.R new file mode 100644 index 0000000..f182364 --- /dev/null +++ b/doc/indikatorer_behandlingskvalitet.R @@ -0,0 +1,54 @@ +library(norspis) +library(dplyr) +rm(list = ls()) + +rap_aar <- 2023 + +norspisdata <- norspisLesOgProsesser() +RegData <- norspisdata$RegData +ForlopsOversikt <- norspisdata$ForlopsOversikt +SkjemaOversikt <- norspisdata$SkjemaOversikt + +tabfolder <- paste0("~/mydata/norspis/indikator_shuskvalitet/") +if (!dir.exists(tabfolder)) { + dir.create(tabfolder) +} + +ind_id <- c("Symptomreduksjon EDEQ, voksne" = "norspis_KI1_symptomreduksjon_EDEQ_V", + "Symptomreduksjon EDEQ, barn/ungdom" = "norspis_KI1_symptomreduksjon_EDEQ_BU", + "Bedring i livskvalitet, voksne" = "norspis_KI2_funksjonsbedring_CIA_V", + "Bedring i livskvalitet, barn/ungdom" = "norspis_KI2_funksjonsbedring_CIA_BU", + "Endring i undervektsstatus, voksne" = "norspis_KI3_undervektsreduksjon_V", + "Endring i undervektsstatus, barn/ungdom" = "norspis_KI3_undervektsreduksjon_BU", + "Utfallsvurdering, voksne" = "norspis_KI4_utfallsvurdering_V", + "Utfallsvurdering, barn/ungdom" = "norspis_KI4_utfallsvurdering_BU", + "Familie/venner involvert i behandlingen, voksne" = "norspis_involvering_familie_venner_V", + "Familie/venner involvert i behandlingen, barn/ungdom" = "norspis_involvering_familie_venner_BU", + "Blodprøver ved start, undervektige, voksne" = "norspis_undervekt_blodprove_V", + "Blodprøver ved start, undervektige, barn/ungdom" = "norspis_undervekt_blodprove_BU", + "Blodprøver ved start, oppkast, voksne" = "norspis_oppkast_blodprove_V", + "Blodprøver ved start, oppkast, barn/ungdom" = "norspis_oppkast_blodprove_BU", + "Beintetthetsmåling ved start, undervektige voksne" = "norspis_beintetthetsmaling_V", + "Beintetthetsmåling ved start, undervektige barn/ungdom" = "norspis_beintetthetsmaling_BU") + + + +indikatordata <- norspis::norspisBeregnIndikator(RegData = RegData, + ind_id = ind_id[1]) +TabellData <- indikatordata$indikator +Indikator <- TabellData[which(TabellData$year <= rap_aar), ] + +for (i in 2:length(ind_id)) { + indikatordata <- norspis::norspisBeregnIndikator(RegData = RegData, + ind_id = ind_id[i]) + TabellData <- indikatordata$indikator + Indikator <- dplyr::bind_rows(Indikator, TabellData[which(TabellData$year <= rap_aar), ]) +} + +Indikator <- merge(Indikator, norspis::resh_voksen_barn[, c("AvdRESH", "orgnr")], by = "AvdRESH") %>% + dplyr::select(orgnr, year, var, denominator, ind_id, context) + + +write.csv2(Indikator, paste0(tabfolder, "indikatorer_norspis_", Sys.Date(), ".csv"), + row.names = F) + From b1cbf1f4b4a27465d32bd805b3868ec2cd60281d Mon Sep 17 00:00:00 2001 From: kevinthon Date: Mon, 24 Jun 2024 11:02:47 +0200 Subject: [PATCH 10/10] Lagt til dg --- doc/.gitignore | 6 ++++++ doc/indikatorer_behandlingskvalitet.R | 21 +++++++++++++++++++++ inst/.gitignore | 5 +++++ 3 files changed, 32 insertions(+) create mode 100644 doc/.gitignore create mode 100644 inst/.gitignore diff --git a/doc/.gitignore b/doc/.gitignore new file mode 100644 index 0000000..a21a8bf --- /dev/null +++ b/doc/.gitignore @@ -0,0 +1,6 @@ +NORSPIS - DG til sykehusveiviseren v2.xls +NORSPIS - DG til sykehusveiviseren.xls +NorSpis grunnlagsinfo - Beskrivelser av pasientgruppa.docx +NorSpis_klokeboken_12.03.2024.csv +RESH, navn og barn-unge eller voksen.xlsx +Tabeller og figurer laget i R til årsrapporten for 2022.pdf diff --git a/doc/indikatorer_behandlingskvalitet.R b/doc/indikatorer_behandlingskvalitet.R index f182364..4ba7252 100644 --- a/doc/indikatorer_behandlingskvalitet.R +++ b/doc/indikatorer_behandlingskvalitet.R @@ -49,6 +49,27 @@ Indikator <- merge(Indikator, norspis::resh_voksen_barn[, c("AvdRESH", "orgnr")] dplyr::select(orgnr, year, var, denominator, ind_id, context) +DG2023 <- readxl::read_xls("~/mydata/norspis/NORSPIS - DG til sykehusveiviseren 2023.xls", + sheet = 1, col_names = T) %>% + select(orgnr, year, Teller, Nevner) %>% + rename(var = Teller, + denominator = Nevner) %>% + filter(denominator != "-") %>% + mutate(ind_id = "norspis_dg", + context = "caregiver", + var = as.numeric(var), + denominator = as.numeric(denominator)) + +DG_gml <- read.csv2("~/mydata/norspis/norspis_dg_gml.csv") %>% + dplyr::filter(ind_id == "norspis_dg") + +DG <- dplyr::bind_rows(DG_gml, DG2023) + +write.csv2(DG, "~/mydata/norspis/norspis_dg2023.csv", row.names = F) + + +Indikator <- dplyr::bind_rows(Indikator, DG2023) + write.csv2(Indikator, paste0(tabfolder, "indikatorer_norspis_", Sys.Date(), ".csv"), row.names = F) diff --git a/inst/.gitignore b/inst/.gitignore new file mode 100644 index 0000000..6c10066 --- /dev/null +++ b/inst/.gitignore @@ -0,0 +1,5 @@ +TabOgFigAarrappNorspis (copy).pdf +TabOgFigAarrappNorspis-concordance.tex +TabOgFigAarrappNorspis.log +TabOgFigAarrappNorspis.pdf +TabOgFigAarrappNorspis.tex