You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

734 lines
28KB

  1. ```{r init, echo = F, message = F}
  2. library(DT)
  3. library(ggplot2)
  4. library(knitr)
  5. library(tidyr)
  6. library(stringr)
  7. library(dplyr)
  8. opts_chunk$set(echo = F,
  9. message = F,
  10. error = F,
  11. warning = F,
  12. fig.width = 12,
  13. fig.height = 7)
  14. options(DT.options = list(paging = F,
  15. searching = F,
  16. info = ""))
  17. ```
  18. ```{r data}
  19. load("donnees.Rdata")
  20. mois_label <- c("Janvier",
  21. "Février",
  22. "Mars",
  23. "Avril",
  24. "Mai",
  25. "Juin",
  26. "Juillet",
  27. "Août",
  28. "Septembre",
  29. "Octobre",
  30. "Novembre",
  31. "Décembre")
  32. sprintf("%02.f", mois) %>%
  33. {
  34. previous <<- str_c("M", ., "-", annee - 1)
  35. current <<- str_c("M", ., "-", annee)
  36. periode <<- str_c(previous, " et de ", current)
  37. }
  38. ```
  39. # {.tabset}
  40. ## Production
  41. ### <a href="#tab1" data-toggle="collapse" class="panel-heading">Nombre total de RUM et de RSS transmis</a> {.panel .panel-default}
  42. #### {.panel-body .collapse #tab1}
  43. ```{r tab1}
  44. rum %>%
  45. filter(annee_sortie == annee) %>%
  46. tally %>%
  47. bind_rows(rss %>%
  48. filter(annee_sortie == annee) %>%
  49. tally) %>%
  50. datatable(rownames = c("RUM", "RSS"),
  51. colnames = c("Type de résumé", "Nombre produit"))
  52. ```
  53. ### <a href="#tab2a" data-toggle="collapse" class="panel-heading">Nombre de RUM transmis par mois pour les 3 dernières années</a> {.panel .panel-default}
  54. #### {.panel-body .collapse #tab2a}
  55. ```{r tab2a}
  56. rum %>%
  57. count(annee_sortie, mois_sortie) %>%
  58. spread(annee_sortie, n) %>%
  59. bind_rows(filter(., mois_sortie <= mois) %>%
  60. select(-mois_sortie) %>%
  61. summarise_each(funs(sum))) %>%
  62. bind_rows(filter(., mois_sortie <= 12) %>%
  63. select(-mois_sortie) %>%
  64. summarise_each(funs(sum))) %>%
  65. mutate_(.dots = setNames(str_c("(`",annee,"`-`", annee - 2,"`)/`", annee - 2,"`"), str_c(annee, "-", annee - 2))) %>%
  66. mutate_(.dots = setNames(str_c("(`",annee,"`-`", annee - 1,"`)/`", annee - 1,"`"), str_c(annee, "-", annee - 1))) %>%
  67. select(-mois_sortie) %>%
  68. datatable(rownames = c(mois_label, "Total clôture", "Total M12")) %>%
  69. formatPercentage(c(4,5), digits = 2)
  70. ```
  71. ```{r fig2a}
  72. rum %>%
  73. count(annee_sortie, mois_sortie) %>%
  74. ungroup %>%
  75. ggplot +
  76. aes(x = mois_sortie,
  77. y = n,
  78. color = annee_sortie %>% factor,
  79. shape = annee_sortie %>% factor) +
  80. scale_x_discrete(limits = mois_label, expand = c(.05, 0)) +
  81. geom_line() +
  82. geom_point() +
  83. labs(x = NULL,
  84. y = NULL,
  85. title = "RUM") +
  86. theme(axis.text.x = element_text(angle = 45, hjust = 1),
  87. legend.title = element_blank(),
  88. plot.title = element_text(hjust = 0))
  89. ```
  90. ### <a href="#tab2b" data-toggle="collapse" class="panel-heading">Nombre de RSS transmis par mois pour les 3 dernières années</a> {.panel .panel-default}
  91. #### {.panel-body .collapse #tab2b}
  92. ```{r tab2b}
  93. rss %>%
  94. count(annee_sortie, mois_sortie) %>%
  95. spread(annee_sortie, n) %>%
  96. bind_rows(filter(., mois_sortie <= mois) %>%
  97. select(-mois_sortie) %>%
  98. summarise_each(funs(sum))) %>%
  99. bind_rows(filter(., mois_sortie <= 12) %>%
  100. select(-mois_sortie) %>%
  101. summarise_each(funs(sum))) %>%
  102. mutate_(.dots = setNames(str_c("(`",annee,"`-`", annee - 2,"`)/`", annee - 2,"`"), str_c(annee, "-", annee - 2))) %>%
  103. mutate_(.dots = setNames(str_c("(`",annee,"`-`", annee - 1,"`)/`", annee - 1,"`"), str_c(annee, "-", annee - 1))) %>%
  104. select(-mois_sortie) %>%
  105. datatable(rownames = c(mois_label, "Total clôture", "Total M12")) %>%
  106. formatPercentage(c(4,5), digits = 2)
  107. ```
  108. ```{r fig2b}
  109. rss %>%
  110. count(annee_sortie, mois_sortie) %>%
  111. ungroup %>%
  112. ggplot +
  113. aes(x = mois_sortie,
  114. y = n,
  115. color = annee_sortie %>% factor,
  116. shape = annee_sortie %>% factor) +
  117. scale_x_discrete(limits = mois_label, expand = c(.05, 0)) +
  118. geom_line() +
  119. geom_point() +
  120. labs(x = NULL,
  121. y = NULL,
  122. title = "RSS") +
  123. theme(axis.text.x = element_text(angle = 45, hjust = 1),
  124. legend.title = element_blank(),
  125. plot.title = element_text(hjust = 0))
  126. ```
  127. #### <a href="#tab3a" data-toggle="collapse" class="panel-heading">Nombre de RSS de 1 jour et plus transmis par mois pour les 3 dernières années</a> {.panel .panel-default}
  128. ##### {.panel-body .collapse #tab3a}
  129. ```{r tab3a}
  130. rss %>%
  131. filter(duree_rss >= 1) %>%
  132. count(annee_sortie, mois_sortie) %>%
  133. spread(annee_sortie, n) %>%
  134. bind_rows(filter(., mois_sortie <= mois) %>%
  135. select(-mois_sortie) %>%
  136. summarise_each(funs(sum))) %>%
  137. bind_rows(filter(., mois_sortie <= 12) %>%
  138. select(-mois_sortie) %>%
  139. summarise_each(funs(sum))) %>%
  140. mutate_(.dots = setNames(str_c("(`",annee,"`-`", annee - 2,"`)/`", annee - 2,"`"), str_c(annee, "-", annee - 2))) %>%
  141. mutate_(.dots = setNames(str_c("(`",annee,"`-`", annee - 1,"`)/`", annee - 1,"`"), str_c(annee, "-", annee - 1))) %>%
  142. select(-mois_sortie) %>%
  143. datatable(rownames = c(mois_label, "Total clôture", "Total M12")) %>%
  144. formatPercentage(c(4,5), digits = 2)
  145. ```
  146. ```{r fig3a}
  147. rss %>%
  148. filter(duree_rss >= 1) %>%
  149. count(annee_sortie, mois_sortie) %>%
  150. ungroup %>%
  151. ggplot +
  152. aes(x = mois_sortie,
  153. y = n,
  154. color = annee_sortie %>% factor,
  155. shape = annee_sortie %>% factor) +
  156. scale_x_discrete(limits = mois_label, expand = c(.05, 0)) +
  157. geom_line() +
  158. geom_point() +
  159. labs(x = NULL,
  160. y = NULL,
  161. title = "RSS de 1 jour et +") +
  162. theme(axis.text.x = element_text(angle = 45, hjust = 1),
  163. legend.title = element_blank(),
  164. plot.title = element_text(hjust = 0))
  165. ```
  166. #### <a href="#tab3b" data-toggle="collapse" class="panel-heading">Nombre de RSS de 0 jour (hors séances) transmis par mois pour les 3 dernières années</a> {.panel .panel-default}
  167. ##### {.panel-body .collapse #tab3b}
  168. ```{r tab3b}
  169. rss %>%
  170. filter(duree_rss == 0, cmd != 28) %>%
  171. count(annee_sortie, mois_sortie) %>%
  172. spread(annee_sortie, n) %>%
  173. bind_rows(filter(., mois_sortie <= mois) %>%
  174. select(-mois_sortie) %>%
  175. summarise_each(funs(sum))
  176. ) %>%
  177. bind_rows(filter(., mois_sortie <= 12) %>%
  178. select(-mois_sortie) %>%
  179. summarise_each(funs(sum))
  180. ) %>%
  181. mutate_(.dots = setNames(str_c("(`",annee,"`-`", annee - 2,"`)/`", annee - 2,"`"), str_c(annee, "-", annee - 2))) %>%
  182. mutate_(.dots = setNames(str_c("(`",annee,"`-`", annee - 1,"`)/`", annee - 1,"`"), str_c(annee, "-", annee - 1))) %>%
  183. select(-mois_sortie) %>%
  184. datatable(rownames = c(mois_label, "Total clôture", "Total M12")) %>%
  185. formatPercentage(c(4,5), digits = 2)
  186. ```
  187. ```{r fig3b}
  188. rss %>%
  189. filter(duree_rss == 0, cmd != 28) %>%
  190. count(annee_sortie, mois_sortie) %>%
  191. ungroup %>%
  192. ggplot +
  193. aes(x = mois_sortie,
  194. y = n,
  195. color = annee_sortie %>% factor,
  196. shape = annee_sortie %>% factor) +
  197. scale_x_discrete(limits = mois_label, expand = c(.05, 0)) +
  198. geom_line() +
  199. geom_point() +
  200. labs(x = NULL,
  201. y = NULL,
  202. title = "RSS de 0 jour, hors séances") +
  203. theme(axis.text.x = element_text(angle = 45, hjust = 1),
  204. legend.title = element_blank(),
  205. plot.title = element_text(hjust = 0))
  206. ```
  207. #### <a href="#tab3c" data-toggle="collapse" class="panel-heading">Nombre de RSS de séance transmis par mois pour les 3 dernières années</a> {.panel .panel-default}
  208. ##### {.panel-body .collapse #tab3c}
  209. ```{r tab3c}
  210. rss %>%
  211. filter(duree_rss == 0, cmd == 28) %>%
  212. count(annee_sortie, mois_sortie) %>%
  213. spread(annee_sortie, n) %>%
  214. bind_rows(filter(., mois_sortie <= mois) %>%
  215. select(-mois_sortie) %>%
  216. summarise_each(funs(sum))) %>%
  217. bind_rows(filter(., mois_sortie <= 12) %>%
  218. select(-mois_sortie) %>%
  219. summarise_each(funs(sum))) %>%
  220. mutate_(.dots = setNames(str_c("(`",annee,"`-`", annee - 2,"`)/`", annee - 2,"`"), str_c(annee, "-", annee - 2))) %>%
  221. mutate_(.dots = setNames(str_c("(`",annee,"`-`", annee - 1,"`)/`", annee - 1,"`"), str_c(annee, "-", annee - 1))) %>%
  222. select(-mois_sortie) %>%
  223. datatable(rownames = c(mois_label, "Total clôture", "Total M12")) %>%
  224. formatPercentage(c(4,5), digits = 2)
  225. ```
  226. ```{r fig3c}
  227. rss %>%
  228. filter(duree_rss == 0, cmd == 28) %>%
  229. count(annee_sortie, mois_sortie) %>%
  230. ungroup %>%
  231. ggplot +
  232. aes(x = mois_sortie,
  233. y = n,
  234. color = annee_sortie %>% factor,
  235. shape = annee_sortie %>% factor) +
  236. scale_x_discrete(limits = mois_label, expand = c(.05, 0)) +
  237. geom_line() +
  238. geom_point() +
  239. labs(x = NULL,
  240. y = NULL,
  241. title = "RSS de séances") +
  242. theme(axis.text.x = element_text(angle = 45, hjust = 1),
  243. legend.title = element_blank(),
  244. plot.title = element_text(hjust = 0))
  245. ```
  246. ### <a href="#tab4" data-toggle="collapse" class="panel-heading">Nombre de RUM transmis par pôle pour les 3 dernières années</a> {.panel .panel-default}
  247. ##### {.panel-body .collapse #tab4}
  248. ```{r tab4}
  249. rum %>%
  250. filter(mois_sortie <= mois) %>%
  251. filter(! is.na(pole_libelle)) %>%
  252. count(pole_libelle, annee_sortie) %>%
  253. ungroup %>%
  254. spread(annee_sortie, n) %>%
  255. bind_rows(select(., -pole_libelle) %>%
  256. summarise_each(funs(sum(., na.rm = T))) %>%
  257. mutate(pole_libelle = "TOTAL")) %>%
  258. mutate_(.dots = setNames(str_c("(`",annee,"`-`", annee - 2,"`)/`", annee - 2,"`"), str_c(annee, "-", annee - 2))) %>%
  259. mutate_(.dots = setNames(str_c("(`",annee,"`-`", annee - 1,"`)/`", annee - 1,"`"), str_c(annee, "-", annee - 1))) %>%
  260. datatable(colnames = c("Pôle" = 1), rownames = F) %>%
  261. formatPercentage(c(5,6), digits = 2)
  262. ```
  263. ```{r fig4}
  264. rum %>%
  265. filter(mois_sortie <= mois) %>%
  266. filter(! is.na(pole_libelle)) %>%
  267. count(pole_libelle, annee_sortie) %>%
  268. ungroup %>%
  269. ggplot +
  270. aes(x = annee_sortie,
  271. y = n,
  272. color = pole_libelle) +
  273. scale_x_continuous(breaks = (annee - 2):annee) +
  274. facet_wrap(~ pole_libelle, scales = "free") +
  275. geom_point() +
  276. geom_line() +
  277. labs(x = NULL,
  278. y = NULL,
  279. title = "RUM par pôle") +
  280. theme(legend.position = "none",
  281. plot.title = element_text(hjust = 0))
  282. ```
  283. ## Exhaustivité
  284. ### Exhaustivité des RSS en fonction du mois et de l'année de clôture
  285. #### <a href="#tab5" data-toggle="collapse" class="panel-heading">Nombre de RSS produits et transmis, et taux d'exhaustivité : historique des clôtures de l'année</a> {.panel .panel-default}
  286. ##### {.panel-body .collapse #tab5}
  287. ```{r tab5}
  288. exhau %>%
  289. mutate(rss_prod = rss + manq,
  290. exh = rss / rss_prod) %>%
  291. select(rss_prod, rss, exh) %>%
  292. datatable(colnames = c("Clôture", "Total RSS produits", "Nombre de RSS transmis", "Taux d'exhaustivité RSS (%)"),
  293. rownames = mois_label) %>%
  294. formatPercentage(3, digits = 2)
  295. ```
  296. #### <a href="#fig5a" data-toggle="collapse" class="panel-heading">Taux d'exhaustivité selon le mois clôturé de l'année courante</a> {.panel .panel-default}
  297. ##### {.panel-body .collapse #fig5a}
  298. ```{r fig5a}
  299. exhau %>%
  300. mutate(rss_prod = rss + manq,
  301. exh = 100 * rss / rss_prod) %>%
  302. ggplot +
  303. aes(x = mois,
  304. y = exh) +
  305. geom_point() +
  306. geom_line() +
  307. labs(x = NULL,
  308. y = NULL,
  309. title = NULL) +
  310. scale_x_discrete(limits = mois_label, expand = c(.05, 0)) +
  311. theme(axis.text.x = element_text(angle = 45, hjust = 1))
  312. ```
  313. ### Exhaustivité mensuelle de la clôture
  314. *L'exhaustivité est calculée à partir de la base GAM*
  315. #### <a href="#fig7" data-toggle="collapse" class="panel-heading">Taux d'exhaustivité des RSS pour la clôture actuelle selon le mois de sortie du RSS</a> {.panel .panel-default}
  316. ##### {.panel-body .collapse #fig7}
  317. ```{r fig7}
  318. rss %>%
  319. filter(annee_sortie == annee) %>%
  320. count(mois_sortie) %>%
  321. full_join(gam %>%
  322. count(mois_sortie),
  323. by = "mois_sortie") %>%
  324. mutate(n = 100 * (n.x - n.y) / n.x,
  325. n = ifelse(is.na(n), 100, n)) %>%
  326. ggplot +
  327. aes(x = mois_sortie,
  328. y = n) +
  329. scale_x_discrete(limits = mois_label, expand = c(.05, 0)) +
  330. geom_line() +
  331. geom_point() +
  332. labs(x = NULL,
  333. y = NULL,
  334. title = NULL) +
  335. theme(axis.text.x = element_text(angle = 45, hjust = 1),
  336. legend.title = element_blank(),
  337. plot.title = element_text(hjust = 0))
  338. ```
  339. #### <a href="#fig8" data-toggle="collapse" class="panel-heading">Nombre de RSS manquants pour la clôture actuelle selon le mois de sortie du RSS</a> {.panel .panel-default}
  340. ##### {.panel-body .collapse #fig8}
  341. ```{r fig8}
  342. gam %>%
  343. count(mois_sortie) %>%
  344. full_join(data.frame(mois_sortie = setdiff(1:mois, .$mois_sortie), n = rep(0, length(setdiff(1:mois, .$mois_sortie))))) %>%
  345. ggplot +
  346. aes(x = mois_sortie,
  347. y = n) +
  348. scale_x_discrete(limits = mois_label, expand = c(.05, 0)) +
  349. geom_line() +
  350. geom_point() +
  351. labs(x = NULL,
  352. y = NULL,
  353. title = NULL) +
  354. theme(axis.text.x = element_text(angle = 45, hjust = 1),
  355. legend.title = element_blank(),
  356. plot.title = element_text(hjust = 0))
  357. ```
  358. ### <a href="#tab9" data-toggle="collapse" class="panel-heading">Exhaustivité par pôle et par service</a> {.panel .panel-default}
  359. #### {.panel-body .collapse #tab9}
  360. ```{r tab9}
  361. #rss %>%
  362. # filter(annee_sortie == annee) %>%
  363. # count(pole_libelle, service_libelle) %>%
  364. # bind_rows(rss %>%
  365. # filter(annee_sortie == annee) %>%
  366. # count(pole_libelle)) %>%
  367. # full_join(gam %>%
  368. # count(pole_libelle, service_libelle) %>%
  369. # bind_rows(gam %>%
  370. # count(pole_libelle)),
  371. # by = c("pole_libelle", "service_libelle")) %>%
  372. # mutate(n.y = ifelse(is.na(n.y), 0, n.y),
  373. # n.x = n.x + n.y,
  374. # exh_service = (n.x - n.y) / n.x,
  375. # pole_libelle = pole_libelle %>% factor) %>%
  376. # arrange(pole_libelle, service_libelle) %>%
  377. # mutate(service_libelle = ifelse(is.na(service_libelle), "TOTAL", service_libelle)) %>%
  378. #
  379. # datatable(colnames = c("Pôle", "Service de responsabilité", "RSS produits", "RSS manquants", "Exhaustivité"),
  380. # rownames = F) %>%
  381. # formatPercentage(5, digits = 2)
  382. exhau_pims %>%
  383. group_by(Pole, Service) %>%
  384. summarise(Prod = n()) %>%
  385. full_join(
  386. exhau_pims %>%
  387. filter(DP == "") %>%
  388. group_by(Pole, Service) %>%
  389. summarise(Manquants = n())
  390. ) %>%
  391. full_join(
  392. exhau_pims %>%
  393. filter(Erreur == 4) %>%
  394. group_by(Pole, Service) %>%
  395. summarise(Rumrss = n())
  396. ) %>%
  397. bind_rows(
  398. exhau_pims %>%
  399. group_by(Pole) %>%
  400. summarise(Prod = n()) %>%
  401. full_join(
  402. exhau_pims %>%
  403. filter(DP == "") %>%
  404. group_by(Pole) %>%
  405. summarise(Manquants = n())
  406. ) %>%
  407. full_join(
  408. exhau_pims %>%
  409. filter(Erreur == 4) %>%
  410. group_by(Pole) %>%
  411. summarise(Rumrss = n())
  412. )
  413. ) %>%
  414. bind_rows(
  415. exhau_pims %>%
  416. summarise(Prod = n()) %>%
  417. bind_cols(
  418. exhau_pims %>%
  419. filter(DP == "") %>%
  420. summarise(Manquants = n())
  421. ) %>%
  422. bind_cols(
  423. exhau_pims %>%
  424. filter(Erreur == 4) %>%
  425. summarise(Rumrss = n())
  426. )
  427. ) %>%
  428. arrange(Pole, Service) %>%
  429. select(Pole, Service, Manquants, Rumrss, Prod) %>%
  430. mutate(Service = ifelse(is.na(Service), "TOTAL", Service),
  431. Exh_rum = (Prod - Manquants) / Prod,
  432. Exh_rumrss = (Prod - Rumrss) / Prod,
  433. Exh_rum = ifelse(is.na(Exh_rum), 1, Exh_rum),
  434. Exh_rumrss = ifelse(is.na(Exh_rumrss), 1, Exh_rumrss)) %>%
  435. datatable(colnames = c("Pôle", "Service", "RUM manquants", "RUM dans RSS manquant", "Production RUM", "Exhaustivité RUM", "Exhaustivité RUM-RSS"),
  436. rownames = F) %>%
  437. formatPercentage(c(6,7), digits = 2)
  438. ```
  439. ## Valorisation
  440. ### <a href="#tab10" data-toggle="collapse" class="panel-heading">Nombre et valorisation des RSA transmis, traités et valorisés</a> {.panel .panel-default}
  441. #### {.panel-body .collapse #tab10}
  442. ```{r tab10}
  443. Ovalide$SVA %>%
  444. full_join(OvalideP$SVA, by = "A") %>%
  445. mutate(D = C.x - C.y,
  446. E = (C.x - C.y) / C.y) %>%
  447. datatable(rownames = F,
  448. escape = F,
  449. container = htmltools::withTags(table(class = 'display',
  450. thead(tr(th(rowspan = 2, "RSA"),
  451. th(colspan = 2, current),
  452. th(colspan = 2, previous),
  453. th(colspan = 2, "Évolution")),
  454. tr(th("Effectif"),
  455. th("Montant BR"),
  456. th("Effectif"),
  457. th("Montant BR"),
  458. th("€"),
  459. th("%"))
  460. )
  461. ))) %>%
  462. formatCurrency(c(3,5,6), currency = "", interval = 3, mark = "&nbsp;", digits = 2, dec.mark = ",") %>%
  463. formatPercentage(7, digits = 2)
  464. ```
  465. *Données issues des tableaux OVALIDE [1.V.1.SV] A de `r periode`*
  466. ### <a href="#tab11" data-toggle="collapse" class="panel-heading">Valorisation des RSA non pris en charge par l'Assurance Maladie</a> {.panel .panel-default}
  467. #### {.panel-body .collapse #tab11}
  468. ```{r tab11}
  469. Ovalide$VSS %>% select(1:3) %>%
  470. full_join(OvalideP$VSS %>% select(1:3), by = "A") %>%
  471. mutate(D = C.x - C.y,
  472. E = (C.x - C.y) / C.y) %>%
  473. datatable(rownames = F,
  474. container = htmltools::withTags(table(class = 'display',
  475. thead(tr(th(rowspan = 2, "Composante"),
  476. th(colspan = 2, current),
  477. th(colspan = 2, previous),
  478. th(colspan = 2, "Évolution")),
  479. tr(th("Effectif"),
  480. th("Montant BR"),
  481. th("Effectif"),
  482. th("Montant BR"),
  483. th("€"),
  484. th("%"))
  485. )
  486. )
  487. )) %>%
  488. formatCurrency(c(3,5,6), currency = "", interval = 3, mark = "&nbsp;", digits = 2, dec.mark = ",") %>%
  489. formatPercentage(7, digits = 2)
  490. ```
  491. *Données issues des tableaux [1.V.1.VSS] A de `r periode`*
  492. ### <a href="#tab12" data-toggle="collapse" class="panel-heading">Taux de remboursement des RSA pris en charge par l'Assurance Maladie</a> {.panel .panel-default}
  493. #### {.panel-body .collapse #tab12}
  494. ```{r tab12}
  495. Ovalide$TXR %>%
  496. full_join(OvalideP$TXR, by = c("A", "B")) %>%
  497. datatable(rownames = F,
  498. container = htmltools::withTags(table(class = 'display',
  499. thead(tr(th(rowspan = 2, "Taux de remboursement"),
  500. th(rowspan = 2, "Type"),
  501. th(colspan = 2, current),
  502. th(colspan = 2, previous)),
  503. tr(th("Effectif"),
  504. th("%"),
  505. th("Effectif"),
  506. th("%"))
  507. )
  508. )
  509. )) %>%
  510. formatCurrency(c(4, 6), digits = 2, currency = "", dec.mark = ",")
  511. ```
  512. *Données issues des tableaux OVALIDE [1.V.1.TXR] C de `r periode`*
  513. _\* Séjours de NN, radiothérape ou PO_
  514. ### <a href="#tab13" data-toggle="collapse" class="panel-heading">Valorisation des RSA pris en charge par l'Assurance Maladie</a> {.panel .panel-default}
  515. #### {.panel-body .collapse #tab13}
  516. ```{r tab13}
  517. Ovalide$RAV[-(1:2), c(1,4,6)] %>%
  518. full_join(OvalideP$RAV[-(1:2), c(1,4,6)], by = "A") %>%
  519. mutate(D.z = (D.x - D.y) / D.y,
  520. F.z = (F.x - F.y) / F.y) %>%
  521. .[names(.) %>% sort] %>%
  522. datatable(rownames = F,
  523. escape = F,
  524. container = htmltools::withTags(table(class = 'display',
  525. thead(tr(th(rowspan = 2, "Composante"),
  526. th(colspan = 2, "Montant BR¹"),
  527. th(rowspan = 2, "Evol. montant BR¹"),
  528. th(colspan = 2, "Montant remboursé AM²"),
  529. th(rowspan = 2, "Evol. montant remboursé AM²")),
  530. tr(rep(c(current, previous), 2) %>%
  531. lapply(th))
  532. )
  533. )
  534. )) %>%
  535. formatPercentage(c(4, 7), digits = 2) %>%
  536. formatCurrency(c(2, 3, 5, 6), currency = "", interval = 3, mark = "&nbsp;", digits = 2, dec.mark = ",")
  537. ```
  538. *Données issues des tableaux OVALIDE [1.V.1.RAV] C de `r periode`*
  539. <sup>1</sup> Montant Brut
  540. <sup>2</sup> Montant Remboursé par l'Assurance Maladie
  541. ### <a href="#tab14" data-toggle="collapse" class="panel-heading">Valorisation des IVG, ATU, SE, actes et consultations</a> {.panel .panel-default}
  542. #### {.panel-body .collapse #tab14}
  543. ```{r tab14}
  544. data_frame(A = c(Ovalide$VATU[is.na(Ovalide$VATU$A), 3:5] %>% unlist,
  545. Ovalide$VSE[Ovalide$VSE$A == "", 3:5] %>% unlist,
  546. Ovalide$VCCAM[Ovalide$VCCAM$A == "", 2:4] %>% unlist,
  547. Ovalide$VNGAP[Ovalide$VNGAP$A == "", 3:5] %>% unlist),
  548. B = c(OvalideP$VATU[is.na(OvalideP$VATU$A), 3:5] %>% unlist,
  549. OvalideP$VSE[OvalideP$VSE$A == "", 3:5] %>% unlist,
  550. OvalideP$VCCAM[OvalideP$VCCAM$A == "", 2:4] %>% unlist,
  551. OvalideP$VNGAP[OvalideP$VNGAP$A == "", 3:5] %>% unlist)) %>%
  552. mutate(C = A - B,
  553. D = (A - B) / B) %>%
  554. datatable(rownames = str_c(rep(c("Nombre de prestations",
  555. "Valorisation brute",
  556. "Valorisation AM"),4),
  557. rep(c("ATU<sup>1</sup>",
  558. "SE<sup>2</sup>",
  559. "CCAM<sup>3</sup>",
  560. "NGAP<sup>4</sup>"), each = 3), sep = " "),
  561. colnames = c(current, previous, "Évolution (n ou &euro;)", "Évolution"),
  562. escape = F) %>%
  563. formatCurrency(1:3, currency = "", interval = 3, mark = "&nbsp;", digits = 2, dec.mark = ",") %>%
  564. formatPercentage(4, digits = 2)
  565. ```
  566. <sup>1</sup>*Données issues des tableaux OVALIDE [2.V.VATU] de `r periode`*
  567. <sup>2</sup>*Données issues des tableaux OVALIDE [2.V.VSE] de `r periode`*
  568. <sup>3</sup>*Données issues des tableaux OVALIDE [2.V.VCCAM] de `r periode`*
  569. <sup>4</sup>*Données issues des tableaux OVALIDE [2.V.VNGAP] de `r periode`*
  570. ### <a href="#tab15" data-toggle="collapse" class="panel-heading">Nombre de Suppléments valorisés, Performance et Valorisation des séjours non envoyés</a> {.panel .panel-default}
  571. #### {.panel-body .collapse #tab15}
  572. ```{r tab15}
  573. Ovalide$UMAS %>%
  574. full_join(OvalideP$UMAS, by = "A") %>%
  575. mutate(C = B.x - B.y,
  576. D = (B.x - B.y) / B.y) %>%
  577. datatable(rownames = F,
  578. colnames = c(current, previous, "Évolution (n)", "Évolution")) %>%
  579. formatCurrency(2:4, currency = "", interval = 3, mark = "&nbsp;", digits = 0) %>%
  580. formatPercentage(5, digits = 2)
  581. ```
  582. *Données issues des tableaux OVALIDE [1.V.1.UMAS] E de `r periode`*
  583. ### <a href="#tab16" data-toggle="collapse" class="panel-heading">Prix Moyen du Cas Traité\* de l'année en cours et de l'année précédente</a> {.panel .panel-default}
  584. #### {.panel-body .collapse #tab16}
  585. ```{r tab16}
  586. Ovalide$SVB %>%
  587. mutate(B = C/B) %>%
  588. select(-C) %>%
  589. full_join(OvalideP$SVB %>%
  590. mutate(B = C/B) %>%
  591. select(-C),
  592. by = "A") %>%
  593. mutate(C = B.x - B.y,
  594. D = (B.x - B.y) / (B.y)) %>%
  595. datatable(escape = F,
  596. rownames = F,
  597. colnames = c("Type de séjours", current, previous, "Évolution (&euro;)", "Évolution")) %>%
  598. formatPercentage(5, digits = 2) %>%
  599. formatCurrency(2:4, currency = "", interval = 3, mark = "&nbsp;", digits = 2, dec.mark = ",")
  600. ```
  601. *Données issues des tableaux OVALIDE [1.V.1.SV] B de `r periode`*
  602. _\* Prix Moyen du Cas Traité = Total valorisation / nombre de RSA valorisés_
  603. ### <a href="#tab17" data-toggle="collapse" class="panel-heading">Estimation de la valorisation des séjours non transmis de l'année en cours</a> {.panel .panel-default}
  604. #### {.panel-body .collapse #tab17}
  605. ```{r tab17}
  606. gam %>% filter(date_sortie - date_entree == 0) %>% nrow -> zero
  607. gam %>% filter(date_sortie - date_entree > 0) %>% nrow -> plus
  608. data.frame(zero = c(zero, Ovalide$SVB$C[3]/Ovalide$SVB$B[3], zero * Ovalide$SVB$C[3]/Ovalide$SVB$B[3]),
  609. plus = c(plus, Ovalide$SVB$C[2]/Ovalide$SVB$B[2], plus * Ovalide$SVB$C[2]/Ovalide$SVB$B[2])) %>%
  610. datatable(escape = F,
  611. rownames = c("Nombre", "PMCT*", "Valorisation"),
  612. colnames = c("Indicateur", "0 jour", "Plus de 0 jour")) %>%
  613. formatCurrency(1:2, currency = "", interval = 3, mark = "&nbsp;", digits = 2, dec.mark = ",")
  614. rm(plus, zero)
  615. ```
  616. *Données issues de la requête BO «`r current`» exécutée le `r date` et des tableaux OVALIDE [1.V.1.SV] B de `r periode`*
  617. _\* Prix Moyen du Cas Traité = Total valorisation / nombre de RSA valorisés_
  618. ### <a href="#tab18" data-toggle="collapse" class="panel-heading">Indice de performance de la durée moyenne de séjours (IP-DMS) de l'année en cours et de l'année précédente</a> {.panel .panel-default}
  619. #### {.panel-body .collapse #tab18}
  620. ```{r tab18}
  621. if (nrow(Ovalide$EDMS) == 6)
  622. {
  623. IP_current <- (Ovalide$EDMS[[1, 2]] + Ovalide$EDMS[[4, 2]]) / (Ovalide$EDMS[[2, 2]] + Ovalide$EDMS[[5, 2]])
  624. IP_previous <- (OvalideP$EDMS[[1, 2]] + OvalideP$EDMS[[4, 2]]) / (OvalideP$EDMS[[2, 2]] + OvalideP$EDMS[[5, 2]])
  625. } else {
  626. IP_current <- Ovalide$EDMS[[1, 2]] / Ovalide$EDMS[[2, 2]]
  627. IP_previous <- OvalideP$EDMS[[1, 2]] / OvalideP$EDMS[[2, 2]]
  628. }
  629. data_frame(IP_current, IP_previous) %>%
  630. datatable(rownames = "Indice de performance",
  631. colnames = c(current, previous)) %>%
  632. formatCurrency(1:2, currency = "", digits = 3, dec.mark = ",")
  633. rm(IP_previous, IP_current)
  634. ```
  635. *Données issues des tableaux OVALIDE [1.D2.EDMS] de `r periode`*
  636. _\* Nb de journées / Nb de journées standardisées sur la DMS théorique_
  637. <!---
  638. ## Généralités
  639. ### <a href="#outils" data-toggle="collapse" class="panel-heading">Outils informatiques</a> {.panel .panel-default}
  640. #### {.panel-body .collapse #outils}
  641. ```{r outils}
  642. data_frame(Logiciels = c("Fichsup",
  643. "Genrsa",
  644. "Magic",
  645. "Preface"),
  646. `N° de version` = c("9.4.1",
  647. "11.6.6.2",
  648. "4.5.0.0",
  649. "2.2.3.0")) %>%
  650. datatable(rownames = F)
  651. ```
  652. ### <a href="#cal" data-toggle="collapse" class="panel-heading">Calendrier</a> {.panel .panel-default}
  653. #### {.panel-body .collapse #cal}
  654. ```{r calendrier}
  655. data_frame(Dates = rep(date, 5),
  656. `Évènement` = c("Clôture et arrêté des données Webpims, Extraction Webpims",
  657. "Création des fichiers, vérifications et corrections",
  658. "Traitements réglementaires, vérifications et corrections",
  659. "Retour traitement e-PMSI",
  660. "Validation de l'envoi")) %>%
  661. datatable(rownames = F)
  662. ```
  663. --->