Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1,914 changes: 1,914 additions & 0 deletions computable/BMM/openehr_am_1.4.0.bmm.json

Large diffs are not rendered by default.

4,625 changes: 4,625 additions & 0 deletions computable/BMM/openehr_am_2.4.0.bmm.json

Large diffs are not rendered by default.

41 changes: 21 additions & 20 deletions docs/UML/classes/org.openehr.am.aom14.archetype.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -24,15 +24,20 @@ h|*1..1*
a|The ontology of the archetype.

h|*0..1*
|*adl_version*: `String`
|*adl_version*: `link:/releases/BASE/{base_release}/foundation_types.html#_string_class[String^]`
a|ADL version if archetype was read in from an ADL sharable archetype.

h|*1..1*
|*archetype_id*: `link:/releases/BASE/{base_release}/base_types.html#_archetype_id_class[ARCHETYPE_ID^]`
a|Multi-axial identifier of this archetype in archetype space.

h|*0..1 +
(redefined)*
|*uid*: `link:/releases/BASE/{base_release}/base_types.html#_hier_object_id_class[HIER_OBJECT_ID^]`
a|OID identifier of this archetype.

h|*1..1*
|*concept*: `String`
|*concept*: `link:/releases/BASE/{base_release}/foundation_types.html#_string_class[String^]`
a|The normative meaning of the archetype as a whole, expressed as a local archetype code, typically “at0000”.

h|*0..1*
Expand All @@ -43,72 +48,68 @@ h|*0..1*
|*invariants*: `link:/releases/BASE/{base_release}/foundation_types.html#_list_class[List^]<<<_assertion_class,ASSERTION>>>`
a|Invariant statements about this object. Statements are expressed in first order predicate logic, and usually refer to at least two attributes.

h|*0..1 +
(redefined)*
|*uid*: `link:/releases/BASE/{base_release}/base_types.html#_hier_object_id_class[HIER_OBJECT_ID^]`
a|OID identifier of this archetype.
h|*Functions*
^h|*Signature*
^h|*Meaning*

h|*1..1*
|*concept_name* ( +
a_lang: `String[1]` +
): `String` +
a_lang: `link:/releases/BASE/{base_release}/foundation_types.html#_string_class[String^][1]` +
): `link:/releases/BASE/{base_release}/foundation_types.html#_string_class[String^]` +
+
__post-condition__: `Result.is_equal (definition.node_id)`
a|The concept name of the archetype in language a_lang; corresponds to the term definition of the concept attribute in the archetype ontology.

h|*1..1*
|*physical_paths* (): `link:/releases/BASE/{base_release}/foundation_types.html#_list_class[List^]<String>`
|*physical_paths* (): `link:/releases/BASE/{base_release}/foundation_types.html#_list_class[List^]<link:/releases/BASE/{base_release}/foundation_types.html#_string_class[String^]>`
a|Set of language-independent paths extracted from archetype. Paths obey Xpath-like syntax and are formed from alternations of C_OBJECT.node_id and C_ATTRIBUTE.rm_attribute_name values.

h|*1..1*
|*logical_paths* ( +
lang: `String[1]` +
): `link:/releases/BASE/{base_release}/foundation_types.html#_list_class[List^]<String>`
lang: `link:/releases/BASE/{base_release}/foundation_types.html#_string_class[String^][1]` +
): `link:/releases/BASE/{base_release}/foundation_types.html#_list_class[List^]<link:/releases/BASE/{base_release}/foundation_types.html#_string_class[String^]>`
a|Set of language-dependent paths extracted from archetype. Paths obey the same syntax as physical_paths, but with node_ids replaced by their meanings from the ontology.

h|*1..1*
|*specialisation_depth* (): `Integer` +
|*specialisation_depth* (): `link:/releases/BASE/{base_release}/foundation_types.html#_integer_class[Integer^]` +
+
__post-condition__: `Result = terminology.specialisation_depth`
a|Specialisation depth of this archetype; larger than 0 if this archetype has a parent. Derived from terminology.specialisation_depth.

h|*1..1*
|*is_specialised* (): `Boolean` +
|*is_specialised* (): `link:/releases/BASE/{base_release}/foundation_types.html#_boolean_class[Boolean^]` +
+
__post-condition__: `Result implies parent_archetype_id /= Void`
a|True if this archetype is a specialisation of another.

