The unified outcomes research platform for OMOP CDM.
Live demo: parthenon.acumenus.net User manual: parthenon.acumenus.net/docs API reference: parthenon.acumenus.net/docs/api
Running a real-world evidence study with OHDSI tools today means juggling 10+ separate applications — Atlas, WebAPI, Achilles, DataQualityDashboard, WhiteRabbit, Usagi, CohortMethod, PatientLevelPrediction, and more — each with its own install, its own credentials, its own UI, and its own language (Java, R, Knockout.js, .NET). A researcher who just wants to answer a clinical question spends most of their time wrestling with tooling.
Parthenon is one application that does everything. One login. One Docker Compose stack. One cohort builder that leads naturally into characterization, incidence rates, treatment pathways, and effect estimation — without switching tools.
Define patient populations using the same Circe-compatible expression format as Atlas — with a modern drag-and-drop editor, real-time SQL preview, and person-count feedback against any registered CDM source. Import existing Atlas cohort definitions without modification. Share cohorts with colleagues via a read-only link — no account required to view.
Search 7+ million OMOP concepts by name, code, or synonym. Browse the concept hierarchy, navigate ancestor/descendant trees, and see what source codes map to a standard concept — all in a split-pane browser. Build concept sets with descendant expansion, inclusion/exclusion logic, and batch import from Atlas exports.
Know your data before you analyze it. Parthenon ships a full Achilles characterization engine (~200 analyses) and the DataQualityDashboard (~3,500 checks) as built-in modules — no R required. The Data Explorer shows record counts, demographic distributions, temporal trends, and Achilles HEEL violations across every domain.
Five analysis types are fully integrated:
- Characterizations — extract covariate profiles for target and comparator cohorts
- Incidence Rates — time-at-risk incidence with gender, age, and calendar-year stratification
- Treatment Pathways — sequence treatment events to reveal real-world therapy patterns
- Population-Level Estimation — comparative effectiveness via CohortMethod (R sidecar)
- Patient-Level Prediction — machine-learning risk models via PatientLevelPrediction (R sidecar)
Package any combination into a Study with a single execution button and unified progress tracking.
Define care bundles (e.g., Diabetes, Heart Failure, AFib) with constituent gap measures — HbA1c testing, retinal exams, statin adherence, ACE inhibitor prescribing. Evaluate against any population and see per-patient gap status, bundle compliance scores, and population-level dashboards across 45 pre-built bundles and 438 care gap measures.
Upload CSV files or FHIR bundles and let the AI-powered ingestion pipeline handle the rest: source profiling, schema mapping suggestions, concept mapping with confidence scores, and a human review queue to approve, reject, or remap uncertain assignments before writing to the CDM.
Navigate individual patient records — conditions, drugs, procedures, measurements, observations — on an interactive timeline. Browse cohort members and drill into any event. Concept links take you directly to the vocabulary browser.
Describe a cohort in plain English — "patients with type 2 diabetes newly started on metformin after age 40 with no prior insulin use" — and Abby, the built-in AI assistant powered by MedGemma, generates the structured OMOP cohort expression. Refine it through chat. Explain any existing cohort in plain language.
| Capability | Details |
|---|---|
| Atlas parity | Full import/export compatibility with Atlas cohort definitions and concept sets |
| In-app help | Contextual ? slide-overs on every page, linked to the full user manual |
| What's New | Auto-shows a changelog modal after each upgrade |
| Guided onboarding | 6-step setup wizard for super-admins; interactive tour for new users |
| API reference | Auto-generated OpenAPI spec (Scramble) with Stoplight Elements UI — 173 endpoints, 23 groups |
| OpenAPI TypeScript types | Auto-generated from the spec on every deploy |
| Role-based access | super-admin, admin, researcher, viewer with per-source restrictions |
| Configurable auth | LDAP / OAuth2 / OIDC / SAML provider configuration |
| 8 AI providers | Ollama (default), OpenAI, Azure, Anthropic, Gemini, Mistral, Cohere, Bedrock |
| System health | Real-time 30-second monitoring dashboard for all services |
| One-command deploy | ./deploy.sh handles migrations, cache warm, frontend build, and opcache flush |
| Safe ref promotion | ./deploy-ref.sh <ref> promotes a tested commit or tag on the server, then runs deploy.sh |
| Full CI suite | PHPStan L8, Pint, Pest (195 tests), TSC strict, ESLint, Vitest, mypy, pytest |
- Docker and Docker Compose v2
- Git
- Python 3.9+ (for the installer)
The full production deployment includes Parthenon plus the Acropolis infrastructure layer: automatic TLS via Traefik, container management via Portainer, database administration via pgAdmin. The Enterprise tier adds n8n workflow automation, Apache Superset BI dashboards, DataHub data catalog, Authentik SSO, and Wazuh security monitoring.
git clone https://github.com/sudoshi/Parthenon.git
cd Parthenon
python3 install.py --with-infrastructureThis runs both the Parthenon application installer and the Acropolis infrastructure installer in sequence: configuring environment files, starting all containers, running migrations, building the frontend, and wiring Traefik reverse proxy routes with auto-TLS for every service.
For local development or environments where you manage your own reverse proxy:
git clone https://github.com/sudoshi/Parthenon.git
cd Parthenon
python3 install.pyThe Rich TUI installer walks through prerequisites, environment setup, container orchestration, and initial seeding in 9 phases.
For server-side promotion after CI passes, deploy an exact commit, tag, or branch ref with:
./deploy-ref.sh main
./deploy-ref.sh v1.0.4
./deploy-ref.sh a1b2c3d -- --frontendThis wrapper fetches from git, refuses a dirty checkout by default, switches to the target commit in detached HEAD mode, and then runs ./deploy.sh with any extra deploy flags you pass after --.
The guided installer and browser launcher now also require:
- a
BeginnerorExperiencedOHDSI/OMOP user selection - a
UMLS Keycaptured up front for vocabulary-import workflows - an
Enterprise KeyifEnterprise Editionis selected
If you prefer manual setup over the interactive installer:
git clone https://github.com/sudoshi/Parthenon.git
cd Parthenon
# Configure environment
cp .env.example .env
cp backend/.env.example backend/.env
# Edit backend/.env — set DB credentials, APP_KEY, and Sanctum domains
# Start services
docker compose up -d
# Initialize
docker compose exec php php artisan key:generate
docker compose exec php php artisan migrate
docker compose exec php php artisan admin:seed # interactive: creates super-admin
# Build frontend
docker compose exec node sh -c "cd /app && npx vite build"Open http://localhost:8082 — you'll be greeted by the setup wizard.
- Register a CDM source — Settings → Data Sources → connect your PostgreSQL/OMOP database
- Browse the vocabulary — verify concepts resolve against your vocabulary schema
- Confirm vocabulary-import prerequisites — ensure the configured
UMLS_API_KEYremains available before running CPT-4 or other vocabulary refresh workflows - Run Achilles — Data Explorer → select source → Run Achilles (takes 15–60 min depending on size)
- Create a cohort — Cohort Definitions → New → build criteria or import an Atlas JSON
- Generate the cohort — hit Generate, monitor progress, see person counts
| Resource | URL |
|---|---|
| User Manual (26 chapters + 7 appendices) | /docs |
| API Reference (173 endpoints) | /docs/api |
| Atlas → Parthenon Migration Guide | /docs/migration |
| Technical Architecture | SPECS.md |
| Roadmap | ROADMAP.md |
| SDLC & Development Process | SDLC-plan.md |
| Phase devlogs | docs/devlog/ |
Parthenon consolidates more than a dozen OHDSI tools into a single deployable application.
| Instead of... | Parthenon provides... |
|---|---|
| Atlas (Knockout.js UI) | Modern React 19 SPA with full Atlas cohort/concept set compatibility |
| WebAPI (Java/Spring) | Laravel 11 REST API — same semantics, faster, easier to extend |
| Achilles (R) | Built-in characterization engine (~200 analyses), no R installation required |
| DataQualityDashboard (R) | Built-in DQD engine (~3,500 checks) with interactive results browser |
| Usagi (Java desktop) | AI-powered concept mapper with confidence scores and human review queue |
| WhiteRabbit (Java) | AI-powered source profiler — upload CSV, get schema + concept mapping suggestions |
| Circe (Java) | Built-in cohort expression compiler — Circe JSON in, CDM SQL out |
| CohortMethod (R) | R sidecar integration — submit from UI, results stream back |
| PatientLevelPrediction (R/Python) | R/Python sidecar integration — same workflow as CohortMethod |
| Strategus (R) | Built-in study orchestrator — bundle analyses, execute as a unit |
| SqlRender (R/Java) | PHP dialect layer — same template system, no R dependency |
| ETL-CDMBuilder (.NET) | AI-powered ETL pipeline with field-level mapping and review |
Clinical Researchers & Epidemiologists who run population-level studies against OMOP CDM and want one tool instead of ten.
Data Engineers & Informaticists maintaining OMOP databases who need to characterize data quality, track vocabulary mapping quality, and onboard new data sources efficiently.
Healthcare Organizations measuring care quality, tracking bundle compliance, and building evidence for value-based care programs.
OHDSI Network Participants who need Atlas parity — Parthenon reads and writes every Atlas artefact format and exposes a WebAPI-compatible layer for legacy R package integration.
- Fork and clone the repo
- Branch off
main:git checkout -b feature/your-feature - Follow the SDLC process in docs/devlog/strategy/SDLC-plan.md
- Run the Phase 8 quality gates: PHPStan, Pest, TSC, ESLint, Vitest
- Open a PR against
main— CI must be fully green
See docs/devlog/process/SDLC-documentation.md for the complete Phase 8/9 checklist.
The original OHDSI Atlas codebase is archived at the archive/legacy branch.
Auto-updated by the Parthenon docs-sync automation.
| Metric | Count |
|---|---|
| Frontend features | 33 modules |
| Frontend pages | 65 page components |
| API controllers | 81 |
| API routes | 434+ registered |
| Docker services | 18 containers |
| Test files | 2528 (21 PHP, 38 TS, 2444 Python, 25 E2E) |
abby-ai, administration, analyses, auth, care-gaps, cohort-definitions, concept-sets, dashboard, data-explorer, data-sources, estimation, etl, evidence-synthesis, genomics, gis, help, heor, imaging, ingestion, jobs, pathways, phenotype-library, prediction, profiles, publish, radiogenomics, sccs, settings, strategus, studies, study-agent, text-to-sql, vocabulary
| Service | Ports |
|---|---|
| nginx | ${NGINX_PORT:-8082}:80 |
| php | internal |
| node | ${VITE_PORT:-5175}:5173 |
| postgres | ${POSTGRES_PORT:-5480}:5432 |
| redis | ${REDIS_PORT:-6381}:6379 |
| python-ai | ${AI_PORT:-8002}:8000 |
| chromadb | internal |
| study-agent | ${STUDY_AGENT_PORT:-8765}:8765 |
| qdrant | internal |
| hecate | ${HECATE_PORT:-8080}:8080 |
| solr | ${SOLR_PORT:-8983}:8983 |
| whiterabbit | ${WHITERABBIT_PORT:-8090}:8090 |
| r-runtime | ${R_PORT:-8787}:8787 |
| horizon | internal |
| orthanc | ${ORTHANC_PORT:-8042}:8042 |
| ohif-build | internal |
| docs-build | internal |
| fhir-to-cdm | ${FHIR_TO_CDM_PORT:-8091}:8091 |
Apache License 2.0 — see LICENSE for details.
Built on the OMOP Common Data Model. OMOP CDM and the OHDSI vocabulary are governed by their respective licenses — see ohdsi.org.
