##chargement des packages----
library(questionr)
## Warning: le package 'questionr' a été compilé avec la version R 4.4.3
library(tidyverse)
## Warning: le package 'ggplot2' a été compilé avec la version R 4.4.3
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.4     ✔ readr     2.1.5
## ✔ forcats   1.0.0     ✔ stringr   1.5.1
## ✔ ggplot2   3.5.1     ✔ tibble    3.2.1
## ✔ lubridate 1.9.4     ✔ tidyr     1.3.1
## ✔ purrr     1.0.4     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(tableone)
## Warning: le package 'tableone' a été compilé avec la version R 4.4.3
library(labelled)
## Warning: le package 'labelled' a été compilé avec la version R 4.4.3
library(gtsummary)
## Warning: le package 'gtsummary' a été compilé avec la version R 4.4.3
library(GGally)
## Warning: le package 'GGally' a été compilé avec la version R 4.4.3
## Registered S3 method overwritten by 'GGally':
##   method from   
##   +.gg   ggplot2
library(readxl)
library(effects)
## Warning: le package 'effects' a été compilé avec la version R 4.4.3
## Le chargement a nécessité le package : carData
## Warning: le package 'carData' a été compilé avec la version R 4.4.3
## lattice theme set by effectsTheme()
## See ?effectsTheme for details.
library(survival)
library(survminer)
## Warning: le package 'survminer' a été compilé avec la version R 4.4.3
## Le chargement a nécessité le package : ggpubr
## Warning: le package 'ggpubr' a été compilé avec la version R 4.4.3
## 
## Attachement du package : 'survminer'
## 
## L'objet suivant est masqué depuis 'package:survival':
## 
##     myeloma
library(ggplot2)
library(dplyr)
library(knitr)
library(cowplot)
## Warning: le package 'cowplot' a été compilé avec la version R 4.4.3
## 
## Attachement du package : 'cowplot'
## 
## L'objet suivant est masqué depuis 'package:ggpubr':
## 
##     get_legend
## 
## L'objet suivant est masqué depuis 'package:lubridate':
## 
##     stamp
##chargement données

Base_de_données_HOLOXAN_sept_oct_2024_OKML <- read_excel("//srv015/pharmacie/UPCO/Souf/Souf/Holoxan/ML/Base de données HOLOXAN sept oct 2024_OKML.xlsx")
View(Base_de_données_HOLOXAN_sept_oct_2024_OKML)

holoxan<-filter(Base_de_données_HOLOXAN_sept_oct_2024_OKML, c(eligible=="oui"))

##recodage des variables
holoxan$time_real <-((holoxan$temps_ms/1000)/60)
holoxan$iso.cat<-factor(holoxan$iso)

summary(holoxan$time_real)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.9883  3.9061  5.3026  5.5938  6.8055 16.3217
##renommer les variables
var_label(holoxan$libe_pharmacien) <- "Préparation libérée par un pharmacien"
var_label(holoxan$erreur_reco_flacon) <- "Erreur liée à une reconnaissance de flacon"
var_label(holoxan$iso) <- "Isolateur"
var_label(holoxan$time_real) <- "délai de préparation en min"
var_label(holoxan$datamatrix) <- "flacon avec datamatrix"

##tableau recap

tbl_summary(
  holoxan, include = c("Poste", "iso", "datamatrix", "erreur_reco_flacon", "time_real", "jour", "weekend ou JF"),
  statistic = all_continuous() ~ "{median} [{min} - {max}]",
  digits=all_categorical()~ c(0,1)
)
Characteristic N = 3881
Poste
    1A 26 (6.7%)
    1B 31 (8.0%)
    2A 87 (22.4%)
    2B 88 (22.7%)
    3A 24 (6.2%)
    3B 30 (7.7%)
    4A 52 (13.4%)
    4B 50 (12.9%)
Isolateur
    1 57 (14.7%)
    2 175 (45.1%)
    3 54 (13.9%)
    4 102 (26.3%)
flacon avec datamatrix 177 (45.6%)
Erreur liée à une reconnaissance de flacon 71 (18.3%)
délai de préparation en min 5.30 [0.99 - 16.32]
jour
    Jeudi 78 (20.1%)
    Lundi 53 (13.7%)
    Mardi 55 (14.2%)
    Mercredi 67 (17.3%)
    Samedi 39 (10.1%)
    Vendredi 96 (24.7%)
weekend ou JF
    semaine 349 (89.9%)
    week_end 39 (10.1%)
1 n (%); Median [Min - Max]
##tableau recap par erreur de reco
tbl_summary(
  holoxan, include = c("Poste", "iso", "datamatrix", "erreur_reco_flacon", "time_real", "jour", "weekend ou JF"),
  statistic = all_continuous() ~ "{median} [{min} - {max}]",
  by="erreur_reco_flacon",
  digits=all_categorical()~ c(0,1)
)%>%
  add_p()
