Extract.common Package

Overview

The rm.extract.common package defines the semantics common to all kinds of Extract requests and Extracts. Requests and Extracts can be implemented as messages, or used as types in a webservice environment. In the latter, the Extract request semantics would most likely be replaced by equivalent service function definitions.

The Request contains a detailed specification of the repository content required in the Extract. A Request is not always needed, and an Extract may be sent unsolicited. Requests can be made persistent and/or event-driven, supporting various periodic and continuous update scenarios. Each request may specify the data from one or more entities, e.g. EHRs or subjects.

The Extract reply may optionally include a copy of the request. Its main content is in the form of chapters, under which folders and content items contain the requested content, or as much of it as was possible to retrieve. Specific types of content item, including openEHR content, generic EMR content, and demographic content are defined in various sub-packages, How the content is arranged within folders in each chapter, and across chapters is managed by the use of archetypes and templates for the Extract/chapter structure. The following uML diagram illustrates the rm.extract.common package.

RM ehr extract.common
Figure 1. rm.extract.common Package

The typical instance structure of the EXTRACT_REQUEST and EXTRACT types is illustrated below.

abstract request extract
Figure 2. Abstract Request and Extract structure

Design

Extract Request

The EXTRACT_REQUEST class consists of an update_spec specifying rules for update (one-off, periodic, event-driven etc), and an extract_spec, indicating what information from the target repository is required. The latter consists of an optional version_spec, indicating which versions (default is latest) and a manifest, specifying which entities (records or subjects, and optionally which items from those entities should be included.

Content Criteria Specification

The extract_spec part of the Request applies to all content in the Extract. The attributes are as follows:

  • extract_type: what kind of Extract this is, e.g. |openehr-ehr|, |openehr-demographic|, |openehr-synchronisation|, |openehr-generic|, |generic-emr|, etc;

  • include_multimedia: a flag indicating whether inline binary objects are included or not;

  • link_depth: value indicating how many levels of link to follow when constructing the content of the Extract; the default is 0, meaning 'don’t follow';

  • criteria: specifyies queries defining the required content of each entity record;

  • other_details: an archetypable structure including further extract details.

The criteria attribute defines in the form of generic queries (i.e. queries that apply sensibly to any record) which items are to be retrieved from each entity’s record. Each query is expressed as a DV_PARSABLE instance, enabling any formalism to be used. The openEHR archetype query formalisms (AQL) could be used for example. Query expressions use variables such as $ehr to mean the current EHR from the manifest list. Queries may be as simple as the following:

SELECT * FROM $ehr              -- get all items in the record
SELECT /ehr_access FROM $ehr    -- retrieve the EHR_ACCESS object in an EHR
SELECT /ehr_status FROM $ehr    -- retrieve the EHR_STATUS object in an EHR

More sophisticated queries can be used to obtain items corresponding to a specific criteria, e.g.:

SELECT ....     -- retrieve last 6 months' worth of blood glucose measurements
...             -- retrieve ongoing medications list
......          -- retrieve items relating to active pregnancy
.....           -- retrieve all GP encounter notes since 12-03-2005

To Be Continued:

Update Specification

The update_spec part of the Request specifies how the Request is to be processed by the server. The default situation, requiring no update_spec at all, is a one-off request. Other alternatives include:

  • repeat Request with a defined period and/or trigger events;

  • persisting the Request in the server so that the requestor can make later repeat requests by referring to a previously stored request by its identifier.

An ad hoc repeat of a request persisted earlier is made using an EXTRACT_ACTION_REQUEST with action set to |repeat|. This specifies only the identifier of a request previously specified using an EXTRACT_REQUEST. Since requests are uniquely identified for all time, there can be no error in the identification.

The Manifest

The manifest specifies the scope of records to be retrieved in an Extract. In the simplest case, only a single entity (e.g. patient) and no specific items will be identified (the content will be determined by the criteria in the EXTRACT_SPEC object); this will be used in the vast majority of single-patient request scenarios. However, some scenarios will be of a batch update nature, including pathology lab result update and situations where patient records are requested corresponding to a list of referrals received by a hospital since the last such update. In these cases, the request manifest may identify a number of entities (i.e. records or patients), each of which will be allocated a separate chapter in the resulting Extract.

The item_list of each entity manifest identifies individual items using OBJECT_REF instances each containing the HIER_OBJECT_ID identifier of a particular top-level object such as a Composition, or Party. This mechanism for identifying contents of an Extract is only expected to be used when a specific identifier is known, rather than when items corresponding to filtering criteria are requested. The latter are specified using the criteria attribute.

Version Specification

An Extract request in its simplest form has no version specification, corresponding to the assumption of 'latest available version' for each matched item. However, in some situations there is a need to retrieve previous versions, or information about versions. The version specification part of the Extract request allows this to be done. The possibilities available are as follows.

  • include_all_versions: the whole version 'stack' of each item matched by the manifest and retrieval criteria should be returned. Note that the result of this will be all available versions from the repository in question, which is in general not the same as all versions that have ever been created, since versions in the same logical version tree may exist at other repositories due to local modifications that have not been propagated to the target repository of the Extract Request.

  • include_revision_history: this flag indicates whether the revision_history of a VERSIONED_OBJECT is to be included in the Extract form of the version

Extract

Content Specification

The EXTRACT consists of a request_id, an optional participations list, an optional specification and a set of chapters, containing the retrieved content. The participations attribute denotes parties that were responsible for creating the Extract. The specification takes the same form as the extract_spec of the EXTRACT_REQUEST, but in an EXTRACT instance, indicates the actual contents of the Extract. This will usually differ in from the request specification in that it will list in the manifest section the actual entities (and the identifiers they are known by in the receiver system) retrieved, whereas the request may not specify any entities (it may rely on query criteria), or it may specify a different set of entities than were retrievable in the receiver system.

Content

The content of an Extract is contained within the chapters attribute, in the form of one of more instances of the EXTRACT_CHAPTER class or its subtype EXTRACT_ENTITY_CHAPTER. Within an EXTRACT_CHAPTER the content attribute contains a folder structure made of EXTRACT_FOLDER objects which in turn contain the content items. The folder structure is defined by archetypes, and can be used to separate the parts of a health record, or group items according to some other scheme e.g. episode. A specific kind of chapter, the EXTRACT_ENTITY_CHAPTER, is used to carry content associated with a single entity, i.e. patient. This means that an Extract may contain data relating to multiple entities, i.e. multiple patients.

The EXTRACT_CONTENT_ITEM class is subtyped in later sections of this specification to define metadata for specific kinds of content.

Participations and Demographic Referencing

A key difference between an 'extract' or in fact any kind of message carrying information out of a system environment is that the Extract combines in one place information typically found in multiple services in the original environment. Two kinds of information routinely included in Extracts are clinical (i.e. EHR / EMR or similar) and demographic data regarding participations of the subject and other parties in the activities documented in the clinical information.

Within the openEHR EHR model, a 'participation' is defined by the PARTICIPATION class in the rm.common.generic package. Actual participation instances include a performer object (a subtype of PARTY_PROXY), and optionally an external reference object (type PARTY_REF). The latter contains a reference to the demographic entity within a demographic service, provider registry or similar. Within the Extract, participations occur in two places. In the EHR_EXTRACT class, participations are used to provide information about parties related to the Extract. These are created new with each Extract (i.e. they are not EHR data that is part of the Extract content. Accordingly, a simplified form of the PARTICIPATION class is used: EXTRACT_PARTICIPATION. The only difference is that the performer reference is a simple string, allowing it to contain a GUID reference to a demographic party included elsewhere in the same Extract.

Participations also occur in the actual content of the EHR, and in this case, they original structures are copied faithfully, including any in-line performer information. If there was an external_ref present, pointing to a demographic entity that is also to be included in the Extract, this reference is rewritten to point to a local copy of the demographic entity (using a GUID), within the Entity chapter of the Extract.

The result of this is that for source data whose original external references are to external demographic entities, the logical structure is completely preserved within the Extract, with just the reference being rewritten to the GUID values used in the Extract (which may well come from the original demographic database or service).

A typical arrangement is to dedicate a single chapter to all demographic entities referenced within the Extract, optionally with an internal Folder structure. Some example arrangements are illustrated in the EHR and generic Extract sections below.

Class Descriptions

EXTRACT_REQUEST Class

  • Definition

  • Effective

  • BMM

  • UML

Class

EXTRACT_REQUEST

Description

Generic model of a Request for an Extract, containing an Extract specification.

Inherit

LOCATABLE

Attributes

Signature

Meaning

1..1

extract_spec: EXTRACT_SPEC

Specification details of the request.

0..1

update_spec: EXTRACT_UPDATE_SPEC

Update details of the request.

1..1
(effected)

uid: HIER_OBJECT_ID

Identifier of this Request, generated by requestor.

EXTRACT_REQUEST

Generic model of a Request for an Extract, containing an Extract specification.

Inherits: Any, PATHABLE, LOCATABLE

Attributes

LOCATABLE.name: DV_TEXT [1..1]

Runtime name of this fragment, used to build runtime paths. This is the term provided via a clinical application or batch process to name this EHR construct: its retention in the EHR faithfully preserves the original label by which this entry was known to end users.

LOCATABLE.archetype_node_id: String [1..1]

Design-time archetype identifier of this node taken from its generating archetype; used to build archetype paths. Always in the form of an at-code, e.g. at0005. This value enables a 'standardised' name for this node to be generated, by referring to the generating archetype local terminology.

At an archetype root point, the value of this attribute is always the stringified form of the archetype_id found in the archetype_details object.

uid: HIER_OBJECT_ID [1..1]

Identifier of this Request, generated by requestor.

LOCATABLE.links: List<LINK> [0..1]

Links to other archetyped structures (data whose root object inherits from ARCHETYPED, such as ENTRY, SECTION and so on). Links may be to structures in other compositions.

LOCATABLE.archetype_details: ARCHETYPED [0..1]

Details of archetyping used on this node.

LOCATABLE.feeder_audit: FEEDER_AUDIT [0..1]

Audit trail from non-openEHR system of original commit of information forming the content of this node, or from a conversion gateway which has synthesised this node.

extract_spec: EXTRACT_SPEC [1..1]

Specification details of the request.

update_spec: EXTRACT_UPDATE_SPEC [0..1]

Update details of the request.

Functions

(abstract) Any.is_equal (
other: Any[1]
): Boolean [1..1]

Value equality: return True if this and other are attached to objects considered to be equal in value.

Parameters
other

Other object for comparison.

Any.equal alias "=", "==" (
other: Any[1]
): Boolean [1..1]

Reference equality for reference types, value equality for value types.

Parameters
other

Other object for comparison.

Any.instance_of (
a_type: String[1]
): Any [1..1]

Create new instance of a type.

Any.type_of (
an_object: Any[1]
): String [1..1]

Type name of an object as a string. May include generic parameters, as in "Interval<Time>".

Any.not_equal alias "!=", "≠" (
other: Ordered[1]
): Boolean [1..1]

True if current object not equal to other. Returns not equal().

PATHABLE.parent (): PATHABLE [1..1]

Parent of this node in a compositional hierarchy.

PATHABLE.item_at_path (
a_path: String[1]
): Any

Pre: path_unique (a_path) [1..1]

The item at a path (relative to this item); only valid for unique paths, i.e. paths that resolve to a single item.

PATHABLE.items_at_path (
a_path: String[1]
): List<Any> [0..1]

List of items corresponding to a non-unique path.

PATHABLE.path_exists (
a_path: String[1]
): Boolean

Pre: not a_path.is_empty [1..1]

True if the path exists in the data with respect to the current item.

PATHABLE.path_unique (
a_path: String[1]
): Boolean

Pre: path_exists (a_path) [1..1]

True if the path corresponds to a single item in the data.

PATHABLE.path_of_item (
a_loc: PATHABLE[1]
): String [1..1]

The path to an item relative to the root of this archetyped structure.

LOCATABLE.concept (): DV_TEXT [1..1]

Clinical concept of the archetype as a whole (= derived from the archetype_node_id' of the root node)

LOCATABLE.is_archetype_root (): Boolean [1..1]

True if this node is the root of an archetyped structure.

Invariants

LOCATABLE.Links_valid: links /= Void implies not links.is_empty

LOCATABLE.Archetyped_valid: is_archetype_root xor archetype_details = Void

LOCATABLE.Archetype_node_id_valid: not archetype_node_id.is_empty

{
    "name": "EXTRACT_REQUEST",
    "documentation": "Generic model of a Request for an Extract, containing an Extract specification.",
    "ancestors": [
        "LOCATABLE"
    ],
    "properties": {
        "extract_spec": {
            "_type": "P_BMM_SINGLE_PROPERTY",
            "name": "extract_spec",
            "documentation": "Specification details of the request.",
            "is_mandatory": true,
            "type": "EXTRACT_SPEC"
        },
        "update_spec": {
            "_type": "P_BMM_SINGLE_PROPERTY",
            "name": "update_spec",
            "documentation": "Update details of the request.",
            "type": "EXTRACT_UPDATE_SPEC"
        },
        "uid": {
            "_type": "P_BMM_SINGLE_PROPERTY",
            "name": "uid",
            "documentation": "Identifier of this Request, generated by requestor.",
            "is_mandatory": true,
            "type": "HIER_OBJECT_ID"
        }
    }
}
EXTRACT_REQUEST

EXTRACT_ACTION_REQUEST Class

  • Definition

  • Effective

  • BMM

  • UML

Class

EXTRACT_ACTION_REQUEST

Description

Generic model of a Request for an Extract, containing an Extract specification.

Inherit

LOCATABLE

Attributes

Signature

Meaning

1..1

request_id: OBJECT_REF

Identifier of previous EXTRACT_REQUEST.

1..1
(effected)

uid: HIER_OBJECT_ID

1..1

action: DV_CODED_TEXT

Requested action: cancel | resend | send new. Coded by openEHR Terminology group 'extract action type'.

EXTRACT_ACTION_REQUEST

Generic model of a Request for an Extract, containing an Extract specification.

Inherits: Any, PATHABLE, LOCATABLE

Attributes

LOCATABLE.name: DV_TEXT [1..1]

Runtime name of this fragment, used to build runtime paths. This is the term provided via a clinical application or batch process to name this EHR construct: its retention in the EHR faithfully preserves the original label by which this entry was known to end users.

LOCATABLE.archetype_node_id: String [1..1]

Design-time archetype identifier of this node taken from its generating archetype; used to build archetype paths. Always in the form of an at-code, e.g. at0005. This value enables a 'standardised' name for this node to be generated, by referring to the generating archetype local terminology.

At an archetype root point, the value of this attribute is always the stringified form of the archetype_id found in the archetype_details object.

uid: HIER_OBJECT_ID [1..1]

LOCATABLE.links: List<LINK> [0..1]

Links to other archetyped structures (data whose root object inherits from ARCHETYPED, such as ENTRY, SECTION and so on). Links may be to structures in other compositions.

LOCATABLE.archetype_details: ARCHETYPED [0..1]

Details of archetyping used on this node.

LOCATABLE.feeder_audit: FEEDER_AUDIT [0..1]

Audit trail from non-openEHR system of original commit of information forming the content of this node, or from a conversion gateway which has synthesised this node.

request_id: OBJECT_REF [1..1]

Identifier of previous EXTRACT_REQUEST.

action: DV_CODED_TEXT [1..1]

Requested action: cancel | resend | send new. Coded by openEHR Terminology group 'extract action type'.

Functions

(abstract) Any.is_equal (
other: Any[1]
): Boolean [1..1]

Value equality: return True if this and other are attached to objects considered to be equal in value.

Parameters
other

Other object for comparison.

Any.equal alias "=", "==" (
other: Any[1]
): Boolean [1..1]

Reference equality for reference types, value equality for value types.

Parameters
other

Other object for comparison.

Any.instance_of (
a_type: String[1]
): Any [1..1]

Create new instance of a type.

Any.type_of (
an_object: Any[1]
): String [1..1]

Type name of an object as a string. May include generic parameters, as in "Interval<Time>".

Any.not_equal alias "!=", "≠" (
other: Ordered[1]
): Boolean [1..1]

True if current object not equal to other. Returns not equal().

PATHABLE.parent (): PATHABLE [1..1]

Parent of this node in a compositional hierarchy.

PATHABLE.item_at_path (
a_path: String[1]
): Any

Pre: path_unique (a_path) [1..1]

The item at a path (relative to this item); only valid for unique paths, i.e. paths that resolve to a single item.

PATHABLE.items_at_path (
a_path: String[1]
): List<Any> [0..1]

List of items corresponding to a non-unique path.

PATHABLE.path_exists (
a_path: String[1]
): Boolean

Pre: not a_path.is_empty [1..1]

True if the path exists in the data with respect to the current item.

PATHABLE.path_unique (
a_path: String[1]
): Boolean

Pre: path_exists (a_path) [1..1]

True if the path corresponds to a single item in the data.

PATHABLE.path_of_item (
a_loc: PATHABLE[1]
): String [1..1]

The path to an item relative to the root of this archetyped structure.

LOCATABLE.concept (): DV_TEXT [1..1]

Clinical concept of the archetype as a whole (= derived from the archetype_node_id' of the root node)

LOCATABLE.is_archetype_root (): Boolean [1..1]

True if this node is the root of an archetyped structure.

Invariants

LOCATABLE.Links_valid: links /= Void implies not links.is_empty

LOCATABLE.Archetyped_valid: is_archetype_root xor archetype_details = Void

LOCATABLE.Archetype_node_id_valid: not archetype_node_id.is_empty

{
    "name": "EXTRACT_ACTION_REQUEST",
    "documentation": "Generic model of a Request for an Extract, containing an Extract specification.",
    "ancestors": [
        "LOCATABLE"
    ],
    "properties": {
        "request_id": {
            "_type": "P_BMM_SINGLE_PROPERTY",
            "name": "request_id",
            "documentation": "Identifier of previous `EXTRACT_REQUEST`.",
            "is_mandatory": true,
            "type": "OBJECT_REF"
        },
        "uid": {
            "_type": "P_BMM_SINGLE_PROPERTY",
            "name": "uid",
            "is_mandatory": true,
            "type": "HIER_OBJECT_ID"
        },
        "action": {
            "_type": "P_BMM_SINGLE_PROPERTY",
            "name": "action",
            "documentation": "Requested action: `cancel | resend | send new`. Coded by openEHR Terminology group `'extract action type'`.",
            "is_mandatory": true,
            "type": "DV_CODED_TEXT"
        }
    }
}
EXTRACT_ACTION_REQUEST

EXTRACT_SPEC Class

  • Definition

  • Effective

  • BMM

  • UML

Class

EXTRACT_SPEC

Description

Specification of an Extract’s contents. Subtypes can be used to add details specific to the type of Extract. The specification consists of attributes specifying the directory, and two further groups of attributes in their own classes, namely a version specfication (which versions of information items are to be included) and a manifest (which entities are to be included in the extract).

Use: Used in a request to specify an Extract, as well as to describe what is contained in an Extract.

Attributes

Signature

Meaning

0..1

version_spec: EXTRACT_VERSION_SPEC

Specification of which versions of information items to include in the Extract. If Void, the default is latest versions only (which is reasonable for non-versioning systems as well).

1..1

manifest: EXTRACT_MANIFEST

Specification of entities (e.g. records) to include in the Extract.

1..1

extract_type: DV_CODED_TEXT

Coded term indicating the type of content required, e.g.

  • |openehr-ehr|

  • |openehr-demographic|

  • |generic-emr|

  • |other|

Coded by openEHR Terminology group 'extract content type'.

1..1

include_multimedia: Boolean

Indicates whether in-line instances of DV_MULTIMEDIA in the source data are included or not.

1..1

priority: Integer

Requested priority of this request to be handled by server. Priority schemes are likely to be local, and use values agreed by both ends.

TBD: alternative is standard coded terms

1..1

link_depth: Integer

Degree of links to follow emanating from content items specified for inclusion. The kind of links to follow is dependent on the type of Extract.

All items at the target end of followed links at the given depth are also included in the extract; EXTRACT_CONTENT_ITEM.is_primary is used to differentiate.

  • 0 = don’t follow;

  • 1 = follow first degree links;

  • 2 = follow 2nd degree links;

  • …​.

  • n = follow nth degree links

0..1

criteria: List<DV_PARSABLE>

Queries specifying the contents of this Extract.

0..1

other_details: ITEM_STRUCTURE

Other specification items. Archetypable.

EXTRACT_SPEC

Specification of an Extract’s contents. Subtypes can be used to add details specific to the type of Extract. The specification consists of attributes specifying the directory, and two further groups of attributes in their own classes, namely a version specfication (which versions of information items are to be included) and a manifest (which entities are to be included in the extract).

Use: Used in a request to specify an Extract, as well as to describe what is contained in an Extract.

Attributes

version_spec: EXTRACT_VERSION_SPEC [0..1]

Specification of which versions of information items to include in the Extract. If Void, the default is latest versions only (which is reasonable for non-versioning systems as well).

manifest: EXTRACT_MANIFEST [1..1]

Specification of entities (e.g. records) to include in the Extract.

extract_type: DV_CODED_TEXT [1..1]

Coded term indicating the type of content required, e.g.

  • |openehr-ehr|

  • |openehr-demographic|

  • |generic-emr|

  • |other|

Coded by openEHR Terminology group 'extract content type'.

include_multimedia: Boolean [1..1]

Indicates whether in-line instances of DV_MULTIMEDIA in the source data are included or not.

priority: Integer [1..1]

Requested priority of this request to be handled by server. Priority schemes are likely to be local, and use values agreed by both ends.

TBD: alternative is standard coded terms

link_depth: Integer [1..1]

Degree of links to follow emanating from content items specified for inclusion. The kind of links to follow is dependent on the type of Extract.

All items at the target end of followed links at the given depth are also included in the extract; EXTRACT_CONTENT_ITEM.is_primary is used to differentiate.

  • 0 = don’t follow;

  • 1 = follow first degree links;

  • 2 = follow 2nd degree links;

  • …​.

  • n = follow nth degree links

criteria: List<DV_PARSABLE> [0..1]

Queries specifying the contents of this Extract.

other_details: ITEM_STRUCTURE [0..1]

Other specification items. Archetypable.

{
    "name": "EXTRACT_SPEC",
    "documentation": "Specification of an Extract's contents. Subtypes can be used to add details specific to the type of Extract. The specification consists of attributes specifying the directory, and two further groups of attributes in their own classes, namely a version specfication (which versions of information items are to be included) and a manifest (which entities are to be included in the extract).\n\nUse: Used in a request to specify an Extract, as well as to describe what is contained in an Extract.",
    "properties": {
        "version_spec": {
            "_type": "P_BMM_SINGLE_PROPERTY",
            "name": "version_spec",
            "documentation": "Specification of which versions of information items to include in the Extract. If Void, the default is latest versions only (which is reasonable for non-versioning systems as well).",
            "type": "EXTRACT_VERSION_SPEC"
        },
        "manifest": {
            "_type": "P_BMM_SINGLE_PROPERTY",
            "name": "manifest",
            "documentation": "Specification of entities (e.g. records) to include in the Extract.",
            "is_mandatory": true,
            "type": "EXTRACT_MANIFEST"
        },
        "extract_type": {
            "_type": "P_BMM_SINGLE_PROPERTY",
            "name": "extract_type",
            "documentation": "Coded term indicating the type of content required, e.g.\n\n* `|openehr-ehr|`\n* `|openehr-demographic|`\n* `|generic-emr|`\n* `|other|`\n\nCoded by openEHR Terminology group `'extract content type'`.",
            "is_mandatory": true,
            "type": "DV_CODED_TEXT"
        },
        "include_multimedia": {
            "_type": "P_BMM_SINGLE_PROPERTY",
            "name": "include_multimedia",
            "documentation": "Indicates whether in-line instances of `DV_MULTIMEDIA` in the source data are included or not.",
            "is_mandatory": true,
            "type": "Boolean"
        },
        "priority": {
            "_type": "P_BMM_SINGLE_PROPERTY",
            "name": "priority",
            "documentation": "Requested priority of this request to be handled by server. Priority schemes are likely to be local, and use values agreed by both ends.\n\nTBD: alternative is standard coded terms",
            "is_mandatory": true,
            "type": "Integer"
        },
        "link_depth": {
            "_type": "P_BMM_SINGLE_PROPERTY",
            "name": "link_depth",
            "documentation": "Degree of links to follow emanating from content items specified for inclusion. The kind of links to follow is dependent on the type of Extract.\n\nAll items at the target end of followed links at the given depth are also included in the extract; `EXTRACT_CONTENT_ITEM._is_primary_` is used to differentiate.\n\n* 0 = don't follow;\n* 1 = follow first degree links;\n* 2 = follow 2nd degree links;\n* ....\n* n = follow nth degree links\n",
            "is_mandatory": true,
            "type": "Integer"
        },
        "criteria": {
            "_type": "P_BMM_CONTAINER_PROPERTY",
            "name": "criteria",
            "documentation": "Queries specifying the contents of this Extract.",
            "type_def": {
                "container_type": "List",
                "type": "DV_PARSABLE"
            },
            "cardinality": {
                "lower": 0,
                "upper_unbounded": true
            }
        },
        "other_details": {
            "_type": "P_BMM_SINGLE_PROPERTY",
            "name": "other_details",
            "documentation": "Other specification items. Archetypable.",
            "type": "ITEM_STRUCTURE"
        }
    }
}
EXTRACT_SPEC

EXTRACT_MANIFEST Class

  • Definition

  • Effective

  • BMM

  • UML

Class

EXTRACT_MANIFEST

Description

Specification of the candidate entities and optionally top-level items (e.g. Compositions) to be included in the Extract.

Attributes

Signature

Meaning

1..1

entities: List<EXTRACT_ENTITY_MANIFEST>

List of entity manifests uids of items included in the Extract; for openEHR data, these are uids identifying the version containers.

EXTRACT_MANIFEST

Specification of the candidate entities and optionally top-level items (e.g. Compositions) to be included in the Extract.

Attributes

entities: List<EXTRACT_ENTITY_MANIFEST> [1..1]

List of entity manifests uids of items included in the Extract; for openEHR data, these are uids identifying the version containers.

{
    "name": "EXTRACT_MANIFEST",
    "documentation": "Specification of the candidate entities and optionally top-level items (e.g. Compositions) to be included in the Extract.",
    "properties": {
        "entities": {
            "_type": "P_BMM_CONTAINER_PROPERTY",
            "name": "entities",
            "documentation": "List of entity manifests uids of items included in the Extract; for openEHR data, these are uids identifying the version containers.",
            "is_mandatory": true,
            "type_def": {
                "container_type": "List",
                "type": "EXTRACT_ENTITY_MANIFEST"
            },
            "cardinality": {
                "lower": 1,
                "upper_unbounded": true
            }
        }
    }
}
EXTRACT_MANIFEST

EXTRACT_ENTITY_MANIFEST Class

  • Definition

  • Effective

  • BMM

  • UML

Class

EXTRACT_ENTITY_MANIFEST

Description

The manifest for one entity (e.g. EHR subject), identifying the entity and optionally specifying top-level items to be included in the Extract. The list actually included may be modified by the version_spec part of the specification, and also by the link_depth attribute. In repeat (standing order) requests, the final inclusion may be modified by the send_changes_only value for EXTRACT_UPDATE_SPEC.update_method.

Various identifiers may be provided for the entity; these are to be used by the receiver system to locate the entity. The extract_id_key attribute is used to record the identifier that will be used throughout the Extract for this entity, including in instances of EXTRACT_ENTITY_IDENTIFIER.

Attributes

Signature

Meaning

1..1

extract_id_key: String

Identifier by which this entity is known in the Extract. May be one of the other identifiers, e.g. ehr_id or subject_id, or it may be something else, including a simple integer.

0..1

ehr_id: String

EHR / EMR identifier for the entity at the target system.

0..1

subject_id: String

Subject (i.e. patient or similar) identifier for the entity at the target system.

0..1

other_ids: List<String>

Other identifiers that may be used to find the entity at the target system, keyed by type. May include medicare numbers, drivers license number, tax number etc.

0..1

item_list: List<OBJECT_REF>

List of Uids of items to be included in the Extract, in cases where individual items are being requested by id. More typically, this attribute is not used, and the EXTRACT_SPEC.criteria query defines the Extract contents. If set, for openEHR data, these are Uids identifying the version containers.

EXTRACT_ENTITY_MANIFEST

The manifest for one entity (e.g. EHR subject), identifying the entity and optionally specifying top-level items to be included in the Extract. The list actually included may be modified by the version_spec part of the specification, and also by the link_depth attribute. In repeat (standing order) requests, the final inclusion may be modified by the send_changes_only value for EXTRACT_UPDATE_SPEC.update_method.

Various identifiers may be provided for the entity; these are to be used by the receiver system to locate the entity. The extract_id_key attribute is used to record the identifier that will be used throughout the Extract for this entity, including in instances of EXTRACT_ENTITY_IDENTIFIER.

Attributes

extract_id_key: String [1..1]

Identifier by which this entity is known in the Extract. May be one of the other identifiers, e.g. ehr_id or subject_id, or it may be something else, including a simple integer.

ehr_id: String [0..1]

EHR / EMR identifier for the entity at the target system.

subject_id: String [0..1]

Subject (i.e. patient or similar) identifier for the entity at the target system.

other_ids: List<String> [0..1]

Other identifiers that may be used to find the entity at the target system, keyed by type. May include medicare numbers, drivers license number, tax number etc.

item_list: List<OBJECT_REF> [0..1]

List of Uids of items to be included in the Extract, in cases where individual items are being requested by id. More typically, this attribute is not used, and the EXTRACT_SPEC.criteria query defines the Extract contents. If set, for openEHR data, these are Uids identifying the version containers.

{
    "name": "EXTRACT_ENTITY_MANIFEST",
    "documentation": "The manifest for one entity (e.g. EHR subject), identifying the entity and optionally specifying top-level items to be included in the Extract. The list actually included may be modified by the `_version_spec_` part of the specification, and also by the link_depth attribute. In repeat (standing order) requests, the final inclusion may be modified by the send_changes_only value for `EXTRACT_UPDATE_SPEC._update_method_`.\n\nVarious identifiers may be provided for the entity; these are to be used by the receiver system to locate the entity. The `_extract_id_key_` attribute is used to record the identifier that will be used throughout the Extract for this entity, including in instances of `EXTRACT_ENTITY_IDENTIFIER`.",
    "properties": {
        "extract_id_key": {
            "_type": "P_BMM_SINGLE_PROPERTY",
            "name": "extract_id_key",
            "documentation": "Identifier by which this entity is known in the Extract. May be one of the other identifiers, e.g. ehr_id or subject_id, or it may be something else, including a simple integer.",
            "is_mandatory": true,
            "type": "String"
        },
        "ehr_id": {
            "_type": "P_BMM_SINGLE_PROPERTY",
            "name": "ehr_id",
            "documentation": "EHR / EMR identifier for the entity at the target system.",
            "type": "String"
        },
        "subject_id": {
            "_type": "P_BMM_SINGLE_PROPERTY",
            "name": "subject_id",
            "documentation": "Subject (i.e. patient or similar) identifier for the entity at the target system.",
            "type": "String"
        },
        "other_ids": {
            "_type": "P_BMM_CONTAINER_PROPERTY",
            "name": "other_ids",
            "documentation": "Other identifiers that may be used to find the entity at the target system, keyed by type. May include medicare numbers, drivers license number, tax number etc.",
            "type_def": {
                "container_type": "List",
                "type": "String"
            },
            "cardinality": {
                "lower": 0,
                "upper_unbounded": true
            }
        },
        "item_list": {
            "_type": "P_BMM_CONTAINER_PROPERTY",
            "name": "item_list",
            "documentation": "List of Uids of items to be included in the Extract, in cases where individual items are being requested by id. More typically, this attribute is not used, and the `EXTRACT_SPEC._criteria query_` defines the Extract contents. If set, for openEHR data, these are Uids identifying the version containers.",
            "type_def": {
                "container_type": "List",
                "type": "OBJECT_REF"
            },
            "cardinality": {
                "lower": 0,
                "upper_unbounded": true
            }
        }
    }
}
EXTRACT_ENTITY_MANIFEST

EXTRACT_VERSION_SPEC Class

  • Definition

  • Effective

  • BMM

  • UML

Class

EXTRACT_VERSION_SPEC

Description

Specification of what versions should be included in an Extract. By default, only latest versions are included in the Extract, in which case this part of the Extract specification is not needed at all. The attributes include_all_versions and commit_time_interval are used to modify this; the former forces all versions to be included; the latter limits the versions to be those latest versions committed in the time interval, or if include_all_versions is True, all versions committed in the time interval.

Attributes

Signature

Meaning

1..1

include_all_versions: Boolean

True if all versions of each item in the Extract are included.

0..1

commit_time_interval: DV_INTERVAL<DV_DATE_TIME>

Specifies commit time interval of items to source repository to include in Extract. By default, only latest versions whose commit times fall in the range are included. If include_all_versions is True, then the range includes all versions committed within the interval.

1..1

include_revision_history: Boolean

True if revision histories of the items in the Extract are included. If included, it is always the full revision history.

1..1

include_data: Boolean

True if the data of items matched by the content spec should be included. This is the default. If False, only revision history is included in serialised versions. Turning this option on in openEHR systems causes X_VERSIONED_OBJECTs to have revision_history set, but versions Void. Useful for interrogating a server without having to look at any content data. In other systems it may or may not have a sensible meaning.

Invariants

Includes_revision_history_valid: not include_data implies include_revision_history

EXTRACT_VERSION_SPEC

Specification of what versions should be included in an Extract. By default, only latest versions are included in the Extract, in which case this part of the Extract specification is not needed at all. The attributes include_all_versions and commit_time_interval are used to modify this; the former forces all versions to be included; the latter limits the versions to be those latest versions committed in the time interval, or if include_all_versions is True, all versions committed in the time interval.

Attributes

include_all_versions: Boolean [1..1]

True if all versions of each item in the Extract are included.

commit_time_interval: DV_INTERVAL<DV_DATE_TIME> [0..1]

Specifies commit time interval of items to source repository to include in Extract. By default, only latest versions whose commit times fall in the range are included. If include_all_versions is True, then the range includes all versions committed within the interval.

include_revision_history: Boolean [1..1]

True if revision histories of the items in the Extract are included. If included, it is always the full revision history.

include_data: Boolean [1..1]

True if the data of items matched by the content spec should be included. This is the default. If False, only revision history is included in serialised versions. Turning this option on in openEHR systems causes X_VERSIONED_OBJECTs to have revision_history set, but versions Void. Useful for interrogating a server without having to look at any content data. In other systems it may or may not have a sensible meaning.

Invariants

Includes_revision_history_valid: not include_data implies include_revision_history

{
    "name": "EXTRACT_VERSION_SPEC",
    "documentation": "Specification of what versions should be included in an Extract. By default, only latest versions are included in the Extract, in which case this part of the Extract specification is not needed at all. The attributes `_include_all_versions_` and `_commit_time_interval_` are used to modify this; the former forces all versions to be included; the latter limits the versions to be those latest versions committed in the time interval, or if `_include_all_versions_` is `True`, all versions committed in the time interval.",
    "properties": {
        "include_all_versions": {
            "_type": "P_BMM_SINGLE_PROPERTY",
            "name": "include_all_versions",
            "documentation": "True if all versions of each item in the Extract are included.",
            "is_mandatory": true,
            "type": "Boolean"
        },
        "commit_time_interval": {
            "_type": "P_BMM_GENERIC_PROPERTY",
            "name": "commit_time_interval",
            "documentation": "Specifies commit time interval of items to source repository to include in Extract. By default, only latest versions whose commit times fall in the range are included. If include_all_versions is True, then the range includes all versions committed within the interval.",
            "type_def": {
                "root_type": "DV_INTERVAL",
                "generic_parameters": [
                    "DV_DATE_TIME"
                ]
            }
        },
        "include_revision_history": {
            "_type": "P_BMM_SINGLE_PROPERTY",
            "name": "include_revision_history",
            "documentation": "True if revision histories of the items in the Extract are included. If included, it is always the full revision history.",
            "is_mandatory": true,
            "type": "Boolean"
        },
        "include_data": {
            "_type": "P_BMM_SINGLE_PROPERTY",
            "name": "include_data",
            "documentation": "`True` if the data of items matched by the content spec should be included. This is the default. If `False`, only revision history is included in serialised versions. Turning this option on in openEHR systems causes `X_VERSIONED_OBJECTs` to have `_revision_history_` set, but versions Void. Useful for interrogating a server without having to look at any content data. In other systems it may or may not have a sensible meaning.",
            "is_mandatory": true,
            "type": "Boolean"
        }
    },
    "invariants": {
        "Includes_revision_history_valid": "not include_data implies include_revision_history"
    }
}
EXTRACT_VERSION_SPEC

EXTRACT_UPDATE_SPEC Class

  • Definition

  • Effective

  • BMM

  • UML

Class

EXTRACT_UPDATE_SPEC

Description

Specification of the how the request should be processed by server. The request can be persisted in the server, meaning that a) it can be re-activated by the requesting system simply by indicating Request id, and b) that a changes-only pattern of Extract updates can be set up. To achieve this, the server has to remember what was sent in the previous response.

The update mode may be event-driven and periodic update or a mixture of both. The candidate items to be sent each time are the result of re-evaluating the content and versioning parts of the specification; what is actually sent is determined by the send_changes_only flag.

Attributes

Signature

Meaning

1..1

persist_in_server: Boolean

If True, this Request is persisted in the server until further notice.

0..1

repeat_period: DV_DURATION

Period for resending update Extracts in response to original Request.

0..1

trigger_events: List<DV_CODED_TEXT>

Set of Event names that will cause sending of update Extracts. Event types include:

  • |any_change| - any change in content items matched by content specification, e.g. new versions of persistent compositions. If the content list allows matching of any, or a wide range of archetypes, this event type will match any additions to the record.

  • |correction| - match error corrections only, including deletions.

  • |update| - match updates (i.e. new versions) of included content items.

Coded by openEHR Terminology group 'extract update trigger event type'.

1..1

update_method: CODE_PHRASE

Indicate mode of update. Can be: send only items that are changed (including logical deletions) or new since last send. For persist_in_server Requests only.

Invariants

Overall_validity: repeat_period /= Void or trigger_events /= Void

Trigger_events_validity: trigger_events /= Void implies not trigger_events.is_empty

Send_changes_only_validity: send_changes_only implies persist_in_server

EXTRACT_UPDATE_SPEC

Specification of the how the request should be processed by server. The request can be persisted in the server, meaning that a) it can be re-activated by the requesting system simply by indicating Request id, and b) that a changes-only pattern of Extract updates can be set up. To achieve this, the server has to remember what was sent in the previous response.

