Skip to content

Commit

Permalink
videreutvikling
Browse files Browse the repository at this point in the history
  • Loading branch information
kevinthon committed Dec 20, 2023
1 parent b0537a1 commit e47fb5a
Show file tree
Hide file tree
Showing 7 changed files with 249 additions and 24 deletions.
1 change: 1 addition & 0 deletions NAMESPACE
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ export(appUi)
export(binomkonf)
export(norspisApp)
export(norspisBeregnIndikator)
export(norspisLesOgProsesser)
export(norspisPlotIndikator)
export(queryAlleScorer)
export(queryBehandling)
Expand Down
117 changes: 116 additions & 1 deletion R/norspisBeregnIndikator.R
Original file line number Diff line number Diff line change
Expand Up @@ -151,6 +151,122 @@ norspisBeregnIndikator <- function(RegData, ind_id = "norspis_KI1_symptomreduksj
tittel <- c("Andelen som rapporterer Klar bedring", "eller Ikke noe problem lenger (BU)")
}

if (ind_id == "norspis_involvering_famlie_venner_BU") {

Indikator <- RegData %>%
filter(!is.na(PT02BleInvolv) & PT02BleInvolv!= 9,
!Over18_start) %>%
mutate(year = format(RegHendelsesdato_slutt, "%Y") %>% as.numeric(),
var = PT02BleInvolv,
denominator = 1) %>%
select(AvdRESH, year, var, denominator, Kortnavn, AvdBUV_start) %>%
rename(SykehusNavn = Kortnavn) %>%
mutate(ind_id = ind_id,
context = "caregiver")
maal <- 100
tittel <- c("Andelen som rapporterer at familie og/eller", "venner ble involvert i behandlingen (BU)")
}

if (ind_id == "norspis_involvering_famlie_venner_V") {

Indikator <- RegData %>%
filter(PT01OnsketInvolv == 1,
!is.na(PT02BleInvolv) & PT02BleInvolv != 9,
Over18_start) %>%
mutate(year = format(RegHendelsesdato_slutt, "%Y") %>% as.numeric(),
var = PT02BleInvolv,
denominator = 1) %>%
select(AvdRESH, year, var, denominator, Kortnavn, AvdBUV_start) %>%
rename(SykehusNavn = Kortnavn) %>%
mutate(ind_id = ind_id,
context = "caregiver")
maal <- 100
tittel <- c("Andelen som rapporterer at familie og/eller", "venner ble involvert i behandlingen (V)")
}

if (ind_id == "norspis_undervekt_prodprove") {

Indikator <- RegData %>%
mutate(bmi = ifelse(!is.na(MedIsoBMIBGS_start),
MedIsoBMIBGS_start, MedBMI_start)) %>%
filter(!is.na(bmi),
bmi < 18.5,
MedBlodprove_start %in% c(0,1)) %>%
mutate(var = MedBlodprove_start,
denominator = 1,
year = format(RegHendelsesdato_start, "%Y") %>% as.numeric()) %>%
select(AvdRESH, year, var, denominator, Kortnavn, AvdBUV_start) %>%
rename(SykehusNavn = Kortnavn) %>%
mutate(ind_id = ind_id,
context = "caregiver")
maal <- 90
tittel <- c("Andelen undervektige pasienter (BMI < 18,5) ved ", "start, der det er tatt blodprøver ved start.")
}

if (ind_id == "norspis_oppkast_prodprove") {

Indikator <- RegData %>%
filter(!is.na(EDE16GgrOppkast_start),
MedBlodprove_start %in% c(0,1)) %>%
mutate(var = MedBlodprove_start,
denominator = 1,
year = format(RegHendelsesdato_start, "%Y") %>% as.numeric()) %>%
select(AvdRESH, year, var, denominator, Kortnavn, AvdBUV_start) %>%
rename(SykehusNavn = Kortnavn) %>%
mutate(ind_id = ind_id,
context = "caregiver")
maal <- 90
tittel <- c("Andelen med alvorlig eller ekstremt oppkast ved", "start, der det er tatt blodprøver ved start.")
}

