"state" and "protocol" structures are mandatory, when defined?

Hi all,
I have a doubt in interpretating the archetype definition when there are
"state" or "protocol" structure. For example, looking at "Blood
Pressure" in http://openehr.org/knowledge/, I'm wondering if "protocol"
structure is mandatory, as it seems looking at the archetype. If I don't
know any details about the protocol, do I have to insert an empty tag
<protocol> however?

Best regards
leo

Leo,

as far as i can see the protocol section is not mandatory :

protocol matches {
ITEM_TREE[at0011] matches { – lijst structuur
items cardinality matches {0..*; unordered} matches {

as you can see 0..* (means zero times until unbounded times), so not mandatory

Alessandro

Hi Alessandro,
items cardinality matches {0..*; unordered} is referred to "items" elements,
not to "protocol" element

This means we can have something like this:
<observation>
<data>
...
</data>
<protocol archetype_node_id="at0011" xsi:type="ITEM_TREE">
    <name>
        <value>*List(en)</value>
    </name>
</protocol>
<observation>

Is the section
<protocol archetype_node_id="at0011" xsi:type="ITEM_TREE">
    <name>
        <value>*List(en)</value>
    </name>
</protocol>
mandatory, even if it doesn't have any items?
Looking at the archetype defintion, so it seems!

leo

Alessandro Torrisi-3 wrote:

Leo,

perhaps you can look to this :

http://www.openehr.org/svn/specification/TRUNK/publishing/architecture/rm/ehr_im.pdf

then section 8.3.3. CARE_ENTRY Class

over there you can see that protocol is 0..1 So never be mandatory

Alessandro

In general questions like this can be answered by looking at any of:

(attachments)

OceanInformaticsl.JPG

Thanks Alessandro,
yes you are right, generally protocol is optional in RM, but I'm wondering
if it becomes mandatory when defined in the archetype.
ADL doesn't explicit the occurrences of protocol (I imagine the default is
0..1), but in XML representation of the archetype I find
...
<attributes xsi:type="C_SINGLE_ATTRIBUTE">
      <existence>
        <lower_unbounded>false</lower_unbounded>
        <upper_unbounded>false</upper_unbounded>
        <lower>1</lower>
        <upper>1</upper>
      </existence>
      <rm_attribute_name>protocol</rm_attribute_name>
      <children xsi:type="C_COMPLEX_OBJECT">
        <rm_type_name>ITEM_TREE</rm_type_name>
        <occurrences>
          <upper_included>true</upper_included>
          <lower_included>true</lower_included>
          <upper_unbounded>false</upper_unbounded>
          <lower_unbounded>false</lower_unbounded>
          <upper>1</upper>
          <lower>1</lower>
        </occurrences>
        <node_id>at0011</node_id>
...

where lower occurences number is 1 and not 0! Maybe is the XML serialization
wrong!?

leo

Alessandro Torrisi-3 wrote:

Leo,

it is an interseting question.

in general it is 0..1 we agree on that
if it is defined in the archetype i think it is mandatory, so 1..1

however the items inside the ITEM_STRUCTURE (suppose ITEM_TREE) can be set to 0..1

so.. it is requierd, but not the content..

Alessandro

Probably this is another case where the existence attribute creates
ambiguity.

As stated in
http://www.openehr.org/wiki/display/dev/Existence+of+Attributes+(AOM,+ADL+and+XML)
http://www.openehr.org/wiki/display/dev/Existence+of+Attributes+(AOM,+ADL+and+XML)
, Java reference adl parser and serializer consider the absence of existence
attribute as [1..1] as default.
I imagine we can consider this as a temporary anomaly and assuming existence
attribute of "protocol" and "state" as [0..1].

leo

Alessandro Torrisi-3 wrote:

This 1..1 default for existence is an unfortunate error in the ADL 1.4 specification, and is gone in the ADL 1.5 specification. For the most reliable place to validate archetypes, see the new ADL 1.5 Workbench, coming out in a few days.

  • thomas beale
(attachments)

OceanInformaticsl.JPG