| Type: | Package |
| Title: | Prescribe Sub-Symptom Exercise for Adolescent Concussion |
| Version: | 0.1.0 |
| Description: | A clinical decision support system for sub-symptom threshold aerobic exercise (SSTAE) prescription in adolescents with persistent post-concussion symptoms (PPCS). Implements an evidence-based protocol derived from a systematic review of seven studies (Li, 2026; <doi:10.17605/osf.io/kvuf6>), encoding safety screening, Buffalo Concussion Treadmill Test (BCTT)-guided heart rate prescription, session-level progress tracking, and evidence disclosure using the Grading of Recommendations, Assessment, Development and Evaluation (GRADE) framework into an open-source tool for athletic trainers and clinicians. Designed to support implementation in resource-limited settings where BCTT equipment may be unavailable. GRADE certainty of evidence: LOW. For clinician use only; not a substitute for clinical judgement. |
| License: | MIT + file LICENSE |
| Encoding: | UTF-8 |
| RoxygenNote: | 8.0.0 |
| Imports: | graphics, utils |
| Suggests: | knitr, rmarkdown, testthat (≥ 3.0.0) |
| VignetteBuilder: | knitr |
| URL: | https://github.com/guangl10/PPCSexRx |
| BugReports: | https://github.com/guangl10/PPCSexRx/issues |
| NeedsCompilation: | no |
| Packaged: | 2026-05-27 21:09:57 UTC; liguang |
| Author: | Guang Li |
| Maintainer: | Guang Li <guangli@isu.edu> |
| Repository: | CRAN |
| Date/Publication: | 2026-06-01 08:30:15 UTC |
Plot rehabilitation progress for a ppcs_track object
Description
Generates a dual-panel plot showing PCSS symptom trajectory and achieved HR over time. Requires base R graphics only (no dependencies).
Usage
## S3 method for class 'ppcs_track'
plot(x, ...)
Arguments
x |
A ppcs_track object. |
... |
Further arguments passed to |
Value
Invisibly returns x, called for its side effect of
drawing a two-panel base-graphics figure: the upper panel shows
Post-Concussion Symptom Scale (PCSS) scores across sessions;
the lower panel shows achieved and target heart rate (bpm) across
sessions. Returns a message (via message) and
invisible(x) without plotting if fewer than two sessions
are recorded.
Prescribe Sub-symptom Aerobic Exercise for Adolescent PPCS
Description
Implements the evidence-based protocol from Li (2026). GRADE: LOW certainty,
Conditional recommendation FOR. Run screen_ppcs first to
confirm eligibility.
Usage
prescribe_ppcs(
age,
days_post_injury,
hrst = NULL,
vestibular_symptoms = FALSE,
cervical_symptoms = FALSE,
sessions_completed = 0,
last_session_worse = FALSE
)
Arguments
age |
Numeric. Age 13-18 years. CAT p.2, L10: inclusion 13-18. |
days_post_injury |
Numeric. Days since injury. Must be >=28 for PPCS. CAT p.2, L10. |
hrst |
Numeric or NULL. Symptom threshold HR from BCTT (bpm). If NULL, age-predicted fallback is used. CAT p.11, L19. |
vestibular_symptoms |
Logical. TRUE = contraindication. CAT p.11, L25. |
cervical_symptoms |
Logical. TRUE = contraindication. CAT p.11, L25. |
sessions_completed |
Integer. Sessions at current HR without worsening. CAT p.11, L21. |
last_session_worse |
Logical. Did PCSS increase >=2 points last session? CAT p.11, L21-22. |
Value
An object of class ppcs_prescription with prescription details.
References
Li G. (2026). Sub-symptom Threshold Aerobic Exercise for Adolescents With PPCS: A Critically Appraised Topic. Winner, NATA Foundation Student Writing Contest.
Examples
# Case 1: Rural clinic, no BCTT available
prescribe_ppcs(age = 16, days_post_injury = 35)
# Case 2: University clinic with BCTT data
prescribe_ppcs(age = 17, days_post_injury = 40, hrst = 160)
# Case 3: Safety stop - vestibular symptoms present
try(prescribe_ppcs(age = 15, days_post_injury = 30,
vestibular_symptoms = TRUE))
Print method for ppcs_prescription objects
Description
Displays a formatted clinical prescription sheet.
Usage
## S3 method for class 'ppcs_prescription'
print(x, ...)
Arguments
x |
A ppcs_prescription object. |
... |
Further arguments passed to or from other methods. |
Value
Invisibly returns x (a ppcs_prescription list),
called primarily for its side effect of printing the formatted
prescription to the console.
Print method for ppcs_screen objects
Description
Print method for ppcs_screen objects
Usage
## S3 method for class 'ppcs_screen'
print(x, ...)
Arguments
x |
A ppcs_screen object. |
... |
Further arguments (unused). |
Value
Invisibly returns x (a ppcs_screen list),
called primarily for its side effect of printing the eligibility
screen result to the console.
Print method for ppcs_track objects
Description
Print method for ppcs_track objects
Usage
## S3 method for class 'ppcs_track'
print(x, ...)
Arguments
x |
A ppcs_track object. |
... |
Further arguments (unused). |
Value
Invisibly returns x (a ppcs_track list),
called primarily for its side effect of printing the session
progress summary to the console.
Screen Adolescent for SSTAE Eligibility
Description
Implements the PICO-based eligibility criteria from Li (2026). Run this
before prescribe_ppcs to confirm the patient is appropriate
for sub-symptom threshold aerobic exercise.
Usage
screen_ppcs(
age,
days_post_injury,
vestibular_symptoms = FALSE,
cervical_symptoms = FALSE,
vision_symptoms = FALSE,
verbose = TRUE
)
Arguments
age |
Numeric. Patient age in years. Eligible range: 13-18. |
days_post_injury |
Numeric. Days since concussion. PPCS defined as >=28. |
vestibular_symptoms |
Logical. Active uncontrolled vestibular symptoms? Default FALSE. Contraindication per Li (2026), p.11. |
cervical_symptoms |
Logical. Active uncontrolled cervical symptoms? Default FALSE. Contraindication per Li (2026), p.11. |
vision_symptoms |
Logical. Exercise-induced vision dysfunction present? Default FALSE. Associated with prolonged PPCS (Vernau et al., 2023). |
verbose |
Logical. If TRUE (default), prints full clinical output. Set FALSE for patient/caregiver-facing simplified output. |
Value
A list of class ppcs_screen with fields:
- status
"eligible", "contraindicated", or "needs_referral"
- reason
Character. Clinical rationale for status.
- referral
Character or NA. Recommended referral if applicable.
- next_step
Character. Recommended action.
References
Li G. (2026). Sub-symptom Threshold Aerobic Exercise for Adolescents With PPCS: A Critically Appraised Topic. Winner, NATA Foundation Student Writing Contest.
Vernau BT, Haider MN, Fleming A, et al. Exercise-Induced Vision Dysfunction Early After Sport-Related Concussion Is Associated With Persistent Postconcussive Symptoms. Clin J Sport Med. 2023;33(4):388-394.
Examples
# Eligible athlete
screen_ppcs(age = 16, days_post_injury = 35)
# Contraindicated: too early
screen_ppcs(age = 16, days_post_injury = 20)
# Needs referral: vestibular symptoms present
screen_ppcs(age = 16, days_post_injury = 35, vestibular_symptoms = TRUE)
# Patient/caregiver output
screen_ppcs(age = 16, days_post_injury = 35, verbose = FALSE)
Track SSTAE Rehabilitation Progress Over Time
Description
Records and evaluates session-level data over the course of a sub-symptom threshold aerobic exercise programme. Compares observed progress against the progression and stop rules described in Li (2026), p.14, and generates a recommendation for the next session.
Usage
track_progress(
log,
current_pcss,
current_hr,
current_duration,
prescription,
verbose = TRUE
)
Arguments
log |
A data frame of previous sessions with columns:
Pass |
current_pcss |
Numeric. Today's PCSS score (0-132). |
current_hr |
Numeric. HR achieved in today's session (bpm). |
current_duration |
Numeric. Minutes completed today. |
prescription |
A |
verbose |
Logical. If TRUE (default), prints full clinician output. Set FALSE for patient/caregiver-facing simplified output. |
Value
A list of class ppcs_track with fields:
- updated_log
Data frame. The log with today's session appended.
- phase
Character. Current rehabilitation phase.
- recommendation
Character. Action for the next session.
- adjust_hr
Numeric. Suggested HR target for next session (bpm).
- sessions_total
Integer. Total sessions recorded.
- pcss_change
Numeric. PCSS change from first to today.
- verbose
Logical. Passed through for print method.
References
Li G. (2026). Sub-symptom Threshold Aerobic Exercise for Adolescents With PPCS: A Critically Appraised Topic. Winner, NATA Foundation Student Writing Contest. p.14.
Kurowski BG, et al. Aerobic Exercise for Adolescents With Prolonged Symptoms After Mild Traumatic Brain Injury. J Head Trauma Rehabil. 2017;32(2):79-89.
Examples
# Step 1: get a prescription
rx <- prescribe_ppcs(age = 16, days_post_injury = 35, hrst = 160)
# Step 2: first session - no prior log
t1 <- track_progress(
log = NULL,
current_pcss = 28,
current_hr = 120,
current_duration = 18,
prescription = rx
)
t1
# Step 3: second session - pass updated log forward
t2 <- track_progress(
log = t1$updated_log,
current_pcss = 24,
current_hr = 122,
current_duration = 20,
prescription = rx
)
t2