| Type: | Package |
| Title: | Surgical Risk Prediction with the POSSUM Score Family |
| Version: | 0.1.0 |
| Description: | Computes the Physiological and Operative Severity Score for the enUmeration of Mortality and morbidity (POSSUM), its Portsmouth modification (P-POSSUM), and the colorectal (CR-POSSUM), vascular (V-POSSUM) and ruptured aortic aneurysm (RAAA-POSSUM) variants, risk-adjustment systems used in surgical audit. Functions map physiological and operative variables to their component scores and return the predicted probabilities of morbidity and mortality from the published logistic equations. The coefficients follow Copeland and others (1991) <doi:10.1002/bjs.1800780327> for POSSUM, Prytherch and others (1998) <doi:10.1046/j.1365-2168.1998.00840.x> for P-POSSUM, Tekkis and others (2004) <doi:10.1002/bjs.4430> for the colorectal variant (CR-POSSUM), and Neary and others (2003) <doi:10.1002/bjs.4041> for the vascular variant (V-POSSUM). The package is intended for audit and research; it is not a validated medical device and must not be used as the sole basis for clinical decisions. |
| License: | MIT + file LICENSE |
| Encoding: | UTF-8 |
| URL: | https://github.com/chrislongros/possum |
| BugReports: | https://github.com/chrislongros/possum/issues |
| Imports: | stats |
| Suggests: | tinytest |
| Config/roxygen2/version: | 8.0.0 |
| NeedsCompilation: | no |
| Packaged: | 2026-07-18 10:23:31 UTC; chris |
| Author: | Christos Longros |
| Maintainer: | Christos Longros <chris.longros@gmail.com> |
| Repository: | CRAN |
| Date/Publication: | 2026-07-28 14:30:07 UTC |
CR-POSSUM predicted mortality
Description
Applies the colorectal POSSUM mortality equation (Tekkis and others, 2004):
\mathrm{logit}(mortality) = -9.167 + 0.338 \times PS + 0.308 \times OS
Usage
cr_possum(physiological_score, operative_score)
Arguments
physiological_score |
CR-POSSUM physiological score (6-23), e.g. from
|
operative_score |
CR-POSSUM operative score (4-22), e.g. from
|
Value
Predicted probability of mortality (0-1).
Examples
cr_possum(physiological_score = 12, operative_score = 8)
CR-POSSUM operative score
Description
Sums the four operative components of CR-POSSUM, all entered as their points.
severity 1 (minor) / 3 (moderate) / 4 (major) / 8 (complex major);
soiling 1 (none or serous) / 2 (local pus) / 3 (free pus, faeces or
blood); cancer_staging 1 (none or Dukes A-B) / 2 (Dukes C) / 3
(Dukes D); urgency 1 (elective) / 3 (urgent) / 8 (emergency).
Usage
cr_possum_operative(severity, soiling, cancer_staging, urgency)
Arguments
severity |
CR-POSSUM operative severity points (1, 3, 4 or 8). |
soiling, cancer_staging |
Points (1, 2 or 3). |
urgency |
Mode-of-surgery points (1, 3 or 8). |
Value
Integer CR-POSSUM operative score (range 4-22).
Examples
cr_possum_operative(severity = 4, soiling = 1, cancer_staging = 2, urgency = 1)
CR-POSSUM physiological score
Description
Sums the six physiological components of the colorectal POSSUM (CR-POSSUM)
score. Age, systolic blood pressure, pulse, haemoglobin and urea are scored
from raw clinical values; cardiac is entered as its points.
Usage
cr_possum_physiology(age, cardiac, systolic_bp, pulse, hb, urea)
Arguments
age, systolic_bp, pulse, hb, urea |
Numeric raw clinical values, all non-negative. |
cardiac |
CR-POSSUM cardiac-failure points (1, 2 or 3). |
Details
Cut-points and weights (Tekkis and others, 2004):
| age (years) | \le60=1 / 61-80=3 or 4 / \ge81=8 |
| systolic BP (mmHg) | 100-170=1 / >170 or 90-99=2 / \le89=3 |
| pulse (/min) | 40-100=1 / 101-120=2 / >120 or <40=3 |
| haemoglobin (g/dL) | 13-16=1 / 10-12.9 or 16.1-18=2 / <10 or >18=3 |
| urea (mmol/L) | \le10=1 / 10.1-15=2 / >15=3 |
| cardiac failure | none/mild=1 / moderate=2 / severe=3 (entered as points) |
Value
Integer CR-POSSUM physiological score (range 6-23).
Examples
cr_possum_physiology(age = 72, cardiac = 1, systolic_bp = 140, pulse = 88,
hb = 12, urea = 8)
P-POSSUM predicted mortality
Description
Applies the Portsmouth (P-POSSUM) mortality equation (Prytherch and others, 1998), which recalibrates the POSSUM mortality prediction:
\mathrm{logit}(mortality) = -9.065 + 0.1692 \times PS + 0.1550 \times OSS
Usage
p_possum(physiological_score, operative_score)
Arguments
physiological_score |
POSSUM physiological score (12-88). |
operative_score |
POSSUM operative severity score (6-48). |
Value
Predicted probability of mortality (0-1).
Examples
p_possum(physiological_score = 20, operative_score = 10)
POSSUM predicted morbidity and mortality
Description
Applies the original POSSUM logistic equations (Copeland and others, 1991) to a physiological and operative severity score:
\mathrm{logit}(morbidity) = -5.91 + 0.16 \times PS + 0.19 \times OSS
\mathrm{logit}(mortality) = -7.04 + 0.13 \times PS + 0.16 \times OSS
Usage
possum(physiological_score, operative_score)
Arguments
physiological_score |
POSSUM physiological score (12-88), e.g. from
|
operative_score |
POSSUM operative severity score (6-48), e.g. from
|
Value
A list with elements morbidity and mortality, the
predicted probabilities (0-1).
Examples
possum(physiological_score = 20, operative_score = 10)
POSSUM operative severity score
Description
Sums the six operative components. n_procedures and blood_loss
are scored from their raw values; severity, soiling,
malignancy and urgency are entered as their POSSUM points.
Usage
possum_operative(
severity,
n_procedures,
blood_loss,
soiling,
malignancy,
urgency
)
Arguments
severity, soiling, malignancy |
POSSUM points (1, 2, 4 or 8). |
n_procedures |
Number of procedures at this operation (at least 1). |
blood_loss |
Total blood loss in mL (non-negative). |
urgency |
POSSUM points for the mode of surgery (1, 4 or 8). |
Details
Raw cut-points (points 1 / 2 / 4 / 8): number of procedures 1 / - / 2 / >2;
blood loss (mL) \le100 / 101-500 / 501-999 / \ge1000. Graded, as
points: severity 1 (minor) / 2 (moderate) / 4 (major) / 8 (major+);
soiling 1 (none) / 2 (serous) / 4 (local pus) / 8 (free bowel content,
pus or blood); malignancy 1 (none) / 2 (primary only) / 4 (nodal
metastases) / 8 (distant metastases); urgency 1 (elective) / 4
(emergency, within 24 h) / 8 (emergency, within 2 h).
Value
Integer operative severity score (minimum 6).
Examples
possum_operative(severity = 4, n_procedures = 1, blood_loss = 200,
soiling = 1, malignancy = 2, urgency = 1)
POSSUM physiological score
Description
Sums the twelve physiological components of the POSSUM score. The nine
objective variables are scored from their raw clinical values; the three
graded variables (cardiac, respiratory, ecg) are entered
directly as their POSSUM points.
Usage
possum_physiology(
age,
systolic_bp,
pulse,
gcs,
hb,
wbc,
urea,
sodium,
potassium,
cardiac,
respiratory,
ecg
)
Arguments
age, systolic_bp, pulse, gcs, hb, wbc, urea, sodium, potassium |
Numeric raw
clinical values in the units above. All must be non-negative, and
|
cardiac, respiratory |
POSSUM points (1, 2, 4 or 8) for the cardiac and respiratory signs. |
ecg |
POSSUM points for the ECG (1, 4 or 8). |
Details
Cut-points (points 1 / 2 / 4 / 8):
| age (years) | \le60 / 61-70 / \ge71 / - |
| systolic BP (mmHg) | 110-130 / 100-109 or 131-170 / 90-99 or \ge171 / \le89 |
| pulse (/min) | 50-80 / 40-49 or 81-100 / 101-120 / \le39 or \ge121 |
| GCS | 15 / 12-14 / 9-11 / \le8 |
| haemoglobin (g/dL) | 13-16 / 11.5-12.9 or 16.1-17 / 10-11.4 or 17.1-18 / <10 or >18 |
| WCC (10^9/L) | 4-10 / 3.1-3.9 or 10.1-20 / \le3 or \ge20.1 / - |
| urea (mmol/L) | \le7.5 / 7.6-10 / 10.1-15 / \ge15.1 |
| sodium (mmol/L) | \ge136 / 131-135 / 126-130 / \le125 |
| potassium (mmol/L) | 3.5-5 / 3.2-3.4 or 5.1-5.3 / 2.9-3.1 or 5.4-5.9 / \le2.8 or \ge6
|
Graded variables, entered as points: cardiac and respiratory
take 1, 2, 4 or 8; ecg takes 1 (normal), 4 (atrial fibrillation
60-90/min) or 8 (any other abnormality). Confirm the grading against the
original tables before use.
Value
Integer physiological score (minimum 12).
Examples
possum_physiology(age = 65, systolic_bp = 120, pulse = 75, gcs = 15,
hb = 13.5, wbc = 8, urea = 6, sodium = 140, potassium = 4.2,
cardiac = 1, respiratory = 1, ecg = 1)
POSSUM and P-POSSUM risk for a table of patients
Description
Convenience wrapper that scores a whole cohort in one call, rather than
invoking possum_physiology, possum_operative and
the risk functions separately. Each row of data is one patient.
Usage
possum_risk(data)
Arguments
data |
A data frame (one row per patient) containing the columns
required by |
Details
Rows are scored independently. A row with a missing or out-of-range value
cannot be scored, so its five output columns are returned as NA and
the rest of the cohort is scored as normal; a single missing laboratory value
no longer aborts the whole call. A warning reports how many rows were left
unscored.
Value
data with five columns added: physiological_score,
operative_score, possum_morbidity, possum_mortality
and p_possum_mortality. Rows that could not be scored carry NA
in all five.
Examples
df <- data.frame(
age = c(45, 82), systolic_bp = c(120, 95), pulse = c(70, 115),
gcs = c(15, 13), hb = c(14, 9.5), wbc = c(7, 22), urea = c(5, 18),
sodium = c(140, 128), potassium = c(4.2, 6.1), cardiac = c(1, 4),
respiratory = c(1, 4), ecg = c(1, 8), severity = c(1, 8),
n_procedures = c(1, 1), blood_loss = c(50, 1200), soiling = c(1, 8),
malignancy = c(1, 4), urgency = c(1, 8))
possum_risk(df)
RAAA-POSSUM predicted mortality (ruptured abdominal aortic aneurysm)
Description
Applies a POSSUM mortality equation specific to ruptured abdominal aortic aneurysm surgery, computed from the standard POSSUM physiological and operative severity scores. Two forms are provided:
\mathrm{logit}(mortality) = -2.7569 + 0.0968 \times PS
\mathrm{logit}(mortality) = -4.9795 + 0.0913 \times PS + 0.0958 \times OS
Usage
raaa_possum(
physiological_score,
operative_score = NULL,
model = c("physiology", "full")
)
Arguments
physiological_score |
Standard POSSUM physiological score (12-88), e.g.
from |
operative_score |
Standard POSSUM operative severity score (6-48), e.g.
from |
model |
Which equation to use: |
Details
RAAA-POSSUM (Prytherch and others, 2001) reuses the standard POSSUM scores. Both equations are as tabulated by Neary, Heather and Earnshaw (2003).
Value
Predicted probability of mortality (0-1).
Examples
raaa_possum(physiological_score = 30)
raaa_possum(physiological_score = 30, operative_score = 18, model = "full")
V-POSSUM predicted mortality (vascular)
Description
Applies a vascular POSSUM (V-POSSUM) mortality equation, computed from the
standard POSSUM physiological and operative severity scores (from
possum_physiology and possum_operative). Two
forms are provided:
\mathrm{logit}(mortality) = -6.0386 + 0.1539 \times PS
\mathrm{logit}(mortality) = -8.0616 + 0.1552 \times PS + 0.1238 \times OS
Usage
v_possum(
physiological_score,
operative_score = NULL,
model = c("physiology", "full")
)
Arguments
physiological_score |
Standard POSSUM physiological score (12-88), e.g.
from |
operative_score |
Standard POSSUM operative severity score (6-48), e.g.
from |
model |
Which equation to use: |
Details
V-POSSUM (Prytherch and others, 2001, for major arterial surgery) reuses the standard POSSUM scores. Both equations are as tabulated by Neary, Heather and Earnshaw (2003). No V-POSSUM morbidity equation has been published.
Value
Predicted probability of mortality (0-1).
Examples
v_possum(physiological_score = 25)
v_possum(physiological_score = 25, operative_score = 15, model = "full")