Skip to contents

Creates CONSORT 2010 compliant flow diagrams for clinical trials using the consort R package. Automatically calculates participant numbers from patient-level data with exclusion columns. Follows the approach described by Riinu Ots (https://www.riinu.me/2024/02/consort/).

Usage

consortdiagram(
  data,
  participant_id,
  screening_exclusions,
  enrollment_exclusions,
  randomization_var,
  allocation_exclusions,
  followup_exclusions,
  analysis_exclusions,
  show_exclusion_details = FALSE,
  diagram_width = 800,
  diagram_height = 600,
  text_width = 50,
  study_title = "Study Flow Diagram",
  screening_label = "Assessed for eligibility",
  enrollment_label = "Enrolled",
  allocation_label = "Allocated to intervention",
  followup_label = "Completed follow-up",
  analysis_label = "Analyzed",
  export_format = "png",
  include_interpretation = FALSE,
  consort_validation = FALSE
)

Arguments

data

Patient-level data frame where each row represents one participant. Exclusion columns should have non-NA values for excluded participants.

participant_id

Unique participant identifier variable.

screening_exclusions

List of variables representing screening-stage exclusion reasons.

enrollment_exclusions

List of variables representing enrollment-stage exclusion reasons.

randomization_var

Treatment arm or group assignment variable for randomized trials.

allocation_exclusions

List of variables representing post-randomization exclusion reasons.

followup_exclusions

List of variables representing follow-up-stage exclusion reasons.

analysis_exclusions

List of variables representing analysis-stage exclusion reasons.

show_exclusion_details

Whether to display detailed exclusion reasons with counts.

diagram_width

Diagram width in pixels.

diagram_height

Diagram height in pixels.

text_width

Maximum characters before text wraps in diagram boxes.

study_title

Title for the CONSORT diagram.

screening_label

Custom label for screening stage.

enrollment_label

Custom label for enrollment stage.

allocation_label

Custom label for allocation stage.

followup_label

Custom label for follow-up stage.

analysis_label

Custom label for analysis stage.

export_format

Export format for the diagram.

include_interpretation

Whether to include interpretation section.

consort_validation

Whether to perform CONSORT 2010 compliance validation.

Value

A results object containing:

results$todoa html
results$flowSummarya table
results$armSummarya table
results$exclusionBreakdowna table
results$diagraman image
results$interpretationa html
results$consortValidationa html
results$exportInfoa html
results$clinicalSummarya html
results$aboutAnalysisa html
results$caveatsAssumptionsa html

Tables can be converted to data frames with asDF or as.data.frame. For example:

results$flowSummary$asDF

as.data.frame(results$flowSummary)

Examples

# Prepare data with exclusion columns
# Each row = one participant
# Non-NA values in exclusion columns indicate exclusion at that stage
# Example:
# data with columns: id, age_exclusion, consent_exclusion, randomization_arm