Greetings,
Am I suffering from acute caffeine deficiency syndrome (just made it
up) or is there a problem with the occurrences of event and
interval_events in the blood pressure archetype?
In the published blood pressure archetype in the CKM, HISTORY[at0001]
has events with cardinality {1..*; unordered}
However "EVENT[at0006] occurrences matches {0..*}" and
"INTERVAL_EVENT[at1042] occurrences matches {0..1}" under the history
allow zero instances of both of these elements.
So the cardinality sets 1 as the minimum member count for the
container attribute, but occurrences attributes of objects introduce
0, which is beyond allowed boundaries. In plain English: cardinality
says there has to be at least one, but objects say, there can be zero
or more. When both objects have zero instances, the cardinality
constraint is violated.
I am suffering from the same + the heat from possibly the first summer
day in Germany this year, but I think this is perfectly correct.
As far as i understand, it just means you have to choose at least one
at0006 EVENT or one at1042 INTERVAL_EVENT.
Then you can add as many further at0006 events as required.
So, you are right, they cannot both have zero instances, but you can
choose, and a cardinality of >=1 and member elements with occurrence >=
0 is the way to express this choice I believe.
Hi Sebastian,
If I follow the descriptions from the specification, I don't think I
can see anything in there that says you have to choose at least one in
this case.
Actually page 56 of the adl 1.4 specification ( http://www.openehr.org/releases/1.0.1/architecture/am/adl.pdf )
specifically says the following:
VCOC: cardinality/occurrences validity: the interval represented by:
(the sum of all
occurrences minimum values) .. (the sum of all occurrences maximum values) must
be inside the interval of the cardinality
If I were to write a validator based on this, it would invalidate the
blood pressure archetype based on the criteria above taken from the
spec.
What you're saying makes sense, but I can't see it in the specification.
interesting, I think Thomas changed this rule for ADL 1.5 to:
VACMC - cardinality/occurrences validity: where occurrences and cardinality are stated, the interval represented by: (sum of all occurrences minimum values) .. (sum of all occurrences maximum values) must intersect with the interval stated by the cardinality.
Thomas and I had a discussion about some edge cases here a while ago, where you could make this rule a little more strict potentially, but in any case it seems to be a necessary condition for a correct archetype.
My take is that VCOC prevents functionality that is needed and is simply too strict and was therefore modified to VACMC in ADL1.5 - Thomas?
Yes. We should allow the two 0..x constraints. The cardinality constraint says you must have at least 1 thing in the list, and the two other constraints each say - separately - that the EVENT and INTERVAL_EVENT matching objects can single have 0 instances. Taken together, it is all compatible. The reworded rule above, quoted by Sebastian, says that it has to be at least possible to meet the constraints.