ppazos / cabolabs-ehrserver

Open platform to manage and share standardized clinical data, designed by @ppazos at CaboLabs Health Informatics.
https://cabolabs.com
Apache License 2.0
173 stars 110 forks source link
cabolabs cdr clinical-data ehr ehrserver openehr openehr-standard

EHRServer is the first open source Clinical Data Management and Sharing Platform, compliant with the openEHR standard. Use it as a:

EHRServer was designer for developers by developers. You don't need to be an openEHR guru to use it. Easy to install, use, manage and integrate.

Stargazers over time

Stargazers over time

Screenshots

Dashboard

Quick look at what is happening in the EHRServer.

Template Manager

Manage clinical document definitions from the Template Manager, defining what data could be stored and queried.

Query Builder

Very simple point and click query creation in seconds, no programming needed.

Manage it on the go

Mobile friendly user interface, adapts to small screens.

EHRServer Architecture (simplified)

Quick architecture reference

Main features

Based on Open Source Technologies

Community

Support the project!

One way of supporting this project and our vision for building a completely open e-health platform, is through community donations. This is used for servers, dev tools, pay for dev time, maintain the website, updated documentation and guides.

Another way of supporting the project is by subscribing to the CloudEHRServer

Thanks for your support!

Community support

Try it

Want to try EHRServer?

Quick install, configure, run locally (step by step)

This guide is based on a Linux environment, should be adapted for other OS.

Dependencies

  1. curl -s get.sdkman.io | bash
  2. source "$HOME/.sdkman/bin/sdkman-init.sh"
  3. sdk install grails 3.3.10
  4. set version by default: Y
  5. grails -version

Note: Grails should be 3.3.10!

Database for development

Install MySQL

MySQL >= 5.7

  1. sudo mysql -u root

  2. CREATE DATABASE ehrserver2;

  3. exit

    MySQL < 5.7

  4. from the installation process, copy the default root password

  5. ./mysql -u root -p

  6. enter default root password, and proceed to change it

  7. ALTER USER 'root'@'localhost' IDENTIFIED BY 'NEW-ROOT-PASSWORD';

  8. CREATE DATABASE ehrserver2;

  9. exit

    On any version you can also create a non-root user and use that to access your EHRServer database.

  10. create user 'user'@'localhost' identified by 'your_password';

  11. grant all on ehrserver2.* to 'user'@'localhost';

  12. select host, user from mysql.user;

  13. exit

  14. mysql -u user -p

EHRServer configuration

  1. nano ehrserver/conf/application.yml
  2. change development password to NEW-ROOT-PASSWORD
  3. save

EHRServer environment variables

Mandatory:

  export EHRSERVER_REST_SECRET="6067dba9-1417-41c5-b1af-92208c77ce77"
  export EHRSERVER_SNQUERY_KEY="22222222-2222-2222-2222-222222222222"

Optional:

  export EHRSERVER_EMAIL_FROM="user@yourdomain.com"
  export EHRSERVER_EMAIL_HOST="mail.yourdomain.com"
  export EHRSERVER_EMAIL_PORT=1234
  export EHRSERVER_EMAIL_USER="user@yourdomain.com"
  export EHRSERVER_EMAIL_PASS="youruserpassword"
  export EHRSERVER_ALLOW_WEB_USER_REGISTER=false

Conditional:

  If EHRSERVER_ALLOW_WEB_USER_REGISTER =>
      export EHRSERVER_RECAPTCHA_SITEKEY="generate a recaptcha v2 site key"
      export EHRSERVER_RECAPTCHA_SECRETKEY="generate a recaptcha v2 secret key"

  If you want to use AWS S3 for file storage =>
      export EHRSERVER_S3_ACCESS="your config in S3"
      export EHRSERVER_S3_SECRET="your config in S3"
      export EHRSERVER_S3_BUCKET="your config in S3"
      export EHRSERVER_S3_REGION="your config in S3"

EHRServer run (dev environment)

  1. cd ehrserver
  2. grails run-app
  3. open http://localhost:8090
  4. login with admin/admin/123456

Atomik Server

I you need more speed and mono-tenancy EHR server, please check this Atomik! https://atomik.app/