Hi Thomas,

"No data is stored in archetypes or templates". You mean no data entry is stored
I suppose because you store semantics for generating a UI form (i.e. name of the
fields on the form, descriptions, term bindings, language, etc). The view of the
template as HTML tree or the archetype interface tab do demonstrate the
appearance of a user interface based on the values the fields can accept. Are
you mixing schema (data definitions) with data content here (e.g. term bindings)
? Normally they try to keep separate the two e.g. XSD, XML instance.....

 

About database schema

The way I view it is that it can be designed to capture XML data, etc... see
reply on the other email I sent. The difference is that you see RDBMS as only "a
dumb but high performance data blob manager". And of course term bindings,
domain constraints, descriptions can be very well part of the database schema.

 

But you mentioned changes in the schema, well isn't there going to be some
agreement on higher lever conceptual entities (archetypes), meaning that they
will be standardized up to a certain level (e.g. symptom) ? Why can't you do the
same with a class at the conceptual level (application object oriented
programming level) ? If not aren't you experiencing the versioning problem of
archetype, or what about in some cases many different archetypes for the same
entity ! Or what about business logic when you use these higher lever conceptual
entities, e.g. address, person name, etc. and you change their structure ?
Moreover how about specialization of certain entities, clearly one might decide
to go at a greater detail of describing features depending on the application.

 

Regarding clarification on your software projects, I would have demonstrated the
simplest case of openEHR data instances and how they are related to openEHR
archetypes. The minimal software application to create an openEHR data form for
entering data, the data instance that is produced, how to view it, and the
related archetype that is used. If there is such an isolated example please do
point me at the right direction so that I can study the code provided there is
also explanation on how to build the application.

 

Thank you

 

Athanassios

 

 

 

 

From: [email protected]
[mailto:openehr-clinical-bounces at openehr.org] On Behalf Of Thomas Beale
Sent: Friday, May 06, 2011 6:17 PM
To: openehr-clinical at openehr.org
Cc: Openehr-Technical
Subject: Re: One model vs One framework in e-health .....

 


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/f976854f/attachment.html>

Reply via email to