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.

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