Hi David,

On 16/12/2011 18:48, David Moner wrote:
>
>
>>     I suspect this is an intentional difference between current 13606 and
>>     openEHR; to faithfully capture the current (incompatible) situation
>>     versus aiming to change the current situation.  Can those different
>>     goals really meet in one RM or do we need two standardized RMs?
>>     http://dilbert.com/strips/comic/2011-08-02/
>
>     I should perhaps point out that openEHR has a perfectly usable
>     generic Entry type
>     
> <http://www.openehr.org/uml/release-1.0.1/Browsable/_9_5_1_76d0249_1140530578205_529440_4046Report.html>
>     that does the same as 13606 Entry. This Entry type is designed for
>     weakly structured data.
>
>
> It is not exactly the same as what I was proposing. The GENERIC_ENTRY 
> as is now only complicates de model by creating a standalone branch.

do you mean in the inheritance tree? Well, that's true, but that's 
normal object modelling...

> Instead of that, I would prefer to look for a solution where the ENTRY 
> class is directly instantiable. Thus, an implementer can choose to use 
> it if the lower OBSERVATION, INSTRUCTION, etc. classes do not 
> accommodate his needs. Moreover, it would be easy to cast an ENTRY 
> instance into any of its descendants when needed.

I think this is looking at it from too low a level. The structures of 
ENTRY, OBSERVATION, INSTRUCTION etc are quite different. The ENTRY 
concept in openEHR does not on its own define a meaningful object; the 
structure of the data have to be defined in specific subclasses. The 
descendants (today) are: ADMIN_ENTRY, OBSERVATION, EVALUATION, 
INSTRUCTION, ACTION and GENERIC_ENTRY. So GENERIC_ENTRY is just one of 
the sibling possibilities for representing data. (I realise that it's a 
bit annoying that we use 'ENTRY' as the abstract parent type, whereas 
13606 uses it as the name of the concrete type, but I can't see any easy 
way around that).

I think this is a normal modelling outcome. I can't see how in openEHR, 
the ENTRY class could do its main job, which is to define the common 
attributes (we can think of them as meta-data attributes) of all ENTRY 
types, and also have some kind of commitment to data, which would then 
be somehow redefined to other specific data structures somehow - casting 
only works when the physical data don't change, but are interpreted 
differently (and anyway, casting should always be avoided - it means the 
software is potentially violating the type system). The normal OO 
approach is that a parent class such as ENTRY stays abstract, and its 
children exhaustively define the possibility space.

However, what I can imagine is a function on ENTRY, something like 
'as_standard_representation: CLUSTER', which /generates /a standardised 
CLUSTER/ELEMENT hierarchy of the 13606 variety (complete with logical 
data structure markers to indicate the intention of lists, tables etc).

This would allow the openEHR model to stick to normal OO modelling 
conventions, but also have a fully formally defined transform to the 
simple CLUSTER/ELEMENT structure from each of its ENTRY subtypes. 
Calling this function during a traversal of a COMPOSITION would enable 
something very close to a 13606 COMPOSITION to be generated.

As I mentioned in another post, I think a greater challenge is dealing 
with the differences in the base classes - my notes on this so far are 
here 
<http://www.openehr.org/wiki/display/spec/openEHR+%7E+13606+2012+revision+-+alignment+proposals>.

- thomas


-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
<http://lists.openehr.org/mailman/private/openehr-technical_lists.openehr.org/attachments/20111216/02eabe28/attachment.html>

Reply via email to