## The following errors were returned during `add_p()`:
## ✖ For variable `Poste` (`erreur_reco_flacon`) and "estimate", "p.value",
##   "conf.low", and "conf.high" statistics: FEXACT erreur 7(location).
##   LDSTP=18600 est trop petit pour ce problème, (pastp=69.6124,
##   ipn_0:=ipoin[itp=555]=2255, stp[ipn_0]=64.1629). Augmentez la taille de
##   l’environnement de travail ou considérez l’utilisation de
##   ‘simulate.p.value=TRUE’.
Characteristic 0
N = 317
1
1
N = 71
1
p-value2
Poste


    1A 18 (5.7%) 8 (11.3%)
    1B 27 (8.5%) 4 (5.6%)
    2A 62 (19.6%) 25 (35.2%)
    2B 75 (23.7%) 13 (18.3%)
    3A 22 (6.9%) 2 (2.8%)
    3B 29 (9.1%) 1 (1.4%)
    4A 43 (13.6%) 9 (12.7%)
    4B 41 (12.9%) 9 (12.7%)
Isolateur

0.056
    1 45 (14.2%) 12 (16.9%)
    2 137 (43.2%) 38 (53.5%)
    3 51 (16.1%) 3 (4.2%)
    4 84 (26.5%) 18 (25.4%)
flacon avec datamatrix 160 (50.5%) 17 (23.9%) <0.001
délai de préparation en min 5.30 [0.99 - 16.32] 5.37 [1.81 - 15.17] 0.9
jour

0.9
    Jeudi 66 (20.8%) 12 (16.9%)
    Lundi 45 (14.2%) 8 (11.3%)
    Mardi 42 (13.2%) 13 (18.3%)
    Mercredi 54 (17.0%) 13 (18.3%)
    Samedi 32 (10.1%) 7 (9.9%)
    Vendredi 78 (24.6%) 18 (25.4%)
weekend ou JF

>0.9
    semaine 285 (89.9%) 64 (90.1%)
    week_end 32 (10.1%) 7 (9.9%)
1 n (%); Median [Min - Max]
2 Pearson’s Chi-squared test; Wilcoxon rank sum test
##tableau recap par présence datamatrix
tbl_summary(
  holoxan, include = c("Poste", "iso", "erreur_reco_flacon", "time_real", "jour", "weekend ou JF"),
  statistic = all_continuous() ~ "{median} [{min} - {max}]",
  by="datamatrix",
  digits=all_categorical()~ c(0,1)
)%>%
  add_p()
Characteristic 0
N = 211
1
1
N = 177
1
p-value2
Poste

0.065
    1A 20 (9.5%) 6 (3.4%)
    1B 23 (10.9%) 8 (4.5%)
    2A 46 (21.8%) 41 (23.2%)
    2B 41 (19.4%) 47 (26.6%)
    3A 13 (6.2%) 11 (6.2%)
    3B 17 (8.1%) 13 (7.3%)
    4A 26 (12.3%) 26 (14.7%)
    4B 25 (11.8%) 25 (14.1%)
Isolateur

0.006
    1 43 (20.4%) 14 (7.9%)
    2 87 (41.2%) 88 (49.7%)
    3 30 (14.2%) 24 (13.6%)
    4 51 (24.2%) 51 (28.8%)
Erreur liée à une reconnaissance de flacon 54 (25.6%) 17 (9.6%) <0.001
délai de préparation en min 5.32 [1.46 - 16.32] 5.27 [0.99 - 15.81] >0.9
jour

0.4
    Jeudi 39 (18.5%) 39 (22.0%)
    Lundi 29 (13.7%) 24 (13.6%)
    Mardi 26 (12.3%) 29 (16.4%)
    Mercredi 40 (19.0%) 27 (15.3%)
    Samedi 26 (12.3%) 13 (7.3%)
    Vendredi 51 (24.2%) 45 (25.4%)
weekend ou JF

0.10
    semaine 185 (87.7%) 164 (92.7%)
    week_end 26 (12.3%) 13 (7.3%)
1 n (%); Median [Min - Max]
2 Pearson’s Chi-squared test; Wilcoxon rank sum test
##Regression logistique univariée regroupée dans un seul tableau
holoxan |>
  tbl_uvregression(
    y = erreur_reco_flacon,
    include = c(datamatrix, iso, Poste),
    method = glm,
    method.args = list(family = binomial),
    pvalue_fun = scales::label_pvalue(accuracy = .001),
    exponentiate = TRUE
  ) |> 
  bold_labels()
Characteristic N OR 95% CI p-value
flacon avec datamatrix 388 0.31 0.17, 0.55 <0.001
Isolateur 388


    1

    2
1.04 0.51, 2.23 0.916
    3
0.22 0.05, 0.75 0.026
    4
0.80 0.36, 1.85 0.599
Poste 388


    1A

    1B
0.33 0.08, 1.22 0.108
    2A
0.91 0.36, 2.45 0.841
    2B
0.39 0.14, 1.11 0.070
    3A
0.20 0.03, 0.94 0.063
    3B
0.08 0.00, 0.47 0.020
    4A
0.47 0.16, 1.44 0.180
    4B
0.49 0.16, 1.51 0.210
Abbreviations: CI = Confidence Interval, OR = Odds Ratio