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.

677 lines
26KB

  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(labels = mois_label) +
  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(labels = mois_label) +
  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(labels = mois_label) +
  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(labels = mois_label) +
  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(labels = mois_label) +
  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(labels = mois_label) +
  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(labels = mois_label) +
  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(labels = mois_label) +
  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. datatable(colnames = c("Pôle", "Service de responsabilité", "RSS produits", "RSS manquants", "Exhaustivité"),
  379. rownames = F) %>%
  380. formatPercentage(5, digits = 2)
  381. ```
  382. ## Valorisation
  383. ### <a href="#tab10" data-toggle="collapse" class="panel-heading">Nombre et valorisation des RSA transmis, traités et valorisés</a> {.panel .panel-default}
  384. #### {.panel-body .collapse #tab10}
  385. ```{r tab10}
  386. Ovalide$SVA %>%
  387. full_join(OvalideP$SVA, by = "A") %>%
  388. mutate(D = C.x - C.y,
  389. E = (C.x - C.y) / C.y) %>%
  390. datatable(rownames = F,
  391. escape = F,
  392. container = htmltools::withTags(table(class = 'display',
  393. thead(tr(th(rowspan = 2, "RSA"),
  394. th(colspan = 2, current),
  395. th(colspan = 2, previous),
  396. th(colspan = 2, "Évolution")),
  397. tr(th("Effectif"),
  398. th("Montant BR"),
  399. th("Effectif"),
  400. th("Montant BR"),
  401. th("€"),
  402. th("%"))
  403. )
  404. ))) %>%
  405. formatCurrency(c(3,5,6), currency = "", interval = 3, mark = "&nbsp;", digits = 2, dec.mark = ",") %>%
  406. formatPercentage(7, digits = 2)
  407. ```
  408. *Données issues des tableaux OVALIDE [1.V.1.SV] A de `r periode`*
  409. ### <a href="#tab11" data-toggle="collapse" class="panel-heading">Valorisation des RSA non pris en charge par l'Assurance Maladie</a> {.panel .panel-default}
  410. #### {.panel-body .collapse #tab11}
  411. ```{r tab11}
  412. Ovalide$VSS %>% select(1:3) %>%
  413. full_join(OvalideP$VSS %>% select(1:3), by = "A") %>%
  414. mutate(D = C.x - C.y,
  415. E = (C.x - C.y) / C.y) %>%
  416. datatable(rownames = F,
  417. container = htmltools::withTags(table(class = 'display',
  418. thead(tr(th(rowspan = 2, "Composante"),
  419. th(colspan = 2, current),
  420. th(colspan = 2, previous),
  421. th(colspan = 2, "Évolution")),
  422. tr(th("Effectif"),
  423. th("Montant BR"),
  424. th("Effectif"),
  425. th("Montant BR"),
  426. th("€"),
  427. th("%"))
  428. )
  429. )
  430. )) %>%
  431. formatCurrency(c(3,5,6), currency = "", interval = 3, mark = "&nbsp;", digits = 2, dec.mark = ",") %>%
  432. formatPercentage(7, digits = 2)
  433. ```
  434. *Données issues des tableaux [1.V.1.VSS] A de `r periode`*
  435. ### <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}
  436. #### {.panel-body .collapse #tab12}
  437. ```{r tab12}
  438. Ovalide$TXR %>%
  439. full_join(OvalideP$TXR, by = c("A", "B")) %>%
  440. datatable(rownames = F,
  441. container = htmltools::withTags(table(class = 'display',
  442. thead(tr(th(rowspan = 2, "Taux de remboursement"),
  443. th(rowspan = 2, "Type"),
  444. th(colspan = 2, current),
  445. th(colspan = 2, previous)),
  446. tr(th("Effectif"),
  447. th("%"),
  448. th("Effectif"),
  449. th("%"))
  450. )
  451. )
  452. )) %>%
  453. formatCurrency(c(4, 6), digits = 2, currency = "", dec.mark = ",")
  454. ```
  455. *Données issues des tableaux OVALIDE [1.V.1.TXR] C de `r periode`*
  456. _\* Séjours de NN, radiothérape ou PO_
  457. ### <a href="#tab13" data-toggle="collapse" class="panel-heading">Valorisation des RSA pris en charge par l'Assurance Maladie</a> {.panel .panel-default}
  458. #### {.panel-body .collapse #tab13}
  459. ```{r tab13}
  460. Ovalide$RAV[-(1:2), c(1,4,6)] %>%
  461. full_join(OvalideP$RAV[-(1:2), c(1,4,6)], by = "A") %>%
  462. mutate(D.z = (D.x - D.y) / D.y,
  463. F.z = (F.x - F.y) / F.y) %>%
  464. .[names(.) %>% sort] %>%
  465. datatable(rownames = F,
  466. escape = F,
  467. container = htmltools::withTags(table(class = 'display',
  468. thead(tr(th(rowspan = 2, "Composante"),
  469. th(colspan = 2, "Montant BR¹"),
  470. th(rowspan = 2, "Evol. montant BR¹"),
  471. th(colspan = 2, "Montant remboursé AM²"),
  472. th(rowspan = 2, "Evol. montant remboursé AM²")),
  473. tr(rep(c(current, previous), 2) %>%
  474. lapply(th))
  475. )
  476. )
  477. )) %>%
  478. formatPercentage(c(4, 7), digits = 2) %>%
  479. formatCurrency(c(2, 3, 5, 6), currency = "", interval = 3, mark = "&nbsp;", digits = 2, dec.mark = ",")
  480. ```
  481. *Données issues des tableaux OVALIDE [1.V.1.RAV] C de `r periode`*
  482. <sup>1</sup> Montant Brut
  483. <sup>2</sup> Montant Remboursé par l'Assurance Maladie
  484. ### <a href="#tab14" data-toggle="collapse" class="panel-heading">Valorisation des IVG, ATU, SE, actes et consultations</a> {.panel .panel-default}
  485. #### {.panel-body .collapse #tab14}
  486. ```{r tab14}
  487. data_frame(A = c(Ovalide$VATU[is.na(Ovalide$VATU$A), 3:5] %>% unlist,
  488. Ovalide$VSE[Ovalide$VSE$A == "", 3:5] %>% unlist,
  489. Ovalide$VCCAM[Ovalide$VCCAM$A == "", 2:4] %>% unlist,
  490. Ovalide$VNGAP[Ovalide$VNGAP$A == "", 3:5] %>% unlist),
  491. B = c(OvalideP$VATU[is.na(OvalideP$VATU$A), 3:5] %>% unlist,
  492. OvalideP$VSE[OvalideP$VSE$A == "", 3:5] %>% unlist,
  493. OvalideP$VCCAM[OvalideP$VCCAM$A == "", 2:4] %>% unlist,
  494. OvalideP$VNGAP[OvalideP$VNGAP$A == "", 3:5] %>% unlist)) %>%
  495. mutate(C = A - B,
  496. D = (A - B) / B) %>%
  497. datatable(rownames = str_c(rep(c("Nombre de prestations",
  498. "Valorisation brute",
  499. "Valorisation AM"),4),
  500. rep(c("ATU<sup>1</sup>",
  501. "SE<sup>2</sup>",
  502. "CCAM<sup>3</sup>",
  503. "NGAP<sup>4</sup>"), each = 3), sep = " "),
  504. colnames = c(current, previous, "Évolution (n ou &euro;)", "Évolution"),
  505. escape = F) %>%
  506. formatCurrency(1:3, currency = "", interval = 3, mark = "&nbsp;", digits = 2, dec.mark = ",") %>%
  507. formatPercentage(4, digits = 2)
  508. ```
  509. <sup>1</sup>*Données issues des tableaux OVALIDE [2.V.VATU] de `r periode`*
  510. <sup>2</sup>*Données issues des tableaux OVALIDE [2.V.VSE] de `r periode`*
  511. <sup>3</sup>*Données issues des tableaux OVALIDE [2.V.VCCAM] de `r periode`*
  512. <sup>4</sup>*Données issues des tableaux OVALIDE [2.V.VNGAP] de `r periode`*
  513. ### <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}
  514. #### {.panel-body .collapse #tab15}
  515. ```{r tab15}
  516. Ovalide$UMAS %>%
  517. full_join(OvalideP$UMAS, by = "A") %>%
  518. mutate(C = B.x - B.y,
  519. D = (B.x - B.y) / B.y) %>%
  520. datatable(rownames = F,
  521. colnames = c(current, previous, "Évolution (n)", "Évolution")) %>%
  522. formatCurrency(2:4, currency = "", interval = 3, mark = "&nbsp;", digits = 0) %>%
  523. formatPercentage(5, digits = 2)
  524. ```
  525. *Données issues des tableaux OVALIDE [1.V.1.UMAS] E de `r periode`*
  526. ### <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}
  527. #### {.panel-body .collapse #tab16}
  528. ```{r tab16}
  529. Ovalide$SVB %>%
  530. mutate(B = C/B) %>%
  531. select(-C) %>%
  532. full_join(OvalideP$SVB %>%
  533. mutate(B = C/B) %>%
  534. select(-C),
  535. by = "A") %>%
  536. mutate(C = B.x - B.y,
  537. D = (B.x - B.y) / (B.y)) %>%
  538. datatable(escape = F,
  539. rownames = F,
  540. colnames = c("Type de séjours", current, previous, "Évolution (&euro;)", "Évolution")) %>%
  541. formatPercentage(5, digits = 2) %>%
  542. formatCurrency(2:4, currency = "", interval = 3, mark = "&nbsp;", digits = 2, dec.mark = ",")
  543. ```
  544. *Données issues des tableaux OVALIDE [1.V.1.SV] B de `r periode`*
  545. _\* Prix Moyen du Cas Traité = Total valorisation / nombre de RSA valorisés_
  546. ### <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}
  547. #### {.panel-body .collapse #tab17}
  548. ```{r tab17}
  549. gam %>% filter(date_sortie - date_entree == 0) %>% nrow -> zero
  550. gam %>% filter(date_sortie - date_entree > 0) %>% nrow -> plus
  551. data.frame(zero = c(zero, Ovalide$SVB$C[3]/Ovalide$SVB$B[3], zero * Ovalide$SVB$C[3]/Ovalide$SVB$B[3]),
  552. plus = c(plus, Ovalide$SVB$C[2]/Ovalide$SVB$B[2], plus * Ovalide$SVB$C[2]/Ovalide$SVB$B[2])) %>%
  553. datatable(escape = F,
  554. rownames = c("Nombre", "PMCT*", "Valorisation"),
  555. colnames = c("Indicateur", "0 jour", "Plus de 0 jour")) %>%
  556. formatCurrency(1:2, currency = "", interval = 3, mark = "&nbsp;", digits = 2, dec.mark = ",")
  557. rm(plus, zero)
  558. ```
  559. *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`*
  560. _\* Prix Moyen du Cas Traité = Total valorisation / nombre de RSA valorisés_
  561. ### <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}
  562. #### {.panel-body .collapse #tab18}
  563. ```{r tab18}
  564. if (nrow(Ovalide$EDMS) == 6)
  565. {
  566. IP_current <- (Ovalide$EDMS[[1, 2]] + Ovalide$EDMS[[4, 2]]) / (Ovalide$EDMS[[2, 2]] + Ovalide$EDMS[[5, 2]])
  567. IP_previous <- (OvalideP$EDMS[[1, 2]] + OvalideP$EDMS[[4, 2]]) / (OvalideP$EDMS[[2, 2]] + OvalideP$EDMS[[5, 2]])
  568. } else {
  569. IP_current <- Ovalide$EDMS[[1, 2]] / Ovalide$EDMS[[2, 2]]
  570. IP_previous <- OvalideP$EDMS[[1, 2]] / OvalideP$EDMS[[2, 2]]
  571. }
  572. data_frame(IP_current, IP_previous) %>%
  573. datatable(rownames = "Indice de performance",
  574. colnames = c(current, previous)) %>%
  575. formatCurrency(1:2, currency = "", digits = 3, dec.mark = ",")
  576. rm(IP_previous, IP_current)
  577. ```
  578. *Données issues des tableaux OVALIDE [1.D2.EDMS] de `r periode`*
  579. _\* Nb de journées / Nb de journées standardisées sur la DMS théorique_
  580. <!---
  581. ## Généralités
  582. ### <a href="#outils" data-toggle="collapse" class="panel-heading">Outils informatiques</a> {.panel .panel-default}
  583. #### {.panel-body .collapse #outils}
  584. ```{r outils}
  585. data_frame(Logiciels = c("Fichsup",
  586. "Genrsa",
  587. "Magic",
  588. "Preface"),
  589. `N° de version` = c("9.4.1",
  590. "11.6.6.2",
  591. "4.5.0.0",
  592. "2.2.3.0")) %>%
  593. datatable(rownames = F)
  594. ```
  595. ### <a href="#cal" data-toggle="collapse" class="panel-heading">Calendrier</a> {.panel .panel-default}
  596. #### {.panel-body .collapse #cal}
  597. ```{r calendrier}
  598. data_frame(Dates = rep(date, 5),
  599. `Évènement` = c("Clôture et arrêté des données Webpims, Extraction Webpims",
  600. "Création des fichiers, vérifications et corrections",
  601. "Traitements réglementaires, vérifications et corrections",
  602. "Retour traitement e-PMSI",
  603. "Validation de l'envoi")) %>%
  604. datatable(rownames = F)
  605. ```
  606. --->