Logical Record Architecture for Health and Social Care

Discharge Summary Release 0.02

The content of this release is not comprehensive and is not fully validated and must not be used in live system implementations.

Reference Model Class: ELEMENTdomainModel

A structural model artefact representing a domain-level realization of one of:

  • Reference Model class lra::technical::en13606::extract::UNBOUND_DATA_ELEMENT; or
  • any concrete specialisation of Reference Model class lra::technical::en13606::extract::BOUND_DATA_ELEMENT.

Specializes

LraTechnicalModelArtefact

Constraints

Type Name Specification
Any contained instance is either a DomainModelClass or a DomainComponentRelationship. LRA Invariant inv: self.packagedElement->forAll(Element: e | e.oclIsTypeOf(DomainModelClass) or e.oclIsTypeOf(DomainComponentRelationship))
Each DomainComponentRelationship instance has a minimum of one owned end (i.e. the "subject" relationship) in which the type of every instance is owned by the containing package LRA Invariant inv: let elements: Sequence(Element) = self.packagedElement->select(Element: e | e.oclAsType(DomainModelClass).referenceClass.qualifiedName = ("lra::technical::en13606::extract::FINDING_OBSERVATION_ELEMENT" or "lra::technical::en13606::extract::PROPERTY_OBSERVATION_ELEMENT" or "lra::technical::en13606::extract::GENERAL_ACTIVITY_ELEMENT" or "lra::technical::en13606::extract::MATERIAL_ACTIVITY_ELEMENT" or "lra::technical::en13606::extract::INVESTIGATION_ACTIVITY_ELEMENT" or "lra::technical::en13606::extract::UNBOUND_DATA_ELEMENT")) in let relationships: Sequence(Element) = self.packagedElement->select(Element: e | e.oclIsTypeOf(DomainComponentRelationship)) in relationships->forAll(e: Element | e.oclAsType(DomainComponentRelationship).ownedEnd->exists(p: Property | elements->includesAll(p.oclAsType(Slot).instance->flatten())))
Instance contains one DomainModelClass instance of kind ELEMENT LRA Invariant inv: self.packagedElement->select(Element: e | e.oclIsTypeOf(DomainModelClass))->size() = 1 and self.packagedElement->select(Element: e | e.oclAsType(DomainModelClass).referenceClass.qualifiedName = ("lra::technical::en13606::extract::FINDING_OBSERVATION_ELEMENT" or "lra::technical::en13606::extract::PROPERTY_OBSERVATION_ELEMENT" or "lra::technical::en13606::extract::GENERAL_ACTIVITY_ELEMENT" or "lra::technical::en13606::extract::MATERIAL_ACTIVITY_ELEMENT" or "lra::technical::en13606::extract::INVESTIGATION_ACTIVITY_ELEMENT" or "lra::technical::en13606::extract::UNBOUND_DATA_ELEMENT"))->size() = 1
Instance contains zero or more DomainComponentRelationship instances LRA Invariant inv: self.packagedElement->select(Element: e | e.oclAsType(DomainComponentRelationship))->size() >= 0

Reference Model Type