All Projects → ehrbase → ehrbase

ehrbase / ehrbase

Licence: Unknown, Unknown licenses found Licenses found Unknown LICENSE.md Unknown license-header
An open source openEHR server

Programming Languages

java
68154 projects - #9 most used programming language
PLpgSQL
1095 projects

Projects that are alternatives of or similar to ehrbase

specifications-ITS-REST
openEHR REST API Specifications
Stars: ✭ 20 (-85.4%)
Mutual labels:  ehr, openehr
SPL UD DL
A reported 96,480 people were diagnosed with melanoma in the United States in 2019, leading to 7230 reported deaths. Early-stage identification of suspicious pigmented lesions (SPLs) in primary care settings can lead to im- proved melanoma prognosis and a possible 20-fold reduction in treatment cost. Despite this clinical and economic value, eff…
Stars: ✭ 27 (-80.29%)
Mutual labels:  clinical
documentspark
💖 DocumentSpark - Simple secure document viewing server. Converts a document to a picture of its pages. Content disarm and reconstruction. CDR. Formerly p2. The CDR solution for ViewFinder remote browser.
Stars: ✭ 211 (+54.01%)
Mutual labels:  cdr
halyos
Redesigning the Patient Portal Experience with SMART on FHIR.
Stars: ✭ 20 (-85.4%)
Mutual labels:  ehr
terraform-provider-hsdp
Terraform provider to orchestrate various HSDP resources like IAM, CDL, CDR, MDM, Container Host, Edge, etc
Stars: ✭ 26 (-81.02%)
Mutual labels:  cdr
NRC
Natural language generation for discrete data in EHRs
Stars: ✭ 19 (-86.13%)
Mutual labels:  ehr
OAProgression
Multimodal Machine Learning-based Knee Osteoarthritis Progression Prediction from Plain Radiographs and Clinical Data
Stars: ✭ 58 (-57.66%)
Mutual labels:  clinical-data
fhir-bridge
FHIR Bridge acts as a broker between an HL7 FHIR client and an openEHR server.
Stars: ✭ 22 (-83.94%)
Mutual labels:  openehr
Openemr
The most popular open source electronic health records and medical practice management solution.
Stars: ✭ 1,762 (+1186.13%)
Mutual labels:  ehr
loinc2hpo
Java library to map LOINC-encoded test results to Human Phenotype Ontology
Stars: ✭ 19 (-86.13%)
Mutual labels:  ehr
ehr-blockchain
Electronic Health Record (EHR) and Electronic Medical Record (EMR) systems. However, they still face some issues regarding the security of medical records, user ownership of data, data integrity etc. The solution to these issues could be the use of a novel technology, i.e., Blockchain. This technology offers to provide a secure, temper-proof pl…
Stars: ✭ 41 (-70.07%)
Mutual labels:  ehr
webcdr
☎️ CDR viewer for Asterisk with search, call recording player, bulk downloads, Excel export
Stars: ✭ 54 (-60.58%)
Mutual labels:  cdr
Patient2Vec
Patient2Vec: A Personalized Interpretable Deep Representation of the Longitudinal Electronic Health Record
Stars: ✭ 85 (-37.96%)
Mutual labels:  ehr
Australian-Open-Banking-Data-Database
This is an ongoing collection of Open Banking Data APIs for Australian deposit taking institutions.
Stars: ✭ 72 (-47.45%)
Mutual labels:  cdr
BadMedicine
Library and CLI for randomly generating medical data like you might get out of an Electronic Health Records (EHR) system
Stars: ✭ 18 (-86.86%)
Mutual labels:  ehr
standards-maintenance
This repository houses the interactions, consultations and work management to support the maintenance of baselined components of the Consumer Data Right API Standards and Information Security profile.
Stars: ✭ 32 (-76.64%)
Mutual labels:  cdr
pdd-graph
PDD Graph : Bridging MIMIC-III and Linked Data Cloud
Stars: ✭ 31 (-77.37%)
Mutual labels:  ehr
ci4cc-informatics-resources
Community-maintained list of resources that the CI4CC organization and the larger cancer informatics community have found useful or are developing.
Stars: ✭ 22 (-83.94%)
Mutual labels:  clinical
Jovian
Metagenomics/viromics pipeline that focuses on automation, user-friendliness and a clear audit trail. Jovian aims to empower classical biologists and wet-lab personnel to do metagenomics/viromics analyses themselves, without bioinformatics expertise.
Stars: ✭ 14 (-89.78%)
Mutual labels:  clinical
freehealth
Free and open source Electronic Health Record
Stars: ✭ 39 (-71.53%)
Mutual labels:  ehr

EHRbase Maven Central Docker Image Version (latest semver) Quality Gate Status Contributor Covenant

EHRbase Logo

EHRbase is an openEHR Clinical Data Repository, providing a standard-based backend for interoperable clinical applications. It implements the latest version of the openEHR Reference Model (RM 1.1.0) and version 1.4 of the Archetype Definition Language (ADL). Applications can use the capabilities of EHRbase through the latest version of the openEHR REST API and model-based queries using the Archetype Query Language.


Release notes

Please check the CHANGELOG and / or EHRbase Documentation for more details.

Documentation

EHRbase Documentation is build with Sphinx and hosted on Read the Docs.

Quick Start: Run EHRbase with Docker

See our Run EHRbase + DB with Docker-Compose documentation page for a quick start.

Acknowledgments

