A few comments on a few misconceptions...

On 06/05/2011 15:48, Athanassios I. Hatzis, PhD wrote:
>
> Hi Ian,
>
> you have certainly managed to isolate the clinical complexity from 
> this technical layer up to a certain point and this is great. You 
> offer clinicians software tools to design clinical care, 
> administrative forms and prototypes using familiar terminology.
>

you are missing the point of what a template is about. It is not a form; 
it is a structured data set (which main leave certain constraints open 
at runtime if desired). A UI form is one thing that can potentially be 
generated from a template, but today this is still in development. What 
is routinely generated from templates is XML schemas for messages, and 
APIs for programmers.

> But database schema is NOT irrelevant because it is the physical 
> location of your data that are collected from your forms, that is the 
> final/original destination.
>

it may be the final destination, but it is rarely strongly related in 
its design to the data, unless you are using a classical relational 
model approach. This simply won't work in any complex domain, because 
your schemas and data will always be directly captive to today's 
requirements. As soon as the requirements change (they are constantly 
changing), your schemas will need to be changed, and your data will now 
require 'migration' of one sort or another. This approach is accordingly 
not particularly useful in health, or indeed in other complex domains. 
Instead, the physical way data are represented in any realistic system 
has to be at least one degree of 'model indirection' from the domain 
data models.

In openEHR, one degree of model indirection this would mean dropping the 
idea of having tables and columns for 'patient', 'lab test result', and 
the other 1000s of clinical concepts, and engineering instead a 
relational table schema based only on the reference model. However, this 
has drawbacks as well: attributes can be added in a backward-compatible 
way to the reference model, but if the RM is implemented directly in a 
relational schema, now you have to go and change the schema, potentially 
breaking all kinds of things that depend on it.  Performance is the 
other reason not to literally convert a realistic object model to a 
classical relational schema.

Hence, 2 degrees of separation is most commonly used. In numerous 
products for probably nearly 20 years, one approach has been the indexed 
blob store. In openEHR, the typical blob is at the versioned Composition 
level; in other products the 'document' is the equivalent. Different 
grains of blobbing can be used. Regardless, the result is that the 
database is impervious to changes in the RM and in clinical content.

Other solutions are available, and may turn out to be the most optimum, 
including path-based storage (Informix pioneered this over a decade 
ago), many variants on the object database, and all kinds of more 
esoteric web 2.0 solutions.

> Moreover a framework that is handling the database schema, the mapping 
> of conceptual schema, and the management of objects at programming 
> level is very popular in modern software development environments.
>

my strong advice is not to get trapped in this area for any realistic 
system; the solutions you want probably won't be realisable.

> In your case, you are storing clinical content, business logic, 
> vocabulary terminology and user interface fields among other things in 
> your ADL archetypes, templates in order to be standalone, in order to 
> be transferable.
>

actually, no data is stored in archetypes or templates. Data are 
represented at the object level as RM instances; these are then 
typically either stored in direct object form (e.g. Tim Cook's SOHIP 
platform, using Zope), or if the persistence is relational, serialised 
into blobs of some kind. In such approaches, you can think of the 
relational database as a dumb but high performance data blob manager.

> I can appreciate that and the fact that  there can be similar poorer 
> approaches that other followed with tools such as Infopath to 
> store/retrieve/exchange XML data. But as a developer/architect I am 
> not aware and I cannot comment on the complexities you face when you 
> need to read the structure, data content and relate them with other 
> data collected from other sources (databases, documents, etc), or 
> interoperate with other systems and clinical document formats that 
> require a different serialization or store the data from multiple 
> openEHR forms.
>

actually it is pretty easy: all openEHR data are just instances of the 
reference model, and there is only one reference model.

> I believe that you have to provide more examples apart from openEHR 
> Java and Opereffa projects of simple processes (data entry, data 
> storage, data retrieval, data reporting, data serialization (CDA,CCR), 
> data view, etc) that are based on openEHR and implemented in popular 
> DBMS, RAD environments and other open software tools.
>

that is what these projects are doing. Perhaps some more explanation is 
needed to clarify how they function.

- thomas

-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
<http://lists.openehr.org/mailman/private/openehr-technical_lists.openehr.org/attachments/20110506/1fb171df/attachment.html>

Reply via email to