R/mt_crea_nb_actes_par_praticien.R

Defines functions mt_crea_nb_actes_par_praticien

Documented in mt_crea_nb_actes_par_praticien

#' Creation d'une base de nombre d'actes par praticien et par departement
#'
#' @param chemin Une chaine de caractere: Chemin des donnees brutes des deux fichiers xlsx d'AMELI
#' @param nom_fichier_dep Une chaine de caractere correspondant au nom du fichier departemental xlsx
#' @param nom_fichier_reg Une chaine de caractere correspondant au nom du fichier regional xlsx
#' @param ecriture Booleen Par defaut TRUE. Permet d'ecrire dans le dossier initial. Le desactiver n'a d'interet que pour les tests
#'
#' @return NULL. Cette fonction cree lune base de nombre d'actes par praticien et par departement a l'emplacement initial
#' @export
#'
#' @examples
#' chemin = system.file("extdata",package = "medtRucks")
#' nom_fichier_dep = "2020_patientele-des-medecins-liberaux-ape-par-departement_serie-annuelle.xlsx"
#' nom_fichier_reg = "2020_patientele-des-medecins-liberaux-ape-par-region_serie-annuelle.xlsx"
#' mt_crea_nb_actes_par_praticien(chemin = chemin,
#'                       nom_fichier_dep = nom_fichier_dep,
#'                       nom_fichier_reg=nom_fichier_reg,
#'                       ecriture = FALSE)
#'
#' @importFrom dplyr select mutate left_join everything rename
#' @importFrom readxl read_excel
#' @importFrom stats setNames
#' @importFrom stringr str_trim str_split_fixed
#' @importFrom tidyr gather
#' @importFrom magrittr %>%
mt_crea_nb_actes_par_praticien <- function(chemin,
                                           nom_fichier_dep,
                                           nom_fichier_reg,
                                           ecriture=T){


  Correspondance_Reg_Dep <- readRDS(paste0(system.file("extdata",package = "medtRucks"),"/correspondance_dep_reg.rds")) %>%
    select(departmentCode,regionCode) %>%
    setNames(c("CODE_DEPT","CODE_REG"))

  Correspondance_Ameli_damir <- readRDS(paste0(system.file("extdata",package = "medtRucks"),"/Correspondance_Ameli_damir.rds"))

  #Departements

  Effectifs_des_medecins_APE_par_departement_en_XXXX <- read_excel(paste0(chemin,"/",nom_fichier_dep),sheet = "Effectifs PS",skip = 3,na="nc")
  Patientele_moyenne_des_medecins_APE_par_departement_en_XXXX <- read_excel(paste0(chemin,"/",nom_fichier_dep),sheet = "Patient\u00e8le moyenne par PS",skip = 3,na="nc")
  Nb_actes_par_patient_des_medecins_APE_par_departement_en_XXXX <- read_excel(paste0(chemin,"/",nom_fichier_dep),sheet = "Nombre d\'actes par patient",skip = 3,na="nc")


  Noms_ref_dep<-names(Effectifs_des_medecins_APE_par_departement_en_XXXX)
  names(Patientele_moyenne_des_medecins_APE_par_departement_en_XXXX)<-Noms_ref_dep
  names(Nb_actes_par_patient_des_medecins_APE_par_departement_en_XXXX)<-Noms_ref_dep

  #Regions

  Effectifs_des_medecins_APE_par_region_en_XXXX <- read_excel(paste0(chemin,"/",nom_fichier_reg),sheet = "Effectifs PS",skip = 3,na="nc")
  Patientele_moyenne_des_medecins_APE_par_region_en_XXXX <- read_excel(paste0(chemin,"/",nom_fichier_reg),sheet = "Patient\u00e8le moyenne par PS",skip = 3,na="nc")
  Nb_actes_par_patient_des_medecins_APE_par_region_en_XXXX <- read_excel(paste0(chemin,"/",nom_fichier_reg),sheet = "Nombre d\'actes par patient",skip = 3,na="nc")

  Noms_ref_reg<-names(Effectifs_des_medecins_APE_par_region_en_XXXX)
  names(Patientele_moyenne_des_medecins_APE_par_region_en_XXXX)<-Noms_ref_reg
  names(Nb_actes_par_patient_des_medecins_APE_par_region_en_XXXX)<-Noms_ref_reg

  Noms_ref_reg[2:length(Noms_ref_reg)]<-Noms_ref_dep[2:length(Noms_ref_dep)]
  names(Effectifs_des_medecins_APE_par_region_en_XXXX)<-Noms_ref_reg
  names(Patientele_moyenne_des_medecins_APE_par_region_en_XXXX)<-Noms_ref_reg
  names(Nb_actes_par_patient_des_medecins_APE_par_region_en_XXXX)<-Noms_ref_reg

  #Empiler
  AMELI_Dep <- Effectifs_des_medecins_APE_par_departement_en_XXXX %>%
    setNames(c("Departement",names(.)[-1])) %>%
    mutate(CODE_DEPT=str_trim(str_split_fixed(Departement,"-",2)[,1])) %>%
    gather(key="Specialite",value = "Effectifs_des_medecins_APE_par_departement_en_XXXX",-c("CODE_DEPT","Departement")) %>%
    left_join(
      Patientele_moyenne_des_medecins_APE_par_departement_en_XXXX %>%
        setNames(c("Departement",names(.)[-1])) %>%
        mutate(CODE_DEPT=str_trim(str_split_fixed(Departement,"-",2)[,1])) %>%
        select(-Departement) %>%
        gather(key="Specialite",value = "Patientele_moyenne_des_medecins_APE_par_departement_en_XXXX",-c("CODE_DEPT")),
      by=c("CODE_DEPT","Specialite")) %>%
    left_join(
      Nb_actes_par_patient_des_medecins_APE_par_departement_en_XXXX %>%
        setNames(c("Departement",names(.)[-1])) %>%
        mutate(CODE_DEPT=str_trim(str_split_fixed(Departement,"-",2)[,1])) %>%
        select(-Departement) %>%
        gather(key="Specialite",value = "Nb_actes_par_patient_des_medecins_APE_par_departement_en_XXXX",-c("CODE_DEPT")),
      by=c("CODE_DEPT","Specialite")) %>%
    select(CODE_DEPT,everything()) %>%
    left_join(Correspondance_Reg_Dep,by="CODE_DEPT") %>%
    select(CODE_DEPT,Departement,CODE_REG,everything())

  AMELI_Reg <- Effectifs_des_medecins_APE_par_region_en_XXXX %>%
    setNames(c("Region",names(.)[-1])) %>%
    mutate(CODE_REG=str_trim(str_split_fixed(Region,"-",2)[,1])) %>%
    gather(key="Specialite",value = "Effectifs_des_medecins_APE_par_region_en_XXXX",-c("CODE_REG","Region")) %>%
    left_join(
      Patientele_moyenne_des_medecins_APE_par_region_en_XXXX %>%
        setNames(c("Region",names(.)[-1])) %>%
        mutate(CODE_REG=str_trim(str_split_fixed(Region,"-",2)[,1])) %>%
        select(-Region) %>%
        gather(key="Specialite",value = "Patientele_moyenne_des_medecins_APE_par_region_en_XXXX",-c("CODE_REG")),
      by=c("CODE_REG","Specialite")) %>%
    left_join(
      Nb_actes_par_patient_des_medecins_APE_par_region_en_XXXX %>%
        setNames(c("Region",names(.)[-1])) %>%
        mutate(CODE_REG=str_trim(str_split_fixed(Region,"-",2)[,1])) %>%
        select(-Region) %>%
        gather(key="Specialite",value = "Nb_actes_par_patient_des_medecins_APE_par_region_en_XXXX",-"CODE_REG"),
      by=c("CODE_REG","Specialite")) %>%
    select(CODE_REG,everything())


  AMELI_Dep <- AMELI_Dep %>%
    left_join(Correspondance_Ameli_damir,by=c("Specialite"="Nom Ameli")) %>%
    select(CODE_DEPT,Departement,CODE_REG,Specialite,exe_spe,l_exe_spe,everything())


  AMELI_Reg<-AMELI_Reg %>%
    left_join(Correspondance_Ameli_damir,by=c("Specialite"="Nom Ameli")) %>%
    select(CODE_REG,Region,Specialite,exe_spe,l_exe_spe,everything())

  #nb actes par praticien

  AMELI_Dep<-AMELI_Dep %>%
    mutate(nb_actes_par_praticien=Nb_actes_par_patient_des_medecins_APE_par_departement_en_XXXX*Patientele_moyenne_des_medecins_APE_par_departement_en_XXXX)


  AMELI_Reg<-AMELI_Reg %>%
    mutate(nb_actes_par_praticien=Nb_actes_par_patient_des_medecins_APE_par_region_en_XXXX*Patientele_moyenne_des_medecins_APE_par_region_en_XXXX)


  nb_actes_par_praticien<-AMELI_Dep %>%
    select(CODE_DEPT,Departement, CODE_REG, Specialite, exe_spe, l_exe_spe,nb_actes_par_praticien) %>%
    rename(nb_actes_par_praticien_dep=nb_actes_par_praticien) %>%
    left_join(
      AMELI_Reg %>%
        select(CODE_REG, Specialite,nb_actes_par_praticien) %>%
        rename(nb_actes_par_praticien_reg=nb_actes_par_praticien),
      by=c("CODE_REG", "Specialite")
    ) %>%
    mutate(nb_actes_par_praticien_dep_corrige=ifelse(is.na(nb_actes_par_praticien_dep),nb_actes_par_praticien_reg,nb_actes_par_praticien_dep),
           exe_spe=as.character(exe_spe))

  if(ecriture){
    saveRDS(nb_actes_par_praticien,paste0(chemin,"/nb_actes_par_praticien.rds"))
  }
}
arnaudmilet/medtRucks documentation built on March 24, 2022, 9:08 p.m.