Proteus is under active development and may not yet be completely stable or continuously available. Feedback and contributions are welcome.
Proteus was a prophetic sea god who could change his shape at will.
This application shows how concepts change between vocabulary releases.
Try it at: https://proteus.pantheon-hds.com/
It is intended to help researchers with studies that run across databases using different vocabulary versions. A concept may have changed domain or class, been deprecated, or otherwise changed between releases. Proteus makes those differences visible so they can be reviewed and accommodated to achieve consistent results across databases.
The available history starts with the 2024-02-29 OMOP Vocabulary release.
Fun fact: Proteus also gave us the English adjective protean, meaning highly variable or able to take many forms.
- Identify concepts that have changed across releases.
- Check one concept or thousands of concepts in a single search.
- Accept a comma-separated list of concept IDs or JSON containing fields named
concept_idorconceptId(matched case-insensitively). - Show the release in which each change took effect and the fields that changed.
- View the complete history of an individual concept, including its versions, relationships, ancestors, and descendants.
- Provide shareable concept-history URLs.
Paste concept IDs into the search field as a comma-separated list:
123, 456, 789
Alternatively, paste concept-set or cohort-definition JSON containing one or more
concept_id or conceptId fields:
{
"items": [
{
"concept_id": 123
},
{
"concept_id": 456
}
]
}Concepts with changes are marked with a warning icon. The release and changes columns show when each new version took effect and which fields differ from the preceding version. Select a concept ID to open its complete history.
api/— Rust API built with Actix and Postgres.ui/— SvelteKit UI built with Vite and TypeScript.
The API follows a handler → service → repository structure. It reads vocabulary
history from the PostgreSQL tables vocab_history.concept,
vocab_history.concept_relationship, and vocab_history.concept_ancestor.
The API requires Rust and a PostgreSQL database containing the vocabulary-history tables.
cd api
cp .env.example .envUpdate DATABASE_URL in .env, then start the API:
cargo runBy default, it listens on http://127.0.0.1:8080.
The UI requires a current Node.js release and npm.
cd ui
npm install
npm run devVite serves the application locally and proxies /api requests to
http://localhost:8080.
Proteus is created and maintained by the Erasmus MC Department of Medical Informatics.
