The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.

Package {PPCSexRx}


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 ORCID iD [aut, cre]
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 plot().

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:

date

Character or Date. Session date (e.g. "2026-03-01").

pcss

Numeric. Post-Concussion Symptom Scale total (0-132).

target_hr

Numeric. Prescribed HR target for that session (bpm).

achieved_hr

Numeric. Mean HR achieved during session (bpm).

duration_min

Numeric. Minutes of exercise completed.

symptoms_worsened

Logical. Did PCSS increase >= 2 points vs prior session?

Pass NULL to initialise an empty log (first session).

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 ppcs_prescription object from prescribe_ppcs. Used to retrieve the current target HR.

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

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.