Model Overview
The model described here is a pure object-oriented model that can be used with archetype parsers and software that manipulates archetypes and templates in memory. It is typically the output of a parser of any serialsed form of archetypes.
Used BASE Component Packages
The AOM is dependent on various packages from the the openEHR BASE component. The first of these is the base.foundation_types package, which defines the various 'leaf' types assumed by the AOM as well as other utility types and basic data structures, such as the Interval<T> type. These types are documented in the openEHR Foundation Types specification and reproduced below for convenience.
base.foundation_types - 'leaf' typesbase.foundation_types.interval Package| the above types do not constitute a formal part of this specification. Any implementation of the AOM will typically have to use concrete versions of these types found within languages and/or libraries. |
In addition, various definitions from the base.base_types.definitions package are reused, which are shown below.
base.base_types.definitions PackageThe enumeration type VALIDITY_KIND is provided in order to define standard values representing mandatory, optional, or disallowed in any model. It is used in this model in classes such as C_DATE , C_TIME and C_DATE_TIME. The VERSION_STATUS enumeration type serves a similar function within various AOM types.
Other classes used from the BASE Component include the base.resource package, which includes the class AUTHORED_RESOURCE and subordinate classes. These are shown by inclusion in the AOM Archetype package diagram below.
Finally, classes from the BASE Component base.expressions package is used by the rules part of the AOM. This is documented in the relevant section below.
AOM2 Package Structure
The Archetype Object Model is defined by the package am.aom2 and subordinate packages, as illustrated in Package Overview.
Definition and Utility Classes
Overview
Various definitional constants are used in the AOM. These are defined in the aom2.definitions package from the AM component and are shown below.
Class Definitions
Unresolved include directive in modules/AOM2/pages/model_overview.adoc - include::../UML/classes/adl_code_definitions.adoc[]