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.

717 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. distinct(RSS, .keep_all = T) %>%
  344. count(mois_sortie) %>%
  345. full_join(exhau_pims %>%
  346. mutate(mois_sortie = month(Sortie)) %>%
  347. distinct(RSS, .keep_all = T) %>%
  348. count(mois_sortie),
  349. by = "mois_sortie") %>%
  350. mutate(n = 100 * (n.y - n.x) / n.y) %>%
  351. complete(mois_sortie = 1:mois, fill = list(n = 100)) %>%
  352. ggplot(
  353. aes(x = mois_sortie,
  354. y = n)) +
  355. scale_x_discrete(limits = mois_label, expand = c(.05, 0)) +
  356. geom_line() +
  357. geom_point() +
  358. labs(x = NULL,
  359. y = NULL,
  360. title = NULL) +
  361. theme_bw() +
  362. theme(axis.text.x = element_text(angle = 45, hjust = 1),
  363. legend.title = element_blank(),
  364. plot.title = element_text(hjust = 0)) -> p
  365. ggplotly(p)
  366. ```
  367. ### Nombre de RSS manquants pour la clôture actuelle selon le mois de sortie du RSS
  368. ```{r fig8}
  369. exhau_pims %>%
  370. mutate(mois_sortie = month(Sortie)) %>%
  371. filter(is.na(DP)) %>%
  372. distinct(RSS, .keep_all = T) %>%
  373. count(mois_sortie) %>%
  374. complete(mois_sortie = 1:mois, fill = list(n = 0)) %>%
  375. ggplot(
  376. aes(x = mois_sortie,
  377. y = n)) +
  378. scale_x_discrete(limits = mois_label, expand = c(.05, 0)) +
  379. geom_line() +
  380. geom_point() +
  381. labs(x = NULL,
  382. y = NULL,
  383. title = NULL) +
  384. theme_bw() +
  385. theme(axis.text.x = element_text(angle = 45, hjust = 1),
  386. legend.title = element_blank(),
  387. plot.title = element_text(hjust = 0)) -> p
  388. ggplotly(p)
  389. ```
  390. ## Exhaustivité par pôle et par service
  391. ```{r tab9}
  392. exhau_pims %>%
  393. group_by(Pole, Service) %>%
  394. summarise(Prod = n()) %>%
  395. full_join(
  396. exhau_pims %>%
  397. filter(is.na(DP)) %>%
  398. group_by(Pole, Service) %>%
  399. summarise(Manquants = n())
  400. ) %>%
  401. full_join(
  402. exhau_pims %>%
  403. filter(Erreur == 4) %>%
  404. group_by(Pole, Service) %>%
  405. summarise(Rumrss = n())
  406. ) %>%
  407. bind_rows(
  408. exhau_pims %>%
  409. group_by(Pole) %>%
  410. summarise(Prod = n()) %>%
  411. full_join(
  412. exhau_pims %>%
  413. filter(is.na(DP)) %>%
  414. group_by(Pole) %>%
  415. summarise(Manquants = n())
  416. ) %>%
  417. full_join(
  418. exhau_pims %>%
  419. filter(Erreur == 4) %>%
  420. group_by(Pole) %>%
  421. summarise(Rumrss = n())
  422. )
  423. ) %>%
  424. bind_rows(
  425. exhau_pims %>%
  426. summarise(Prod = n()) %>%
  427. bind_cols(
  428. exhau_pims %>%
  429. filter(is.na(DP)) %>%
  430. summarise(Manquants = n())
  431. ) %>%
  432. bind_cols(
  433. exhau_pims %>%
  434. filter(Erreur == 4) %>%
  435. summarise(Rumrss = n())
  436. )
  437. ) %>%
  438. ungroup %>%
  439. arrange(Pole, Service) %>%
  440. select(Pole, Service, Manquants, Rumrss, Prod) %>%
  441. mutate(Service = ifelse(is.na(Service), "TOTAL", Service),
  442. Exh_rum = (Prod - Manquants) / Prod,
  443. Exh_rumrss = (Prod - Rumrss) / Prod,
  444. Exh_rum = ifelse(is.na(Exh_rum), 1, Exh_rum),
  445. Pole = Pole %>% factor,
  446. Exh_rumrss = ifelse(is.na(Exh_rumrss), 1, Exh_rumrss)) %>%
  447. datatable(colnames = c("Pôle", "Service", "RUM manquants", "RUM dans RSS manquant", "Production RUM", "Exhaustivité RUM", "Exhaustivité RUM-RSS"),
  448. extensions = "Buttons",
  449. rownames = F,
  450. filter = "top",
  451. options = list(searching = T,
  452. paging = T)) %>%
  453. formatPercentage(c(6,7), digits = 2)
  454. ```
  455. # Valorisation
  456. ## Nombre et valorisation des RSA transmis, traités et valorisés
  457. ```{r tab10}
  458. OvalideP$SVA %>%
  459. full_join(Ovalide$SVA, by = "A") %>%
  460. mutate(D = C.y - C.x,
  461. E = (C.y - C.x) / C.x) %>%
  462. datatable(rownames = F,
  463. extensions = "Buttons",
  464. escape = F,
  465. container = htmltools::withTags(table(class = 'display',
  466. thead(tr(th(rowspan = 2, "RSA"),
  467. th(colspan = 2, previous),
  468. th(colspan = 2, current),
  469. th(colspan = 2, "Évolution")),
  470. tr(th("Effectif"),
  471. th("Montant BR"),
  472. th("Effectif"),
  473. th("Montant BR"),
  474. th("€"),
  475. th("%"))
  476. )
  477. ))) %>%
  478. formatCurrency(c(3,5,6), currency = "", interval = 3, mark = "&nbsp;", digits = 2, dec.mark = ",") %>%
  479. formatPercentage(7, digits = 2)
  480. ```
  481. *Données issues des tableaux OVALIDE [1.V.1.SV] A de `r periode`*
  482. ## Valorisation des RSA non pris en charge par l'Assurance Maladie
  483. ```{r tab11}
  484. OvalideP$VSS %>% select(1:3) %>%
  485. full_join(Ovalide$VSS %>% select(1:3), by = "A") %>%
  486. mutate(D = C.y - C.x,
  487. E = (C.y - C.x) / C.x) %>%
  488. datatable(rownames = F,
  489. extensions = "Buttons",
  490. container = htmltools::withTags(table(class = 'display',
  491. thead(tr(th(rowspan = 2, "Composante"),
  492. th(colspan = 2, previous),
  493. th(colspan = 2, current),
  494. th(colspan = 2, "Évolution")),
  495. tr(th("Effectif"),
  496. th("Montant BR"),
  497. th("Effectif"),
  498. th("Montant BR"),
  499. th("€"),
  500. th("%"))
  501. )
  502. )
  503. )) %>%
  504. formatCurrency(c(3,5,6), currency = "", interval = 3, mark = "&nbsp;", digits = 2, dec.mark = ",") %>%
  505. formatPercentage(7, digits = 2)
  506. ```
  507. *Données issues des tableaux [1.V.1.VSS] A de `r periode`*
  508. ## Taux de remboursement des RSA pris en charge par l'Assurance Maladie
  509. ```{r tab12}
  510. OvalideP$TXR %>%
  511. full_join(Ovalide$TXR, by = c("A", "B")) %>%
  512. datatable(rownames = F,
  513. extensions = "Buttons",
  514. container = htmltools::withTags(table(class = 'display',
  515. thead(tr(th(rowspan = 2, "Taux de remboursement"),
  516. th(rowspan = 2, "Type"),
  517. th(colspan = 2, previous),
  518. th(colspan = 2, current)),
  519. tr(th("Effectif"),
  520. th("%"),
  521. th("Effectif"),
  522. th("%"))
  523. )
  524. )
  525. )) %>%
  526. formatCurrency(c(4, 6), digits = 2, currency = "", dec.mark = ",")
  527. ```
  528. *Données issues des tableaux OVALIDE [1.V.1.TXR] C de `r periode`*
  529. _\* Séjours de NN, radiothérape ou PO_
  530. ## Valorisation des RSA pris en charge par l'Assurance Maladie
  531. ```{r tab13}
  532. OvalideP$RAV[-(1:2), c(1,4,6)] %>%
  533. full_join(Ovalide$RAV[-(1:2), c(1,4,6)], by = "A") %>%
  534. mutate(D.z = (D.y - D.x) / D.x,
  535. F.z = (F.y - F.x) / F.x) %>%
  536. .[names(.) %>% sort] %>%
  537. datatable(rownames = F,
  538. extensions = "Buttons",
  539. escape = F,
  540. container = htmltools::withTags(table(class = 'display',
  541. thead(tr(th(rowspan = 2, "Composante"),
  542. th(colspan = 2, "Montant BR¹"),
  543. th(rowspan = 2, "Evol. montant BR¹"),
  544. th(colspan = 2, "Montant remboursé AM²"),
  545. th(rowspan = 2, "Evol. montant remboursé AM²")),
  546. tr(rep(c(previous, current), 2) %>%
  547. lapply(th))
  548. )
  549. )
  550. )) %>%
  551. formatPercentage(c(4, 7), digits = 2) %>%
  552. formatCurrency(c(2, 3, 5, 6), currency = "", interval = 3, mark = "&nbsp;", digits = 2, dec.mark = ",")
  553. ```
  554. *Données issues des tableaux OVALIDE [1.V.1.RAV] C de `r periode`*
  555. <sup>1</sup> Montant Brut
  556. <sup>2</sup> Montant Remboursé par l'Assurance Maladie
  557. ## Valorisation des IVG, ATU, SE, actes et consultations
  558. ```{r tab14}
  559. data_frame(A = c(OvalideP$VATU[is.na(OvalideP$VATU$A), 3:5] %>% unlist,
  560. OvalideP$VSE[OvalideP$VSE$A == "", 3:5] %>% unlist,
  561. OvalideP$VCCAM[OvalideP$VCCAM$A == "", 2:4] %>% unlist,
  562. OvalideP$VNGAP[OvalideP$VNGAP$A == "", 3:5] %>% unlist),
  563. B = c(Ovalide$VATU[is.na(Ovalide$VATU$A), 3:5] %>% unlist,
  564. Ovalide$VSE[Ovalide$VSE$A == "", 3:5] %>% unlist,
  565. Ovalide$VCCAM[Ovalide$VCCAM$A == "", 2:4] %>% unlist,
  566. Ovalide$VNGAP[Ovalide$VNGAP$A == "", 3:5] %>% unlist)) %>%
  567. mutate(C = B - A,
  568. D = (B - A) / A) %>%
  569. datatable(rownames = str_c(rep(c("Nombre de prestations",
  570. "Valorisation brute",
  571. "Valorisation AM"),4),
  572. rep(c("ATU<sup>1</sup>",
  573. "SE<sup>2</sup>",
  574. "CCAM<sup>3</sup>",
  575. "NGAP<sup>4</sup>"), each = 3), sep = " "),
  576. colnames = c(previous, current, "Évolution (n ou &euro;)", "Évolution"),
  577. extensions = "Buttons",
  578. escape = F) %>%
  579. formatCurrency(1:3, currency = "", interval = 3, mark = "&nbsp;", digits = 2, dec.mark = ",") %>%
  580. formatPercentage(4, digits = 2)
  581. ```
  582. <sup>1</sup>*Données issues des tableaux OVALIDE [2.V.VATU] de `r periode`*
  583. <sup>2</sup>*Données issues des tableaux OVALIDE [2.V.VSE] de `r periode`*
  584. <sup>3</sup>*Données issues des tableaux OVALIDE [2.V.VCCAM] de `r periode`*
  585. <sup>4</sup>*Données issues des tableaux OVALIDE [2.V.VNGAP] de `r periode`*
  586. ## Nombre de Suppléments valorisés, Performance et Valorisation des séjours non envoyés
  587. ```{r tab15}
  588. OvalideP$UMAS %>%
  589. full_join(Ovalide$UMAS, by = "A") %>%
  590. mutate(C = B.y - B.x,
  591. D = (B.y - B.x) / B.x) %>%
  592. datatable(rownames = F,
  593. extensions = "Buttons",
  594. colnames = c(previous, current, "Évolution (n)", "Évolution")) %>%
  595. formatCurrency(2:4, currency = "", interval = 3, mark = "&nbsp;", digits = 0) %>%
  596. formatPercentage(5, digits = 2)
  597. ```
  598. *Données issues des tableaux OVALIDE [1.V.1.UMAS] E de `r periode`*
  599. ## Prix Moyen du Cas Traité\* de l'année en cours et de l'année précédente
  600. ```{r tab16}
  601. OvalideP$SVB %>%
  602. mutate(B = C/B) %>%
  603. select(-C) %>%
  604. full_join(Ovalide$SVB %>%
  605. mutate(B = C/B) %>%
  606. select(-C),
  607. by = "A") %>%
  608. mutate(C = B.y - B.x,
  609. D = (B.y - B.x) / (B.x)) %>%
  610. datatable(escape = F,
  611. extensions = "Buttons",
  612. rownames = F,
  613. colnames = c("Type de séjours", previous, current, "Évolution (&euro;)", "Évolution")) %>%
  614. formatPercentage(5, digits = 2) %>%
  615. formatCurrency(2:4, currency = "", interval = 3, mark = "&nbsp;", digits = 2, dec.mark = ",")
  616. ```
  617. *Données issues des tableaux OVALIDE [1.V.1.SV] B de `r periode`*
  618. _\* Prix Moyen du Cas Traité = Total valorisation / nombre de RSA valorisés_
  619. ## Estimation de la valorisation des séjours non transmis de l'année en cours
  620. ```{r tab17}
  621. exhau_pims %>% filter(is.na(DP), Duree == 0) %>% distinct(RSS) %>% nrow -> zero
  622. exhau_pims %>% filter(is.na(DP), Duree > 0) %>% distinct(RSS) %>% nrow -> plus
  623. data.frame(zero = c(zero, Ovalide$SVB$C[3]/Ovalide$SVB$B[3], zero * Ovalide$SVB$C[3]/Ovalide$SVB$B[3]),
  624. plus = c(plus, Ovalide$SVB$C[2]/Ovalide$SVB$B[2], plus * Ovalide$SVB$C[2]/Ovalide$SVB$B[2])) %>%
  625. datatable(escape = F,
  626. extensions = "Buttons",
  627. rownames = c("Nombre", "PMCT*", "Valorisation"),
  628. colnames = c("Indicateur", "0 jour", "Plus de 0 jour")) %>%
  629. formatCurrency(1:2, currency = "", interval = 3, mark = "&nbsp;", digits = 2, dec.mark = ",")
  630. rm(plus, zero)
  631. ```
  632. *Données issues de la requête BO «`r current`» et des tableaux OVALIDE [1.V.1.SV] B de `r periode`*
  633. _\* Prix Moyen du Cas Traité = Total valorisation / nombre de RSA valorisés_
  634. ## 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
  635. ```{r tab18}
  636. if (nrow(Ovalide$EDMS) == 6)
  637. {
  638. IP_current <- (Ovalide$EDMS[[1, 2]] + Ovalide$EDMS[[4, 2]]) / (Ovalide$EDMS[[2, 2]] + Ovalide$EDMS[[5, 2]])
  639. IP_previous <- (OvalideP$EDMS[[1, 2]] + OvalideP$EDMS[[4, 2]]) / (OvalideP$EDMS[[2, 2]] + OvalideP$EDMS[[5, 2]])
  640. } else {
  641. IP_current <- Ovalide$EDMS[[1, 2]] / Ovalide$EDMS[[2, 2]]
  642. IP_previous <- OvalideP$EDMS[[1, 2]] / OvalideP$EDMS[[2, 2]]
  643. }
  644. data_frame(IP_previous, IP_current) %>%
  645. datatable(rownames = "Indice de performance",
  646. extensions = "Buttons",
  647. colnames = c(previous, current)) %>%
  648. formatCurrency(1:2, currency = "", digits = 3, dec.mark = ",")
  649. rm(IP_previous, IP_current)
  650. ```
  651. *Données issues des tableaux OVALIDE [1.D2.EDMS] de `r periode`*
  652. _\* Nb de journées / Nb de journées standardisées sur la DMS théorique_