h|*1..1*
|*is_valid* (): `Boolean` +
|*is_valid* (): `link:/releases/BASE/{base_release}/foundation_types.html#_boolean_class[Boolean^]` +
+
__Post__: `not (node_ids_valid and internal_references_valid and constraint_references_valid) implies not Result`
a|True if the archetype is valid overall; various tests should be used, including checks on node_ids, internal references, and constraint references.

h|*1..1*
|*node_ids_valid* (): `Boolean`
|*node_ids_valid* (): `link:/releases/BASE/{base_release}/foundation_types.html#_boolean_class[Boolean^]`
a|True if every node_id found on a C_OBJECT node is found in ontology.term_codes.

h|*0..1*
|*previous_version* (): `String`
|*previous_version* (): `link:/releases/BASE/{base_release}/foundation_types.html#_string_class[String^]`
a|Version of predecessor archetype of this archetype, if any.

h|*1..1*
|*internal_references_valid* (): `Boolean`
|*internal_references_valid* (): `link:/releases/BASE/{base_release}/foundation_types.html#_boolean_class[Boolean^]`
a|True if every ARCHETYPE_INTERNAL_REF. target_path refers to a legitimate node in the archetype definition.

h|*1..1*
|*constraint_references_valid* (): `Boolean`
|*constraint_references_valid* (): `link:/releases/BASE/{base_release}/foundation_types.html#_boolean_class[Boolean^]`
a|True if every CONSTRAINT_REF.reference found on a C_OBJECT node in the archetype definition is found in ontology.constraint_codes.

h|*1..1*
|*short_concept_name* (): `String`
|*short_concept_name* (): `link:/releases/BASE/{base_release}/foundation_types.html#_string_class[String^]`
a|The short concept name of the archetype extracted from the archetype_id.

h|*1..1*
|*version* (): `String`
|*version* (): `link:/releases/BASE/{base_release}/foundation_types.html#_string_class[String^]`
a|

h|*Invariants*
Expand Down
18 changes: 12 additions & 6 deletions docs/UML/classes/org.openehr.am.aom14.archetype_constraint.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -16,22 +16,28 @@ h|*1..1 +
(abstract)*
|*is_subset_of* ( +
other: `<<_archetype_constraint_class,ARCHETYPE_CONSTRAINT>>[1]` +
): `Boolean`
a|True if constraints represented by this node, ignoring any sub-parts, are narrower or the same as other.
): `link:/releases/BASE/{base_release}/foundation_types.html#_boolean_class[Boolean^]`
a|True if constraints represented by this node, ignoring any sub-parts, are narrower or the same as other.
Typically used during validation of special-ised archetype nodes.

h|*1..1 +
(abstract)*
|*is_valid* (): `Boolean`
|*is_valid* (): `link:/releases/BASE/{base_release}/foundation_types.html#_boolean_class[Boolean^]`
a|

h|*1..1*
|*path* (): `String`
|*path* (): `link:/releases/BASE/{base_release}/foundation_types.html#_string_class[String^]`
a|Path of this node relative to root of archetype.

h|*1..1*
|*has_path* ( +
a_path: `String[1]` +
): `Boolean`
a_path: `link:/releases/BASE/{base_release}/foundation_types.html#_string_class[String^][1]` +
): `link:/releases/BASE/{base_release}/foundation_types.html#_boolean_class[Boolean^]`
a|True if the relative path a_path exists at this node.

h|*Invariants*
2+a|__Post__: `Result = soc_parent /= Void or parent.soc_parent /= Void`

h|
2+a|__Path_exists__: `path /= Void`
|===
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ h|*Description*
2+a|A constraint defined by proxy, using a reference to an object constraint defined elsewhere in the same
archetype.

Note that since this object refers to another node, there are two objects with available occurrences values. The local occurrences value on an ARCHETYPE_INTERNAL_REF should always be used; when setting this from a serialised form, if no occurrences is mentioned, the target occurrences should be used (not the standard default of {1..1}); otherwise the locally specified occurrences should be used as normal. When serialising out, if the occurrences is the same as that of the target, it can be left out.
Note that since this object refers to another node, there are two objects with available occurrences values. The local occurrences value on an ARCHETYPE_INTERNAL_REF should always be used; when setting this from a serialised form, if no occurrences is mentioned, the target occurrences should be used (not the standard default of \{1..1}); otherwise the locally specified occurrences should be used as normal. When serialising out, if the occurrences is the same as that of the target, it can be left out.

