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').
├── LICENSE # GNU GPL v3 license
├── Makefile # Build automation (test and deploy commands)
├── NEWS.md # Version history and changelog
├── README.md # This file
├── src/ # Shiny application source code
│ ├── classes.R # Class definitions (group, person)
│ ├── methods.R # Calculation methods
│ ├── models.R # Statistical models for each diagnostic group
│ ├── server.R # Shiny server logic
│ └── ui.R # User interface definition
└── tests/ # Test files
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.