The GDC provides a Software Development Kit (SDK) to support the development of applications that allow for analysis, visualization, and refinement of cohorts. |
The GDC Data Portal is built on top of the React framework and uses the Redux library for state management. Applications that operate within the portal are React higher-order components that enable re-use of component logic. The portal major functions like Cohort Builder and Repository, and analysis tools made available in the Analysis Center are applications. Each application handles a specific task and can be used to refine and analyze cohorts. Applications have access to all the current cohort information and can use that information to query the GDC API for additional information.
Applications interact with the GDC Application Programming Interface (API) via the SDK and can access the core context and their own context using the SDK. Local and Cohort filters are available to applications. Local filters are filters available from the GDC API that are specific to the application and are used to refine the data. Cohort filters are filters used to retrieve the active cohort, alter cohorts, or create new cohorts via the Cohort API.
Applications use Hooks, Selectors, and Actions for querying the GDC API and accessing and updating state, respectively. Applications use React Hooks to query for cohort information and fetch data from the GDC API. Hooks are functions that take arguments and return a value that resolves to the data requested. The GDC Portal provides a number of hooks for fetching data from the GDC API. These hooks are located in the @gff/core package. Selectors are used to access the state of the Portal’s Redux store and get updates when a cohort changes. Selectors are functions that take the state as an argument and return a value. Actions are used to update the state of the application such as adding, removing, or clearing filters. Altering a cohort is done by dispatching actions.
The SDK provides a Component Library for re-use of components such as buttons and modals, vertical tables, facets, and charts within an application. For additional details, please see the GDC Application Developer Guide.