R/admis_analyse_pros.R

#' Tableau d'analyse
#'
#' Admissibilité prospective. Indique la première période d'admissibilité 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_pros`**, **`DFP_pros`** : Date de début et de fin de la période d'admissibilité.
#' * **`NJRSadmis_pros`** : 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_pros`**, **`DFsuivi_pros`** : Date de début et de fin de suivi.
#' * **`NJRSpotentiel_Suivi_pros`** : 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_pros`** : `TRUE` ou `FALSE`. Indique si l’individu est admissible en continue par rapport aux dates de suivi (`NJRSadmis`/`NJRSpotentiel_Suivi` = 1).
#' * **`Dentree_pros`**, **`Dsortie_pros`** : Date d'entrée et date de sortie.
#' * **`NJRSpotentiel_ES_pros`** : Nombre de jours maximum qu’un individu peut être admissible entre la date d’entrée et la date de sortie.
#' * **`Admis_Continue_ES_pros`** : `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_pros`**, **`Sdc_pros`** : `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_pros <- function (dt) {

  if (!is.null(dt)) {

    dt <- copy(dt)
    DebutEtude <- attr(dt, "dates_etude")$Debut
    FinEtude <- attr(dt, "dates_etude")$Fin
    setkey(dt, ID, DDP)
    dt <- dt[  # conserver 1ere période d'admissibilité
      dt[, .I[1], .(ID)]$V1
    ]
    dt[, DDsuivi_pros := DebutEtude]  # début suivi selon l'étude ou la date de naissance
    dt[DDN > DebutEtude, DDsuivi_pros := DDN]
    dt[, DFsuivi_pros := FinEtude]  # fin suivi selon l'étude ou la date de décès
    dt[DDC < FinEtude, DFsuivi_pros := DDC]
    dt[, Dentree_pros := DDsuivi_pros]  # Date d'entrée = max(DDsuivi, DebutAdmis)
    dt[DDP > DDsuivi_pros, Dentree_pros := DDP]
    dt[, Dsortie_pros := DFsuivi_pros]  # Date de sortie = min(DFsuivi, FinAdmis)
    dt[DFP < DFsuivi_pros, Dsortie_pros := DFP]
    dt[, NJRSadmis_pros := as.integer(Dsortie_pros - Dentree_pros + 1)]  # nbre jours admis par période
    dt[, Enais_pros := FALSE][Dentree_pros == DDN, Enais_pros := TRUE]  # s'il est né pendant l'étude
    dt[, Sdc_pros := FALSE][Dsortie_pros == DDC, Sdc_pros := TRUE]  # s'il est mort pendant l'étude
    dt[, NJRSpotentiel_ES_pros := as.integer(Dsortie_pros - Dentree_pros + 1)]  # nbre jours potentiel
    dt[, Admis_Continue_ES_pros := FALSE][NJRSadmis_pros == NJRSpotentiel_ES_pros, Admis_Continue_ES_pros := TRUE]  # si admis en continue

    dt[, NJRSpotentiel_Suivi_pros := as.integer(DFsuivi_pros - DDsuivi_pros + 1)]  # nbre de jours de suivi
    dt[, Admis_Continue_Suivi_pros := FALSE][NJRSadmis_pros == NJRSpotentiel_Suivi_pros, Admis_Continue_Suivi_pros := 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_pros == 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_pros", "DFP_pros"))
    col_order <- c(
      "ID", "SEXE", "DDN", "DDC", "DDsld",
      "DDP_pros", "DFP_pros", "NJRSadmis_pros",
      "DDetude", "DFetude", "NJRSpotentiel_Etude", "Admis_Continue_Etude",
      "DDsuivi_pros", "DFsuivi_pros", "NJRSpotentiel_Suivi_pros", "Admis_Continue_Suivi_pros",
      "Dentree_pros", "Dsortie_pros", "NJRSpotentiel_ES_pros", "Admis_Continue_ES_pros",
      "Enais_pros", "Sdc_pros"
    )
    setcolorder(dt, col_order)

    return(dt)

  } else {
    return(NULL)
  }
}
INESSS-QC/admissibilite1 documentation built on Aug. 7, 2020, 9:39 a.m.