The update mode may be event-driven and periodic update or a mixture of both. The candidate items to be sent each time are the result of re-evaluating the content and versioning parts of the specification; what is actually sent is determined by the send_changes_only flag.

Attributes

persist_in_server: Boolean [1..1]

If True, this Request is persisted in the server until further notice.

repeat_period: DV_DURATION [0..1]

Period for resending update Extracts in response to original Request.

trigger_events: List<DV_CODED_TEXT> [0..1]

Set of Event names that will cause sending of update Extracts. Event types include:

  • |any_change| - any change in content items matched by content specification, e.g. new versions of persistent compositions. If the content list allows matching of any, or a wide range of archetypes, this event type will match any additions to the record.

  • |correction| - match error corrections only, including deletions.

  • |update| - match updates (i.e. new versions) of included content items.

Coded by openEHR Terminology group 'extract update trigger event type'.

update_method: CODE_PHRASE [1..1]

Indicate mode of update. Can be: send only items that are changed (including logical deletions) or new since last send. For persist_in_server Requests only.

Invariants

Overall_validity: repeat_period /= Void or trigger_events /= Void

Trigger_events_validity: trigger_events /= Void implies not trigger_events.is_empty

Send_changes_only_validity: send_changes_only implies persist_in_server

{
    "name": "EXTRACT_UPDATE_SPEC",
    "documentation": "Specification of the how the request should be processed by server. The request can be persisted in the server, meaning that a) it can be re-activated by the requesting system simply by indicating Request id, and b) that a changes-only pattern of Extract updates can be set up. To achieve this, the server has to remember what was sent in the previous response.\n\nThe update mode may be event-driven and periodic update or a mixture of both. The candidate items to be sent each time are the result of re-evaluating the content and versioning parts of the specification; what is actually sent is determined by the `_send_changes_only_` flag.",
    "properties": {
        "persist_in_server": {
            "_type": "P_BMM_SINGLE_PROPERTY",
            "name": "persist_in_server",
            "documentation": "If True, this Request is persisted in the server until further notice.",
            "is_mandatory": true,
            "type": "Boolean"
        },
        "repeat_period": {
            "_type": "P_BMM_SINGLE_PROPERTY",
            "name": "repeat_period",
            "documentation": "Period for resending update Extracts in response to original Request.",
            "type": "DV_DURATION"
        },
        "trigger_events": {
            "_type": "P_BMM_CONTAINER_PROPERTY",
            "name": "trigger_events",
            "documentation": "Set of Event names that will cause sending of update Extracts. Event types include:   \n\n* `|any_change|` - any change in content items matched by content specification, e.g. new versions of persistent compositions. If the content list allows matching of any, or a wide range of archetypes, this event type will match any additions to the record.\n* `|correction|` - match error corrections only, including deletions.\n* `|update|` - match updates (i.e. new versions) of included content items.\n\nCoded by openEHR Terminology group 'extract update trigger event type'.",
            "type_def": {
                "container_type": "List",
                "type": "DV_CODED_TEXT"
            },
            "cardinality": {
                "lower": 0,
                "upper_unbounded": true
            }
        },
        "update_method": {
            "_type": "P_BMM_SINGLE_PROPERTY",
            "name": "update_method",
            "documentation": "Indicate mode of update. Can be: send only items that are changed (including logical deletions) or new since last send. For `_persist_in_server_` Requests only.",
            "is_mandatory": true,
            "type": "CODE_PHRASE"
        }
    },
    "invariants": {
        "Overall_validity": "repeat_period /= Void or trigger_events /= Void",
        "Trigger_events_validity": "trigger_events /= Void implies not trigger_events.is_empty",
        "Send_changes_only_validity": "send_changes_only implies persist_in_server"
    }
}
EXTRACT_UPDATE_SPEC

