Explore a live example of the survey featured in this repository here.
The CLIPS project is part of the REDUCE (Reimagining Documentation Using Computation from Clinical Encounters) initiative, which aims to leverage multi-modal data from clinical encounters to enhance clinical documentation. CLIPS focuses on gathering insights from clinical encounter videos through crowdsourcing. This repository is set up to distribute your repository of videos into two one-minute halves for this purpose.
- Primary Objective: Collect qualitative and quantitative data on diverse perspectives regarding clinical encounter videos.
- Primary Outcome: Comprehensive set of annotations per video segment, categorized into both categorical labels and free-form text descriptions.
- Secondary Outcomes: Demographic and mediator data such as medical experience, age, language preference, race, ethnicity, occupation, and current state of residence.
CLIPS integrates REDCap with Amazon AWS and an embeddable content delivery network for efficient video handling and scalable data collection. This integration addresses the challenge of embedding a library of video segments of varied lengths for crowdsourced ground truth labeling in REDCap.
- Efficient Video Management: Handles varied segmented video libraries using a content delivery network (CDN).
- Metadata- driven survey URL generation: Dynamically generates survey URLs based on video metadata.
- One URL with access to multiple surveys: Provides a single URL point of access that can direct participants to the same survey with different media content.
This repository contains all the necessary components to replicate and extend the CLIPS project. The structure is as follows:
.
├── 1 - REDCap Survey
│ ├── README.md
│ ├── CLIPSSurveyREDCap.xml
├── 2 - Video Preprocessing
│ ├── README.md
│ ├── split_videos.sh
├── 3 - Accessible Video URLs CSV Generation
│ ├── Box, Inc.
│ │ ├── README.md
│ │ ├── generate_videos_csv.py
├── 4 - AWS Backend
│ ├── README.md
│ ├── aws_lambda_function.py
- Python
- REDCap access
- AWS account
- A content delivery network
- An Amazon Mechanical Turk Requester account with increased payment limits
- Clone the repository:
git clone https://github.com/kbjohnson-penn/CLIPS.git
cd CLIPS
- Configure your survey variables for REDCap, your AWS account, your content delivery network (Box was used for our purposes), and your Amazon Mechanical Turk Requester account.
-
Follow the instructions in 1 - REDCap Survey to host our template survey.
-
Preprocessing Videos:
- Place your videos in the same directory as split_videos.sh
- Ensure the script has execution, read, and write permissions:
chmod +rwx split_videos.sh
- Run the script to split your videos into one-minute segments:
./split_videos.sh
-
Generate a CSV file with all your video names and URLs (this step is CDN-specific).
-
Host the CSV file in an AWS S3 bucket with accessible permissions from your Lambda function.
-
Deploy AWS Lambda Functions for URL Redirect: aws_lambda_function.py
Alasaly B, Jang KJ, Mopidevi S, Johnson KB. CLIPS - Crowdsourcing Likely Insights from Patient Encounter Snippets. Poster presented at: REDCapCon; September 9, 2024; St. Petersburg, Florida. DOI: 10.13140/RG.2.2.10338.54723.
We welcome contributions from the community, especially for expanding the list of supported CDNs that embed in REDCap.
This project is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License. You must give appropriate credit, provide a link to the license, and indicate if changes were made. See the LICENSE file for details.
We would like to thank the team at the University of Pennsylvania, contributors, and supporting staff who have made this project possible.