NIH | National Cancer Institute | NCI Wiki  

You can try the caDSR APIs to search for caDSR data by entering a URL in the address bar of a browser and passing parameters in that URL. This page provides examples to get you started. 

A URL in caDSR II format returns HTML, XML, or JSON. Using the API, you can allow an application to connect to caDSR and search the database. The caDSR II Domain Class Browser page is a web browser interface that allows you to test the caDSR II API.

You can display any of these formats (HTML, XML, or JSON) in an Internet browser by changing the parameter (GetHTML, GetXML, or GetJSON). 

Multiple AND IN Note

You cannot enter multiple "and" or "in" values for search criteria when using the REST (XML-HTTP) API.

If you have trouble using any URL on this page in your Internet browser, copy and paste it into a Google Chrome browser before contacting Application Support (NCIAppSupport@mail.nih.gov).

This page includes the following topics.

Contents of This Page

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:

  • Property
  • Object Class 
  • Value Meaning
  • Value Domain

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: 

  • A Data Element is composed of a Data Element Concept (DEC) and a Value Domain (VD). 
  • A DEC is composed of an Object Class and a Property. 
  • A VD can be enumerated or enumerated. When enumerated it is composed of one or more sets/pairs of Permissible Values (PV) and Value Meanings (VM).

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:

  • The concept unique identifier, which is stored in the Concept Preferred Name, or
  • The Concept Name, stored in the Concept Long Name.

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.

  • Concept>>getComponentConceptCollection>>where PrimaryFlag = Yes>> getConceptDerivationRule >> Once the ConceptDerivationRule has been retrieved, you can get the ObjectClassCollection, PropertyCollection, ValueMeaningCollection.  There could be more than one of any of these collections.

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.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]
  • No labels