Roadmap of the openEHR Java project
The Road Map of the openEHR Java Reference Implementation Project
Purpose
This document provides technical description of the openEHR Java Reference Implementation Project. It lists all the existing components already provided by the Java project and their status for new comers to the Java project can get a quick impression on what the Java project can actually provide. It also informs about up-coming components to plan future development and coordinate possible collaborations. Note that components marked with "*" are currently not available from the Java project.
Related Documents
The openEHR Architecture Overview
The Mission Statement of the Java project.
The openEHR Java Implementation Technology Specification
Overview
This road-map lists all the components that are necessary to build a complete EHR system. As convention, these components are categorized into three principal layers - Domain, Persistence and Presentation. Since openEHR systems are based on two-level model approach, the Domain Layer gets more complicated than that of any conventional Enterprise Applications. Instead of being hard-coded into software artifacts, domain models are expressed in the form of the Archetype Model.
Tools are listed separately since they don't belong to any specific layer. They can be used as stand-alone applications or as part of the larger system.
Domain Layer
Kernel Components
openEHR RM Core implements openEHR Reference Information Model Common, Support, Data Types, Data Structures specifications
openEHR RM Domain implements openEHR Reference Information Model EHR, Demographics, EHR Extract, Messaging specifications
openEHR AOM implements openEHR Archetype Object Model specification
openEHR AP implements openEHR Archetype Model - openEHR Archetype Profile
Service Components
Implementation of up-coming services components. Some of the key components are:
EHR Service implementation of EHR Service Model for high level EHR object storage and retrieval
Demographic Service for high level Demographic object storage and retrieval
Archetype Service minimal feature includes storage, retrieval and versioning of archetypes
Terminology Service * a minimal openEHR terminology service necessary for the kernel to work properly - the initial coding was done as part of the parser component and it should be extracted as standard alone component. * a generic terminology service that can serve different international terminologies will be required in full-blown systems
Query Service is a generic data retrieval service for fine-grained queries
Wrappers
Wrappers are essentially Data Transfer Objects that transfer data before different layers and have little logic besides getters and setters. This will fulfill the need for missing direct setters of attributes in immutable RM classes which are required for certain type of OR mapping. * Wrappers can group low level RM objects into coarse-grained objects to facilitate data transfer and mappings.
Persistence Layer
This layer provides generic storage and retrieval service for high level domain objects - EHRs or Demographics. The implementations of this layer will ideally be accessed through well-defined common interface, e.g. Data Access Objects to hide implementation details. Different flavor of the implementations should be supported.
DAO interfaces these are interfaces for CRUD (Create/Read/Update/Delete) operations on high level domain objects, e.g. EHR Composition. These interfaces should be implemented by concrete persistence components
Hibernate 2 Implementation this is an existing components implements the DAOs by OR Mapping tool Hibernate 2
Hibernate 3 Implementation this components implements the DAOs by OR Mapping tool Hibernate 3
OODB implementation is based on Object Oriented Database
Presentation Layer
Components in this layer presents data to the user and intercept data entry from the user
Screen Form Generator this component generates GUI screen forms based on the semantics in the Templates and Archetypes
Form Validator this components provides user data entry validation based on constraints defined by the Archetypes. It is required to work closely with the Kernel component for validation and provide meaningful error message for the end user.
Tools
ADL Parser this component implements the ADL 1.4 specification. It parse an Archetype in ADL format and produces its object form in AOM
Archetype Editor this is a GUI based Archtype authoring application built on top of the Java components
Archetype Validator this component provides validation of Archetypes in AOM format against targeting Reference Model, e.g. correctness of names of the classes and attributes, and the semantics in the constraints, e.g. check the validity of an ArchetypeInternalReference
ADL Serializer this component provides conversion of Archetypes from object form to serialized text form in ADL format