EtherCIS (Ethereal Clinical Information System) is an Open Source platform compatible with the openEHR standard. It is design to allow simple interactions with clients using RESTful API and persist clinical data in a separate DB engine. Clinical data are exchanged using different formats:
For more details on data representation in openEHR see this page
The core component of the architecture is a persistence engine that leverage new capabilities introduced recently in several RDBMS in particular the support of relational and NoSQL. datatypes in the single table structures. Although EtherCIS is flexible in term of choice of DB, in this implementation, we use PostgreSQL 9.4 and JSONB datatype. This is key feature since clinical data can be used with standard data query/mining tools in the context of clinical studies for instance. The persistence layer is using extensively jOOQ 3.5. This library supports various RDBMS and allows very neat SQL coding in Java. It allows to migrate the persistence layers to suit a target production environment, for example to deploy with Oracle or DB2.
Clinical records are automatically versioned by the platform following an update or a delete. To retrieve a specific version, the request adds a version number to a record id (in openEHR terms, this is done by appending a version number to a composition Id).
Security is an important feature of the platform and compliance with ISO18308 and most national medico-legal regulations
(HIPAA, ASIP etc.) has been a key driver of this system design. Patient data
privacy, security and controls of accesses as well as auditing user activities
are built-in functions of the platform.. We use a flexible framework provided by Apache Shiro
supporting environment specific policies. Depending on the
requirements, fine grained security accesses can be implemented to
support for example a patent's informed consent.