ANALISIS DE LOS CAMBIOS DE LA PRESION SISTOLICA Y LA MORTALIDAD A 24 HORAS CON REBOA

Tener en cuenta las distribuciones que salieron de la primera parte del analisis

TRAUMA CERRADO

Presion Sistolica al ingreso

Presion Sistolica pre-REBOA

TRAUMA PENETRANTE

Presion Sistolica al ingreso

Presion Sistolica pre-REBOA

Delta de SBP

Se realizo la diferencia entre la presion sistolica al ingreso y la presion sistolica antes de la colocacion de REBOA

Trauma Cerrado

No hay diferencia entre los grupos de mortalidad por el delta de SBP (P=0.15)

blunt %>% 
  skim(delta_sbp)
Data summary
Name Piped data
Number of rows 558
Number of columns 73
_______________________
Column type frequency:
numeric 1
________________________
Group variables None

Variable type: numeric

skim_variable n_missing complete_rate mean sd p0 p25 p50 p75 p100 hist
delta_sbp 14 0.97 21.62 48.36 -191 0 19 49 214 ▁▁▇▂▁
blunt %>% 
  ggplot(aes(y = delta_sbp)) +
  geom_boxplot()+
  facet_wrap( ~ mortalidad_24h)
## Warning: Removed 14 rows containing non-finite values (stat_boxplot).

with(data = blunt, t.test(delta_sbp ~ mortalidad_24h))
## 
##  Welch Two Sample t-test
## 
## data:  delta_sbp by mortalidad_24h
## t = 1.4149, df = 247.21, p-value = 0.1583
## alternative hypothesis: true difference in means between group NO and group SI is not equal to 0
## 95 percent confidence interval:
##  -2.814377 17.173099
## sample estimates:
## mean in group NO mean in group SI 
##         23.84800         16.66864

Prediccion del delta y la mortalidad 24-h

Tiene una pobre capacidad de predicion con un AUC de 0.447

roc.sbp <- pROC::roc(mortality_24h ~ delta_sbp, direction = "<", 
          data = blunt)
## Setting levels: control = 0, case = 1
roc.sbp
## 
## Call:
## roc.formula(formula = mortality_24h ~ delta_sbp, data = blunt,     direction = "<")
## 
## Data: delta_sbp in 375 controls (mortality_24h 0) < 169 cases (mortality_24h 1).
## Area under the curve: 0.4476
plot(roc.sbp)

Trauma Penetrante

No hay diferencia entre los grupos de mortalidad por el delta de SBP (P=0.76)

penetrating %>% 
  skim(delta_sbp)
Data summary
Name Piped data
Number of rows 288
Number of columns 73
_______________________
Column type frequency:
numeric 1
________________________
Group variables None

Variable type: numeric

skim_variable n_missing complete_rate mean sd p0 p25 p50 p75 p100 hist
delta_sbp 46 0.84 13.1 38.72 -180 -8.75 10 30 152 ▁▁▇▅▁
penetrating %>% 
  ggplot(aes(y = delta_sbp)) +
  geom_boxplot()+
  facet_wrap( ~ mortalidad_24h)
## Warning: Removed 46 rows containing non-finite values (stat_boxplot).

with(data = penetrating, t.test(delta_sbp ~ mortalidad_24h))
## 
##  Welch Two Sample t-test
## 
## data:  delta_sbp by mortalidad_24h
## t = 0.30524, df = 113.09, p-value = 0.7607
## alternative hypothesis: true difference in means between group NO and group SI is not equal to 0
## 95 percent confidence interval:
##  -10.00843  13.65418
## sample estimates:
## mean in group NO mean in group SI 
##         13.66071         11.83784

Prediccion del delta y la mortalidad 24-h

Tiene una pobre capacidad de predicion con un AUC de 0.478

roc.sbp <- pROC::roc(mortality_24h ~ delta_sbp, direction = "<", 
          data = penetrating)
## Setting levels: control = 0, case = 1
roc.sbp
## 
## Call:
## roc.formula(formula = mortality_24h ~ delta_sbp, data = penetrating,     direction = "<")
## 
## Data: delta_sbp in 168 controls (mortality_24h 0) < 74 cases (mortality_24h 1).
## Area under the curve: 0.4783
plot(roc.sbp)

REBOA TEMPRANO VS TARDIO

De acuerdo, a lo que hemos escrito anteriormente y lo que resultaron de las tablas de analisis univariado de las presiones sistolicas al ingreso y antes de colocar el REBOA, la franja entre 60 y 90 mm Hg es el rango que esta menor al umbral del 30% de mortalidad. Es por esta razon que se propone el concepto del “REBOA TEMPRANO”. Este REBOA temprano se asocia a la oclusion aortica endovascular antes de que la descompensacion hemodinamica progrese, teniendo como referente la presion arterial sistolica.

Ya que los deltas de las presiones hemos explorado que no tiene efecto predictivo ni hay diferencia entre los grupos. Se propone la siguiente medida como TEMPRANO Paciente con PAS > 50 mm Hg al ingreso y que al momento de colocar el REBOA la PAS > 70 mm Hg

Se propone esa diferencia de 20 mm Hg antes de la PAS pre REBOA, como el rango minimo en que la descompensacion hemodinamica potencialmente se podria observar respuesta a las primeras maniobras de reanimacion. PAS < 50 mm Hg se observa que la mortalidad predictiva a 24 horas es mayor del 40%.

A continuacion, presento las diferencias entre los grupos segun el mecanismo de trauma

TRAUMA CERRADO

blunt <- blunt %>% 
  mutate(reboa_early = ifelse(sbp_on_admission >= 50 & sbp_pre_reboa >= 70,1,0))

blunt$reboa_early_t <- factor(blunt$reboa_early,
                              levels = c("0","1"),
                              labels = c("Tardio","Temprano"))

model_database <- blunt %>% 
  filter(reboa_early >= 0) %>% 
  select(age, age_2, 
         sex, iss,
         cpr_admission,
         pupilar_absent,
         Hospital_Volume,
         mortality_24h,
         Packed.red.blood.cells,
         Fresh.frozen.plasma,
         reboa_early_t,
         reboa_early)



model_database$Hospital_Volume <- factor(model_database$Hospital_Volume,
                                         levels = c("1","2", "3"),
                                         labels = c("<20","20-80",">80"))

model_database <- model_database %>% 
  mutate(trans.masiva = ifelse(Packed.red.blood.cells >= 10,1,0))

model_database %>% 
  select(-reboa_early) %>% 
  tbl_summary(by = reboa_early_t,
              label = list(age ~ "Edad",
                age_2 ~ "Categorias de Edad",
                sex ~ "Genero",
                iss ~ "ISS",
                cpr_admission ~ "Paro Cardiaco Prehospitalario",
                pupilar_absent ~ "Ausencia de Respuesta Pupilar",
                Hospital_Volume ~ "Volumen por Hospital",
                Packed.red.blood.cells ~ "U. Globulos Rojos en 24h",
                Fresh.frozen.plasma ~ "U. Plasma en 24h",
                trans.masiva ~ "Transfusion Masiva",
                mortality_24h ~ "Mortalidad a 24 horas")) %>% 
  add_p() %>% 
  modify_caption("**Tabla. Pacientes con REBOA temprano vs Tardio en Trauma Cerrado**") %>% 
  bold_labels()
## Registered S3 methods overwritten by 'broom':
##   method            from  
##   tidy.glht         jtools
##   tidy.summary.glht jtools
Tabla. Pacientes con REBOA temprano vs Tardio en Trauma Cerrado
Characteristic Tardio, N = 3371 Temprano, N = 2171 p-value2
Edad 42 (27, 57) 46 (28, 60) 0.073
Unknown 7 0
Categorias de Edad 0.4
20 18 (5.5%) 8 (3.7%)
20-39 134 (41%) 78 (36%)
40-59 110 (33%) 75 (35%)
60 68 (21%) 56 (26%)
Unknown 7 0
Genero 0.7
Female 90 (27%) 54 (25%)
Male 247 (73%) 162 (75%)
Unknown 0 1
ISS 34 (25, 45) 34 (25, 43) 0.5
Unknown 34 34
Paro Cardiaco Prehospitalario 74 (22%) 18 (8.3%) <0.001
Ausencia de Respuesta Pupilar 146 (43%) 66 (30%) 0.002
Volumen por Hospital 0.071
<20 91 (27%) 74 (34%)
20-80 129 (38%) 86 (40%)
>80 117 (35%) 57 (26%)
Mortalidad a 24 horas 123 (36%) 50 (23%) <0.001
U. Globulos Rojos en 24h 15 (8, 27) 10 (6, 19) <0.001
Unknown 50 16
U. Plasma en 24h 12 (6, 22) 8 (4, 14) <0.001
Unknown 54 21
Transfusion Masiva 197 (69%) 112 (56%) 0.004
Unknown 50 16

1 Median (IQR); n (%)

2 Wilcoxon rank sum test; Pearson's Chi-squared test

Modelos de REBOA temprano con la mortalidad

