Unit codes for SHAR

Erik Bulow

2019-01-08

Bakgrund

Vid dataexport till RC:s kompassen krävs andra sjukhuskoder än de som normalt används inom RCC. Dessutom tillämpas kodsättning på förvaltningsnivå för sjukhus inom regionen.

Översättningsmatriser

decoder-paketet innehåller två översättningsmatriser till nytta vid data-export till RC:

Utöver dessa båda huvudmatriser finns ytterligare två hjälpmatriser som inte är avsedda för (men som trots allt går) att använda direkt (se nedan:

Exempel

Låt anta att vihar följande INCA-data att exportera till RC:

df <- 
  data.frame(
    sjukhus          = c("51012", "53011", "53013", "52011", "50070"),
    something        = sample(letters, 5),
    something_else   = sample(LETTERS, 5),
    stringsAsFactors = FALSE
  )
knitr::kable(df)
sjukhus something something_else
51012 k A
53011 o G
53013 r N
52011 n V
50070 p D

Vi vill här översätta RCC:s sjukhuskod till motsvarande kod som används av RC:

# Vi använder också dplyr för data managemant
suppressPackageStartupMessages(library(dplyr))
library(decoder)

df %>% 
  mutate(
    sjukhus_rc     = decode(sjukhus, "sjukhus_rc"),
    forvaltning_rc = decode(sjukhus, "forvaltning_rc")
  ) %>% 
  knitr::kable()
sjukhus something something_else sjukhus_rc forvaltning_rc
51012 k A 510121 51012
53011 o G 530143 53014
53013 r N 530141 53014
52011 n V 510141 51014
50070 p D 500701 50070

Kanske är detta tillräckligt för RC? Men kanske vill vi också se sjukhus-och förvaltningsnamn i klartext för att exempelvis kunna felsöka:

df %>% 
  mutate(
    sjukhus_rc_kod  = decode(sjukhus, "sjukhus_rc"),
    forv_rc_kod     = decode(sjukhus, "forvaltning_rc"),
    sjukhus_rc_namn = decode(sjukhus, "sjukhus_rc", "sjukhus_rc_namn"),
    forv_rc_namn    = decode(sjukhus, "forvaltning_rc", "forvaltning_rc_namn")
  ) %>% 
  knitr::kable()
sjukhus something something_else sjukhus_rc_kod forv_rc_kod sjukhus_rc_namn forv_rc_namn
51012 k A 510121 51012 Kungälvs sjukhus Kungälvs sjukhus
53011 o G 530143 53014 Lidköping Skaraborgs Sjukhus
53013 r N 530141 53014 Skövde Skaraborgs Sjukhus
52011 n V 510141 51014 SÄS Borås Södra Älvsborgs Sjukhus
50070 p D 500701 50070 Lundby sjukhus Lundby sjukhus

Översättning till sjukhus- och förvaltningsnamn sker här med hjälp av argumentet extra_functions till decode-funktionen. Ett alternativt sätt är att nyttja de båda hjälpmatriserna enligt ovan:

df %>% 
  mutate(
    sjukhus_rc_kod      = decode(sjukhus, "sjukhus_rc"),
    forvaltning_rc_kod  = decode(sjukhus, "forvaltning_rc"),
    sjukhus_rc_namn     = decode(sjukhus_rc_kod, "sjukhus_rc_code2klartext"),
    forvaltning_rc_namn = decode(forvaltning_rc_kod, "forvaltning_rc_code2klartext")
  ) 

En fördel med den fösra metoden framför den andra är att översättningen kan ske i ett steg istället för två. Just i detta exempel hade vi redan skapat sjukhus_rc_kod respektive forvaltning_rc_kod och kunde då utgå från dessa som mellansteg (något som också underlättas av att vi använder dplyr::mutate). Om så inte hade varit fallet skulle det krävas omkodning i två steg såsom:

decode(decode(df$sjukhus, "sjukhus_rc"), "sjukhus_rc_code2klartext")
## [1] "Kungälvs sjukhus" "Lidköping"        "Skövde"          
## [4] "SÄS Borås"        "Lundby sjukhus"

Skillnader i sjukhusnamn

Vi illustrerar här skillnaderna mellan sjukhusnamn som används av RC och RCC genom att utgå från RCC:s sjukhuskoder som återfinns i översättningstabellerna, det vill säga internt i översättningsobjektet sjukhus_rc$key:

sjukhusnamn <- 
  data_frame(
    rcc_sjukhus_kod = decoder:::sjukhus_rc$key,
    rcc_sjukhus_namn = decode(rcc_sjukhus_kod, "sjukhus"),
    sjukhus_rc_namn = decode(rcc_sjukhus_kod, "sjukhus_rc", "sjukhus_rc_namn")
  ) 
## Warning: `data_frame()` is deprecated, use `tibble()`.
## This warning is displayed once per session.
## Warning: Some codes could not be translated (500004)
knitr::kable(sjukhusnamn)
rcc_sjukhus_kod rcc_sjukhus_namn sjukhus_rc_namn
50001 Sahlg. Univers.sjh. - Sahlgrenska Sjh. SU/Sahlgrenska
50010 Sahlg. Univers.sjh. - Östra sjukhuset SU/Östra
50070 Capio Lundby Närsjukhus Lundby sjukhus
50071 Frölunda specialistsjukhus Frölunda sjukhus
51010 NU-sjukv. Uddevalla sjukhus Uddevalla sjukhus
51011 Sahlg. Univers.sjh. - Mölndals sjukhus SU/Mölndal
51012 Kungälvs sjukhus Kungälvs sjukhus
51031 NU-sjukv. Lysekils sjukhus Lysekils sjukhus
51032 NU-sjukv. Strömstads sjukhus Strömstads sjukhus
52011 SÄS Borås SÄS Borås
52012 Alingsås lasarett Alingsås lasarett
52013 SÄS Skene SÄS Skene
52014 Dalslands sjh Bäckefors Dalslands sjukhus
52017 NU-sjukvården, NÄL NÄL i Trollhättan
53010 SkaS/Falköping Falköping
53011 SkaS/Lidköping Lidköping
53012 SkaS/Mariestad Mariestad
53013 SkaS/Skövde Skövde
500004 NA Angereds Närsjukhus

Vi finner att 14 namn av 19 skiljer sig åt.

Att RCC saknar namnöversättning för Angereds närsjukhus kan bero på att paketet än så länge utgår från en gammal översättningstabell (detta kommer uppdateras inom kort).

Hela regionen

RC kodar också hela GVR:s data med koden 55555. Detta faller dock utan för ramen för översättning direkt från sjukhuskod. Just nu rekmmeneras därför att detta hanteras separat.