CTS2/doc/CTS2 1 1 Release

From HL7Wiki
Jump to navigation Jump to search

CTS2 1.1 Release

Version 1.1 of the CTS2 Standard corrects a number of errors and omissions in the 1.0 specification. It makes a couple of attributes that were required in the 1.0 Release optional and adds the ability to supply an optional designation with any URIAndEntityName.

Description of Changes

The changes described below represent substantive changes in the specifications. Simple errors such incorrect return and attribute types, documentation errors, etc. are not included, as they should have no direct impact on running systems. See the CTS2 github site for a complete list of all changes. Note that the headings below are linked to the issue that generated them.

CTS2 Specification Namespace

Description
The base URI for the CTS2 specification in the 1.0 release was http://schema.omg.org/spec/CTS2/1.0. This did not follow the official OMG policy, but was allowed by the OMG Architecture Board under the condition that it be corrected in the next revision. The new URI base is http://www.omg.org/spec/1.1.

Impact
CTS2 1.0 XML will not be readable by validating XML parsers based on the 1.1 specification and visa-versa. As an example, the heading for a ValueSetCatalogEntryMsg in CTS2 1.0 looks like:

<ValueSetCatalogEntryMsg
    xmlns="http://schema.omg.org/spec/CTS2/1.0/ValueSet"
    xmlns:core="http://schema.omg.org/spec/CTS2/1.0/Core"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://schema.omg.org/spec/CTS2/1.0/ValueSet 
                        http://www.omg.org/spec/cts2/201206/valueset/ValueSet.xsd">
   <heading xmlns="http://schema.omg.org/spec/CTS2/1.0/Core">
     . . .

and in 1.1 like:

<ValueSetCatalogEntryMsg 
    xmlns="http://www.omg.org/spec/CTS2/1.1/ValueSet"
    xmlns:core="http://www.omg.org/spec/CTS2/1.1/Core"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://www.omg.org/spec/CTS2/1.1/ValueSet
                       http://informatics.mayo.edu/cts2/spec/CTS2/1.1/valueset/ValueSet.xsd">
   <heading xmlns="http://www.omg.org/spec/CTS2/1.1/Core">
      . . .


Conversion
CTS2ConversionUtils.xsl contains the XSLT 1.0 code to support bidirectional transform between the content.

Add optional associationID to Association Directory

Description

The Association Read service depends on the presence of an association identifier. The CTS2 1.0 association directory had no slot to record this information.

Impact

associationID needs to be removed when converting from CTS2 1.1 to CTS2 1.0

Conversion

[1] Issue #118 contains the transformation that removes the associationID if present.

Solution

The following XSLT snippet describes the necessary conversion from 1.1 to 1.0:

<xsl:template match="association1.1:entry">
    <xsl:choose>
        <xsl:when test="parent::association1.1:AssociationGraph"/>
        <xsl:otherwise>
            <xsl:element name="{local-name()}" namespace="{$nsmap/association}">
                <xsl:choose>
                    <xsl:when test="parent::association1.1:AssociationDirectory">
                        <xsl:apply-templates select="@*[name() != 'associationID']"/>
                    </xsl:when>
                    <xsl:otherwise>
                         <xsl:apply-templates select="@*"/>
                    </xsl:otherwise>
                 </xsl:choose>
             <xsl:apply-templates select="node() | comment() | processing-instruction()"/>
         </xsl:element>
         </xsl:otherwise>
    </xsl:choose>
</xsl:template>

Make associationID optional

Description

It is frequently the case that there is no useful associationID and it has been made optional in CTS2 1.1.

Impact

A synthetic associationID must be generated when converting from 1.1 to 1.0

Solution

See the section entitled "Issue #119" in CTS211to10.xsl

Include depth indicator in AssociationGraph

Description

While computable from the graph contents, the presence of a depth indicator is handy. Note that the XML Schema already included a depth indicator so this is strictly a change to the UML model.

Impact

This does not impact XML Schema based exchange.

XML Schema for CodeSystemCatalogEntry is missing hasOntologyLanguage and includes elements

Description

These attributes were erroneously omitted in the XML schema.

Impact

A conversion from CTS2 1.1 to CTS2 1.0 will have to remove these elements.

Solution

The following XSLT snippets implements this solution.

    <xsl:template match="codesystem1.1:hasOntologyLanguage"/>
    <xsl:template match="codesystem1.1:includes"/>

[2]