Release Notes EHRbase 0.10.0 (alpha)

This is the alpha release of EHRbase (2020-01-10). This means that the basic set of functions has been implemented. Please be aware that the current state can be used to develop openEHR applications but should not be used for real patient data in production.

The following changes are included in this version:

  • openEHR REST API DIRECTORY Endpoints
  • openEHR REST API EHR_STATUS Endpoints (including other_details)
  • Spring Transactions: EHRbase now ensures complete rollback if part of a transaction fails.
  • Improved Template storage: openEHR Templates are stored inside the postgres database instead of the file system (including handling of duplicates)
  • AQL queries with partial paths return data in canonical json format (including full compositions)
  • Multimedia data can be correctly stored and retrieved
  • Spring configuration allows setting the System ID
  • Validation of openEHR Terminology (openEHR terminology codes are tested against an internal terminology service)
  • Order of columns in AQL result sets are now reliably preserved (
  • Some projection issues for EHR attributes have been resolved in AQL
  • Fixed error regarding DISTINCT operator in AQL (
  • Fixed null pointer exceptions that could occur in persistent compositions
  • Lots of new conformance tests for QUERY Endpoints

General Features

  • openEHR Reference Model Version 1.0.4
  • Serialisation of Reference Model Objects in Canonical JSON and XML
  • Archetype Definition Language 1.4
  • Data Validation against Operational Templates
  • openEHR REST API Endpoints (see below for details)


Based on the official openEHR REST API the following endpoints are implemented:

  • COMPOSITION (Create, Update, Delete, Get Composition by Version Id, Get composition at time)
  • CONTRIBUTION (Create, Get of compositions. Other versioned object like EHR_STATUS coming soonly)
  • QUERY (Execute ad-hoc (non-stored) AQL Query, Execute stored query, parameters))
  • STORED_QUERY (List Stored Queries, Store a query, Get stored query, delete, parameters)
  • ADL 1.4 TEMPLATE (Upload a Template, List Templates, Get Template)


The Swagger UI is generally WIP and currently does not distinguish between implemented endpoints and stubs! This means that you will see some endpoints that you cannot use)


The data format for contributions sent through the REST API is not yet defined in the openEHR. Please refer to the examples. Also note that the format might be subject of change.

Conformance Tests

EHRbase ships with a set of tests verifying the conformance with the openEHR REST API. For now the tests include the following endpoints:

  • EHR

What (basic) features you might miss

  • VERSIONED_OBJECT Endpoints are not implemented
  • Authentication is not implemented (planned to be implemented using Spring Security)
  • Connection to external terminology service (like FHIR TS) is not yet supported
  • EHR functions like is_modifyable and is_queryable are not yet supported

Known Issues

As EHRbase is still in alpha status, there are plenty of known issues. If you try things out, please be aware that the following issues are known and documented:

Archetype Query Language

  • ehr/uid projection not supported (EHRBASE supports ehr/uid/value but not ehr/uid)
SELECT e/uid, e/time_created, e/system_id FROM EHR e
  • Not supported variables in archetype_id predicates
select e/ehr_id/value, e/time_created/value, e/system_id/value from EHR
e CONTAINS COMPOSITION c [$archetype_id]
  • TIMEWINDOW keyword is not supported
SELECT e/ehr_id/value FROM EHR e TIMEWINDOW PT12H/2019-10-24