R/RyggVarTilrettelegg.R

Defines functions RyggVarTilrettelegg

Documented in RyggVarTilrettelegg

#' Funksjon for å tilrettelegge variable for beregning. 
#'
#' Denne funksjonen gjør utvalg og tilrettelegger variable (gitt ved valgtVar) til videre bruk. 
#' Videre bruk kan eksempelvis være beregning av AggVerdier eller gjennomsnitt. 
#' Funksjonen gjør også filtreringer som å fjerne ugyldige verdier for den valgte variabelen, samt ta høyde for avhengigheter med
#' andre variable. Det er også her man angir aksetekster og titler for den valgte variabelen. 
#' Her kan mye hentes til analysebok
#'
#' @inheritParams RyggFigAndeler
#' @inheritParams RyggUtvalgEnh
#' @param figurtype Hvilken figurtype det skal tilrettelegges variable for: 
#'                'andeler', 'andelGrVar', 'andelTid', 'gjsnGrVar', 'gjsnTid'
#'				
#' @return Definisjon av valgt variabel.
#'
#' @export
#'

RyggVarTilrettelegg  <- function(RegData=NULL, valgtVar, ktr=0, hovedkat=99, datoTil=Sys.Date(), figurtype='andeler'){ #grVar='', 
      
      
      "%i%" <- intersect
      
      #----------- Figurparametre ------------------------------
      cexgr <- 1	#Kan endres for enkeltvariable
      retn <- 'V'		#Vertikal som standard. 'H' angis evt. for enkeltvariable
      flerevar <- 0
      grtxt <- ''		#Spesifiseres for hver enkelt variabel
      grtxt2 <- ''	#Spesifiseres evt. for hver enkelt variabel
      varTxt <- ''
      xAkseTxt <- ''	#Benevning
      subtxt <- ''
      if (figurtype == 'andelGrVar') {xAkseTxt <- 'Andel operasjoner (%)'}
      # yAkseTxt <- ''
      # pktTxt <- '' #(evt. søyletekst)
      # strIfig <- ''		#cex
      sortAvtagende <- TRUE  #Sortering av resultater
      KImaalGrenser <- NA
      tittel <- 'Mangler tittel' # ? I AndelerGrVar og GjsnGrVar genereres tittel i beregningsfunksjonen
      variable <- 'Ingen'
      #deltittel <- ''
      if (!is.null(RegData)) {RegData$Variabel <- 0}
      #Kan her definere opp alle aktuelle grupperingsvariable og deres tekst, eller 
      #sende inn grupperingsvariabel og så gjøre beregninger. (Ulempe: Ekstra avhengigheter)
      #Sentralt spm: Hvor skal det avgjøres hvilken figurtype som vises??? her
      KIekstrem <- NULL
      
      #ktr kan ha verdiene 0, 1 eller 2
      varPrePost <- c('fornoydhet', 'nytte', 'EQ5DEndr','EQ5DEndr', 
                      'OswEndr', 'SmBeinEndr', 'SmRyggEndr',
                      'OswEndrPre', 'SmBeinEndrPre', 'SmRyggEndrPre')
      if ((valgtVar %in% varPrePost) & (ktr==0)) 
      {ktr <- 1}
      if (valgtVar %in% varPrePost){
            if (ktr == 1) {RegData <- RegData[which(RegData$Utfylt3Mnd==1), ]}
            if (ktr == 2) {RegData <- RegData[which(RegData$Utfylt12Mnd==1), ]}
      }
      ktrtxt <- c(' før operasjon', ' (3 mnd etter)', ' (12 mnd. etter)')[ktr+1]
      trekkfraDager <- c(0,90,365)[ktr+1]
      
      
      #------------------------------------- 
      if (valgtVar=='deknRygg17') {        #andelerGrVar
            tittel <- 'Dekningsgrad, NKR Degenerativ Rygg, 2017'
            xAkseTxt <- 'dekningsgrad, NKR'
            KImaal <- 0.8
            data('deknRygg17', package = 'nkr') #paste0(valgtVar,'.Rdata')
            RegData <- deknRygg17 #paste0(valgtVar)
      }
      if (valgtVar=='deknNakke17') {        #andelerGrVar
            tittel <- 'Dekningsgrad, NKR Degenerativ Nakke, 2017'
            xAkseTxt <- 'dekningsgrad, NKR'
            KImaal <- 0.8
            data(deknNakke17, package = 'nkr')
            RegData <- deknNakke17 #paste0(valgtVar)
      }
      
      
      if (valgtVar=='alder') {	#Fordeling, GjsnGrVar, GjsnTid
            RegData <- RegData[which(RegData$Alder>=0), ]    #Tar bort alder<0
            RegData$Variabel <- RegData$Alder  	#GjsnTid, GjsnGrVar
            xAkseTxt <- 'alder (år)'	
            tittel <- 'Alder ved innleggelse'
            if (figurtype %in% c('gjsnGrVar', 'gjsnTid')) {
                  tittel <- 'alder ved innleggelse'}
            if (figurtype == 'andeler') {	#Fordelingsfigur
                  gr <- c(0,seq(20,90,10),150)
                  #gr <- c(seq(0, 100, 10),150)		
                  RegData$VariabelGr <- cut(RegData$Alder, breaks=gr, include.lowest=TRUE, right=FALSE)	
                  grtxt <- c('0-19', '20-29', '30-39', '40-49', '50-59', '60-69', '70-79', '80-89', '90+')	#c(levels(RegData$VariabelGr)[-length(gr)], '90+')	#c(names(AndelLand)[-length(gr)], '90+')
                  #grtxt <- c('0-9','10-19','20-29','30-39','40-49','50-59','60-69','70-79','80-89','90-99','100+')
                  xAkseTxt <- 'Aldersgrupper (år)'}
            sortAvtagende <- FALSE
      }
      
      if (valgtVar=='alder70') {	#AndelTid, AndelerGrVar
            RegData <- RegData[which(RegData$Alder>=0), ]    #Tar bort alder<0
            RegData$Variabel[which(RegData$Alder>=70)] <- 1 
            varTxt <- 'over 70 år'
            tittel <- 'Pasienter over 70 år'
      }
      
      if (valgtVar == 'antibiotika') { #fordeling, AndelGrVar
            grtxt <- c('Nei', 'Ja', 'Ukjent')
            RegData$VariabelGr <- 9
            indDum <- RegData$Antibiotika %in% 0:1
            RegData$VariabelGr[indDum] <- RegData$Antibiotika[indDum]
            RegData$VariabelGr <- factor(RegData$VariabelGr, levels = c(0,1,9))
            tittel <- 'Er det gitt antibiotikaprofylakse?'	
            if (figurtype %in% c('andelGrVar', 'andelTid')) {
                  RegData$Variabel <- RegData[ ,valgtVar]
                  tittel <- 'Fått antibiotika'
            }
      }
      
      if (valgtVar=='antNivOpr') {
            gr <- c(0:5,1000)
            RegData$VariabelGr <- cut(RegData$AntNivOpr, breaks=gr, include.lowest=TRUE, right=FALSE)
            grtxt <- c(0:4,'5+')	#sort(unique(RegData$AntNivOpr))
            subtxt <- 'Antall'
            tittel <- 'Antall nivå operert'
      }
      
      if (valgtVar == 'arbstatus') { #Fordeling, AndelGrVar, AndelTid
            # Andel i kategori 6 tom 9, mottar sykepenger Av 1-9, (ikke bare de som sykemeldt fra før)
            #  #grtxt <- c('I arbeid','Hjemmeværende', 'Studie/skole', 'Pensjonist', 'Arbeidsledig', 'Sykemeldt',
            #		'Aktiv sykemeldt', 'Delvis sykemeldt', 'Attføring/rehab.', 'Uføretrygdet', 'Ukjent')
            datoTil <- min(datoTil, as.character(Sys.Date()-trekkfraDager))
            RegData$Arbstatus <- switch(as.character(ktr), 
                                        '0' = RegData$ArbstatusPre,
                                        '1'= RegData$Arbstatus3mnd,
                                        '2'= RegData$Arbstatus12mnd)
            ind <- switch(as.character(ktr), 
                          '0' = 1:dim(RegData)[1],
                          '1' = which(RegData$Utfylt3Mnd==1),
                          '2' = which(RegData$Utfylt12Mnd == 1))
            RegData <- RegData[ind, ]
            retn <- 'H'
            grtxt <- c('I arbeid','Hjemmeværende', 'Studie/skole', 'Pensjonist', 'Arbeidsledig', 'Sykemeldt', 	
                       'Aktiv sykemeldt', 'Delvis sykemeldt', 'Attføring/rehab.', 'Uføretrygdet', 'Ukjent')
            RegData$VariabelGr <- 99
            indDum <- which(RegData$Arbstatus %in% 1:10)
            RegData$VariabelGr[indDum] <- RegData$Arbstatus[indDum]
            RegData$VariabelGr <- factor(RegData$VariabelGr, levels = c(1:10,99)) 
            tittel <- paste0('Arbeidsstatus, ', ktrtxt)
            if (figurtype %in% c('andelTid', 'andelGrVar')) {
                  RegData <- RegData[which(RegData$Arbstatus %in% 1:10), ]
                  RegData$Variabel[which(RegData$Arbstatus %in% 6:10)] <- 1
                  tittel <- paste0('Mottar sykepenger' ,ktrtxt)}
            sortAvtagende <- FALSE
      }
      
      if (valgtVar == 'ASA') { #fordeling, AndelGrVar
            grtxt <- c('I:Ingen','II:Moderat', 'III:Alvorlig', 'IV:Livstruende', 'Ukjent')
            subtxt <- 'Sykdomsgrad'
            RegData$VariabelGr <- 99
            indDum <- which(RegData$ASA %in% 1:4)	#Antar ikke opererer døde...
            RegData$VariabelGr[indDum] <- RegData$ASA[indDum]
            RegData$VariabelGr <- factor(RegData$VariabelGr, levels = c(1:4,99)) 
            tittel <- 'ASA-grad'
            if (figurtype %in% c('andelGrVar', 'andelTid')) {
                  RegData <- RegData[which(RegData[,valgtVar] %in% 1:4), ]
                  RegData$Variabel[which(RegData[ ,valgtVar] > 2)] <- 1
                  tittel <- 'ASA-grad > II'
            }
      }
      
      if (valgtVar == 'beinsmLavPre') { #AndelGrVar
            #Lav beinsmerte og ingen parese. (Først og fremst prolaps)
            RegData$Variabel[which(is.na(RegData$OpIndParese) & (RegData$SmBePre < 3.5))] <- 1
            #tittel <- paste0('Beinsmerte ',expression(""<=2),' og ingen parese')
            sortAvtagende <- F
            tittel <- "Lite beinsmerter og ingen parese" #expression("Lite beinsmerter og ingen parese") #paste0('Beinsmerte ', expression(""<="3"), ' og ingen parese')
            #intToUtf8(2264)
            #KImaalRetn <- 'lav'
            KImaalGrenser <- c(0,3) 
            
      }
      if (valgtVar == 'beinsmEndrLav') { #AndelGrVar
            #Mislykkede operasjoner
            RegData$BeinsmEndr <- switch(as.character(ktr), 
                                         '1'= (RegData$SmBePre - RegData$SmBe3mnd),
                                         '2'= (RegData$SmBePre - RegData$SmBe12mnd))
            RegData <- RegData[which(RegData$BeinsmEndr >= -10), ]	#Fjerne tomme og ugyldige
            #          RegData$Variabel[which(RegData$BeinsmEndr <1.5)] <- 1
            RegData$Variabel[which(is.na(RegData$OpIndParese) & (RegData$BeinsmEndr < 1.5))] <- 1
            tittel <- paste0("Forbedring av beinsmerte-skår <= 1 poeng, ", ktrtxt) 
            sortAvtagende <- FALSE
      }
      if (valgtVar == 'BMI') { #Fordeling, AndelGrVar
            #BMI > 30
            RegData <- RegData[which(RegData$BMI >10), ]
            gr <- c(0, 18.5, 25, 30, 35, 40, 1000)
            RegData$VariabelGr <- cut(RegData$BMI, breaks=gr, include.lowest=TRUE, right=FALSE)
            tittel <- 'Pasientenes BMI (Body Mass Index)'
            grtxt <- c('<18,5', levels(RegData$VariabelGr)[2:(length(gr)-2)],'40+')
            grtxt2 <- c('Undervekt', 'Normalvekt', 'Overvekt', 'Fedme', 'Fedme kl II', 'Fedme kl III')
            xAkseTxt <- '"Body Mass Index"'
            if (figurtype %in% c('andelGrVar', 'andelTid')) {
                  RegData$Variabel[which(RegData$BMI > 30)] <- 1
                  tittel <- 'Pasienter med fedme (BMI>30)'
                  sortAvtagende <- FALSE
            }}
      
      if (valgtVar == 'degSponFusj') { #AndelGrVar
            #hovedkat=9 #Degen. spondylolistese
            RegData <- RyggUtvalgEnh(RegData, hovedkat=9)$RegData
            RegData$Variabel[which(RegData$HovedInngrep ==5)] <- 1
            varTxt <- 'tilfeller'
            tittel <- 'Degen. spondylolistese operert med fusjonskirurgi'
            sortAvtagende <- F
            xAkseTxt <- 'Andel med fusjonskirurgi (%)'
      }
      if (valgtVar == 'degSponSSSten') { #AndelGrVar
            #(Først og fremst fusjonskirurgi)
            RegData$Variabel[which((RegData$RfSentr==1) & (RegData$RfSpondtypeDegen == 1))] <- 1
            tittel <- 'Degenerativ spondylolistese og sentral spinal stenose'
            sortAvtagende <- FALSE
      }
      if (valgtVar=='EQ5DEndr') {#gjsnGrVar, gjsnTid
            RegData$Variabel <- switch(as.character(ktr), 
                                       '1'= (RegData$EQ5D3mnd - RegData$EQ5DPre),
                                       '2'= (RegData$EQ5D12mnd - RegData$EQ5DPre))
            RegData <- RegData[which(!is.na(RegData$Variabel)),]
            tittel <- paste0('forbedring av EQ5D', ktrtxt)#gjsnGrVar, gjsnTid
            KIekstrem <- c(-1.6, 1.6)
      }
      if (valgtVar == 'EQ5DPre') {#gjsnPre (gjsnBox)
            RegData <- RegData[which(RegData$EQ5DPre > -0.6),]
            tittel <- 'EQ5D før operasjonen'
            RegData$Variabel <- RegData[ ,valgtVar]
            KIekstrem <- c(-0.6, 1)
      }
      
      if (valgtVar == 'EQ5DEndrPre') {#gjsnPre (gjsnBox)
            tittel <- paste0('forbedring av EQ5D', ktrtxt)
            RegData$Variabel <- switch(as.character(ktr), 
                                       '1'= (RegData$EQ5D3mnd - RegData$EQ5DPre),
                                       '2'= (RegData$EQ5D12mnd - RegData$EQ5DPre))
            RegData <- RegData[which(!is.na(RegData$Variabel)),]
            Xlab <- 'EQ5D før operasjon'
            gr <- c(round(seq(-0.6,0.8,0.2),1),1.6)	#round(seq(-0.6,1.6,0.3),1)}
            RegData$Gr <- cut(RegData$EQ5DPre, gr, right=F)
            GrNavn <- levels(RegData$Gr)
            AntGr <- length(GrNavn)
            GrNavn[AntGr] <- '0.8+'
            KIekstrem <- c(-1.6, 1.6)
      }
      
      if (valgtVar == 'SmBeinEndr') {
            tittel <- paste0('bedring av beinsmerter ',ktrtxt)
            RegData$Variabel <- switch(as.character(ktr), 
                                       '1'= (RegData$SmBePre - RegData$SmBe3mnd),
                                       '2'= (RegData$SmBePre - RegData$SmBe12mnd))
            RegData <- RegData[which(!is.na(RegData$Variabel)),]
            KIekstrem <- c(-10,10)							   
      }
      if (valgtVar == 'SmBeinEndrPre') {
            tittel <- 'endring i beinsmerter'
            RegData$Variabel <- switch(as.character(ktr), 
                                       '1'= (RegData$SmBePre - RegData$SmBe3mnd),
                                       '2'= (RegData$SmBePre - RegData$SmBe12mnd))
            KIekstrem <- c(-10,10)
      }
      if (valgtVar == 'SmBePre') {
            RegData$Variabel <- RegData[ ,valgtVar]
            tittel <- 'beinsmerter før operasjonen'
            xAkseTxt <- 'skår'
            KIekstrem <- c(0, 10)
      } 	
      
      if (valgtVar == 'SmRyggEndr') {
            tittel <- paste0('forbedring av  ryggsmerter', ktrtxt)
            RegData$Variabel <- switch(as.character(ktr), 
                                       '1'= RegData$SmRyPre - RegData$SmRy3mnd,
                                       '2'= RegData$SmRyPre - RegData$SmRy12mnd)
            KIekstrem <- c(-10,10)
      }
      
      if (valgtVar == 'SmRyggEndrPre') {
            tittel <- paste0('forbedring av ryggsmerter', ktrtxt)
            RegData$Variabel <- switch(as.character(ktr), 
                                       '1'= (RegData$SmRyPre - RegData$SmRy3mnd),
                                       '2'= (RegData$SmRyPre - RegData$SmRy12mnd))
            KIekstrem <- c(-10,10)
      }
      if (valgtVar == 'SmRyPre') {
            RegData$Variabel <- RegData[ ,valgtVar]
            tittel <- 'ryggsmerter før operasjonen'
            ytxt1 <- 'prescore, ryggsmerter '
      } 	
      
      
      if (valgtVar == 'EQangstPre') {#fordeling
            tittel <- 'Helsetilstand: Angst'
            RegData$VariabelGr <- 9
            grtxt <- c('Ingen', 'Litt', 'Svært', 'Ukjent')
            indDum <- which(RegData$EqangstPre %in% 1:3)
            RegData$VariabelGr[indDum] <- RegData$EqangstPre[indDum]
            RegData$VariabelGr <- factor(RegData$VariabelGr, levels = c(1:3,9)) 
            subtxt <- 'Grad av engstelighet/deprimerthet'	#Tilstand i forhold til angst'
      }
      if (valgtVar == 'EQgangePre') { #fordeling
            tittel <- 'Helsetilstand: Gange'
            grtxt <- c('Ingen problemer', 'Litt problemer', 'Sengeliggende', 'Ukjent')
            RegData$VariabelGr <- 9
            indDum <- which(RegData$EqgangePre %in% 1:3)
            RegData$VariabelGr[indDum] <- RegData$EqgangePre[indDum]
            RegData$VariabelGr <- factor(RegData$VariabelGr, levels = c(1:3,9)) 
            #subtxt <- ''	#'Tilstand i forhold til gange'
      }
      if (valgtVar == 'erstatningPre') { #fordeling, AndelGrVar, #AndelTid
            #Pasientskjema. Andel med ErstatningPre 1 el 3
            #Kode 1:4,9: 'Ja', 'Nei', 'Planlegger', 'Innvilget', 'Ukjent'
            grtxt <- c('Ja', 'Nei', 'Planlegger', 'Innvilget', 'Ukjent')
            RegData$VariabelGr <- 9
            indDum <- which(RegData$ErstatningPre %in% 1:4)
            RegData$VariabelGr[indDum] <- RegData$ErstatningPre[indDum]
            RegData$VariabelGr <- factor(RegData$VariabelGr, levels = c(1:4,9)) 
            tittel <- 'Har pasienten søkt erstatning?'
            if (figurtype %in% c('andelerGrVar', 'andelTid')) {
                  RegData <- RegData[which(RegData$ErstatningPre %in% 1:4), ]
                  RegData$Variabel[which(RegData[ ,valgtVar] %in% c(1,3))] <- 1
                  tittel <- 'Pasienten har søkt/planlegger å søke erstatning'
                  varTxt <- 'søkt erstatning'
                  sortAvtagende <- FALSE}
      }
      
      if (valgtVar =='fornoydhet') { #fordeling, AndelGrVar	
            #3/12mndSkjema. Andel med helt Fornøyd (1)
            #Kode 1:5,9: 'Fornøyd', 'Litt fornøyd', 'Verken eller', 'Litt misfornøyd', 'Misfornøyd', 'Ukjent')
            tittel <- paste('Fornøydhet', ktrtxt)
            datoTil <- min(datoTil, as.character(Sys.Date()-trekkfraDager))
            ind <- switch(as.character(ktr), 
                          '0' = dim(RegData)[1],
                          '1' = which(RegData$Utfylt3Mnd==1),
                          '2' = which(RegData$Utfylt12Mnd == 1))
            RegData <- RegData[ind, ]
            RegData$Fornoyd <- switch(as.character(ktr), 
                                      '1'= RegData$Fornoyd3mnd,
                                      '2'= RegData$Fornoyd12mnd)
            grtxt <- c('Fornøyd', 'Litt fornøyd', 'Verken eller', 'Litt misfornøyd', 'Misfornøyd', 'Ukjent')
            RegData$VariabelGr <- 9
            indDum <- which(RegData$Fornoyd %in% 1:5)
            RegData$VariabelGr[indDum] <- RegData$Fornoyd[indDum]
            RegData$VariabelGr <- factor(RegData$VariabelGr, levels = c(1:5,9)) 
            if (figurtype %in% c('andelGrVar', 'andelTid')) {
                  RegData <- RegData[which(RegData$Fornoyd %in% 1:5), ]
                  RegData$Variabel[which(RegData$Fornoyd %in% 1:2)] <- 1 #
                  #RegData$Variabel[which(RegData$Fornoyd ==1)] <- 1 #%in% 1:2
                  tittel <- paste0('Helt fornøyde pasienter', ktrtxt)
            }
      }
      if (valgtVar=='hovedInngrep'){ #fordeling
            tittel <- 'Hovedinngrep'
            grtxt <- c('Udefinerbart', 'Prolapskirurgi', 'Foramenotomi', 'Laminektomi',
                       'Interspin. implantat', 'Fusjonskirurgi', 'Skiveprotese', 'Rev. av implantat')
            RegData$VariabelGr <- factor(RegData$HovedInngrep, levels = 0:7) 
            retn <- 'H'
      }
      if (valgtVar=='komplPer') {
            tittel <- 'Peroperative komplikasjoner'
            retn <- 'H'
            flerevar <- 1
            #RegData <- RegData[which(dato > as.POSIXlt('2009-12-31')), ]
            #NB <- '(Komplikasjoner rapporteres kun f.o.m. 2010)'
            variable <- c('PeropKompDura', 'PeropKompFeilnivSide', 'PeropKompNerve', 'PeropKompTransfuBlodning',
                          'PeropKompKardio','PeropKompFeilplassImp','PeropKompResp','PeropKompAnafy')
            grtxt <- c('Durarift', 'Operert feil nivå/side', 'Nerveskade', 'Transfusjonskrevende blødning',
                       'Kardiovaskulær komplikasjon', 'Feilplassert implantat', 'Respiratorisk komplikasjon', 'Anafylaksi')
            #RegData$Variabel <- rowSums(RegData[ ,variable], na.rm=T)
      }
      
      if (valgtVar=='komplPost') {
            tittel <- 'Pasientrapporterte komplikasjoner'
            datoTil <- min(datoTil, as.character(Sys.Date()-90))
            retn <- 'H'
            flerevar <- 1
            subtxt <- '(Komplikasjoner rapporteres kun f.o.m. 2010)'
            #RegData <- RegData[which(dato > as.POSIXlt('2009-12-31')), ]
            #Andel kun av de som har svart på 3 mnd ktr:
            RegData <- RegData[which(RegData$Utfylt3Mnd==1), ]
            variable <- c('KpInfOverfla3Mnd','KpInfDyp3Mnd', 'KpMiktProb3Mnd','KpUVI3Mnd',
                          'KpLungebet3Mnd', 'KpBlod3Mnd','KpDVT3Mnd','KpLE3Mnd', 'Kp3Mnd')
            grtxt <- c('Overfladisk sårinfeksjon', 'Dyp sårinfeksjon', 
                       'Problem, vannlatning/avføring','Urinveisinfeksjon', 'Pneumoni', 
                       'Transf./opr. pga. blødning', 'DVT','Lungeemboli', 'Tot. komplikasjoner')	
            #RegData$Variabel <- colSums(RegData[ ,kompl])
      }
      
      if (valgtVar == 'Kp3Mnd') { #AndelGrVar
            #Komplikasjoner 0:nei, 1:ja
            RegData <- RegData[which(RegData$Utfylt3Mnd ==1), ]
            RegData <- RegData[which(RegData[,valgtVar] %in% 0:1), ]
            RegData$Variabel <- RegData[ ,valgtVar]
            tittel <- 'Pasientrapporterte komplikasjoner (%)'
            sortAvtagende <- FALSE
      }
      if (valgtVar == 'KpInf3Mnd') { #AndelGrVar, AndelTid
            #Komplikasjoner 0:nei, 1:ja
            RegData <- RegData[which(RegData$Utfylt3Mnd ==1), ]
            RegData <- RegData[which(RegData[,valgtVar] %in% 0:1), ]
            RegData$Variabel <- RegData[ ,valgtVar]
            varTxt <- 'tilfeller'
            tittel <- 'Sårinfeksjon, pasientrapportert'
            sortAvtagende <- FALSE
            xAkseTxt <- 'Andel sårinfeksjoner (%)'
            #KImaalRetn <- 'lav'
            if (hovedkat == 1) {KImaalGrenser <- c(0,2)}
            if (hovedkat %in% c(5,8)) {KImaalGrenser <- c(0,3)}
      }
      if (valgtVar=='liggedogn') {#fordeling, gjsnGrVar, andeler, gjsnTid
            #liggedogn
            #For opphold registrert som dagkirurgi uten at liggedogn er reg., settes liggedogn=0
            tittel <- 'Liggetid ved operasjon'
            dagind <- which( (is.na(RegData$Liggedogn) | is.nan(RegData$Liggedogn))  & RegData$Dagkirurgi==1)
            RegData$Liggedogn[dagind]<-0
            RegData <- RegData[which(RegData$Liggedogn>=0),]
            RegData$Variabel <- RegData$Liggedogn #gjsnGrVar
            gr <- c(0:7,100)	
            RegData$VariabelGr <- cut(RegData$Liggedogn, breaks=gr, include.lowest=TRUE, right=FALSE)
            grtxt <- c(0:6, '7+')
            xAkseTxt <- 'Antall liggedøgn' #(subtxt
            subtxt <- 'døgn'
            if (figurtype=='gjsnGrVar') {tittel <- 'liggetid'}
            sortAvtagende <- 'F'
            TittelVar <- 'Liggetid ved operasjon'
            ytxt1 <- 'liggetid'
            KIekstrem <- c(0, 20)
      }
      if (valgtVar == 'Misfornoyd') { #AndelGrVar	#%in% c('Misfor3mnd','Misfor12mnd')) { #AndelGrVar
            #3/12mndSkjema. Andel med Misfornøyd/litt misfornøyd (1,2)
            #Kode 1:5,9: 'Fornøyd', 'Litt fornøyd', 'Verken eller', 'Litt misfornøyd', 'Misfornøyd', 'Ukjent')
            RegData$Misfornoyd <- switch(as.character(ktr), 
                                         '1'= RegData$Fornoyd3mnd,
                                         '2'= RegData$Fornoyd12mnd)
            RegData <- RegData[which(RegData$Misfornoyd %in% 1:5), ]
            RegData$Variabel[which(RegData$Misfornoyd %in% 4:5)] <- 1
            tittel <- paste0('Misfornøyde pasienter' ,ktrtxt)
            sortAvtagende <- FALSE
      }
      if (valgtVar == 'morsmal') { #fordeling AndelGrVar, AndelTid
            #           Kode 1:3:'Norsk', 'Samisk', 'Annet'
            grtxt <- c('Norsk', 'Samisk', 'Annet', 'Ukjent')
            tittel <- 'Morsmål'
            RegData$VariabelGr <- 9
            indDum <- which(RegData$Morsmal %in% 1:3)
            RegData$VariabelGr[indDum] <- RegData$Morsmal[indDum]
            RegData$VariabelGr <- factor(RegData$VariabelGr, levels = c(1:3,9)) 
            if (figurtype %in% c('andelTid', 'andelGrVar')) {
                  RegData <- RegData[which(RegData$Morsmal %in% 1:3), ]
                  RegData$Variabel[which(RegData$Morsmal %in% 2:3)] <- 1 
                  tittel <- 'Fremmedspråklige (ikke norsk som morsmål)'
                  varTxt <- 'fremmedspråklige'
                  sortAvtagende <- F}
      }
      
      if (valgtVar == 'nytte') { #fordeling, AndelGrVar
            #Andel med helt bra/mye bedre (1:2)
            #Kode 1:7: ''Helt bra', 'Mye bedre', 'Litt bedre', 'Uendret', 'Litt verre', 'Mye verre',
            #				'Verre enn noen gang', 'Ukjent')
            tittel <- c('Hvilken nytte har du hatt av operasjonen?',ktrtxt)
            RegData$Nytte <- switch(as.character(ktr), 
                                    '1'=RegData$Nytte3mnd,
                                    '2'=RegData$Nytte12mnd)
            datoTil <- min(datoTil, as.character(Sys.Date()-trekkfraDager))
            retn <- 'H'
            RegData$VariabelGr <- 9
            indDum <- which(RegData$Nytte %in% 1:7)
            RegData$VariabelGr[indDum] <- RegData$Nytte[indDum]
            RegData$VariabelGr <- factor(RegData$VariabelGr, levels = c(1:7,9)) 
            grtxt <- c('Helt bra', 'Mye bedre', 'Litt bedre', 'Uendret', 'Litt verre', 'Mye verre', 
                       'Verre enn noen gang', 'Ukjent')
            if (figurtype %in% c('andelGrVar', 'andelTid')) {
                  RegData <- RegData[which(RegData$Nytte %in% 1:7), ]
                  RegData$Variabel[RegData$Nytte %in% 1:2] <- 1
                  tittel <- paste0('Helt bra eller mye bedre' , ktrtxt)
            }}
      
      if (valgtVar=='opInd') { #fordeling
            tittel <- 'Operasjonsindikasjon'
            retn <- 'H'
            flerevar <- 1
            variable <- c('OpIndCauda', 'OpIndParese', 'OpIndSme')
            grtxt <- c('Cauda equlina', 'Parese', 'Smerter')
      }
      if (valgtVar == 'opIndPareseGrad') {#fordeling
            tittel <- 'Operasjonsindikasjon, paresegrad'
            grtxt <- c(0:5, 'Ukjent')
            RegData <- RegData[which(RegData$OpIndParese ==1),]
            indDum <- which(RegData$OpIndPareseGrad %in% 0:5)
            RegData$VariabelGr <- 9
            RegData$VariabelGr[indDum] <- RegData$OpIndPareseGrad[indDum]
            RegData$VariabelGr <- factor(RegData$VariabelGr, levels = c(0:5,9)) 
      }
      
      if (valgtVar == 'opIndSmeType') {#fordeling
            tittel <- 'Operasjonsindikasjon, smertetype'
            grtxt <- c('Rygg/hofte', 'Bein', 'Begge deler', 'Ukjent')
            RegData <- RegData[which(RegData$OpIndSme ==1),]
            indDum <- which(RegData$OpIndSmeType %in% 1:3)
            RegData$VariabelGr <- 9
            RegData$VariabelGr[indDum] <- RegData$OpIndSmeType[indDum]
            RegData$VariabelGr <- factor(RegData$VariabelGr, levels = c(1:3,9)) 
      }
      if (valgtVar == 'opKat') { #fordeling
            #retn <- 'H'
            tittel <- 'Operasjonskategori'
            grtxt <- c('Elektiv', 'Akutt', '1/2-Akutt', 'Ukjent')
            indDum <- which(RegData$OpKat %in% 1:3)
            RegData$VariabelGr <- 9
            RegData$VariabelGr[indDum] <- RegData$OpKat[indDum]
            RegData$VariabelGr <- factor(RegData$VariabelGr, levels = c(1:3,9)) 
      }
      
      if (valgtVar=='OswEndr') {#gjsnGrVar
            RegData$Variabel <- switch(as.character(ktr), 
                                       '1'= (RegData$OswTotPre - RegData$OswTot3mnd),
                                       '2'= (RegData$OswTotPre - RegData$OswTot12mnd))
            RegData <- RegData[which(!is.na(RegData$Variabel)),]
            tittel <- paste0('forbedring av Oswestry', ktrtxt)#gjsnGrVar
            KImaalGrenser <- if (hovedkat==9) {NA} else {'TotGjsn'}
         KIekstrem <- c(-100, 100)
      }
      if (valgtVar == 'OswEndrPre') {
         #Forbedring=lavere Oswestry
         tittel <- paste0('forbedring av ODI', ktrtxt)
         RegData$Variabel <- switch(as.character(ktr), 
                                    '1'= (RegData$OswTotPre - RegData$OswTot3mnd),
                                    '2'= (RegData$OswTotPre - RegData$OswTot12mnd))
         RegData <- RegData[which(!is.na(RegData$Variabel)),]
         KIekstrem <- c(-100, 100)
         Xlab <- 'Oswestry før operasjon'
         gr <- c(seq(0,90,10), 101)
         RegData$Gr <- cut(RegData$OswTotPre, gr, right=F)
         GrNavn <- levels(RegData$Gr)
         AntGr <- length(GrNavn)
         GrNavn[AntGr] <- '[90,100]'
      }
      
      if (valgtVar == 'OswTotPre') {
         RegData$Variabel <- RegData[ ,valgtVar]
         RegData <- RegData[which(!is.na(RegData$Variabel)),]
         tittel <- 'oswestryskår før operasjonen'
         xAkseTxt <- 'skår'
         KIekstrem <- c(0, 100)
      } 	
      if (valgtVar == 'OswEndrLav') { #AndelGrVar
            #Mislykkede operasjoner
            RegData$OswEndr <- switch(as.character(ktr), 
                                      '1'= (RegData$OswTotPre - RegData$OswTot3mnd),
                                      '2'= (RegData$OswTotPre - RegData$OswTot12mnd))
            RegData <- RegData[which(RegData$OswEndr >= -100), ]
            RegData$Variabel[which(RegData$OswEndr <13)] <- 1
            tittel <- paste0('Forbedring av Oswestry-skår < 13 poeng', ktrtxt)
            sortAvtagende <- F
      }
      if (valgtVar == 'OswEndr20') { #AndelGrVar, andelTid
            #Mislykkede operasjoner
            RegData$OswEndr <- switch(as.character(ktr), 
                                      '1'= (RegData$OswTotPre - RegData$OswTot3mnd),
                                      '2'= (RegData$OswTotPre - RegData$OswTot12mnd))
            RegData <- RegData[which(RegData$OswEndr >= -100), ]
            RegData$Variabel[which(RegData$OswEndr >20)] <- 1
            varTxt <- 'med >20 poeng forbedring'
            tittel <- paste0('Forbedring av Oswestry-skår > 20 poeng', ktrtxt)
      }
      
      if (valgtVar == 'OswEndr30pst') { #AndelGrVar, andelTid
            #Andel med klinisk signifikant forbedring i Oswestry-skår. 
            #Forbedring = nedgang
            RegData$OswPst <- switch(as.character(ktr),
                                     '1' = (RegData$OswTotPre - RegData$OswTot3mnd)/RegData$OswTotPre*100,
                                     '2' = (RegData$OswTotPre - RegData$OswTot12mnd)/RegData$OswTotPre*100)
            RegData <- RegData[which(RegData$OswPst>=-1000), ]
            RegData$Variabel[which(RegData$OswPst >=30)] <- 1
            varTxt <- 'med \u2265 30 % forbedring'
            tittel <- paste0('Minst 30% forbedring av Oswestry-skår', ktrtxt)
      }
      if (valgtVar == 'Osw22') { #AndelGrVar
            #Andel med Oswestry-skår under 23 etter op. 
            RegData$OswPost <- switch(as.character(ktr),
                                      '1' = RegData$OswTot3mnd,
                                      '2' = RegData$OswTot12mnd)
            RegData <- RegData[which(RegData$OswPost>=0), ]
            RegData$Variabel[which(RegData$OswPost <= 22)] <- 1
            tittel <- paste0('Oswestry-skår < 23 poeng', ktrtxt)
      }
      if (valgtVar == 'Osw48') { #AndelGrVar
            #Andel med Oswestry-skår fortsatt over 48. 
            RegData$OswPost <- switch(as.character(ktr),
                                      '1' = RegData$OswTot3mnd,
                                      '2' = RegData$OswTot12mnd)
            RegData <- RegData[which(RegData$OswPost>=0), ]
            RegData$Variabel[which(RegData$OswPost >48)] <- 1
            tittel <- paste0('Oswestry-skår > 48 poeng', ktrtxt)
            sortAvtagende <- F
      }
      
      if (valgtVar=='PeropKomp') { #AndelGrVar
            #Komplikasjoner ved operasjon
            #Kode 1:Ja,  tomme:Nei 
            RegData$Variabel[which(RegData$PeropKomp == 1)] <- 1
            tittel <- 'Komplikasjoner ved operasjon'
            sortAvtagende <- FALSE
      }
      if (valgtVar=='PeropKompDura') { #AndelGrVar
            #Durarift ved operasjon
            #Kode 1:Ja,  tomme:Nei 
            RegData$Variabel[which(RegData$PeropKompDura == 1)] <- 1
            tittel <- 'Komplikasjon ved operasjon: Durarift'
            sortAvtagende <- FALSE
            xAkseTxt <- 'Andel durarift (%)'
            #KImaalRetn <- 'lav'
            if (hovedkat == 1) {KImaalGrenser <- c(0,2)}
            if (hovedkat %in% c(5,8)) {KImaalGrenser <- c(0,3)}
      }
      if (valgtVar=='radUnders') {
            tittel <- 'Radiologisk undersøkelse'
            retn <- 'H'
            flerevar <- 1
            variable <- c('RvCt', 'RvMr', 'RvRadigr', 'RvDiscogr', 'RvDpregblok', 'RvRtgLscol', 'RvFunksjo')
            grtxt <- c('CT', 'MR', 'Radikulografi', 'Diskografi', 'Diag.blokade', 'Rtg.LS-columna', 'Fleks./Ekst.')
      }
      if (valgtVar=='roker') { #AndelGrVar, #AndelTid
            #PasientSkjema. Andel med Roker=1
            #Kode 0,1,tom: Nei, Ja Ukjent
            tittel <- 'Røyker du?'
            grtxt <- c('Nei', 'Ja', 'Ukjent')
            RegData$VariabelGr <- 9
            indDum <- RegData$Roker %in% 0:1
            RegData$VariabelGr[indDum] <- RegData$Roker[indDum]
            RegData$VariabelGr <- factor(RegData$VariabelGr, levels = c(0,1,9)) 
            
            if (figurtype %in% c('andelGrVar', 'andelTid')){
                  RegData <- RegData[which(RegData$Roker %in% 0:1), ]
                  RegData$Variabel <- RegData$Roker
                  tittel <- 'Røykere'
                  varTxt <- 'røykere'
                  sortAvtagende <- FALSE}
      }
      
      
      if (valgtVar == 'saardren') { #AndelGrVar
            #LegeSkjema. Andel med Saardren=1
            #Kode 0,1,tom: Nei, Ja Ukjent
            grtxt <- c('Nei', 'Ja', 'Ukjent')
            RegData$VariabelGr <- 9
            indDum <- which(RegData$Saardren %in% 0:1)
            RegData$VariabelGr[indDum] <- RegData$Saardren[indDum]
            RegData$VariabelGr <- factor(RegData$VariabelGr, levels = c(0:1,9)) 
            tittel <- 'Sårdren'
            if (figurtype %in% c('andelGrVar', 'andelTid')){
                  RegData <- RegData[which(RegData$Saardren %in% 0:1), ]
                  RegData$Variabel <- RegData$Saardren
                  tittel <- 'Andel som får sårdren (%)'
            }
      }
      if (valgtVar=='smBeinEndr') {#gjsnGrVar
            RegData$Variabel <- switch(as.character(ktr), 
                                       '1'= (RegData$SmBePre - RegData$SmBe3mnd),
                                       '2'= (RegData$SmBePre - RegData$SmBe12mnd))
            RegData <- RegData[which(!is.na(RegData$Variabel)),]
            tittel <- paste0('forbedring av beinsmerter', ktrtxt)#gjsnGrVar
            
      }
      if (valgtVar=='SmRyggEndr') {#gjsnGrVar
            RegData$Variabel <- switch(as.character(ktr), 
                                       '1'= (RegData$SmRyPre - RegData$SmRy3mnd),
                                       '2'= (RegData$SmRyPre - RegData$SmRy12mnd))
            RegData <- RegData[which(!is.na(RegData$Variabel)),]
            tittel <- paste0('forbedring av ryggsmerter', ktrtxt)#gjsnGrVar
            
      }
      if (valgtVar == 'SmStiPre') { #AndelGrVar
            #PasientSkjema. Andel med SmStiPre=1
            #Kode 0,1,tom: Nei, Ja Ukjent
            RegData <- RegData[which(RegData$SmStiPre %in% 0:1), ]
            RegData$Variabel <- RegData$SmStiPre
            tittel <- 'Bruker smertestillende, før operasjon'
            sortAvtagende <- F
      }
      
      if (valgtVar %in% c('SymptVarighRyggHof','SympVarighUtstr')) {
            grtxt <- c('Ingen', '<3 mnd', '3-12 mnd', '1-2 år', '> 2 år', 'Ukjent')
            #grtxt <- c('Ingen smerter', 'Under 3 mnd', '3-12 mnd', '1-2 år', 'Mer enn 2 år', 'Ukjent')
            #RegData$Variabel <- RegData[,valgtVar]
            RegData$VariabelGr <- 9
            indDum <- which(RegData[,valgtVar] %in% 1:5)
            RegData$VariabelGr[indDum] <- RegData[indDum, valgtVar]
            RegData$VariabelGr <- factor(RegData$VariabelGr, levels = c(1:5,9)) 
            tittel <- switch(valgtVar, 
                             SymptVarighRyggHof = 'Varighet av rygg-/hoftesmerter',
                             SympVarighUtstr = 'Varighet av utstrålende smerter'
            )
            if (figurtype %in% c('andelGrVar', 'andelTid')) {
                  RegData <- RegData[indDum, ]
                  RegData$Variabel[which(RegData[ ,valgtVar] %in% 4:5)] <- 1
                  varTxt <- 'med varighet minst 1 år'
                  tittel <- switch(valgtVar, 
                                   SymptVarighRyggHof ='Varighet av rygg-/hoftesmerter minst ett år',
                                   SympVarighUtstr = 'Varighet av utstrålende smerter minst ett år')
                  sortAvtagende <- F}
            if (valgtVar == 'SympVarighUtstr') {KImaalGrenser <- c(0,20,40)}
      }
      
      if (valgtVar == 'sivilStatus') {
            tittel <- 'Sivilstatus'
            grtxt <- c('Gift', 'Samboer', 'Enslig', 'Ukjent')
            RegData$VariabelGr <- 9
            indDum <- which(RegData$SivilStatus %in% 1:3)
            RegData$VariabelGr[indDum] <- RegData$SivilStatus[indDum]
            RegData$VariabelGr <- factor(RegData$VariabelGr, levels = c(1:3,9)) 
      }
      if (valgtVar == 'smStiPreHypp') {
            tittel <- 'Hyppighet av smertestillende før operasjonen'
            grtxt <- c('Sjeldnere', 'Månedlig', 'Ukentlig', 'Daglig', 'Oftere', 'Ukjent')
            RegData$VariabelGr <- 9
            indDum <- which(RegData$SmHyppPre %in% 1:5)
            RegData$VariabelGr[indDum] <- RegData$SmHyppPre[indDum]
            RegData$VariabelGr <- factor(RegData$VariabelGr, levels = c(1:5,9)) 
      }
      
      if (valgtVar == 'smStiPre') {
            tittel <- 'Bruk av smertestillende før operasjonen'
            grtxt <- c('Nei', 'Ja', 'Ukjent')
            RegData$VariabelGr <- 9
            indDum <- which(RegData$SmStiPre %in% 0:1)
            RegData$VariabelGr[indDum] <- RegData$SmStiPre[indDum]
            RegData$VariabelGr <- factor(RegData$VariabelGr, levels = c(0:1,9)) 
      }
      
      if (valgtVar == 'tidlOpr') {
            tittel <- 'Tidligere ryggoperert?'
            retn <- 'H'
            grtxt <- c('Samme nivå', 'Annet nivå', 'Annet og sm. nivå', 'Primæroperasjon', 'Ukjent')
            RegData$VariabelGr <- 9
            indDum <- which(RegData$TidlOpr %in% 1:4)
            RegData$VariabelGr[indDum] <- RegData$TidlOpr[indDum]
            RegData$VariabelGr <- factor(RegData$VariabelGr, levels = c(1:4,9)) 
      }
      if (valgtVar=='tidlOprAntall') {
            tittel <- 'Antall tidligere operasjoner'
            gr <- c(0:5, 1000)
            RegData$Variabel <- 0
            #indDum <- which(is.na(RegData$TidlOprAntall) == FALSE)
            indDum <- which(RegData$TidlOprAntall>0)
            RegData$Variabel[indDum] <- RegData$TidlOprAntall[indDum]
            RegData$VariabelGr <- cut(RegData$Variabel, breaks=gr, include.lowest=TRUE, right=FALSE)
            grtxt <- c(0:4,paste0('5-', max(RegData$TidlOprAntall, na.rm=T)))
      }
      
      if (valgtVar == 'tidlOp3'){ #AndelTid, AndelGrVar
            RegData$Variabel[RegData$TidlOprAntall>2] <- 1
            varTxt <- 'med >2 tidl. operasjoner'
            tittel <- 'Flere enn to tidligere operasjoner'
            sortAvtagende <- F
      }
      if (valgtVar == 'uforetrygdPre') { #fordeling, AndelGrVar, AndelTid
            #PasientSkjema. Andel med UforetrygdPre 1 og 3
            #Kode 1:4,tom: 'Ja', 'Nei', 'Planlegger søknad', 'Innvilget', 'Ukjent')
            tittel <- 'Har pasienten søkt uføretrygd?'
            retn <- 'H'
            grtxt <- c('Ja', 'Nei', 'Planlegger søknad', 'Innvilget', 'Ukjent')
            RegData$VariabelGr <- 9
            indDum <- which(RegData$UforetrygdPre %in% 1:4)
            RegData$VariabelGr[indDum] <- RegData$UforetrygdPre[indDum]
            RegData$VariabelGr <- factor(RegData$VariabelGr, levels = c(1:4,9)) 
            if (figurtype %in% c('andelGrVar', 'andelTid')){
                  RegData <- RegData[which(RegData$UforetrygdPre %in% 1:4), ]
                  RegData$Variabel[which(RegData[ ,valgtVar] %in% c(1,3))] <- 1
                  varTxt <- 'søkt/planlagt å søke'
                  tittel <- 'Har søkt eller planlegger å søke uføretrygd'
                  sortAvtagende <- F}
      }
      
      if (valgtVar=='underkat'){
            RegData$Variabel <- RegData$Inngrep 
            tittel <- 'Fordeling av inngrepstyper'
            if (hovedkat==99){hovedkat <- 1} 
            #if (hovedkat %in% 0:7) {
            gr_nr <- c(0:19)
            txt <- c('Annet','Mikro','Makro','Tubekirurgi','Udefinert',
                     'Mikro','Makro','Tubekirurgi', 'Udefinert',
                     'Laminektomi', 'Interspinøst impl.',
                     'PLF','PLIF','TLIF','ALIF', 'Udefinert fusjon', 
                     'Skiveprotese','Fjern interspinøst impl.','Fjerne ostemat.','Revisjon ostemat.')
            hgr <- c(0,1,1,1,1,2,2,2,2,3,4,5,5,5,5,5,6,7,7,7)
            kat <- data.frame(hgr, gr_nr, txt)	#hkatnavn[hgr+1], 
            underkat_num <- kat$gr_nr[kat$hgr==hovedkat]
            
            RegData <- RegData[which(RegData$Inngrep %in% underkat_num), ]
            grtxt <- as.character(kat$txt[underkat_num+1])
            RegData$VariabelGr <- factor(RegData$Inngrep, levels = underkat_num) 
            #}
      }
      
      
      if (valgtVar == 'utd') { #AndelGrVar, AndelTid
            #PasientSkjema. Andel med Utdanning 4 el 5
            #Kode 1:5,9: 'Grunnskole++, 7-10år','Real-, yrkes- el vg skole', 'Allmennfaglig vg skole',
            #Høyskole/universitet, <4 år', 'Høyskole/universitet, 4år+', 'Ukjent'
            RegData <- RegData[which(RegData$Utd %in% 1:5), ]
            grtxt <- c('Grunnskole++, 7-10år','Real-, yrkes- el vg skole', #'Real-, yrkes-/yrkesfaglig vg skole',
                       'Allmennfaglig vg skole','Høyskole/universitet, <4 år','Høyskole/universitet, 4år+')
            RegData$VariabelGr <- factor(RegData$Utd, levels = 1:5) 
            retn <- 'H'
            tittel <- 'Høyeste fullførte utdanning'
            if (figurtype %in% c('andelGrVar', 'andelTid')) {
                  RegData$Variabel[which(RegData[ ,valgtVar] %in% 4:5)] <- 1
                  varTxt <- 'med høyere utdanning'
                  tittel <- 'Andel høyskole-/universitetsutdannede'
            }}
      
      
      if (valgtVar == 'Verre') { #AndelGrVar		#%in% c('Verre3mnd','Verre12mnd')) {
            #3/12mndSkjema. Andel med helt mye verre og noen sinne (6:7)
            #Kode 1:7,9: ''Helt bra', 'Mye bedre', 'Litt bedre', 'Uendret', 'Litt verre', 'Mye verre',
            #				'Verre enn noen gang', 'Ukjent')
            RegData$Nytte <- switch(as.character(ktr), 
                                    '1'=RegData$Nytte3mnd,
                                    '2'=RegData$Nytte12mnd)
            RegData <- RegData[which(RegData$Nytte %in% 1:7), ]
            RegData$Variabel[RegData$Nytte %in% 6:7] <- 1
            tittel <- paste0('Mye verre/verre enn noen gang' , ktrtxt)
            sortAvtagende <- F
      }
      
      
      #-------------- SAMMENSATTE variable
      #For flerevar=1 må vi omdefinere variablene slik at alle gyldige registreringer 
      #(dvs. alle registreringer som skal telles med) er 0 eller 1. De som har oppfylt spørsmålet
      # er 1, mens ugyldige registreringer er NA. Det betyr at hvis vi skal ta bort registreringer
      # som i kategorier av typen "Ukjent" kodes disse som NA, mens hvis de skal være med kodes de
      # som 0.
      #Vi sender tilbake alle variable som indikatorvariable, dvs. med 0,1,NA
      #(Alternativt kan vi gjøre beregninga her og sende tilbake teller og nevner for den sammensatte variabelen)
      if (valgtVar=='komorbiditet') {
            tittel <- 'Komorbiditet'
            retn <- 'H'
            flerevar <- 1
            variable <- c('SykdAndreRelevanteSykdBechtrew', 'SykdAnnenendokrin', 'SykdAnnenreumatisk', 
                          'SykdCerebrovaskular', 'SykdDepresjonAngst', 'SykdHjertekar', 'SykdHoftekneartose',
                          'SykdHypertensjon', 'SykdKreft', 'SykdKroniskLunge', 'SykdKroniskNevrologisk', 
                          'SykdKroniskSmerterMuskelSkjelettsyst', 'SykdOsteoporose', 'SykDprebetesMellitus', 
                          'SykdReumatoidartritt', 'SykdVaskulærClaudicatio', 'Sykd')
            grtxt <- c('Bechterew', 'Endokrin', 'Reumatisk', 
                       'Cerebrovaskulær', 'Depresjon/Angst', 'Hjerte-kar', 'Hoftekneartose',
                       'Hypertensjon', 'Kreft', 'Lungesykd.', 'Nevrologisk sykd.', 
                       'Muskel-/skjelettsm.', 'Osteoporose', 'Diabetes Mell.', 
                       'Reumatoid artritt', 'Vask. Claudicatio', 'Tot. Komorb.')
            
            cexgr <- 0.9	#Kan endres for enkeltvariable
      }
      
      RegData <- RegData[which(!is.na(RegData$Variabel)),]
      
      UtData <- list(RegData=RegData, grtxt=grtxt, cexgr=cexgr, varTxt=varTxt, xAkseTxt=xAkseTxt, 
                     KImaalGrenser=KImaalGrenser, KIekstrem=KIekstrem, #KImaal=KImaalRetn, 
                     retn=retn, subtxt=subtxt, tittel=tittel,
                     flerevar=flerevar, variable=variable, sortAvtagende=sortAvtagende)
      #RegData inneholder nå variablene 'Variabel' og 'VariabelGr'
      return(invisible(UtData)) 
      
}
Rapporteket/nkr documentation built on Oct. 1, 2019, 2:59 p.m.