h|*Inherit*
2+|`<<_c_reference_object_class,C_REFERENCE_OBJECT>>`
Expand All @@ -19,7 +19,7 @@ h|*Attributes*
^h|*Meaning*

h|*1..1*
|*target_path*: `String`
|*target_path*: `link:/releases/BASE/{base_release}/foundation_types.html#_string_class[String^]`
a|Reference to an object node using archetype path notation.

h|*Invariants*
Expand Down
45 changes: 23 additions & 22 deletions docs/UML/classes/org.openehr.am.aom14.archetype_ontology.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -13,60 +13,61 @@ h|*Attributes*
^h|*Meaning*

h|*1..1*
|*term_codes*: `link:/releases/BASE/{base_release}/foundation_types.html#_list_class[List^]<String>`
|*term_codes*: `link:/releases/BASE/{base_release}/foundation_types.html#_list_class[List^]<link:/releases/BASE/{base_release}/foundation_types.html#_string_class[String^]>`
a|List of all term codes in the ontology. Most of these correspond to “at” codes in an ADL archetype, which are the node_ids on C_OBJECT descendants. There may be an extra one, if a different term is used as the overall archetype concept from that used as the node_id of the outermost C_OBJECT in the definition part.

h|*1..1*
|*constraint_codes*: `link:/releases/BASE/{base_release}/foundation_types.html#_list_class[List^]<String>`
|*constraint_codes*: `link:/releases/BASE/{base_release}/foundation_types.html#_list_class[List^]<link:/releases/BASE/{base_release}/foundation_types.html#_string_class[String^]>`
a|List of all term codes in the ontology. These correspond to the “ac” codes in an ADL archetype, or equivalently, the CONSTRAINT_REF.reference values in the archetype definition.

h|*1..1*
|*parent_archetype*: `<<_archetype_class,ARCHETYPE>>`
a|Archetype which owns this terminology.

h|*0..1*
|*terminologies_available*: `link:/releases/BASE/{base_release}/foundation_types.html#_list_class[List^]<String>`
|*terminologies_available*: `link:/releases/BASE/{base_release}/foundation_types.html#_list_class[List^]<link:/releases/BASE/{base_release}/foundation_types.html#_string_class[String^]>`
a|List of terminologies to which term or constraint bindings exist in this terminology.

h|*1..1*
|*specialisation_depth*: `Integer`
|*specialisation_depth*: `link:/releases/BASE/{base_release}/foundation_types.html#_integer_class[Integer^]`
a|Specialisation depth of this archetype. Unspecialised archetypes have depth 0, with each additional level of specialisation adding 1 to the specialisation_depth.

h|*1..1*
|*term_attribute_names*: `link:/releases/BASE/{base_release}/foundation_types.html#_list_class[List^]<String>`
|*term_attribute_names*: `link:/releases/BASE/{base_release}/foundation_types.html#_list_class[List^]<link:/releases/BASE/{base_release}/foundation_types.html#_string_class[String^]>`
a|

h|*Functions*
^h|*Signature*
^h|*Meaning*

h|*1..1*
|*has_language* ( +
a_lang: `String[1]` +
): `Boolean`
a_lang: `link:/releases/BASE/{base_release}/foundation_types.html#_string_class[String^][1]` +
): `link:/releases/BASE/{base_release}/foundation_types.html#_boolean_class[Boolean^]`
a|True if terminology ‘a_terminology’ is present in archetype ontology.

h|*1..1*
|*has_terminology* ( +
a_terminology_id: `String[1]` +
): `Boolean`
a_terminology_id: `link:/releases/BASE/{base_release}/foundation_types.html#_string_class[String^][1]` +
): `link:/releases/BASE/{base_release}/foundation_types.html#_boolean_class[Boolean^]`
a|True if terminology `a_terminology' is present in archetype ontology.

h|*1..1*
|*has_term_code* ( +
a_code: `String[1]` +
): `Boolean`
a_code: `link:/releases/BASE/{base_release}/foundation_types.html#_string_class[String^][1]` +
): `link:/releases/BASE/{base_release}/foundation_types.html#_boolean_class[Boolean^]`
a|True if term_codes has a_code.

