You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 10 Next »

News and updates

  • 2020-07-07: New contents, new endpoint, metadata adjustments for ADaM
  • 2020-02-14: New contents, new endpoints, editorial updates
  • 2019-11-18: New contents, bug fixes, minor browser patch
  • 2019-09-13: Data standards browser as a new functionality
  • 2019-07-18: Search API, CSV & Excel exports, new and updated contents, and documentation updates
  • 2019-04-10: New contents, XML media type (beta functionality), and document revision with new and updated information
  • 2019-02-15: Initial version

General

All access inquires, technical support tickets, comments, and general CDISC Library questions, please use the CDISC Library Product Inquiry form.

The base URL for the API is:

https://library.cdisc.org/api

The URL for Data Standards Browser is:

https://library.cdisc.org/browser

The CDISC Library API generally follows HTTP/1.1's guidelines for status code. Details are here: HTTP Status Codes (2020-02-14).

The API uses Basic Auth (HTTP Basic Authentication).

UPDATED The following standards have been loaded:

  • CDISC Controlled Terminology P19 (2014-09-26) to P42 (2020-06-26)*, a total of 24 quarters with 93 parts
  • CDASH v1.1.1/CDASHUG v1.0, CDASH Model v1.0 to v1.1, CDASHIG v2.0 to v2.1
  • SDTM v1.2 to v1.8, SDTMIG v3.1.2 to v3.3, SDTMIG-AP v1.0, SDTMIG-PGx v1.0, SDTMIG-MD v1.0, SDTMIG-MD v1.1
  • SENDIG v3.0, SENDIG v3.1, SENDIG-DART v1.1, SENDIG-AR v1.0
  • ADaM v2.1, ADaMIG v1.0 to ADaMIG v1.1 to v1.2, ADaM ADAE v1.0, ADaM TTE for BDS v1.0, ADaM OCCDS v1.0

* denotes new contents added as of the 2020-07-07 release

UPDATED Included in the 2020-07-07 release are:

New contents

  • CDISC Controlled Terminology P41 (2020-03-27)
  • CDISC Controlled Terminology P42 (2020-06-26)
  • Note: See Clarifications about P41a (2020-05-08)

Enhancements

  • Added one endpoint (details below):
    • /mdr/maintenance
  • Added maintenance banner to the Data Standards Browser
  • For API Documentation:
    • Added examples
    • Added all supported media types for each endpoint
    • Enabled API mocking via Swagger virtual server
    • Enriched details for search related endpoints, i.e., schemas and query parameters
    • Added links to online resources
  • Added Media Type Support Matrix to the set of Release Notes

