There are some pertinent questions terminology users are asking about CTS2 as it relates to available terminology servers. As you will see in the contents, 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.
What is CTS2?
Developed through the Healthcare Services Specification Project (HSSP), Common Terminology Services Release 2 (CTS2) has been created as a standard for shared semantic model and API for the query, interchange and update of terminological content. As an application programming interface specification, CTS 2 is a “blueprint” for building and using software to enable interoperability between CTS 2 clients and services.
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.
The CTS2 Platform Independent Model (PIM) provides a standard service information and computational model. The information model specifies the structural definition, attributes and associations of these common terminology ‘resources’ and the computations model specifies the service descriptions and interfaces needed to access and maintain structured terminologies.
Even though the detailed description of CTS2 PIM specifications can be found on the OMG site, 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 function areas to access these resources using CTS2 module and services.
Where can I learn more about CTS2? Are there some existing implementations or examples available?
More information can be found on the VKC pages about CTS 2 and Common Terminology Services Release 2 (CTS2) In Action.
The CTS2 specification allows (and encourages) modular implementation of its model components and service interfaces. A CTS2 service instance (a particular implementation of CTS2 specifications) may choose to implement only a subset of model and services that it needs.
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 has been very close to functionally equivalent to CTS2 specifications. Please note that LexEVS 6.0 APIs are not fully CTS2 compliant (refer to LexEVS 6.0 API Usage) but offer identical functionality as compared to most CTS2 services. The following table compares what function CTS2 specifies and whether it is available in LexEVS 6.0 release. Please note that there are additional functions LexEVS 6.0 makes available in addition to what are listed here. To find more about it, refer to LexEVS:LexEVS 6.0 Documentation].
HL7 SFM Section |
Functions / Considerations |
CTS2 Availability |
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 |