Perseus combines intuitive and easy to use Web-based UI for design and implement ETL (extract, transform, and load) configuration and service for conversion the native/raw data to the OMOP Common Data Model (CDM).
Additionally, Perseus has embedded tools for search in the standardized vocabularies, generates documentation for the ETL process, create the code mappings and data quality check.
Contact Us: [email protected]
- Map source data to tables and columns to CDM
- Combine source tables
- Use pre-built sql functions (replace, concat…)
- Use pre-built source to source and source to standard vocabulary lookups (icd9, icd10, ndc…)
- Create custom lookups for the concept_id fields
- Set constant values to the CDM fields
- Use System/Auto generated values for the CDM fields
- Auto mapping for similar fields
- OMOP Vocabulary search
- Data Quality check
- Search mapping between new codes and OMOP standard concepts
- Convert data from native format to CDM
- Logic for creating eras (DRUG_ERAs, CONDITION_ERAs…)
- Logic for grouping visit occurrence/observation_period records
- Auto domain switching
- Create ETL specification
- Angular 12
- Python 3.7
- Java 17
- R 4.1.3
- PostgreSQL 13.2
- .NET Core 3.1
- Unix / Windows OS, Docker,
- 4GB RAM,
- ~10 GB HDD (Depend on Vocabulary size),
- Open ports: 443, 80.
Install docker compose as a plugin
apt install docker-compose-plugin
You can use Podman instead of Docker
apt install python3-pip
pip install podman-compose
If you have an issue with downloading from Docker Hub check configuration file:
/etc/containers/registries.conf
It need to contain the following string: unqualified-search-registries = ["docker.io"]
podman-compose pull
podman-compose up -d
Get the link to the vocabulary from Athena.
cd vocabulary-db
Install vocabulary archive and extract to vocabulary
directory. Full path vocabulary-db/vocabulary
. For example:
unzip <downloaded archive> -d vocabulary
Database deployment can take a long time if the dictionary size is large enough.
To Docker Compose.
Multi-user
(Optional)
cd user
- To get user registration links by e-mail you should configure SMTP server settings first. Edit file named
user-envs.txt
in theuser
directory with the following content (without spaces):
SMTP_SERVER=<your SMTP server host address>
SMTP_PORT=<your SMTP port>
SMTP_EMAIL=<email from which registration links will be sent to users>
SMTP_USER=<SMTP login>
SMTP_PWD=<SMPT password>
TOKEN_SECRET_KEY=<token encoding key>
Single-user
If you want to skip multi-user mode use user with these credential:
Email:
Password:
perseus
To start all containers at once using docker-compose please
- make sure docker-compose is installed
- set vocabulary link, see Vocabulary section
- configure SMTP server as it described in SMTP section (Optional)
Unix:
./startup.sh
Windows:
startup.cmd
Open localhost:80
in your browser, preferably Google Chrome
Perseus uses auxiliary services to scan, convert and validate data.
Below are links to these services, which should be included in the app build.
https://github.com/SoftwareCountry/WhiteRabbit
https://github.com/SoftwareCountry/ETL-CDMBuilder
https://github.com/SoftwareCountry/DataQualityDashboard
Open localhost:80
in your browser, preferably Google Chrome.
- User guide and Help: Perseus documentation
- We use the: GitHub issue tracker
- Contact us: Email
Perseus is licensed under Apache License 2.0