Corrections & Patches

  • Erroneous hypermedia links about valuelist have been removed from all ADaM responses
    • Before, valuelist hypermedia link in lines #11 to #14:

      {
          "ordinal": "316",
          "name": "ABLFL",
          ...
          "_links": {
              "self": {
                  "href": "/mdr/adam/adamig-1-2/datastructures/BDS/variables/ABLFL",
                  "title": "Baseline Record Flag",
                  "type": "Analysis Variable"
              },
              "valuelist": {
                  "href": "/mdr/adam/adamig-1-2/valuelist/CharacterYesResponse",
                  "title": "Yes Response",
                  "type": "Enumerated Value Domain"
              },
              "parentProduct": {
                  "href": "/mdr/adam/adamig-1-2",
                  "title": "Analysis Data Model Implementation Guide Version 1.2",
                  "type": "Implementation Guide"
              },
              ...
              }
          }
      }

      After, valuelist no longer part of _links:

      {
          "ordinal": "316",
          "name": "ABLFL",
          ...
          "_links": {
              "self": {
                  "href": "/mdr/adam/adamig-1-2/datastructures/BDS/variables/ABLFL",
                  "title": "Baseline Record Flag",
                  "type": "Analysis Variable"
              },
              "parentProduct": {
                  "href": "/mdr/adam/adamig-1-2",
                  "title": "Analysis Data Model Implementation Guide Version 1.2",
                  "type": "Implementation Guide"
              },
              ...
              }
          }
      }
  • ADaM TTE v1.0
    • Corrected all malformed hypermedia links related to varsets
      • Before, lines #11 and #16 have varsets href as /mdr/adam/adam-tte-1-0/datastructures/BDS/...:

        {
            "ordinal": "1",
            "name": "BDS for TTE",
            ...
            "_links": {
                "self": {
                    ...
                },
                "analysisVariableSets": [
                    {
                        "href": "/mdr/adam/adam-tte-1-0/datastructures/BDS/varsets/SubjectIdentifierVariable",
                        "title": "Subject Identifier Variable",
                        "type": "Variable Set"
                    },
                    {
                        "href": "/mdr/adam/adam-tte-1-0/datastructures/BDS/varsets/TreatmentVariables",
                        "title": "Treatment Variables",
                        "type": "Variable Set"
                    },
                    ...
                    }
                ]
            }
        }

        After, varsets href values are corrected to read /mdr/adam/adam-tte-1-0/datastructures/ADTTE/...:

        {
            "ordinal": "1",
            "name": "BDS for TTE",
            ...
            "_links": {
                "self": {
                    ...
                },
                "analysisVariableSets": [
                    {
                        "href": "/mdr/adam/adam-tte-1-0/datastructures/ADTTE/varsets/SubjectIdentifierVariable",
                        "title": "Subject Identifier Variable",
                        "type": "Variable Set"
                    },
                    {
                        "href": "/mdr/adam/adam-tte-1-0/datastructures/ADTTE/varsets/TreatmentVariables",
                        "title": "Treatment Variables",
                        "type": "Variable Set"
                    },
                    ...
                    }
                ]
            }
        }
  • ADaM ADAE v1.0
    • Corrected typo in TRTEMFL's description.
      • Before, typo in two instances of the inequality symbol >=:

        {
            ...
            "description": "Example derivation: If ADSL.TRTSDT>=ASTDT>=ADSL.TRTEDT + x days then TRTEMFL='Y' The number x is defined by the sponsor and often incorporates the known half-life of the drug. Variable TRTEMFL is to be used for any analysis of treatment-emergent AEs. This variable is conditional on whether the concept of treatment emergent is a key feature of the AE analyses.",
            ...
        }

        After, the inequality symbol is corrected to <=:

        {
            ...
            "description": "Example derivation: If ADSL.TRTSDT<=ASTDT<=ADSL.TRTEDT + x days then TRTEMFL='Y' The number x is defined by the sponsor and often incorporates the known half-life of the drug. Variable TRTEMFL is to be used for any analysis of treatment-emergent AEs. This variable is conditional on whether the concept of treatment emergent is a key feature of the AE analyses.",
            ...
        }

For health check, use this endpoint to verify LDAP and database availability:

/health

NEW For system maintenance status, use this endpoint to obtain a flag indicating whether CDISC Library is under maintenance and a related system message:

/mdr/maintenance

For example,

{
  "maintenanceMode": true,
  "maintenanceMessage": "CDISC Library is currently under a scheduled maintenance."
}

For a machine-readable method to obtain a full listing of products loaded into the metadata repository use:

/mdr/products

Or, by product group:

/mdr/products/{product-group}

where product-group is one of these values:

  • Terminology
  • DataCollection
  • DataTabulation
  • DataAnalysis

Included in the 2020-02-14 release are two new endpoints, designed to provide high-level information about CDISC Library. These endpoints support both JSON and XML media types.

First, /mdr/about returns the URL for on-line API Documentation and Release Notes. It also includes a hypermedia link to a list of the product groups with their most recent update dates, as described below.

/mdr/about

/mdr/lastupdated returns dates of last updated, organized by CDISC product group.

/mdr/lastupdated

For example:

