Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Proteus logo

Proteus is under active development and may not yet be completely stable or continuously available. Feedback and contributions are welcome.

Proteus

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.

Features

  • 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_id or conceptId (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.

Using Proteus

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.

Project structure

  • 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.

Local development

API

The API requires Rust and a PostgreSQL database containing the vocabulary-history tables.

cd api
cp .env.example .env

Update DATABASE_URL in .env, then start the API:

cargo run

By default, it listens on http://127.0.0.1:8080.

UI

The UI requires a current Node.js release and npm.

cd ui
npm install
npm run dev

Vite serves the application locally and proxies /api requests to http://localhost:8080.

About

Proteus is created and maintained by the Erasmus MC Department of Medical Informatics.

About

shows how concepts change between vocabulary releases

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages