# Logical Record Architecture for Health and Social Care
## Discharge Summary Release 0.02

Contents
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: ED
This class is the abstract generalisation of classes whose instances are used to model data that has internal structure defined outside of the scope of the LRA. Encapsulated data includes binary objects such as word processed documents and multimedia data as well as plain and marked-up text intended for human interpretation or machine processing outside the scope of the LRA. ## Specializes ## ANY ## Attributes
Name | Data type | Occurs | Description
--- | --- | --- | ---
charset | CharacterSet | 0..1 | in ISO 21090 this is defined as the charset of the encapsulation of data and not of the data itself. Data that can define its own charset (such as binary encoded XML for example) may do so. This attribute should not be interpreted as the charset of the canonical form of the data, which will be derived from its canonical content based on the underlying media type. This attribute is implemented as described in ISO 21090
compression | Compression | 0..1 | This is implemented as described in ISO 21090.
data | Binary | 0..1 | This is implemented as described in ISO 21090.
description | ST | 0..1 | Is optional in the LRA. It is implemented within ISO 21090 as an American disability act requirement and MAY be undefined within the LRA. Logic within the LRA MUST NOT depend on the value of description.
integrityCheck | Binary | 0..1 | This is implemented as described in ISO 21090.
integrityCheckAlgorithm | IntegrityCheckAlgorithm | 0..1 | This is implemented as described in ISO 21090.
language | LraHumanLanguage | 0..1 | This is implemented as described in ISO 21090.
mediaType | MediaType | 0..1 | This is implemented as described in ISO 21090.
reference | TEL.URL | 0..1 | This is implemented as described in ISO 21090.
thumbnail | ED | 0..1 | Is deprecated in the LRA. It is optional within ISO 21090 and MUST be undefined within the LRA. Logic within the LRA MUST NOT depend on the value of thumbnail.
translation | ED | 1..1 | This attribute is deprecated in the LRA. It is optional within ISO 21090 and MUST be undefined within the LRA. Logic within the LRA MUST NOT depend on the value of translation.
value | String | 0..1 | This is implemented as described in ISO 21090.
xml | XML | 0..1 | In the instance of primary XML (or XHTML) data the ED representation is an encapsulated encoding of the XML, which may have a different character set to the original. The actual canonical data xml may be rendered inline in the ED.xml, but might not. If not, then the canonical representation may have to be derived to obtain the actual uncompressed xml. This is implemented as described in ISO 21090
## Constraints
Type | Name | Specification
--- | --- | ---
compression only on binary | Invariant | inv: compression.oclIsDefined implies data.oclIsDefined
content is required if not null | Invariant | inv: isNotNull implies hasValue
integrityCheckAlgorithm required | Invariant | inv: integrityCheck.oclIsDefined implies integrityCheckAlgorithm.oclIsDefined
mediaType cannot be null | Invariant | inv: isNotNull implies mediaType.oclIsDefined
no charset for value or xml | Invariant | inv: (value.oclIsDefined or xml.oclIsDefined) implies charset.oclIsUndefined
no charset if null | Invariant | inv: isNull implies charset.oclIsUndefined
no compression if null | Invariant | inv: isNull implies compression.oclIsUndefined
no data if null | Invariant | inv: isNull implies data.oclIsUndefined
No History or Update Mode | Invariant | inv: noUpdateOrHistory(reference) and noUpdateOrHistory(thumbnail)
no integrityCheck if null | Invariant | inv: isNull implies integrityCheck.oclIsUndefined
no integrityCheckAlgorithm if null | Invariant | inv: isNull implies integrityCheckAlgorithm.oclIsUndefined
no language if null | Invariant | inv: isNull implies language.oclIsUndefined
no mediaType if null | Invariant | inv: isNull implies mediaType.oclIsUndefined
no nested translations | Invariant | inv: translation->forAll(t | t.translation->isEmpty) -- nullFlavor invariants
no reference if null | Invariant | inv: isNull implies reference.oclIsUndefined
no thumbnail if null | Invariant | inv: isNull implies thumbnail.oclIsUndefined
no thumbnail in LRA | LRA Invariant | inv: thumbnail.oclIsUndefined
no translation if null | Invariant | inv: isNull implies translation->isEmpty
no translations in the LRA | LRA Invariant | inv: translation->isEmpty
no value if null | Invariant | inv: isNull implies value.oclIsUndefined
no xml if null | Invariant | inv: isNull implies xml.oclIsUndefined
only one of value, data, xml | Invariant | inv: value.oclIsDefined implies (data.oclIsUndefined and xml.oclIsUndefined) and data.oclIsDefined implies (value.oclIsUndefined and xml.oclIsUndefined) and xml.oclIsDefined implies (value.oclIsUndefined and data.oclIsUndefined)
pdf not ED.Doc in LRA | LRA Invariant | inv: mediaType = "application/pdf" implies flavourID.oclIsUndefined
thumbnails do not have thumbnails | Invariant | inv: thumbnail.isNotNull implies thumbnail.thumbnail.oclIsUndefined
thumbnails do not use reference | Invariant | inv: thumbnail.isNotNull implies not thumbnail.hasReference
unnamed constraint | Invariant | def: hasValue : Boolean = value.oclIsDefined or data.oclIsDefined or xml.oclIsDefined or hasReference
value implies mediaType is text/plain | Invariant | inv: value.oclIsDefined implies mediaType = 'text/plain'