{scrollbar:icons=false}

h1. {page-info:title}

There are some pertinent questions terminology users are asking about CTS2 as it relates to available terminology servers. As you will see, this guide addresses these important questions in an attempt to steer users in the proper direction when they need to choose terminology services. If there are additional CTS2 areas where guidance would help, please let us know using the [General VKC forums|https://cabig-kc.nci.nih.gov/Vocab/forums/viewforum.php?f=12].

{panel:title=Contents of this Page}
{toc:minLevel=2}
{panel}

h2. What is CTS2?

Developed through the Healthcare Services Specification Project (HSSP), Common Terminology Services Release 2 (CTS2) has been created as a standard as a shared semantic model and application programming interface (API) for the query, interchange and update of terminological content. As an API specification, CTS2 is a blueprint for building and using software which enables interoperability between CTS2 clients and services.

h2. How is CTS2 important in vocabulary management?

Structured terminologies have some common ‘resources’ such as Code Systems, Domains, and Value Sets, and access to these resources is enabled usually through a service interface. CTS2 strives to provide a consistent representation and flexible service interfaces to structured terminologies. This enables us to accurately represent and manage a wide variety of vocabularies and other lexically-based resources in a common way.

The CTS2 Platform Independent Model (PIM) provides standard service information model and a computational model. The information model specifies the structural definition, attributes and associations of these common terminology ‘resources’ and the computational model specifies the service descriptions and interfaces needed to access and maintain structured terminologies.

Even though the detailed description of the CTS2 PIM specifications can be found on the [OMG site|http://www.omg.org/spec/CTS2/1.0/Beta1/],  the following tables provide a concise look at its structure. CTS2  organizes resources in terms of coding schemes, entities and value sets  and provides various functional areas to access these resources using  CTS2 modules and services.

!cts_svc.png|alt="Depiction of the core model and domains of CTS2",border=1,width=800,align=center!

h2. Where can I learn more about CTS2? Are there some existing implementations or examples available?

This page helps with the choices one must make in regards to terminology services revolving around LexEVS and CTS2. In answer to the question, you may look here for other information on the VKC:

* [CTS2 In Action|Common Terminology Services Release 2 (CTS2) In Action] \- Uses of CTS2 already.
* [LexEVS:LexEVS 6.0 CTS2 API] \- The pre-CTS2 APIs as they exist in LexEVS 6.0.
* [LexEVS:Mapping CTS2 API to LexEVS 6.0 API] \- Mapping the CTS2 APIs to what is available in the LexEVS 6.0.

The CTS2 specification allows (and encourages) modular implementation of its model components and service interfaces. A CTS2 service instance (a particular implementation of the CTS2 specifications) may choose to implement only a subset of the model and services that it needs.

The CTS2 development team has a [home site|http://informatics.mayo.edu/cts2/index.php/Main_Page] built around the implementation and use of CTS2. They also provide a developer's toolkit called [CTS2 Development Framework|http://informatics.mayo.edu/cts2/framework/] for rapidly building CTS2 compliant applications.

h2. I was planning to use LexEVS to manage my ontologies and terms? Should I switch to CTS2 based implementation? What is the difference?

[LexEVS 6.0|LexEVS 6.0] has been very close to functionally equivalent to CTS2 specifications. Note that the LexEVS 6.0 APIs are _not_ fully CTS2 compliant (refer to [LexEVS 6.0 CTS2 API]) but offer identical functionality as compared to most CTS2 services. The following table compares the functions that CTS2 specifies and whether it is available in the LexEVS 6.0 release. Please note that there are additional functions LexEVS 6.0 makes available in addition to what are listed here, but they are not listed since they do not coordinate with CTS2. To find more about those, please refer to the [LexEVS:LexEVS 6.0 Documentation].

|| HL7 SFM Section || Functions / Considerations || CTS2 Availability || LexEVS 6.0 Availability ||
|| 6.1 || Administration Operations || Used to categorize functions || Used to categorize functions \\ ||
| 6.1.1 | Import Code System | Available | Available |
| 6.1.2 | Import Code System Revision | Available | Available |
| 6.1.3 | Import Value Set Version | Available | Available |
| 6.1.4 | Import Association Version | Available | Available |
| 6.1.5 | Export Association | Available | Available |
| 6.1.6 | Export Code System Content | Available | Available |
| 6.1.7 | Change Code System Status | Available | Available |
| 6.1.8 | Register for Notification | Not Available | Available |
| 6.1.9 | Update Notification Registration | Not Available | Available |
| 6.1.10 | Update Notification Registration   Status | Not Available | Available |
|| 6.2 || Search / Access Operations || Used to categorize functions || Used to categorize functions ||
|| 6.2.1 || Code System Search / Access || All functions in category are available || All functions in category are available ||
| 6.2.1.1 | List Code Systems | Available | Available |
| 6.2.1.2 | Return Code System Details | Available | Available |
| 6.2.1.3 | List Code System Concepts | Available | Available |
| 6.2.1.4 | Return Concept Details | Available | Available |
| 6.2.1.5 | List Association Types | Available | Available |
| 6.2.1.6 | Return Association Type Details | Available | Available |
|| 6.2.2 || Value Set Search / Access || All functions in category are available || All functions in category are available ||
| 6.2.2.1 | List Value Sets | Available | Available |
| 6.2.2.2 | Return Value Set Details | Available | Available |
| 6.2.2.3 | List Value Set Contents (Expand   value set) | Available | Available |
| 6.2.2.4 | Check Value Set Subsumption | Available | Available |
| 6.2.2.5 | Check Concept Value Set Membership | Available | Available |
|| 6.2.3 || Concept Domain and Usage Context   Search / Access || All functions in category are available || All functions in category are available ||
| 6.2.3.1 | List Concept Domains | Available | Available |
| 6.2.3.2 | Return Concept Domain Details | Available | Available |
| 6.2.3.3 | List Usage Contexts | Available | Available |
| 6.2.3.4 | Return Usage Context Details | Available | Available |
| 6.2.3.5 | List Concept Domain Bindings | Available | Available |
| 6.2.3.5.1 | Check Concept to Concept Domain   Association | Available | Available |
|| 6.2.4 || Association related queries || All functions in category are available || All functions in category are available ||
| 6.2.4.1 | List Associations | Available | Available |
| 6.2.4.2 | Determine Transitive Concept   Relationship | Available | Available |
| 6.2.4.3 | Compute Subsumption Relationship | Available | Available |
| 6.2.4.4 | Return Association Details | Available | Available |
|| 6.3 || Authoring/Curation Operations || Used to categorize functions \\ || Used to categorize functions ||
|| 6.3.1 || Code System Authoring/Curation || All functions in category are available || All functions in category are available ||
| 6.3.1.1 | Create Code System | Available | Available |
| 6.3.1.2 | Maintain Code System Version | Available | Available |
| 6.3.1.3 | Update Code System Version Status | Available | Available |
| 6.3.1.4 | Create Code System Supplement | Available | Available |
| 6.3.1.5 | Maintain Code System Supplement | Available | Available |
| 6.3.1.6 | Create Concept | Available | Available |
| 6.3.1.7 | Maintain Concept | Available | Available |
| 6.3.1.8 | Update Concept Status | Available | Available |
| 6.3.1.9 | Create Association Type | Available | Available |
| 6.3.1.10 | Maintain Association Type | Available | Available |
|| 6.3.2 || Value Set Authoring/Curation || All functions in category are available || All functions in category are available ||
| 6.3.2.1 | Create Value Set | Available | Available |
| 6.3.2.2 | Maintain Value Set | Available | Available |
| 6.3.2.3 | Update Value Set Status | Available | Available |
|| 6.3.3 || Concept Domain and Usage Context Authoring/Curation || All functions in category are available || All functions in category are available ||
| 6.3.3.1 | Create Concept Domain | Available | Available |
| 6.3.3.2 | Maintain Concept Domain | Available | Available |
| 6.3.3.3 | Create Usage Context | Available | Available |
| 6.3.3.4 | Maintain Usage Context | Available | Available |
|| 6.3.4 || Association Authoring Operations || Some functions in category are available || Some functions in category are available ||
| 6.3.4.1 | Update Association Status | Available | Available |
| 6.3.4.2 | Create Association | Available | Available |
| 6.3.4.3 | Create Lexical Association between   Coded Concepts | Available | Available |
| 6.3.4.4 | Create Rules Based Association   between Coded Concepts | Not Available | Not Available |
\\
{scrollbar:icons=false}