A Shiny web application for calculating cardiopulmonary exercise test (CPET) endpoints for children with congenital heart defects.
THIS APPLICATION IS UNDER DEVELOPMENT - Results and calculations are subject to change and should be validated before clinical use.
This application provides predicted cardiopulmonary endpoints for children with congenital heart defects based on their diagnostic group, height, and BMI. The tool calculates several key metrics including:
- VO₂ (oxygen consumption) in ml/min and ml/kg/min
- Heart rate (bpm)
- Ventilation (l/min)
- Oxygen pulse (ml/beat)
- VE/VCO₂ slope (ventilatory efficiency)
- Breathing frequency (breaths/min)
Results are automatically calculated for both male and female patients, with confidence intervals for all measurements.
- Interactive web interface for selecting patient parameters
- Support for three diagnostic groups:
- Simple defects
- Moderate complex defects
- Univentricular defects with Fontan circulation
- Automatic calculation for both sexes
- Confidence interval visualization
- Statistical models based on clinical data from Haukeland and Vyntus sources
- R (version 3.5 or higher recommended)
- Required R packages:
shinyrsconnect(for deployment)
-
Clone this repository:
git clone https://github.com/ocbe-uio/kids-chd.git cd kids-chd -
Install required R packages:
install.packages(c("shiny", "rsconnect"))
To test the application locally on your own machine:
make testOr directly with R:
shiny::shinyAppDir('src', options=list(launch.browser=TRUE))This will launch the Shiny app in your default browser for local use and testing.
To deploy the application to a Shiny server:
make deployOr using R:
rsconnect::deployApp('src', appName='kids-chd').
├── src/ # Shiny application source code
│ ├── classes.R # Class definitions (group, person)
│ ├── methods.R # Calculation methods
│ ├── models.R # Statistical models for each diagnostic group
│ ├── plotting.R # Plotting functions
│ ├── report.Rmd # Template for PDF reports
│ ├── server.R # Shiny server logic
│ └── ui.R # User interface definition
├── CITATION.cff # Citation file for the software
├── LICENSE # GNU GPL v3 license
├── Makefile # Build automation (test and deploy commands)
├── NEWS.md # Version history and changelog
└── README.md # This file
The application uses statistical models with pre-calculated coefficients (beta_hat) and covariance matrices (sigma_beta_hat) for each diagnostic group. When a user inputs patient parameters (height, BMI, diagnostic group), the application:
- Creates person objects for both male and female patients
- Applies the appropriate statistical model based on the diagnostic group
- Calculates predicted endpoints with confidence intervals
- Displays results with visualization
See NEWS.md for detailed version history and recent changes.
This project was developed as part of OCBE's advisory services.
This is an academic/research project maintained by OCBE-UIO (Oslo Centre for Biostatistics and Epidemiology, University of Oslo).
For questions, issues, or contributions, please open an issue on the GitHub repository.
To cite the methodology used in this project, please use the reference below:
Klungerbo, V., Hirth, A., Fredriksen, P.M. et al. Reference models for individualized assessment of cardiorespiratory fitness in children and adolescents with congenital heart disease: a retrospective multicentre study. Eur J Pediatr 184, 450 (2025). https://doi.org/10.1007/s00431-025-06270-x
To cite the software itself, see the CITATION.cff file or the "Cite this repository" link to the right of the repo's main page.