if (ind_id == "norspis_beintetthetsmaling_V") {

Indikator <- RegData %>%
mutate(bmi = ifelse(!is.na(MedIsoBMIBGS_start),
MedIsoBMIBGS_start, MedBMI_start),
BeintetthMaling = ifelse(MedBeintetthMaling_start == 1 |
MedBeintetthMaling_slutt == 1,
1, 0)) %>%
filter(Over18_start,
bmi < 18.5,
MedBeintetthMaling_start %in% 0:1 |
MedBeintetthMaling_slutt %in% 0:1) %>%
mutate(BeintetthMaling = ifelse(is.na(BeintetthMaling), 0, BeintetthMaling)) %>%
mutate(var = BeintetthMaling,
denominator = 1,
year = format(RegHendelsesdato_start, "%Y") %>% as.numeric()) %>%
select(AvdRESH, year, var, denominator, Kortnavn, AvdBUV_start) %>%
rename(SykehusNavn = Kortnavn) %>%
mutate(ind_id = ind_id,
context = "caregiver")
maal <- 90
tittel <- c("Andelen undervektige ved start der det", "oppgis at det er gjort en beintetthetsmåling (V)")
}

if (ind_id == "norspis_beintetthetsmaling_BU") {

Indikator <- RegData %>%
mutate(bmi = ifelse(!is.na(MedIsoBMIBGS_start),
MedIsoBMIBGS_start, MedBMI_start),
BeintetthMaling = ifelse(MedBeintetthMaling_start == 1 |
MedBeintetthMaling_slutt == 1,
1, 0)) %>%
filter(!Over18_start,
bmi < 18.5,
MedBeintetthMaling_start %in% 0:1 |
MedBeintetthMaling_slutt %in% 0:1) %>%
mutate(BeintetthMaling = ifelse(is.na(BeintetthMaling), 0, BeintetthMaling)) %>%
mutate(var = BeintetthMaling,
denominator = 1,
year = format(RegHendelsesdato_start, "%Y") %>% as.numeric()) %>%
select(AvdRESH, year, var, denominator, Kortnavn, AvdBUV_start) %>%
rename(SykehusNavn = Kortnavn) %>%
mutate(ind_id = ind_id,
context = "caregiver")
maal <- 90
tittel <- c("Andelen undervektige ved start der det", "oppgis at det er gjort en beintetthetsmåling (BU)")
}