La relacion univariada del REBOA temprano con la mortalidad a 24 horas

Resultados del Modelo

model_reboa.early <- glm(mortality_24h ~ reboa_early,
                         family = binomial(link = "logit"),
                         data = model_database)

summary(model_reboa.early)
## 
## Call:
## glm(formula = mortality_24h ~ reboa_early, family = binomial(link = "logit"), 
##     data = model_database)
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -0.9530  -0.9530  -0.7238   1.4198   1.7134  
## 
## Coefficients:
##             Estimate Std. Error z value Pr(>|z|)    
## (Intercept)  -0.5538     0.1132  -4.894 9.87e-07 ***
## reboa_early  -0.6522     0.1970  -3.311 0.000929 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 687.97  on 553  degrees of freedom
## Residual deviance: 676.56  on 552  degrees of freedom
## AIC: 680.56
## 
## Number of Fisher Scoring iterations: 4

La relacion de Reboa temprano y la mortalidad a 24 horas tiene un OR 0.521 95%CI (0.35-0.76)

summ (model_reboa.early, exp = TRUE, digits = 3)
## MODEL INFO:
## Observations: 554
## Dependent Variable: mortality_24h
## Type: Generalized linear model
##   Family: binomial 
##   Link function: logit 
## 
## MODEL FIT:
## <U+03C7>²(1) = 11.402, p = 0.001
## Pseudo-R² (Cragg-Uhler) = 0.029
## Pseudo-R² (McFadden) = 0.017
## AIC = 680.564, BIC = 689.198 
## 
## Standard errors: MLE
## --------------------------------------------------------------
##                     exp(Est.)    2.5%   97.5%   z val.       p
## ----------------- ----------- ------- ------- -------- -------
## (Intercept)             0.575   0.460   0.717   -4.894   0.000
## reboa_early             0.521   0.354   0.766   -3.311   0.001
## --------------------------------------------------------------
## Hoslem Test
deaths <- model_reboa.early$model$mortality_24h
ResourceSelection::hoslem.test(x = deaths , y = fitted(model_reboa.early))
## 
##  Hosmer and Lemeshow goodness of fit (GOF) test
## 
## data:  deaths, fitted(model_reboa.early)
## X-squared = 5.0553e-23, df = 8, p-value = 1
## AUC
AUC <- pROC::roc(deaths ~ predict(model_reboa.early, type = "response"))
## Setting levels: control = 0, case = 1
## Setting direction: controls < cases
AUC
## 
## Call:
## roc.formula(formula = deaths ~ predict(model_reboa.early, type = "response"))
## 
## Data: predict(model_reboa.early, type = "response") in 381 controls (deaths 0) < 173 cases (deaths 1).
## Area under the curve: 0.5747

REBOA temprano y edad

Se evidencio que al comparar los grupos de edad manera estratificada. Se encontro que hay diferencia significativa en los pacientes con REBOA temprano vs tardio respecto a su mortalidad para los grupos de edad entre los 20-39 años y 40-59 años

model_database %>% 
  filter(age >= 0) %>% 
  tabyl(mortality_24h,reboa_early_t, age_2) %>% 
  adorn_totals(c("row","col")) %>%
  adorn_percentages(denominator = "col") %>%
  adorn_pct_formatting() %>%
  adorn_ns(position = "front") %>%
  adorn_title() 
## $`20`
##                reboa_early_t                       
##  mortality_24h        Tardio   Temprano       Total
##              0   10  (55.6%) 7  (87.5%) 17  (65.4%)
##              1    8  (44.4%) 1  (12.5%)  9  (34.6%)
##          Total   18 (100.0%) 8 (100.0%) 26 (100.0%)
## 
## $`20-39`
##                reboa_early_t                         
##  mortality_24h        Tardio    Temprano        Total
##              0   87  (64.9%) 62  (79.5%) 149  (70.3%)
##              1   47  (35.1%) 16  (20.5%)  63  (29.7%)
##          Total  134 (100.0%) 78 (100.0%) 212 (100.0%)
## 
## $`40-59`
##                reboa_early_t                         
##  mortality_24h        Tardio    Temprano        Total
##              0   69  (62.7%) 62  (82.7%) 131  (70.8%)
##              1   41  (37.3%) 13  (17.3%)  54  (29.2%)
##          Total  110 (100.0%) 75 (100.0%) 185 (100.0%)
## 
## $`60`
##                reboa_early_t                         
##  mortality_24h        Tardio    Temprano        Total
##              0   44  (64.7%) 36  (64.3%)  80  (64.5%)
##              1   24  (35.3%) 20  (35.7%)  44  (35.5%)
##          Total   68 (100.0%) 56 (100.0%) 124 (100.0%)
# Pruebas exacta de Fisher
le <- model_database %>% 
  filter(age >= 0) %>% 
  tabyl(mortality_24h,reboa_early_t, age_2) 
lapply(le, function (x) {
  fisher.test(as.data.frame(x[,2:3]))
})
## $`20`
## 
##  Fisher's Exact Test for Count Data
## 
## data:  as.data.frame(x[, 2:3])
## p-value = 0.1902
## alternative hypothesis: true odds ratio is not equal to 1
## 95 percent confidence interval:
##  0.00353528 2.01510208
## sample estimates:
## odds ratio 
##  0.1894669 
## 
## 
## $`20-39`
## 
##  Fisher's Exact Test for Count Data
## 
## data:  as.data.frame(x[, 2:3])
## p-value = 0.02928
## alternative hypothesis: true odds ratio is not equal to 1
## 95 percent confidence interval:
##  0.2315454 0.9547621
## sample estimates:
## odds ratio 
##  0.4793022 
## 
## 
## $`40-59`
## 
##  Fisher's Exact Test for Count Data
## 
## data:  as.data.frame(x[, 2:3])
## p-value = 0.004838
## alternative hypothesis: true odds ratio is not equal to 1
## 95 percent confidence interval:
##  0.1590200 0.7510655
## sample estimates:
## odds ratio 
##   0.354805 
## 
## 
## $`60`
## 
##  Fisher's Exact Test for Count Data
## 
## data:  as.data.frame(x[, 2:3])
## p-value = 1
## alternative hypothesis: true odds ratio is not equal to 1
## 95 percent confidence interval:
##  0.4541725 2.2722793
## sample estimates:
## odds ratio 
##   1.018373

Sin embargo, cuando se construyo el modelo de REBOA temprano y los grupos de edad de 20-39, 40-59 y mayores de 60 no fueron estadisticamente significativos

model_reboa.edad <- glm(mortality_24h ~ reboa_early + age_2,
                         family = binomial(link = "logit"),
                         data = model_database)

summary(model_reboa.edad)
## 
## Call:
## glm(formula = mortality_24h ~ reboa_early + age_2, family = binomial(link = "logit"), 
##     data = model_database)
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -1.0470  -0.9209  -0.6939   1.4577   1.7569  
## 
## Coefficients:
##             Estimate Std. Error z value Pr(>|z|)    
## (Intercept)  -0.4477     0.4194  -1.068 0.285668    
## reboa_early  -0.6630     0.1989  -3.334 0.000857 ***
## age_220-39   -0.1906     0.4431  -0.430 0.667069    
## age_240-59   -0.1923     0.4474  -0.430 0.667327    
## age_260       0.1330     0.4584   0.290 0.771714    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 677.98  on 546  degrees of freedom
## Residual deviance: 664.68  on 542  degrees of freedom
##   (7 observations deleted due to missingness)
## AIC: 674.68
## 
## Number of Fisher Scoring iterations: 4

REBOA temprano y Ausencia de Respuesta Pupilar

Las bases de datos originales no venian con detalles exactos como el valor del ingreso en la escala de goma de Glasgow, el parametro que las dos bases coincidian era “Ausencia de la respuesta Pupilar”.

No hubo diferencias significativas entre los dos grupos

model_database %>% 
  tabyl(mortality_24h,reboa_early_t, pupilar_absent) %>% 
  adorn_totals(c("row","col")) %>%
  adorn_percentages(denominator = "col") %>%
  adorn_pct_formatting() %>%
  adorn_ns(position = "front") %>%
  adorn_title() 
## $`0`
##                reboa_early_t                          
##  mortality_24h        Tardio     Temprano        Total
##              0  144  (75.4%) 127  (84.1%) 271  (79.2%)
##              1   47  (24.6%)  24  (15.9%)  71  (20.8%)
##          Total  191 (100.0%) 151 (100.0%) 342 (100.0%)
## 
## $`1`
##                reboa_early_t                         
##  mortality_24h        Tardio    Temprano        Total
##              0   70  (47.9%) 40  (60.6%) 110  (51.9%)
##              1   76  (52.1%) 26  (39.4%) 102  (48.1%)
##          Total  146 (100.0%) 66 (100.0%) 212 (100.0%)
# Pruebas exacta de Fisher
le <- model_database %>% 
  tabyl(mortality_24h,reboa_early_t, pupilar_absent) 