/mdr/about example output
{
  "_links": {
    "self": {
      "href": "/mdr/about",
      "title": "Information About CDISC Library",
      "type": "About CDISC Library"
    },
    "lastupdated": {
      "href": "/mdr/lastupdated",
      "title": "Last Update Date of CDISC Library Products",
      "type": "About CDISC Library"
    }
  },
  "release-notes": "https://wiki.cdisc.org/display/LIBSUPRT/Release+Notes",
  "api-documentation": "https://www.cdisc.org/cdisc-library/api-documentation"
}
/mdr/lastupdated example output
{
  "_links": {
    "self": {
      "href": "/mdr/lastupdated",
      "title": "Last Update Date of CDISC Library Products",
      "type": "About CDISC Library"
    }
  },
  "overall": "2020-02-14",
  "data-analysis": "2020-02-14",
  "data-collection": "2020-02-14",
  "data-tabulation": "2019-11-18",
  "terminology": "2020-02-14"
}

CDISC finished updating all internal (meta-model, URIs, etc.) and textual references of SHARE to CDISC Library. The base URL and API interface remain unaffected. User will find this update mostly in the value of _link/self/title and _links/self/label. For example:

{
  "_links": {
    "self": {
      "href": "/mdr/products",
      "title": "CDISC Library Product List",
      "type": "CDISC Library Product List"
    },
  ...
}

Media Type

Added to the 2019-07-18 release is the support for two additional media types: CSV and Excel. Users may request top-level foundational standards exports in either CSV or Excel Workbook format. The media type for CSV is text/csv, while application/vnd.ms-excel for Excel.

CSV and Excel Workbook media types are only available at the top-level of a foundational standard. When requesting them at levels in any lower hierarchy, the API will return an HTTP 406 Not Acceptable status code.

For example, a cURL snippet to obtain ADaM OCCDS v1.0 (lines #1-3), SDTMIG v3.3 (lines #5-7), and Controlled Terminology P38 (lines #9-11) in CSV format:

curl -X GET \
  https://library.cdisc.org/api/mdr/adam/adam-occds-1-0 \
  -H 'Accept: text/csv'

curl -X GET \
  https://library.cdisc.org/api/mdr/sdtmig/3-3 \
  -H 'Accept: text/csv'


curl -X GET \
  https://library.cdisc.org/api/mdr/ct/packages/sdtmct-2019-06-28 \
  -H 'Accept: text/csv'

Similarly, a cURL snippet to obtain ADaM OCCDS v1.0 (lines #1-3) , SDTMIG v3.3 (lines #5-7), and Controlled Terminology P38 (lines #9-11) in Excel Workbook format:

curl -X GET \
  https://library.cdisc.org/api/mdr/adam/adam-occds-1-0 \
  -H 'Accept: application/vnd.ms-excel'

curl -X GET \
  https://library.cdisc.org/api/mdr/sdtmig/3-3 \
  -H 'Accept: application/vnd.ms-excel'


curl -X GET \
  https://library.cdisc.org/api/mdr/ct/packages/sdtmct-2019-06-28 \
  -H 'Accept: application/vnd.ms-excel'

Added to the 2019-04-10 release is the XML media type, as a beta functionality. Users may now specify either JSON and XML to be the formatted API response. For example, a cURL snippet to obtain a list of content loaded in the metadata repository as JSON (lines #1-3) vs. XML (lines #5-7):

curl -X GET \
  https://library.cdisc.org/api/mdr/products \
  -H 'Accept: application/json'

curl -X GET \
  https://library.cdisc.org/api/mdr/products \
  -H 'Accept: application/xml'

For input and suggestions about the XML media type beta functionality, please use the CDISC Library Product Inquiry form.

Controlled Terminology

Whenever mid-cycle revision to CDISC Controlled Terminology publication is necessary, only the latest corrected information will appear in the metadata repository.

The earliest CDISC Controlled Terminology publication loaded into the metadata repository is P19 (2014-09-26). With that, _links/priorVersion will not be part of the API response when querying P19 packages. CDISC will evaluate loading prior publications based on demand and requests.

For CDISC Controlled Terminology, NCI EVS publishes synonyms in a semi-colon separated list. In the metadata repository, they are decoded into individual entries. In rare cases where synonyms are non-unique for any given term, only distinct synonyms will appear in the metadata repository.

When querying using the API, lexicographic order is applied to synonyms listing in the response. For example, this is a response excerpt when querying the term Left Ventricular Maximum Positive dP/dt (C120916):

{
   "conceptId": "C120916",
   "submissionValue": "Left Ventricular Maximum Positive dP/dt",
   "definition": "The maximum rate of positive pressure change over time within the left ventricle (systole).",
   "preferredTerm": "Left Ventricular Maximum Positive dP/dt",
   "synonyms": [
      "+dPdt",
      "Left Ventricular Maximum Positive dP/dt",
      "dPdt Maximum"
   ]
}

In the CDISC Controlled Terminology Protocol package, where the Codelist Extensible (Yes/No) attribute reads "NA", they are treated as null in the metadata repository.

CDASH

All instances of "N/A" in CDASH publications are treated as null in the metadata repository.

An exception is the "Controlled Terminology Codelist Name" column exported in the CSV and Excel formats to preserve original sequence of codelist values as shown in the published document.

In the CDASH Model v1.0 and the CDASHIG v2.0, the CDASH team applied the class concept to all domains. Identifier and timing variables were assigned class Identifier and Timing respectively as an attribute. In order to offer one common API design for all CDASH products, it was necessary to apply this class concept to CDASHIG v1.1 domains. In consequence, "Common variables" (identifier and visit timing variables in Sections 5.1, 5.2) were also instantiated to all CDASHIG v1.1 domains.

These changes were presented to and approved by the CDISC Global Governance Committee. For these changes, a new version indicator, 1.1.1, is given in the metadata repository.

The CDASH products include different types of mappings:

  • CDASH model class variables to SDTM class variables
  • CDASH model class variables to SDTM dataset variables
  • CDASH model domain variables to SDTM dataset variables
  • CDASH model domain variables to SDTMIG dataset variables
  • CDASHIG domain fields to SDTMIG dataset variables
  • CDASHIG domain fields to SDTM class variables
  • CDASHIG scenario fields to SDTMIG dataset variables

To accommodate the different types of mapping targets, three JSON array attributes had to be defined:

  • sdtmClassMappingTargets
  • sdtmDatasetMappingTargets
  • sdtmigDatasetMappingTargets

SDTM

Variables in the SDTM occasionally have expanded text to describe a variable's role. This text is stored in "roleDescription" in the metadata repository. Otherwise, "roleDescription" matches "role", where "role" has a set of controlled values. Below is an example for the SDTM v1.5 variable SVUPDES:

"ordinal": "11", 
"name": "SVUPDES", 
"label": "Description of Unplanned Visit", 
"description": "Description of what happened to the subject during an unplanned visit. Null for protocol-defined visits.", 
"role": "Qualifier", 
"roleDescription": "Optional Qualifier", 
...

Some Implementation Guide variables have multiple CDISC Controlled Terminology codelists. Therefore, an array object is used to output codelist metadata in an API response. For example, this is an excerpt when querying the SENDIG v3.1 variable MISTRESC:

"codelist": [ 
  { 
    "href": "/mdr/root/ct/sendct/codelists/C88025", 
    "title": "Version-agnostic anchor resource for codelist C88025", 
    "type": "Root Value Domain" 
  }, 
  { 
    "href": "/mdr/root/ct/sendct/codelists/C120531", 
    "title": "Version-agnostic anchor resource for codelist C120531", 
    "type": "Root Value Domain" 
  } 
]

To promote consistency, the label "ISO 3166-1 Alpha-3" is used whenever this external country codelist is referenced. Similarly, "ISO 21090 NullFlavor enumeration" is used for null flavors.

  • No labels