EHRbase contains code and derived code from EtherCIS (ethercis.org) which has been developed by Christian Chevalley (ADOC Software Development Co.,Ltd). Dr. Tony Shannon and Phil Berret of the Ripple Foundation CIC Ltd, UK and Dr. Ian McNicoll (FreshEHR Ltd.) greatly contributed to EtherCIS.

EHRbase heavily relies on the openEHR Reference Model implementation (Archie) made by Nedap. Many thanks to Pieter Bos and his team for their work!

EHRbase is jointly developed by Vitasystems GmbH and Peter L. Reichertz Institute for Medical Informatics of TU Braunschweig and Hannover Medical School


Building and Installing EHRbase

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. Please read these instructions carefully. See deployment for notes on how to deploy the project on a live system.

Prerequisites

You will need Java JDK/JRE 11 (preferably openJDK: e.g. from https://adoptopenjdk.net/)

You will need a Postgres Database (at least Version 10.4, Version 13 recommended) (Docker image or local installation). We recommend the Docker image to get started quickly.

Installing

1. Setup database

NOTE: Building EHRbase requires a properly set up and running DB for the following steps.

Run ./base/db-setup/createdb.sql as postgres User.

You can also use this Docker image which is a preconfigured Postgres database:

    docker network create ehrbase-net
    docker run --name ehrdb --network ehrbase-net -e POSTGRES_PASSWORD=postgres -d -p 5432:5432 ehrbase/ehrbase-postgres:latest

(For a preconfigured EHRbase application Docker image and its usage see the documentation)

2. Setup Maven environment

Edit the database properties in ./pom.xml if necessary

3. Build EHRbase

Run mvn package

4. Run EHRbase

Replace the * with the current version, e.g. application/target/application-0.9.0.jar

java -jar application/target/application-*.jar

Authentication Types

1. Basic Auth

EHRbase can use Basic Authentication for all resources. This means you have to send an 'Authorization' header set with keyword Basic followed by the authentication information in Base64 encoded username and password. To generate the Base64 encoded username and password combination create the string after the following schema: username:password.

The Basic Auth mechanism is implemented as "opt-in" and can be activated either by providing an environment variable SECURITY_AUTHTYPE=BASIC with the start command or by adding the value into the target application.yml file.

Currently we have support one user with password which can be set via environment variables SECURITY_AUTHUSER and SECURITY_AUTHPASSWORD. By default these values are set with ehrbase-user and authPassword=SuperSecretPassword and can be overridden by environment values. Alternatively you can set them inside the corresponding application.yml file.

The same applies to the admin user, via SECURITY_AUTHADMINUSER, SECURITY_AUTHADMINPASSWORD and their default values of ehrbase-admin and EvenMoreSecretPassword.

2. OAuth2

Environment variable SECURITY_AUTHTYPE=OAUTH is enabling OAuth2 authentication.

Additionally, setting the following variable to point to the existing OAuth2 server and realm is necessary: SPRING_SECURITY_OAUTH2_RESOURCESERVER_JWT_ISSUERURI=http://localhost:8081/auth/realms/ehrbase

Two roles are available: a user role, and admin role. By default, these roles are expected to be named USER and ADMIN. The names of these roles can be customised through the SECURITY_OAUTH2USERROLE and SECURITY_OAUTH2ADMINROLE environment variables. Users should have their roles assigned accordingly, either in the realm_access.roles or scope claim of the JWT used for authentication.

Contributing

Codestyle/Formatting

EHRbase java sourcecode is using palantir-java-format codestyle. The formatting is checked and applied using the spotless-maven-plugin. To apply the codestyle run the com.diffplug.spotless:spotless-maven-plugin:apply maven goal in the root directory of the project. To check if the code conforms to the codestyle run the com.diffplug.spotless:spotless-maven-plugin:check maven goal in the root directory of the project. These maven goals can also be run for a single module by running them in the modules' subdirectory.

To make sure all code conforms to the codestyle, the "check-codestyle" check is run on all pull requests. Pull requests not passing this check shall not be merged.

If you wish to automatically apply the formatting on commit for *.java files, a simple pre-commit hook script "pre-commit.sh" is available in the root directory of this repository. To enable the hook you can either copy the script to or create a symlink for it at .git/hooks/pre-commit. The git hook will run the "apply" goal for the whole project, but formatting changes will only be staged for already staged files, to avoid including unrelated changes.

In case there is a section of code that you carefully formatted in a special way the formatting can be turned off for that section like this:

everything here will be reformatted..

// @formatter:off

    This is not affected by spotless-plugin reformatting...
            And will stay as is it is!

// @formatter:on

everything here will be reformatted..

Please be aware that @formatter:off/on should only be used on rare occasions to increase readability of complex code and shall be looked at critically when reviewing merge requests.

Running the tests

For integration tests please refer to the integration-test repository

Deployment

  1. java -jar application/target/application-*.jar You can override the application properties (like database settings) using the normal spring boot mechanism: Command-Line Arguments in Spring Boot
  2. Browse to Swagger UI --> http://localhost:8080/ehrbase/swagger-ui.html

Updating

Before updating to a new version of EHRBase check UPDATING.md for any backwards-incompatible changes and additional steps needed in EHRBase. New Releases may introduce DB changes. It is thus recommend to make a DB backup before updating.

Built With

  • Maven - Dependency Management

License

EHRbase uses the Apache License, Version 2.0 (https://www.apache.org/licenses/LICENSE-2.0)

Stargazers over time

Stargazers over time

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].