This page includes the following topics.

About Concepts

The meaning of content in the caDSR Repository is based on linkages to concept from curated concept systems.  Mostly, NCI prefers the use of the NCI Thesaurus (NCIt) for these annotations due to the breadth of concepts in NCIt, the ability to get new concepts added to meet the needs of NCI clinical trials.

Concepts can be linked directly to the following types of Administered Items:

These items are used in the construction of CDEs based on the ISO/IEC 11179 Metamodel for data specification. The structure of these linkages are as follows: 

Since Concept linkages can be found in the Property, Object Class, or Value Meanings, it is possible to retrieve all caDSR content based on Concept information, most typically one of the following:

To find any content in caDSR based on a related concept, it is necessary to find the concept of interest and navigate the path to all its related caDSR items.

NOTE: A deeper level query could query to find the caDSR item related to the directly annotated item. For example from a Value Meaning it is possible to find out what Value Domains the VM is included and then retrieve all the Data Elements that use the VD. Refer to 1. Examples for Data Elements.


Retrieving the Value Meaning Concept Codes for a Data Element That Has an Enumerated Value Domain

Given a data element, you can retrieve the corresponding concept codes for the permissible values in a Value Domain. 

If there is a data element with longName My DE and the permissible values are N=Never, F=Former, C=Current, and so on, and if OneData shows the concept code for Never as C70543, Former as C0750523, and Current as C25471, your application can navigate the objects starting at the value domain and work to the corresponding concept code.

For example

  • Each Data Element (My DE) that is enumerated has an EnumeratedValueDomain that can be retrieved using getValueDomain.
  • Each EnumeratedValueDomain has a permissible value list that can be retrieved using getValueDomainPermissibleValueCollection.
  • Each ValueDomainPermissibleValue in the collection has a getPermissibleValue, in this example (F).
  • Each permissibleValue has a getValueMeaning (Former).
  • Each valueMeaning has a getConceptDerivationRule which stores the list of concepts and their ordering.
  • Each conceptDerivationRule has a getComponentConceptCollection (the primary concept and any qualifier concepts, in this case Former has only a Primary Concept).
  • Each componentConcept in the collection has a getConcept (returns the Concept Object).
  • Each concept has an attribute, preferredName which stores the corresponding concept code (C0750523).

Retrieving a caDSR Item That Has Concept Using the Concept Code or Name, but Restricting the Search to Only Retrieving Items if the Concept is the Primary Concept

To search for data elements using a concept code or name, but restrict the results to only Primary concepts in the Object Class, refer to the following examples.

TBD: This section has URLs that start with the following string: 

https://cadsrapi.cancer.gov/caDSR5.0/

However, all of the other caDSR II URLs start with the following string instead:

https://cadsrapi.cancer.gov/invoke/caDSR/

Retrieve data elements with Object Class Concept "C19448" (result in XML) but only if the Concept is indicated as the Primary concept. This is done using the Concept's primaryFlag indicator = "Yes".

https://cadsrapi.cancer.gov/caDSR5.0/GetXML?query=DataElement,DataElementConcept,ObjectClass,ConceptDerivationRule&ComponentConcept[Concept[@preferredName=C19448],@primaryFlag=Yes] 

Additionally, you can find all Data Elements where the concept is used either as a primary OR qualifier concept. This is accomplished by removing the last qualifier in the query. Removing this criteria returns 104 results instead of 88.

[@primaryFlag=Yes]
https://cadsrapi.cancer.gov/caDSR5.0/GetXML?query=DataElement,DataElementConcept,Property,ConceptDerivationRule&ComponentConcept[Concept[@longName=E-mail%20Address],@primaryFlag=Yes] 

To retrieve the next higher order "type" administered items, remove the name of the item(s) before it in the query argument list. For example, to get Data Element Concepts (DECs) with its Property Primary Concept longName E-Mail Address, remove DataElement (the first item in the query argument list):

Retrieve DECs with Property Primary Concept name E-Mail Address.

https://cadsrapi.cancer.gov/caDSR5.0/GetXML?query=DataElementConcept,Property,ConceptDerivationRule&ComponentConcept[Concept[@longName=E-mail%20Address],@primaryFlag=Yes]

Retrieve Data Elements with its ValueDomain having a ValueMeaning with a Primary Concept longName Blood and Blood Products (result in XML).

https://cadsrapi.cancer.gov/caDSR5.0/GetXML?query=DataElement,EnumeratedValueDomain,ValueDomainPermissibleValue,PermissibleValue,ValueMeaning,ConceptDerivationRule&ComponentConcept[Concept[@longName=Blood and Blood Products],@primaryFlag=Yes]

Find a Concept by Concept Code

The following example finds a concept with the concept code.

The URL for the results from the caDSR II REST API is

https://cadsrapi.cancer.gov/invoke/caDSR/GetXML?query=Concept[@preferredName=C42614]

Return Permissible Value Info Including Associated Concepts for a CDE

The following caDSR II example returns the Permissible Value information for a given CDE. If you do not specify the version, the query returns the latest version.

https://cadsrapi.cancer.gov/caDSR/GetPVXML01?query=PermissibleValue&DataElement[@publicId=62,@version=6]

Retrieve all Data Elements Using an EVS Concept Code or Name, but Restrict Results to Only Those Where the Concept is “Primary Concept” in the CDE's Data Element Concept's Property Concept rule

This can be done through any of the caDSR APIs, as well as for restricting to Property or a Value Meaning in the CDEs Enumerated Value Domain.

Retrieve all Data Elements where the Property's “Primary” concept is concept name "E-mail Address" (result in XML).

https://cadsrapi.cancer.gov/invoke/caDSR/GetXML?query=DataElement,DataElementConcept,Property&ComponentConcept[Concept[@longName=E-mail%20Address],@primaryFlag=Yes]