Giter Site home page Giter Site logo

ethercis's Introduction

Ethercis

Summer Edition 06/07/2015 3:54:43 PM: AQL support

(see changes at: examples

What is it?

A brief introduction to Ethercis is given here

Project Structure

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

Service Wrappers

The services and framework are located in VirtualEhr

  • ServiceManager service management framework
  • VEhrService Query gateway of a running instance
  • ResourceAccessService a common service to access external resources (DB, knowledge etc.)
  • PartyIdentifiedService wrapper to interact with OpenEhr PartyIdentified entities
  • LogonService controls user login/logout and sessions
  • AuthenticationService wrap a security policy provider
  • CacheKnowledgeService wrapper of knowledge-cache to allow user queries
  • EhrService deals with user queries on OpenEhr Ehr and Ehr Status objects
  • CompositionService 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)

######Required extensions

<title></title>
plpgsql1.0
jsquery1.0https://github.com/postgrespro/jsquery
ltree1.0https://www.postgresql.org/docs/9.4/static/ltree.html
temporal_tables1.0.2http://pgxn.org/dist/temporal_tables/
uuid-ossp1.0https://www.postgresql.org/docs/9.5/static/uuid-ossp.html

How To Build It?

  • 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
    

##How To Run It?

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

Documentation And Examples

In this section you will find:

ethercis's People

Watchers

James Cloos avatar John Meredith avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.