Filters data down to the target populations for Safety-04, and categorizes records to identify needed information for the calculations.
Identifies key categories related to a 911 request or interfacility request for patients less than 8 years of age during which patients are transported using a pediatric restraint device. This function segments the data by age into adult and pediatric populations.
Usage
safety_04_population(
df = NULL,
patient_scene_table = NULL,
response_table = NULL,
arrest_table = NULL,
injury_table = NULL,
procedures_table = NULL,
disposition_table = NULL,
erecord_01_col,
incident_date_col = NULL,
patient_DOB_col = NULL,
epatient_15_col,
epatient_16_col,
eresponse_05_col,
earrest_01_col,
einjury_03_col,
eprocedures_03_col,
edisposition_14_col,
transport_disposition_col
)Arguments
- df
A dataframe or tibble contianing EMS data where each row represents an observation and columns represent features.
- patient_scene_table
A data.frame or tibble containing at least ePatient, and eScene as a fact table.
- response_table
A data.frame or tibble containing at least the eResponse fields needed for this measure's calculations.
- arrest_table
A data.frame or tibble containing at least the eArrest fields needed for this measure's calculations.
- injury_table
A data frame or tibble containing fields from eInjury needed for this measure's calculations.
- procedures_table
A dataframe or tibble containing at least the eProcedures fields needed.
- disposition_table
A data.frame or tibble containing only the edisposition fields needed for this measure's calculations.
- erecord_01_col
The column representing the EMS record unique identifier.
- incident_date_col
Column that contains the incident date. This defaults to
NULLas it is optional in case not available due to PII restrictions.- patient_DOB_col
Column that contains the patient's date of birth. This defaults to
NULLas it is optional in case not available due to PII restrictions.- epatient_15_col
Column representing the patient's numeric age agnostic of unit.
- epatient_16_col
Column representing the patient's age unit ("Years", "Months", "Days", "Hours", or "Minutes").
- eresponse_05_col
Column that contains eResponse.05 or the response type.
- earrest_01_col
Column representing whether or not the patient is in arrest.
- 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.
- eprocedures_03_col
Column containing procedure codes with or without procedure names.
- edisposition_14_col
Column giving the position of the patient during transport from the scene.
- 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.
Value
A list that contains the following:
a tibble with counts for each filtering step,
a tibble for each population of interest
a tibble for the initial population
a tibble for the total dataset with computations
a tibble with a summary of missingness for each column in each table
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)
)
# disposition table
disposition_table <- tibble::tibble(
erecord_01 = c("R1", "R2", "R3", "R4", "R5"),
edisposition_14 = rep(4214001, 5),
edisposition_30 = rep(4230001, 5),
)
# arrest table
arrest_table <- tibble::tibble(
erecord_01 = c("R1", "R2", "R3", "R4", "R5"),
earrest_01 = rep("No", 5)
)
# injury table
injury_table <- tibble::tibble(
erecord_01 = c("R1", "R2", "R3", "R4", "R5"),
einjury_03 = rep("non-injury", 5)
)
# procedures table
procedures_table <- tibble::tibble(
erecord_01 = c("R1", "R2", "R3", "R4", "R5"),
eprocedures_03 = rep("other response", 5)
)
# test the success of the function
result <- safety_04_population(patient_scene_table = patient_table,
response_table = response_table,
arrest_table = arrest_table,
injury_table = injury_table,
procedures_table = procedures_table,
disposition_table = disposition_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,
earrest_01_col = earrest_01,
einjury_03_col = einjury_03,
edisposition_14_col = edisposition_14,
transport_disposition_col = edisposition_30,
eprocedures_03_col = eprocedures_03
)
#> Running `safety_04_population()` [Working on 1 of 13 tasks] ●●●───────────────…
#> Running `safety_04_population()` [Working on 2 of 13 tasks] ●●●●●●────────────…
#> Running `safety_04_population()` [Working on 3 of 13 tasks] ●●●●●●●●──────────…
#> Running `safety_04_population()` [Working on 4 of 13 tasks] ●●●●●●●●●●────────…
#> Running `safety_04_population()` [Working on 5 of 13 tasks] ●●●●●●●●●●●●●─────…
#> Running `safety_04_population()` [Working on 6 of 13 tasks] ●●●●●●●●●●●●●●●───…
#> Running `safety_04_population()` [Working on 7 of 13 tasks] ●●●●●●●●●●●●●●●●●─…
#> Running `safety_04_population()` [Working on 8 of 13 tasks] ●●●●●●●●●●●●●●●●●●…
#> Running `safety_04_population()` [Working on 9 of 13 tasks] ●●●●●●●●●●●●●●●●●●…
#> Running `safety_04_population()` [Working on 10 of 13 tasks] ●●●●●●●●●●●●●●●●●…
#> Running `safety_04_population()` [Working on 11 of 13 tasks] ●●●●●●●●●●●●●●●●●…
#> Running `safety_04_population()` [Working on 12 of 13 tasks] ●●●●●●●●●●●●●●●●●…
#> Running `safety_04_population()` [Working on 13 of 13 tasks] ●●●●●●●●●●●●●●●●●…
#>
# show the results of filtering at each step
result$filter_process
#> # A tibble: 10 × 2
#> filter count
#> <chr> <int>
#> 1 Transport runs 5
#> 2 Interfacility runs 0
#> 3 Cardiac arrest calls 0
#> 4 Severe injury calls 0
#> 5 Calls involving long board 0
#> 6 Calls involving an airway procedure 0
#> 7 Car seat used 5
#> 8 Peds denominator 3
#> 9 Initial population 3
#> 10 Total dataset 5
