Title: | The Phoenix Pediatric Sepsis and Septic Shock Criteria |
---|---|
Description: | Implementation of the Phoenix and Phoenix-8 Sepsis Criteria as described in "Development and Validation of the Phoenix Criteria for Pediatric Sepsis and Septic Shock" by Sanchez-Pinto, Bennett, DeWitt, Russell et al. (2024) <doi:10.1001/jama.2024.0196> (Drs. Sanchez-Pinto and Bennett contributed equally to this manuscript; Dr. DeWitt and Mr. Russell contributed equally to the manuscript), "International Consensus Criteria for Pediatric Sepsis and Septic Shock" by Schlapbach, Watson, Sorce, Argent, et al. (2024) <doi:10.1001/jama.2024.0179> (Drs Schlapbach, Watson, Sorce, and Argent contributed equally) and the application note "phoenix: an R package and Python module for calculating the Phoenix pediatric sepsis score and criteria" by DeWitt, Russell, Rebull, Sanchez-Pinto, and Bennett (2024) <doi:10.1093/jamiaopen/ooae066>. |
Authors: | Peter DeWitt [aut, cre] , Seth Russell [ctb] , Meg Rebull [ctb] , Tell Bennett [ctb] , L. Nelson Sanchez-Pinto [ctb] |
Maintainer: | Peter DeWitt <[email protected]> |
License: | MIT + file LICENSE |
Version: | 1.1.1 |
Built: | 2024-11-13 05:44:50 UTC |
Source: | https://github.com/cu-dbmi-peds/phoenix |
Estimate mean arterial pressure from systolic and diastolic blood pressures.
map(sbp, dbp)
map(sbp, dbp)
sbp |
numeric vector, systolic blood pressure measured in mmHg |
dbp |
numeric vector, diastolic blood pressure measured in mmHg |
Mean Arterial Pressure is approximated by: (DBP + (SBP - DBP) / 3) = (2/3) DBP + (1/3) SBP
a numeric vector
DF <- expand.grid(sbp = 40:130, dbp = 20:100) DF$map <- with(DF, map(sbp, dbp)) with(DF, plot(sbp, dbp, col = map)) DF$map[DF$sbp < DF$dbp] <- NA z <- matrix(DF$map, nrow = length(unique(DF$sbp)), ncol = length(unique(DF$dbp))) image( x = unique(DF$sbp), y = unique(DF$dbp), z = z, col = hcl.colors(100, palette = "RdBu"), xlab = "SBP (mmHg)", ylab = "DBP (mmHg)", main = "Estimated Mean Arterial Pressue" ) contour(x = unique(DF$sbp), y = unique(DF$dbp), z = z, add = TRUE)
DF <- expand.grid(sbp = 40:130, dbp = 20:100) DF$map <- with(DF, map(sbp, dbp)) with(DF, plot(sbp, dbp, col = map)) DF$map[DF$sbp < DF$dbp] <- NA z <- matrix(DF$map, nrow = length(unique(DF$sbp)), ncol = length(unique(DF$dbp))) image( x = unique(DF$sbp), y = unique(DF$dbp), z = z, col = hcl.colors(100, palette = "RdBu"), xlab = "SBP (mmHg)", ylab = "DBP (mmHg)", main = "Estimated Mean Arterial Pressue" ) contour(x = unique(DF$sbp), y = unique(DF$dbp), z = z, add = TRUE)
The diagnostic Phoenix Sepsis Criteria based on four organ dysfunction scores, respiratory, cardiovascular, coagulation, and neurologic. A score of 2 or more indicates sepsis.
phoenix( pf_ratio, sf_ratio, imv, other_respiratory_support, vasoactives, lactate, map, platelets, inr, d_dimer, fibrinogen, gcs, fixed_pupils, age, data = parent.frame(), ... )
phoenix( pf_ratio, sf_ratio, imv, other_respiratory_support, vasoactives, lactate, map, platelets, inr, d_dimer, fibrinogen, gcs, fixed_pupils, age, data = parent.frame(), ... )
pf_ratio |
numeric vector for the PaO2/FiO2 ratio; PaO2 = arterial oxygen pressure; FiO2 = fraction of inspired oxygen; PaO2 is measured in mmHg and FiO2 is from 0.21 (room air) to 1.00. |
sf_ratio |
numeric vector for the SpO2/FiO2 ratio; SpO2 = oxygen saturation, measured in a percent; ratio for 92% oxygen saturation on room air is 92/0.21 = 438.0952. |
imv |
invasive mechanical ventilation; numeric or integer vector, (0 = not intubated; 1 = intubated) |
other_respiratory_support |
other respiratory support; numeric or integer vector, (0 = no support; 1 = support) |
vasoactives |
an integer vector, the number of systemic vasoactive medications being administered to the patient. Six vasoactive medications are considered: dobutamine, dopamine, epinephrine, milrinone, norepinephrine, vasopressin. |
lactate |
numeric vector with the lactate value in mmol/L |
map |
numeric vector, mean arterial pressure in mmHg |
platelets |
numeric vector for platelets counts in units of 1,000/uL (thousand per microliter) |
inr |
numeric vector for the international normalised ratio blood test |
d_dimer |
numeric vector for D-Dimer, units of mg/L FEU |
fibrinogen |
numeric vector units of mg/dL |
gcs |
integer vector; total Glasgow Comma Score |
fixed_pupils |
integer vector; 1 = bilaterally fixed pupil, 0 = otherwise |
age |
numeric vector age in months |
data |
a |
... |
pass through |
The details of each of the four component scores are found in there respective help files.
A data.frame
with seven columns:
phoenix_respiratory_score
phoenix_cardiovascular_score
phoenix_coagulation_score
phoenix_neurologic_score
phoenix_sepsis_score
phoenix_sepsis
An integer vector, 0 = not septic, 1 = septic (score greater or equal to 2)
phoenix_septic_shock
An integer vector, 0 = not septic shock, 1 = septic shock (score greater or equal 2 and cardiovascular dysfunction)
As with all other Phoenix organ system scores, missing values in the data set will map to a score of zero - this is consistent with the development of the criteria.
See reference details in phoenix-package
or by calling
citation('phoenix')
.
phoenix
for generating the diagnostic Phoenix
Sepsis score based on the four organ systems:
phoenix8
for generating the diagnostic Phoenix 8
Sepsis criteria based on the four organ systems noted above and
vignette('phoenix')
for more details and examples.
# Using the example sepsis data set, read more details in the vignette phoenix_scores <- phoenix( # respiratory pf_ratio = pao2 / fio2, sf_ratio = ifelse(spo2 <= 97, spo2 / fio2, NA_real_), imv = vent, other_respiratory_support = as.integer(fio2 > 0.21), # cardiovascular vasoactives = dobutamine + dopamine + epinephrine + milrinone + norepinephrine + vasopressin, lactate = lactate, age = age, map = dbp + (sbp - dbp)/3, # coagulation platelets = platelets, inr = inr, d_dimer = d_dimer, fibrinogen = fibrinogen, # neurologic gcs = gcs_total, fixed_pupils = as.integer(pupil == "both-fixed"), data = sepsis ) str(phoenix_scores)
# Using the example sepsis data set, read more details in the vignette phoenix_scores <- phoenix( # respiratory pf_ratio = pao2 / fio2, sf_ratio = ifelse(spo2 <= 97, spo2 / fio2, NA_real_), imv = vent, other_respiratory_support = as.integer(fio2 > 0.21), # cardiovascular vasoactives = dobutamine + dopamine + epinephrine + milrinone + norepinephrine + vasopressin, lactate = lactate, age = age, map = dbp + (sbp - dbp)/3, # coagulation platelets = platelets, inr = inr, d_dimer = d_dimer, fibrinogen = fibrinogen, # neurologic gcs = gcs_total, fixed_pupils = as.integer(pupil == "both-fixed"), data = sepsis ) str(phoenix_scores)
Generate the cardiovascular organ system dysfunction score as part of the diagnostic Phoenix Sepsis Criteria.
phoenix_cardiovascular( vasoactives = NA_integer_, lactate = NA_real_, age = NA_real_, map = NA_real_, data = parent.frame(), ... )
phoenix_cardiovascular( vasoactives = NA_integer_, lactate = NA_real_, age = NA_real_, map = NA_real_, data = parent.frame(), ... )
vasoactives |
an integer vector, the number of systemic vasoactive medications being administered to the patient. Six vasoactive medications are considered: dobutamine, dopamine, epinephrine, milrinone, norepinephrine, vasopressin. |
lactate |
numeric vector with the lactate value in mmol/L |
age |
numeric vector age in months |
map |
numeric vector, mean arterial pressure in mmHg |
data |
a |
... |
pass through |
There where six systemic vasoactive medications considered when the Phoenix criteria was developed: dobutamine, dopamine, epinephrine, milrinone, norepinephrine, and vasopressin.
During development, the values used for map
were taken preferentially
from arterial measurement, then cuff measures, and provided values before
approximating the map from blood pressure values via DBP + 1/3 (SBP - DBP),
where DBP is the diastolic blood pressure and SBP is the systolic blood
pressure.
a integer vector with values 0, 1, 2, 3, 4, 5, or 6.
As with all other Phoenix organ system scores, missing values in the data set will map to a score of zero - this is consistent with the development of the criteria.
The Phoenix Cardiovascular score ranges from 0 to 6 points; 0, 1, or 2 points for each of systolic vasoactive medications, lactate, and MAP.
Systemic Vasoactive Medications
0 medications | 0 points |
1 medication | 1 point |
2 or more medications | 2 points |
Lactate
[0, 5) | 0 points |
[5, 11) | 1 point |
[11, Inf) | 2 points |
MAP
Age in [0, 1) months | ||
[31, Inf) mmHg | 0 points | |
[17, 31) mmHg | 1 point | |
[0, 17) mmHg | 2 points | |
Age in [1, 12) months | ||
[39, Inf) mmHg | 0 points | |
[25, 39) mmHg | 1 point | |
[0, 25) mmHg | 2 points | |
Age in [12, 24) months | ||
[44, Inf) mmHg | 0 points | |
[31, 44) mmHg | 1 point | |
[0, 31) mmHg | 2 points | |
Age in [24, 60) months | ||
[45, Inf) mmHg | 0 points | |
[32, 45) mmHg | 1 point | |
[0, 32) mmHg | 2 points | |
Age in [60, 144) months | ||
[49, Inf) mmHg | 0 points | |
[36, 49) mmHg | 1 point | |
[0, 36) mmHg | 2 points | |
Age in [144, 216] months | ||
[52, Inf) mmHg | 0 points | |
[38, 52) mmHg | 1 point | |
[0, 38) mmHg | 2 points | |
See reference details in phoenix-package
or by calling
citation('phoenix')
.
phoenix
for generating the diagnostic Phoenix
Sepsis score based on the four organ systems:
phoenix8
for generating the diagnostic Phoenix 8
Sepsis criteria based on the four organ systems noted above and
vignette('phoenix')
for more details and examples.
# using the example sepsis data set phoenix_cardiovascular( vasoactives = dobutamine + dopamine + epinephrine + milrinone + norepinephrine + vasopressin, lactate = lactate, age = age, map = dbp + (sbp - dbp)/3, data = sepsis ) # example data set to get all the possible scores DF <- expand.grid(vasos = c(NA, 0:6), lactate = c(NA, 3.2, 5, 7.8, 11, 14), age = c(NA, 0.4, 1, 3, 12, 18, 24, 45, 60, 61, 144, 145), map = c(NA, 16:52)) DF$card <- phoenix_cardiovascular(vasos, lactate, age, map, DF) head(DF) # what if lactate is unknown for all records? - set the value either in the # data object or the arguement value to NA DF2 <- expand.grid(vasos = c(NA, 0:6), age = c(NA, 0.4, 1, 3, 12, 18, 24, 45, 60, 61, 144, 145), map = c(NA, 16:52)) DF2$card <- phoenix_cardiovascular(vasos, lactate = NA, age, map, DF2) DF3 <- expand.grid(vasos = c(NA, 0:6), lactate = NA, age = c(NA, 0.4, 1, 3, 12, 18, 24, 45, 60, 61, 144, 145), map = c(NA, 16:52)) DF3$card <- phoenix_cardiovascular(vasos, lactate, age, map, DF3) identical(DF2$card, DF3$card)
# using the example sepsis data set phoenix_cardiovascular( vasoactives = dobutamine + dopamine + epinephrine + milrinone + norepinephrine + vasopressin, lactate = lactate, age = age, map = dbp + (sbp - dbp)/3, data = sepsis ) # example data set to get all the possible scores DF <- expand.grid(vasos = c(NA, 0:6), lactate = c(NA, 3.2, 5, 7.8, 11, 14), age = c(NA, 0.4, 1, 3, 12, 18, 24, 45, 60, 61, 144, 145), map = c(NA, 16:52)) DF$card <- phoenix_cardiovascular(vasos, lactate, age, map, DF) head(DF) # what if lactate is unknown for all records? - set the value either in the # data object or the arguement value to NA DF2 <- expand.grid(vasos = c(NA, 0:6), age = c(NA, 0.4, 1, 3, 12, 18, 24, 45, 60, 61, 144, 145), map = c(NA, 16:52)) DF2$card <- phoenix_cardiovascular(vasos, lactate = NA, age, map, DF2) DF3 <- expand.grid(vasos = c(NA, 0:6), lactate = NA, age = c(NA, 0.4, 1, 3, 12, 18, 24, 45, 60, 61, 144, 145), map = c(NA, 16:52)) DF3$card <- phoenix_cardiovascular(vasos, lactate, age, map, DF3) identical(DF2$card, DF3$card)
Applies the Phoenix coagulation organ dysfunction scoring to a set of inputs.
phoenix_coagulation( platelets = NA_real_, inr = NA_real_, d_dimer = NA_real_, fibrinogen = NA_real_, data = parent.frame(), ... )
phoenix_coagulation( platelets = NA_real_, inr = NA_real_, d_dimer = NA_real_, fibrinogen = NA_real_, data = parent.frame(), ... )
platelets |
numeric vector for platelets counts in units of 1,000/uL (thousand per microliter) |
inr |
numeric vector for the international normalised ratio blood test |
d_dimer |
numeric vector for D-Dimer, units of mg/L FEU |
fibrinogen |
numeric vector units of mg/dL |
data |
a |
... |
pass through |
a integer vector with values 0, 1, or 2
As with all other Phoenix organ system scores, missing values in the data set will map to a score of zero - this is consistent with the development of the criteria.
1 point each for platelets < 100 K/micro liter, INR > 1.3, D-dimer > 2 mg/L FEU, and fibrinogen < 100 mg/dL, with a max total score of 2.
See reference details in phoenix-package
or by calling
citation('phoenix')
.
phoenix
for generating the diagnostic Phoenix
Sepsis score based on the four organ systems:
phoenix8
for generating the diagnostic Phoenix 8
Sepsis criteria based on the four organ systems noted above and
vignette('phoenix')
for more details and examples.
# using the example data set phoenix_coagulation( platelets = platelets, inr = inr, d_dimer = d_dimer, fibrinogen = fibrinogen, data = sepsis ) # build a data.frame with values for all possible combationations of values # leading to all possible coagulation scores. DF <- expand.grid(plts = c(NA, 20, 100, 150), inr = c(NA, 0.2, 1.3, 1.8), ddmr = c(NA, 1.7, 2.0, 2.8), fib = c(NA, 88, 100, 120)) DF$coag <- phoenix_coagulation(plts, inr, ddmr, fib, DF) DF
# using the example data set phoenix_coagulation( platelets = platelets, inr = inr, d_dimer = d_dimer, fibrinogen = fibrinogen, data = sepsis ) # build a data.frame with values for all possible combationations of values # leading to all possible coagulation scores. DF <- expand.grid(plts = c(NA, 20, 100, 150), inr = c(NA, 0.2, 1.3, 1.8), ddmr = c(NA, 1.7, 2.0, 2.8), fib = c(NA, 88, 100, 120)) DF$coag <- phoenix_coagulation(plts, inr, ddmr, fib, DF) DF
Assess the Phoenix endocrine organ dysfunction score. This score is not part of the Phoenix score, only part of the Phoenix-8 score.
phoenix_endocrine(glucose = NA_real_, data = parent.frame(), ...)
phoenix_endocrine(glucose = NA_real_, data = parent.frame(), ...)
glucose |
numeric vector; blood glucose measured in mg/dL |
data |
a |
... |
pass through |
a integer vector with values 0 or 1
As with all other Phoenix organ system scores, missing values in the data set will map to a score of zero - this is consistent with the development of the criteria.
The endocrine dysfunction score is based on blood glucose with one point for levels < 50 mg/dL or > 150 mg/dL.
See reference details in phoenix-package
or by calling
citation('phoenix')
.
phoenix
for generating the diagnostic
Phoenix Sepsis score based on the four organ systems:
phoenix8
for
generating the diagnostic Phoenix 8 Sepsis criteria based on the four organ
systems noted above and
vignette('phoenix')
for more details and examples.
# using the example sepsis data set endo_example <- sepsis[c("pid", "glucose")] endo_example$score <- phoenix_endocrine(glucose, data = sepsis) endo_example # example data set to get all the possible endocrine scores DF <- data.frame(glc = c(NA, 12, 50, 55, 100, 150, 178)) phoenix_endocrine(glucose = glc, data = DF)
# using the example sepsis data set endo_example <- sepsis[c("pid", "glucose")] endo_example$score <- phoenix_endocrine(glucose, data = sepsis) endo_example # example data set to get all the possible endocrine scores DF <- data.frame(glc = c(NA, 12, 50, 55, 100, 150, 178)) phoenix_endocrine(glucose = glc, data = DF)
Apply the Phoenix Hepatic scoring based on total bilirubin and ALT.
phoenix_hepatic( bilirubin = NA_real_, alt = NA_real_, data = parent.frame(), ... )
phoenix_hepatic( bilirubin = NA_real_, alt = NA_real_, data = parent.frame(), ... )
bilirubin |
numeric vector; units of mg/dL |
alt |
alanine aminotransferase; a numeric vector; units of IU/L |
data |
a |
... |
pass through |
a integer vector with values 0 or 1
As with all other Phoenix organ system scores, missing values in the data set will map to a score of zero - this is consistent with the development of the criteria.
1 point for total bilirubin greater or equal to 4 mg/dL and/or ALT strictly greater than 102 IU/L.
See reference details in phoenix-package
or by calling
citation('phoenix')
.
phoenix
for generating the diagnostic Phoenix
Sepsis score based on the four organ systems:
phoenix8
for generating the diagnostic Phoenix 8
Sepsis criteria based on the four organ systems noted above and
vignette('phoenix')
for more details and examples.
# using the example sepsis data set hep_example <- sepsis[c("pid", "bilirubin", "alt")] hep_example$score <- phoenix_hepatic(bilirubin, alt, sepsis) hep_example # example data set with all possilbe hepatic scores DF <- expand.grid(bil = c(NA, 3.2, 4.0, 4.3), alt = c(NA, 99, 102, 106)) phoenix_hepatic(bilirubin = bil, alt = alt, data = DF)
# using the example sepsis data set hep_example <- sepsis[c("pid", "bilirubin", "alt")] hep_example$score <- phoenix_hepatic(bilirubin, alt, sepsis) hep_example # example data set with all possilbe hepatic scores DF <- expand.grid(bil = c(NA, 3.2, 4.0, 4.3), alt = c(NA, 99, 102, 106)) phoenix_hepatic(bilirubin = bil, alt = alt, data = DF)
Apply the Phoenix immunologic scoring based on ANC and ALC. This is only part of Phoenix-8 and not Phoenix.
phoenix_immunologic(anc = NA_real_, alc = NA_real_, data = parent.frame(), ...)
phoenix_immunologic(anc = NA_real_, alc = NA_real_, data = parent.frame(), ...)
anc |
absolute neutrophil count; a numeric vector; units of 1,000 cells per cubic millimeter |
alc |
absolute lymphocyte count; a numeric vector; units of 1,000 cells per cubic millimeter |
data |
a |
... |
pass through |
a integer vector with values 0 or 1
As with all other Phoenix organ system scores, missing values in the data set will map to a score of zero - this is consistent with the development of the criteria.
1 point if ANC < 500 or ALC < 1000 cells per cubic millimeter.
See reference details in phoenix-package
or by calling
citation('phoenix')
.
phoenix
for generating the diagnostic Phoenix
Sepsis score based on the four organ systems:
phoenix8
for generating the diagnostic Phoenix 8
Sepsis criteria based on the four organ systems noted above and
vignette('phoenix')
for more details and examples.
# using the example sepsis data set immu_example <- sepsis[c("pid", "anc", "alc")] immu_example$score <- phoenix_immunologic(anc, alc, sepsis) immu_example # using the example sepsis data set hep_example <- sepsis[c("pid", "bilirubin", "alt")] hep_example$score <- phoenix_hepatic(bilirubin, alt, sepsis) hep_example # example data set with all possilbe hepatic scores DF <- expand.grid(anc = c(NA, 200, 500, 600), alc = c(NA, 500, 1000, 2000)) phoenix_immunologic(anc = anc, alc = alc, data = DF)
# using the example sepsis data set immu_example <- sepsis[c("pid", "anc", "alc")] immu_example$score <- phoenix_immunologic(anc, alc, sepsis) immu_example # using the example sepsis data set hep_example <- sepsis[c("pid", "bilirubin", "alt")] hep_example$score <- phoenix_hepatic(bilirubin, alt, sepsis) hep_example # example data set with all possilbe hepatic scores DF <- expand.grid(anc = c(NA, 200, 500, 600), alc = c(NA, 500, 1000, 2000)) phoenix_immunologic(anc = anc, alc = alc, data = DF)
Assessment of neurologic dysfunction based on Glasgow Coma Scale (GCS) and pupil reactivity. This score is part of the diagnostic Phoenix Sepsis criteria and Phoenix 8 Sepsis criteria.
phoenix_neurologic( gcs = NA_integer_, fixed_pupils = NA_real_, data = parent.frame(), ... )
phoenix_neurologic( gcs = NA_integer_, fixed_pupils = NA_real_, data = parent.frame(), ... )
gcs |
integer vector; total Glasgow Comma Score |
fixed_pupils |
integer vector; 1 = bilaterally fixed pupil, 0 = otherwise |
data |
a |
... |
pass through |
Missing values will map to a value of 0 as was done when developing the Phoenix criteria. Note that this is done on a input by input basis. That is, if pupil reactivity is missing but GCS (total) is 9, then the neurologic dysfunction score is 1.
GCS total is the sum of a score based on eyes, motor control, and verbal responsiveness.
Eye response:
no eye opening,
eye opening to pain,
eye opening to sound,
eyes open spontaneously.
Verbal response:
no verbal response,
incomprehensible sounds,
inappropriate words,
confused,
orientated
Motor response:
no motor response,
abnormal extension to pain,
abnormal flexion to pain,
withdrawal from pain,
localized pain,
obeys commands
an integer vector with values 0, 1, or 2. As with all Phoenix organ dysfunction scores, missing input values map to scores of zero.
Bilaterally fixed pupil | 2 points |
Glasgow Coma Score (total) less or equal 10 | 1 point |
Reactive pupils and GCS > 10 | 0 point |
See reference details in phoenix-package
or by calling
citation('phoenix')
.
phoenix
for generating the diagnostic Phoenix
Sepsis score based on the four organ systems:
phoenix8
for generating the diagnostic Phoenix 8
Sepsis criteria based on the four organ systems noted above and
vignette('phoenix')
for more details and examples.
# using the example sepsis data set phoenix_neurologic( gcs = gcs_total, fixed_pupils = as.integer(pupil == "both-fixed"), data = sepsis ) # build an example data set with all possible neurologic scores DF <- expand.grid(gcs = c(3:15, NA), pupils = c(0, 1, NA)) DF$target <- 0L DF$target[DF$gcs <= 10] <- 1L DF$target[DF$pupils == 1] <- 2L DF$current <- phoenix_neurologic(gcs, pupils, DF) stopifnot(identical(DF$target, DF$current)) DF
# using the example sepsis data set phoenix_neurologic( gcs = gcs_total, fixed_pupils = as.integer(pupil == "both-fixed"), data = sepsis ) # build an example data set with all possible neurologic scores DF <- expand.grid(gcs = c(3:15, NA), pupils = c(0, 1, NA)) DF$target <- 0L DF$target[DF$gcs <= 10] <- 1L DF$target[DF$pupils == 1] <- 2L DF$current <- phoenix_neurologic(gcs, pupils, DF) stopifnot(identical(DF$target, DF$current)) DF
Apply the Phoenix renal organ dysfunction score based on age adjusted creatinine levels.
phoenix_renal( creatinine = NA_real_, age = NA_real_, data = parent.frame(), ... )
phoenix_renal( creatinine = NA_real_, age = NA_real_, data = parent.frame(), ... )
creatinine |
numeric vector; units of mg/dL |
age |
numeric vector age in months |
data |
a |
... |
pass through |
a integer vector with values 0, 1, or 2
As with all other Phoenix organ system scores, missing values in the data set will map to a score of zero - this is consistent with the development of the criteria.
Age in [0, 1) months | ||
creatinine [0, 0.8) mg/dL | 0 points | |
creatinine [0.8, Inf) mg/dL | 1 point | |
Age in [1, 12) months | ||
creatinine in [0, 0.3) mg/dL | 0 points | |
creatinine in [0.3, Inf) mg/dL | 1 point | |
Age in [12, 24) months | ||
creatinine in [0, 0.4) mg/dL | 0 points | |
creatinine in [0.4, Inf) mg/dL | 1 point | |
Age in [24, 60) months | ||
creatinine in [0, 0.6) mg/dL | 0 points | |
creatinine in [0.6, Inf) mg/dL | 1 point | |
Age in [60, 144) months | ||
creatinine in [0, 0.7) mg/dL | 0 points | |
creatinine in [0.7, Inf) mg/dL | 1 point | |
Age in [144, 216] months | ||
creatinine in [0, 1.0) mg/dL | 0 points | |
creatinine in [1.0, Inf) mg/dL | 1 point | |
See reference details in phoenix-package
or by calling
citation('phoenix')
.
phoenix
for generating the diagnostic Phoenix
Sepsis score based on the four organ systems:
phoenix8
for generating the diagnostic Phoenix 8
Sepsis criteria based on the four organ systems noted above and
vignette('phoenix')
for more details and examples.
# using the example sepsis data set renal_example <- sepsis[c("creatinine", "age")] renal_example$score <- phoenix_renal(creatinine, age, sepsis) renal_example # build an example data set with all possible neurologic scores DF <- expand.grid(age = c(NA, 0.4, 1, 3, 12, 18, 24, 45, 60, 61, 144, 145), creatinine = c(NA, seq(0.0, 1.1, by = 0.1))) DF$card <- phoenix_renal(age = age, creatinine = creatinine, data = DF) head(DF)
# using the example sepsis data set renal_example <- sepsis[c("creatinine", "age")] renal_example$score <- phoenix_renal(creatinine, age, sepsis) renal_example # build an example data set with all possible neurologic scores DF <- expand.grid(age = c(NA, 0.4, 1, 3, 12, 18, 24, 45, 60, 61, 144, 145), creatinine = c(NA, seq(0.0, 1.1, by = 0.1))) DF$card <- phoenix_renal(age = age, creatinine = creatinine, data = DF) head(DF)
Apply the Phoenix Respiratory Scoring rubric to a data set. The respiratory score is part of the diagnostic Phoenix Sepsis criteria and the diagnostic Phoenix 8 Sepsis criteria.
phoenix_respiratory( pf_ratio = NA_real_, sf_ratio = NA_real_, imv = NA_integer_, other_respiratory_support = NA_integer_, data = parent.frame(), ... )
phoenix_respiratory( pf_ratio = NA_real_, sf_ratio = NA_real_, imv = NA_integer_, other_respiratory_support = NA_integer_, data = parent.frame(), ... )
pf_ratio |
numeric vector for the PaO2/FiO2 ratio; PaO2 = arterial oxygen pressure; FiO2 = fraction of inspired oxygen; PaO2 is measured in mmHg and FiO2 is from 0.21 (room air) to 1.00. |
sf_ratio |
numeric vector for the SpO2/FiO2 ratio; SpO2 = oxygen saturation, measured in a percent; ratio for 92% oxygen saturation on room air is 92/0.21 = 438.0952. |
imv |
invasive mechanical ventilation; numeric or integer vector, (0 = not intubated; 1 = intubated) |
other_respiratory_support |
other respiratory support; numeric or integer vector, (0 = no support; 1 = support) |
data |
a |
... |
pass through |
pf_ratio
is the ratio of partial pressure of oxygen in arterial blood
(PaO2) to the fraction of inspiratory oxygen concentration (FiO2).
sf_ratio
is a non-invasive surrogate for pf_ratio
using pulse
oximetry (SpO2) instead of invasive PaO2.
Important Note: when the Phoenix Sepsis criteria was developed there is
a requirement that SpO2 < 97 in order for the sf_ratio
to be valid.
That assumption is not checked in this code and it is left to the end user to
account for this when building the sf_ratio
vector.
imv
Invasive mechanical ventilation - integer vector where 0 = not
intubated and 1 = intubated.
other_respiratory_support
other respiratory support such as receiving oxygen,
high-flow, non-invasive positive pressure, or imv.
a integer vector with values 0, 1, 2, or 3.
As with all other Phoenix organ system scores, missing values in the data set will map to a score of zero - this is consistent with the development of the criteria.
0 points | 1 point | 2 points | 3 points |
pf_ratio >= 400 and sf_ratio >= 292 | (pf_ratio < 400 or sf_ratio < 292) and any respiratory support | (pf_ratio < 200 or sf_ratio < 220) and imv | (pf_ratio < 100 or sf_ratio < 148) and imv |
See reference details in phoenix-package
or by calling
citation('phoenix')
.
phoenix
for generating the diagnostic Phoenix
Sepsis score based on the four organ systems:
phoenix8
for generating the diagnostic Phoenix 8
Sepsis criteria based on the four organ systems noted above and
vignette('phoenix')
for more details and examples.
# Using the provided example data set: phoenix_respiratory( pf_ratio = pao2 / fio2, sf_ratio = spo2 / fio2, imv = vent, other_respiratory_support = as.integer(fio2 > 0.21), data = sepsis ) # A set of values that will get all possible respiratory scores: DF <- expand.grid( pfr = c(NA, 500, 400, 350, 200, 187, 100, 56), sfr = c(NA, 300, 292, 254, 220, 177, 148, 76), vent = c(NA, 0, 1), o2 = c(NA, 0, 1) ) phoenix_respiratory( pf_ratio = pfr, sf_ratio = sfr, imv = vent, other_respiratory_support = o2, data = DF )
# Using the provided example data set: phoenix_respiratory( pf_ratio = pao2 / fio2, sf_ratio = spo2 / fio2, imv = vent, other_respiratory_support = as.integer(fio2 > 0.21), data = sepsis ) # A set of values that will get all possible respiratory scores: DF <- expand.grid( pfr = c(NA, 500, 400, 350, 200, 187, 100, 56), sfr = c(NA, 300, 292, 254, 220, 177, 148, 76), vent = c(NA, 0, 1), o2 = c(NA, 0, 1) ) phoenix_respiratory( pf_ratio = pfr, sf_ratio = sfr, imv = vent, other_respiratory_support = o2, data = DF )
The extended Phoenix criteria using a total eight organ systems. This is intended mostly for research as an extension of the Phoenix Sepsis Criteria which is based on four organ systems.
phoenix8( pf_ratio, sf_ratio, imv, other_respiratory_support, vasoactives, lactate, map, platelets, inr, d_dimer, fibrinogen, gcs, fixed_pupils, glucose, anc, alc, creatinine, bilirubin, alt, age, data = parent.frame(), ... )
phoenix8( pf_ratio, sf_ratio, imv, other_respiratory_support, vasoactives, lactate, map, platelets, inr, d_dimer, fibrinogen, gcs, fixed_pupils, glucose, anc, alc, creatinine, bilirubin, alt, age, data = parent.frame(), ... )
pf_ratio |
numeric vector for the PaO2/FiO2 ratio; PaO2 = arterial oxygen pressure; FiO2 = fraction of inspired oxygen; PaO2 is measured in mmHg and FiO2 is from 0.21 (room air) to 1.00. |
sf_ratio |
numeric vector for the SpO2/FiO2 ratio; SpO2 = oxygen saturation, measured in a percent; ratio for 92% oxygen saturation on room air is 92/0.21 = 438.0952. |
imv |
invasive mechanical ventilation; numeric or integer vector, (0 = not intubated; 1 = intubated) |
other_respiratory_support |
other respiratory support; numeric or integer vector, (0 = no support; 1 = support) |
vasoactives |
an integer vector, the number of systemic vasoactive medications being administered to the patient. Six vasoactive medications are considered: dobutamine, dopamine, epinephrine, milrinone, norepinephrine, vasopressin. |
lactate |
numeric vector with the lactate value in mmol/L |
map |
numeric vector, mean arterial pressure in mmHg |
platelets |
numeric vector for platelets counts in units of 1,000/uL (thousand per microliter) |
inr |
numeric vector for the international normalised ratio blood test |
d_dimer |
numeric vector for D-Dimer, units of mg/L FEU |
fibrinogen |
numeric vector units of mg/dL |
gcs |
integer vector; total Glasgow Comma Score |
fixed_pupils |
integer vector; 1 = bilaterally fixed pupil, 0 = otherwise |
glucose |
numeric vector; blood glucose measured in mg/dL |
anc |
absolute neutrophil count; a numeric vector; units of 1,000 cells per cubic millimeter |
alc |
absolute lymphocyte count; a numeric vector; units of 1,000 cells per cubic millimeter |
creatinine |
numeric vector; units of mg/dL |
bilirubin |
numeric vector; units of mg/dL |
alt |
alanine aminotransferase; a numeric vector; units of IU/L |
age |
numeric vector age in months |
data |
a |
... |
pass through |
The Phoenix Sepsis Criteria is based on the score form respiratory, cardiovascular, coagulation, and neurologic. Phoenix 8 uses these four an endocrine, immunologic, renal, and hepatic. Details on the scoring for each of the eight component organ systems are found in the respective manual files.
a data.frame
with 12 integer columns.
phoenix_respiratory_score
phoenix_cardiovascular_score
phoenix_coagulation_score
phoenix_neurologic_score
phoenix_sepsis_score
phoenix_sepsis
0 = not septic; 1 = septic (phoenix_sepsis_score greater or equal 2)
phoenix_septic_shock
0 = no septic shock; 1 = septic shock (sepsis with cardiovascular dysfunction)
phoenix_endocrine_score
phoenix_immunologic_score
phoenix_renal_score
phoenix_hepatic_score
phoenix8_sepsis_score
As with all other Phoenix organ system scores, missing values in the data set will map to a score of zero - this is consistent with the development of the criteria.
See reference details in phoenix-package
or by calling
citation('phoenix')
.
phoenix
for generating the diagnostic Phoenix
Sepsis score based on the four organ systems:
phoenix8
for generating the diagnostic Phoenix 8
Sepsis criteria based on the four organ systems noted above and
vignette('phoenix')
for more details and examples.
# Using the example sepsis data set, read more details in the vignette phoenix8_scores <- phoenix8( # respiratory pf_ratio = pao2 / fio2, sf_ratio = ifelse(spo2 <= 97, spo2 / fio2, NA_real_), imv = vent, other_respiratory_support = as.integer(fio2 > 0.21), # cardiovascular vasoactives = dobutamine + dopamine + epinephrine + milrinone + norepinephrine + vasopressin, lactate = lactate, age = age, # Also used in the renal assessment. map = dbp + (sbp - dbp)/3, # coagulation platelets = platelets, inr = inr, d_dimer = d_dimer, fibrinogen = fibrinogen, # neurologic gcs = gcs_total, fixed_pupils = as.integer(pupil == "both-fixed"), # endocrine glucose = glucose, # immunologic anc = anc, alc = alc, # renal creatinine = creatinine, # no need to specify age again # hepatic bilirubin = bilirubin, alt = alt, data = sepsis ) str(phoenix8_scores)
# Using the example sepsis data set, read more details in the vignette phoenix8_scores <- phoenix8( # respiratory pf_ratio = pao2 / fio2, sf_ratio = ifelse(spo2 <= 97, spo2 / fio2, NA_real_), imv = vent, other_respiratory_support = as.integer(fio2 > 0.21), # cardiovascular vasoactives = dobutamine + dopamine + epinephrine + milrinone + norepinephrine + vasopressin, lactate = lactate, age = age, # Also used in the renal assessment. map = dbp + (sbp - dbp)/3, # coagulation platelets = platelets, inr = inr, d_dimer = d_dimer, fibrinogen = fibrinogen, # neurologic gcs = gcs_total, fixed_pupils = as.integer(pupil == "both-fixed"), # endocrine glucose = glucose, # immunologic anc = anc, alc = alc, # renal creatinine = creatinine, # no need to specify age again # hepatic bilirubin = bilirubin, alt = alt, data = sepsis ) str(phoenix8_scores)
A fully synthetic data set with variables need for examples and documentation of the Phoenix Sepsis Criteria.
sepsis
sepsis
a data.frame with 20 rows and 27 columns
[, 1] | pid | patient identification number |
[, 2] | age | age in months |
[, 3] | fio2 | fraction of inspired oxygen |
[, 4] | pao2 | partial pressure of oxygen in arterial blood (mmHg) |
[, 5] | spo2 | pulse oximetry |
[, 6] | vent | indicator for invasive mechanical ventilation |
[, 7] | gcs_total | total Glasgow Coma Scale |
[, 8] | pupil | character vector reporting if pupils are reactive or fixed. |
[, 9] | platelets | platelets measured in 1,000 / microliter |
[, 10] | inr | international normalized ratio |
[, 11] | d_dimer | D-dimer; units of mg/L FEU |
[, 12] | fibrinogen | units of mg/dL |
[, 13] | dbp | diagnostic blood pressure (mmHg) |
[, 14] | sbp | systolic blood pressure (mmHg) |
[, 15] | lactate | units of mmol/L |
[, 16] | dobutamine | indicator for receiving systemic dobutamine |
[, 17] | dopamine | indicator for receiving systemic dopamine |
[, 18] | epinephrine | indicator for receiving systemic epinephrine |
[, 19] | milrinone | indicator for receiving systemic milrinone |
[, 20] | norepinephrine | indicator for receiving systemic norepinephrine |
[, 21] | vasopressin | indicator for receiving systemic vasopressin |
[, 22] | glucose | units of mg/dL |
[, 23] | anc | units of 1,000 cells per cubic millimeter |
[, 24] | alc | units of 1,000 cells per cubic millimeter |
[, 25] | creatinine | units of mg/dL |
[, 26] | bilirubin | units of mg/dL |
[, 27] | alt | units of IU/L |