indikatordata <- list(indikator=Indikator, tittel=tittel, terskel=terskel,
Expand All @@ -160,5 +276,4 @@ norspisBeregnIndikator <- function(RegData, ind_id = "norspis_KI1_symptomreduksj
width=width, height=height, maalretn=maalretn)



}
58 changes: 58 additions & 0 deletions R/norspisLesOgProsesser.R
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
#' Les og preprosesser data for Norspis
#'
#' Leg nødvendige tabeller for Norspis og returner en utflatet dataramme
#'
#' @export
#'
norspisLesOgProsesser <- function() {

AlleScorer <- norspis::queryAlleScorer("norspis")
EnkeltLeddNum <- norspis::queryEnkeltLeddNum("norspis")
ForlopsOversikt <- norspis::queryForlopsOversikt("norspis")

AlleScorer <-
AlleScorer[ , setdiff(names(AlleScorer),
norspis::variabeloversikt$Variabelnavn[norspis::variabeloversikt$Tabell == "AlleScorer" &
norspis::variabeloversikt$status == "Utgaatt"])]
EnkeltLeddNum <-
EnkeltLeddNum[ , setdiff(names(EnkeltLeddNum),
norspis::variabeloversikt$Variabelnavn[norspis::variabeloversikt$Tabell == "EnkeltLeddNum" &
norspis::variabeloversikt$status == "Utgaatt"])]

RegData <- merge(EnkeltLeddNum,
ForlopsOversikt[, c("ForlopsID", "ForlopsType1Num",
"ForlopsType1", "BasisRegStatus",
"PasientAlder", "Fodselsdato")],
by = "ForlopsID") %>%
dplyr::filter(BasisRegStatus == 1) %>%
merge(AlleScorer, by = "ForlopsID") %>%
merge(norspis::resh_voksen_barn[, c("AvdRESH", "AvdBUV",
"Kortnavn", "orgnr")],
by = "AvdRESH", all.x = TRUE) %>%
dplyr::mutate(AvdBUV = ifelse(AvdRESH == 109979 & ForlopsType1Num %in% c(1,3,5,7,98),
"V", AvdBUV),
Kortnavn = ifelse(AvdRESH == 109979 & ForlopsType1Num %in% c(1,3,5,7,98),
"OUS: Reg. V", Kortnavn),
Over18 = ifelse(PasientAlder >= 18, TRUE, FALSE))

RegData_start <- RegData[RegData$ForlopsType1Num %in% 3:4, ]
RegData_start <-
RegData_start[, setdiff(names(RegData_start),
norspis::variabeloversikt$Variabelnavn[norspis::variabeloversikt$status == "IkkeStart"])]
RegData_slutt <- RegData[RegData$ForlopsType1Num %in% 5:6, ]
RegData_slutt <-
RegData_slutt[ , setdiff(names(RegData_slutt),
norspis::variabeloversikt$Variabelnavn[norspis::variabeloversikt$status == "IkkeSlutt"])]
RegData_slutt <- RegData_slutt[ , setdiff(names(RegData_slutt),
c("AvdRESH", "Kortnavn",
"PasientID", "SykehusNavn",
"orgnr"))]

RegData <- merge(RegData_start, RegData_slutt,
by.x = "ForlopsID", by.y = "RegTilhorendeStartReg",
suffixes = c("_start", "_slutt"),
all.x = TRUE)

}


Binary file added data/resh_voksen_barn.rda
Binary file not shown.
Binary file added data/variabeloversikt.rda
Binary file not shown.
86 changes: 63 additions & 23 deletions doc/kladd_indikatorer.R
Original file line number Diff line number Diff line change
Expand Up @@ -3,25 +3,68 @@ library(dplyr)
library(tidyr)
rm(list = ls())

# resh_voksen_barn <-
# readxl::read_xlsx("~/mydata/norspis/RESH, navn, BUV, org.nr. 18.12.23.xlsx",
# sheet = 1)
# resh_voksen_barn <- resh_voksen_barn[match(unique(resh_voksen_barn$RESH),
# resh_voksen_barn$RESH), ] %>%
# rename(AvdRESH = RESH,
# Kortnavn = `Kortnavn i årsrapporten`,
# AvdBUV = `Barn/unge (BU) eller voksen (V)`,
# orgnr = Org.nr.) %>%
# select(AvdRESH, Kortnavn, AvdBUV, orgnr)
#
# write.csv(resh_voksen_barn, "~/mydata/norspis/tmp.csv", row.names = F)