h|*1..1*
|*has_constraint_code* ( +
a_code: `String[1]` +
): `Boolean`
a_code: `link:/releases/BASE/{base_release}/foundation_types.html#_string_class[String^][1]` +
): `link:/releases/BASE/{base_release}/foundation_types.html#_boolean_class[Boolean^]`
a|True if constraint_codes has a_code.

h|*1..1*
|*term_definition* ( +
a_lang: `String[1]`, +
a_code: `String[1]` +
a_lang: `link:/releases/BASE/{base_release}/foundation_types.html#_string_class[String^][1]`, +
a_code: `link:/releases/BASE/{base_release}/foundation_types.html#_string_class[String^][1]` +
): `<<_archetype_term_class,ARCHETYPE_TERM>>` +
+
__Pre__: `has_language (a_lang)` +
Expand All @@ -75,8 +76,8 @@ a|Term definition for a code, in a specified language.

h|*1..1*
|*constraint_definition* ( +
a_code: `String[1]`, +
a_lang: `String[1]` +
a_code: `link:/releases/BASE/{base_release}/foundation_types.html#_string_class[String^][1]`, +
a_lang: `link:/releases/BASE/{base_release}/foundation_types.html#_string_class[String^][1]` +
): `<<_archetype_term_class,ARCHETYPE_TERM>>` +
+
__Pre__: `has_language (a_lang)` +
Expand All @@ -85,18 +86,18 @@ a|Constraint definition for a code, in a specified language.

h|*1..1*
|*term_binding* ( +
a_terminology: `String[1]`, +
a_code: `String[1]` +
a_terminology: `link:/releases/BASE/{base_release}/foundation_types.html#_string_class[String^][1]`, +
a_code: `link:/releases/BASE/{base_release}/foundation_types.html#_string_class[String^][1]` +
): `link:/releases/BASE/{base_release}/foundation_types.html#_code_phrase_class[CODE_PHRASE^]` +
+
__Pre__: `has_term_binding (a_terminology_id, a_code)`
a|Binding of constraint corresponding to a_code in target external terminology a_terminology_id, as a string, which is usually a formal query expression.

h|*1..1*
|*constraint_binding* ( +
a_terminology_id: `String[1]`, +
a_code: `String[1]` +
): `String`
a_terminology_id: `link:/releases/BASE/{base_release}/foundation_types.html#_string_class[String^][1]`, +
a_code: `link:/releases/BASE/{base_release}/foundation_types.html#_string_class[String^][1]` +
): `link:/releases/BASE/{base_release}/foundation_types.html#_string_class[String^]`
a|Binding of constraint corresponding to a_code in target external terminology a_terminology_id, as a string, which is usually a formal query expression.

h|*Invariants*
Expand Down
8 changes: 4 additions & 4 deletions docs/UML/classes/org.openehr.am.aom14.archetype_term.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -13,19 +13,19 @@ h|*Attributes*
^h|*Meaning*

h|*1..1*
|*code*: `String`
|*code*: `link:/releases/BASE/{base_release}/foundation_types.html#_string_class[String^]`
a|Code of this term.

h|*0..1*
|*items*: `link:/releases/BASE/{base_release}/foundation_types.html#_hash_class[Hash^]<link:/releases/BASE/{base_release}/foundation_types.html#_string_class[String^], link:/releases/BASE/{base_release}/foundation_types.html#_string_class[String^]>`
|*items*: `link:/releases/BASE/{base_release}/foundation_types.html#_hash_class[Hash^]<link:/releases/BASE/{base_release}/foundation_types.html#_string_class[String^],link:/releases/BASE/{base_release}/foundation_types.html#_string_class[String^]>`
a|Hash of keys (“text”, “description” etc) and corresponding values.
Hash of keys ("text", "description" etc) and corresponding values.

h|*Functions*
^h|*Signature*
^h|*Meaning*