lapply(le, function (x) {
  fisher.test(as.data.frame(x[,2:3]))
})
## $`0`
## 
##  Fisher's Exact Test for Count Data
## 
## data:  as.data.frame(x[, 2:3])
## p-value = 0.05988
## alternative hypothesis: true odds ratio is not equal to 1
## 95 percent confidence interval:
##  0.3199303 1.0301474
## sample estimates:
## odds ratio 
##  0.5799047 
## 
## 
## $`1`
## 
##  Fisher's Exact Test for Count Data
## 
## data:  as.data.frame(x[, 2:3])
## p-value = 0.1031
## alternative hypothesis: true odds ratio is not equal to 1
## 95 percent confidence interval:
##  0.3163708 1.1246609
## sample estimates:
## odds ratio 
##  0.6001504

Sin embargo, cuando se construyo el modelo de REBOA temprano y la ausencia de respuesta pupilar al ingreso se encontro que las dos variables tenian relacion con el desenlace de mortalidad a 24 horas. REBOA temprano OR= 0.58 y Ausencia de Respuesta Pupilar OR=3.36

model_reboa.pupilar <- glm(mortality_24h ~ reboa_early + pupilar_absent,
                         family = binomial(link = "logit"),
                         data = model_database)

summ(model_reboa.pupilar, exp = TRUE, digits = 3)
## MODEL INFO:
## Observations: 554
## Dependent Variable: mortality_24h
## Type: Generalized linear model
##   Family: binomial 
##   Link function: logit 
## 
## MODEL FIT:
## <U+03C7>²(2) = 51.908, p = 0.000
## Pseudo-R² (Cragg-Uhler) = 0.126
## Pseudo-R² (McFadden) = 0.075
## AIC = 642.059, BIC = 655.010 
## 
## Standard errors: MLE
## -----------------------------------------------------------------
##                        exp(Est.)    2.5%   97.5%   z val.       p
## -------------------- ----------- ------- ------- -------- -------
## (Intercept)                0.325   0.240   0.438   -7.333   0.000
## reboa_early                0.588   0.394   0.878   -2.595   0.009
## pupilar_absent             3.363   2.303   4.911    6.279   0.000
## -----------------------------------------------------------------

REBOA temprano y Paro Cardiaco Prehospitalario

En los pacientes que no presentaron Paro Cardiaco y se sometieron a reboa temprano la mortalidad fue inferior respecto a los que se les puso el REBOA tardio.

model_database %>% 
  tabyl(mortality_24h,reboa_early_t, cpr_admission) %>% 
  adorn_totals(c("row","col")) %>%
  adorn_percentages(denominator = "col") %>%
  adorn_pct_formatting() %>%
  adorn_ns(position = "front") %>%
  adorn_title() 
## $`0`
##                reboa_early_t                          
##  mortality_24h        Tardio     Temprano        Total
##              0  185  (70.3%) 160  (80.4%) 345  (74.7%)
##              1   78  (29.7%)  39  (19.6%) 117  (25.3%)
##          Total  263 (100.0%) 199 (100.0%) 462 (100.0%)
## 
## $`1`
##                reboa_early_t                        
##  mortality_24h        Tardio    Temprano       Total
##              0   29  (39.2%)  7  (38.9%) 36  (39.1%)
##              1   45  (60.8%) 11  (61.1%) 56  (60.9%)
##          Total   74 (100.0%) 18 (100.0%) 92 (100.0%)
# Pruebas exacta de Fisher
le <- model_database %>% 
  tabyl(mortality_24h,reboa_early_t, cpr_admission) 
lapply(le, function (x) {
  fisher.test(as.data.frame(x[,2:3]))
})
## $`0`
## 
##  Fisher's Exact Test for Count Data
## 
## data:  as.data.frame(x[, 2:3])
## p-value = 0.01726
## alternative hypothesis: true odds ratio is not equal to 1
## 95 percent confidence interval:
##  0.3621872 0.9146601
## sample estimates:
## odds ratio 
##  0.5788064 
## 
## 
## $`1`
## 
##  Fisher's Exact Test for Count Data
## 
## data:  as.data.frame(x[, 2:3])
## p-value = 1
## alternative hypothesis: true odds ratio is not equal to 1
## 95 percent confidence interval:
##  0.3149318 3.4588588
## sample estimates:
## odds ratio 
##    1.01256

En el modelo sigue siendo significativo el efecto del REBOA temprano OR = 0.62 y del Paro Cardiaco Prehospitalario OR = 4.17

model_reboa.cpr <- glm(mortality_24h ~ reboa_early + cpr_admission,
                         family = binomial(link = "logit"),
                         data = model_database)

summ(model_reboa.cpr, exp = TRUE, digits = 3)
## MODEL INFO:
## Observations: 554
## Dependent Variable: mortality_24h
## Type: Generalized linear model
##   Family: binomial 
##   Link function: logit 
## 
## MODEL FIT:
## <U+03C7>²(2) = 47.177, p = 0.000
## Pseudo-R² (Cragg-Uhler) = 0.115
## Pseudo-R² (McFadden) = 0.069
## AIC = 646.789, BIC = 659.741 
## 
## Standard errors: MLE
## ----------------------------------------------------------------
##                       exp(Est.)    2.5%   97.5%   z val.       p
## ------------------- ----------- ------- ------- -------- -------
## (Intercept)               0.409   0.316   0.530   -6.776   0.000
## reboa_early               0.628   0.421   0.939   -2.267   0.023
## cpr_admission             4.179   2.599   6.721    5.900   0.000
## ----------------------------------------------------------------

REBOA temprano y Transfusion Masiva

Los dos grupos con o sin transfusion masiva, tuvieron que el REBOA tenia una mortalidad menor a 24 horas

model_database %>% 
  tabyl(mortality_24h,reboa_early_t, trans.masiva) %>% 
  adorn_totals(c("row","col")) %>%
  adorn_percentages(denominator = "col") %>%
  adorn_pct_formatting() %>%
  adorn_ns(position = "front") %>%
  adorn_title() 
## $`0`
##                reboa_early_t                         
##  mortality_24h        Tardio    Temprano        Total
##              0   61  (67.8%) 75  (84.3%) 136  (76.0%)
##              1   29  (32.2%) 14  (15.7%)  43  (24.0%)
##          Total   90 (100.0%) 89 (100.0%) 179 (100.0%)
## 
## $`1`
##                reboa_early_t                          
##  mortality_24h        Tardio     Temprano        Total
##              0  112  (56.9%)  78  (69.6%) 190  (61.5%)
##              1   85  (43.1%)  34  (30.4%) 119  (38.5%)
##          Total  197 (100.0%) 112 (100.0%) 309 (100.0%)
## 
## $NA_
##                reboa_early_t                        
##  mortality_24h        Tardio    Temprano       Total
##              0   41  (82.0%) 14  (87.5%) 55  (83.3%)
##              1    9  (18.0%)  2  (12.5%) 11  (16.7%)
##          Total   50 (100.0%) 16 (100.0%) 66 (100.0%)
# Pruebas exacta de Fisher
le <- model_database %>% 
  tabyl(mortality_24h,reboa_early_t, trans.masiva) 
lapply(le, function (x) {
  fisher.test(as.data.frame(x[,2:3]))
})
## $`0`
## 
##  Fisher's Exact Test for Count Data
## 
## data:  as.data.frame(x[, 2:3])
## p-value = 0.01383
## alternative hypothesis: true odds ratio is not equal to 1
## 95 percent confidence interval:
##  0.1761275 0.8507693
## sample estimates:
## odds ratio 
##  0.3947061 
## 
## 
## $`1`
## 
##  Fisher's Exact Test for Count Data
## 
## data:  as.data.frame(x[, 2:3])
## p-value = 0.02893
## alternative hypothesis: true odds ratio is not equal to 1
## 95 percent confidence interval:
##  0.3393565 0.9637029
## sample estimates:
## odds ratio 
##  0.5753884 
## 
## 
## $NA_
## 
##  Fisher's Exact Test for Count Data
## 
## data:  as.data.frame(x[, 2:3])
## p-value = 1
## alternative hypothesis: true odds ratio is not equal to 1
## 95 percent confidence interval:
##  0.06167593 3.75182015
## sample estimates:
## odds ratio 
##  0.6547206

En el modelo sigue siendo significativo el efecto del REBOA temprano OR = 0.50 y la transfusion masiva OR = 1.83

model_reboa.tm <- glm(mortality_24h ~ reboa_early + trans.masiva,
                         family = binomial(link = "logit"),
                         data = model_database)

summ(model_reboa.tm, exp = TRUE, digits = 3)
## MODEL INFO:
## Observations: 488 (66 missing obs. deleted)
## Dependent Variable: mortality_24h
## Type: Generalized linear model
##   Family: binomial 
##   Link function: logit 
## 
## MODEL FIT:
## <U+03C7>²(2) = 22.085, p = 0.000
## Pseudo-R² (Cragg-Uhler) = 0.061
## Pseudo-R² (McFadden) = 0.036
## AIC = 604.225, BIC = 616.795 
## 
## Standard errors: MLE
## ---------------------------------------------------------------
##                      exp(Est.)    2.5%   97.5%   z val.       p
## ------------------ ----------- ------- ------- -------- -------
## (Intercept)              0.430   0.293   0.631   -4.307   0.000
## reboa_early              0.508   0.338   0.762   -3.272   0.001
## trans.masiva             1.838   1.209   2.792    2.850   0.004
## ---------------------------------------------------------------

