• Stars
    star
    160
  • Rank 226,116 (Top 5 %)
  • Language
    Groovy
  • License
    Apache License 2.0
  • Created about 11 years ago
  • Updated about 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Open platform to manage and share standardized clinical data, designed by @ppazos at CaboLabs Health Informatics.

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

  • Primary clinical data repository for web and mobile clinical apps.
  • Secondary repository for backup or analysis.
  • Centralized repository to share clinical information between many systems.
  • Fast prototyping of new health related apps, removing the need of creating the clinical repo yourself.
  • Main or proxy repository for wearable and other monitoring-based clinical data.
  • Standardized aggregation repository as a data source for ETL to datawarehouses and analytics tools.
  • Research and training clinical data repository.
  • Backend for Clinical Decision Support tools (e.g. rule engines)

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

  • REST API provides services to integrate the EHRServer to your systems and apps (documentation).
  • Web Console provides a user interfaces for administrators of the EHRServer (check the screenshots above).
  • Query Builder is the component in charge of creating, managing and executing queries over openEHR data stored in the EHRServer.
  • SNOMED Query is a component in charge of processing the terminologic constraints in queries that contain SNOMED CT Expressions. This component is part of the SNQUERY tool developed by VeraTech
  • EHR Base is where data is managed, indexed, versioned and stored.

Main features

  • openEHR compliant clinical data repository
  • Administrative Web Console
  • Simple but powerful REST API
  • Supports XML and JSON
  • Full audit access for traceability
  • Versioned clinical documents
  • Query Builder from the Web Console to create data queries (no programming needed!)
  • Support of SNOMED CT Expressions on openEHR queries (simplifies complex queries)
  • Supports any structure of clinical document (following the openEHR standard information model)
  • Vendor Neutral Archive
  • Multitenancy

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?

  • Installing EHRServer
  • Subscribe to CloudEHRServer
  • Run with docker-compose:
    1. $ grails war
    2. $ cd docker-compose
    3. $ docker-compose up
    4. localhost:8080 will be Adminer (a MySQL manager) (default user: ehrserver2/ehrserver2)
    5. localhost:8888 will be Tomcat (running EHRServer) (default user: [email protected]/admin)
    6. Change the ports and SMTP configuration in the docker-compose file (optional, for user management like password reset)

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

  1. from the installation process, copy the default root password
  2. ./mysql -u root -p
  3. enter default root password, and proceed to change it
  4. ALTER USER 'root'@'localhost' IDENTIFIED BY 'NEW-ROOT-PASSWORD';
  5. CREATE DATABASE ehrserver2;
  6. exit

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

  1. create user 'user'@'localhost' identified by 'your_password';
  2. grant all on ehrserver2.* to 'user'@'localhost';
  3. select host, user from mysql.user;
  4. exit
  5. 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="[email protected]"
  export EHRSERVER_EMAIL_HOST="mail.yourdomain.com"
  export EHRSERVER_EMAIL_PORT=1234
  export EHRSERVER_EMAIL_USER="[email protected]"
  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/

More Repositories

1

cabolabs-mirth

Mirth Connect Examples for Educational Purposes
Shell
20
star
2

cabolabs-ehrserver-js

Javascript client for EHRServer
JavaScript
8
star
3

openEHR-OPT

Java/Groovy Support of openEHR Operational Templates, Reference Model, Data Generators and other tools for www.CaboLabs.com projects
Groovy
8
star
4

EHRCommitter

Medical recording app to test our EHRServer
Groovy
6
star
5

cabolabs-dicombroker

Grails application to query, retrieve, visualize and send DICOM Imaginology Studies from a set of PACS to remote systems.
Groovy
6
star
6

EHRClientPHP

EHRServer client in PHP
XSLT
5
star
7

cabolabs-emrapp

openEHR Electronic Medical Record Application for testing comits and queries to the EHRServer.
Groovy
5
star
8

openEHR-ADL

Project that centralizes all the ADL processing for CaboLabs projects
HTML
3
star
9

archetype-flattener

Command line tool for openEHR archetype flattening and ADL generation
Groovy
3
star
10

cabolabs-cda

HL7 CDA generator for the CaboLabs courses http://cabolabs.com/en/training
XSLT
3
star
11

archetype-manager

Small but helpful class to load and cache ADL archetypes in memory
Groovy
2
star
12

hl7-benchmark

Benchmark for HL7v2.x over MLLP and SOAP
Groovy
2
star
13

openehr-conformance-verification

Conformance verification framework or openEHR implementations
Groovy
2
star
14

openehr-basic

Sample openEHR application to learn design and development concepts
Groovy
2
star
15

ehrserver-flow-demo

This is a step by step guide on how to use the EHRServer Clinical Data Repository, open source, compliant with the openEHR standard, for storing and querying data.
2
star
16

knowledge

Knowledge repository for CaboLabs software
HTML
1
star
17

cabolabs-xre-iu

XML Rule Enfgine UI for management of rule execution for Clinical Decision Support
Groovy
1
star
18

cabolabs-entity-server

CaboLabs Entity Server
CSS
1
star
19

cabolabs-xre-core

XML Rule Enfgine Core for Clinical Decision Support
Java
1
star
20

phersistence

Persistence for PHP Objects
PHP
1
star
21

testehr

Load tester for the openEHR API
JavaScript
1
star
22

cabolabs-xre-engine

XML Rule Enfgine for Clinical Decision Support
Groovy
1
star
23

cabolabs-ckm

Clinical Knowledge Manager for the CaboLabs Projects
1
star
24

openehr-rest-client

Groovy
1
star
25

openEHR-skeleton

Step by step example of how eHealth apps are created in compliance with the openEHR standard
Groovy
1
star
26

openehr-modeling-tools

1
star
27

clinical-database-tests

openEHR database tests in mongodb and eXistDB
Groovy
1
star
28

PhpRouter

PHP MVC router based on Macaw with some improved features
PHP
1
star
29

cabolabs-ehrserver-groovy

Groovy client for the CaboLabs openEHR EHRServer
Groovy
1
star
30

ResourceExtractor

Small game inspired by Civilization build in Delphi
Pascal
1
star
31

cabolabs-ehrgen

Framework to build health record applications based on the openEHR standard.
1
star
32

openehr-cnf-tests

openEHR Conformance Tests
Groovy
1
star