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.

719 lines
25KB

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