Modelos MULTIVARIADOS

Modelo 1: REBOA temprano + Edad + Ausencia de Respuesta Pupilar + Paro Prehospitalario

Segun este modelo el Paro cardiaco y la ausencia de respuesta pupilar al ingreso son los factores de riesgo mas fuertes para la mortalidad a 24 horas al ingreso, mientras que la estrategia de REBOA temprano es un factor protector OR: 0.65, el modelo tiene un AUC= 0.72. La edad en este modelo no tuvo significante peso para la prediccion de mortalidad a 24 horas

model_reboa.1 <- glm(mortality_24h ~ reboa_early + cpr_admission + age_2 + pupilar_absent,
                     family = binomial(link = "logit"),
                         data = model_database)

summ (model_reboa.1, exp = TRUE, digits = 3)
## MODEL INFO:
## Observations: 547 (7 missing obs. deleted)
## Dependent Variable: mortality_24h
## Type: Generalized linear model
##   Family: binomial 
##   Link function: logit 
## 
## MODEL FIT:
## <U+03C7>²(6) = 71.670, p = 0.000
## Pseudo-R² (Cragg-Uhler) = 0.173
## Pseudo-R² (McFadden) = 0.106
## AIC = 620.313, BIC = 650.444 
## 
## Standard errors: MLE
## -----------------------------------------------------------------
##                        exp(Est.)    2.5%   97.5%   z val.       p
## -------------------- ----------- ------- ------- -------- -------
## (Intercept)                0.228   0.090   0.580   -3.106   0.002
## reboa_early                0.650   0.429   0.983   -2.041   0.041
## cpr_admission              2.844   1.703   4.748    3.996   0.000
## age_220-39                 1.072   0.420   2.737    0.145   0.884
## age_240-59                 1.137   0.441   2.930    0.266   0.790
## age_260                    1.770   0.667   4.697    1.147   0.251
## pupilar_absent             2.753   1.824   4.156    4.819   0.000
## -----------------------------------------------------------------
## Hoslem Test
deaths <- model_reboa.1$model$mortality_24h
ResourceSelection::hoslem.test(x = deaths , y = fitted(model_reboa.1))
## 
##  Hosmer and Lemeshow goodness of fit (GOF) test
## 
## data:  deaths, fitted(model_reboa.1)
## X-squared = 7.7984, df = 8, p-value = 0.4534
## AUC
AUC <- pROC::roc(deaths ~ predict(model_reboa.1, type = "response"))
## Setting levels: control = 0, case = 1
## Setting direction: controls < cases
AUC
## 
## Call:
## roc.formula(formula = deaths ~ predict(model_reboa.1, type = "response"))
## 
## Data: predict(model_reboa.1, type = "response") in 377 controls (deaths 0) < 170 cases (deaths 1).
## Area under the curve: 0.7226

Modelo 2: REBOA temprano + Ausencia de Respuesta Pupilar + Paro Prehospitalario

En este modelo que excluye a la edad sigue siendo el REBOA temprano un factor protector

model_reboa.2 <- glm(mortality_24h ~ reboa_early + cpr_admission + pupilar_absent,
                     family = binomial(link = "logit"),
                         data = model_database)

summ (model_reboa.2, exp = TRUE, digits = 3)
## MODEL INFO:
## Observations: 554
## Dependent Variable: mortality_24h
## Type: Generalized linear model
##   Family: binomial 
##   Link function: logit 
## 
## MODEL FIT:
## <U+03C7>²(3) = 68.701, p = 0.000
## Pseudo-R² (Cragg-Uhler) = 0.164
## Pseudo-R² (McFadden) = 0.100
## AIC = 627.266, BIC = 644.535 
## 
## Standard errors: MLE
## -----------------------------------------------------------------
##                        exp(Est.)    2.5%   97.5%   z val.       p
## -------------------- ----------- ------- ------- -------- -------
## (Intercept)                0.285   0.209   0.390   -7.847   0.000
## reboa_early                0.663   0.440   0.999   -1.966   0.049
## cpr_admission              2.865   1.729   4.749    4.083   0.000
## pupilar_absent             2.600   1.738   3.888    4.654   0.000
## -----------------------------------------------------------------
## Hoslem Test
deaths <- model_reboa.2$model$mortality_24h
ResourceSelection::hoslem.test(x = deaths , y = fitted(model_reboa.2))
## 
##  Hosmer and Lemeshow goodness of fit (GOF) test
## 
## data:  deaths, fitted(model_reboa.2)
## X-squared = 0.085952, df = 8, p-value = 1
## AUC
AUC <- pROC::roc(deaths ~ predict(model_reboa.2, type = "response"))
## Setting levels: control = 0, case = 1
## Setting direction: controls < cases
AUC
## 
## Call:
## roc.formula(formula = deaths ~ predict(model_reboa.2, type = "response"))
## 
## Data: predict(model_reboa.2, type = "response") in 381 controls (deaths 0) < 173 cases (deaths 1).
## Area under the curve: 0.7042

Modelo 3: REBOA temprano + Transfusion Masiva + Paro Prehospitalario + AUsencia de respuesta pupilar

Este modelo muestra que el REBOA temprano no alcanza a ser estadisticamente significativo tanto en el modelo que se exluyen los 66 datos que se habian perdido como otro escenario. Estos datos estan perdidos porque el ABO-Trauma registry no tenia esa informacion directa de las transfusiones.

Modelo excluyendo los 66 datos que no tienen informacion sobre la transfusion

model_reboa.3 <- glm(mortality_24h ~ reboa_early + cpr_admission + pupilar_absent + trans.masiva ,
                     family = binomial(link = "logit"),
                         data = model_database)

summ (model_reboa.3, exp = TRUE, digits = 3)
## MODEL INFO:
## Observations: 488 (66 missing obs. deleted)
## Dependent Variable: mortality_24h
## Type: Generalized linear model
##   Family: binomial 
##   Link function: logit 
## 
## MODEL FIT:
## <U+03C7>²(4) = 74.764, p = 0.000
## Pseudo-R² (Cragg-Uhler) = 0.197
## Pseudo-R² (McFadden) = 0.121
## AIC = 555.546, BIC = 576.497 
## 
## Standard errors: MLE
## -----------------------------------------------------------------
##                        exp(Est.)    2.5%   97.5%   z val.       p
## -------------------- ----------- ------- ------- -------- -------
## (Intercept)                0.192   0.119   0.310   -6.725   0.000
## reboa_early                0.663   0.430   1.022   -1.862   0.063
## cpr_admission              3.050   1.773   5.246    4.031   0.000
## pupilar_absent             2.588   1.688   3.970    4.358   0.000
## trans.masiva               2.027   1.296   3.171    3.096   0.002
## -----------------------------------------------------------------
## Hoslem Test
deaths <- model_reboa.3$model$mortality_24h
ResourceSelection::hoslem.test(x = deaths , y = fitted(model_reboa.3))
## 
##  Hosmer and Lemeshow goodness of fit (GOF) test
## 
## data:  deaths, fitted(model_reboa.3)
## X-squared = 3.1114, df = 8, p-value = 0.9272
## AUC
AUC <- pROC::roc(deaths ~ predict(model_reboa.3, type = "response"))
## Setting levels: control = 0, case = 1
## Setting direction: controls < cases
AUC
## 
## Call:
## roc.formula(formula = deaths ~ predict(model_reboa.3, type = "response"))
## 
## Data: predict(model_reboa.3, type = "response") in 326 controls (deaths 0) < 162 cases (deaths 1).
## Area under the curve: 0.7318

Modelo que define a los 66 datos perdidos sobre la transfusion, como datos de NO tranfusion masiva

## Una copia de la base para no afectar la general
model_database_2 <- model_database 
model_database_2$trans.masiva[is.na(model_database_2$trans.masiva)] <- 0

model_reboa.3.2 <- glm(mortality_24h ~ reboa_early + cpr_admission + pupilar_absent + trans.masiva ,
                     family = binomial(link = "logit"),
                         data = model_database_2)

