This page is under development. We'd love your help making it better - PRs with updates welcome!
This page provides guidelines for technical contributors to the ASA/DIA Interactive Safety Graphics (ISG) working group. For a non-technical overview, check out our home page. You can also always ask us questions or comments by posting to the safetyGraphics discussion.
Hello! Thank you for your interest in contributing to this project! Here's a quick guide to getting started:
- Review the Technical Requirements - Most of our programming is done in R and Javascript, and we assume a basic understanding of GitHub and Git. We've provided a few links to a few technical resources and tutorials below.
- Read about the Project - Learn a bit about safetyGraphics by reviewing the rest of this document and checking out the Vignettes, Papers and Presentations listed in the Resources Section below.
- Join the Mailing List - Take 2 minutes to fill out this form to let us know you're interested; we'll reach out to discuss.
- Start Contributing - Look through the Good First Issues to find a topic to work on. You can also post to the safetyGraphics discussion board to discuss options. Once you find a topic, you can get to work on your first Pull Request.
The safetyGraphics project consists of several GitHub repositories that are maintained in the safetyGraphics GitHub organization. The safetyGraphics package provides a platform for loading data, customizing settings and creating interactive graphics for monitoring clinical trial safety. However, the safetyGraphics platform really doesn't do much by iteslf! In fact, none of the content on the Charts tab is actually found in the safetyGraphics package; the default charts live in the safetyCharts package. safetyCharts has over a dozen charts that are configured to work with {safetyGraphics}, but can also easily be used independently. This vignette provides describes this relationship in more detail along with extensive technical details about the creation of custom renderers.
To gain access, go through the Getting Started section above. We'll add you to the GitHub Organization once you fill out the form letting us know you'd like to contribute.
We typically use three types of branches:
main
- The main branch has the latest release for repository. Commits directly to themain
branch are not permitted. When a given release is complete and all needed contet is in thedev
branch, admins mergedev
in to main and tag a release.dev
-dev
is the default branch and is generally the target branch for Pull requests. Commits directly todev
should be avoided - use Feature branches as described below instead.- Feature Branches - Feature branches resolve one or more issues and should be named to reflect the new features added (e.g.
add-participant-filter
offix-118
). Once all issues are resolved, the feature branch should be merged intodev
. Once new features are developed, the developer creates a pull request and requests a code review from a teammate. Once approved, the Feature branch can be merged to dev.
All merging should be done via pull requests. More details of our merge/PR process are provided in the Quality Control section below.
All repos have active issue trackers. All issues should, at a minimum contain a name, description, assignee and release version (tracked using a GitHub "Milestone").
Each release has it's own GitHub project board containing all issues being resolved in the release. We typically use columns for 'To Do', 'In Progress', 'Ready for review' and 'Done'. Developers should update the project board as they go.
Please reference issue numbers in commit messages whenever possible.
For other technical questions see the safetyGraphics Technical FAQ Vignette.
- Intro to safetyGraphics
- Chart Configuration Vignette - details about the charting process including technical specifications and step-by-step instructions
- Cookbook Vignette - a series of examples showing how to initialize the safetyGraphics Shiny app in different scenarios
- Technical FAQ Vignette - vignette discussing security, validation and other technical issues
- Building Open Source Tools for Safety Monitoring: Advancing Research Through Community Collaboration Presented by Becca Krouse at R/Pharma 2019
- safetyGraphics v2.0 - Open Source Collaboration in Pharma using R and Shiny Presented by Jeremy Wildfire at R/Pharma 2020
- safetyGraphics - Chart Framework Workshop @ R/Pharma 2021 - repo, slides, video
- The Safety Explorer Suite: Interactive Safety Monitoring for Clinical Trials, Wildfire et al. 2018
- A New Paradigm for Safety Signal Detection and Evaluation Using Open-Source Software Created by an Interdisciplinary Working Group. Buchanan et al. 2021
- Data Monitoring committees for clinical trials evaluating treatments of COVID-19 Tobias Mütze and Tim Friede. 2020