1.4. Release Notes EHRbase 0.9.0 (pre-alpha)

As the initial open source version of EHRbase, this release note is a bit more comprehensive. Please be aware that this is a pre-alpha version. We will soonly release the alpha version containing EHR_STATUS and DIRECTORY Endpoints of the official openEHR REST API. 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.

Here is an overview of the features implemented:

1.4.1. 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

1.4.1.1. openEHR REST API

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

  • EHR (CREATE EHR, CREATE EHR with Id)
  • 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))
  • STORED_QUERY (List Stored Queries, Store a query, Get stored query, delete)
  • ADL 1.4 TEMPLATE (Upload a Template, List Templates, Get Template)

Note

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)

Note

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.

1.4.1.2. 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
  • COMPOSITION
  • CONTRIBUTION
  • ADL 1.4 TEMPLATE
  • DIRECTORY

1.4.1.3. Java Client Library

The client library has the following features:

  • Create EHR
  • Upload/Sync Templates
  • Send Composition
  • Creation of Java (DTO) classes from Operational Templates (OPTs)

1.4.2. What you might miss

  • DIRECTORY Endpoints will be added soonly
  • EHR_STATUS Endpoints will be added soonly
  • VERSIONED_STATUS 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
  • Database transactions and rollback (planned to implemented using Spring Transaction Management)

1.4.3. Known Issues

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

1.4.3.1. Archetype Query Language

Note

As of now, partial paths will return RM objects in the JSON format used by the Better Platform. Canonical JSON will be supported soonly

  • ehr/time_created/value projection is not supported
SELECT e/time_created/value FROM EHR e
  • ehr/ehr_id projection is not supported (instead, an internal ehr/uid is supported)
SELECT e/ehr_id FROM EHR e
  • 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]
  • composition/language projection not supported
SELECT c/uid/value, c/name/value, c/archetype_node_id, c/language, c/territory, c/category/value
FROM EHR e [ehr_id/value='dd616472-9432-4004-ad85-fd47affb1cc8'] CONTAINS COMPOSITION c
  • TIMEWINDOW keyword is not supported
SELECT e/ehr_id/value FROM EHR e TIMEWINDOW PT12H/2019-10-24

1.4.3.2. Java Client Library

  • Occurrences are not recognized (for example events in observations) when auto-generating a dto from an operational template