Eos is the result of a research project. To support our research, please cite one of our papers instead of referencing our github in scientific articles. You can find an overview of papers about Eos here. If you are not sure which paper to cite, we recommend this one:
Severin Kohler, Diego Boscá, Florian Kärcher, Birger Haarbrandt, Manuel Prinz, Michael Marschollek, Roland Eils, Eos and OMOCL: Towards a seamless integration of openEHR records into the OMOP Common Data Model, Journal of Biomedical Informatics, Volume 144, 2023 (Link)
Thanks!
- JDK (>= 17)
- Apache Maven (>= 3.8.0)
- docker and docker-compose if you want to use docker
- Postgres if not using docker
- optionally: openEHR platform, otherwise there is the option to setup one down below
- clone repo
git clone --recursive
- Use Common Data model sqls from
setup/ddls/
or download them here. If downloaded change the file names according to the provided ones (delete the version number). - Download Vocabs from https://athena.ohdsi.org/, you need to create an Account for that, afterwards copy them
to
setup/vocab/
. For recommended vocabs see Wiki.
- Check if the OMOP_CDM_vocabulary_load sql script contains all your csvs.
- choose a docker-compose file of your liking they can be found in
setup/
. Setup may take a while since all the vocabularies are loaded into the database
-
Start your postgres database (in this walktrough the example port is 5433, so it is not in conflict with other postgres dbs from e.g. the openEHR platform)
-
execute the command in
setup/ddls
$ psql -h localhost --port=5433 -U postgres -W --dbname=YOUR_DB_NAME --file=db_setup.sql
you can empty the folder setup/vocab
afterwards if you wish
-
Make sure a openEHR platform and the database is running
-
Build the application
$ mvn clean install
- configure database in
src/main/resources/application.yml
datasource:
password: YOUR_PASSWORD
username: YOUR_USERNAME
url: jdbc:postgresql://localhost:5433/YOUR_SCHEMA #default is public
- configure openEHR platform in
src/main/resources/application.yml
.
ehrbase:
base-url: YOUR_PLATFORM_URL
security:
type: basic # you can also use other sec depending on what you want
user:
name: YOUR_USERNAME
password: YOUR_PASSWORD
-
configure cronjob for eras or leave them for manual execution
-
POSTMAN examples can be found in
.config/
We currently support CDM v5.4, if more tooling is provided v6 will be added in the future.
See here
CDM table | Supported |
---|---|
OBSERVATION_PERIOD | automatically generated |
VISIT_OCCURRENCE | automatically generated |
VISIT_DETAIL | |
CONDITION_OCCURRENCE | x |
DRUG_EXPOSURE | x |
PROCEDURE_OCCURRENCE | x |
DEVICE_EXPOSURE | x |
MEASUREMENT | x |
OBSERVATION | x |
DEATH | x |
NOTE | |
NOTE_NLP | |
SPECIMEN | x |
FACT_RELATIONSHIP | |
DRUG_ERA | automatically generated |
CONDITION_ERA | automatically generated |
- INTERVAL_EVENT is currently only mapping the event time
- Interval of Quantity is not supported
- Multiplication is currently only supported for DrugExposure quantity, will be added to other configs on demand.
- Dv_Proportion only type 2 is supported for unit due to lack of sample data. If samples are provided this can be added.
- CustomConverters are not supported for Person Conversions
- range low range high and operator will map normal range and magnitude status if DV Quantity is provided and NOT magnitude.
We thank the Georgia Tech Research Institute for providing jpa classes for OMOP and vita systems for their free accessible openEHR tooling.