summ (model_reboa.3.2, exp = TRUE, digits = 3)
## MODEL INFO:
## Observations: 554
## Dependent Variable: mortality_24h
## Type: Generalized linear model
##   Family: binomial 
##   Link function: logit 
## 
## MODEL FIT:
## <U+03C7>²(4) = 84.044, p = 0.000
## Pseudo-R² (Cragg-Uhler) = 0.198
## Pseudo-R² (McFadden) = 0.122
## AIC = 613.923, BIC = 635.509 
## 
## Standard errors: MLE
## -----------------------------------------------------------------
##                        exp(Est.)    2.5%   97.5%   z val.       p
## -------------------- ----------- ------- ------- -------- -------
## (Intercept)                0.175   0.115   0.266   -8.181   0.000
## reboa_early                0.687   0.453   1.041   -1.770   0.077
## cpr_admission              3.041   1.814   5.097    4.220   0.000
## pupilar_absent             2.528   1.680   3.804    4.451   0.000
## trans.masiva               2.219   1.477   3.332    3.839   0.000
## -----------------------------------------------------------------
## Hoslem Test
deaths <- model_reboa.3.2$model$mortality_24h
ResourceSelection::hoslem.test(x = deaths , y = fitted(model_reboa.3.2))
## 
##  Hosmer and Lemeshow goodness of fit (GOF) test
## 
## data:  deaths, fitted(model_reboa.3.2)
## X-squared = NaN, df = 8, p-value = NA
## AUC
AUC <- pROC::roc(deaths ~ predict(model_reboa.3.2, type = "response"))
## Setting levels: control = 0, case = 1
## Setting direction: controls < cases
AUC
## 
## Call:
## roc.formula(formula = deaths ~ predict(model_reboa.3.2, type = "response"))
## 
## Data: predict(model_reboa.3.2, type = "response") in 381 controls (deaths 0) < 173 cases (deaths 1).
## Area under the curve: 0.7341

TRAUMA PENETRANTE

La comparacion de los 2 grupos, muestra que los pacientes de REBOA tardio eran mas viejos, aunque no hay diferencias en la distribucion del tipo de edad. En este contexto NO hubo una diferencia respeto a la ausencia de respuesta pupilar al ingreso. La mortalidad si fue mayor en el grupo de REBOA temprano 40% vs 22%. Hubo diferencias tambien en los esfuerzos de resucitación

penetrating <- penetrating %>% 
  mutate(reboa_early = ifelse(sbp_on_admission >= 50 & sbp_pre_reboa >= 70,1,0))

penetrating$reboa_early_t <- factor(penetrating$reboa_early,
                              levels = c("0","1"),
                              labels = c("Tardio","Temprano"))

model_database.2 <- penetrating %>% 
  filter(reboa_early >= 0) %>% 
  select(age, age_2, 
         sex, iss,
         cpr_admission,
         pupilar_absent,
         Hospital_Volume,
         mortality_24h,
         Packed.red.blood.cells,
         Fresh.frozen.plasma,
         reboa_early_t,
         reboa_early)



model_database.2$Hospital_Volume <- factor(model_database.2$Hospital_Volume,
                                         levels = c("1","2", "3"),
                                         labels = c("<20","20-80",">80"))

model_database.2 <- model_database.2 %>% 
  mutate(trans.masiva = ifelse(Packed.red.blood.cells >= 10,1,0))

model_database.2 %>% 
  select(-reboa_early) %>% 
  tbl_summary(by = reboa_early_t,
              label = list(age ~ "Edad",
                age_2 ~ "Categorias de Edad",
                sex ~ "Genero",
                iss ~ "ISS",
                cpr_admission ~ "Paro Cardiaco Prehospitalario",
                pupilar_absent ~ "Ausencia de Respuesta Pupilar",
                Hospital_Volume ~ "Volumen por Hospital",
                Packed.red.blood.cells ~ "U. Globulos Rojos en 24h",
                Fresh.frozen.plasma ~ "U. Plasma en 24h",
                trans.masiva ~ "Transfusion Masiva",
                mortality_24h ~ "Mortalidad a 24 horas")) %>% 
  add_p() %>% 
  modify_caption("**Tabla. Pacientes con REBOA temprano vs Tardio en Trauma Penetrante**") %>% 
  bold_labels()
Tabla. Pacientes con REBOA temprano vs Tardio en Trauma Penetrante
Characteristic Tardio, N = 1831 Temprano, N = 961 p-value2
Edad 46 (29, 60) 35 (23, 56) 0.015
Unknown 3 0
Categorias de Edad 0.5
20 15 (8.3%) 11 (11%)
20-39 65 (36%) 41 (43%)
40-59 53 (29%) 22 (23%)
60 47 (26%) 22 (23%)
Unknown 3 0
Genero 0.8
Female 38 (21%) 19 (20%)
Male 145 (79%) 77 (80%)
ISS 34 (25, 50) 30 (20, 45) 0.2
Unknown 16 11
Paro Cardiaco Prehospitalario 35 (19%) 8 (8.3%) 0.018
Ausencia de Respuesta Pupilar 68 (37%) 34 (35%) 0.8
Volumen por Hospital 0.10
<20 91 (50%) 36 (38%)
20-80 66 (36%) 47 (49%)
>80 26 (14%) 13 (14%)
Mortalidad a 24 horas 74 (40%) 21 (22%) 0.002
U. Globulos Rojos en 24h 18 (9, 27) 10 (8, 19) 0.047
Unknown 122 53
U. Plasma en 24h 13 (4, 25) 7 (5, 19) 0.3
Unknown 122 53
Transfusion Masiva 45 (74%) 23 (53%) 0.032
Unknown 122 53

1 Median (IQR); n (%)

2 Wilcoxon rank sum test; Pearson's Chi-squared test

Modelos de REBOA temprano con la mortalidad

La relacion univariada del REBOA temprano con la mortalidad a 24 horas

Resultados del Modelo

model_reboa.early <- glm(mortality_24h ~ reboa_early,
                         family = binomial(link = "logit"),
                         data = model_database.2)

summary(model_reboa.early)
## 
## Call:
## glm(formula = mortality_24h ~ reboa_early, family = binomial(link = "logit"), 
##     data = model_database.2)
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -1.0180  -1.0180  -0.7026   1.3457   1.7435  
## 
## Coefficients:
##             Estimate Std. Error z value Pr(>|z|)   
## (Intercept)  -0.3873     0.1506  -2.571   0.0101 * 
## reboa_early  -0.8857     0.2892  -3.062   0.0022 **
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 357.88  on 278  degrees of freedom
## Residual deviance: 347.82  on 277  degrees of freedom
## AIC: 351.82
## 
## Number of Fisher Scoring iterations: 4

La relacion de Reboa temprano y la mortalidad a 24 horas tiene un OR 0.412 95%CI (0.23-0.72)

summ (model_reboa.early, exp = TRUE, digits = 3)
## MODEL INFO:
## Observations: 279
## Dependent Variable: mortality_24h
## Type: Generalized linear model
##   Family: binomial 
##   Link function: logit 
## 
## MODEL FIT:
## <U+03C7>²(1) = 10.065, p = 0.002
## Pseudo-R² (Cragg-Uhler) = 0.049
## Pseudo-R² (McFadden) = 0.028
## AIC = 351.818, BIC = 359.081 
## 
## Standard errors: MLE
## --------------------------------------------------------------
##                     exp(Est.)    2.5%   97.5%   z val.       p
## ----------------- ----------- ------- ------- -------- -------
## (Intercept)             0.679   0.505   0.912   -2.571   0.010
## reboa_early             0.412   0.234   0.727   -3.062   0.002
## --------------------------------------------------------------
## Hoslem Test
deaths <- model_reboa.early$model$mortality_24h
ResourceSelection::hoslem.test(x = deaths , y = fitted(model_reboa.early))
## 
##  Hosmer and Lemeshow goodness of fit (GOF) test
## 
## data:  deaths, fitted(model_reboa.early)
## X-squared = 5.7417e-24, df = 8, p-value = 1
## AUC
AUC <- pROC::roc(deaths ~ predict(model_reboa.early, type = "response"))
## Setting levels: control = 0, case = 1
## Setting direction: controls < cases
AUC
## 
## Call:
## roc.formula(formula = deaths ~ predict(model_reboa.early, type = "response"))
## 
## Data: predict(model_reboa.early, type = "response") in 184 controls (deaths 0) < 95 cases (deaths 1).
## Area under the curve: 0.5933

REBOA temprano y edad

Se evidencio que al comparar los grupos de edad manera estratificada. Se encontro que hay diferencia significativa en los pacientes con REBOA temprano vs tardio respecto a su mortalidad solo fue significativa para los mayores de 60 años

model_database.2 %>% 
  filter(age >= 0) %>% 
  tabyl(mortality_24h,reboa_early_t, age_2) %>% 
  adorn_totals(c("row","col")) %>%
  adorn_percentages(denominator = "col") %>%
  adorn_pct_formatting() %>%
  adorn_ns(position = "front") %>%
  adorn_title() 
## $`20`
##                reboa_early_t                        
##  mortality_24h        Tardio    Temprano       Total
##              0    8  (53.3%)  6  (54.5%) 14  (53.8%)
##              1    7  (46.7%)  5  (45.5%) 12  (46.2%)
##          Total   15 (100.0%) 11 (100.0%) 26 (100.0%)
## 
## $`20-39`
##                reboa_early_t                         
##  mortality_24h        Tardio    Temprano        Total
##              0   44  (67.7%) 35  (85.4%)  79  (74.5%)
##              1   21  (32.3%)  6  (14.6%)  27  (25.5%)
##          Total   65 (100.0%) 41 (100.0%) 106 (100.0%)
## 
## $`40-59`
##                reboa_early_t                        
##  mortality_24h        Tardio    Temprano       Total
##              0   35  (66.0%) 18  (81.8%) 53  (70.7%)
##              1   18  (34.0%)  4  (18.2%) 22  (29.3%)
##          Total   53 (100.0%) 22 (100.0%) 75 (100.0%)
## 
## $`60`
##                reboa_early_t                        
##  mortality_24h        Tardio    Temprano       Total
##              0   21  (44.7%) 16  (72.7%) 37  (53.6%)
##              1   26  (55.3%)  6  (27.3%) 32  (46.4%)
##          Total   47 (100.0%) 22 (100.0%) 69 (100.0%)
# Pruebas exacta de Fisher
le <- model_database.2 %>% 
  filter(age >= 0) %>% 
  tabyl(mortality_24h,reboa_early_t, age_2) 
lapply(le, function (x) {
  fisher.test(as.data.frame(x[,2:3]))
})
## $`20`
## 
##  Fisher's Exact Test for Count Data
## 
## data:  as.data.frame(x[, 2:3])
## p-value = 1
## alternative hypothesis: true odds ratio is not equal to 1
## 95 percent confidence interval:
##  0.1519754 5.8616490
## sample estimates:
## odds ratio 
##  0.9541453 
## 
## 
## $`20-39`
## 
##  Fisher's Exact Test for Count Data
## 
## data:  as.data.frame(x[, 2:3])
## p-value = 0.06583
## alternative hypothesis: true odds ratio is not equal to 1
## 95 percent confidence interval:
##  0.1077119 1.0595235
## sample estimates:
## odds ratio 
##  0.3624765 
## 
## 
## $`40-59`
## 
##  Fisher's Exact Test for Count Data
## 
## data:  as.data.frame(x[, 2:3])
## p-value = 0.2654
## alternative hypothesis: true odds ratio is not equal to 1
## 95 percent confidence interval:
##  0.0934448 1.6097973
## sample estimates:
## odds ratio 
##  0.4366113 
## 
## 
## $`60`
## 
##  Fisher's Exact Test for Count Data
## 
## data:  as.data.frame(x[, 2:3])
## p-value = 0.03925
## alternative hypothesis: true odds ratio is not equal to 1
## 95 percent confidence interval:
##  0.08328517 1.01299539
## sample estimates:
## odds ratio 
##  0.3082406

Sin embargo, cuando se construyo el modelo de REBOA temprano y la edad estratificada. El grupo entre los 20-39 años fue un factor protector

model_reboa.edad <- glm(mortality_24h ~ reboa_early + age_2,
                         family = binomial(link = "logit"),
                         data = model_database.2)

summ(model_reboa.edad, exp = TRUE, digits = 3)
## MODEL INFO:
## Observations: 276 (3 missing obs. deleted)
## Dependent Variable: mortality_24h
## Type: Generalized linear model
##   Family: binomial 
##   Link function: logit 
## 
## MODEL FIT:
## <U+03C7>²(4) = 20.245, p = 0.000
## Pseudo-R² (Cragg-Uhler) = 0.098
## Pseudo-R² (McFadden) = 0.057
## AIC = 342.481, BIC = 360.583 
## 
## Standard errors: MLE
## --------------------------------------------------------------
##                     exp(Est.)    2.5%   97.5%   z val.       p
## ----------------- ----------- ------- ------- -------- -------
## (Intercept)             1.241   0.545   2.827    0.514   0.607
## reboa_early             0.407   0.227   0.730   -3.019   0.003
## age_220-39              0.372   0.150   0.922   -2.135   0.033
## age_240-59              0.420   0.163   1.078   -1.804   0.071
## age_260                 0.918   0.363   2.321   -0.181   0.856
## --------------------------------------------------------------

REBOA temprano y Ausencia de Respuesta Pupilar

Las bases de datos originales no venian con detalles exactos como el valor del ingreso en la escala de goma de Glasgow, el parametro que las dos bases coincidian era “Ausencia de la respuesta Pupilar”.

model_database.2 %>% 
  tabyl(mortality_24h,reboa_early_t, pupilar_absent) %>% 
  adorn_totals(c("row","col")) %>%
  adorn_percentages(denominator = "col") %>%
  adorn_pct_formatting() %>%
  adorn_ns(position = "front") %>%
  adorn_title() 
## $`0`
##                reboa_early_t                         
##  mortality_24h        Tardio    Temprano        Total
##              0   84  (73.0%) 55  (88.7%) 139  (78.5%)
##              1   31  (27.0%)  7  (11.3%)  38  (21.5%)
##          Total  115 (100.0%) 62 (100.0%) 177 (100.0%)
## 
## $`1`
##                reboa_early_t                         
##  mortality_24h        Tardio    Temprano        Total
##              0   25  (36.8%) 20  (58.8%)  45  (44.1%)
##              1   43  (63.2%) 14  (41.2%)  57  (55.9%)
##          Total   68 (100.0%) 34 (100.0%) 102 (100.0%)
# Pruebas exacta de Fisher
le <- model_database.2 %>% 
  tabyl(mortality_24h,reboa_early_t, pupilar_absent) 
lapply(le, function (x) {
  fisher.test(as.data.frame(x[,2:3]))
})
## $`0`
## 
##  Fisher's Exact Test for Count Data
## 
## data:  as.data.frame(x[, 2:3])
## p-value = 0.02047
## alternative hypothesis: true odds ratio is not equal to 1
## 95 percent confidence interval:
##  0.1202589 0.8762061
## sample estimates:
## odds ratio 
##  0.3467137 
## 
## 
## $`1`
## 
##  Fisher's Exact Test for Count Data
## 
## data:  as.data.frame(x[, 2:3])
## p-value = 0.05613
## alternative hypothesis: true odds ratio is not equal to 1
## 95 percent confidence interval:
##  0.1603788 1.0242740
## sample estimates:
## odds ratio 
##  0.4107272

Sin embargo, cuando se construyo el modelo de REBOA temprano y la ausencia de respuesta pupilar al ingreso se encontro que las dos variables tenian relacion con el desenlace de mortalidad a 24 horas. REBOA temprano OR= 0.37 y Ausencia de Respuesta Pupilar OR=4.88

model_reboa.pupilar <- glm(mortality_24h ~ reboa_early + pupilar_absent,
                         family = binomial(link = "logit"),
                         data = model_database.2)

summ(model_reboa.pupilar, exp = TRUE, digits = 3)
## MODEL INFO:
## Observations: 279
## Dependent Variable: mortality_24h
## Type: Generalized linear model
##   Family: binomial 
##   Link function: logit 
## 
## MODEL FIT:
## <U+03C7>²(2) = 44.532, p = 0.000
## Pseudo-R² (Cragg-Uhler) = 0.204
## Pseudo-R² (McFadden) = 0.124
## AIC = 319.352, BIC = 330.245 
## 
## Standard errors: MLE
## -----------------------------------------------------------------
##                        exp(Est.)    2.5%   97.5%   z val.       p
## -------------------- ----------- ------- ------- -------- -------
## (Intercept)                0.362   0.245   0.534   -5.119   0.000
## reboa_early                0.376   0.205   0.690   -3.160   0.002
## pupilar_absent             4.881   2.826   8.430    5.686   0.000
## -----------------------------------------------------------------

REBOA temprano y Paro Cardiaco Prehospitalario

En este modelo el paro cardiaco no alcanzo a ser estadisticamente significativo.

model_database.2 %>% 
  tabyl(mortality_24h,reboa_early_t, cpr_admission) %>% 
  adorn_totals(c("row","col")) %>%
  adorn_percentages(denominator = "col") %>%
  adorn_pct_formatting() %>%
  adorn_ns(position = "front") %>%
  adorn_title() 
## $`0`
##                reboa_early_t                         
##  mortality_24h        Tardio    Temprano        Total
##              0   92  (62.2%) 70  (79.5%) 162  (68.6%)
##              1   56  (37.8%) 18  (20.5%)  74  (31.4%)
##          Total  148 (100.0%) 88 (100.0%) 236 (100.0%)
## 
## $`1`
##                reboa_early_t                       
##  mortality_24h        Tardio   Temprano       Total
##              0   17  (48.6%) 5  (62.5%) 22  (51.2%)
##              1   18  (51.4%) 3  (37.5%) 21  (48.8%)
##          Total   35 (100.0%) 8 (100.0%) 43 (100.0%)
# Pruebas exacta de Fisher
le <- model_database.2 %>% 
  tabyl(mortality_24h,reboa_early_t, cpr_admission) 