resh_voksen_barn <-
readxl::read_xlsx("~/mydata/norspis/RESH, navn, BUV, org.nr. 18.12.23.xlsx",
sheet = 1)
resh_voksen_barn <- resh_voksen_barn[match(unique(resh_voksen_barn$RESH),
resh_voksen_barn$RESH), ]
tibble::tribble(
~AvdRESH, ~Kortnavn, ~AvdBUV, ~orgnr,
106854,"NKS Jæren DPS","V",333333,
4210626,"HSYK: Allm.pol. BU Mosjøen","BU",875326562,
4210303,"ST. OLAVS: Spes.pol. V","V",883974832,
4208548,"DIAKONSYK: Allm.pol. V","V",974116804,
700698,"UNN: Reg.døgn BU","BU",974547031,
707383,"AHUS: EFS Spes.pol. V","V",974705168,
4207041,"AHUS: EFS Spes.døgn V","V",974705168,
105806,"HNT: Reg. V","V",974754142,
700821,"NLSH: Reg. V","V",974795345,
4210562,"NLSH: Spes.pol. BU","BU",975296008,
4210825,"HSYK: Allm.pol. V Mosjøen","V",975326551,
4204191,"CAPIO: Spes.døgn BU","BU",980524493,
4208300,"SIHF: Spes.døgn V","V",983971709,
4204275,"SOHF: Spes.døgn V","V",983971768,
4207697,"HNT: MHOBY","V",983974791,
102152,"HSYK: Allm.pol. V Sandnessjøen","V",983974929,
102154,"HSYK: Allm.pol. BU Sandnessjøen","BU",983974929,
104083,"SSHF: Spes.døgn V","V",983975240,
105008,"SSHF: Allm.pol. V Arendal/Froland","V",983975240,
108462,"SSHF Allm.pol. V Solvang","V",983975240,
104364,"SIV: Spis.pol. V","V",983975259,
4209009,"SIV: Spes.pol. BU","BU",983975259,
109979,"OUS: Reg. BU","BU",987547243,
107026,"HB: Reg. V","V",991992677,
110361,"OUS: Spes.pol. V","V",998158923)


variabeloversikt <- readxl::read_xlsx("~/mydata/norspis/Variabler i forløp v2.xlsx",
sheet = 1)
sheet = 1) %>%
rename(status = `Start/slutt/utgått`,
OppfolgingNum = `Også i tabellen OppfolgingNum`) %>%
mutate(status = case_when(status == "Ikke slutt" ~ "IkkeSlutt",
status == "Ikke start" ~ "IkkeStart",
status == "Utgått" ~ "Utgaatt"))


AlleScorer <- queryAlleScorer("norspis")
EnkeltLeddNum <- queryEnkeltLeddNum("norspis")
ForlopsOversikt <- norspis::queryForlopsOversikt("norspis")

AlleScorer <- AlleScorer[ , setdiff(names(AlleScorer),
variabeloversikt$Variabelnavn[variabeloversikt$Tabell == "AlleScorer" &
variabeloversikt$`Start/slutt/utgått` == "Utgått"])]
variabeloversikt$Variabelnavn[variabeloversikt$Tabell == "AlleScorer" &
variabeloversikt$status == "Utgaatt"])]
EnkeltLeddNum <- EnkeltLeddNum[ , setdiff(names(EnkeltLeddNum),
variabeloversikt$Variabelnavn[variabeloversikt$Tabell == "EnkeltLeddNum" &
variabeloversikt$`Start/slutt/utgått` == "Utgått"])]
variabeloversikt$Variabelnavn[variabeloversikt$Tabell == "EnkeltLeddNum" &
variabeloversikt$status == "Utgaatt"])]