EXTRACT Class

  • Definition

  • Effective

  • BMM

  • UML

Class

EXTRACT

Description

Generic model of an Extract of some information from a repository.

Inherit

LOCATABLE

Attributes

Signature

Meaning

0..1

chapters: List<EXTRACT_CHAPTER>

The content extracted and serialised from the source repository for this Extract.

0..1

specification: EXTRACT_SPEC

The specification that this Extract actually conforms to; might not be identical with the specification of the corresponding request.

0..1

request_id: HIER_OBJECT_ID

Reference to causing Request, if any.

1..1

time_created: DV_DATE_TIME

Creation time of this Extract

1..1

system_id: HIER_OBJECT_ID

Identifier of creating system.

1..1

sequence_nr: Integer

Number of this Extract response in sequence of responses to Extract request identified by request_id. If this is the sole response, or there was no request, value is 1.

0..1

participations: List<EXTRACT_PARTICIPATION>

Participations relevant to the creation of this Extract.

Invariants

Sequence_nr_valid: sequence_nr >= 1

EXTRACT

Generic model of an Extract of some information from a repository.

Inherits: Any, PATHABLE, LOCATABLE

Attributes

LOCATABLE.name: DV_TEXT [1..1]

Runtime name of this fragment, used to build runtime paths. This is the term provided via a clinical application or batch process to name this EHR construct: its retention in the EHR faithfully preserves the original label by which this entry was known to end users.