lapply(le, function (x) {
  fisher.test(as.data.frame(x[,2:3]))
})
## $`0`
## 
##  Fisher's Exact Test for Count Data
## 
## data:  as.data.frame(x[, 2:3])
## p-value = 0.005843
## alternative hypothesis: true odds ratio is not equal to 1
## 95 percent confidence interval:
##  0.2146969 0.8088688
## sample estimates:
## odds ratio 
##  0.4239443 
## 
## 
## $`1`
## 
##  Fisher's Exact Test for Count Data
## 
## data:  as.data.frame(x[, 2:3])
## p-value = 0.6981
## alternative hypothesis: true odds ratio is not equal to 1
## 95 percent confidence interval:
##  0.07703643 3.49044779
## sample estimates:
## odds ratio 
##  0.5741503

En el modelo sigue siendo significativo el efecto del REBOA temprano OR = 0.43

model_reboa.cpr <- glm(mortality_24h ~ reboa_early + cpr_admission,
                         family = binomial(link = "logit"),
                         data = model_database.2)

summ(model_reboa.cpr, exp = TRUE, digits = 3)
## MODEL INFO:
## Observations: 279
## Dependent Variable: mortality_24h
## Type: Generalized linear model
##   Family: binomial 
##   Link function: logit 
## 
## MODEL FIT:
## <U+03C7>²(2) = 13.198, p = 0.001
## Pseudo-R² (Cragg-Uhler) = 0.064
## Pseudo-R² (McFadden) = 0.037
## AIC = 350.686, BIC = 361.579 
## 
## Standard errors: MLE
## ----------------------------------------------------------------
##                       exp(Est.)    2.5%   97.5%   z val.       p
## ------------------- ----------- ------- ------- -------- -------
## (Intercept)               0.602   0.434   0.834   -3.047   0.002
## reboa_early               0.439   0.247   0.778   -2.820   0.005
## cpr_admission             1.838   0.940   3.594    1.780   0.075
## ----------------------------------------------------------------

REBOA temprano y Transfusion Masiva

Los dos grupos con o sin transfusion masiva.

model_database.2 %>% 
  tabyl(mortality_24h,reboa_early_t, trans.masiva) %>% 
  adorn_totals(c("row","col")) %>%
  adorn_percentages(denominator = "col") %>%
  adorn_pct_formatting() %>%
  adorn_ns(position = "front") %>%
  adorn_title() 
## $`0`
##                reboa_early_t                        
##  mortality_24h        Tardio    Temprano       Total
##              0    9  (56.2%) 17  (85.0%) 26  (72.2%)
##              1    7  (43.8%)  3  (15.0%) 10  (27.8%)
##          Total   16 (100.0%) 20 (100.0%) 36 (100.0%)
## 
## $`1`
##                reboa_early_t                        
##  mortality_24h        Tardio    Temprano       Total
##              0   32  (71.1%) 19  (82.6%) 51  (75.0%)
##              1   13  (28.9%)  4  (17.4%) 17  (25.0%)
##          Total   45 (100.0%) 23 (100.0%) 68 (100.0%)
## 
## $NA_
##                reboa_early_t                         
##  mortality_24h        Tardio    Temprano        Total
##              0   68  (55.7%) 39  (73.6%) 107  (61.1%)
##              1   54  (44.3%) 14  (26.4%)  68  (38.9%)
##          Total  122 (100.0%) 53 (100.0%) 175 (100.0%)
# Pruebas exacta de Fisher
le <- model_database.2 %>% 
  tabyl(mortality_24h,reboa_early_t, trans.masiva) 
lapply(le, function (x) {
  fisher.test(as.data.frame(x[,2:3]))
})
## $`0`
## 
##  Fisher's Exact Test for Count Data
## 
## data:  as.data.frame(x[, 2:3])
## p-value = 0.07316
## alternative hypothesis: true odds ratio is not equal to 1
## 95 percent confidence interval:
##  0.03162525 1.35363165
## sample estimates:
## odds ratio 
##  0.2371487 
## 
## 
## $`1`
## 
##  Fisher's Exact Test for Count Data
## 
## data:  as.data.frame(x[, 2:3])
## p-value = 0.3828
## alternative hypothesis: true odds ratio is not equal to 1
## 95 percent confidence interval:
##  0.1083998 2.0271613
## sample estimates:
## odds ratio 
##  0.5229844 
## 
## 
## $NA_
## 
##  Fisher's Exact Test for Count Data
## 
## data:  as.data.frame(x[, 2:3])
## p-value = 0.02897
## alternative hypothesis: true odds ratio is not equal to 1
## 95 percent confidence interval:
##  0.2055658 0.9599426
## sample estimates:
## odds ratio 
##    0.45404

En el modelo la transfusion masiva NO fue estadisticamente significativa

model_reboa.tm <- glm(mortality_24h ~ reboa_early + trans.masiva,
                         family = binomial(link = "logit"),
                         data = model_database.2)

summ(model_reboa.tm, exp = TRUE, digits = 3)
## MODEL INFO:
## Observations: 104 (175 missing obs. deleted)
## Dependent Variable: mortality_24h
## Type: Generalized linear model
##   Family: binomial 
##   Link function: logit 
## 
## MODEL FIT:
## <U+03C7>²(2) = 4.267, p = 0.118
## Pseudo-R² (Cragg-Uhler) = 0.059
## Pseudo-R² (McFadden) = 0.036
## AIC = 120.845, BIC = 128.778 
## 
## Standard errors: MLE
## ---------------------------------------------------------------
##                      exp(Est.)    2.5%   97.5%   z val.       p
## ------------------ ----------- ------- ------- -------- -------
## (Intercept)              0.635   0.266   1.517   -1.022   0.307
## reboa_early              0.368   0.135   1.000   -1.961   0.050
## trans.masiva             0.696   0.267   1.815   -0.742   0.458
## ---------------------------------------------------------------

Modelos MULTIVARIADOS

Modelo 1: REBOA temprano + Edad + Ausencia de Respuesta Pupilar + Paro Prehospitalario

Segun este modelo la ausencia de respuesta pupilar es el unico factor de riesgo para la mortalidad a 24 horas representativo. En cambio, el uso del REBOA temprano, estar en lso grupos de edad de 20-39 y 40-59 años son factores protectores.

model_reboa.1 <- glm(mortality_24h ~ reboa_early + cpr_admission + age_2 + pupilar_absent,
                     family = binomial(link = "logit"),
                         data = model_database.2)

summ (model_reboa.1, exp = TRUE, digits = 3)
## MODEL INFO:
## Observations: 276 (3 missing obs. deleted)
## Dependent Variable: mortality_24h
## Type: Generalized linear model
##   Family: binomial 
##   Link function: logit 
## 
## MODEL FIT:
## <U+03C7>²(6) = 54.185, p = 0.000
## Pseudo-R² (Cragg-Uhler) = 0.247
## Pseudo-R² (McFadden) = 0.154
## AIC = 312.541, BIC = 337.884 
## 
## Standard errors: MLE
## -----------------------------------------------------------------
##                        exp(Est.)    2.5%   97.5%   z val.       p
## -------------------- ----------- ------- ------- -------- -------
## (Intercept)                0.798   0.321   1.980   -0.487   0.626
## reboa_early                0.356   0.188   0.674   -3.176   0.001
## cpr_admission              1.001   0.475   2.107    0.001   0.999
## age_220-39                 0.323   0.120   0.866   -2.247   0.025
## age_240-59                 0.327   0.118   0.908   -2.144   0.032
## age_260                    0.691   0.253   1.888   -0.721   0.471
## pupilar_absent             5.106   2.824   9.232    5.395   0.000
## -----------------------------------------------------------------
## Hoslem Test
deaths <- model_reboa.1$model$mortality_24h
ResourceSelection::hoslem.test(x = deaths , y = fitted(model_reboa.1))
## 
##  Hosmer and Lemeshow goodness of fit (GOF) test
## 
## data:  deaths, fitted(model_reboa.1)
## X-squared = 5.042, df = 8, p-value = 0.7531
## AUC
AUC <- pROC::roc(deaths ~ predict(model_reboa.1, type = "response"))
## Setting levels: control = 0, case = 1
## Setting direction: controls < cases
AUC
## 
## Call:
## roc.formula(formula = deaths ~ predict(model_reboa.1, type = "response"))
## 
## Data: predict(model_reboa.1, type = "response") in 183 controls (deaths 0) < 93 cases (deaths 1).
## Area under the curve: 0.757

Modelo 2: REBOA temprano + Ausencia de Respuesta Pupilar + Paro Prehospitalario

En este modelo que excluye a la edad sigue siendo el REBOA temprano un factor protector, la respuesta pupilar el factor de riesgo

model_reboa.2 <- glm(mortality_24h ~ reboa_early + cpr_admission + pupilar_absent,
                     family = binomial(link = "logit"),
                         data = model_database.2)

