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:

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:

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>