LOCATABLE.archetype_node_id: String [1..1]

Design-time archetype identifier of this node taken from its generating archetype; used to build archetype paths. Always in the form of an at-code, e.g. at0005. This value enables a 'standardised' name for this node to be generated, by referring to the generating archetype local terminology.

At an archetype root point, the value of this attribute is always the stringified form of the archetype_id found in the archetype_details object.

LOCATABLE.uid: UID_BASED_ID [0..1]

Optional globally unique object identifier for root points of archetyped structures.

LOCATABLE.links: List<LINK> [0..1]

Links to other archetyped structures (data whose root object inherits from ARCHETYPED, such as ENTRY, SECTION and so on). Links may be to structures in other compositions.

LOCATABLE.archetype_details: ARCHETYPED [0..1]

Details of archetyping used on this node.

LOCATABLE.feeder_audit: FEEDER_AUDIT [0..1]

Audit trail from non-openEHR system of original commit of information forming the content of this node, or from a conversion gateway which has synthesised this node.

chapters: List<EXTRACT_CHAPTER> [0..1]

The content extracted and serialised from the source repository for this Extract.

specification: EXTRACT_SPEC [0..1]

The specification that this Extract actually conforms to; might not be identical with the specification of the corresponding request.

request_id: HIER_OBJECT_ID [0..1]

