# 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: SC
In ISO 21090 the SC class is closely related to the CD class. Differences are highlighted there, but within the LRA the usage of the SC class is restricted to circumstances where a LRA conformant system sends information that is part of an enumerated list, where that enumeration is local to the sending system. The enumeration MUST be represented by the controlled string held in the value attribute and MAY be associated with a code from a local (to the sending system) coding scheme. The SC class MUST NOT be used to convey coded information using SNOMED CT, or any other globally controlled code set. Logic within the LRA MUST NOT rely on the coded value of SC. The SC.code attribute MUST NOT be used to represent document type coding, as such document strings MUST be represented as ED.DOC. Document type encoding is not performed at data type level. The use of SC as a criteria for conformance within the LRA specification is to be avoided, its use is optional within the LRA as an implementation alternative for ST where a system supplier deems it useful for internal processes. It may possibly be used so a conformant system MUST be able to interpret the SC.value attribute of the data type. This is implemented as described in ISO 21090. ## Specializes ## ST ## Attributes
Name | Data type | Occurs | Description
--- | --- | --- | ---
code | CD | 0..1 | In the use of the SC datatype as described above there are specific constraints that must be applied to the CD value of the SC.code attribute. In ISO 21090 there is already a constraint to have no originalText attribute. In the LRA the SC.code MUST not contain source mappings, the SC.code.codeSystemName MUST provide a identifier as a string consisting of a URL to a maintained accessible terminology service. The SC.code.codeSystemVersion and SC.code.code strings must act as extensions to that URL to derive the specific value as specified in SC.Value (e.g. SC.code.codeSystemName = â€œhttp://some.ehr.manufacturer/vocabserver/somevocabulary/â€ SC.code.codeSystemVersion = â€œv1â€, SC.code.code = â€œCode1234â€. Then the URI â€œhttp://some.ehr.manufacturer/vocabserver/somevocabulary/v1#Code1234â€ MUST resolve to SC.Value. - see http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#section-URI-Vocabulary for further examples.). At a most basic level this can be an stable HTML page which defines anchored elements for every entry in the local terminology.
## Constraints
Type | Name | Specification
--- | --- | ---
local codeset must provide URI in LRA | LRA Invariant | inv: code.codeSystemName.concat(code.codeSystemVersion.concat('#'.concat(code.code))).matches("(([a-zA-Z][0-9a-zA-Z+\-\.]*:)?/{0,2}[0-9a-zA-Z;/?:@&=+$\.\-_!~*'()%]+)?(#[0-9a-zA-Z;/?:@&=+$\.\-_!~*'()%]+)?")
no code if no value | Invariant | inv: code.isNotNull implies isNotNull
no mappings for local codes in LRA | LRA Invariant | inv:code.isNotNull implies code.source.oclIsUndefined
no originalText | Invariant | inv: code.isNotNull implies code.originalText.isNull
no updateMode or History on SC attributes | Invariant | inv: noUpdateOrHistory(code)