% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/trauma_04_population.R
\name{trauma_04_population}
\alias{trauma_04_population}
\title{Trauma-04 Populations}
\usage{
trauma_04_population(
  df = NULL,
  patient_scene_table = NULL,
  response_table = NULL,
  situation_table = NULL,
  vitals_table = NULL,
  exam_table = NULL,
  procedures_table = NULL,
  injury_table = NULL,
  disposition_table = NULL,
  erecord_01_col,
  incident_date_col = NULL,
  patient_DOB_col = NULL,
  epatient_15_col,
  epatient_16_col,
  esituation_02_col,
  eresponse_05_col,
  eresponse_10_col,
  transport_disposition_col,
  edisposition_23_col = lifecycle::deprecated(),
  edisposition_02_col,
  trauma_center_facility_IDs,
  evitals_06_col,
  evitals_10_col,
  evitals_12_col,
  evitals_14_col,
  evitals_15_col,
  evitals_21_col,
  eexam_16_col,
  eexam_20_col,
  eexam_23_col,
  eexam_25_col,
  eprocedures_03_col,
  einjury_01_col,
  einjury_03_col,
  einjury_04_col,
  einjury_09_col
)
}
\arguments{
\item{df}{A dataframe or tibble contianing EMS data where each row represents
an observation and columns represent features.}

\item{patient_scene_table}{A data.frame or tibble containing at least
ePatient, and eScene as a fact table.}

\item{response_table}{A data.frame or tibble containing at least the
eResponse fields needed for this measure's calculations.}

\item{situation_table}{A data.frame or tibble containing at least the
eSituation fields needed for this measure's calculations. Default is
\code{NULL}.}

\item{vitals_table}{A dataframe or tibble containing at least the eVitals
fields needed.}

\item{exam_table}{A data.frame or tibble containing only the eExam fields
needed for this measure's calculations. Default is \code{NULL}.}

\item{procedures_table}{A dataframe or tibble containing at least the
eProcedures fields needed.}

\item{injury_table}{A data frame or tibble containing fields from eInjury
needed for this measure's calculations.}

\item{disposition_table}{A data.frame or tibble containing only the
edisposition fields needed for this measure's calculations.}

\item{erecord_01_col}{The column representing the EMS record unique
identifier.}

\item{incident_date_col}{Column that contains the incident date. This
defaults to \code{NULL} as it is optional in case not available due to PII
restrictions.}

\item{patient_DOB_col}{Column that contains the patient's date of birth. This
defaults to \code{NULL} as it is optional in case not available due to PII
restrictions.}

\item{epatient_15_col}{Column representing the patient's numeric age agnostic
of unit.}

\item{epatient_16_col}{Column representing the patient's age unit ("Years",
"Months", "Days", "Hours", or "Minutes").}

\item{esituation_02_col}{Column indicating whether or not there was an
injury.}

\item{eresponse_05_col}{Column that contains eResponse.05 or the response
type.}

\item{eresponse_10_col}{Column name containing informatin about scene delays,
if any, of the EMS unit associated with the EMS event.}

\item{transport_disposition_col}{One or more unquoted column names (such as
edisposition.12, edisposition.30) containing transport disposition for an
EMS event identifying whether a transport occurred and by which unit.}

\item{edisposition_23_col}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#deprecated}{\figure{lifecycle-deprecated.svg}{options: alt='[Deprecated]'}}}{\strong{[Deprecated]}} Use
\code{edisposition_02_col} instead. You must also pass a character vector of
trauma center facility IDs to \code{trauma_center_facility_IDs} to ensure that
destination facility IDs passed via \code{edisposition_02_col} are correctly
identified as trauma centers as applicable.}

\item{edisposition_02_col}{Column name containing the code of the destination
the patient was delivered or transferred to.}

\item{trauma_center_facility_IDs}{A character vector of trauma center
facility IDs that will allow destination facilities documented in
\code{edisposition_02_col} to be classified correctly as trauma centers when
applicable.}

\item{evitals_06_col}{Numeric column containing systolic blood pressure
values.}

\item{evitals_10_col}{Column name containing the patient's heart rate
expressed as a number per minute.}

\item{evitals_12_col}{Numeric column containing pulse oximetry values.}

\item{evitals_14_col}{Column name containing the patient's respiratory rate
expressed as a number per minute.}

\item{evitals_15_col}{Column name containing the patient's respiratory
effort.}

\item{evitals_21_col}{Column name containing the patient's Glasgow Coma Score
Motor response.}

\item{eexam_16_col}{Column name containing the assessment findings associated
with the patient's extremities.}

\item{eexam_20_col}{Column name containing the assessment findings of the
patient's neurological examination.}

\item{eexam_23_col}{Column name containing the assessment findings associated
with the patient's lungs.}

\item{eexam_25_col}{Column name containing the assessment findings associated
with the patient's chest.}

\item{eprocedures_03_col}{Column containing procedure codes with or without
procedure names.}

\item{einjury_01_col}{Column name containing the category of the
reported/suspected external cause of the injury.}

\item{einjury_03_col}{Column describing Trauma triage criteria for the red
boxes (Injury Patterns and Mental Status and Vital Signs) in the 2021 ACS
National Guideline for the Field Triage of Injured Patients.}

\item{einjury_04_col}{Column name containing Trauma triage criteria for the
yellow boxes (Mechanism of Injury and EMS Judgment) in the current ACS
National Guideline for the Field Triage of Injured Patients.}

\item{einjury_09_col}{Column name containing the distance in feet the patient
fell, measured from the lowest point of the patient to the ground.}
}
\value{
A list that contains the following:
\itemize{
\item a tibble with counts for each filtering step,
\item a tibble for each population of interest
\item a tibble for the initial population
\item a tibble for the total dataset with computations
\item a tibble with a summary of missingness for each column in each table
}
}
\description{
This function processes EMS data to generate the population needed to
calculated the Trauma-04 NEMSQA measure.
}
\examples{

# create tables to test correct functioning

  # patient table
  patient_table <- tibble::tibble(

    erecord_01 = c("R1", "R2", "R3", "R4", "R5"),
    incident_date = as.Date(c("2025-01-01", "2025-01-05",
                              "2025-02-01", "2025-01-01",
                              "2025-06-01")
                              ),
    patient_dob = as.Date(c("2000-01-01", "2020-01-01",
                            "2023-02-01", "2023-01-01",
                            "1970-06-01")
                            ),
    epatient_15 = c(25, 5, 2, 2, 55),  # Ages
    epatient_16 = c("Years", "Years", "Years", "Years", "Years")

  )

  # response table
  response_table <- tibble::tibble(

    erecord_01 = c("R1", "R2", "R3", "R4", "R5"),
    eresponse_05 = rep(2205001, 5),
    eresponse_10 = rep(2210011, 5)
  )

  # situation table
  situation_table <- tibble::tibble(

    erecord_01 = c("R1", "R2", "R3", "R4", "R5"),
    esituation_02 = rep("Yes", 5),
  )

  # vitals table
  vitals_table <- tibble::tibble(

    erecord_01 = c("R1", "R2", "R3", "R4", "R5"),
    evitals_06 = c(100, 90, 80, 70, 85),
    evitals_10 = c(110, 89, 88, 71, 85),
    evitals_12 = c(50, 60, 70, 80, 75),
    evitals_14 = c(30, 9, 8, 7, 31),
    evitals_15 = c("apneic", "labored", "rapid", "shallow", "weak/agonal"),
    evitals_21 = c(5, 4, 3, 2, 1)
  )

  # disposition table
  disposition_table <- tibble::tibble(
  erecord_01 = c("R1", "R2", "R3", "R4", "R5"),
  edisposition_02 = as.character(c(
    9908029,
    9908027,
    9908025,
    9908023,
    9876543
  )),
  edisposition_30 = c(4230001, 4230003, 4230001, 4230007, 4230007)
)

  # injury table
  injury_table <- tibble::tibble(
    erecord_01 = c("R1", "R2", "R3", "R4", "R5"),
    einjury_01 = c("V20", "V36", "V86", "V39", "V32"),
    einjury_03 = c(2903011, 2903009, 2903005, 3903003, 2903001),
    einjury_04 = c(2904013, 2904011, 2904009, 2904007, 2904001),
    einjury_09 = c(11, 12, 13, 14, 15)
  )

  # exam table
  exam_table <- tibble::tibble(
    erecord_01 = c("R1", "R2", "R3", "R4", "R5"),
    eexam_16 = c(3516043, 3516067, 3516043, 3516067, 3516067),
    eexam_20 = c(3520045, 3520043, 3520019, 3520017, 3520017),
    eexam_23 = c(3523011, 3523003, 3523001, 3523011, 3523003),
    eexam_25 = c(3525039, 3525023, 3525005, 3525039, 3525023)
  )

  # procedures table
  procedures_table <- tibble::tibble(
    erecord_01 = c("R1", "R2", "R3", "R4", "R5"),
    eprocedures_03 = c(424979004, 427753009, 429705000, 47545007, 243142003)
  )

# test the success of the function
result <- trauma_04_population(
  patient_scene_table = patient_table,
  response_table = response_table,
  situation_table = situation_table,
  vitals_table = vitals_table,
  disposition_table = disposition_table,
  exam_table = exam_table,
  injury_table = injury_table,
  procedures_table = procedures_table,
  erecord_01_col = erecord_01,
  incident_date_col = incident_date,
  patient_DOB_col = patient_dob,
  epatient_15_col = epatient_15,
  epatient_16_col = epatient_16,
  eresponse_05_col = eresponse_05,
  eresponse_10_col = eresponse_10,
  esituation_02_col = esituation_02,
  evitals_06_col = evitals_06,
  evitals_10_col = evitals_10,
  evitals_12_col = evitals_12,
  evitals_14_col = evitals_14,
  evitals_15_col = evitals_15,
  evitals_21_col = evitals_21,
  eexam_16_col = eexam_16,
  eexam_20_col = eexam_20,
  eexam_23_col = eexam_23,
  eexam_25_col = eexam_25,
  edisposition_02_col = edisposition_02,
  trauma_center_facility_IDs = as.character(c(
    9908029,
    9908027,
    9908025,
    9908023,
    9908021
  )),
  transport_disposition_col = edisposition_30,
  eprocedures_03_col = eprocedures_03,
  einjury_01_col = einjury_01,
  einjury_03_col = einjury_03,
  einjury_04_col = einjury_04,
  einjury_09_col = einjury_09
)

# show the results of filtering at each step
result$filter_process

}
\author{
Nicolas Foss, Ed.D., MS
}