Reference to causing Request, if any.

time_created: DV_DATE_TIME [1..1]

Creation time of this Extract

system_id: HIER_OBJECT_ID [1..1]

Identifier of creating system.

sequence_nr: Integer [1..1]

Number of this Extract response in sequence of responses to Extract request identified by request_id. If this is the sole response, or there was no request, value is 1.

participations: List<EXTRACT_PARTICIPATION> [0..1]

Participations relevant to the creation of this Extract.

Functions

(abstract) Any.is_equal (
other: Any[1]
): Boolean [1..1]

Value equality: return True if this and other are attached to objects considered to be equal in value.

Parameters
other

Other object for comparison.

Any.equal alias "=", "==" (
other: Any[1]
): Boolean [1..1]

Reference equality for reference types, value equality for value types.

Parameters
other

Other object for comparison.

Any.instance_of (
a_type: String[1]
): Any [1..1]

Create new instance of a type.

Any.type_of (
an_object: Any[1]
): String [1..1]

Type name of an object as a string. May include generic parameters, as in "Interval<Time>".

Any.not_equal alias "!=", "≠" (
other: Ordered[1]
): Boolean [1..1]

True if current object not equal to other. Returns not equal().

PATHABLE.parent (): PATHABLE [1..1]

Parent of this node in a compositional hierarchy.

PATHABLE.item_at_path (
a_path: String[1]
): Any

Pre: path_unique (a_path) [1..1]

The item at a path (relative to this item); only valid for unique paths, i.e. paths that resolve to a single item.

PATHABLE.items_at_path (
a_path: String[1]
): List<Any> [0..1]

List of items corresponding to a non-unique path.

PATHABLE.path_exists (
a_path: String[1]
): Boolean

Pre: not a_path.is_empty [1..1]

True if the path exists in the data with respect to the current item.

PATHABLE.path_unique (
a_path: String[1]
): Boolean

Pre: path_exists (a_path) [1..1]

True if the path corresponds to a single item in the data.

PATHABLE.path_of_item (
a_loc: PATHABLE[1]
): String [1..1]

The path to an item relative to the root of this archetyped structure.

LOCATABLE.concept (): DV_TEXT [1..1]

