R/open_emm_pages.R

Defines functions open_ovalide_session jump_to_emm

Documented in jump_to_emm open_ovalide_session

#' Créer une session HTML sur l'application OVALIDE
#'
#' Créer une session HTML en s'identifiant sur epmsi pour accéder à
#' l'application OVALIDE
#' @return Une session
#' @seealso [rvest::html_session]
#' @param user Identifiant
#' @param pass Mot de passe
#' @import rvest
#' @export
open_ovalide_session <- function(
  user = rstudioapi::askForPassword('Identifiant'),
  pass = rstudioapi::askForPassword('Mot de passe')
) {

  # Page de login
  login_url <- 'https://pasrel.atih.sante.fr/cas/login'

  # Ouvrir une session HTML
  session <- html_session(login_url)

  # Parser le formulaire de login sur la page
  form <- html_form(xml2::read_html(session))[[1]]

  # Compléter le formulaire
  filled_form <- set_values(form, username = user, password = pass)

  # Envoyer pour se connecter
  session <- submit_form(session, filled_form)

  # Aller jusqu'à la page tableaux EMM
  session %>%
    # Page d'epmsi
    jump_to('https://epmsi.atih.sante.fr/cas/caslogin.do') %>%
    # Page d'accueil d'epmsi
    jump_to('https://epmsi.atih.sante.fr/welcomeEpmsi.do') %>%
    # Sélectionner les applications
    follow_link('Applications') %>%
    # MAT2A/OVALIDE
    follow_link('OVALIDE') %>%
    # MAT2A/OVALIDE MCO Public
    follow_link('OVALIDE MCO DGF (établissements de santé')
}

#' Aller à la page EMM d'une année et mois donnée
#' @param session Une session authentifiée sur epmsi
#' @param annee Année entre 2006 et l'année en cours
#' @param mois Entier entre 0 et 12 inclus
#'
#' @seealso [open_ovalide_session]
#' @return Une session avec la bonne URL
#' @export
#' @importFrom magrittr "%>%"
#' @import rvest
jump_to_emm <- function(session, annee, mois) {

  # L'année doit être un entier compris entre 2006 et l'année en cours
  annee <- as.integer(annee)
  stopifnot(annee >= 2006, annee <= lubridate::year(Sys.Date()) )

  # Le mois doit être un entier entre 0 et 12
  mois <- as.integer(mois)
  stopifnot(mois >= 0, mois <= 12)

  url_periode <- sprintf("https://epmsi.atih.sante.fr/appli_05.do?year=%s&period=%s", annee, mois)

  session %>%
    # Revenir à la page "MAT2A/OVALIDE MCO Public" %>%
    jump_to('https://epmsi.atih.sante.fr/appli_16.do?champPmsi=1&statut=1&applicationType=3') %>%
    # Aller à la page de la période données
    jump_to(url_periode) %>%
    # ouvrir la page du tableau EMM
    follow_link('1.V.5.EMM')
}
jomuller/vvs documentation built on May 21, 2019, 2:05 p.m.