summ (model_reboa.2, exp = TRUE, digits = 3)
## MODEL INFO:
## Observations: 279
## Dependent Variable: mortality_24h
## Type: Generalized linear model
##   Family: binomial 
##   Link function: logit 
## 
## MODEL FIT:
## <U+03C7>²(3) = 44.565, p = 0.000
## Pseudo-R² (Cragg-Uhler) = 0.204
## Pseudo-R² (McFadden) = 0.125
## AIC = 321.318, BIC = 335.843 
## 
## Standard errors: MLE
## -----------------------------------------------------------------
##                        exp(Est.)    2.5%   97.5%   z val.       p
## -------------------- ----------- ------- ------- -------- -------
## (Intercept)                0.359   0.241   0.535   -5.036   0.000
## reboa_early                0.379   0.205   0.699   -3.104   0.002
## cpr_admission              1.071   0.513   2.240    0.184   0.854
## pupilar_absent             4.812   2.730   8.481    5.434   0.000
## -----------------------------------------------------------------
## Hoslem Test
deaths <- model_reboa.2$model$mortality_24h
ResourceSelection::hoslem.test(x = deaths , y = fitted(model_reboa.2))
## 
##  Hosmer and Lemeshow goodness of fit (GOF) test
## 
## data:  deaths, fitted(model_reboa.2)
## X-squared = 0.052551, df = 8, p-value = 1
## AUC
AUC <- pROC::roc(deaths ~ predict(model_reboa.2, type = "response"))
## Setting levels: control = 0, case = 1
## Setting direction: controls < cases
AUC
## 
## Call:
## roc.formula(formula = deaths ~ predict(model_reboa.2, type = "response"))
## 
## Data: predict(model_reboa.2, type = "response") in 184 controls (deaths 0) < 95 cases (deaths 1).
## Area under the curve: 0.7245

Modelo 3: REBOA temprano + Transfusion Masiva + Paro Prehospitalario + AUsencia de respuesta pupilar

Este modelo muestra que el REBOA temprano no alcanza a ser estadisticamente significativo. El unico que es factor de riesgo sigue siendo la ausencia de respuesta pupilar

Estos datos estan perdidos porque el ABO-Trauma registry no tenia esa informacion directa de las transfusiones.

Modelo excluyendo los 175 datos que no tienen informacion sobre la transfusion

model_reboa.3 <- glm(mortality_24h ~ reboa_early + cpr_admission + pupilar_absent + trans.masiva ,
                     family = binomial(link = "logit"),
                         data = model_database.2)

summ (model_reboa.3, exp = TRUE, digits = 3)
## MODEL INFO:
## Observations: 104 (175 missing obs. deleted)
## Dependent Variable: mortality_24h
## Type: Generalized linear model
##   Family: binomial 
##   Link function: logit 
## 
## MODEL FIT:
## <U+03C7>²(4) = 33.983, p = 0.000
## Pseudo-R² (Cragg-Uhler) = 0.409
## Pseudo-R² (McFadden) = 0.285
## AIC = 95.129, BIC = 108.351 
## 
## Standard errors: MLE
## ------------------------------------------------------------------
##                        exp(Est.)    2.5%    97.5%   z val.       p
## -------------------- ----------- ------- -------- -------- -------
## (Intercept)                0.188   0.055    0.642   -2.669   0.008
## reboa_early                0.371   0.111    1.240   -1.611   0.107
## cpr_admission              1.167   0.311    4.382    0.229   0.819
## pupilar_absent            15.331   4.701   50.000    4.526   0.000
## trans.masiva               0.830   0.257    2.686   -0.310   0.756
## ------------------------------------------------------------------
## Hoslem Test
deaths <- model_reboa.3$model$mortality_24h
ResourceSelection::hoslem.test(x = deaths , y = fitted(model_reboa.3))
## 
##  Hosmer and Lemeshow goodness of fit (GOF) test
## 
## data:  deaths, fitted(model_reboa.3)
## X-squared = 5.2457, df = 8, p-value = 0.731
## AUC
AUC <- pROC::roc(deaths ~ predict(model_reboa.3, type = "response"))
## Setting levels: control = 0, case = 1
## Setting direction: controls < cases
AUC
## 
## Call:
## roc.formula(formula = deaths ~ predict(model_reboa.3, type = "response"))
## 
## Data: predict(model_reboa.3, type = "response") in 77 controls (deaths 0) < 27 cases (deaths 1).
## Area under the curve: 0.8095

Modelo que define a los 175 datos perdidos sobre la transfusion, como datos de NO tranfusion masiva

Pero en este modelo que no excluye a los pacientes, el REBOA temprano sigue siendo un factor protector.

## Una copia de la base para no afectar la general
model_database.2_2 <- model_database.2 
model_database.2_2$trans.masiva[is.na(model_database.2_2$trans.masiva)] <- 0

model_reboa.3.2 <- glm(mortality_24h ~ reboa_early + cpr_admission + pupilar_absent + trans.masiva ,
                     family = binomial(link = "logit"),
                         data = model_database.2_2)

summ (model_reboa.3.2, exp = TRUE, digits = 3)
## MODEL INFO:
## Observations: 279
## Dependent Variable: mortality_24h
## Type: Generalized linear model
##   Family: binomial 
##   Link function: logit 
## 
## MODEL FIT:
## <U+03C7>²(4) = 46.246, p = 0.000
## Pseudo-R² (Cragg-Uhler) = 0.211
## Pseudo-R² (McFadden) = 0.129
## AIC = 321.637, BIC = 339.793 
## 
## Standard errors: MLE
## -----------------------------------------------------------------
##                        exp(Est.)    2.5%   97.5%   z val.       p
## -------------------- ----------- ------- ------- -------- -------
## (Intercept)                0.401   0.261   0.616   -4.172   0.000
## reboa_early                0.378   0.204   0.698   -3.105   0.002
## cpr_admission              1.115   0.532   2.338    0.289   0.773
## pupilar_absent             4.609   2.606   8.154    5.250   0.000
## trans.masiva               0.647   0.332   1.262   -1.278   0.201
## -----------------------------------------------------------------
## Hoslem Test
deaths <- model_reboa.3.2$model$mortality_24h
ResourceSelection::hoslem.test(x = deaths , y = fitted(model_reboa.3.2))
## 
##  Hosmer and Lemeshow goodness of fit (GOF) test
## 
## data:  deaths, fitted(model_reboa.3.2)
## X-squared = 3.457, df = 8, p-value = 0.9025
## AUC
AUC <- pROC::roc(deaths ~ predict(model_reboa.3.2, type = "response"))
## Setting levels: control = 0, case = 1
## Setting direction: controls < cases
AUC
## 
## Call:
## roc.formula(formula = deaths ~ predict(model_reboa.3.2, type = "response"))
## 
## Data: predict(model_reboa.3.2, type = "response") in 184 controls (deaths 0) < 95 cases (deaths 1).
## Area under the curve: 0.7369

Modelo 4: REBOA temprano + Ausencia de Respuesta Pupilar + Edad

En este modelo se excluyo el paro prehospitalario. El REBOA temprano sigue siendo un factor protector junto con los grupos de edad de 20-39 y 40-59 años

model_reboa.4 <- glm(mortality_24h ~ reboa_early + age_2 + pupilar_absent,
                     family = binomial(link = "logit"),
                         data = model_database.2)

summ (model_reboa.4, exp = TRUE, digits = 3)
## MODEL INFO:
## Observations: 276 (3 missing obs. deleted)
## Dependent Variable: mortality_24h
## Type: Generalized linear model
##   Family: binomial 
##   Link function: logit 
## 
## MODEL FIT:
## <U+03C7>²(5) = 54.185, p = 0.000
## Pseudo-R² (Cragg-Uhler) = 0.247
## Pseudo-R² (McFadden) = 0.154
## AIC = 310.541, BIC = 332.264 
## 
## Standard errors: MLE
## -----------------------------------------------------------------
##                        exp(Est.)    2.5%   97.5%   z val.       p
## -------------------- ----------- ------- ------- -------- -------
## (Intercept)                0.798   0.328   1.942   -0.497   0.619
## reboa_early                0.356   0.190   0.667   -3.224   0.001
## age_220-39                 0.323   0.121   0.862   -2.258   0.024
## age_240-59                 0.327   0.118   0.903   -2.157   0.031
## age_260                    0.691   0.254   1.877   -0.725   0.468
## pupilar_absent             5.107   2.893   9.014    5.624   0.000
## -----------------------------------------------------------------
## Hoslem Test
deaths <- model_reboa.4$model$mortality_24h
ResourceSelection::hoslem.test(x = deaths , y = fitted(model_reboa.4))
## 
##  Hosmer and Lemeshow goodness of fit (GOF) test
## 
## data:  deaths, fitted(model_reboa.4)
## X-squared = 4.5846, df = 8, p-value = 0.8009
## AUC
AUC <- pROC::roc(deaths ~ predict(model_reboa.4, type = "response"))
## Setting levels: control = 0, case = 1
## Setting direction: controls < cases
AUC
## 
## Call:
## roc.formula(formula = deaths ~ predict(model_reboa.4, type = "response"))
## 
## Data: predict(model_reboa.4, type = "response") in 183 controls (deaths 0) < 93 cases (deaths 1).
## Area under the curve: 0.7569

CONCLUSIONES