Clinical concept of the archetype as a whole (= derived from the archetype_node_id' of the root node)

LOCATABLE.is_archetype_root (): Boolean [1..1]

True if this node is the root of an archetyped structure.

Invariants

LOCATABLE.Links_valid: links /= Void implies not links.is_empty

LOCATABLE.Archetyped_valid: is_archetype_root xor archetype_details = Void

LOCATABLE.Archetype_node_id_valid: not archetype_node_id.is_empty

Sequence_nr_valid: sequence_nr >= 1

{
    "name": "EXTRACT",
    "documentation": "Generic model of an Extract of some information from a repository.",
    "ancestors": [
        "LOCATABLE"
    ],
    "properties": {
        "chapters": {
            "_type": "P_BMM_CONTAINER_PROPERTY",
            "name": "chapters",
            "documentation": "The content extracted and serialised from the source repository for this Extract.",
            "type_def": {
                "container_type": "List",
                "type": "EXTRACT_CHAPTER"
            },
            "cardinality": {
                "lower": 0,
                "upper_unbounded": true
            }
        },
        "specification": {
            "_type": "P_BMM_SINGLE_PROPERTY",
            "name": "specification",
            "documentation": "The specification that this Extract actually conforms to; might not be identical with the specification of the corresponding request.",
            "type": "EXTRACT_SPEC"
        },
        "request_id": {
            "_type": "P_BMM_SINGLE_PROPERTY",
            "name": "request_id",
            "documentation": "Reference to causing Request, if any.",
            "type": "HIER_OBJECT_ID"
        },
        "time_created": {
            "_type": "P_BMM_SINGLE_PROPERTY",
            "name": "time_created",
            "documentation": "Creation time of this Extract",
            "is_mandatory": true,
            "type": "DV_DATE_TIME"
        },
        "system_id": {
            "_type": "P_BMM_SINGLE_PROPERTY",
            "name": "system_id",
            "documentation": "Identifier of creating system.",
            "is_mandatory": true,
            "type": "HIER_OBJECT_ID"
        },
        "sequence_nr": {
            "_type": "P_BMM_SINGLE_PROPERTY",
            "name": "sequence_nr",
            "documentation": "Number of this Extract response in sequence of responses to Extract request identified by `_request_id_`. If this is the sole response, or there was no request, value is 1.",
            "is_mandatory": true,
            "type": "Integer"
        },
        "participations": {
            "_type": "P_BMM_CONTAINER_PROPERTY",
            "name": "participations",
            "documentation": "Participations relevant to the creation of this Extract.",
            "type_def": {
                "container_type": "List",
                "type": "EXTRACT_PARTICIPATION"
            },
            "cardinality": {
                "lower": 0,
                "upper_unbounded": true
            }
        }
    },
    "invariants": {
        "Sequence_nr_valid": "sequence_nr >= 1"
    }
}
EXTRACT

EXTRACT_CHAPTER Class

  • Definition

  • Effective

  • BMM

  • UML

Class

EXTRACT_CHAPTER

Description

One content chapter of an Extract; contains information relating to only one entity.

Inherit

LOCATABLE

Attributes

Signature

Meaning

0..1

items: List<EXTRACT_ITEM>

The information content of this chapter.

EXTRACT_CHAPTER

One content chapter of an Extract; contains information relating to only one entity.

Inherits: Any, PATHABLE, LOCATABLE

Attributes

LOCATABLE.name: DV_TEXT [1..1]

Runtime name of this fragment, used to build runtime paths. This is the term provided via a clinical application or batch process to name this EHR construct: its retention in the EHR faithfully preserves the original label by which this entry was known to end users.

LOCATABLE.archetype_node_id: String [1..1]

Design-time archetype identifier of this node taken from its generating archetype; used to build archetype paths. Always in the form of an at-code, e.g. at0005. This value enables a 'standardised' name for this node to be generated, by referring to the generating archetype local terminology.

At an archetype root point, the value of this attribute is always the stringified form of the archetype_id found in the archetype_details object.

LOCATABLE.uid: UID_BASED_ID [0..1]

Optional globally unique object identifier for root points of archetyped structures.

LOCATABLE.links: List<LINK> [0..1]

Links to other archetyped structures (data whose root object inherits from ARCHETYPED, such as ENTRY, SECTION and so on). Links may be to structures in other compositions.

LOCATABLE.archetype_details: ARCHETYPED [0..1]

Details of archetyping used on this node.

LOCATABLE.feeder_audit: FEEDER_AUDIT [0..1]

Audit trail from non-openEHR system of original commit of information forming the content of this node, or from a conversion gateway which has synthesised this node.

items: List<EXTRACT_ITEM> [0..1]

The information content of this chapter.

Functions

(abstract) Any.is_equal (
other: Any[1]
): Boolean [1..1]

Value equality: return True if this and other are attached to objects considered to be equal in value.

Parameters
other

Other object for comparison.

Any.equal alias "=", "==" (
other: Any[1]
): Boolean [1..1]

Reference equality for reference types, value equality for value types.

Parameters
other

Other object for comparison.

Any.instance_of (
a_type: String[1]
): Any [1..1]

Create new instance of a type.

Any.type_of (
an_object: Any[1]
): String [1..1]

Type name of an object as a string. May include generic parameters, as in "Interval<Time>".

Any.not_equal alias "!=", "≠" (
other: Ordered[1]
): Boolean [1..1]

True if current object not equal to other. Returns not equal().

PATHABLE.parent (): PATHABLE [1..1]

Parent of this node in a compositional hierarchy.

PATHABLE.item_at_path (
a_path: String[1]
): Any

Pre: path_unique (a_path) [1..1]

The item at a path (relative to this item); only valid for unique paths, i.e. paths that resolve to a single item.

PATHABLE.items_at_path (
a_path: String[1]
): List<Any> [0..1]

List of items corresponding to a non-unique path.

PATHABLE.path_exists (
a_path: String[1]
): Boolean

Pre: not a_path.is_empty [1..1]

True if the path exists in the data with respect to the current item.

PATHABLE.path_unique (
a_path: String[1]
): Boolean

Pre: path_exists (a_path) [1..1]

True if the path corresponds to a single item in the data.

PATHABLE.path_of_item (
a_loc: PATHABLE[1]
): String [1..1]

The path to an item relative to the root of this archetyped structure.

LOCATABLE.concept (): DV_TEXT [1..1]

Clinical concept of the archetype as a whole (= derived from the archetype_node_id' of the root node)

LOCATABLE.is_archetype_root (): Boolean [1..1]

True if this node is the root of an archetyped structure.

Invariants

LOCATABLE.Links_valid: links /= Void implies not links.is_empty

LOCATABLE.Archetyped_valid: is_archetype_root xor archetype_details = Void

LOCATABLE.Archetype_node_id_valid: not archetype_node_id.is_empty

{
    "name": "EXTRACT_CHAPTER",
    "documentation": "One content chapter of an Extract; contains information relating to only one entity.",
    "ancestors": [
        "LOCATABLE"
    ],
    "properties": {
        "items": {
            "_type": "P_BMM_CONTAINER_PROPERTY",
            "name": "items",
            "documentation": "The information content of this chapter.",
            "type_def": {
                "container_type": "List",
                "type": "EXTRACT_ITEM"
            },
            "cardinality": {
                "lower": 0,
                "upper_unbounded": true
            }
        }
    }
}
EXTRACT_CHAPTER

EXTRACT_ENTITY_CHAPTER Class

  • Definition

  • Effective

  • BMM

  • UML

Class

EXTRACT_ENTITY_CHAPTER

Description

Type of chapter that contains information relating to a single demographic entity.

Inherit

EXTRACT_CHAPTER

Attributes

Signature

Meaning

1..1

extract_id_key: String

Reference to entity, usually a demographic entity such as a patient that the content of this chapter relates to.

EXTRACT_ENTITY_CHAPTER

Type of chapter that contains information relating to a single demographic entity.

Inherits: Any, PATHABLE, LOCATABLE, EXTRACT_CHAPTER

Attributes

LOCATABLE.name: DV_TEXT [1..1]

Runtime name of this fragment, used to build runtime paths. This is the term provided via a clinical application or batch process to name this EHR construct: its retention in the EHR faithfully preserves the original label by which this entry was known to end users.

LOCATABLE.archetype_node_id: String [1..1]

Design-time archetype identifier of this node taken from its generating archetype; used to build archetype paths. Always in the form of an at-code, e.g. at0005. This value enables a 'standardised' name for this node to be generated, by referring to the generating archetype local terminology.

At an archetype root point, the value of this attribute is always the stringified form of the archetype_id found in the archetype_details object.

LOCATABLE.uid: UID_BASED_ID [0..1]

Optional globally unique object identifier for root points of archetyped structures.

LOCATABLE.links: List<LINK> [0..1]

Links to other archetyped structures (data whose root object inherits from ARCHETYPED, such as ENTRY, SECTION and so on). Links may be to structures in other compositions.

LOCATABLE.archetype_details: ARCHETYPED [0..1]

Details of archetyping used on this node.

LOCATABLE.feeder_audit: FEEDER_AUDIT [0..1]

Audit trail from non-openEHR system of original commit of information forming the content of this node, or from a conversion gateway which has synthesised this node.

EXTRACT_CHAPTER.items: List<EXTRACT_ITEM> [0..1]

The information content of this chapter.

extract_id_key: String [1..1]

Reference to entity, usually a demographic entity such as a patient that the content of this chapter relates to.

Functions

(abstract) Any.is_equal (
other: Any[1]
): Boolean [1..1]

Value equality: return True if this and other are attached to objects considered to be equal in value.

Parameters
other

Other object for comparison.

Any.equal alias "=", "==" (
other: Any[1]
): Boolean [1..1]

Reference equality for reference types, value equality for value types.

Parameters
other

Other object for comparison.

Any.instance_of (
a_type: String[1]
): Any [1..1]

Create new instance of a type.

Any.type_of (
an_object: Any[1]
): String [1..1]

Type name of an object as a string. May include generic parameters, as in "Interval<Time>".

Any.not_equal alias "!=", "≠" (
other: Ordered[1]
): Boolean [1..1]

True if current object not equal to other. Returns not equal().

PATHABLE.parent (): PATHABLE [1..1]

Parent of this node in a compositional hierarchy.

PATHABLE.item_at_path (
a_path: String[1]
): Any

Pre: path_unique (a_path) [1..1]

The item at a path (relative to this item); only valid for unique paths, i.e. paths that resolve to a single item.

PATHABLE.items_at_path (
a_path: String[1]
): List<Any> [0..1]

List of items corresponding to a non-unique path.

PATHABLE.path_exists (
a_path: String[1]
): Boolean

Pre: not a_path.is_empty [1..1]

True if the path exists in the data with respect to the current item.

PATHABLE.path_unique (
a_path: String[1]
): Boolean

Pre: path_exists (a_path) [1..1]

True if the path corresponds to a single item in the data.

PATHABLE.path_of_item (
a_loc: PATHABLE[1]
): String [1..1]

The path to an item relative to the root of this archetyped structure.

LOCATABLE.concept (): DV_TEXT [1..1]

Clinical concept of the archetype as a whole (= derived from the archetype_node_id' of the root node)

LOCATABLE.is_archetype_root (): Boolean [1..1]

True if this node is the root of an archetyped structure.

Invariants

LOCATABLE.Links_valid: links /= Void implies not links.is_empty

LOCATABLE.Archetyped_valid: is_archetype_root xor archetype_details = Void

LOCATABLE.Archetype_node_id_valid: not archetype_node_id.is_empty

{
    "name": "EXTRACT_ENTITY_CHAPTER",
    "documentation": "Type of chapter that contains information relating to a single demographic entity.",
    "ancestors": [
        "EXTRACT_CHAPTER"
    ],
    "properties": {
        "extract_id_key": {
            "_type": "P_BMM_SINGLE_PROPERTY",
            "name": "extract_id_key",
            "documentation": "Reference to entity, usually a demographic entity such as a patient that the content of this chapter relates to.",
            "is_mandatory": true,
            "type": "String"
        }
    }
}
EXTRACT_ENTITY_CHAPTER

EXTRACT_ITEM Class

  • Definition

  • Effective

  • BMM

  • UML

Class

EXTRACT_ITEM (abstract)

Description

Abstract parent of Extract Folder and Content types.

Inherit

LOCATABLE

EXTRACT_ITEM (abstract)

Abstract parent of Extract Folder and Content types.

Inherits: Any, PATHABLE, LOCATABLE

Attributes

LOCATABLE.name: DV_TEXT [1..1]

Runtime name of this fragment, used to build runtime paths. This is the term provided via a clinical application or batch process to name this EHR construct: its retention in the EHR faithfully preserves the original label by which this entry was known to end users.

LOCATABLE.archetype_node_id: String [1..1]

Design-time archetype identifier of this node taken from its generating archetype; used to build archetype paths. Always in the form of an at-code, e.g. at0005. This value enables a 'standardised' name for this node to be generated, by referring to the generating archetype local terminology.

At an archetype root point, the value of this attribute is always the stringified form of the archetype_id found in the archetype_details object.

LOCATABLE.uid: UID_BASED_ID [0..1]

Optional globally unique object identifier for root points of archetyped structures.

LOCATABLE.links: List<LINK> [0..1]

Links to other archetyped structures (data whose root object inherits from ARCHETYPED, such as ENTRY, SECTION and so on). Links may be to structures in other compositions.

LOCATABLE.archetype_details: ARCHETYPED [0..1]

Details of archetyping used on this node.

LOCATABLE.feeder_audit: FEEDER_AUDIT [0..1]

Audit trail from non-openEHR system of original commit of information forming the content of this node, or from a conversion gateway which has synthesised this node.

Functions

(abstract) Any.is_equal (
other: Any[1]
): Boolean [1..1]

Value equality: return True if this and other are attached to objects considered to be equal in value.

Parameters
other

Other object for comparison.

Any.equal alias "=", "==" (
other: Any[1]
): Boolean [1..1]

Reference equality for reference types, value equality for value types.

Parameters
other

Other object for comparison.

Any.instance_of (
a_type: String[1]
): Any [1..1]

Create new instance of a type.

Any.type_of (
an_object: Any[1]
): String [1..1]

Type name of an object as a string. May include generic parameters, as in "Interval<Time>".

Any.not_equal alias "!=", "≠" (
other: Ordered[1]
): Boolean [1..1]

True if current object not equal to other. Returns not equal().

PATHABLE.parent (): PATHABLE [1..1]

Parent of this node in a compositional hierarchy.

PATHABLE.item_at_path (
a_path: String[1]
): Any

Pre: path_unique (a_path) [1..1]

The item at a path (relative to this item); only valid for unique paths, i.e. paths that resolve to a single item.

PATHABLE.items_at_path (
a_path: String[1]
): List<Any> [0..1]

List of items corresponding to a non-unique path.

PATHABLE.path_exists (
a_path: String[1]
): Boolean

Pre: not a_path.is_empty [1..1]

True if the path exists in the data with respect to the current item.

PATHABLE.path_unique (
a_path: String[1]
): Boolean

Pre: path_exists (a_path) [1..1]

True if the path corresponds to a single item in the data.

PATHABLE.path_of_item (
a_loc: PATHABLE[1]
): String [1..1]

The path to an item relative to the root of this archetyped structure.

LOCATABLE.concept (): DV_TEXT [1..1]

Clinical concept of the archetype as a whole (= derived from the archetype_node_id' of the root node)

LOCATABLE.is_archetype_root (): Boolean [1..1]

True if this node is the root of an archetyped structure.

Invariants

LOCATABLE.Links_valid: links /= Void implies not links.is_empty

LOCATABLE.Archetyped_valid: is_archetype_root xor archetype_details = Void

LOCATABLE.Archetype_node_id_valid: not archetype_node_id.is_empty

{
    "name": "EXTRACT_ITEM",
    "documentation": "Abstract parent of Extract Folder and Content types.",
    "is_abstract": true,
    "ancestors": [
        "LOCATABLE"
    ]
}
EXTRACT_ITEM

EXTRACT_FOLDER Class

  • Definition

  • Effective

  • BMM

  • UML

Class

EXTRACT_FOLDER

Description

Folder in local Folder structure in an Extract. Empty Folders are allowed.

Inherit

EXTRACT_ITEM

Attributes

Signature

Meaning

0..1

items: List<EXTRACT_ITEM>

List of Folders and content items in this Folder.

EXTRACT_FOLDER

Folder in local Folder structure in an Extract. Empty Folders are allowed.

Inherits: Any, PATHABLE, LOCATABLE, EXTRACT_ITEM

Attributes

LOCATABLE.name: DV_TEXT [1..1]

Runtime name of this fragment, used to build runtime paths. This is the term provided via a clinical application or batch process to name this EHR construct: its retention in the EHR faithfully preserves the original label by which this entry was known to end users.

LOCATABLE.archetype_node_id: String [1..1]

Design-time archetype identifier of this node taken from its generating archetype; used to build archetype paths. Always in the form of an at-code, e.g. at0005. This value enables a 'standardised' name for this node to be generated, by referring to the generating archetype local terminology.

At an archetype root point, the value of this attribute is always the stringified form of the archetype_id found in the archetype_details object.

LOCATABLE.uid: UID_BASED_ID [0..1]

Optional globally unique object identifier for root points of archetyped structures.

LOCATABLE.links: List<LINK> [0..1]

Links to other archetyped structures (data whose root object inherits from ARCHETYPED, such as ENTRY, SECTION and so on). Links may be to structures in other compositions.

LOCATABLE.archetype_details: ARCHETYPED [0..1]

Details of archetyping used on this node.

LOCATABLE.feeder_audit: FEEDER_AUDIT [0..1]

Audit trail from non-openEHR system of original commit of information forming the content of this node, or from a conversion gateway which has synthesised this node.

items: List<EXTRACT_ITEM> [0..1]

List of Folders and content items in this Folder.

Functions

(abstract) Any.is_equal (
other: Any[1]
): Boolean [1..1]

Value equality: return True if this and other are attached to objects considered to be equal in value.

Parameters
other

Other object for comparison.

Any.equal alias "=", "==" (
other: Any[1]
): Boolean [1..1]

Reference equality for reference types, value equality for value types.

Parameters
other

Other object for comparison.

Any.instance_of (
a_type: String[1]
): Any [1..1]

Create new instance of a type.

Any.type_of (
an_object: Any[1]
): String [1..1]

Type name of an object as a string. May include generic parameters, as in "Interval<Time>".

Any.not_equal alias "!=", "≠" (
other: Ordered[1]
): Boolean [1..1]

True if current object not equal to other. Returns not equal().

PATHABLE.parent (): PATHABLE [1..1]

Parent of this node in a compositional hierarchy.

PATHABLE.item_at_path (
a_path: String[1]
): Any

Pre: path_unique (a_path) [1..1]

The item at a path (relative to this item); only valid for unique paths, i.e. paths that resolve to a single item.

PATHABLE.items_at_path (
a_path: String[1]
): List<Any> [0..1]

List of items corresponding to a non-unique path.

PATHABLE.path_exists (
a_path: String[1]
): Boolean

Pre: not a_path.is_empty [1..1]

True if the path exists in the data with respect to the current item.

PATHABLE.path_unique (
a_path: String[1]
): Boolean

Pre: path_exists (a_path) [1..1]

True if the path corresponds to a single item in the data.

PATHABLE.path_of_item (
a_loc: PATHABLE[1]
): String [1..1]

The path to an item relative to the root of this archetyped structure.

LOCATABLE.concept (): DV_TEXT [1..1]

Clinical concept of the archetype as a whole (= derived from the archetype_node_id' of the root node)

LOCATABLE.is_archetype_root (): Boolean [1..1]

True if this node is the root of an archetyped structure.

Invariants

LOCATABLE.Links_valid: links /= Void implies not links.is_empty

LOCATABLE.Archetyped_valid: is_archetype_root xor archetype_details = Void

LOCATABLE.Archetype_node_id_valid: not archetype_node_id.is_empty

{
    "name": "EXTRACT_FOLDER",
    "documentation": "Folder in local Folder structure in an Extract. Empty Folders are allowed.",
    "ancestors": [
        "EXTRACT_ITEM"
    ],
    "properties": {
        "items": {
            "_type": "P_BMM_CONTAINER_PROPERTY",
            "name": "items",
            "documentation": "List of Folders and content items in this Folder.",
            "type_def": {
                "container_type": "List",
                "type": "EXTRACT_ITEM"
            },
            "cardinality": {
                "lower": 0,
                "upper_unbounded": true
            }
        }
    }
}
EXTRACT_FOLDER

EXTRACT_CONTENT_ITEM Class

  • Definition

  • Effective

  • BMM

  • UML

Class

EXTRACT_CONTENT_ITEM (abstract)

Description

Abstract model of a wrapper for one content item in an Extract, containing various meta-data. Indicates whether it was part of the primary set and what its original path was. Intended to be subtyped for wrappers of specific types of content.

Inherit

EXTRACT_ITEM

Attributes

Signature

Meaning

1..1

is_primary: Boolean

True if the content item carried in this container was part of the primary set for the Extract, i.e. not added due to link-following.

0..1

is_changed: Boolean

True if the content item carried in this container is any kind of change since last send, in repeat sending situations.

0..1

is_masked: Boolean

True if the content of this item has not been included due to insufficient access rights of requestor.

0..1

item: Any

Content object.

Invariants

Item_validity: is_masked xor item /= Void

EXTRACT_CONTENT_ITEM (abstract)

Abstract model of a wrapper for one content item in an Extract, containing various meta-data. Indicates whether it was part of the primary set and what its original path was. Intended to be subtyped for wrappers of specific types of content.

Inherits: Any, PATHABLE, LOCATABLE, EXTRACT_ITEM

Attributes

LOCATABLE.name: DV_TEXT [1..1]

Runtime name of this fragment, used to build runtime paths. This is the term provided via a clinical application or batch process to name this EHR construct: its retention in the EHR faithfully preserves the original label by which this entry was known to end users.

LOCATABLE.archetype_node_id: String [1..1]

Design-time archetype identifier of this node taken from its generating archetype; used to build archetype paths. Always in the form of an at-code, e.g. at0005. This value enables a 'standardised' name for this node to be generated, by referring to the generating archetype local terminology.

At an archetype root point, the value of this attribute is always the stringified form of the archetype_id found in the archetype_details object.

LOCATABLE.uid: UID_BASED_ID [0..1]

Optional globally unique object identifier for root points of archetyped structures.

LOCATABLE.links: List<LINK> [0..1]

Links to other archetyped structures (data whose root object inherits from ARCHETYPED, such as ENTRY, SECTION and so on). Links may be to structures in other compositions.

LOCATABLE.archetype_details: ARCHETYPED [0..1]

Details of archetyping used on this node.

LOCATABLE.feeder_audit: FEEDER_AUDIT [0..1]

Audit trail from non-openEHR system of original commit of information forming the content of this node, or from a conversion gateway which has synthesised this node.

is_primary: Boolean [1..1]

True if the content item carried in this container was part of the primary set for the Extract, i.e. not added due to link-following.

is_changed: Boolean [0..1]

True if the content item carried in this container is any kind of change since last send, in repeat sending situations.

is_masked: Boolean [0..1]

True if the content of this item has not been included due to insufficient access rights of requestor.

item: Any [0..1]

Content object.

Functions

(abstract) Any.is_equal (
other: Any[1]
): Boolean [1..1]

Value equality: return True if this and other are attached to objects considered to be equal in value.

Parameters
other

Other object for comparison.

Any.equal alias "=", "==" (
other: Any[1]
): Boolean [1..1]

Reference equality for reference types, value equality for value types.

Parameters
other

Other object for comparison.

Any.instance_of (
a_type: String[1]
): Any [1..1]

Create new instance of a type.

Any.type_of (
an_object: Any[1]
): String [1..1]

Type name of an object as a string. May include generic parameters, as in "Interval<Time>".

Any.not_equal alias "!=", "≠" (
other: Ordered[1]
): Boolean [1..1]

True if current object not equal to other. Returns not equal().

PATHABLE.parent (): PATHABLE [1..1]

Parent of this node in a compositional hierarchy.

PATHABLE.item_at_path (
a_path: String[1]
): Any

Pre: path_unique (a_path) [1..1]

The item at a path (relative to this item); only valid for unique paths, i.e. paths that resolve to a single item.

PATHABLE.items_at_path (
a_path: String[1]
): List<Any> [0..1]

List of items corresponding to a non-unique path.

PATHABLE.path_exists (
a_path: String[1]
): Boolean

Pre: not a_path.is_empty [1..1]

True if the path exists in the data with respect to the current item.

PATHABLE.path_unique (
a_path: String[1]
): Boolean

Pre: path_exists (a_path) [1..1]

True if the path corresponds to a single item in the data.

PATHABLE.path_of_item (
a_loc: PATHABLE[1]
): String [1..1]

The path to an item relative to the root of this archetyped structure.

LOCATABLE.concept (): DV_TEXT [1..1]

Clinical concept of the archetype as a whole (= derived from the archetype_node_id' of the root node)

LOCATABLE.is_archetype_root (): Boolean [1..1]

True if this node is the root of an archetyped structure.

Invariants

LOCATABLE.Links_valid: links /= Void implies not links.is_empty

LOCATABLE.Archetyped_valid: is_archetype_root xor archetype_details = Void

LOCATABLE.Archetype_node_id_valid: not archetype_node_id.is_empty

Item_validity: is_masked xor item /= Void

{
    "name": "EXTRACT_CONTENT_ITEM",
    "documentation": "Abstract model of a wrapper for one content item in an Extract, containing various meta-data. Indicates whether it was part of the primary set and what its original path was. Intended to be subtyped for wrappers of specific types of content.",
    "is_abstract": true,
    "ancestors": [
        "EXTRACT_ITEM"
    ],
    "properties": {
        "is_primary": {
            "_type": "P_BMM_SINGLE_PROPERTY",
            "name": "is_primary",
            "documentation": "True if the content item carried in this container was part of the primary set for the Extract, i.e. not added due to link-following.",
            "is_mandatory": true,
            "type": "Boolean"
        },
        "is_changed": {
            "_type": "P_BMM_SINGLE_PROPERTY",
            "name": "is_changed",
            "documentation": "True if the content item carried in this container is any kind of change since last send, in repeat sending situations.",
            "type": "Boolean"
        },
        "is_masked": {
            "_type": "P_BMM_SINGLE_PROPERTY",
            "name": "is_masked",
            "documentation": "True if the content of this item has not been included due to insufficient access rights of requestor.",
            "type": "Boolean"
        },
        "item": {
            "_type": "P_BMM_SINGLE_PROPERTY",
            "name": "item",
            "documentation": "Content object.",
            "type": "Any"
        }
    },
    "invariants": {
        "Item_validity": "is_masked xor item /= Void"
    }
}
EXTRACT_CONTENT_ITEM

EXTRACT_PARTICIPATION Class

  • Definition

  • Effective

  • BMM

  • UML

Class

EXTRACT_PARTICIPATION

Description

Model of a participation of a Party (any Actor or Role) in an activity. Used to represent any participation of a Party in some activity, which is not explicitly in the model, e.g. assisting nurse. Can be used to record past or future participations.

Should not be used in place of more permanent relationships between demographic entities.

Attributes

Signature

Meaning

0..1

time: DV_INTERVAL<DV_DATE_TIME>

The time interval during which the participation took place, if it is used in an observational context (i.e. recording facts about the past); or the intended time interval of the participation when used in future contexts, such as EHR Instructions.

1..1

function: DV_TEXT

The function of the Party in this participation (note that a given party might participate in more than one way in a particular activity). This attribute should be coded, but cannot be limited to the HL7v3:ParticipationFunction vocabulary, since it is too limited and hospital-oriented.

0..1

mode: DV_CODED_TEXT

The mode of the performer / activity interaction, e.g. present, by telephone, by email etc.

1..1

performer: String

Uid of demographic entity within Extract who performed this participation.

Invariants

Function_valid: function /= Void and then function.generating_type.is_equal (“DV_CODED_TEXT”) implies terminology (Terminology_id_openehr).has_code_for_group_id (Group_id_participation_function, function.defining_code)

Mode_valid: mode /= Void and terminology (Terminology_id_openehr).has_code_for_group_id (Group_id_participation_mode, mode.defining_code)

EXTRACT_PARTICIPATION

Model of a participation of a Party (any Actor or Role) in an activity. Used to represent any participation of a Party in some activity, which is not explicitly in the model, e.g. assisting nurse. Can be used to record past or future participations.

Should not be used in place of more permanent relationships between demographic entities.

Attributes

time: DV_INTERVAL<DV_DATE_TIME> [0..1]

The time interval during which the participation took place, if it is used in an observational context (i.e. recording facts about the past); or the intended time interval of the participation when used in future contexts, such as EHR Instructions.

function: DV_TEXT [1..1]

The function of the Party in this participation (note that a given party might participate in more than one way in a particular activity). This attribute should be coded, but cannot be limited to the HL7v3:ParticipationFunction vocabulary, since it is too limited and hospital-oriented.

mode: DV_CODED_TEXT [0..1]

The mode of the performer / activity interaction, e.g. present, by telephone, by email etc.

performer: String [1..1]

Uid of demographic entity within Extract who performed this participation.

Invariants

Function_valid: function /= Void and then function.generating_type.is_equal (“DV_CODED_TEXT”) implies terminology (Terminology_id_openehr).has_code_for_group_id (Group_id_participation_function, function.defining_code)

Mode_valid: mode /= Void and terminology (Terminology_id_openehr).has_code_for_group_id (Group_id_participation_mode, mode.defining_code)

{
    "name": "EXTRACT_PARTICIPATION",
    "documentation": "Model of a participation of a Party (any Actor or Role) in an activity.  Used to represent any participation of a Party in some activity, which is not  explicitly in the model, e.g. assisting nurse. Can be used to record past or  future participations.\n\nShould not be used in place of more permanent relationships between demographic entities. ",
    "properties": {
        "time": {
            "_type": "P_BMM_GENERIC_PROPERTY",
            "name": "time",
            "documentation": "The time interval during which the participation took place, if it is used in an observational context (i.e. recording facts about the past); or the intended time interval of the participation when used in future contexts, such as EHR Instructions. ",
            "type_def": {
                "root_type": "DV_INTERVAL",
                "generic_parameters": [
                    "DV_DATE_TIME"
                ]
            }
        },
        "function": {
            "_type": "P_BMM_SINGLE_PROPERTY",
            "name": "function",
            "documentation": "The function of the Party in this participation (note that a given party might participate in more than one way in a particular activity). This attribute should be coded, but cannot be limited to the HL7v3:ParticipationFunction vocabulary, since it is too limited and hospital-oriented. ",
            "is_mandatory": true,
            "type": "DV_TEXT"
        },
        "mode": {
            "_type": "P_BMM_SINGLE_PROPERTY",
            "name": "mode",
            "documentation": "The mode of the performer / activity interaction, e.g. present, by telephone, by email etc. ",
            "type": "DV_CODED_TEXT"
        },
        "performer": {
            "_type": "P_BMM_SINGLE_PROPERTY",
            "name": "performer",
            "documentation": "Uid of demographic entity within Extract who performed this participation.",
            "is_mandatory": true,
            "type": "String"
        }
    },
    "invariants": {
        "Function_valid": "function /= Void and then function.generating_type.is_equal (“DV_CODED_TEXT”) implies terminology (Terminology_id_openehr).has_code_for_group_id (Group_id_participation_function, function.defining_code)",
        "Mode_valid": "mode /= Void and terminology (Terminology_id_openehr).has_code_for_group_id (Group_id_participation_mode, mode.defining_code)"
    }
}
EXTRACT_PARTICIPATION