Developer Documentation

Technical Guide

Welcome Developers

OpenMOVR maintains three public repositories plus research tools. Select a tab below to view documentation for each project.

OpenMOVR Projects

OpenMOVR.github.io

The main website repository - documentation, GSoC program, pilot enrollment, and MOVR Viewer tools.

  • Tech: HTML, CSS, JavaScript
  • Hosting: GitHub Pages
  • Focus: Public information, community engagement

View Repository

OpenMOVR App

Interactive Streamlit dashboard for MDA MOVR Study data. Explore disease cohorts, facility distributions, and data completeness metrics.

  • Tech: Python, Streamlit, Plotly
  • Deployment: Streamlit Cloud
  • Focus: Interactive analytics, visualization

Open App | View Repository

movr-datahub-analytics

Python package for analyzing MOVR DataHub (2019-2025) registry data - 3,570 participants, 11,501 encounters.

  • Tech: Python, pandas, PyArrow
  • Status: GSoC 2026 Priority Project
  • Focus: Data analysis, research tools

View Repository | Full Documentation

MOVR Viewer

Web-based tools for exploring MOVR Data Dictionary fields and vendor mappings for DMD and SMA research.

  • Tech: HTML, CSS, JavaScript
  • Status: Alpha
  • Focus: Data exploration, field reference

Open MOVR Viewer

Getting Started

  1. Choose your project - Website (HTML/CSS/JS) or Analytics (Python)
  2. Fork the repository on GitHub
  3. Read the CONTRIBUTING.md in each repo
  4. Set up your environment (see tabs above)
  5. Create a feature branch and submit a PR

Code Standards

Website (HTML/CSS/JS)

  • Semantic HTML5 elements
  • CSS variables for consistency
  • Vanilla JavaScript (no frameworks)
  • Mobile-first responsive design
  • 2-space indentation

Analytics (Python)

  • Type hints required
  • Black formatter
  • MyPy type checking
  • Pytest for testing
  • Docstrings for public APIs

OpenMOVR.github.io

github.com/OpenMOVR/OpenMOVR.github.io

Quick Start

git clone git@github.com:YOUR-USERNAME/OpenMOVR.github.io.git
cd OpenMOVR.github.io

# Run locally
./launch.sh
# Or: python3 -m http.server 8000
# Visit: http://localhost:8000

# Create feature branch
git checkout -b feature/your-feature-name

Repository Structure

OpenMOVR.github.io/
├── index.html              # Homepage
├── gsoc.html               # Google Summer of Code program
├── docs/                   # Documentation system
│   ├── index.html          # MOVR updates
│   ├── css/docs.css        # Docs styles
│   └── *.html              # Other doc pages
├── pilot/                  # MOVR 2.0 Pilot enrollment
├── movr-viewer/            # Research tools
├── css/main.css            # Global styles
├── js/
│   ├── config.js           # Site configuration
│   ├── main.js             # Main functionality
│   └── header-loader.js    # Header component
├── components/header.html  # Shared header
├── assets/                 # Images, logos
├── BRANCH_STRATEGY.md
├── CONTRIBUTING.md
└── README.md

Branch Strategy

main - Production website (homepage, docs, GSoC, pilot)

viewer-apps - MOVR Viewer applications (research tools)

Website Changes

git checkout main
git pull origin main
git checkout -b feature/your-feature
# Make changes, commit
git push origin feature/your-feature
# Open PR to main

MOVR Viewer Changes

git checkout viewer-apps
git pull origin viewer-apps
git checkout -b feature/viewer-enhancement
# Make changes, commit
git push origin feature/viewer-enhancement
# Open PR to viewer-apps

Common Tasks

Adding a New Page

  1. Create HTML file in appropriate directory
  2. Include header: <div id="header-placeholder"></div>
  3. Add <script src="/?originalUrl=https%3A%2F%2Fopenmovr.github.io%2Fjs%2Fheader-loader.js"></script>
  4. Update navigation in js/config.js if needed

Updating Statistics

Edit js/config.js - the legacy object:

legacy: {
    participantsTrusted: 5895,
    encountersLogged: 20152,
    sitesCollaborating: 63,
    yearsLearning: 12
}

Testing Checklist

  • Test locally (./launch.sh)
  • Test on mobile (browser dev tools)
  • Check all links work
  • Verify no console errors
  • Update documentation if needed

OpenMOVR App

Live App | github.com/OpenMOVR/openmovr-app

Interactive MDA MOVR Study Analytics Dashboard

Streamlit-based web application for exploring MDA MOVR Study data. Built for researchers, clinicians, and data analysts to understand disease cohorts, facility distributions, and data completeness across the MOVR registry.

Quick Start

# Clone the repository
git clone https://github.com/OpenMOVR/openmovr-app.git
cd openmovr-app

# Create virtual environment
python3 -m venv venv
source venv/bin/activate  # Windows: venv\Scripts\activate

# Install dependencies
pip install -r requirements.txt

# Run locally
streamlit run app.py

# Visit http://localhost:8501

Features

Dashboard

  • Database overview statistics
  • Participant counts by disease
  • Facility distribution map
  • Demographics analysis

Disease Explorer

  • Filter by diagnosis (DMD, SMA, ALS, LGMD, etc.)
  • Real-time cohort analysis
  • Age and gender distributions
  • Disease subtype breakdown

Data Dictionary

  • Browse MOVR data fields
  • Filter by disease and form
  • Data completeness metrics
  • Field descriptions

Disease Overviews

  • LGMD-specific analytics
  • PAG presentation features
  • Custom visualizations
  • Extensible for new diseases

Architecture

The app uses a dual-mode architecture:

Snapshot Mode (default):
- Uses pre-computed JSON statistics
- No parquet files needed
- Fast loading, limited interactivity
- Safe for public deployment

Live Mode (with data):
- Uses parquet data files
- Full filtering and real-time calculations
- Complete interactivity
- Requires data access

Directory Structure

openmovr-app/
├── app.py                    # Main dashboard
├── requirements.txt          # Dependencies
├── pages/                    # Multi-page app
│   ├── 1_Disease_Explorer.py
│   ├── 2_Facility_View.py
│   ├── 3_Data_Dictionary.py
│   └── 4_LGMD_Overview.py
├── api/                      # Data access layer
│   ├── cohorts.py
│   ├── stats.py
│   ├── lgmd.py
│   └── data_dictionary.py
├── components/               # UI components
├── config/                   # Settings & filters
├── src/                      # Core analytics
├── stats/                    # Pre-computed snapshots (JSON)
├── data/                     # Parquet files (GITIGNORED)
└── scripts/                  # Utility scripts

Deployment

To Streamlit Cloud (Recommended)

  1. Push to GitHub: git push origin main
  2. Go to share.streamlit.io
  3. Click "New app" and select this repo
  4. Set main file to app.py
  5. Click "Deploy"

Default URL: openmovr-app.streamlit.app

Custom Domain: Configure in Streamlit Cloud settings

Data Handling

Snapshots (stats/*.json)

  • Pre-computed aggregate statistics
  • No PHI - safe to commit and deploy
  • Updated manually when data changes

Parquet Files (data/*.parquet)

  • Raw registry data (may contain PHI)
  • .gitignored - never commit to public repos
  • For private deployment with full interactivity

Regenerating Snapshots:

python scripts/generate_stats_snapshot.py
python scripts/generate_lgmd_snapshot.py

Development

Adding a New Disease Page

  1. Create scripts/generate_{disease}_snapshot.py
  2. Create api/{disease}.py with API class
  3. Create pages/X_{Disease}_Overview.py
  4. Update api/__init__.py exports

GSOC Project: Evolving OpenMOVR App

OpenMOVR App is an established GSOC 2026 project opportunity. Contributors can help expand the dashboard with new features, disease-specific overviews, enhanced analytics, and improved data visualization.

Testing Locally

# With virtual env activated
streamlit run app.py

# App opens at localhost:8501
# Changes auto-reload

Code Standards

  • Type hints for function signatures
  • Docstrings for public APIs
  • Black formatter for consistency
  • API facade pattern for data access

Technology Stack

Framework

  • Streamlit - Web framework
  • Plotly - Interactive charts
  • Pandas - Data manipulation

Data

  • PyArrow - Parquet support
  • JSON - Snapshots
  • YAML - Configuration

For complete details see the README.md and ARCHITECTURE.md in the repository.

movr-datahub-analytics

github.com/OpenMOVR/movr-datahub-analytics | Full Documentation

GSoC 2026 Priority Project

Python package for analyzing MOVR DataHub (2019-2025) registry data. Ideal for students interested in healthcare data analytics.

Quick Start

# Clone the repository
git clone https://github.com/OpenMOVR/movr-datahub-analytics.git
cd movr-datahub-analytics

# Create virtual environment
python3 -m venv .venv
source .venv/bin/activate  # Windows: .venv\Scripts\activate

# Install with all dependencies
pip install -e ".[dev,viz,notebooks]"

# Setup configuration
movr setup

# Verify installation
movr --help

Key Features

Data Pipeline

  • Excel to Parquet conversion
  • YAML-configurable wrangling rules
  • Audit logging

Analysis Tools

  • Cohort management
  • Descriptive analytics
  • Data dictionary search

CLI Commands

# Setup configuration
movr setup

# Convert Excel to Parquet
movr convert

# Validate data quality
movr validate

# View statistics
movr summary --registry datahub --metric all

# Search data dictionary
movr dictionary search "age"
movr dictionary search "medication" --diseases "DMD,SMA"

Development

# Run tests
pytest

# Format code
black src/ tests/

# Type checking
mypy src/

# Pre-commit hooks
pre-commit install
pre-commit run --all-files

For complete documentation including architecture, API reference, and contribution guidelines, see the DataHub Analytics Documentation.

MOVR Viewer

Open MOVR Viewer

Status: Alpha - Tools for exploring MOVR Data Dictionary fields and vendor mappings.

Available Tools

Dictionary Viewer

Browse and search MOVR Data Dictionary fields. Filter by disease (DMD, SMA) and view field details including data types, descriptions, and valid values.

  • 512 DMD fields
  • 412 SMA fields

Open Dictionary Viewer

Vendor Mapping

Review vendor mapping coverage for MOVR variables. See field mapping status and coverage percentages across different data sources.

Open Vendor Mapping

Upcoming Features

The following tools are planned for future development:

  • DMD Data Viewer: De-identified DMD registry data exploration
  • SMA Data Viewer: De-identified SMA registry data exploration

These are ideal GSoC project opportunities. Contributors need experience with web applications and data privacy principles.

Contributing

MOVR Viewer is part of the OpenMOVR.github.io repository. To contribute:

git clone git@github.com:YOUR-USERNAME/OpenMOVR.github.io.git
cd OpenMOVR.github.io

# Switch to viewer-apps branch
git checkout viewer-apps
git pull origin viewer-apps

# Create feature branch
git checkout -b feature/viewer-enhancement

# Make changes in movr-viewer/ directory
# Submit PR to viewer-apps branch

Questions?

Technical: andre.paredes@ymail.com | MDA: mdamovr@mdausa.org