Summer Edition July 2017
(see roadmap for more details)
More documentation about the concepts and architecture of EtherCIS is located here
- Posted a new (a first prelease) of the installation package. It contains scripts and libraries to perform a complete installation of Postgresql 10 and EtherCIS server with preconfiguration of the DB. It contains also a set of openEHR operational templates to get you started. The package is in the "Releases" section. NB. This installation has been tested on CentOS 7 (should work on RHEL 7).
To allow various deployment and integration, the project is partitioned in two parts:
- core components: this part deals with OpenEhr object handling, serialization, deserialization, knowledge management and persistence
- service wrappers: this part encapsulate core components into a service framework with a REST API and JMX instrumentalization.
Core Components
The core modules are located in the repository ehrservice:
- core: fundamental operations and encoding of OpenEhr entities
- ehrdao: persistence of OpenEhr entities using a mixed model (relational/NoSql)
- knowledge-cache: caching of OpenEhr knowledge models (operational templates in particular)
- aql-processor: two passes SQL translation and query execution
- jooq-pg: utility module, binds ethercis table to jOOQ/Postgresql 9.4
- transform is mainly used to deal with raw json
- validation is responsible to check data input in relation to an openEHR template
Service Wrappers
The services and framework are located in VirtualEhr
ServiceManager
service management frameworkVEhrService
Query gateway of a running instanceResourceAccessService
a common service to access external resources (DB, knowledge etc.)PartyIdentifiedService
wrapper to interact with OpenEhr PartyIdentified entitiesLogonService
controls user login/logout and sessionsAuthenticationService
wrap a security policy providerCacheKnowledgeService
wrapper of knowledge-cache to allow user queriesEhrService
deals with user queries on OpenEhr Ehr and Ehr Status objectsCompositionService
deals with user queries on Composition objects
Please refer to the respective component's README for more details on the above
Database
The database is based on bi-temporal tables keeping records history. See pgsql_ehr.ddl for more details on the actual structure and triggers.
The DB can be generated by running the above ddl script. Schema ethercis
should exist.
Tables TERRITORY, LANGUAGE and CONCEPT should be populated from openEHR local terminology definition contained in terminology.xml
. Script populate-concept
is provided to perform this task (see ethercis/examples/scripts)
plpgsql | 1.0 | |
jsquery | 1.0 | https://github.com/postgrespro/jsquery |
ltree | 1.0 | https://www.postgresql.org/docs/9.4/static/ltree.html |
temporal_tables | 1.0.2 | http://pgxn.org/dist/temporal_tables/ |
uuid-ossp | 1.0 | https://www.postgresql.org/docs/9.5/static/uuid-ossp.html |
-
You need to compile each module as indicated in their respective README. A global setting for the assembly of uber jars should be done in your
settings.xml
. An example is given at ethercis/examples/ -
The sample launch script (ecis-server) assumes some jar assemblies to simplify the classpath. At the moment, there is no assembly provided in the pom's.
-
Locally, you should install the 'exotic' libraries required by Maven. These jars are located in directory 'libraries'. Local installation can be achieved with the following command for example:
mvn org.apache.maven.plugins:maven-install-plugin:2.5.2:install-file -Dfile=/Development/Dropbox/eCIS_Development/eCIS-LIB/compositionTemplate.jar -DgroupId=org.openehr -DartifactId=org.openehr.openEHR.v1 -Dversion=1.0.0 -Dpackaging=jar -DlocalRepositoryPath=/Development/Dropbox/eCIS_Development/eCIS-LIB/local-maven-repo
-
Gradle is now also supported
- Script
ecis-server
should be adapted to get the right classpath, path to required configuration, network parameters etc. - Ditto for all configuration files.
The scripts and configuration samples are in directory examples
Script ecis-server
uses uber jars to keep the modularity of the platform as well as to ease the production of patches. The jars are posted at libraries until a better file repository is identified.
In this section you will find:
- examples scripts and configuration files to run ethercis on a Linux box. Scripts can be adapted to launch the server on Windows if required.
- libraries some pre-compiled libraries to make life a bit easier (mostly xml bindings classes and one to avoid conflicts with the patches from the core module
- installation documentation and readme's, mostly to install a system
- REST API and FLAT JSON
- Composition Serialization and Query
This product /project is supported by the Ripple Foundation, who aim to enhance the EtherCIS solution. We are working to fund as many of the enhancements of EtherCIS as we can based on projects that our non profit organisation supports.
We will try to fix any key bugs and documentation errors ourselves. Other issues, requests for enhancements or feature additions, will be added to the project backlog.
The Ripple Foundation is committed to offering free and open software, with quality, free and open documentation, but unfortunately is unable to offer free support for all issues/pull requests in the backlog.
(Our latest thinking on the best model to support our open platform mission in healthcare may best be understood by reading this article. https://opensource.com/business/16/4/refactoring-open-source-business-models
If you would like to offer some of your energy/ suggest other ideas towards progressing an open platform in healthcare, please contact us at [email protected] )
If you need support with a particular issue/pull request, please let us know and we can consider a bounty source (https://www.bountysource.com/), to get these reviewed / addressed.
Thanks for your interest in EtherCIS
The Ripple Foundation http://ripple.foundation/