Developer Documentation
Technical GuideWelcome 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
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
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
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
Getting Started
- Choose your project - Website (HTML/CSS/JS) or Analytics (Python)
- Fork the repository on GitHub
- Read the CONTRIBUTING.md in each repo
- Set up your environment (see tabs above)
- 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
- Create HTML file in appropriate directory
- Include header:
<div id="header-placeholder"></div> - Add
<script src="/?originalUrl=https%3A%2F%2Fopenmovr.github.io%2Fjs%2Fheader-loader.js"></script> - Update navigation in
js/config.jsif 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)
- Push to GitHub:
git push origin main - Go to share.streamlit.io
- Click "New app" and select this repo
- Set main file to
app.py - 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
- Create
scripts/generate_{disease}_snapshot.py - Create
api/{disease}.pywith API class - Create
pages/X_{Disease}_Overview.py - Update
api/__init__.pyexports
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
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
Vendor Mapping
Review vendor mapping coverage for MOVR variables. See field mapping status and coverage percentages across different data sources.
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