Hi Thomas,

Thank you very much for your answers. They were quite clear and easy to
understand as they often are. I have some more questions below...

2006/11/7, Thomas Beale <Thomas.Beale at oceaninformatics.biz>:
>
>
> I'll just provide some formal answers below.
>
> Mattias Forss wrote:
>
> Hi,
>
> I'm currently working in a group that has been evaluating archetypes and
> they found out that there in archetypes may be needed to add external nodes
> from other archetypes instead of only adding complete archetypes as slots.
> Does the current ADL specification allow that external parts from other
> archetypes can be included? I think the openEHR templates allow to cut off
> parts in a slot, but I'm not sure if they can exclude everything except a
> single item.
>
>
>    - by the use of slots, which you already know about. Use this when
>    you want to define reusable semantic units (i.e. more archetypes).
>    Archetypes and slots can be defined at any level - including at low levels.
>    However, the downside is potentially "too many little archetypes" for
>    effective management and governance
>
>

Yes,  too many small archetypes would probably make the archetypes hard to
maintain etc.


>    - in some cases, most likely what is really needed is to be able to
>    reduce the work required to build archetypes in the authoring tool
>    environment - in other words cut and paste, or smarter things than that. So
>    - what is smarter than cut and paste? We can consider that there are
>    "archetype fragments" which are stored and indexed in a sophisticated
>    authoring environment. These would not be separate archetypes as such - 
> just
>    pieces of archetypes that have been identified as re-usable in the 
> authoring
>    environment, but otherwise not sensible self-standing semantic units. Think
>    about it this way - in some cases, you are not after another archetype, you
>    just want to make sure that you build the little piece of the current
>    archetype inn the same way as you did last time, without missing a term.
>
>
Agree, but shouldn't there be some way to link the "copies" with each other,
because they _will not_ be the same data if they don't have the same
archetype path? How should we know if we already entered similar values in
another archetype, possibly even found in another template than the current
one? There should be some way of linking values together. Can it be done at
the template level or must it be done at an even higher level, i.e. in
business logic of the GUI in the EHR system?

I will probably make it possible in the Java archetype editor to copy
definition nodes between different instances of the program, but that is
just a start. The ideal would be to support imports of nodes found in the
definition of several selected archetypes...

the first "exists" is only needed if the systolic value node is optional;
> the above statement in a real archetype would not necessarily be exactly as
> above, but the idea is clear. HOWEVER: in clinical terms, this sort of
> condition may not be considered as globally applicable as the rest of the
> archetype - it might only apply in your hospital. In this case, the same
> kind of statement should be added to a template instead.
>

Yes, this condition would of course only be added in the template since it
is not a global requirement (however there may be such also), but the
invariants seem to have a lot of potential and would significantly aid
decision support.


> Another issue is about computation. For example we could want a
> quantifiable magnitude to be the result of two previously entered values. Is
> this possible to do in archetypes? Perhaps in the declaration section or the
> invariant section?
>
> this can also be done in the invariant section using a statement of the
> form:
>
>     exists(/path1/value) and exists(/path2/value) implies /path3/value =
> /path1/value + /path2/value
>

Though it certainly is useful, this is only to constrain the allowed value
and not to compute it. Some business logic in the EHR system would have to
use the invariant to compute the allowed value so that the clinician doesn't
have to do that (and risk to enter the wrong value and break the data entry
process if the value is invalid according to the archetype).

I also noticed that archetypes may become ambiguous by using invariants. For
example if the cADL says that the value must be > 10 and the invariant says
that the value is 5. I guess there is a need for an archetype validator that
checks all kinds of things, conformance to RM class names and attributes,
existing codes in the ontology section, invariants conforming to cADL, etc,
etc.


Another feature is value reporting, which should work when we use several
archetypes in an openEHR template. For example if some question was answered
in one archetype, then another archetype that has the same question should
get the value reported from the previous archetype. Is this possible? I
guess this has to do with external references as I mentioned in my first
question.


you normally would not allow this in the template if the values were meant
> to refer to the same thing (i.e. only entered once by the user); if this
> is not the case, you could add an invariant to the template.
>

What if the values should refer to the same thing across different
templates, that uses different archetypes? How should the values be linked
then, can invariants still solve that?

We would also like to ask if there is a way of specifying validity for
> questions depending on previously answered questions. E.g. if a certain
> answer was given from a multiple alternative question (coded_text), then and
> only then, some other group of questions will be valid. Is this possible to
> do in archetypes? Perhaps it's possible with invariants?
>
> same general form as the first one, where the exists() quantifier can be
> used with operators like "implies" to state the required conditions.
>

Does this mean that the invariant allows something like
"path/to/coded_text/defining_code = at0003 implies /some/path[atNNNN]
occurrences.min = 1" can be used for the group of questions (cluster) we
want to be valid?

Finally is there a way of specifying the relevance of answers in archetypes.
> Say for example that if some laboratory results are too old, could an
> archetype contain some restrictions that make it illegal to answer certain
> questions because the material that the answers are based upon is too old?
> I'm not sure if this is related to DSS or something else.
>
> this sounds more like an application or DSS area. However, it would not be
> impossible to create invariants to do what you want - a typical example
> would be for microbiology test samples  - the invariant could state that the
> sample date/time has to be within X days of $today. We don't quite have all
> the variables defined for this yet, but it is not far off.
>

Okay, it seems to me that many invariants could be added at a local template
level to aid basic decision support. This is quite interesting.

Regards,

Mattias
-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
<http://lists.openehr.org/mailman/private/openehr-technical_lists.openehr.org/attachments/20061108/5a8df0cf/attachment.html>
-------------- next part --------------
_______________________________________________
openEHR-technical mailing list
openEHR-technical at openehr.org
http://www.chime.ucl.ac.uk/mailman/listinfo/openehr-technical

Reply via email to