#' 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 NakkeFigAndeler
#' @param valgtVar parameter som angir hvilke(n) variabel man ønsker å tilrettelegge for videre
#' beregning.
#' @param ktr Angir om 3 eller 12 mnd kontroll. 0-ikke valgt (standard), 1-3mnd., 2-12mnd.,
#' @param figurtype Hvilken figurtype det skal tilrettelegges variable for:
#' 'andeler', 'andelGrVar', 'andelTid', 'gjsnGrVar', 'gjsnTid'
#'
#' @return Definisjon av valgt variabel.
#'
#' @export
#'
NakkeVarTilrettelegg <- function(RegData, valgtVar, ktr=0, figurtype='andeler'){ #AndelGrVar #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
if (figurtype == 'andelGrVar') {xAkseTxt <- 'Andel operasjoner (%)'}
ytxt1 <- ''
sortAvtagende <- FALSE #Sortering av resultater. FALSE-laveste best
tittel <- 'Mangler tittel'
deltittel <- ''
variable <- 'Ingen'
KIekstrem <- NULL
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???
#--------------- Definere variable ------------------------------
#Variabeltyper: Numeriske, kategoriske, indikator
# For hver valgtVar:
# Definer og gjør utvalg for variabelen
# tittel, xAkseTxt, sortAvtagende (standard: TRUE)
tittel <- '' #I AndelerGrVar og GjsnGrVar genereres tittel i beregningsfunksjonen
ktrtxt <- c(', 3 mnd etter', ', 12 mnd. etter')[ktr]
# }
#-------------------------------------
if (valgtVar=='Alder') { #Fordeling, #AndelGrVar,AndelTid, GjsnGrVar, GjsnTid
RegData <- RegData[which(RegData$Alder>=0), ] #Tar bort alder<0
xAkseTxt <- 'alder (år)'
tittel <- 'Alder ved innleggelse'
if (figurtype %in% c('andelTid', 'andelGrVar')) {
#Pasienter over 70 år
RegData$Variabel[which(RegData$Alder >= 70)] <- 1
varTxt <- 'pasienter >=70år'
tittel <- 'Pasienter over 70 år'
}
if (figurtype %in% c('gjsnGrVar', 'gjsnTid')) {
RegData$Variabel <- RegData$Alder #GjsnTid, GjsnGrVar
xaksetxt <- 'alder (år)'
deltittel <- 'alder ved innleggelse'}
if (figurtype == 'andeler') { #Fordelingsfigur
gr <- c(seq(0, 100, 10),150)
gr <- c(0,seq(20,90,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+')
xAkseTxt <- 'Aldersgrupper (år)'}
sortAvtagende <- FALSE
KIekstrem <- c(0,110)
}
if (valgtVar=='AndreRelSykdommer') { #AndelGrVar #AndelTid
#IKKE LENGER (feb 18): Tar med blanke som 0. (Hver sykdom får også verdien 0 når denne er tom.)
#RegData$Variabel[which(RegData[ ,valgtVar] == 1)] <- 1
RegData <- RegData[which(RegData[,valgtVar] %in% 0:1), ]
RegData$Variabel <- RegData[ ,valgtVar]
varTxt <- 'med andre sykdommer'
tittel <- 'Pasienter med komorbiditet ved operasjon'
}
if (valgtVar=='AntallNivaaOpr') { #Andeler
gr <- c(0:5,1000)
RegData$VariabelGr <- cut(RegData$AntallNivaaOpr, breaks=gr, include.lowest=TRUE, right=FALSE)
grtxt <- c(0:4,'5+') #sort(unique(RegData$AntNivOpr))
xAkseTxt <- 'Antall'
tittel <- 'Antall nivå operert'
}
if (valgtVar=='Antibiotika') { #Andeler #AndelGrVar #AndelTid
#Fått antibiotikaprofylakse
grtxt <- c('Nei', 'Ja', 'Ukjent') #Ukjent= Ikke utfylt og evt. manglende
varTxt <- 'som har fått antibiotika'
tittel <- 'Fått antibiotikaprofylakse'
indDum <- RegData$Antibiotika %in% 0:1
if (figurtype %in% c('andelGrVar', 'andelTid' )) {
RegData <- RegData[indDum,]}
RegData$Variabel <- RegData$Antibiotika
if (figurtype == 'andeler') {
tittel <- 'Er det gitt antibiotikaprofylakse?'
RegData$VariabelGr <- 9
RegData$VariabelGr[indDum] <- RegData$Antibiotika[indDum]
RegData$VariabelGr <- factor(RegData$VariabelGr, levels = c(0,1,9))
}
}
if (valgtVar %in% c('ArbeidstausPreOp', 'Arbeidstaus3mnd', 'Arbeidstaus12mnd')) { #Andeler, #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',
'Delvis sykemeldt', 'Attføring/rehab.', 'Uførepensjon', 'Ufør og sykem.', 'Ikke utfylt')
indSkjema <- switch(valgtVar,
ArbeidstausPreOp = which(RegData$PasientSkjemaStatus == 1),
Arbeidstaus3mnd = which(RegData$OppFolgStatus3mnd == 1),
Arbeidstaus12mnd = which(RegData$OppFolgStatus12mnd == 1))
indDum <- which(RegData[ ,valgtVar] %in% 1:9)
RegData <- RegData[indSkjema, ]
RegData$VariabelGr <- 99
indDum <- which(RegData[ ,valgtVar] %in% 1:10)
RegData$VariabelGr[indDum] <- RegData[indDum ,valgtVar]
RegData$VariabelGr <- factor(RegData$VariabelGr, levels = c(1:10,99))
tittel <- switch(valgtVar,
ArbeidstausPreOp = 'Arbeidsstatus før operasjon',
Arbeidstaus3mnd = 'Arbeidsstatus 3 mnd. etter operasjon' ,
Arbeidstaus12mnd = 'Arbeidsstatus 12 mnd. etter operasjon')
if (figurtype %in% c('andelGrVar', 'andelTid' )) {
RegData <- RegData[indDum, ]
tittel <- switch(valgtVar,
ArbeidstausPreOp = 'Mottar sykepenger, preoperativt?',
Arbeidstaus3mnd = 'Mottar sykepenger, 3 mnd etter operasjon?' ,
Arbeidstaus12mnd = 'Mottar sykepenger, 12 mnd etter operasjon?')
RegData$Variabel[which(RegData[ ,valgtVar] %in% 6:9)] <- 1
}
varTxt <- 'som mottar sykepenger'
retn <- 'H'
}
if (valgtVar=='ASAgrad') {#Andeler, #AndelGrVar #AndelTid
#Legeskjema. Andel av de som har ASA-grad 3-5
grtxt <- c('I:Ingen','II:Moderat', 'III:Alvorlig', 'IV:Livstruende', 'V:Døende', 'Ukjent')
indDum <- which(RegData[, valgtVar] %in% 1:5)
if (figurtype %in% c('andelGrVar', 'andelTid' )) {
RegData <- RegData[indDum,]
RegData$Variabel[which(RegData[ ,valgtVar] %in% 3:5)] <- 1
varTxt <- 'med ASA>II'
tittel <- 'Pasienter med ASA-grad III-V'
}
if (figurtype == 'andeler') {
RegData$VariabelGr <- 99
RegData$VariabelGr[indDum] <- RegData[indDum, valgtVar]
RegData$VariabelGr <- factor(RegData$VariabelGr, levels = c(1:5,99))
tittel <- 'ASA-grad (komorbiditet)'
}
xAkseTxt <- 'Sykdomsgrad'
}
if (valgtVar=='BMI') { #Andeler #AndelGrVar #AndelTid
#Pasientskjema.
RegData <- RegData[intersect(which(RegData$PasientSkjemaStatus == 1), which(RegData$BMI > 0)), ]
gr <- c(-1, 0, 18.5, 25, 30, 1000)
RegData$VariabelGr <- -1
RegData$VariabelGr <- cut(RegData[,valgtVar], breaks=gr, include.lowest=TRUE, right=FALSE)
grtxt <- c('', '<18,5', levels(RegData$VariabelGr)[3:(length(gr)-2)],'30+')
grtxt2 <- c('Ukjent', 'Undervekt', 'Normalvekt', 'Overvekt', 'Fedme')
xAkseTxt <- "Body Mass Index"
tittel <- 'Pasientenes BMI (Body Mass Index)'
if (figurtype %in% c('andelGrVar', 'andelTid' )) {
RegData$Variabel[which(RegData[ ,valgtVar] >30)] <- 1
varTxt <- 'med BMI>30'
tittel <- 'Pasienter med fedme (BMI>30)'
}
}
if (valgtVar=='EMSendr12mnd') { #GjsnTid #GjsnGrVar
#Pasientkjema og 12mndskjema. Lav skår, mye plager -> Forbedring = økning.
#Kun myelopati-pasienter
KIekstrem <- c(-18,18)
RegData$Variabel <- RegData$EMSscore12mnd - RegData$EMSscorePreOp
indMyelopati <- which(RegData$OprIndikMyelopati == 1)
indVar <- which(RegData$Variabel >= KIekstrem[1])
indSkjema <- which(RegData$PasientSkjemaStatus==1 & RegData$OppFolgStatus12mnd==1)
RegData <- RegData[intersect(indMyelopati, intersect(indVar, indSkjema)), ]
tittel <- 'Forbedring av EMS hos myelopati-pasienter, 12 mnd.'
ytxt1 <- '(endring av EMS-skår)'
deltittel <- 'forbedring av EMS, myelopati-pas., 12 mnd.'
}
if (valgtVar=='EMSendr3mnd') { #GjsnTid #GjsnGrVar
#Pasientkjema og 3mndskjema. Lav skår, mye plager -> Forbedring = økning.
#Kun myelopati-pasienter
KIekstrem <- c(-18,18)
RegData$Variabel <- RegData$EMSscore3mnd - RegData$EMSscorePreOp
indMyelopati <- which(RegData$OprIndikMyelopati == 1)
indVar <- which(RegData$Variabel >= KIekstrem[1])
indSkjema <- which(RegData$PasientSkjemaStatus==1 & RegData$OppFolgStatus3mnd==1)
RegData <- RegData[intersect(indMyelopati, intersect(indVar, indSkjema)), ]
tittel <- 'Forbedring av EMS hos myelopati-pasienter, 3 mnd.'
deltittel <- 'forbedring av EMS, myelopati-pas., 3 mnd.'
ytxt1 <- '(endring av EMS-skår)'
}
if (valgtVar == 'EMSscorePreOp') { #GjsnGrVar, GjsnTid
#Pasientskjema. Bare myelopatipasienter (OprIndikMyelopati == 1)
indPas <- which(RegData$PasientSkjemaStatus==1)
indMye <- which(RegData$OprIndikMyelopati == 1)
indVar <- which(RegData[ ,valgtVar] >-1)
RegData <- RegData[intersect(intersect(indPas, indMye),indVar), ]
RegData$Variabel <- RegData[ ,valgtVar]
deltittel <- 'EMS hos myelopatipas. før operasjon'
xAkseTxt <- ''
KIekstrem <- c(0,18)
}
if (valgtVar=='EnhverKompl3mnd') { #AndelGrVar #AndelTid
#Pasientskjema. Alle komplikasjoner, 3mnd.
indSkjema <- which(RegData$OppFolgStatus3mnd == 1)
RegData <- RegData[intersect(which(RegData[,valgtVar] %in% 0:1), indSkjema), ]
RegData$Variabel <- RegData[ ,valgtVar]
varTxt <- 'komplikasjoner'
tittel <- 'Komplikasjoner (totalt) 3 mnd. etter operasjon'
}
if (valgtVar=='EQ5Dendr3mnd') { #GjsnTid #GjsnGrVar
#Pasientkjema og 3mndskjema. Lav skår, mye plager -> Forbedring = økning.
#Kun myelopati-pasienter
KIekstrem <- c(-1.6, 1.6)
RegData$Variabel <- RegData$Eq5DScore3mnd - RegData$Eq5DScorePreOp
indVar <- which(RegData$Variabel >= KIekstrem[1])
indSkjema <- which(RegData$PasientSkjemaStatus==1 & RegData$OppFolgStatus3mnd==1)
RegData <- RegData[intersect(indVar, indSkjema), ]
tittel <- 'Forbedring av EQ5D, 3 mnd.'
deltittel <- 'forbedring av EQ5D, 3 mnd.'
ytxt1 <- '(endring av EQ5D-skår)'
}
if (valgtVar=='EQ5Dendr12mnd') { #GjsnTid #GjsnGrVar
#Pasientkjema og 12mndskjema. Lav skår, mye plager -> Forbedring = økning.
#Kun myelopati-pasienter
KIekstrem <- c(-1.6, 1.6)
RegData$Variabel <- RegData$Eq5DScore12mnd - RegData$Eq5DScorePreOp
indVar <- which(RegData$Variabel >= KIekstrem[1])
indSkjema <- which(RegData$PasientSkjemaStatus==1 & RegData$OppFolgStatus12mnd==1)
RegData <- RegData[intersect(indVar, indSkjema), ]
tittel <- 'Forbedring av EQ5D, 12 mnd.'
deltittel <- 'forbedring av EQ5D, 12 mnd.'
ytxt1 <- '(endring av EQ5D-skår)'
}
if (valgtVar=='Eq5DScorePreOp') { #gjsnTid, gjsnGrVar
#Pasientkjema.
KIekstrem <- c(-0.6, 1)
indVar <- which(RegData[ , valgtVar] >= KIekstrem[1])
indSkjema <- which(RegData$PasientSkjemaStatus==1)
RegData <- RegData[intersect(indVar, indSkjema), ]
RegData$Variabel <- RegData[, valgtVar]
tittel <- 'EQ5D før operasjon'
deltittel <- 'EQ5D før operasjon'
ytxt1 <- '(EQ5D-skåring)'
}
if (valgtVar == 'EqAngstPreOp') { #Andeler
RegData <- RegData[which(RegData$PasientSkjemaStatus == 1), ]
grtxt <- c('Ingen', 'Litt', 'Mye', 'Ukjent')
RegData$VariabelGr <- 9
indDum <- which(as.numeric(RegData$EqAngstPreOp) %in% 1:3)
RegData$VariabelGr[indDum] <- RegData$EqAngstPreOp[indDum]
RegData$VariabelGr <- factor(RegData$VariabelGr, levels = c(1:3,9))
xAkseTxt <- 'Grad av engstelighet/deprimerthet' #Tilstand i forhold til angst'
tittel <- 'Problemer med angst/depresjon'
}
if (valgtVar=='ErstatningPreOp') { #Andeler #AndelGrVar #AndelTid
#Pasientskjema. Andel med ErstatningPreOp 1 el 3
#Kode 1:4,9: 'Ja', 'Nei', 'Planlegger', 'Innvilget', 'Ukjent'
RegData <- RegData[which(RegData$PasientSkjemaStatus == 1), ]
grtxt <- c('Ja', 'Nei', 'Planlegger', 'Innvilget', 'Ukjent')
tittel <- 'Har søkt/planlegger å søke erstatning før operasjon'
indDum <- which(RegData$ErstatningPreOp %in% 1:4)
RegData$VariabelGr <- 9
RegData$VariabelGr[indDum] <- RegData$ErstatningPreOp[indDum]
RegData$VariabelGr <- factor(RegData$VariabelGr, levels = c(1:4,9))
if (figurtype %in% c('andelGrVar', 'andelTid' )) {
RegData <- RegData[indDum, ]
RegData$Variabel[which(RegData[ ,valgtVar] %in% c(1,3))] <- 1
varTxt <- 'søkt erstatning'
}
}
if (valgtVar %in% c('FornoydBeh3mnd','FornoydBeh12mnd')) { #Andeler #AndelGrVar #AndelTid
#3/12mndSkjema. Andel med Fornøyd/litt fornøyd (1,2)
#Kode 1:5,9: 'Fornøyd', 'Litt fornøyd', 'Verken eller', 'Litt misfornøyd', 'Misfornøyd', 'Ukjent')
grtxt <- c('Fornøyd', 'Litt fornøyd', 'Verken eller', 'Litt misfornøyd', 'Misfornøyd', 'Ukjent')
RegData <- switch(valgtVar,
FornoydBeh3mnd = RegData[which(RegData$OppFolgStatus3mnd==1), ],
FornoydBeh12mnd = RegData[which(RegData$OppFolgStatus12mnd==1), ])
indDum <- which(RegData[ ,valgtVar] %in% 1:5)
retn <- 'H'
RegData$VariabelGr <- 9
RegData$VariabelGr[indDum] <- RegData[indDum, valgtVar]
RegData$VariabelGr <- factor(RegData$VariabelGr, levels = c(1:5,9))
if (figurtype %in% c('andelGrVar', 'andelTid' )) {
RegData <- RegData[indDum, ]
RegData$Variabel[which(RegData[ ,valgtVar] %in% 1:2)] <- 1
varTxt <- 'fornøyde'
tittel <- switch(valgtVar,
FornoydBeh3mnd = 'Fornøyd med behandlinga på sykehuset, 3 mnd' ,
FornoydBeh12mnd = 'Fornøyd med behandlinga på sykehuset, 12 mnd')
}
tittel <- switch(valgtVar,
FornoydBeh3mnd = 'Fornøyd med behandlinga på sykehuset, 3 mnd' ,
FornoydBeh12mnd = 'Fornøyd med behandlinga på sykehuset, 12 mnd')
sortAvtagende <- TRUE
}
if (valgtVar == 'Inngrep'){
grtxt <- c('Ikke klassifiserbar', 'Fremre diskektomi, prolaps', 'Bakre dekompresjon',
'Fremre dekomp. SS u/prolaps', 'Bakre fusjon', 'Korporektomi', 'Andre inngrep') #for verdiene 0:6
RegData <- RegData[which(RegData$Inngrep %in% 0:6),]
RegData$VariabelGr <- factor(RegData$Inngrep, levels = 0:6)
tittel <- 'Inngrepstyper'
retn <- 'H'
}
if (valgtVar=='KnivtidTotalMin') { #GjsnTid #GjsnGrVar#Legeskjema.
RegData <- RegData[which(RegData[ ,valgtVar]>0), ]
RegData$Variabel <- RegData[ ,valgtVar]
KIekstrem <- c(0, 500)
tittel <- 'Total knivtid'
ytxt1 <- '(minutter)'
deltittel <- 'total knivtid'
xAkseTxt <- 'minutter'
}
if (valgtVar=='KomplinfekDyp3mnd') { #AndelGrVar, AndelTid
#3MndSkjema. Andel med KomplinfekDyp3mnd=1
#Kode 0,1: Nei, Ja +tomme
RegData <- RegData[intersect(which(RegData$OppFolgStatus3mnd == 1), which(RegData$KomplinfekDyp3mnd %in% 0:1)), ]
RegData$Variabel <- RegData[ ,valgtVar]
varTxt <- 'dype infeksjoner'
tittel <- 'Pasientrapportert dyp infeksjon, 3 mnd.'
}
if (valgtVar=='KomplinfekOverfl3mnd') { #AndelGrVar, AndelTid
#3MndSkjema. Andel med KomplinfekOverfl3mnd=1
#Kode 0,1: Nei, Ja +tomme
RegData <- RegData[intersect(which(RegData$OppFolgStatus3mnd == 1), which(RegData$KomplinfekOverfl3mnd %in% 0:1)), ]
RegData$Variabel <- RegData[ ,valgtVar]
varTxt <- 'overfladiske infeksjoner'
tittel <- 'Overfladisk infeksjon, 3 mnd.'
}
if (valgtVar=='Komplinfek') { #AndelTid, #AndelGrVar
#3MndSkjema. Andel med KomplinfekDyp3mnd=1
#Kode 0,1: Nei, Ja +tomme
ind <- intersect(which(RegData$OppFolgStatus3mnd == 1),
union(which(RegData$KomplinfekDyp3mnd %in% 0:1), which(RegData$KomplinfekOverfl3mnd %in% 0:1)))
RegData <- RegData[ind, ]
RegData$Variabel[union(which(RegData$KomplinfekDyp3mnd==1), which(RegData$KomplinfekOverfl3mnd==1))] <- 1
varTxt <- 'infeksjoner'
tittel <- 'Pasientrapportert dyp eller overfladisk infeksjon, 3 mnd.'
}
if (valgtVar=='KomplStemme3mnd') { #AndelTid, #AndelGrVar
#3MndSkjema. Andel med KomplStemme3mnd=1
#Kode 0,1: Nei, Ja +tomme
RegData <- RegData[which(RegData$OppFolgStatus3mnd == 1) %i%
which(RegData$KomplStemme3mnd %in% 0:1) %i%
which(RegData$OprMetodeTilgangFremre==1) # %i%which(RegData$OprIndikMyelopati==0)
, ]
RegData$Variabel <- RegData[ ,valgtVar]
varTxt <- 'med stemmevansker'
tittel <- 'Stemmevansker, fremre tilgang, 3 mnd.'
}
if (valgtVar=='KomplStemme12mnd') { #AndelGrVar,
#3MndSkjema. Andel med KomplStemme12mnd=1
#Kode 0,1: Nei, Ja +tomme
RegData <- RegData[which(RegData$OppFolgStatus12mnd == 1) %i%
which(RegData$KomplStemme12mnd %in% 0:1) %i%
which(RegData$OprMetodeTilgangFremre==1), ]
RegData$Variabel <- RegData[ ,valgtVar]
tittel <- 'Stemmevansker, fremre tilgang, 12 mnd.'
}
if (valgtVar=='KomplSvelging12mnd') { #AndelGrVar,
#3MndSkjema. Andel med KomplSvelging12mnd=1
#Kode 0,1: Nei, Ja +tomme
RegData <- RegData[(which(RegData$OppFolgStatus12mnd == 1) %i%
which(RegData$KomplSvelging12mnd %in% 0:1) %i%
which(RegData$OprMetodeTilgangFremre==1)), ]
RegData$Variabel <- RegData[ ,valgtVar]
tittel <- 'Svelgevansker, fremre tilgang, 12 mnd.'
}
if (valgtVar=='KomplSvelging3mnd') { #AndelTid
#3MndSkjema. Andel med KomplSvelging3mnd=1
#Kode 0,1: Nei, Ja +tomme
RegData <- RegData[(which(RegData$OppFolgStatus3mnd == 1) %i%
which(RegData$KomplSvelging3mnd %in% 0:1) %i%
which(RegData$OprMetodeTilgangFremre==1)), ]
RegData$Variabel <- RegData[ ,valgtVar]
varTxt <- 'med svelgevansker'
tittel <- 'Svelgevansker, fremre tilgang, 3 mnd.'
}
if (valgtVar=='LiggeDognPostop') { #Andeler #GjsnTid #GjsnGrVar
#Legeskjema.
#For opphold registrert som dagkirurgi uten at liggedogn er reg., settes liggedogn=0
#dagind <- which( (is.na(RegData$Liggedogn) | is.nan(RegData$Liggedogn)) & RegData$Dagkirurgi==1)
#RegData$Liggedogn[dagind]<-0
RegData <- RegData[which(RegData[ ,valgtVar]>-1), ]
RegData$Variabel <- RegData[ ,valgtVar]
gr <- c(0:5,100)
RegData$VariabelGr <- cut(RegData$LiggeDognPostop, breaks=gr, include.lowest=TRUE, right=FALSE)
grtxt <- c(0:4, '5+')
tittel <- 'Antall liggedøgn postoperativt'
KIekstrem <- c(0, 30)
ytxt1 <- '(døgn)'
deltittel <- 'liggetid etter operasjon'
xAkseTxt <- 'dager'
}
if (valgtVar=='LiggeDognTotalt') { #Andeler #GjsnTid #GjsnGrVar
#Legeskjema.
#For opphold registrert som dagkirurgi uten at liggedogn er reg., settes liggedogn=0
#dagind <- which( (is.na(RegData$Liggedogn) | is.nan(RegData$Liggedogn)) & RegData$Dagkirurgi==1)
#RegData$Liggedogn[dagind]<-0
tittel <- 'Totalt antall liggedøgn'
RegData <- RegData[which(RegData[ ,valgtVar]>-1), ]
RegData$Variabel <- RegData[ ,valgtVar]
gr <- c(0:7,100)
RegData$VariabelGr <- cut(RegData$LiggeDognTotalt, breaks=gr, include.lowest=TRUE, right=FALSE)
grtxt <- c(0:6, '7+')
KIekstrem <- c(0, 30)
ytxt1 <- '(døgn)'
deltittel <- 'antall liggedøgn, totalt'
xAkseTxt <- 'dager'
}
if (valgtVar %in% c('Misfor3mnd','Misfor12mnd')) { #AndelGrVar
#3/12mndSkjema. Andel med Fornøyd/litt fornøyd (1,2)
#Kode 1:5,9: 'Fornøyd', 'Litt fornøyd', 'Verken eller', 'Litt misfornøyd', 'Misfornøyd', 'Ukjent')
indSkjema <- switch(valgtVar,
Misfor3mnd = intersect(which(RegData$FornoydBeh3mnd %in% 1:5),which(RegData$OppFolgStatus3mnd==1)),
Misfor12mnd = intersect(which(RegData$FornoydBeh12mnd %in% 1:5),which(RegData$OppFolgStatus12mnd==1)))
RegData <- RegData[indSkjema, ]
indVar <- switch(valgtVar,
Misfor3mnd = which(RegData$FornoydBeh3mnd %in% 4:5),
Misfor12mnd = which(RegData$FornoydBeh12mnd %in% 4:5))
RegData$Variabel[indVar] <- 1
varTxt <- 'misfornøyde'
tittel <- switch(valgtVar,
Misfor3mnd = 'Misfornøyd med behandlinga på sykehuset, 3 mnd' ,
Misfor12mnd = 'Misfornøyd med behandlinga på sykehuset, 12 mnd')
}
if (valgtVar == 'Morsmal') { #Andeler
RegData <- RegData[which(RegData$PasientSkjemaStatus == 1), ]
grtxt <- c('Norsk', 'Samisk', 'Annet', 'Ukjent')
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))
tittel <- 'Morsmål'
}
if (valgtVar=='NDIscorePreOp') { #GjsnTid #GjsnGrVar
#Pasientkjema.
RegData <- RegData[which(RegData$PasientSkjemaStatus == 1), ]
KIekstrem <- c(0,100)
indVar <- which(RegData[ ,valgtVar] >= KIekstrem[1])
indSkjema <- which(RegData$PasientSkjemaStatus==1)
RegData <- RegData[intersect(indVar, indSkjema), ]
RegData$Variabel <- RegData[ ,valgtVar]
tittel <- 'NDI før operasjon'
ytxt1 <- '(NDI-skåring)'
deltittel <- 'NDI før operasjon'
xAkseTxt <- 'skåring'
}
if (valgtVar=='NDIendr12mnd35pst') { #AndelGrVar, AndelTid
#Pasientkjema og 12mndskjema. Lav skår, lite plager -> forbedring = nedgang.
RegData$NDIEndr <- 100*(RegData$NDIscorePreOp - RegData$NDIscore12mnd)/RegData$NDIscorePreOp
indVar <- which(is.finite(RegData$NDIEndr))
indSkjema <- which(RegData$PasientSkjemaStatus==1 & RegData$OppFolgStatus12mnd==1)
RegData <- RegData[intersect(indVar, indSkjema), ]
RegData$Variabel[RegData$NDIEndr>=35] <- 1
tittel <- 'Minst 35% forbedring av NDI, 12 mnd.'
varTxt <- 'med NDI>35%'
sortAvtagende <- TRUE
}
# if (valgtVar=='NDIendr12mnd35pstKI') { #AndelGrVar, AndelTid
# #Pasientkjema og 12mndskjema. Lav skår, lite plager -> forbedring = nedgang.
# RegData$NDIEndr <- 100*(RegData$NDIscorePreOp - RegData$NDIscore12mnd)/RegData$NDIscorePreOp
# indVar <- which(is.finite(RegData$NDIEndr) & RegData$OprIndikMyelopati==0 & RegData$OprMetodeTilgangFremre==1)
# indSkjema <- which(RegData$PasientSkjemaStatus==1 & RegData$OppFolgStatus12mnd==1)
# RegData <- RegData[intersect(indVar, indSkjema), ]
# RegData$Variabel[RegData$NDIEndr>=35] <- 1
# tittel <- 'Minst 35% forb. av NDI, 12 mnd., fremre, ikke-myelopati'
# varTxt <- 'med NDI>35%'
# KImaalGrenser <- rev(c(0,40,70,100)) #c(0,70,100)
# }
if (valgtVar=='NDIendr12mnd') { #GjsnTid, GjsnGrVar
#Pasientkjema og 12mndskjema. Lav skår, lite plager -> forbedring = nedgang.
KIekstrem <- c(-100,100)
RegData$Variabel <- RegData$NDIscorePreOp - RegData$NDIscore12mnd
indVar <- which(RegData$Variabel >= KIekstrem[1])
indSkjema <- which(RegData$PasientSkjemaStatus==1 & RegData$OppFolgStatus12mnd==1)
RegData <- RegData[intersect(indVar, indSkjema), ]
tittel <- 'Forbedring av NDI, 12 mnd. etter operasjon'
deltittel <- 'forbedring av NDI, 12 mnd. etter operasjon'
ytxt1 <- '(endring av NDI-skår)'
sortAvtagende <- TRUE
}
if (valgtVar=='NDIendr3mnd') { #GjsnTid, GjsnGrVar
#Pasientkjema og 3mndskjema. Lav skår, lite plager -> forbedring = nedgang.
KIekstrem <- c(-100,100)
RegData$Variabel <- RegData$NDIscorePreOp - RegData$NDIscore3mnd
indVar <- which(RegData$Variabel >= KIekstrem[1])
indSkjema <- which(RegData$PasientSkjemaStatus==1 & RegData$OppFolgStatus3mnd==1)
RegData <- RegData[intersect(indVar, indSkjema), ]
tittel <- 'Forbedring av NDI, 3 mnd. etter operasjon'
deltittel <- 'forbedring av NDI, 3 mnd. etter operasjon'
ytxt1 <- '(endring av NDI-skår)'
}
if (valgtVar == 'NRSsmerteArmEndr12mnd') { #AndelGrVar #GjsnGrVar
#Pasientskjema.
KIekstrem <- c(-10,10)
RegData$NRSEndr <- 100*(RegData$NRSsmerteArmPreOp - RegData$NRSsmerteArm12mnd)/RegData$NRSsmerteArmPreOp
indPas <- which(RegData$PasientSkjemaStatus==1 & RegData$OppFolgStatus12mnd==1)
indVar <- which(is.finite(RegData$NRSEndr))
RegData <- RegData[intersect(indPas ,indVar), ]
RegData$Variabel[which(RegData$NRSEndr >=30)] <- 1
tittel <- 'Minst 30% forbedring av NRS-arm, 12 mnd.'
varTxt <- 'med NRSendr.>30%'
if (figurtype %in% c('gjsnGrVar', 'gjsnTid')) {
RegData$Variabel <- RegData$NRSsmerteArmPreOp - RegData$NRSsmerteArm12mnd} #RegData$NRSEndr
deltittel <- 'NRS, armsmerte, endring 12 mnd.'
xAkseTxt <- 'skåring'
sortAvtagende <- TRUE
}
if (valgtVar == 'NRSsmerteArmEndr3mnd') { #AndelGrVar #GjsnGrVar, GjsnTid
#Pasientskjema.
KIekstrem <- c(-10,10)
RegData$NRSEndr <- 100*(RegData$NRSsmerteArmPreOp - RegData$NRSsmerteArm3mnd)/RegData$NRSsmerteArmPreOp
indPas <- which(RegData$PasientSkjemaStatus==1 & RegData$OppFolgStatus3mnd==1)
indVar <- which(is.finite(RegData$NRSEndr)) #Kun de som har reg både før og etter
RegData <- RegData[intersect(indPas ,indVar), ]
RegData$Variabel[which(RegData$NRSEndr >=30)] <- 1
tittel <- 'Minst 30% forbedring av NRS-arm, 3 mnd.'
if (figurtype %in% c('gjsnGrVar', 'gjsnTid')) {
RegData$Variabel <- RegData$NRSsmerteArmPreOp - RegData$NRSsmerteArm3mnd}
deltittel <- 'NRS, armsmerte, endring 3 mnd.'
tittel <- 'NRS, armsmerte, endring 3 mnd. etter'
xAkseTxt <- 'skåring'
}
if (valgtVar == 'NRSsmerteArmPreOp') { #GjsnGrVar, GjsnTid
#Pasientskjema.
KIekstrem <- c(0,10)
indPas <- which(RegData$PasientSkjemaStatus==1)
indVar <- which(RegData[ ,valgtVar] >-1)
RegData <- RegData[intersect(indPas ,indVar), ]
RegData$Variabel <- RegData[ ,valgtVar]
deltittel <- 'NRS, arm før operasjon'
xAkseTxt <- 'skåring'
}
if (valgtVar == 'NRSsmerteNakkeEndr3mnd') { #GjsnGrVar, GjsnTid
#Pasientskjema.
KIekstrem <- c(-10,10)
RegData$NRSEndr <- (RegData$NRSsmerteNakkePreOp - RegData$NRSsmerteNakke3mnd) #100*/RegData$NRSsmerteArmPreOp
indPas <- which(RegData$PasientSkjemaStatus==1 & RegData$OppFolgStatus3mnd==1)
indVar <- which(is.finite(RegData$NRSEndr))
RegData <- RegData[intersect(indPas ,indVar), ]
RegData$Variabel <- RegData$NRSEndr
deltittel <- 'NRS, nakkesmerte, endring 3 mnd. etter'
tittel <- deltittel
xAkseTxt <- 'skåring'
}
if (valgtVar == 'NRSsmerteNakkeEndr12mnd') { #GjsnGrVar, GjsnTid
#Pasientskjema.
KIekstrem <- c(-10,10)
RegData$NRSEndr <- (RegData$NRSsmerteNakkePreOp - RegData$NRSsmerteNakke12mnd) #100*/RegData$NRSsmerteArmPreOp
indPas <- which(RegData$PasientSkjemaStatus==1 & RegData$OppFolgStatus12mnd==1)
indVar <- which(is.finite(RegData$NRSEndr))
RegData <- RegData[intersect(indPas ,indVar), ]
RegData$Variabel <- RegData$NRSEndr
deltittel <- 'NRS, nakkesmerte, endring 12 mnd. etter'
tittel <- deltittel
xAkseTxt <- 'skåring'
}
if (valgtVar == 'NRSsmerteNakkePreOp') { #GjsnGrVar, GjsnTid
#Pasientskjema.
KIekstrem <- c(0,10)
indPas <- which(RegData$PasientSkjemaStatus==1)
indVar <- which(RegData[ ,valgtVar] >-1)
RegData <- RegData[intersect(indPas ,indVar), ]
RegData$Variabel <- RegData[ ,valgtVar]
deltittel <- 'NRS, nakke før operasjon'
tittel <- deltittel
xAkseTxt <- 'skåring'
}
if (valgtVar %in% c('NytteOpr3mnd', 'NytteOpr12mnd')) { #Andeler #AndelTid #AndelGrVar
#3/12mndSkjema. Andel med helt bra/mye bedre (1:2)
#Kode 1:7,9: ''Helt bra', 'Mye bedre', 'Litt bedre', 'Uendret', 'Litt verre', 'Mye verre',
# 'Verre enn noen gang', 'Ukjent')
grtxt <- c('Klart bedre', 'Små endringer', 'Klart verre', 'Ukjent')
tittel <- switch(valgtVar,
NytteOpr3mnd = 'Nytte av operasjon, 3 mnd',
NytteOpr12mnd = 'Nytte av operasjon, 12 mnd')
RegData <- switch(valgtVar,
NytteOpr3mnd = RegData[which(RegData$OppFolgStatus3mnd==1), ],
NytteOpr12mnd = RegData[which(RegData$OppFolgStatus12mnd==1), ])
retn <- 'H'
RegData$VariabelGr <- 9
indDum <- which(RegData[ , valgtVar] %in% 1:7)
RegData$VariabelGr[indDum] <- RegData[indDum, valgtVar]
oldvalues <- c(1:7,9)
newvalues <- c(1,1,2,2,2,3,3,4)
#levels=c('Klart bedre','Klart bedre', 'Små endringer', 'Små endringer', 'Små endringer',
# 'Klart verre', 'Klart verre', 'Ukjent')) # Make this a factor
RegData$VariabelGr <- factor(newvalues[ match(RegData$VariabelGr, oldvalues) ], levels=1:4)
if (figurtype %in% c('andelGrVar', 'andelTid' )) {
RegData <- RegData[indDum, ]
RegData$Variabel[which(RegData[ ,valgtVar] %in% 1:2)] <- 1
varTxt <- '"mye bedre" og "helt bra"'
tittel <- switch(valgtVar,
NytteOpr3mnd = 'Helt bra eller mye bedre, 3 mnd.' ,
NytteOpr12mnd = 'Helt bra eller mye bedre, 12 mnd.')
}
}
if (valgtVar %in% c('NytteOpr3mndAlleKat', 'NytteOpr12mndAlleKat')) { #Andeler
#3/12mndSkjema. Andel med helt bra/mye bedre (1:2)
#Kode 1:7,9: ''Helt bra', 'Mye bedre', 'Litt bedre', 'Uendret', 'Litt verre', 'Mye verre',
# 'Verre enn noen gang', 'Ukjent')
grtxt <- c('Helt bra', 'Mye bedre', 'Litt bedre', 'Uendret', 'Litt verre', 'Mye verre',
'Verre enn noen gang', 'Ukjent')
RegData$Nytte <- switch(valgtVar,
'NytteOpr3mndAllekat' = RegData$NytteOpr3mnd,
'NytteOpr12mndAlleKat' =RegData$NytteOpr12mnd)
tittel <- switch(valgtVar,
'NytteOpr3mndAlleKat' = 'Nytte av operasjon, 3 mnd. etter',
'NytteOpr12mndAlleKat' = 'Nytte av operasjon, 12 mnd. etter')
RegData$VariabelGr <- 9
ind <- switch(valgtVar,
'NytteOpr3mndAlleKat' = which(RegData$OppFolgStatus3mnd==1),
'NytteOpr12mndAlleKat' = which(RegData$OppFolgStatus12mnd==1))
RegData <- RegData[ind, ]
retn <- 'H'
indDum <- which(RegData$Nytte %in% 1:7)
RegData$VariabelGr[indDum] <- RegData$Nytte[indDum]
}
if (valgtVar %in% c('Verre3mnd','Verre12mnd')) { #AndelTid #AndelGrVar
#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')
indSkjema <- switch(valgtVar,
Verre3mnd = which(RegData$NytteOpr3mnd %in% 1:7) %i% which(RegData$OppFolgStatus3mnd==1),
Verre12mnd = which(RegData$NytteOpr12mnd %in% 1:7) %i% which(RegData$OppFolgStatus12mnd==1))
RegData <- RegData[indSkjema, ]
indVar <- switch(valgtVar,
Verre3mnd = which(RegData$NytteOpr3mnd %in% 6:7),
Verre12mnd = which(RegData$NytteOpr12mnd %in% 6:7))
RegData$Variabel[indVar] <- 1
varTxt <- 'med klar forverring'
tittel <- switch(valgtVar,
Verre3mnd = 'Mye verre/verre enn noen gang, 3 mnd.' ,
Verre12mnd = 'Mye verre/verre enn noen gang, 12 mnd.')
}
if (valgtVar == 'OperasjonsKategori') { #Andeler
retn <- 'H'
grtxt <- c('Elektiv', 'Øhjelp', 'Subakutt', 'Ukjent')
indDum <- which(RegData$OperasjonsKategori %in% 1:3)
RegData$VariabelGr <- 9
RegData$VariabelGr[indDum] <- RegData$OperasjonsKategori[indDum]
RegData$VariabelGr <- factor(RegData$VariabelGr, levels = c(1:3,9))
tittel <- 'Hastegrad'
}
if (valgtVar %in% c('Oppf3mnd', 'Oppf12mnd', 'Oppf3og12mnd')) { #AndelGrVar, -Tid
#Oppfølgingsskjema: OppFolgStatus12mnd, OppFolgStatus3mnd
trekkfraDager <- ifelse(valgtVar == 'Oppf3mnd', 100, 400)
RegData <- RegData[RegData$InnDato < min(max(RegData$InnDato), Sys.Date()-trekkfraDager), ]
ind <- switch(valgtVar,
Oppf3mnd = which(RegData$OppFolgStatus3mnd==1),
Oppf12mnd = which(RegData$OppFolgStatus12mnd==1),
Oppf3og12mnd = which(RegData$OppFolgStatus3mnd==1 & RegData$OppFolgStatus12mnd==1 ))
RegData$Variabel[ind] <- 1
tittel <- paste0('Svart på oppfølging, ',
switch(valgtVar,
Oppf3mnd = '3 mnd. etter',
Oppf12mnd = '12 mnd. etter',
Oppf3og12mnd = 'både 3 og 12 mnd. etter'))
sortAvtagende <- T
}
if (valgtVar=='OprIndikMyelopati') { #AndelTid #AndelGrVar
#LegeSkjema. Andel med OprIndikMyelopati=1
#Kode 0,1: Nei, Ja +tomme
#RegData <- RegData[which(RegData$OprIndikMyelopati %in% 0:1), ]
#RegData$Variabel <- RegData$OprIndikMyelopati
#Antar tomme = nei. (Tore 3.okt. 2016)
RegData$Variabel[which(RegData$OprIndikMyelopati == 1)] <- 1
varTxt <- 'med myelopati'
tittel <- 'Operasjonsårsak: Myelopati'
}
if (valgtVar == 'OprIndikPareseGrad') { #Andeler
grtxt <- c(0:5, 'Ukjent')
RegData <- RegData[which(RegData$OprIndikParese == 1), ]
indDum <- which(RegData$OprIndikPareseGrad %in% 0:5)
RegData$VariabelGr <- 9
RegData$VariabelGr[indDum] <- RegData$OprIndikPareseGrad[indDum]
RegData$VariabelGr <- factor(RegData$VariabelGr, levels = c(0:5,9))
tittel <- 'Paresegrad'
}
if (valgtVar=='OprIndikSmerter') { #AndelTid
#LegeSkjema. Andel med OprIndikSmerter=1
#Kode 0,1: Nei, Ja +tomme
RegData <- RegData[which(RegData$OprIndikSmerter %in% 0:1), ]
RegData$Variabel <- RegData$OprIndikSmerter
varTxt <- 'med smerter'
tittel <- 'Operasjonsårsak: Smerter'
}
if (valgtVar=='PerOpEnhverKompl') { #AndelTid
#LegeSkjema. Andel med PerOpEnhverKompl=1
#Kode 0,1: Nei, Ja +tomme
RegData <- RegData[which(RegData$PerOpEnhverKompl %in% 0:1), ]
RegData$Variabel <- RegData$PerOpEnhverKompl
varTxt <- 'med komplikasjoner'
tittel <- 'Komplikasjoner (alle) ved operasjon'
}
if (valgtVar=='OpTilgfrembak') { #Andeler
#LegeSkjema. Andel med PerOpEnhverKompl=1
#Kode 0,1: Nei, Ja +tomme
grtxt <- c('Ikke klassifiserbar', 'Fremre tilgang', 'Bakre tilgang', 'Andre inngrep', 'Bakre og fremre')
RegData$VariabelGr <- factor(RegData$OpTilgfrembak, levels=0:4)
#varTxt <- 'med komplikasjoner'
tittel <- 'Operasjonstilgang'
}
if (valgtVar == 'regForsinkelse') { #Fordeling, Andeler
#Verdier: 0-3402
RegData <- RegData[which(RegData$DiffUtFerdig > -1), ]
tittel <- switch(figurtype,
andeler='Tid fra utskriving til ferdigstilt registrering',
andelGrVar = 'Mer enn 30 dager fra utskriving til ferdig registrering') #
subtxt <- 'døgn'
# gr <- c(0,1,7,14,30,90,365,5000) #gr <- c(seq(0, 90, 10), 1000)
# RegData$VariabelGr <- cut(RegData$DiffUtFerdig, breaks = gr, include.lowest = TRUE, right = TRUE)
# grtxt <- c('1', '(1-7]', '(7-14]', '(14-30]', '(30-90]', '(90-365]', '>365')
cexgr <- 0.9
xAkseTxt <- 'dager'
sortAvtagende <- FALSE
RegData <- RegData[RegData$InnDato < min(max(RegData$InnDato), Sys.Date()-30), ]
if (figurtype == 'andeler') { #Fordelingsfigur
gr <- c(seq(0,98,7), 2000)
RegData$VariabelGr <- cut(RegData$DiffUtFerdig, breaks=gr, include.lowest=TRUE, right=FALSE)
#plot(RegData$VariabelGr)
grtxt <- c(1:14, '>3 mnd.')
subtxt <- 'innen gitte uker etter utskriving'
}
if (figurtype %in% c('andelTid', 'andelGrVar')) {
RegData$Variabel[which(RegData$DiffUtFerdig >90)] <- 1
tittel <- 'Registrert for sent for 3 mnd. oppfølging'
varTxt <- 'for sent registrert'
sortAvtagende <- F}
KImaalGrenser <- c(0,3,10,100)
}
if (valgtVar=='Roker') { #Andeler #AndelTid #AndelGrVar
#PasientSkjema. Andel med Roker=1
#Kode 0,1,9: Nei, Ja Ukjent
grtxt <- c('Nei', 'Ja', 'Ukjent')
tittel <- 'Røyker pasienten?'
RegData <- RegData[which(RegData$PasientSkjemaStatus ==1), ]
indDum <- RegData$Roker %in% 0:1
RegData$VariabelGr <- 9
RegData$VariabelGr[indDum] <- RegData$Roker[indDum]
RegData$VariabelGr <- factor(RegData$VariabelGr, levels = c(0,1,9))
if (figurtype %in% c('andelGrVar', 'andelTid')) {
RegData <- RegData[indDum,]
RegData$Variabel <- RegData$Roker
varTxt <- 'røykere'
tittel <- 'Røykere'
}
}
if (valgtVar == 'Saardren') { #Andeler #AndelTid #AndelGrVar
#LegeSkjema.
#Kode 0,1,9: Nei, Ja Ukjent
tittel <- 'Har pasienten fått sårdren?'
grtxt <- c('Nei', 'Ja', 'Ukjent')
indDum <- which(RegData$Saardren %in% 0:1)
RegData$VariabelGr <- 9
RegData$VariabelGr[indDum] <- RegData$Saardren[indDum]
RegData$VariabelGr <- factor(RegData$VariabelGr, levels = c(0:1,9))
if (figurtype %in% c('andelGrVar', 'andelTid')) {
RegData <- RegData[indDum, ]
RegData$Variabel <- RegData$Saardren
varTxt <- 'med sårdren'
tittel <- 'Pasienter som får sårdren'
}
}
if (valgtVar == 'SivilStatus') { #Andeler
RegData <- RegData[which(RegData$PasientSkjemaStatus ==1), ]
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))
tittel <- 'Sivilstatus'
}
if (valgtVar == 'SmertestillBrukPreOp') { #Andeler
RegData <- RegData[which(RegData$PasientSkjemaStatus ==1), ]
# 1 - Sjeldnere enn hver uke, 2 - Hver uke, 3 - Daglig, 4 - Flere ganger daglig, 9 - Ikke utfylt
grtxt <- c('Aldri', 'Sjeldnere enn ukentlig', 'Ukentlig', 'Daglig', 'Flere ganger daglig', 'Ukjent')
RegData$VariabelGr <- 9
RegData$VariabelGr[which(RegData$SmertestillPreOp == 0)] <- 0
indDum <- which(RegData$SmertestillBrukPreOp %in% 1:4)
RegData$VariabelGr[indDum] <- RegData$SmertestillBrukPreOp[indDum]
RegData$VariabelGr <- factor(RegData$VariabelGr, levels = c(0:4,9))
tittel <- 'Hyppighet av smertestillende før operasjonen'
retn <- 'H'
}
if (valgtVar == 'SmertestillPreOp') { #AndelTid #AndelGrVar
#PasientSkjema. Andel med SmertestillPreOp=1
#Kode 0,1,9: Nei, Ja Ukjent
RegData <- RegData[intersect(which(RegData$SmertestillPreOp %in% 0:1), which(RegData$PasientSkjemaStatus ==1)), ]
RegData$Variabel <- RegData$SmertestillPreOp
varTxt <- 'på smertestillende'
tittel <- 'Bruker smertestillende før operasjon'
}
if (valgtVar == 'Snuser') { #Andeler
RegData <- RegData[which(RegData$PasientSkjemaStatus ==1), ]
grtxt <- c('Nei', 'Ja', 'Ukjent')
RegData$VariabelGr <- 9
indDum <- RegData$Snuser %in% 0:1
RegData$VariabelGr[indDum] <- RegData$Snuser[indDum]
RegData$VariabelGr <- factor(RegData$VariabelGr, levels = c(0,1,9))
tittel <- 'Bruker pasienten snus?'
}
if (valgtVar == 'SymptVarighetArmer') { #Andeler #AndelTid #AndelGrVar
#PasientSkjema. Andel med SymptVarighetArmer 4 el 5
#Kode: Antall uker
RegData <- RegData[which(RegData$PasientSkjemaStatus ==1), ]
tittel <-'Varighet av utstrålende armsmerter'
grtxt <- c('Ingen', '<3 mnd', '3-12 mnd', '1-2 år', '>2 år', 'Ukjent')
RegData <- RegData[intersect(which(RegData$SymptVarighetArmer >-1), which(RegData$PasientSkjemaStatus ==1)), ]
indDum <- which(RegData[,valgtVar] %in% 1:5)
RegData$VariabelGr <- 9
RegData$VariabelGr[indDum] <- RegData[indDum,valgtVar]
RegData$VariabelGr <- factor(RegData$VariabelGr, levels = c(1:5,9))
if (figurtype %in% c('andelGrVar', 'andelTid')) {
RegData <- RegData[indDum,]
RegData$Variabel[which(RegData[,valgtVar] %in% 4:5)] <- 1
varTxt <- 'med varighet > 1 år'
tittel <- 'Varighet av armsmerter minst ett år'
}
}
if (valgtVar == 'SymptVarighetNakkeHode') { #Andeler #AndelTid #AndelGrVar
#PasientSkjema. Andel med SymptVarighetNakkeHode 4 el 5
#Kode 1:5,9: 'Ingen', '<3 mnd', '3-12 mnd', '1-2 år', '>2 år', 'Ukjent'
tittel <- 'Varighet av nakke-/hodesmerter'
grtxt <- c('Ingen', '<3 mnd', '3-12 mnd', '1-2 år', '>2 år', 'Ukjent')
RegData <- RegData[which(RegData$PasientSkjemaStatus ==1), ]
indDum <- which(RegData[,valgtVar] %in% 1:5)
RegData$VariabelGr <- 9
RegData$VariabelGr[indDum] <- RegData[indDum,valgtVar]
RegData$VariabelGr <- factor(RegData$VariabelGr, levels = c(1:5,9))
if (figurtype %in% c('andelGrVar', 'andelTid')) {
RegData <- RegData[indDum,]
RegData$Variabel[which(RegData[,valgtVar] %in% 4:5)] <- 1
varTxt <- 'med varighet >1 år'
tittel <- 'Varighet av hode-/nakkesmerter minst ett år'
}
}
if (valgtVar == 'TidlOpr') { #Andeler
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))
tittel <- 'Er pasienten tidligere operert?'
}
if (valgtVar=='TidlOprAntall') { #Andeler
gr <- c(0:3, 100,1000)
RegData$Variabel <- 999
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:2,paste0('3-', max(RegData$TidlOprAntall, na.rm=T)), 'Ukjent')
tittel <- 'Antall tidligere operasjoner'
}
if (valgtVar == 'UforetrygdPreOp') { #Andeler #AndelTid #AndelGrVar
#PasientSkjema. Andel med UforetrygdPreOp 1 og 3
#Kode 1:4,9: 'Ja', 'Nei', 'Planlegger søknad', 'Innvilget', 'Ukjent')
grtxt <- c('Ja', 'Nei', 'Planlegger søknad', 'Innvilget', 'Ukjent')
tittel <- 'Søkt/planlegger å søke uføretrygd før operasjon'
RegData <- RegData[which(RegData$PasientSkjemaStatus ==1), ]
indDum <- which(RegData$UforetrygdPreOp %in% 1:4)
RegData$VariabelGr <- 9
RegData$VariabelGr[indDum] <- RegData$UforetrygdPreOp[indDum]
RegData$VariabelGr <- factor(RegData$VariabelGr, levels = c(1:4,9))
if (figurtype %in% c('andelGrVar', 'andelTid')) {
RegData <- RegData[indDum,]
RegData$Variabel[which(RegData[ ,valgtVar] %in% c(1,3))] <- 1
varTxt <- 'søkt/planlagt å søke'
tittel <- 'Søkt / planlegger å søke uføretrygd før operasjon'
retn <- 'H'
}
}
if (valgtVar == 'Utdanning') { #Andeler #AndelGrVar
#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'
grtxt <- c('Grunnskole, 7-10år','Real-, yrkes- el vg skole',
'Allmennfaglig vg skole','Høyskole/universitet, <4 år','Høyskole/universitet, 4år+', 'Ukjent')
tittel <- 'Utdanningsnivå'
RegData <- RegData[which(RegData$PasientSkjemaStatus ==1), ]
indDum <- which(RegData$Utdanning %in% 1:5)
RegData$VariabelGr <- 9
RegData$VariabelGr[indDum] <- RegData$Utdanning[indDum]
RegData$VariabelGr <- factor(RegData$VariabelGr, levels = c(1:5,9))
if (figurtype %in% c('andelGrVar', 'andelTid')) {
RegData <- RegData[indDum, ]
RegData$Variabel[which(RegData[ ,valgtVar] %in% 4:5)] <- 1
varTxt <- 'med høyere utdanning'
tittel <- 'Pasienter med høyskole-/universitetsutdannelse'
}
retn <- 'H'
}
#-------------- 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
# if (valgtVar %in% c('Komorbiditet', 'KomplOpr', 'Kompl3mnd', 'OprIndik', 'OprIndikSmerter',
# 'OprIndikMyelopati', 'Radiologi')){
if (valgtVar=='OprIndik') {
tittel <- 'Operasjonsårsak'
retn <- 'H'
flerevar <- 1
#OprIndiasjonasjonUfylt <>1 - tom variabel,
#Svært få (ca 20 av 3000) har tom registrering. Setter derfor felles N lik alle reg.
#01.03.2018: Mange har tom registrering... Må derfor skille på N for de ulike variable
variable <- c('OprIndikParese', 'OprIndikMyelopati', 'OprIndikSmerter', 'SmerteMyelo', 'OprIndikAnnet')
grtxt <- c('Pareser', 'Myelopati', 'Smerter', 'Sm. og Myelop.', 'Annet')
#Smerter og Myelopati
indSmerter <- which(RegData$OprIndikSmerter == 1)
indMyelopati <- which(RegData$OprIndikMyelopati == 1)
RegData$SmerteMyelo <- NA
RegData$SmerteMyelo[(RegData$OprIndikSmerter %in% 0:1) & (RegData$OprIndikMyelopati %in% 0:1)] <- 0
RegData$SmerteMyelo[ (RegData$OprIndikSmerter == 1) & (RegData$OprIndikMyelopati == 1)] <- 1
# ind01 <- which(RegData[ ,variable] %in% 0:1, arr.ind = T) #Alle ja/nei
# ind1 <- which(RegData[ ,variable] == 1, arr.ind=T) #Ja i alle variable
# RegData[ ,variable] <- NA
# RegData[ ,variable][ind01] <- 0
# RegData[ ,variable][ind1] <- 1
# xAkseTxt <- 'Andel opphold (%)'
#
}
if (valgtVar=='Radiologi') {
retn <- 'H'
flerevar <- 1
#RadilogiUnderokelseUfylt - tom variabel,
#RadiologiRtgCcolFunkOpptak - tom variabel,
#Svært få har tom registrering. Setter derfor felles N lik alle reg.
tittel <- 'Radiologisk undersøkelse'
grtxt <- c('CT', 'MR', 'Myelografi', 'Røntgen-Ccol')
variable <- c('RadiologiCt', 'RadiologiMr', 'RadiologiMyelografi', 'RadiologiRtgCcol')
ind01 <- which(RegData[ ,variable] != -1, arr.ind = T) #Alle ja/nei
# ind1 <- which(RegData[ ,variable] == 1, arr.ind=T) #Ja i alle variable
# RegData[ ,variable] <- NA
# RegData[ ,variable][ind01] <- 0
# RegData[ ,variable][ind1] <- 1
xAkseTxt <- 'Andel opphold (%)'
}
if (valgtVar=='Komorbiditet') {
tittel <- 'Komorbiditet'
retn <- 'H'
flerevar <- 1
RegData <- RegData[which(RegData$AndreRelSykdommer %in% 0:1), ] #Alle videre variable utfylt
variable <- c('SykdReumatisk','SykdAnnenendokrin', 'SykdAnnet','SykdCarpalTunnelSyndr', 'SykdCerebrovaskular',
'SykdDepresjonAngst', 'SykdHjertekar', 'SykdHodepine', 'SykdHypertensjon',
'SykDiabetesMellitus', 'SykdKreft', 'SykdKroniskLunge', 'SykdKroniskNevrologisk',
'SykdKrSmerterMuskelSkjelSyst', 'SykdOsteoporose', 'SykdSkulderImpigment',
'SykdWhiplashNakke', 'AndreRelSykdommer')
grtxt <- c('Annen Reumatisk', 'Annen endokrin', 'Andre', 'Carpal TS', 'Cerebrovaskulær',
'Depresjon/Angst', 'Hjerte-/Karsykd.', 'Hodepine', 'Hypertensjon',
'Diabetes', 'Kreft', 'Kr. lungesykdom', 'Kr. nevrologisk',
'Kr. muskel/skjelettsm.', 'Osteoporose', 'Skuldersyndrom',
'Whiplash/skade', 'Tot. komorb')
RegData$SykdReumatisk <- 0
indSykdReumatisk <- (RegData$SykdAnnenreumatisk ==1 | (RegData$SykdBechtrew==1 | RegData$SykdReumatoidartritt==1))
RegData$SykdReumatisk[indSykdReumatisk] <- 1
# ind01 <- which(RegData[ ,variable] != -1, arr.ind = T) #Alle ja/nei
# ind1 <- which(RegData[ ,variable] == 1, arr.ind=T) #Ja i alle variable
# RegData[ ,variable] <- NA
# RegData[ ,variable][ind01] <- 0
# RegData[ ,variable][ind1] <- 1
}
if (valgtVar=='KomplOpr') {
tittel <- 'Komplikasjoner ved operasjon'
retn <- 'H'
flerevar <- 1
variable <- c('PerOpKomplAnafylaksiI','PerOpKomplAnnet','PerOpKomplBlodning','PerOpKomplDurarift',
'PerOpKomplFeilplasseringImplant','PerOpKomplKardioVaskulare','PerOpKomplMedullaskade',
'PerOpKomplNerverotSkade','PerOpKomplAnnenNerveskade','PerOpKomplOpFeilNivaa',
'PerOpKomplRespiratorisk','PerOpKomplOsofagusSkade','PerOpEnhverKompl')
grtxt <- c('Anafylaksi','Annet','Blødning','Durarift','Feilplassering, impl.','Kardiovaskulære','Medullaskade',
'Nerverotskade','Nerveskade','Op. feil nivå','Respiratorisk','Øsofagusskade','Komplikasjoner, alle')
}
if (valgtVar=='Kompl3mnd') {
tittel <- 'Komplikasjoner 3 mnd. etter operasjon'
retn <- 'H'
flerevar <- 1
RegData <- RegData[which(RegData$OppFolgStatus3mnd == 1), ]
variable <- c('KomplDVT3mnd', 'KomplinfekDyp3mnd', 'KomplLungeEmboli3mnd', 'KomplinfekOverfl3mnd',
'KomplPneumoni3mnd', 'KomplStemme3mnd', 'KomplSvelging3mnd', 'KomplUVI3mnd', 'KomplKraftsvikt3mnd',
'EnhverKompl3mnd')
grtxt <- c('DVT', 'Dyp infeksjon', 'Lungeemboli', 'Overfladisk infeksjon',
'Pneumoni', 'Stemmevansker', 'Svelgevansker', 'UVI', 'Kraftsvikt', 'Totalt, 3 mnd.')
}
if (valgtVar=='OprIndikSmerter') {
tittel <- 'Operasjonsårsak: Smerter'
retn <- 'H'
flerevar <- 1
RegData <- RegData[which(RegData$OprIndikSmerter %in% 0:1), ]
variable <- c('OprIndikSmerter', 'OprIndikSmerteLokArm', 'OprIndikSmerteLokNakke', 'SmerteArmNakke' )
grtxt <- c('Smerter', '...Arm', '...Nakke', '...Arm og Nakke')
RegData$SmerteArmNakke <- 0
RegData$SmerteArmNakke[RegData$OprIndikSmerteLokArm == 1 & RegData$OprIndikSmerteLokNakke == 1] <- 1
}
if (valgtVar=='OprIndikMyelopati') {
tittel <- 'Operasjonsårsak: Myelopati'
retn <- 'H'
flerevar <- 1
RegData <- RegData[which(RegData$OprIndikMyelopati %in% 0:1), ]
variable <- c('OprIndikMyelopati', 'OprIndikMyelopatiMotorisk', 'OprIndikMyelopatiSensorisk',
'MotorSensor')
grtxt <- c('Myelopati', '...Motorisk', '...Sensorisk', '...Begge deler')
RegData$MotorSensor <- 0
RegData$MotorSensor[RegData$OprIndikMyelopatiMotorisk & RegData$OprIndikMyelopatiSensorisk] <- 1
}
UtData <- list(RegData=RegData, grtxt=grtxt, cexgr=cexgr, varTxt=varTxt, xAkseTxt=xAkseTxt,
tittel=tittel, varTxt=varTxt, flerevar=flerevar, #KImaalGrenser=KImaalGrenser,
variable=variable, sortAvtagende=sortAvtagende,
retn=retn, ytxt1=ytxt1, deltittel=deltittel, KIekstrem=KIekstrem)
#RegData inneholder nå variablene 'Variabel' og 'VariabelGr'
return(invisible(UtData))
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.