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.

764 lines
27KB

  1. ---
  2. title: Bilan de clôture
  3. output:
  4. html_document:
  5. toc: true
  6. toc_float: true
  7. self_contained: false
  8. ---
  9. ```{r init, echo = F, message = F}
  10. library(DT)
  11. library(ggplot2)
  12. library(knitr)
  13. library(tidyr)
  14. library(stringr)
  15. library(dplyr)
  16. library(plotly)
  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 produit"))
  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_prod = rss + manq,
  312. exh = rss / rss_prod) %>%
  313. select(rss_prod, rss, 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_prod = rss + manq,
  323. exh = 100 * rss / rss_prod) %>%
  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. *L'exhaustivité est calculée à partir de la base GAM*
  339. ### Taux d'exhaustivité des RSS pour la clôture actuelle selon le mois de sortie du RSS
  340. ```{r fig7}
  341. rss %>%
  342. filter(annee_sortie == annee) %>%
  343. count(mois_sortie) %>%
  344. full_join(gam %>%
  345. count(mois_sortie),
  346. by = "mois_sortie") %>%
  347. mutate(n = 100 * (n.x - n.y) / n.x,
  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. gam %>%
  367. count(mois_sortie) %>%
  368. full_join(data.frame(mois_sortie = setdiff(1:mois, .$mois_sortie), n = rep(0, length(setdiff(1:mois, .$mois_sortie))))) %>%
  369. ggplot(
  370. aes(x = mois_sortie,
  371. y = n)) +
  372. scale_x_discrete(limits = mois_label, expand = c(.05, 0)) +
  373. geom_line() +
  374. geom_point() +
  375. labs(x = NULL,
  376. y = NULL,
  377. title = NULL) +
  378. theme_bw() +
  379. theme(axis.text.x = element_text(angle = 45, hjust = 1),
  380. legend.title = element_blank(),
  381. plot.title = element_text(hjust = 0)) -> p
  382. ggplotly(p)
  383. ```
  384. ## Exhaustivité par pôle et par service
  385. ```{r tab9}
  386. #rss %>%
  387. # filter(annee_sortie == annee) %>%
  388. # count(pole_libelle, service_libelle) %>%
  389. # bind_rows(rss %>%
  390. # filter(annee_sortie == annee) %>%
  391. # count(pole_libelle)) %>%
  392. # full_join(gam %>%
  393. # count(pole_libelle, service_libelle) %>%
  394. # bind_rows(gam %>%
  395. # count(pole_libelle)),
  396. # by = c("pole_libelle", "service_libelle")) %>%
  397. # mutate(n.y = ifelse(is.na(n.y), 0, n.y),
  398. # n.x = n.x + n.y,
  399. # exh_service = (n.x - n.y) / n.x,
  400. # pole_libelle = pole_libelle %>% factor) %>%
  401. # arrange(pole_libelle, service_libelle) %>%
  402. # mutate(service_libelle = ifelse(is.na(service_libelle), "TOTAL", service_libelle)) %>%
  403. #
  404. # datatable(colnames = c("Pôle", "Service de responsabilité", "RSS produits", "RSS manquants", "Exhaustivité"),
  405. # extensions = "Buttons",
  406. # rownames = F) %>%
  407. # formatPercentage(5, digits = 2)
  408. exhau_pims %>%
  409. group_by(Pole, Service) %>%
  410. summarise(Prod = n()) %>%
  411. full_join(
  412. exhau_pims %>%
  413. filter(DP == "") %>%
  414. group_by(Pole, Service) %>%
  415. summarise(Manquants = n())
  416. ) %>%
  417. full_join(
  418. exhau_pims %>%
  419. filter(Erreur == 4) %>%
  420. group_by(Pole, Service) %>%
  421. summarise(Rumrss = n())
  422. ) %>%
  423. bind_rows(
  424. exhau_pims %>%
  425. group_by(Pole) %>%
  426. summarise(Prod = n()) %>%
  427. full_join(
  428. exhau_pims %>%
  429. filter(DP == "") %>%
  430. group_by(Pole) %>%
  431. summarise(Manquants = n())
  432. ) %>%
  433. full_join(
  434. exhau_pims %>%
  435. filter(Erreur == 4) %>%
  436. group_by(Pole) %>%
  437. summarise(Rumrss = n())
  438. )
  439. ) %>%
  440. bind_rows(
  441. exhau_pims %>%
  442. summarise(Prod = n()) %>%
  443. bind_cols(
  444. exhau_pims %>%
  445. filter(DP == "") %>%
  446. summarise(Manquants = n())
  447. ) %>%
  448. bind_cols(
  449. exhau_pims %>%
  450. filter(Erreur == 4) %>%
  451. summarise(Rumrss = n())
  452. )
  453. ) %>%
  454. ungroup %>%
  455. arrange(Pole, Service) %>%
  456. select(Pole, Service, Manquants, Rumrss, Prod) %>%
  457. mutate(Service = ifelse(is.na(Service), "TOTAL", Service),
  458. Exh_rum = (Prod - Manquants) / Prod,
  459. Exh_rumrss = (Prod - Rumrss) / Prod,
  460. Exh_rum = ifelse(is.na(Exh_rum), 1, Exh_rum),
  461. Pole = Pole %>% factor,
  462. Exh_rumrss = ifelse(is.na(Exh_rumrss), 1, Exh_rumrss)) %>%
  463. datatable(colnames = c("Pôle", "Service", "RUM manquants", "RUM dans RSS manquant", "Production RUM", "Exhaustivité RUM", "Exhaustivité RUM-RSS"),
  464. extensions = "Buttons",
  465. rownames = F,
  466. filter = "top",
  467. options = list(searching = T,
  468. paging = T)) %>%
  469. formatPercentage(c(6,7), digits = 2)
  470. ```
  471. # Valorisation
  472. ## Nombre et valorisation des RSA transmis, traités et valorisés
  473. ```{r tab10}
  474. OvalideP$SVA %>%
  475. full_join(Ovalide$SVA, by = "A") %>%
  476. mutate(D = C.y - C.x,
  477. E = (C.y - C.x) / C.x) %>%
  478. datatable(rownames = F,
  479. extensions = "Buttons",
  480. escape = F,
  481. container = htmltools::withTags(table(class = 'display',
  482. thead(tr(th(rowspan = 2, "RSA"),
  483. th(colspan = 2, previous),
  484. th(colspan = 2, current),
  485. th(colspan = 2, "Évolution")),
  486. tr(th("Effectif"),
  487. th("Montant BR"),
  488. th("Effectif"),
  489. th("Montant BR"),
  490. th("€"),
  491. th("%"))
  492. )
  493. ))) %>%
  494. formatCurrency(c(3,5,6), currency = "", interval = 3, mark = "&nbsp;", digits = 2, dec.mark = ",") %>%
  495. formatPercentage(7, digits = 2)
  496. ```
  497. *Données issues des tableaux OVALIDE [1.V.1.SV] A de `r periode`*
  498. ## Valorisation des RSA non pris en charge par l'Assurance Maladie
  499. ```{r tab11}
  500. OvalideP$VSS %>% select(1:3) %>%
  501. full_join(Ovalide$VSS %>% select(1:3), by = "A") %>%
  502. mutate(D = C.y - C.x,
  503. E = (C.y - C.x) / C.x) %>%
  504. datatable(rownames = F,
  505. extensions = "Buttons",
  506. container = htmltools::withTags(table(class = 'display',
  507. thead(tr(th(rowspan = 2, "Composante"),
  508. th(colspan = 2, previous),
  509. th(colspan = 2, current),
  510. th(colspan = 2, "Évolution")),
  511. tr(th("Effectif"),
  512. th("Montant BR"),
  513. th("Effectif"),
  514. th("Montant BR"),
  515. th("€"),
  516. th("%"))
  517. )
  518. )
  519. )) %>%
  520. formatCurrency(c(3,5,6), currency = "", interval = 3, mark = "&nbsp;", digits = 2, dec.mark = ",") %>%
  521. formatPercentage(7, digits = 2)
  522. ```
  523. *Données issues des tableaux [1.V.1.VSS] A de `r periode`*
  524. ## Taux de remboursement des RSA pris en charge par l'Assurance Maladie
  525. ```{r tab12}
  526. OvalideP$TXR %>%
  527. full_join(Ovalide$TXR, by = c("A", "B")) %>%
  528. datatable(rownames = F,
  529. extensions = "Buttons",
  530. container = htmltools::withTags(table(class = 'display',
  531. thead(tr(th(rowspan = 2, "Taux de remboursement"),
  532. th(rowspan = 2, "Type"),
  533. th(colspan = 2, previous),
  534. th(colspan = 2, current)),
  535. tr(th("Effectif"),
  536. th("%"),
  537. th("Effectif"),
  538. th("%"))
  539. )
  540. )
  541. )) %>%
  542. formatCurrency(c(4, 6), digits = 2, currency = "", dec.mark = ",")
  543. ```
  544. *Données issues des tableaux OVALIDE [1.V.1.TXR] C de `r periode`*
  545. _\* Séjours de NN, radiothérape ou PO_
  546. ## Valorisation des RSA pris en charge par l'Assurance Maladie
  547. ```{r tab13}
  548. OvalideP$RAV[-(1:2), c(1,4,6)] %>%
  549. full_join(Ovalide$RAV[-(1:2), c(1,4,6)], by = "A") %>%
  550. mutate(D.z = (D.y - D.x) / D.x,
  551. F.z = (F.y - F.x) / F.x) %>%
  552. .[names(.) %>% sort] %>%
  553. datatable(rownames = F,
  554. extensions = "Buttons",
  555. escape = F,
  556. container = htmltools::withTags(table(class = 'display',
  557. thead(tr(th(rowspan = 2, "Composante"),
  558. th(colspan = 2, "Montant BR¹"),
  559. th(rowspan = 2, "Evol. montant BR¹"),
  560. th(colspan = 2, "Montant remboursé AM²"),
  561. th(rowspan = 2, "Evol. montant remboursé AM²")),
  562. tr(rep(c(previous, current), 2) %>%
  563. lapply(th))
  564. )
  565. )
  566. )) %>%
  567. formatPercentage(c(4, 7), digits = 2) %>%
  568. formatCurrency(c(2, 3, 5, 6), currency = "", interval = 3, mark = "&nbsp;", digits = 2, dec.mark = ",")
  569. ```
  570. *Données issues des tableaux OVALIDE [1.V.1.RAV] C de `r periode`*
  571. <sup>1</sup> Montant Brut
  572. <sup>2</sup> Montant Remboursé par l'Assurance Maladie
  573. ## Valorisation des IVG, ATU, SE, actes et consultations
  574. ```{r tab14}
  575. data_frame(A = c(OvalideP$VATU[is.na(OvalideP$VATU$A), 3:5] %>% unlist,
  576. OvalideP$VSE[OvalideP$VSE$A == "", 3:5] %>% unlist,
  577. OvalideP$VCCAM[OvalideP$VCCAM$A == "", 2:4] %>% unlist,
  578. OvalideP$VNGAP[OvalideP$VNGAP$A == "", 3:5] %>% unlist),
  579. B = c(Ovalide$VATU[is.na(Ovalide$VATU$A), 3:5] %>% unlist,
  580. Ovalide$VSE[Ovalide$VSE$A == "", 3:5] %>% unlist,
  581. Ovalide$VCCAM[Ovalide$VCCAM$A == "", 2:4] %>% unlist,
  582. Ovalide$VNGAP[Ovalide$VNGAP$A == "", 3:5] %>% unlist)) %>%
  583. mutate(C = B - A,
  584. D = (B - A) / A) %>%
  585. datatable(rownames = str_c(rep(c("Nombre de prestations",
  586. "Valorisation brute",
  587. "Valorisation AM"),4),
  588. rep(c("ATU<sup>1</sup>",
  589. "SE<sup>2</sup>",
  590. "CCAM<sup>3</sup>",
  591. "NGAP<sup>4</sup>"), each = 3), sep = " "),
  592. colnames = c(previous, current, "Évolution (n ou &euro;)", "Évolution"),
  593. extensions = "Buttons",
  594. escape = F) %>%
  595. formatCurrency(1:3, currency = "", interval = 3, mark = "&nbsp;", digits = 2, dec.mark = ",") %>%
  596. formatPercentage(4, digits = 2)
  597. ```
  598. <sup>1</sup>*Données issues des tableaux OVALIDE [2.V.VATU] de `r periode`*
  599. <sup>2</sup>*Données issues des tableaux OVALIDE [2.V.VSE] de `r periode`*
  600. <sup>3</sup>*Données issues des tableaux OVALIDE [2.V.VCCAM] de `r periode`*
  601. <sup>4</sup>*Données issues des tableaux OVALIDE [2.V.VNGAP] de `r periode`*
  602. ## Nombre de Suppléments valorisés, Performance et Valorisation des séjours non envoyés
  603. ```{r tab15}
  604. OvalideP$UMAS %>%
  605. full_join(Ovalide$UMAS, by = "A") %>%
  606. mutate(C = B.y - B.x,
  607. D = (B.y - B.x) / B.x) %>%
  608. datatable(rownames = F,
  609. extensions = "Buttons",
  610. colnames = c(previous, current, "Évolution (n)", "Évolution")) %>%
  611. formatCurrency(2:4, currency = "", interval = 3, mark = "&nbsp;", digits = 0) %>%
  612. formatPercentage(5, digits = 2)
  613. ```
  614. *Données issues des tableaux OVALIDE [1.V.1.UMAS] E de `r periode`*
  615. ## Prix Moyen du Cas Traité\* de l'année en cours et de l'année précédente
  616. ```{r tab16}
  617. OvalideP$SVB %>%
  618. mutate(B = C/B) %>%
  619. select(-C) %>%
  620. full_join(Ovalide$SVB %>%
  621. mutate(B = C/B) %>%
  622. select(-C),
  623. by = "A") %>%
  624. mutate(C = B.y - B.x,
  625. D = (B.y - B.x) / (B.x)) %>%
  626. datatable(escape = F,
  627. extensions = "Buttons",
  628. rownames = F,
  629. colnames = c("Type de séjours", previous, current, "Évolution (&euro;)", "Évolution")) %>%
  630. formatPercentage(5, digits = 2) %>%
  631. formatCurrency(2:4, currency = "", interval = 3, mark = "&nbsp;", digits = 2, dec.mark = ",")
  632. ```
  633. *Données issues 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. ## Estimation de la valorisation des séjours non transmis de l'année en cours
  636. ```{r tab17}
  637. gam %>% filter(date_sortie - date_entree == 0) %>% nrow -> zero
  638. gam %>% filter(date_sortie - date_entree > 0) %>% nrow -> plus
  639. data.frame(zero = c(zero, Ovalide$SVB$C[3]/Ovalide$SVB$B[3], zero * Ovalide$SVB$C[3]/Ovalide$SVB$B[3]),
  640. plus = c(plus, Ovalide$SVB$C[2]/Ovalide$SVB$B[2], plus * Ovalide$SVB$C[2]/Ovalide$SVB$B[2])) %>%
  641. datatable(escape = F,
  642. extensions = "Buttons",
  643. rownames = c("Nombre", "PMCT*", "Valorisation"),
  644. colnames = c("Indicateur", "0 jour", "Plus de 0 jour")) %>%
  645. formatCurrency(1:2, currency = "", interval = 3, mark = "&nbsp;", digits = 2, dec.mark = ",")
  646. rm(plus, zero)
  647. ```
  648. *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`*
  649. _\* Prix Moyen du Cas Traité = Total valorisation / nombre de RSA valorisés_
  650. ## 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
  651. ```{r tab18}
  652. if (nrow(Ovalide$EDMS) == 6)
  653. {
  654. IP_current <- (Ovalide$EDMS[[1, 2]] + Ovalide$EDMS[[4, 2]]) / (Ovalide$EDMS[[2, 2]] + Ovalide$EDMS[[5, 2]])
  655. IP_previous <- (OvalideP$EDMS[[1, 2]] + OvalideP$EDMS[[4, 2]]) / (OvalideP$EDMS[[2, 2]] + OvalideP$EDMS[[5, 2]])
  656. } else {
  657. IP_current <- Ovalide$EDMS[[1, 2]] / Ovalide$EDMS[[2, 2]]
  658. IP_previous <- OvalideP$EDMS[[1, 2]] / OvalideP$EDMS[[2, 2]]
  659. }
  660. data_frame(IP_current, IP_previous) %>%
  661. datatable(rownames = "Indice de performance",
  662. extensions = "Buttons",
  663. colnames = c(current, previous)) %>%
  664. formatCurrency(1:2, currency = "", digits = 3, dec.mark = ",")
  665. rm(IP_previous, IP_current)
  666. ```
  667. *Données issues des tableaux OVALIDE [1.D2.EDMS] de `r periode`*
  668. _\* Nb de journées / Nb de journées standardisées sur la DMS théorique_
  669. <!---
  670. ## Généralités
  671. ### Outils informatiques
  672. ```{r outils}
  673. data_frame(Logiciels = c("Fichsup",
  674. "Genrsa",
  675. "Magic",
  676. "Preface"),
  677. `N° de version` = c("9.4.1",
  678. "11.6.6.2",
  679. "4.5.0.0",
  680. "2.2.3.0")) %>%
  681. datatable(extensions = "Buttons", rownames = F)
  682. ```
  683. ### Calendrier
  684. ```{r calendrier}
  685. data_frame(Dates = rep(date, 5),
  686. `Évènement` = c("Clôture et arrêté des données Webpims, Extraction Webpims",
  687. "Création des fichiers, vérifications et corrections",
  688. "Traitements réglementaires, vérifications et corrections",
  689. "Retour traitement e-PMSI",
  690. "Validation de l'envoi")) %>%
  691. datatable(extensions = "Buttons", rownames = F)
  692. ```
  693. --->