h|*0..1*
|*keys* (): `link:/releases/BASE/{base_release}/foundation_types.html#_list_class[List^]<String>`
|*keys* (): `link:/releases/BASE/{base_release}/foundation_types.html#_list_class[List^]<link:/releases/BASE/{base_release}/foundation_types.html#_string_class[String^]>`
a|List of all keys used in this term.

h|*Invariants*
Expand Down
4 changes: 2 additions & 2 deletions docs/UML/classes/org.openehr.am.aom14.assertion.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,11 @@ h|*Attributes*
^h|*Meaning*

h|*0..1*
|*tag*: `String`
|*tag*: `link:/releases/BASE/{base_release}/foundation_types.html#_string_class[String^]`
a|Expression tag, used for differentiating multiple assertions.

h|*0..1*
|*string_expression*: `String`
|*string_expression*: `link:/releases/BASE/{base_release}/foundation_types.html#_string_class[String^]`
a|String form of expression, in case an expression evaluator taking String expressions is used for evaluation.

h|*1..1*
Expand Down
4 changes: 2 additions & 2 deletions docs/UML/classes/org.openehr.am.aom14.assertion_variable.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,10 @@ h|*Attributes*
^h|*Meaning*

h|*1..1*
|*name*: `String`
|*name*: `link:/releases/BASE/{base_release}/foundation_types.html#_string_class[String^]`
a|Name of variable.

h|*1..1*
|*definition*: `String`
|*definition*: `link:/releases/BASE/{base_release}/foundation_types.html#_string_class[String^]`
a|Formal definition of the variable.
|===
5 changes: 3 additions & 2 deletions docs/UML/classes/org.openehr.am.aom14.c_attribute.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ h|*Attributes*
^h|*Meaning*

h|*1..1*
|*rm_attribute_name*: `String`
|*rm_attribute_name*: `link:/releases/BASE/{base_release}/foundation_types.html#_string_class[String^]`
a|Reference model attribute within the enclosing type represented by a C_OBJECT.

h|*1..1*
Expand All @@ -26,12 +26,13 @@ a|Constraint on every attribute, regardless of whether it is singular or of a co
h|*0..1*
|*children*: `link:/releases/BASE/{base_release}/foundation_types.html#_list_class[List^]<<<_c_object_class,C_OBJECT>>>`
a|Child C_OBJECT nodes. Each such node represents a constraint on the type of this attribute in its reference model. Multiples occur both for multiple items in the case of container attributes, and alternatives in the case of singular attributes.

h|*Functions*
^h|*Signature*
^h|*Meaning*

h|*1..1*
|*any_allowed* (): `Boolean` +
|*any_allowed* (): `link:/releases/BASE/{base_release}/foundation_types.html#_boolean_class[Boolean^]` +
+
__Post__: `Result := children = Void or else children.is_empty`
a|True if any value (i.e. instance) of the reference model attribute represented by this C_ATTIRBUTE is allowed.
Expand Down
4 changes: 2 additions & 2 deletions docs/UML/classes/org.openehr.am.aom14.c_boolean.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,11 @@ h|*Attributes*
^h|*Meaning*

h|*1..1*
|*true_valid*: `Boolean`
|*true_valid*: `link:/releases/BASE/{base_release}/foundation_types.html#_boolean_class[Boolean^]`
a|True if the value True is allowed.

h|*1..1*
|*false_valid*: `Boolean`
|*false_valid*: `link:/releases/BASE/{base_release}/foundation_types.html#_boolean_class[Boolean^]`
a|True if the value False is allowed.

h|*0..1 +
Expand Down
4 changes: 2 additions & 2 deletions docs/UML/classes/org.openehr.am.aom14.c_coded_text.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -16,14 +16,14 @@ h|*Attributes*
^h|*Meaning*

h|*1..1*
|*terminology*: `String`
|*terminology*: `link:/releases/BASE/{base_release}/foundation_types.html#_string_class[String^]`
a|Terminology identifier.

h|*0..1*
|*code_list*: `link:/releases/BASE/{base_release}/foundation_types.html#_list_class[List^]<link:/releases/BASE/{base_release}/foundation_types.html#_string_class[String^]>`
a|Optional list of codes from the terminology. No list means any code from the terminology is allowed.

h|*0..1*
|*reference*: `String`
|*reference*: `link:/releases/BASE/{base_release}/foundation_types.html#_string_class[String^]`
a|
|===
Loading