{scrollbar:icons=false}
h1. {page-info:title}
{section}
{column}
{column}
{panel:title=Contents of this Page}
{toc:minLevel=2}
{panel}
{column}
{column}
{panel:title=Quick Links}
* [GForge project|http://gforge.nci.nih.gov/projects/cadsrdb/]
* [GForge downloads|http://gforge.nci.nih.gov/frs/?group_id=60]
* [caDSR REST (XML-HTTP) API FAQs|caDSR REST (XML-HTTP) API FAQs]
{panel}
{column}
{section}

h2. Overview

Using the API, developers can allow an application to connect to caDSR and search the database. The API is available on the [download center|http://ncicb.nci.nih.gov/download/downloadcadsrapi.jsp].

The caDSR REST (XML-HTTP) API and CDE Browser provide access to, and a means of linking to, caDSR metadata through a standard internet browser.

caDSR REST results can be displayed *HTML  in either or XML format* \- XML and can be displayed in an internet browser or by means of an XSLT stylesheet. The [caDSR 4.0 Technical Guide|https://wiki.nci.nih.gov/x/8JCl] describes the caDSR REST (XML-HTTP) API and provides a catalog of the caDSR operations and search criteria. To switch formats simply change the URL in the address line from "getHTML" to "getXML.

A few examples in both XML and HTML of caDSR operations are provided below. The attached MS Word documents for the examples show sample results and the "http" statements used to produce the results, and provide information about how to interpret the results. See also the [REST API FAQs|https://wiki.nci.nih.gov/x/uJJ9AQ].

h2. Examples

h3. Example 1 - Find Data Element by Public ID and Version

*Find a Data Element where Public Id = 2178693 and Version=2.1 and display the basic metadata attributes*.

Either the CDE Browser or the caDSR REST API can be used to satisfy this query and results from both are shown below.

*Example 1 Results Displayed in the CDE Browser*

This method can be used to retrieve Data Elements only when you know both the Public ID and Version number.  (If you have trouble with the following link in Firefox, cut and paste it into IE.)
{code}
https://cdebrowser.nci.nih.gov/CDEBrowser/search?dataElementDetails=9/&cdeId=2178693&version=2.1&PageId=DataElementsGroup&queryDE=yes&FirstTimer=yes
{code}

Or alternatively
{code}
http://freestyle.nci.nih.gov/freestyle/do/cdebrowser?publicId=2178693&version=2.1
{code}


[Sample CDE Browser Output from Example 1|caDSR API with REST Examples^caDSR_API_ExampleOneCDEBrowser.doc]


*Example 1 Results Displayed in XML*

The URL for the results from the caDSR 4.0 REST API is:
{code}
http://cadsrapi.nci.nih.gov/cadsrapi40/GetXML?query=DataElement[@publicId=2178693][@version=2.1]
{code}

h3. Example 2 - Find Data Element by Public ID

*Find a Data Element with Public Id = 2178693, display the basic metadata attributes, version is not known*.

Since the version is not known, this query can only be handled via a caDSR REST API query getting all versions.

The URL for the results from the caDSR 4.0 REST API is:
{code}
http://cadsrapi.nci.nih.gov/cadsrapi40/GetXML?query=DataElement[publicId=2178693]
{code}
Sample [caDSR REST API XML Output from Example 2|caDSR API with REST Examples^caDSR_API_ExampleTwoOneDEPublicID.doc]

Or the query can retrieve only the latest version
{code}
http://cadsrapi.nci.nih.gov/cadsrapi40/GetXML?query=DataElement[publicId=2178693][@latestVersionIndicator=Yes]
{code}


h3. Example 3 - Find Data Element by Public Id, display all related components

*Find a Data Element with Public Id = 2178693, display all the metadata associated with the Data Element's related components, not just the basic attributes*.

This is handled in the caDSR REST API using a parameter that produces expanded ("heavy") XML.

The URL for the results from the caDSR 4.0 REST API is:
{code}
http://cadsrapi.nci.nih.gov/cadsrapi40/GetXML?query=DataElement&DataElement[@publicId=2178693]&returnHeavyXML=true
{code}
[Sample caDSR REST XML Output from Example 3 with "Heavy" XML|caDSR API with REST Examples^caDSR_API_ExampleThreeOneDEPublicIDHeavyXML.doc]

h3. Example 4 - Find Data Element Concept using public ID and display all its associated Data Elements

*Find all the Data Elements associated with the Data Element Concept with Public Id = 2178546, display the basic metadata of the Data Element Concept and its Data Elements*.

The URL for the results from the caDSR 4.0 REST API is:
{code}
http://cadsrapi.nci.nih.gov/cadsrapi40/GetXML?query=DataElement&DataElementConcept[@publicId=2178546]
{code}

h3. Example 5 - Find Data Elements associated with a particular Data Element Concept public ID and Version

*Find only Data Elements associated with VERSION 2.1 of Data Element Concept with Public Id = 2178546*.

The URL for the results from the caDSR 4.0 REST API is:
{code}
http://cadsrapi.nci.nih.gov/cadsrapi40/GetXML?query=DataElement&DataElementConcept[@publicId=2178546][@version=2.1]
{code}
[Sample caDSR REST XML Output from Example 4 and 5|caDSR API with REST Examples^caDSR_API_ExamplesFourFiveAllDECrelatedDEs.doc]

h3. Example 6 - Find a Form using Form public ID and Version and display basic metadata attributes

*Find a Form where Public Id = 2392775 and Version=1.0 and display the basic metadata attributes*.

Either the Form Builder or the caDSR REST API can be used to satisfy this query and results from both are shown below.

h4. Example 6 Results Displayed in the Form Builder

This method can be used to retrieve Forms only when you know both the Public ID and Version number.  (If you have trouble with the following link in Firefox, cut and paste it into IE.)

[https://formbuilder.nci.nih.gov/FormBuilder/formDetailsAction.do?method=getFormDetails&formIdSeq=FF04F699-FE6A-56AA-E034-0003BA3F9857]

h4. Example 6 Results Displayed in XML

The URL for the results from the caDSR 4.0 REST API is:
{code}
http://cadsrapi.nci.nih.gov/cadsrapi40/GetXML?query=Form[@publicId=2392775][@version=1.0]
{code}

h3. Example 7 - Find a Form using only public id

*Find a Form with Public Id = 2392775, display the basic metadata attributes, version is not known*.

Since the version is not known, this query can only be handled via a caDSR REST API query.

The URL for the results from the caDSR 4.0 REST API is:
{code}
http://cadsrapi.nci.nih.gov/cadsrapi40/GetXML?query=Form[publicId=2392775]
{code}

h3. Example 8 - Find a Form using public id, display all the metadata associated with the Data Elements

*Find a Form with Public Id = 2392775, display all the metadata associated with the Data Element's related components, not just the basic attributes*.

This is handled in the caDSR REST API using a parameter that produces expanded ("heavy") XML.

The URL for the results from the caDSR 4.0 REST API is:
{code}
http://cadsrapi.nci.nih.gov/cadsrapi40/GetXML?query=Form&Form[@publicId=2392775]&returnHeavyXML=true
{code}

h3. Example 9 - Find all the Forms associated with a particular Data Element public id and version

*Find all the Forms associated with the CDE with Public Id = 2183364, Version 1.0, display the basic metadata of the Form*.

The URL for the results from the caDSR 4.0 REST API is:
{code}
http://cadsrapi.nci.nih.gov/cadsrapi40/GetXML?query=Form&Module&Question&DataElement[@publicId=2183364][@version=1.0]
{code}

h3. Example 10 - Get all Modules associated with a Form using Form public id.

*Get all the modules for form with publicID = 2392775*.

The URL for the results from the caDSR 4.0 REST API is:
{code}
http://cadsrapi.nci.nih.gov/cadsrapi40/GetXML?query=gov.nih.nci.cadsr.domain.Module&gov.nih.nci.cadsr.domain.Form[@version=1.0][@publicID=2392775]
{code}

h3. Example 11 - Get all the Questions for a Module using Module public id and version.

*Get all the questions for module with publicID = 2392777 and version = 1.0*.

The URL for the results from the caDSR 4.0 REST API is:
{code}
http://cadsrapi.nci.nih.gov/cadsrapi40/GetXML?query=gov.nih.nci.cadsr.domain.Question&gov.nih.nci.cadsr.domain.Module[@version=1.0][@publicID=2392777]
{code}

h3. Example 12 - Get all the Data Elements for a Question using Question public id and version.

*Get all the data elements for question with publicID = 2392779 and version = 1.0*.

The URL for the results from the caDSR 4.0 REST API is:
{code}
http://cadsrapi.nci.nih.gov/cadsrapi40/GetXML?query=gov.nih.nci.cadsr.domain.DataElement&gov.nih.nci.cadsr.domain.Question[@version=1.0][@publicID=2392779]
{code}

h3. Example 13 - Set the number of records to be retrieved.

*Retrieve a specific number of records. startIndex=nnn pageSize=### and resultCounter=###,*
*where nnn is the (zero-based) index of the first record and ### is the number of records to retrieve*.

The URL for the results from the caDSR 4.0 REST API is:
{code}
http://cadsrapi.nci.nih.gov/cadsrapi40/GetXML?query=gov.nih.nci.cadsr.domain.Form&gov.nih.nci.cadsr.domain.Form[@workflowStatusName=RELEASED]&startIndex=0&pageSize=300&resultCounter=300
{code}
NOTE: Since there are no logins, the paging settings are global. Users should not rely on the current settings but should explicitly set startIndex, pageSize, and resultCounter on each query.

h3. Example 14 - Retrieve all Administered Components associated with a ClassSchemeClassSchemeItem with a particular ID.

*Get all Administered Components for ClassSchemeClassSchemeItem with ID = A55C551C-1866-5ED1-E034-080020C9C0E0*
*This will retrieve all AC's and sort them according to type (Form, DE, DEC, etc.)*

The URL for the results from the caDSR 4.0 REST API is:
{code}
http://cadsrapi.nci.nih.gov/cadsrapi40/GetXML?query=AdministeredComponent,AdministeredComponentClassSchemeItem,ClassSchemeClassSchemeItem&ClassSchemeClassSchemeItem[@ID=A55C551C-1866-5ED1-E034-080020C9C0E0]
{code}

h3. Example 15 - Retrieve all ClassSchemeClassSchemeItem associated with a ClassificationSchemeItem and a ClassificationScheme.

*Get all ClassSchemeClassSchemeItem for ClassificationSchemeItem with longName starting with 2014r1*
*and ClassificationScheme with preferredName starting with NMDP*
*Note, the association can be specified either through using square brackets '\[\]' or by using the backslash '\'*
*however, association within the square brackets cannot have further associations as attributes.*

The URL for the results from the caDSR 4.0 REST API is:
{code}
http://cadsrapi.nci.nih.gov/cadsrapi40/GetHTML?query=ClassSchemeClassSchemeItem&ClassSchemeClassSchemeItem[ClassificationScheme[@preferredName=NMDP*]]\ClassificationSchemeItem[@longName=2014r1*]
{code}

h3. Examples 16-18 show retrieving Data Elements using either the Concept Code or the Concept Name where the concept is the Primary Concept of the related caDSR item.  In these examples, results are are returned in HTML. All URL's are using the caDSR 4.0 REST API:

h4. Example 16 - Find all Data Elements where associated concept is the Primary Concept of the Data Element's Object Class.

This example shows the use of either the Concept Code (C19448) or the Concept Name "Blood and Blood Products".  Results are identical from these two calls, both are returned in HTML.

{code}
http://cadsrapi.nci.nih.gov/cadsrapi40/GetHTML?query=DataElement,DataElementConcept,ObjectClass,ConceptDerivationRule&ComponentConcept[Concept[@preferredName=C19448]][@primaryFlag=Yes]

http://cadsrapi.nci.nih.gov/cadsrapi40/GetHTML?query=DataElement,DataElementConcept,ObjectClass,ConceptDerivationRule&ComponentConcept[Concept[@longName=Blood and Blood Products]][@primaryFlag=Yes]
{code}

h4. Example 17 - Find all Data Elements where associated concept is the Primary Concept of the Data Element's Property.

{code}
http://cadsrapi.nci.nih.gov/cadsrapi40/GetHTML?query=DataElement,DataElementConcept,Property,ConceptDerivationRule&ComponentConcept[Concept[@preferredName=C42775]][@primaryFlag=Yes]

http://cadsrapi.nci.nih.gov/cadsrapi40/GetHTML?query=DataElement,DataElementConcept,Property,ConceptDerivationRule&ComponentConcept[Concept[@longName=E-mail%20Address]][@primaryFlag=Yes]
{code}

h4. Example 18 - Find all Data Elements where associated concept is the Primary Concept of one of the Data Element's Value Domain Value Meanings.

{code}
http://cadsrapi.nci.nih.gov/cadsrapi40
/GetHTML?query=DataElement,EnumeratedValueDomain,ValueDomainPermissibleValue,PermissibleValue,ValueMeaning,ConceptDerivationRule&ComponentConcept[Concept[@preferredName=C19448]][@primaryFlag=Yes]

http://cadsrapi.nci.nih.gov/cadsrapi40
/GetHTML?query=DataElement,EnumeratedValueDomain,ValueDomainPermissibleValue,PermissibleValue,ValueMeaning,ConceptDerivationRule&ComponentConcept[Concept[@longName=Blood and Blood Products]][@primaryFlag=Yes]
{code}


h3. Example 19 - Find all enumerated Permissible Values for a Data Element using Data Element public id and version or using Data Element public id (and getting latest version)

{code}
http://cadsrapi.nci.nih.gov/cadsrapi40/GetHTML?query=PermissibleValue,ValueDomainPermissibleValue,EnumeratedValueDomain,ValueDomain&DataElement[@publicID=106][@version=5.1]

http://cadsrapi.nci.nih.gov/cadsrapi40/GetHTML?query=PermissibleValue,ValueDomainPermissibleValue,EnumeratedValueDomain,ValueDomain&DataElement[@publicID=106][@latestVersionIndicator=Yes]
{code}

{scrollbar:icons=false}