Contents
1 Rationale
CDA provides a mechanism for linking between coded entries and supporting
text through use of the originalText/reference/@value attribute which has a
datatype of URL. The common format for the value of this attribute is to
prefix a # before the identifier, thus forming a relative URL. During the
CDA implementation for CCN404 an issue with the use of this mechanism was
found with the models.
The problem was found to be with the additional constraints added to the CFH
schema for URL. The CDA schema (and the HL7 default one) is flexible to use
anyURI to represent the URL. The MIM version of URL was previously modified
to enforce constraints for domains within the MIM to exclude the use of
relative URLs since these can become broken if fragments of the XML
instance are processed independently.
CDA states that the datatypes specification included with it in the
normative release should be used for CDA documents. However, domains such
as PDS and Medications Management require the tight version to be used to
ensure conformant versions of telecoms addresses etc and these are already
live. To overcome this problem, three more relaxed specialisations of the
base HL7 datatypes have been created to cover:
- Concept Descriptor (CD)
- Coded Value (CV)
- Coded with Equivalents (CE)
Though these are referred to as
specialisations, there are in fact generalisations.
2 Specialisations
The specialisations all allow the above coded datatypes to contain a loose
URL in the value attribute of originalText/reference. The specialisation
is applied to the coded element which within it lists the specialisation on URL.
The specialisations on the coded elements are:
- Concept Descriptor with CDA URL
- Coded Value with CDA URL
- Coded with Equivalents with CDA URL
The following sections are extracts from the MIM
Datatypes Implementation Manual Version 3.5.
2.1 Concept Descriptor with CDA URL
Valid constraint of HL7 data types: CD.
This flavour is used where the original
encoding uses the approved coding scheme for a message attribute but where there
may be some text entered or selected by the user either by direct entry or by
reference that is not identical to the display text or rubric associated with
the code.
1 code |
The primary code
value originally used to encode a statement. |
1
displayName |
The text or rubric
associated with the code. |
1 codeSystem
|
An OID identifying
the coding system from which the code is derived. |
0
originalText |
The full text
associated with this code as selected, typed or seen by the author of
this statement. This may contain additional information that is not
completely coded. |
Examples:
<!--
To indicate a code with the original text upon which the code was based for a
"code" attribute of an observation class
-->
<code
code="195967001"
codeSystem="2.16.840.1.113883.2.1.3.2.4.15"
displayName="asthma">
<originalText>
<reference
value="#a1"/>
</originalText>
</code>
2.2 Coded Value with CDA URL
Valid constraint of HL7 data types: CV.
This flavour is used where the original
encoding uses the approved coding scheme for a message attribute but where there
may be some text entered or selected by the user either by direct entry or by
reference that is not identical to the display text or rubric associated with
the code.
1 code |
The primary code value
originally used to encode a statement. |
1
displayName
|
The text or rubric
associated with the code. |
1 codeSystem
|
An OID identifying the coding
system from which the code is derived. |
0
originalText
|
The full text associated
with this code as selected, typed or seen by the author of this statement. This
may contain additional information that is not completely coded.
|
Examples:
<!-- To indicate a code with the original text upon
which the code was based for a "code" attribute of an observation
class -->
<code code="195967001" codeSystem="2.16.840.1.113883.2.1.3.2.4.15" displayName="asthma">
<originalText>
<reference
value="#a1"/>
</originalText>
</code>
2.3 Coded with
Equivalents with CDA URL
Valid constraint of HL7 data types: CE .
This flavour is used where the original
encoding uses the approved coding scheme for a message attribute but where there
may be some text entered or selected by the user either by direct entry or by
reference that is not identical to the display text or rubric associated with
the code.
1 code |
The primary code value
originally used to encode a statement. |
1
displayName
|
The text or rubric
associated with the code. |
1 codeSystem
|
An OID identifying the coding
system from which the code is derived. |
0
originalText
|
The full text associated
with this code as selected, typed or seen by the author of this statement. This
may contain additional information that is not completely coded.
|
Examples:
<!-- To indicate a code with the original text upon
which the code was based for a "code" attribute of an observation
class -->
<code code="195967001" codeSystem="2.16.840.1.113883.2.1.3.2.4.15" displayName="asthma">
<originalText>
<reference
value="#a1"/>
</originalText>
</code>
3 Schema Fragments
The following sections contain fragments taken
from the datatypeflavours.xsd file.
3.1 Concept Descriptor
with CDA URL Schema
<xs:complexType
name="CD.NPfIT.CDA.Url">
<xs:complexContent>
<xs:extension
base="ANY">
<xs:sequence>
<xs:element
name="originalText"
type="Cda.NPfIT.ED"
minOccurs="0"/>
<xs:element
name="qualifier"
type="CR"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element
name="group"
minOccurs="0"
maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element
name="qualifier"
type="CR"
maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element
name="translation"
type="CD"
minOccurs="0"
maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute
name="code"
type="cs"
use="optional"/>
<xs:attribute
name="codeSystem"
type="uid"
use="optional"/>
<xs:attribute
name="codeSystemName"
type="st"
use="optional"/>
<xs:attribute
name="codeSystemVersion"
type="st"
use="optional"/>
<xs:attribute
name="displayName"
type="st"
use="optional"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
3.1 Coded Value with CDA URL Schema
<xs:complexType
name="CV.NPfIT.CDA.Url">
<xs:complexContent>
<xs:restriction
base="CE.NPfIT.CDA.Url">
<xs:sequence>
<xs:element
name="originalText"
type="Cda.NPfIT.ED"
minOccurs="0"/>
<xs:element
name="translation"
type="CD"
minOccurs="0"
maxOccurs="0"/>
</xs:sequence>
<xs:attribute
name="code"
type="cs"
use="optional"/>
<xs:attribute
name="codeSystem"
type="uid"
use="optional"/>
<xs:attribute
name="codeSystemName"
type="st"
use="optional"/>
<xs:attribute
name="codeSystemVersion"
type="st"
use="optional"/>
<xs:attribute
name="displayName"
type="st"
use="optional"/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
3.3 Coded with Equivalents with CDA URL
<xs:complexType
name="CE.NPfIT.CDA.Url">
<xs:complexContent>
<xs:restriction
base="CD.NPfIT.CDA.Url">
<xs:sequence>
<xs:element
name="qualifier"
type="CR"
minOccurs="0"
maxOccurs="0"/>
<xs:element
name="originalText"
type="Cda.NPfIT.ED"
minOccurs="0"/>
<xs:element
name="translation"
type="CD"
minOccurs="0"
maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute
name="code"
type="cs"
use="optional"/>
<xs:attribute
name="codeSystem"
type="uid"
use="optional"/>
<xs:attribute
name="codeSystemName"
type="st"
use="optional"/>
<xs:attribute
name="codeSystemVersion"
type="st"
use="optional"/>
<xs:attribute
name="displayName"
type="st"
use="optional"/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>