# FIGURER OG TABELLER TIL ÅRSRAPPORT, NiPar, Pandemi-data
# Henter alle data, aggregerer til personnivå, men tar høyde for flere smitteforløp (3 forløp: 6pers, 4 forl:1pers)
#Filtrerer på smitteforløp hvor covid er hovedårsak til første innleggelse i smitteforløpet
#--------Klargjøre data-----------
#Legger til re-/nyinnleggelser osv. NB: Hvis vi kun ser på Covid som hovedårsak, mister vi noen reinnleggelser/overføringer.
#2021: valgt å beregne overføringer/nye innleggelser først og så filtrere på hovedårsak covid.
#Vi får dermed flere overføringer sammenlignet med 2020.
#2022: Vi skal ha personaggregerte data hvor vi teller flere smitteforløp. Smitteforløp hvor ALLE opphold hvor Covid hovedårsak.
#2022: Intensivpasient: pasienter/opphold hvor vi faktisk har et tilhørende beredskapsskjema. Ikke benyttet variabelen Nir_beredskapsskjema_CoV2.
setwd('~/Aarsrappresultater/NiPar22/')
#library(intensiv)
library(intensivberedskap)
library(korona)
datoFra <- '2020-03-01' #Vi har pandemi fra 1.mars 2020
datoTil <- '2022-12-31' #
datoFra1aar <- '2022-01-01'
KoroDataRaa <- KoronaDataSQL(datoTil = datoTil)
KoroDataOpph <- KoronaPreprosesser(RegData=KoroDataRaa, aggPers=0, kobleBered=1)
KoroDataPers <- KoronaPreprosesser(RegData=KoroDataRaa, aggPers=1, kobleBered=1, tellFlereForlop=1)
#write.table(KoroDataPers, file = '~/mydata/KoroDataPers.csv', sep = ';', row.names = F, fileEncoding = 'UTF-8')
#ELLER hent fra staging: (pass på at staging oppdatert) Oppdatert med data fra hentet 25.april
KoroDataRaa <- rapbase::loadStagingData("korona", "KoroDataRaa") # KoronaDataSQL(koble=1)
KoroDataOpph <- rapbase::loadStagingData("korona", "KoroDataOpph") #(RegData = KoroDataRaa, aggPers = 0, kobleBered = 1)
KoroDataOpph <- KoroDataOpph[KoroDataOpph$InnDato <= as.Date(datoTil), ]
KoroDataPers <- rapbase::loadStagingData("korona", "KoroData") #(RegData = KoroDataRaa, aggPers = 1, tellFlereForlop = 1, kobleBered = 1)
KoroDataPers <- KoroDataPers[KoroDataPers$InnDato <= as.Date(datoTil), ]
#Bare smitteforløp hvor alle opph har Covid som hovedårsak
KoroData <- KoronaUtvalg(RegData = KoroDataPers, aarsakInn = 1, datoTil = datoTil)$RegData
KoroData1aar <- KoroData[KoroData$InnDato >= as.Date(datoFra1aar), ]
# KoroDataOpph <- KoroDataOpph[KoroDataOpph$ArsakInnleggelse==1,]
# prop.table(table(KoroDataOpph$Isolert))
# prop.table(table(KoroData$Isolert))
# sjekk <- KoroDataOpph[KoroDataOpph$Nir_beredskapsskjema_CoV2==1 & KoroDataOpph$BeredReg==0 &
# KoroDataOpph$Aar==2022 & KoroDataOpph$ArsakInnleggelse==1,
# c("SkjemaGUID", 'HovedskjemaGUID', "FormDate", 'ShNavn',"ReshId", 'Aar')]
# write.table(sjekk, file = 'SkalHaBeredSkjema.csv', sep = ';', row.names = F, fileEncoding = 'UTF-8')
#table(KoroDataOpph[KoroDataOpph$BeredReg==0 ,c('Nir_beredskapsskjema_CoV2', 'Aar')])
# KoroDataPersAlle1aar <- KoroDataPers[KoroDataPers$InnDato >= as.Date(datoFra1aar), ]
# table(KoroDataPers$ArsakInnNy, useNA = 'a')
# #Personer:
# length(unique(KoroData1aar$PersonId))
# KoroDataPers <- KoronaPreprosesser(RegData=KoroDataRaa, aggPers=1, kobleBered=1, tellFlereForlop=0)
# Filer <- korona::lagDatafilerTilFHI(personIDvar='PersonId',
# bered=1, pand=1, influ=0,
# raa=1, aggP=0)
#-----------------------TABELLER--------------------------------
#----Nøkkeltall pr HF---
#FerdigeRegTab pas -> opph.
#Inneholder: liggetid, alder, BMI, om pasienten har risikofaktorer, andel reinnleggelse (>24t),
#andel døde + andel isolert ved innleggelse (kval.ind), antall pasienter
KoroData1aar$BeredPasTest <- ifelse(KoroData1aar$Nir_beredskapsskjema_CoV2==1, 1, 0)
#Antall med beredskapsskjema stemmer ikke med antall som vi får koblet til.
#For 2022 kobles 536 smitteforløp til beredskapsforløp, mens det er 601 forløp som skal ha intensivopphold,
#basert på "Nir_beredskapsskjema_CoV2", altså 65 forløp hvor man ikke finner det aktuelle beredskapsskjemaet.
# BeredPas
# Nir_beredskapsskjema_CoV2 0 1
# 1 65 536
# 2 11202 0
Nokkeltall <- FerdigeRegTab(RegData=KoroData1aar)
tab <- Nokkeltall$Tab[-3, ]
colnames(tab) <- c('Gj.sn', 'Median', 'IQR', 'Tal smitteforløp', 'Del smitteforløp')
intBehPas <- round(100*prop.table(table(KoroData1aar$BeredReg))[2],1)
print(xtable::xtable(tab, align=c('l','r','r','c','r','r'),
label = 'tab:pan_tot',
caption=paste0('Nøkkeltal for pandemipasientar. Dei ', Nokkeltall$N,
' smitteforløpa gjeld ', Nokkeltall$AntPas, ' pasientar. '
,intBehPas, '\\% av pasientane er intensivbehandla.')
))
Nokkeltall <- FerdigeRegTab(RegData=KoroData)
tab <- Nokkeltall$Tab[-3, ]
colnames(tab) <- c('Gj.sn', 'Median', 'IQR', 'Tal smitteforløp', 'Del smitteforløp')
intBehPas <- round(100*prop.table(table(KoroData$BeredReg))[2],1)
print(xtable::xtable(tab, align=c('l','r','r','c','r','r'),
label = 'tab:pan_nokstart',
caption=paste0('Nøkkeltal for pandemipasientar frå pandemistart, mars 2020.
Dei ', Nokkeltall$N,
' smitteforløpa gjeld ', Nokkeltall$AntPas, ' pasientar. '
,intBehPas, '\\% av pasientane er intensivbehandla.')
))
HFer <- unique(KoroData$HF)
for (enh in HFer) {
Nokkeltall <- FerdigeRegTab(RegData=KoroData1aar,
valgtEnhet=enh,
enhetsNivaa = 'HF')
colnames(Nokkeltall$Tab) <- c('Gj.sn', 'Median', 'IQR', 'Tal opphald', 'Del opphald')
print(xtable::xtable(Nokkeltall$Tab[-3, ], align=c('l','r','r','c','r','r'),
#digits=0, #method='compact', #align=c('l', rep('r', ncol(alderDIV))),
caption=paste0('Nøkkeltal for ', enh,'. De ', Nokkeltall$N,
' opphalda gjeld ', Nokkeltall$AntPas, ' pasientar. ')
# ,intBehInn, '\\% av dei ', sum(tabInn), ' pasientane som vart
# innlagde på ', enh,' er intensivbehandla medan ',
# intBehUt, '\\% av dei ', sum(tabUt), ' pasientane utskrivne frå ', enh,' er intensivbehandla')
))
}
#Antibiotika
variabler <- c('Penicillin', 'PenicillinEnzymhemmer', 'Aminoglykosid',
'AndreGencefalosporin', 'TredjeGencefalosporin', 'Kinolon',
'Karbapenem', 'Makrolid', 'AntibiotikaAnnet', 'AntibiotikaUkjent', 'Antibiotika')
grtxt <- c('Penicillin', 'Penicillin m/enzymhemmer', 'Aminoglykosid',
'2. gen. cefalosporin', '3. gen. cefalosporin', 'Kinolon',
'Karbapenem', 'Makrolid', 'Annet', 'Ukjent type', 'Antibiotika, tot.')
#aggregate(KoroData[ ,variabler], by=list(KoroData$HF), FUN=function(x) {sum(x==1)})
tapply(KoroData$Antibiotika, INDEX = KoroData$HF, FUN = function(x){sum(x %in% 1:2)})
#Bare de med kjent antibiotikastatus:
ind <- which(KoroData1aar$Antibiotika %in% 1:2)
tabAntibiotikaInn <- aggregate(KoroData1aar[ind ,variabler], by=list(KoroData1aar$HF[ind]), FUN=function(x) {100*sum(x==1)/length(x)})
colnames(tabAntibiotikaInn) <- c('HF', grtxt)
print(xtable::xtable(tabAntibiotikaInn,
digits = 1,
align = c('l', rep('r',ncol(tabAntibiotikaInn))),
caption = 'Antibiotikabruk ved innleggelse, pandemipasientar. Hele pandemiperioden',
label = 'tab:pan_antibiotika_inn'
),
include.rownames = FALSE)
#Antibiotika, ut
variablerUt <- paste0('Uts', c('Penicillin', 'PenicillinEnzymhemmer', 'Aminoglykosid',
'AndreGencefalosporin', 'TredjeGencefalosporin', 'Kinolon',
'Karbapenem', 'Makrolid', 'Antifungalbehandling',
'AntibiotikaAnnet', 'AntibiotikaUkjent', 'Antibiotika'))
grtxt <- c('Penicillin', 'Penicillin m/enzymhemmer', 'Aminoglykosid',
'2. gen. cefalosporin', '3. gen. cefalosporin', 'Kinolon',
'Karbapenem', 'Makrolid', 'Antimykotisk beh.',
'Annet', 'Ukjent type', 'Antibiotika, tot.')
#tapply(KoroData$UtsAntibiotika, INDEX = KoroData$HF, FUN = function(x){sum(x %in% 1:2)})
table(KoroData1aar$UtsAntibiotika)
#Bare de med kjent antibiotikastatus:
ind <- which(KoroData1aar$UtsAntibiotika %in% 1:2)
tabAntibiotikaUt <- aggregate(KoroData1aar[ind ,variablerUt], by=list(KoroData1aar$HF[ind]), FUN=function(x) {100*sum(x==1)/length(x)})
colnames(tabAntibiotikaUt) <- c('HF', grtxt)
print(xtable::xtable(tabAntibiotikaUt,
digits = 1,
align = c('l', rep('r',ncol(tabAntibiotikaUt))),
caption = 'Antibiotikabruk ved utskriving, pandemipasientar. Hele pandemiperioden',
label = 'tab:pan_antibiotika_ut'
),
include.rownames = FALSE)
#-------------FIGURER-------------
#Innleggelser
AntTab <- antallTidEnhTab(RegData=KoroDataOpph, datoTil = as.Date(datoTil), #tilgangsNivaa=rolle,valgtEnhet= egenEnhet,
tidsenhet= 'maaned'
)
korona::FigTidEnhet(AntTab, outfile='KoronaInnleggelserMnd.pdf')
#Alder- og kjønnsfigur
#Annen visning
dum <- AlderKjFig(RegData=KoroData1aar, outfile='KoronaAlderKj.pdf')
#Covid-19 hovedårsak til innleggeslse?
Aarsak <- paste0(sprintf('%.1f', prop.table(table(KoroData$ArsakInnleggelse[KoroData$InnDato > as.Date(datoFra1aar)]))*100),' %')
names(Aarsak) <- c('Ja', 'Nei', 'Ukjent')
#----------------Alle fordelingsfigurer, basert på smitteforløp-----------------
#
variabler <- c('liggetid','regForsinkelseInn', 'regForsinkelseUt')
for (valgtVar in variabler) {
KoronaFigAndeler(RegData=KoroData, datoFra=datoFra1aar, valgtVar=valgtVar, #aarsakInn=1,
outfile = paste0('KoronaFord_', valgtVar, '.pdf'))
}
#Kun for 2020 - 1.kvartal 2022
variabler <- c('respSviktInn', 'respSviktUt', 'risikoInn', 'sirkSviktInn', 'sirkSviktUt', 'antibiotikaInn', 'antibiotikaUt')
for (valgtVar in variabler) {
KoronaFigAndeler(RegData=KoroData, valgtVar=valgtVar, aarsakInn=1,
datoTil='2022-04-11', outfile = paste0('KoronaFord_', valgtVar, '.pdf'))
}
#Kun for 2020 - 1.kvartal 2022 / hele 2022 for isolert
KoronaFigAndeler(RegData=KoroData, valgtVar='tilstandInnAarsRapp22', datoTil = datoTil, #aarsakInn=1, tilstandInnAarsRapp22
outfile = paste0('KoronaFord_tilstandInnAarsRapp.pdf'))
#----------------Alle figurer, tidsuvikling, basert på smitteforløp-----------------
variabler <- c('alder_u18', 'alder_u40', 'alder_o60', 'alder_o80', 'beredPas', 'dodSh',
'isolertInn')
for (valgtVar in variabler) {
KoronaFigAndelTid(RegData=KoroData, valgtVar=valgtVar,
tidsenhet = 'Kvartal', aarsakInn=1,
outfile = paste0('KoronaUtvTid_', valgtVar, '.pdf'))
}
for (valgtVar in c('respSviktInn', 'risikoInn')) {
KoronaFigAndelTid(RegData=KoroData, valgtVar=valgtVar, datoTil = '2022-03-31',
tidsenhet = 'Kvartal', aarsakInn=1,
outfile = paste0('KoronaUtvTid_', valgtVar, '.pdf'))
}
KoronaFigGjsnTid(RegData=KoroData, preprosess = 0, valgtVar='liggetid', #datoTil = '2022-03-31',
tidsenhet = 'Kvartal', valgtMaal = 'gjsn', aarsakInn=1,
outfile = paste0('KoronaUtvTid_liggetid.pdf'))
#----------Tidsutvikling per RHF, samt alle-------------
#Figurer tidsutvikling, kvartalsvis, ei linje for hvert RHF + hele landet for:
tidsinfo <- SorterOgNavngiTidsEnhet(RegData=KoroData, tidsenhet = 'Kvartal')
KoroData <- tidsinfo$RegData
RHFtid <- function(RegData = KoroData, valgtVar=valgtVar, tittel = '', yAkseTxt = '',
statFunk = ''){
KoronaVarSpes <- KoronaVarTilrettelegg(RegData=RegData, valgtVar=valgtVar, figurtype = 'andelTid')
KoroData <- KoronaVarSpes$RegData
if (tittel=='') {tittel <- KoronaVarSpes$tittel}
if (yAkseTxt == 'andel (%)') {KoroData$Variabel <- 100*KoroData$Variabel}
RHFrekkef <- c('Nord', 'Midt', 'Vest', 'Sør-Øst')
Ngr <- table(KoroData$RHF)[RHFrekkef]
NtidRHF <- tapply(KoroData$Variabel, INDEX = list(KoroData$TidsEnhet, KoroData$RHF), statFunk) #Tot. ant. per tidsenhet
NtidLand <- tapply(KoroData$Variabel, INDEX = KoroData$TidsEnhet, statFunk) #Tot. ant. per tidsenhet
if (valgtVar == 'antall100K') {
innbRHF <- c(482210, 744580,1135740, 3112710)
NtidRHF <- t(NtidRHF[,RHFrekkef])/innbRHF*100000
NtidRHF <- t(NtidRHF)
NtidLand <- NtidLand/sum(innbRHF)*100000
}
FigTypUt <- rapFigurer::figtype(outfile=paste0(valgtVar, '_tidRHF.pdf')) #, fargepalett=fargepalett)
farger <- FigTypUt$farger
xskala <- 1:length(levels(KoroData$TidsEnhet)) #length(tidtxt)
xmax <- max(xskala)
ymax <- ifelse(yAkseTxt=='andel (%)',
min(1.25*max(NtidRHF,na.rm=T), 119),
1.2*max(c(NtidRHF, NtidLand), na.rm=T))
plot(xskala, rep(0, length(xskala)), type='o', pch="'", col='white',
xlim= c(0.9,xmax+0.1), xaxt='n', frame.plot = FALSE,
cex=2, xlab='år-kvartal', ylab=yAkseTxt, ylim=c(0,ymax), yaxs = 'i')
grid(nx = NA, ny = NULL, col = farger[4], lty = "solid")
axis(side=1, at = xskala, labels = tidsinfo$tidtxt) #tidtxt)
title(tittel, line=1, font.main=1)
lines(xskala, NtidRHF[,'Nord'], col=farger[1], lwd=2, lty=5)
lines(xskala, NtidRHF[,'Midt'], col=farger[2], lwd=2, lty=4)
lines(xskala, NtidRHF[,'Vest'], col=farger[3], lwd=2, lty=5)
lines(xskala, NtidRHF[,'Sør-Øst'], col=farger[4], lwd=2, lty=4)
lines(xskala, NtidLand, col='black', lwd=2)
pos <- ifelse(min(NtidRHF, na.rm = T)>80, 'left', 'topleft')
# if (valgtVar == 'risikoInn') {pos <- 'right'}
legend(pos,
legend = paste0(c(RHFrekkef, 'Hele landet'),
' (N=', c(Ngr, sum(Ngr)),')'),
col=c(farger, 'black'), lwd=2, lty = c(5,4,5,4,1), bty='n')
dev.off()
}
# Alder og liggetid (median?),
# andel døde, andel på intensiv, andel isolerte,
# andel som har risikofaktorer (frem til 11 april, Q1),
# tall innlagte,
RHFtid(RegData = KoroData, valgtVar='alder', tittel = 'Median alder ved innleggelse',
yAkseTxt = 'alder (år)', statFunk <- 'median')
RHFtid(RegData = KoroData, valgtVar='liggetid', tittel = 'Median liggetid på sykehus',
yAkseTxt = 'døgn', statFunk <- 'median')
RHFtid(RegData = KoroData, valgtVar='dodSh',
yAkseTxt = 'andel (%)', statFunk = 'mean')
RHFtid(RegData = KoroData, valgtVar='beredPas',
yAkseTxt = 'andel (%)', statFunk = 'mean')
RHFtid(RegData = KoroData[which(KoroData$InnDato <= '2022-03-31'), ], valgtVar='risikoInn',
yAkseTxt = 'andel (%)', statFunk = 'mean')
RHFtid(RegData = KoroData, valgtVar='isolertInn',
yAkseTxt = 'andel (%)', statFunk = 'mean')
RHFtid(RegData = KoroData, valgtVar='ant', tittel = 'Antall innlagte',
yAkseTxt = 'antall', statFunk = 'length')
RHFtid(RegData = KoroData, valgtVar='antall100K', tittel = 'Antall innlagte per 100 000 innbyggere',
yAkseTxt = "antall per 100' ", statFunk = 'length')
#--------------------Testing-----------------------------
test <- KoroData[,c('OverfortAnnetSykehusInnleggelse', 'OverfortAnnetSykehusUtskrivning', "Overf")]
# test <- RegDataSort[sort(unique(c(indPasFlereOpph, indPasFlereOpph-1))),
# c("PasientID", "OpphNr","Reinn","NyInn", "TidUtInn","InnTidspunkt", "UtTidspunkt", "ReshId")]
#OverfortAnnetSykehusInnleggelse:
#Ble pasienten overført fra et annet sykehus til dette sykehuset ved innleggelse?#1,2,3: Ja, Nei, Ukjent
table(KoroData$OverfortAnnetSykehusInnleggelse)
table(KoroData$OverfortAnnetSykehusUtskrivning)
table(KoroData$Overf)
test <- KoroData[KoroData$OpphNr>1,
c("PasientID", "OpphNr","Reinn","Overf", 'OverfortAnnetSykehusInnleggelse', "TidUtInn","InnTidspunkt", "UtTidspunkt", "ReshId")]
#-----------Datakvalitet. Kompletthet-----------------------
# NB: Bare de med Covid som hovedårsak til innleggelse
# RegData <- KoroDataRaa[as.Date(KoroDataRaa$FormDate) >= as.Date(datoFra1aar) &
# as.Date(KoroDataRaa$FormDate) <= as.Date(datoTil) &
# KoroDataRaa$ArsakInnleggelse ==1, ]
# manglerUt <- innManglerUt(RegData = RegData) #
#De fleste variabler er registrert t.o.m. 11.april 2022
"Pandemiskjema, fortsatt obligatoriske:"
# Dato og tidspunkt for innlegging ved denne institusjonen
# Er mistenkt eller påvist akutt infeksjon med COVID-19 hovudårsak til innlegging?
# Blei pasienten isolert fra innkomst?
#----Innleggelsesskjema
KoroInnData <- korona::KoronaDataSQL(datoTil = '2022-12-31', skjema = 1, koble = 0) #datoFra = datoFra1aar,
KoroInnData <- KoroInnData[KoroInnData$ArsakInnleggelse == 1, ]
#varNavnInn <- intersect(names(KoroInnDataRaa), names(KoroData1aar))
#KoroInnData <- KoronaPreprosesser(RegData, aggPers = 0) #
LogVar <- names(KoroInnData)[unique(which(KoroInnData[1,] %in% c('True','False')),
which(KoroInnData[15,] %in% c('True','False')))]
KoroInnData[, LogVar] <- apply(KoroInnData[, LogVar], 2, as.logical)
#table(KoroInnData$KjentRisikofaktor, useNA = 'a') # 1-ja, 2-nei, 3-ukjent, -1 velg verdi
#Skal ikke ha med hver enkelt risikovariabel, bare totalen
# risikoVar <- c('Kreft', 'NedsattimmunHIV', 'Diabetes', 'Hjertesykdom',
# 'AceHemmerInnkomst', 'Astma', 'KroniskLungesykdom', 'Nyresykdom',
# 'Leversykdom', 'KroniskNevro', 'Gravid', 'Royker')
sjekkVar <- c('AkuttSirkulasjonsvikt', 'AkuttRespirasjonsvikt', 'AkuttNyresvikt',
'Antibiotika', 'Bilirubin', 'Ddimer', 'DiastoliskBlodtrykk',
'Hjertefrekvens', 'Hoyde', 'Isolert', 'Kreatinin',
'KjentRisikofaktor', 'Leukocytter', 'Oksygenmetning', 'RontgenThorax',
'Respirasjonsfrekvens', 'SystoliskBlodtrykk', 'Temp', 'Trombocytter', 'Vekt')
#head(KoroInnData[,sjekkVar])
#For risikofaktorer er det nok med kun modervariabel (t.o.m 11 april 2022) Det samme for antibiotika- nok med modervariabel (tom. 11.04.22)
tomme <- sum(is.na(KoroInnData$Isolert)) + sum(KoroInnData$Isolert == -1)
ukj <- sum(KoroInnData$Isolert == 3)
Isolert <- c(tomme, ukj, paste0(sprintf('%.1f', 100*c(tomme, ukj)/dim(KoroInnData)[1]), '%'))
indDato <- which(as.Date(KoroInnData$Innleggelse) <= '2022-04-11')
KoroInnData <- KoroInnData[indDato, ]
test <- KoroInnData[,c("AkuttNyresvikt", "Innleggelse", 'FormStatus')]
table(KoroInnData$AkuttNyresvikt, useNA = 'a')
antUkj <- colSums(KoroInnData==3, na.rm = T)
antUkj[which(names(antUkj) == 'AkuttSirkulasjonsvikt')] <- sum(KoroInnData$AkuttSirkulasjonsvikt == 999) #har ukjent kodet 999
antUkj[which(names(antUkj) == 'AkuttRespirasjonsvikt')] <- sum(KoroInnData$AkuttRespirasjonsvikt == 999) #har ukjent kodet 999
antUkj[which(names(antUkj) == 'RontgenThorax')] <- sum(KoroInnData$RontgenThorax == 5) #RontgenThorax har ukjent kodet 5
#antUkj[which(names(antUkj) == 'Antibiotika')] <- sum(KoroInnData$AntibiotikaUkjent) #FEIL MÅ IKKE BRUKES
antUkj[which(names(antUkj) == 'Bilirubin')] <- sum(KoroInnData$BilirubinUkjent)
antUkj[which(names(antUkj) == 'Ddimer')] <- sum(KoroInnData$DdimerUkjent)
antUkj[which(names(antUkj) == 'DiastoliskBlodtrykk')] <- sum(KoroInnData$DiastoliskBlodtrykkUkjent)
antUkj[which(names(antUkj) == 'Hjertefrekvens')] <- sum(KoroInnData$HjertefrekvensUkjent)
antUkj[which(names(antUkj) == 'Hoyde')] <- sum(KoroInnData$HoydeUkjent)
antUkj[which(names(antUkj) == 'Kreatinin')] <- sum(KoroInnData$SkreatininUkjent)
antUkj[which(names(antUkj) == 'Leukocytter')] <- sum(KoroInnData$LeukocytterUkjent)
antUkj[which(names(antUkj) == 'Oksygenmetning')] <- sum(KoroInnData$OkysgenmetningUkjent)
antUkj[which(names(antUkj) == 'Respirasjonsfrekvens')] <- sum(KoroInnData$RespirasjonsfrekvensUkjent)
antUkj[which(names(antUkj) == 'SystoliskBlodtrykk')] <- sum(KoroInnData$SystoliskBlodtrykkUkjent)
antUkj[which(names(antUkj) == 'Temp')] <- sum(KoroInnData$TempUkjent)
antUkj[which(names(antUkj) == 'Trombocytter')] <- sum(KoroInnData$TrombocytterUkjent)
antUkj[which(names(antUkj) == 'Vekt')] <- sum(KoroInnData$VektUkjent)
#antUkj[which(names(antUkj) %in% risikoVar)] <- length(indUkjRisk)
# fjernVarInn <- c('AntibiotikaUkjent', 'BilirubinUkjent', 'DdimerUkjent', 'DiastoliskBlodtrykkUkjent',
# 'HjertefrekvensUkjent', 'HoydeUkjent', 'LeukocytterUkjent', 'OkysgenmetningUkjent',
# 'RespirasjonsfrekvensUkjent', 'SystoliskBlodtrykkUkjent', 'SkreatininUkjent', 'TempUkjent', 'TrombocytterUkjent', 'VektUkjent',
# 'FormDate', 'Helseenhet', 'HelseenhetID', 'HelseenhetKortNavn', 'HF', 'PersonId', 'SkjemaGUID',
# 'RHF', 'Sykehus', 'CurrentMunicipalNumber', 'DistrictCode', 'MunicipalNumber', 'Municipal', 'PersonIdBC19Hash',
# 'Importert', 'FormStatus', 'FormTypeId', 'CreationDate', 'Innleggelse',
# 'ArsakInnleggelse')
antUkj <- antUkj[sjekkVar]
antNA <- colSums(is.na(KoroInnData[, sjekkVar])) + colSums(KoroInnData[, sjekkVar]==-1, na.rm = T)
Nkoro <- dim(KoroInnData)[1]
tabInn <- cbind(
'Tal tomme' = antNA,
'Tal ukjend' = antUkj,
'Del tomme' = paste0(sprintf('%.1f', 100*antNA/Nkoro), '%'),
'Del ukjend' = paste0(sprintf('%.1f', 100*antUkj/Nkoro), '%')
)
tabInn[ 'Isolert', ] <- Isolert
xtable::xtable(tabInn,
digits = 0,
align = c('l','r','r','r','r'),
caption = 'Komplettheit for sentrale pandemivariablar registrert ved innlegging.
Med unntak av Isolert (som framleis registrerast) er variablane registrerte til og med 11.04.22',
label = 'tab:pan_kompl_inn'
)
#--------ut
# De fleste variabler er registrert t.o.m. 11.april 2022
#"Utskrivningsskjema, fortsatt obligatoriske"
# Dato og tidspunkt for utskriving fra denne institusjonen
# Pasienten er ferdigbehandlet for covid-19, men fortsatt innlagt for annen sykdom ErFerdigBehandlet v.11
#'ErFerdigBehandlet' names(table(KoroUtData$ErFerdigBehandlet, useNA = 'a'))
# Pasientens status ved utskriving
# Antibiotika representeres kun ved fellesvariabel.
TrueFalse <- c('UtsAminoglykosid', 'UtsAndreGencefalosporin', 'UtsAntibiotikaAnnet',
'UtsAntibiotikaUkjent', 'UtsKarbapenem', 'UtsKinolon', 'UtsMakrolid', 'UtsPenicillin', 'UtsPenicillinEnzymhemmer',
'UtsTredjeGencefalosporin')
KoroUtData <- korona::KoronaDataSQL(datoTil = '2022-12-31', koble = 1) #Benytter variablene fra ut-skjema
KoroUtData <- KoroUtData[KoroUtData$ArsakInnleggelse == 1, ]
KoroUtData <- KoronaPreprosesser(RegData=KoroUtData, aggPers=0, kobleBered=0)
tabKompl <- function(var, ukjKode=3){
tomme <- sum(is.na(var)) + sum(var == -1)
ukj <- sum(var == ukjKode)
Isolert <- c(tomme, ukj, paste0(sprintf('%.1f', 100*c(tomme, ukj)/length(var)), '%'))
}
#indDatoMai21Apr22 <- which(KoroUtData$InnDato >= '2021-05-01' & KoroUtData$InnDato <= '2022-04-11')
indTilApr22 <- which(KoroUtData$InnDato <= '2022-04-11')
tabUt <- rbind(
# UtsAkuttSirkulasjonsvikt (til 11.04.22)
UtsAkuttSirkulasjonsvikt = tabKompl(var=KoroUtData$UtsAkuttSirkulasjonsvikt[indTilApr22], ukjKode=999),
# UtsAkuttRespirasjonsvikt (til 11.04.22)
UtsAkuttRespirasjonsvikt = tabKompl(var=KoroUtData$UtsAkuttRespirasjonsvikt[indTilApr22], ukjKode=999),
# UtsAkuttNyresvikt (til 11.04.22)
UtsAkuttNyresvikt = tabKompl(var=KoroUtData$UtsAkuttNyresvikt[indTilApr22], ukjKode=3),
# UtsAntibiotika (til 11.04.22)
UtsAntibiotika = tabKompl(var=KoroUtData$UtsAntibiotika[indTilApr22], ukjKode=3),
# OverfortAnnetSykehusUtskrivning (til 11.04.22)
OverfortAnnetSykehusUtskrivning = tabKompl(var=KoroUtData$OverfortAnnetSykehusUtskrivning[indTilApr22], ukjKode=3),
# StatusVedUtskriving (ut 2022)
StatusVedUtskriving = tabKompl(var=KoroUtData$StatusVedUtskriving), #-1, 1, 2
# Utskrivningsdato (ut 2022)
Utskrivningsdato = tabKompl(var=KoroUtData$Utskrivningsdato), #-1, 1, 2
#SteroideBehandling (01.05.21- 11.042022)
UtsSteroideBehandling = tabKompl(var=KoroUtData$UtsSteroideBehandling[which(KoroUtData$InnDato >= '2021-05-01' & KoroUtData$InnDato <= '2022-04-11')],
ukjKode=3),
# ImmunmodelerendeBehandling (15.03.21- 11.042022)
UtsImmunmodBehandling = tabKompl(var=KoroUtData$UtsImmunmodBehandling[which(KoroUtData$InnDato >= '2021-03-15' & KoroUtData$InnDato <= '2022-04-11')],
ukjKode=3),
# AntiviralBehandling (01.02.22.22-11.04.22)
AntiviralBehandling = tabKompl(var=KoroUtData$AntiviralBehandling[which(KoroUtData$InnDato >= '2021-02-01' & KoroUtData$InnDato <= '2022-04-11')],
ukjKode=3),
# Antifungalbehandling (01.05.21-11.04.22)
Antifungalbehandling = tabKompl(var=KoroUtData$Antifungalbehandling[which(KoroUtData$InnDato >= '2021-05-01' & KoroUtData$InnDato <= '2022-04-11')],
ukjKode=3),
# UtsMonoklonaleantistoff (fra 01.02.22 11.04.22) -
UtsMonoklonaleantistoff = tabKompl(var=KoroUtData$UtsMonoklonaleantistoff[
which(KoroUtData$InnDato >= '2022-02-01' & KoroUtData$InnDato <= '2022-04-11')], ukjKode=3)
)
#table(KoroUtData$UtsMonoklonaleantistoff, KoroUtData$Aar, useNA = 'a')
# test <- KoroUtData[KoroUtData$InnDato >= '2020-01-01' & KoroUtData$InnDato <= '2022-04-11', ]
# dum <- SorterOgNavngiTidsEnhet(test, 'Mnd')
# test <- dum$RegData
# table(test[ ,c('UtsMonoklonaleantistoff','TidsEnhet')])
colnames(tabUt) <- c('Tal tomme', 'Tal ukjend', 'Del tomme', 'Del ukjend' )
xtable::xtable(tabUt,
digits = 0,
caption = 'Komplettheit for variablar registrert ved utskriving i pandemidelen av registeret.',
label = 'tab:pan_kompl_ut'
)
#----Kvalitetsindikatorer, PANDEMI---------
# Nevner er TRUE for alle ferdigstilte pandemiskjema hvor "ArsakInnleggelse" = 1
# Teller er alle ferdigstilte pandemiskjema hvor Nevner er TRUE og "Isolert" = 1.
# Indikatoren er på oppholdsnivå og ikke pasientnivå.
library(korona)
#KvalInd_Pand <- KoronaDataSQL()
KvalInd_Pand <- KoronaPreprosesser(RegData = KoronaDataSQL(), aggPers = 0)
KvalInd_Pand <- KvalInd_Pand[KvalInd_Pand$ArsakInnleggelse == 1, ]
KvalInd_Pand <- KvalInd_Pand[which(KvalInd_Pand$Isolert %in% 1:2), ]
#unique(KvalInd_Pand[, c('UnitId', 'HealthUnitShortName')])
KvalInd_Pand$orgnr <- as.character(nyIDpand[as.character(KvalInd_Pand$ReshId)]) #nyIDpand SE LENGRE NED
KvalInd_Pand$var <- ifelse(KvalInd_Pand$Isolert == 1,1,0)
KvalInd_Pand$year <- KvalInd_Pand$Aar
KvalInd_Pand_Iso <- KvalInd_Pand[ , c('orgnr', 'var', 'year')]
KvalInd_Pand_Iso$ind_id <- 'pandemi_isolasjon'
KvalInd_Pand_Iso$denominator <- 1
KvalInd_Pand_Iso$context <- 'caregiver'
write.table(KvalInd_Pand_Iso, file = 'KvalIndPand.csv', sep = ';', row.names = F)
#table(KvalInd_Pand$orgnr, useNA = 'a')
#Pandemi:
#Nevner er TRUE for alle ferdigstilte pandemiskjema hvor "ArsakInnleggelse" = 1
#Teller er alle ferdigstilte pandemiskjema hvor Nevner er TRUE og "Isolert" = 1.
#Indikatoren er på oppholdsnivå og ikke pasientnivå.
xx <- unique(KvalInd_Pand[, c('ShNavn', 'ReshId')])
yy <- xx[order(xx$ShNavn),]
nye <- sort(setdiff(KvalInd_Pand$ReshId, names(nyIDpand)))
table(KvalInd_Pand$ReshId[KvalInd_Pand$ReshId %in% nye])
nyIDpand <- c(
'102090' = '974706490', #Ahus
'111487' = '974588951', #Aker
'4211747' = '979873190', #Alta
'700263' = '974631091', #Arendal
'102919' = '991992677', #Bergen psyk.
'4209961' = '974795361', #Bodø
'4204083' = '974705788', #Bærum
'108897' = '974116804', #Diakonhjemmet
'4204082' = '974631326', #Drammen
'4204086' = '974631326', #Drammen, psyk. - SLÅR SAMMEN MED DRAMMEN SOMATIKK
'705464' = '974631768', #Elverum
'700265' = '974595214', #Flekkefjord
'700928' = '974744570', #Førde
'705476' = '974632535', #Gjøvik
'103580' = '874606162', #Hallingdal
'705465' = '974724960', #Hamar
'4211748' = '974795833', #Hammerfest
'100176' = '974316285', #Haraldsplass
'700617' = '974795639', #Harstad
'102909' = '974724774', #Haugesund
'4207827' = '974557746', #Haukeland
'100085' = '983974732', #Helse Førde HF
'108595' = '983971709', #Innlandet, psyk. -> Innlandet HF
'4209222' = '974633752', #Kalnes
'4211750' = '974795930', #Kirkenes
'700138' = '974575396', #Klinikk fysikalsk medisin og rehabilitering (Stavern)
'4204085' = '974631385', #Kongsberg
'700264' = '974733013', #Kristiansand
'4216807' = '974746948', #Kristiansund
'102250' = '974754118', #Levanger
'705467' = '874632562', #Lillehammer
'4209963' = '974795558', #Lofoten
'108279' = '974207532', #Lovisenberg
'103000' = '974745089', #Lærdal
'4210647' = '974795515', #Mo i Rana
'4216808' = '974745569', #Molde
'4210648' = '974795485', #Mosjøen
'4208039' = '974633698', #Moss
'105893' = '974753898', #Namsos
'700618' = '974795396', #Narvik
'103001' = '974745364', #Nordfjord
'103712' = '974633159', #Notodden 2 reg.
'705757' = '974707152', #Radiumhospitalet
'705577' = '874716782', #Rikshospitalet
'4204084' = '974631407', #Ringerike
'114358' = '983974724', #Rus Bergen -> Bergen HF
'4210649' = '974795477', #Sandnessjøen
'102026' = '974633191', #Skien
'4201313' = '974749025', #St. Olav
'100320' = '883974832', #St. Olavs Hospital HF
'114282' = '974703300', #Stavanger
'103081' = '974742985', #Stord
'4207919' = '914356199', #Sunnaas
'700720' = '974795787', #Tromsø
'705469' = '974725215', #Tynset
'103948' = '974589095', #Tønsberg
'109870' = '974589095', #Ullevål
'4209964' = '974795574', #Vesterålen
'4216810' = '974747545', #Volda
'102939' = '974743272', #Voss
'4216811' = '974747138' #Ålesund'
)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.