RegData <- merge(EnkeltLeddNum,
ForlopsOversikt[, c("ForlopsID", "ForlopsType1Num",
Expand All @@ -30,36 +73,33 @@ RegData <- merge(EnkeltLeddNum,
by = "ForlopsID") %>%
filter(BasisRegStatus == 1) %>%
merge(AlleScorer, by = "ForlopsID") %>%
merge(resh_voksen_barn[, c("RESH", "Barn/unge (BU) eller voksen (V)",
"Kortnavn i årsrapporten", "Org.nr.")],
by.x = "AvdRESH", by.y = "RESH", all.x = TRUE) %>%
rename(AvdBUV = `Barn/unge (BU) eller voksen (V)`,
Kortnavn = `Kortnavn i årsrapporten`,
orgnr = Org.nr.) %>%
merge(resh_voksen_barn[, c("AvdRESH", "AvdBUV",
"Kortnavn", "orgnr")],
by = "AvdRESH", all.x = TRUE) %>%
mutate(AvdBUV = ifelse(AvdRESH == 109979 & ForlopsType1Num %in% c(1,3,5,7,98),
"V", AvdBUV),
Kortnavn = ifelse(AvdRESH == 109979 & ForlopsType1Num %in% c(1,3,5,7,98),
"OUS: Reg. V", Kortnavn),
Over18 = ifelse(PasientAlder >= 18, TRUE, FALSE))

RegData_start <- RegData[RegData$ForlopsType1Num %in% 3:4, ]
RegData_start <- RegData_start[ , setdiff(names(RegData_start),
variabeloversikt$Variabelnavn[variabeloversikt$`Start/slutt/utgått` == "Ikke start"])]
variabeloversikt$Variabelnavn[variabeloversikt$status == "IkkeStart"])]
RegData_slutt <- RegData[RegData$ForlopsType1Num %in% 5:6, ]
RegData_slutt <- RegData_slutt[ , setdiff(names(RegData_slutt),
variabeloversikt$Variabelnavn[variabeloversikt$`Start/slutt/utgått` == "Ikke slutt"])]
variabeloversikt$Variabelnavn[variabeloversikt$status == "IkkeSlutt"])]
RegData_slutt <- RegData_slutt[ , setdiff(names(RegData_slutt),
c("AvdRESH", "Kortnavn",
"PasientID", "SykehusNavn",
"orgnr"))]



RegData <- merge(RegData_start, RegData_slutt,
by.x = "ForlopsID", by.y = "RegTilhorendeStartReg",
suffixes = c("_start", "_slutt"),
all.x = TRUE)


indikatordata <- norspisBeregnIndikator(RegData, ind_id = "norspis_KI4_utfallsvurdering_BU")
indikatordata <- norspisBeregnIndikator(RegData, ind_id = "norspis_involvering_famlie_venner_V")
norspisPlotIndikator(indikatordata)

# tmp <- RegData %>% filter(ForlopsID %in% (RegData %>% summarise(N=n(), .by = ForlopsID) %>% filter(N>1) %>% select(ForlopsID) %>% unlist()))
Expand Down Expand Up @@ -107,7 +147,7 @@ Indikator7 <- RegData %>%
MedBlodprove_start %in% c(0,1)) %>%
mutate(var = MedBlodprove_start,
denominator = 1,
year = format(RegHendelsesdato_start, "%Y") %>% as.numeric(),) %>%
year = format(RegHendelsesdato_start, "%Y") %>% as.numeric()) %>%
select(AvdRESH, year, var, denominator, SykehusNavn, AvdBUV_start)


Expand All @@ -128,7 +168,7 @@ Indikator9 <- RegData %>%
mutate(bmi = ifelse(!is.na(MedIsoBMIBGS_start),
MedIsoBMIBGS_start, MedBMI_start),
BeintetthMaling = ifelse(MedBeintetthMaling_start == 1 |
MedBeintetthMaling_slutt == 1,
MedBeintetthMaling_slutt == 1,
1, 0)) %>%
filter(Over18_start,
bmi < 18.5,
Expand Down Expand Up @@ -180,7 +220,7 @@ Indikator3 <- RegData %>%
mutate(bmi = ifelse(!is.na(MedIsoBMIBGS_start),
MedIsoBMIBGS_start, MedBMI_start),
bmi_slutt = ifelse(!is.na(MedIsoBMIBGS_slutt),
MedIsoBMIBGS_slutt, MedBMI_slutt)) %>%
MedIsoBMIBGS_slutt, MedBMI_slutt)) %>%
filter(!is.na(bmi),
bmi < 18.5,
!is.na(bmi_slutt)) %>%
Expand Down
11 changes: 11 additions & 0 deletions man/norspisLesOgProsesser.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit e47fb5a

Please sign in to comment.