R/admis_analyse_retro.R

Defines functions admis_analyse_retro

Documented in admis_analyse_retro

#' Tableau d'analyse
#'
#' Admissibilité rétrospective. Indique la période d'admissibilité la plus récente de chaque individu.
#'
#' @param dt Dataset créé par la fonction `import_struct()`.
#'
#' @return data.table
#' * **`ID`** : Numéro de l'identifiant.
#' * **`DDN`**, **`DDC`** : Date de naissance, de décès.
#' * **`DDsld`** : Première date de soin de longue durée.
#' * **`DDP_retro`**, **`DFP_retro`** : Date de début et de fin de la période d'admissibilité.
#' * **`NJRSadmis_retro`** : Nombre de jours où l’individu est admissible à l'intérieur de la période d'étude \eqn{\sum (DFP_i - DDP_i + 1)}.
#' * **`DDetude`**, **`DFetude`** : Date de début et de fin de la période d'étude.
#' * **`NJRSpotentiel_Etude`** : Nombre de jours maximum qu'un individu peut être admissible entre la date de début et la date de fin de la période d'étude.
#' * **`Admis_Continue_Etude`** : `TRUE` ou `FALSE`. Indique si l’individu est admissible en continue par rapport aux dates d’étude (`NJRSadmis`/`NJRSpotentiel_Etude` = 1).
#' * **`DDsuivi_retro`**, **`DFsuivi_retro`** : Date de début et de fin de suivi.
#' * **`NJRSpotentiel_Suivi_retro`** : Nombre de jours maximum qu’un individu peut être admissible entre la date de fin et la date de début de suivi.
#' * **`Admis_Continue_Suivi_retro`** : `TRUE` ou `FALSE`. Indique si l’individu est admissible en continue par rapport aux dates de suivi (`NJRSadmis`/`NJRSpotentiel_Suivi` = 1).
#' * **`Dentree_retro`**, **`Dsortie_retro`** : Date d'entrée et date de sortie.
#' * **`NJRSpotentiel_ES_retro`** : Nombre de jours maximum qu’un individu peut être admissible entre la date d’entrée et la date de sortie.
#' * **`Admis_Continue_ES_retro`** : `TRUE` ou `FALSE`. Indique si l’individu est admissible en continue entre la date d'entrée et celle de sortie. (`NJRSadmis`/`NJRSpotentiel_ES` = 1).
#' * **`Enais_retro`**, **`Sdc_retro`** : `TRUE` ou `FALSE`. Indique si l'individu est né ou décédé durant la période d'étude.
#' @import data.table
#' @export
admis_analyse_retro <- function(
  dt  # dataset créé par la fonction import_struct()
){

  if(!is.null(dt)){
    dt <- copy(dt)
    DebutEtude <- attr(dt, "dates_etude")$Debut  # extraire les dates d'étude de la fonction précédente
    FinEtude <- attr(dt, "dates_etude")$Fin
    setkey(dt, ID, DDP)  # tri
    dt <- dt[dt[, .I[.N], .(ID)]$V1]  # conserver la période d'admissibilité la plus récente
    dt[, DDsuivi_retro := DebutEtude]  # début suivi selon l'étude ou la date de naissance
    dt[DDN > DebutEtude, DDsuivi_retro := DDN]
    dt[, DFsuivi_retro := FinEtude]  # fin suivi selon l'étude ou la date de décès
    dt[DDC < FinEtude, DFsuivi_retro := DDC]
    dt[, Dentree_retro := DDsuivi_retro]  # Date d'entrée = max(DDsuivi, DebutAdmis)
    dt[DDP > DDsuivi_retro, Dentree_retro := DDP]
    dt[, Dsortie_retro := DFsuivi_retro]  # Date de sortie = min(DFsuivi, FinAdmis)
    dt[DFP < DFsuivi_retro, Dsortie_retro := DFP]
    dt[, NJRSadmis_retro := as.integer(Dsortie_retro - Dentree_retro + 1)]  # nbre jours admis par période
    dt[, Enais_retro := FALSE][Dentree_retro == DDN, Enais_retro := TRUE]  # s'il est né pendant l'étude
    dt[, Sdc_retro := FALSE][Dsortie_retro == DDC, Sdc_retro := TRUE]  # s'il est mort pendant l'étude
    dt[, NJRSpotentiel_ES_retro := as.integer(Dsortie_retro - Dentree_retro + 1)]  # nbre jours potentiel
    dt[, Admis_Continue_ES_retro := FALSE][NJRSadmis_retro == NJRSpotentiel_ES_retro, Admis_Continue_ES_retro := TRUE]  # si admis en continue
    dt[, NJRSpotentiel_Suivi_retro := as.integer(DFsuivi_retro - DDsuivi_retro + 1)]  # nbre de jours de suivi
    dt[, Admis_Continue_Suivi_retro := FALSE][NJRSadmis_retro == NJRSpotentiel_Suivi_retro, Admis_Continue_Suivi_retro := TRUE]  # si admis continue par rapport au suivi
    dt[, NJRSpotentiel_Etude := as.integer(FinEtude - DebutEtude + 1)]  # nbre de jours d'étude
    dt[, Admis_Continue_Etude := FALSE][NJRSadmis_retro == NJRSpotentiel_Etude, Admis_Continue_Etude := TRUE]  # si admis continue par rapport à l'étude
    dt[, `:=` (DDetude = eval(DebutEtude),
               DFetude = eval(FinEtude))]
    setnames(dt, c("DDP", "DFP"), c("DDP_retro", "DFP_retro"))
    col_order <- c(
      "ID", "SEXE", "DDN", "DDC", "DDsld",
      "DDP_retro", "DFP_retro", "NJRSadmis_retro",
      "DDetude", "DFetude", "NJRSpotentiel_Etude", "Admis_Continue_Etude",
      "DDsuivi_retro", "DFsuivi_retro", "NJRSpotentiel_Suivi_retro", "Admis_Continue_Suivi_retro",
      "Dentree_retro", "Dsortie_retro", "NJRSpotentiel_ES_retro", "Admis_Continue_ES_retro",
      "Enais_retro", "Sdc_retro"
    )
    setcolorder(dt, col_order)
    return(dt)
  } else {
    return(NULL)
  }
}
INESSS-QC/admissibilite1 documentation built on Aug. 7, 2020, 9:39 a.m.