diff --git a/push-site.sh b/push-site.sh index 910210f80..cec0cb1fd 100755 --- a/push-site.sh +++ b/push-site.sh @@ -1,7 +1,7 @@ #!/bin/bash TODAY=$(date +"%Y-%m-%d") -BUCKET="open.fda.gov-$TODAY" +BUCKET="open.fda.gov-remssplupdated" echo "Pushing to: ${BUCKET}" diff --git a/src/components/ApiStatus.tsx b/src/components/ApiStatus.tsx index b17cfc8a5..566b1a210 100644 --- a/src/components/ApiStatus.tsx +++ b/src/components/ApiStatus.tsx @@ -21,6 +21,7 @@ let endpointKeys = [ 'drugenforcement', 'drugsfda', 'drugshortages', + 'remsspl', 'deviceevent', 'devicerecall', 'deviceclass', @@ -51,6 +52,7 @@ const catMap: Record = Object.freeze({ 'drugenforcement': 'Drugs › Enforcement Reports', 'drugsfda': 'Drugs › Drugs@FDA', 'drugshortages': 'Drugs › Drug Shortages', + 'remsspl': 'Drugs › REMS SPL', 'deviceevent': 'Devices › Adverse Events', 'devicerecall': 'Devices › Recalls', 'deviceclass': 'Devices › Classification', @@ -80,6 +82,7 @@ const endpointLinkMap: Record = Object.freeze({ 'drugenforcement': 'drug/enforcement', 'drugsfda': 'drug/drugsfda', 'drugshortages': 'drug/shortages', + 'remsspl': 'drug/drugremsspl', 'deviceevent': 'device/event', 'devicerecall': 'device/recall', 'deviceclass': 'device/classification', diff --git a/src/components/DataDictionary.tsx b/src/components/DataDictionary.tsx index 7e667c9bb..d47a4131b 100644 --- a/src/components/DataDictionary.tsx +++ b/src/components/DataDictionary.tsx @@ -103,6 +103,7 @@ class DataDictionary extends React.Component<{}, DataDictionaryState> { 'nsde': 'NSDE', 'drugsfda': 'Drugs@FDA', 'drugshortages': 'Drug Shortages', + 'remsspl': 'REMS SPL', 'covid19serology': 'COVID-19 Serology', 'pma': 'Pre-Market Approval', 'recall': 'Recall', diff --git a/src/components/EndpointBox.tsx b/src/components/EndpointBox.tsx index 9a9273cd7..519fb702c 100644 --- a/src/components/EndpointBox.tsx +++ b/src/components/EndpointBox.tsx @@ -76,7 +76,8 @@ const EndpointBox = (props: tPROPS) => { 'ndc': 'NDC directory containing information on the National Drug Code (NDC)', 'enforcement': 'Drug product recall enforcement reports.', 'drugsfda': 'Drugs@FDA includes most of the drug products approved since 1939.', - 'drugshortages': 'Drug Shortages can occur for many reasons, including manufacturing and quality problems, delays, and discontinuations.' + 'drugshortages': 'Drug Shortages can occur for many reasons, including manufacturing and quality problems, delays, and discontinuations.', + 'remsspl': 'REMS are programs designed to ensure that the benefits of certain drugs outweigh their risks.' }, 'other': { 'historicaldocument': 'FDA Press Releases, 1913-2014, in searchable format', @@ -88,7 +89,7 @@ const EndpointBox = (props: tPROPS) => { 'problem': 'Reports about tobacco products that are damaged, defective, contaminated, smell or taste wrong, or cause undesirable health effects.' }, 'transparency': { - 'crl': 'Centralized database of Complete Response Letters (CRLs)', + 'crl': 'Centralized database of Complete Response Letters (CRLs)' } } @@ -120,7 +121,8 @@ const EndpointBox = (props: tPROPS) => { 'ndc': 'NDC Directory', 'enforcement': 'Recall enforcement reports', 'drugsfda': 'Drugs@FDA', - 'drugshortages': 'Drug shortages' + 'drugshortages': 'Drug shortages', + 'remsspl': 'REMS SPL' }, 'other': { 'historicaldocument': 'Historical Documents', @@ -132,7 +134,7 @@ const EndpointBox = (props: tPROPS) => { 'problem': 'Tobacco Problem Reports' }, 'transparency': { - 'crl': 'Complete Response Letters', + 'crl': 'Complete Response Letters' } } const bg_color: Record = { @@ -174,7 +176,8 @@ const EndpointBox = (props: tPROPS) => { 'ndc':
, 'enforcement':
, 'drugsfda':
, - 'drugshortages':
+ 'drugshortages':
, + 'remsspl':
}, 'other': { 'historicaldocument':
, @@ -218,7 +221,8 @@ const EndpointBox = (props: tPROPS) => { 'ndc': '/apis/drug/ndc/', 'enforcement': '/apis/drug/enforcement/', 'drugsfda': '/apis/drug/drugsfda/', - 'drugshortages': '/apis/drug/drugshortages/' + 'drugshortages': '/apis/drug/drugshortages/', + 'remsspl': '/apis/drug/remsspl/' }, 'other': { 'historicaldocument': '/apis/other/historicaldocument/', diff --git a/src/components/FieldDownload.tsx b/src/components/FieldDownload.tsx index 6019276a6..cd2db4a2e 100644 --- a/src/components/FieldDownload.tsx +++ b/src/components/FieldDownload.tsx @@ -12,6 +12,7 @@ const pdfDownloadMap: Readonly> = Object.freeze({ 'drugenforcement': '/fields/drugenforcement_reference.pdf', 'drugsfda': '/fields/drugsfda_reference.pdf', 'drugshortages': '/fields/drugshortages_reference.pdf', + 'drugremsspl': '/fields/drugremsspl_reference.pdf', 'deviceevent': '/fields/deviceevent_reference.pdf', 'devicerecall': '/fields/devicerecall_reference.pdf', 'deviceclass': '/fields/deviceclass_reference.pdf', @@ -39,6 +40,7 @@ const xlsxDownloadMap: Readonly> = Object.freeze({ 'drugenforcement': '/fields/drugenforcement_reference.xlsx', 'drugsfda': '/fields/drugsfda_reference.xlsx', 'drugshortages': '/fields/drugshortages_reference.xlsx', + 'drugremsspl': '/fields/drugremsspl_reference.xlsx', 'deviceevent': '/fields/deviceevent_reference.xlsx', 'devicerecall': '/fields/devicerecall_reference.xlsx', 'deviceclass': '/fields/deviceclass_reference.xlsx', @@ -66,6 +68,7 @@ const yamlDownloadMap: Readonly> = Object.freeze({ 'drugenforcement': '/fields/drugenforcement.yaml', 'drugsfda': '/fields/drugsfda.yaml', 'drugshortages': '/fields/drugshortages.yaml', + 'drugremsspl': '/fields/drugremsspl.yaml', 'deviceevent': '/fields/deviceevent.yaml', 'devicerecall': '/fields/devicerecall.yaml', 'deviceclass': '/fields/deviceclass.yaml', diff --git a/src/components/FieldsHarmonization.tsx b/src/components/FieldsHarmonization.tsx index aefe6b1ac..cbf20feb1 100644 --- a/src/components/FieldsHarmonization.tsx +++ b/src/components/FieldsHarmonization.tsx @@ -1,368 +1,371 @@ -import React, { JSX } from 'react' -import {marked} from 'marked' -import ReactTable from "react-table-6" -import { Tooltip } from 'react-tippy' - -import device510k from '../constants/fields/deviceclearance.yaml' -import deviceclassification from '../constants/fields/deviceclass.yaml' -import devicepma from '../constants/fields/devicepma.yaml' -import devicerecall from '../constants/fields/devicerecall.yaml' -import drugenforcement from '../constants/fields/drugenforcement.yaml' -import druglabel from '../constants/fields/druglabel.yaml' -import drugndc from '../constants/fields/drugndc.yaml' -import drugsfda from '../constants/fields/drugsfda.yaml' -import drugshortages from '../constants/fields/drugshortages.yaml' -import Values from './RenderContentObject/Values' - -import '../css/components/FieldsHarmonization.scss' - -type ValueType = { - type: string, - value: { [key: string]: any } -} - -type TableColumn = { - Header: string; - accessor: string; - Cell?: (row: any) => JSX.Element; - width?: number; -}; - -type FieldType = { - [key: string]: number; -} - -type DataItem = { - field: Array, - [key: string]: any -} - -type EndpointHeader = { - classification: string, - enforcement: string, - event: string, - pma: string, - recall: string, - registrationlisting: string, - udi: string, - drugsfda: string, - label: string, - ndc: string, - drugshortages: string, - nsde: string, - [key: string]: string -} - -type PROPS = { - master_harmonization: { - [key: string]: any - }, - selected_noun: string -} -type State = { - columns: Array, - data?: Object, - nouns: Array, - selected_noun: string -} - -class FieldsHarmonization extends React.Component { - - constructor (props: PROPS) { - super(props) - - const master_harmonization: Record = props.master_harmonization - - const nouns: string[] = [] - let selected_noun = '' - Object.keys(master_harmonization).forEach(function (noun) { - let empty = !Array.isArray(master_harmonization[noun]) || master_harmonization[noun].length === 0; - Object.values(master_harmonization[noun]).forEach(function (endpoint_value) { - if (Array.isArray(endpoint_value) && endpoint_value.length) { - empty = false - } - }) - if (empty === false) { - nouns.push(noun) - } - }) - - if (this.props.selected_noun) { - selected_noun = this.props.selected_noun - } - else { - selected_noun = nouns[0] - } - - - this.state = { - columns: [], - data: {}, - nouns: nouns, - selected_noun: selected_noun - } - - this.onChangeNoun = this.onChangeNoun.bind(this) - } - - - componentDidMount () { - this.getData() - } - - componentDidUpdate (prevProps: any, prevState: any) { - if (prevState.selected_noun !== this.state.selected_noun) { - this.getData() - } - } - - fieldDefinitionTooltip (dataTip: any[]) { - if (dataTip == null) { - return - } - - const dictionary: Record = { - device510k: device510k, - deviceclassification: deviceclassification, - devicepma: devicepma, - devicerecall: devicerecall, - drugdrugsfda: drugsfda, - drugenforcement: drugenforcement, - druglabel: druglabel, - drugndc: drugndc, - drugdrugshortages: drugshortages - } - - const field_name = dataTip[0] - const field = dictionary[dataTip[1]]?.properties?.openfda?.properties[field_name] - // array - let type: string = '' - // one_of, etc - let values: Object | null | undefined = null - // of strings - let type2: string = '' - // description text, can have docs - let desc: string = '' - // query syntax pattern - let pattern: string = '' - // whether field has .exact - let isExact: boolean = false - const divCx: string = 'col t-range-marg-t-2 marg-b-2 t-range-6' - - if (field) { - desc = field.description - pattern = field.pattern - type = field.type - values = field.possible_values - isExact = field.is_exact && field.is_exact - } - - if (field && field.items) { - desc = field.items.description - pattern = field.items.pattern - type2 = field.items.type - values = field.items.possible_values - } - - const typeValues = values as ValueType - - return ( -
-

{field_name}

-
-
-            {type}{type2 && ` of ${type2}s`}
-          
-
-
- { - desc && -
- } - { - isExact && -
-

This is an .exact field. It has been indexed both as its exact string content, and also tokenized.

-
    -
  • -

    search={field_name}:"FOO+BAR"
    - Searches for records where either FOO or BAR appear anywhere in this field.

    -
  • -
  • -

    search={field_name}.exact:"FOO+BAR"
    - Searches for records where exactly and only FOO BAR appears in this field.

    -
  • -
  • -

    count={field_name}
    - Counts the tokenized values of this field. Instances of FOO and BAR are counted separately.

    -
  • -
  • -

    count={field_name}.exact
    - Counts the exact values of this field. FOO BAR, BAR FOO, FOO, and BAR would all be counted separately, along with other combinations that contain these terms.

    -
  • -
-
- } - { - values && - Object.keys(typeValues.value).length <= 4 && - - } - { - pattern && -
- Values follow this pattern -
- } - { - pattern && -
-
{pattern}
-
- } - { - values && - Object.keys(typeValues.value).length > 4 && -
- -
- } -
-
- ) - - } - - getData () { - const endpoint_headers: EndpointHeader = { - '510k': '510k', - 'classification': 'Classification', - 'enforcement': 'Enforcement', - 'event': 'Event', - 'pma': 'PMA', - 'recall': 'Recall', - 'registrationlisting': 'Registration', - 'udi': 'UDI', - 'drugsfda': 'Drugs@FDA', - 'label': 'Label', - 'ndc': 'NDC', - 'drugshortages': 'Drug Shortages', - 'nsde': 'NSDE' - } - - const col_list: any[] = [] - const columns: TableColumn[] = [{ - Header: 'Field', - accessor: 'field', - Cell: (row: any) => ( - - {row.value[0]} - - ), - width: 242 - }] - - const fields: FieldType = {} - const data: DataItem[] = [] - const noun = this.state.selected_noun - - for (const [endpoint_name, endpoint_value] of Object.entries(this.props.master_harmonization[this.state.selected_noun])) { - if (Array.isArray(endpoint_value) && endpoint_value.length) { - endpoint_value.forEach(function (field, index) { - if (Object.keys(fields).indexOf(field) === -1) { - fields[field] = data.length - data.push({ - field: [field, noun + endpoint_name], - [endpoint_name]: true - }) - } - else { - data[fields[field]][endpoint_name] = true - } - if (col_list.indexOf(endpoint_name) === -1) { - columns.push({ - Header: endpoint_headers[endpoint_name], - accessor: endpoint_name, - Cell: row => ( -
{row.value ? : }
- ) - }) - col_list.push(endpoint_name) - } - }) - } - } - this.setState({ - columns: columns, - data: data - }) - } - - onChangeNoun (e: React.MouseEvent) { - const title = (e.target as HTMLElement).getAttribute('title') - if (this.state.selected_noun !== title) { - this.setState({ - selected_noun: title || "" - }) - } - } - - render (): any { - - if (Object.keys(this.state.data as any).length === 0 && (this.state.data as any).constructor === Object) { - return - } - - const noun_buttons = this.state.nouns.map(noun => { - return ( -
this.onChangeNoun(e)} - title={noun}> - {noun.charAt(0).toUpperCase() + noun.slice(1)} -
- ) - }) - - return ( -
-
- { - noun_buttons - } -
- -
- ) - } -} - - -export default FieldsHarmonization +import React, { JSX } from 'react' +import {marked} from 'marked' +import ReactTable from "react-table-6" +import { Tooltip } from 'react-tippy' + +import device510k from '../constants/fields/deviceclearance.yaml' +import deviceclassification from '../constants/fields/deviceclass.yaml' +import devicepma from '../constants/fields/devicepma.yaml' +import devicerecall from '../constants/fields/devicerecall.yaml' +import drugenforcement from '../constants/fields/drugenforcement.yaml' +import druglabel from '../constants/fields/druglabel.yaml' +import drugndc from '../constants/fields/drugndc.yaml' +import drugsfda from '../constants/fields/drugsfda.yaml' +import drugshortages from '../constants/fields/drugshortages.yaml' +import drugremsspl from '../constants/fields/drugremsspl.yaml' +import Values from './RenderContentObject/Values' + +import '../css/components/FieldsHarmonization.scss' + +type ValueType = { + type: string, + value: { [key: string]: any } +} + +type TableColumn = { + Header: string; + accessor: string; + Cell?: (row: any) => JSX.Element; + width?: number; +}; + +type FieldType = { + [key: string]: number; +} + +type DataItem = { + field: Array, + [key: string]: any +} + +type EndpointHeader = { + classification: string, + enforcement: string, + event: string, + pma: string, + recall: string, + registrationlisting: string, + udi: string, + drugsfda: string, + label: string, + ndc: string, + drugshortages: string, + nsde: string, + [key: string]: string +} + +type PROPS = { + master_harmonization: { + [key: string]: any + }, + selected_noun: string +} +type State = { + columns: Array, + data?: Object, + nouns: Array, + selected_noun: string +} + +class FieldsHarmonization extends React.Component { + + constructor (props: PROPS) { + super(props) + + const master_harmonization: Record = props.master_harmonization + + const nouns: string[] = [] + let selected_noun = '' + Object.keys(master_harmonization).forEach(function (noun) { + let empty = !Array.isArray(master_harmonization[noun]) || master_harmonization[noun].length === 0; + Object.values(master_harmonization[noun]).forEach(function (endpoint_value) { + if (Array.isArray(endpoint_value) && endpoint_value.length) { + empty = false + } + }) + if (empty === false) { + nouns.push(noun) + } + }) + + if (this.props.selected_noun) { + selected_noun = this.props.selected_noun + } + else { + selected_noun = nouns[0] + } + + + this.state = { + columns: [], + data: {}, + nouns: nouns, + selected_noun: selected_noun + } + + this.onChangeNoun = this.onChangeNoun.bind(this) + } + + + componentDidMount () { + this.getData() + } + + componentDidUpdate (prevProps: any, prevState: any) { + if (prevState.selected_noun !== this.state.selected_noun) { + this.getData() + } + } + + fieldDefinitionTooltip (dataTip: any[]) { + if (dataTip == null) { + return + } + + const dictionary: Record = { + device510k: device510k, + deviceclassification: deviceclassification, + devicepma: devicepma, + devicerecall: devicerecall, + drugdrugsfda: drugsfda, + drugenforcement: drugenforcement, + druglabel: druglabel, + drugndc: drugndc, + drugdrugshortages: drugshortages, + drugremsspl: drugremsspl + } + + const field_name = dataTip[0] + const field = dictionary[dataTip[1]]?.properties?.openfda?.properties[field_name] + // array + let type: string = '' + // one_of, etc + let values: Object | null | undefined = null + // of strings + let type2: string = '' + // description text, can have docs + let desc: string = '' + // query syntax pattern + let pattern: string = '' + // whether field has .exact + let isExact: boolean = false + const divCx: string = 'col t-range-marg-t-2 marg-b-2 t-range-6' + + if (field) { + desc = field.description + pattern = field.pattern + type = field.type + values = field.possible_values + isExact = field.is_exact && field.is_exact + } + + if (field && field.items) { + desc = field.items.description + pattern = field.items.pattern + type2 = field.items.type + values = field.items.possible_values + } + + const typeValues = values as ValueType + + return ( +
+

{field_name}

+
+
+            {type}{type2 && ` of ${type2}s`}
+          
+
+
+ { + desc && +
+ } + { + isExact && +
+

This is an .exact field. It has been indexed both as its exact string content, and also tokenized.

+
    +
  • +

    search={field_name}:"FOO+BAR"
    + Searches for records where either FOO or BAR appear anywhere in this field.

    +
  • +
  • +

    search={field_name}.exact:"FOO+BAR"
    + Searches for records where exactly and only FOO BAR appears in this field.

    +
  • +
  • +

    count={field_name}
    + Counts the tokenized values of this field. Instances of FOO and BAR are counted separately.

    +
  • +
  • +

    count={field_name}.exact
    + Counts the exact values of this field. FOO BAR, BAR FOO, FOO, and BAR would all be counted separately, along with other combinations that contain these terms.

    +
  • +
+
+ } + { + values && + Object.keys(typeValues.value).length <= 4 && + + } + { + pattern && +
+ Values follow this pattern +
+ } + { + pattern && +
+
{pattern}
+
+ } + { + values && + Object.keys(typeValues.value).length > 4 && +
+ +
+ } +
+
+ ) + + } + + getData () { + const endpoint_headers: EndpointHeader = { + '510k': '510k', + 'classification': 'Classification', + 'enforcement': 'Enforcement', + 'event': 'Event', + 'pma': 'PMA', + 'recall': 'Recall', + 'registrationlisting': 'Registration', + 'udi': 'UDI', + 'drugsfda': 'Drugs@FDA', + 'label': 'Label', + 'ndc': 'NDC', + 'drugshortages': 'Drug Shortages', + 'remsspl': 'REMS SPL', + 'nsde': 'NSDE' + } + + const col_list: any[] = [] + const columns: TableColumn[] = [{ + Header: 'Field', + accessor: 'field', + Cell: (row: any) => ( + + {row.value[0]} + + ), + width: 242 + }] + + const fields: FieldType = {} + const data: DataItem[] = [] + const noun = this.state.selected_noun + + for (const [endpoint_name, endpoint_value] of Object.entries(this.props.master_harmonization[this.state.selected_noun])) { + if (Array.isArray(endpoint_value) && endpoint_value.length) { + endpoint_value.forEach(function (field, index) { + if (Object.keys(fields).indexOf(field) === -1) { + fields[field] = data.length + data.push({ + field: [field, noun + endpoint_name], + [endpoint_name]: true + }) + } + else { + data[fields[field]][endpoint_name] = true + } + if (col_list.indexOf(endpoint_name) === -1) { + columns.push({ + Header: endpoint_headers[endpoint_name], + accessor: endpoint_name, + Cell: row => ( +
{row.value ? : }
+ ) + }) + col_list.push(endpoint_name) + } + }) + } + } + this.setState({ + columns: columns, + data: data + }) + } + + onChangeNoun (e: React.MouseEvent) { + const title = (e.target as HTMLElement).getAttribute('title') + if (this.state.selected_noun !== title) { + this.setState({ + selected_noun: title || "" + }) + } + } + + render (): any { + + if (Object.keys(this.state.data as any).length === 0 && (this.state.data as any).constructor === Object) { + return + } + + const noun_buttons = this.state.nouns.map(noun => { + return ( +
this.onChangeNoun(e)} + title={noun}> + {noun.charAt(0).toUpperCase() + noun.slice(1)} +
+ ) + }) + + return ( +
+
+ { + noun_buttons + } +
+ +
+ ) + } +} + + +export default FieldsHarmonization diff --git a/src/components/RenderContentObject/KeyFacts.tsx b/src/components/RenderContentObject/KeyFacts.tsx index 1525ec879..91a8d68fe 100644 --- a/src/components/RenderContentObject/KeyFacts.tsx +++ b/src/components/RenderContentObject/KeyFacts.tsx @@ -34,7 +34,8 @@ const source: Record> = { 'ndc': 'NDC Directory', 'enforcement': 'FDA Recall Enterprise System (RES)', 'drugsfda': 'Drugs@FDA', - 'shortages': 'Drug Shortages' + 'shortages': 'Drug Shortages', + 'remsspl': 'REMS SPL' }, 'other': { 'historicaldocument': 'Historic FDA Press Releases', @@ -75,7 +76,8 @@ const sourceLink: any = { 'ndc': '/data/ndc/', 'enforcement': '/data/res/', 'drugsfda': '/data/drugsfda/', - 'shortages': '/data/drugshortages' + 'shortages': '/data/drugshortages', + 'remsspl': '/data/remsspl/' }, 'other': { 'historicaldocument': '/data/historicaldocument/', @@ -118,7 +120,8 @@ const timePeriod: any = { 'ndc': 'Last updated on', 'enforcement': '2004 to', 'drugsfda': '1939 to', - 'shortages': '2012 to' + 'shortages': '2012 to', + 'remsspl': '2007 to present' }, 'other': { 'historicaldocument': '1913 to', @@ -162,7 +165,8 @@ const frequency = { 'ndc': 'Daily', 'enforcement': 'Weekly', 'drugsfda': 'Daily (Monday-Friday)', - 'shortages': 'Daily' + 'shortages': 'Daily', + 'remsspl': 'Weekly' }, 'other': { 'historicaldocument': 'Infrequently', diff --git a/src/constants/api.tsx b/src/constants/api.tsx index 46581b082..742a3c93d 100644 --- a/src/constants/api.tsx +++ b/src/constants/api.tsx @@ -1,4 +1,4 @@ -export const API_LINK: string = "https://api.fda.gov" +export const API_LINK: string = "https://openfda-api.preprod.fda.gov" export const API_NAME: string = "api.fda.gov" export default { API_LINK, diff --git a/src/constants/fields/drugremsspl.yaml b/src/constants/fields/drugremsspl.yaml new file mode 100644 index 000000000..a111012fa --- /dev/null +++ b/src/constants/fields/drugremsspl.yaml @@ -0,0 +1,1209 @@ +properties: + rems_released: + description: "The release status of the document." + format: + is_exact: false + possible_values: + type: string + rems_released_date: + description: "The release date of the document." + format: + is_exact: false + possible_values: + type: string + document_id: + description: "Unique identifier for the entire document." + format: + is_exact: false + possible_values: + type: string + document_link: + description: "Link to the document." + format: + is_exact: false + possible_values: + type: string + rems_spl_file_link: + description: "Link to the REMS SPL file." + format: + is_exact: false + possible_values: + type: string + document_title: + description: "There is a title with the 'Risk Evaluation and Mitigation Strategy (REMS)' followed by [Drug/Class Name] REMS Program." + format: + is_exact: false + possible_values: + type: string + effective_time: + description: "Date reference to the particular version of the labeling document." + format: date + is_exact: false + pattern: "YYYYmmdd" + type: string + set_id: + description: "The Set ID, A globally unique identifier (GUID) for the labeling, stable across all versions or revisions." + format: + is_exact: false + possible_values: + type: string + version: + description: "The version of the file." + format: + is_exact: false + possible_values: + type: string + rems_website: + description: "Link to the REMS website." + format: + is_exact: false + possible_values: + type: string + sponsor_name: + description: "The name of the sponsor for the drug." + format: + is_exact: false + possible_values: + type: string + related_spl_document_set_id: + type: array + items: + description: "REMS append the related document(s) with more detail on how to evaluate and manage risks regarding the product described in the related + document(s). The related document(s) SPL document is referred to by its setId" + format: + is_exact: false + possible_values: + type: string + products: + items: + manufactured_product: + type: object + properties: + brand_name: + format: + is_exact: true + type: string + pattern: + description: "Brand or trade name of the drug product." + possible_values: + package_type: + description: "The package type of the drug." + format: + is_exact: false + possible_values: + type: string + generic_name: + description: "Generic name(s) of the drug product." + format: + is_exact: false + possible_values: + type: string + marketing_info: + type: object + properties: + marketing_category: + description: "Product types are broken down into several potential Marketing Categories, such as NDA/ANDA/BLA, OTC Monograph, or Unapproved Drug." + format: + is_exact: false + possible_values: + type: string + application_number: + description: "This corresponds to the NDA, ANDA, or BLA number reported by the labeler for products which have the corresponding Marketing Category designated. If the designated Marketing Category is OTC Monograph Final or OTC Monograph Not Final, then the application number will be the CFR citation corresponding to the appropriate Monograph (e.g. “part 341”). For unapproved drugs, this field will be null." + format: + is_exact: true + type: string + pattern: ^[BLA|ANDA|NDA]{3,4}[0-9]{6}$ + possible_values: + approval_holder_org: + description: "The organization that holds the drug approval." + format: + is_exact: false + possible_values: + type: string + type: array + rems_statutory_elements: + type: object + properties: + title: + description: "Title of this section." + format: + is_exact: false + possible_values: + type: string + text: + description: "Includes all the raw text content for this section." + format: + is_exact: false + possible_values: + effective_time: + description: "Date reference to the particular version of the labeling document." + format: date + is_exact: false + pattern: "YYYYmmdd" + type: string + medication_guide: + description: "Indicates whether a medication guide is included." + format: + is_exact: false + type: boolean + communication_plan: + description: "Indicates whether a communication plan is included." + format: + is_exact: false + type: boolean + packaging_and_disposal: + description: "Indicates whether packaging and disposal instructions are included." + format: + is_exact: false + type: boolean + elements_to_ensure_safe_use: + properties: + rems_etasu_A: + description: "Elements to Assure Safe Use A." + format: + is_exact: false + possible_values: + type: string + rems_etasu_B: + description: "Elements to Assure Safe Use B." + format: + is_exact: false + possible_values: + type: string + rems_etasu_C: + description: "Elements to Assure Safe Use C." + format: + is_exact: false + possible_values: + type: string + rems_etasu_D: + description: "Elements to Assure Safe Use D." + format: + is_exact: false + possible_values: + type: string + rems_etasu_E: + description: "Elements to Assure Safe Use E." + format: + is_exact: false + possible_values: + type: string + rems_etasu_F: + description: "Elements to Assure Safe Use F." + format: + is_exact: false + possible_values: + type: string + implementation_system: + description: "Indicates whether implementation system instructions are included." + format: + is_exact: false + type: boolean + timetable_for_submission_of_assessments: + description: "Indicates whether a timetable for submission of assessments is included." + format: + is_exact: false + type: boolean + spl_unclassified_section: + type: object + properties: + title: + description: "Title of this section." + format: + is_exact: false + possible_values: + type: string + text: + description: "Includes all the raw text content for this section." + format: + is_exact: false + possible_values: + type: string + effective_time: + description: "Date reference to the particular version of the labeling document." + format: date + is_exact: false + pattern: "YYYYmmdd" + type: string + spl_unclassified_section: + type: object + properties: + title: + description: "Title of this section." + format: + is_exact: false + possible_values: + type: string + text: + description: "Includes all the raw text content for this section." + format: + is_exact: false + possible_values: + type: string + effective_time: + description: "Date reference to the particular version of the labeling document." + format: date + is_exact: false + pattern: "YYYYmmdd" + type: string + rems_administrative_information: + type: object + properties: + title: + description: "Title of this section." + format: + is_exact: false + possible_values: + type: string + text: + description: "Includes all the raw text content for this section." + format: + is_exact: false + possible_values: + effective_time: + description: "Date reference to the particular version of the labeling document." + format: date + is_exact: false + pattern: "YYYYmmdd" + type: string + rems_released_date: + description: "The release date of the document." + format: + is_exact: false + possible_values: + type: string + initial_rems_approval: + description: "The initial REMS approval." + format: + is_exact: false + possible_values: + type: string + most_recent_rems_update: + description: "Date of the most recent REMS update." + format: date + is_exact: false + pattern: "YYYYmmdd" + type: string + risks: + description: "The risks indicated." + format: + is_exact: false + possible_values: + type: string + approval: + type: array + items: + properties: + code: + description: "The code for this approval in substance administration." + format: + is_exact: false + possible_values: + type: string + code_system: + description: "The code system used for this approval in substance administration." + format: + is_exact: false + possible_values: + type: string + name: + description: "The name of this approval in substance administration." + format: + is_exact: false + possible_values: + type: string + effective_time: + description: "Date reference to the particular version of the document." + format: date + is_exact: false + pattern: "YYYYmmdd" + type: string + rems_goals: + type: object + properties: + title: + description: "Title of this section." + format: + is_exact: false + possible_values: + type: string + content: + description: "Includes all the raw text content for this section." + format: + is_exact: false + possible_values: + type: string + effective_time: + description: "Date reference to the particular version of the labeling document." + format: date + is_exact: false + pattern: "YYYYmmdd" + type: string + rems_requirements: + type: object + properties: + effective_time: + description: "Date reference to the particular version of the labeling document." + format: date + is_exact: false + pattern: "YYYYmmdd" + type: string + title: + description: "The title of this section." + format: + is_exact: false + possible_values: + type: string + text: + description: "Information about the contents of this section." + format: + is_exact: false + possible_values: + type: string + rems_participant_requirements: + type: object + properties: + title: + description: "Title of this section." + format: + is_exact: false + possible_values: + type: string + content: + description: "Includes all the raw text content for this section." + format: + is_exact: false + possible_values: + type: string + effective_time: + description: "Date reference to the particular version of the labeling document." + format: date + is_exact: false + pattern: "YYYYmmdd" + type: string + substance_administration: + type: array + items: + properties: + protocol: + type: array + items: + properties: + protocol_text: + description: "Includes all the raw text content for this section." + format: + is_exact: false + possible_values: + type: string + protocol_code: + description: "The code for this protocol in substance administration." + format: + is_exact: false + possible_values: + type: string + protocol_code_name: + description: "The name of this protocol in substance administration." + format: + is_exact: false + possible_values: + type: string + code_system: + description: "The code system used for this protocol in substance administration." + format: + is_exact: false + possible_values: + type: string + requirement: + description: "The requirement of the drug being a component of a REMS protocol described in the REMS Summary." + type: object + properties: + protocol_text: + description: "Includes all the raw text content for this section." + format: + is_exact: false + possible_values: + type: string + protocol_code: + description: "The code for this protocol in substance administration." + format: + is_exact: false + possible_values: + type: string + protocol_code_name: + description: "The name of this protocol in substance administration." + format: + is_exact: false + possible_values: + type: string + protocol_timing_code_name: + description: "The name for the timing in substance administration." + format: + is_exact: false + possible_values: + type: string + protocol_timing_code: + description: "The code for the timing in substance administration." + format: + is_exact: false + possible_values: + type: string + requirement_code: + description: "The code for this requirement in substance administration." + format: + is_exact: false + possible_values: + type: string + requirement_code_name: + description: "The name of the appended REMS material that are part of the program." + format: + is_exact: false + possible_values: + type: string + requirement_text_number: + description: "The number associated with the requirement text content for this section." + format: + is_exact: false + possible_values: + type: string + requirement_text: + description: "Includes all the requirement text content for this section." + format: + is_exact: false + possible_values: + type: string + reference_id: + description: "References the procedural step the healthcare provider or the patient should undertake." + format: + is_exact: false + possible_values: + type: string + stakeholder_code: + description: "The code of the stakeholder for the requirement in substance administration." + format: + is_exact: false + possible_values: + type: string + stakeholder_code_name: + description: "The name of the stakeholder for the requirement in substance administration." + format: + is_exact: false + possible_values: + type: string + document_reference_root: + description: "Reference id for the document root." + format: + is_exact: false + possible_values: + type: string\ + rems_applicant_requirements: + type: object + properties: + title: + description: "Title of this section." + format: + is_exact: false + possible_values: + type: string + content: + description: "Includes all the raw text content for this section." + format: + is_exact: false + possible_values: + type: string + effective_time: + description: "Date reference to the particular version of the labeling document." + format: date + is_exact: false + pattern: "YYYYmmdd" + type: string + rems_communication: + type: object + properties: + text: + description: "Includes all the raw text content for this section." + format: + is_exact: false + possible_values: + type: string + effective_time: + description: "Date reference to the particular version of the labeling document." + format: date + is_exact: false + pattern: "YYYYmmdd" + type: string + substance_administration: + type: array + items: + properties: + protocol: + type: array + items: + properties: + protocol_text: + description: "Includes all the raw text content for this section." + format: + is_exact: false + possible_values: + type: string + protocol_code: + description: "The code for this protocol in substance administration." + format: + is_exact: false + possible_values: + type: string + protocol_code_name: + description: "The name of this protocol in substance administration." + format: + is_exact: false + possible_values: + type: string + code_system: + description: "The code system used for this protocol in substance administration." + format: + is_exact: false + possible_values: + type: string + requirement: + description: "The requirement of the drug being a component of a REMS protocol described in the REMS Summary." + type: object + properties: + protocol_text: + description: "Includes all the raw text content for this section." + format: + is_exact: false + possible_values: + type: string + protocol_code: + description: "The code for this protocol in substance administration." + format: + is_exact: false + possible_values: + type: string + protocol_code_name: + description: "The name of this protocol in substance administration." + format: + is_exact: false + possible_values: + type: string + protocol_timing_code_name: + description: "The name for the timing in substance administration." + format: + is_exact: false + possible_values: + type: string + protocol_timing_code: + description: "The code for the timing in substance administration." + format: + is_exact: false + possible_values: + type: string + requirement_code: + description: "The code for this requirement in substance administration." + format: + is_exact: false + possible_values: + type: string + requirement_code_name: + description: "The name of the appended REMS material that are part of the program." + format: + is_exact: false + possible_values: + type: string + requirement_text_number: + description: "The number associated with the requirement text content for this section." + format: + is_exact: false + possible_values: + type: string + requirement_text: + description: "Includes all the requirement text content for this section." + format: + is_exact: false + possible_values: + type: string + reference_id: + description: "References the procedural step the healthcare provider or the patient should undertake." + format: + is_exact: false + possible_values: + type: string + stakeholder_code: + description: "The code of the stakeholder for the requirement in substance administration." + format: + is_exact: false + possible_values: + type: string + stakeholder_code_name: + description: "The name of the stakeholder for the requirement in substance administration." + format: + is_exact: false + possible_values: + type: string + document_reference_root: + description: "Reference id for the document root." + format: + is_exact: false + possible_values: + type: string\ + rems_communication: + type: object + properties: + text: + description: "Includes all the raw text content for this section." + format: + is_exact: false + possible_values: + type: string + effective_time: + description: "Date reference to the particular version of the labeling document." + format: date + is_exact: false + pattern: "YYYYmmdd" + type: string + rems_submission_assessments_timetable: + type: object + properties: + content: + description: "Includes all the raw text content for this section." + format: + is_exact: false + possible_values: + effective_time: + description: "Date reference to the particular version of the labeling document." + format: date + is_exact: false + pattern: "YYYYmmdd" + type: string + rems_material: + type: object + properties: + title: + description: "Title of this section." + format: + is_exact: false + possible_values: + type: string + text: + description: "Includes all the raw text content for this section." + format: + is_exact: false + possible_values: + effective_time: + description: "Date reference to the particular version of the labeling document." + format: date + is_exact: false + pattern: "YYYYmmdd" + type: string + document: + properties: + title: + description: "The title of this document." + format: + is_exact: exact + possible_values: + type: string + rems_electronic_resource_name: + description: "The name of the electronic resource." + format: + is_exact: exact + possible_values: + type: string + developer_of_the_standard: + description: "The developer of the standard." + format: + is_exact: true + possible_values: + type: string + standard_version: + description: "The version of the standard." + format: + is_exact: exact + possible_values: + type: string + transaction: + description: "Information about the transaction." + format: + is_exact: exact + possible_values: + type: string + destination_address: + description: "The destination address." + format: + is_exact: exact + possible_values: + type: string + id_rems_material_document: + description: "The id of the REMS Material document." + format: + is_exact: exact + possible_values: + type: string + reference: + description: "The reference to this document." + format: + is_exact: exact + possible_values: + type: string + rems_elements: + type: array + items: + properties: + medication_guide: + properties: + content: + description: "Includes all the raw text content for this section." + format: + is_exact: false + possible_values: + type: string + effective_time: + description: "Date reference to the particular version of the labeling document." + format: date + is_exact: false + pattern: "YYYYmmdd" + type: string + elements_to_assure_safe_use: + type: array + items: + properties: + content: + description: "Includes all the raw text content for this section." + format: + is_exact: false + possible_values: + type: string + effective_time: + description: "Date reference to the particular version of the labeling document." + format: date + is_exact: false + pattern: "YYYYmmdd" + type: string + rems_implementation_system: + type: array + items: + properties: + content: + description: "Includes all the raw text content for this section." + format: + is_exact: false + possible_values: + type: string + effective_time: + description: "Date reference to the particular version of the labeling document." + format: date + is_exact: false + pattern: "YYYYmmdd" + type: string + rems_summary: + type: array + items: + properties: + title: + description: "The title of this section." + format: + is_exact: false + possible_values: + type: string + text: + description: "Information about the contents of this section." + format: + is_exact: false + possible_values: + type: string + effective_time: + description: "Date reference to the particular version of the labeling document." + format: date + is_exact: false + pattern: "YYYYmmdd" + type: string + substance_administration: + type: array + items: + properties: + protocol: + type: array + items: + properties: + protocol_text: + description: "Includes all the raw text content for this section." + format: + is_exact: false + possible_values: + type: string + protocol_code: + description: "The code for this protocol in substance administration." + format: + is_exact: false + possible_values: + type: string + protocol_code_name: + description: "The name of this protocol in substance administration." + format: + is_exact: false + possible_values: + type: string + code_system: + description: "The code system used for this protocol in substance administration." + format: + is_exact: false + possible_values: + type: string + requirement: + description: "The requirement of the drug being a component of a REMS protocol described in the REMS Summary." + type: object + properties: + protocol_text: + description: "Includes all the raw text content for this section." + format: + is_exact: false + possible_values: + type: string + protocol_code: + description: "The code for this protocol in substance administration." + format: + is_exact: false + possible_values: + type: string + protocol_code_name: + description: "The name of this protocol in substance administration." + format: + is_exact: false + possible_values: + type: string + protocol_timing_code_name: + description: "The name for the timing in substance administration." + format: + is_exact: false + possible_values: + type: string + protocol_timing_code: + description: "The code for the timing in substance administration." + format: + is_exact: false + possible_values: + type: string + requirement_code: + description: "The code for this requirement in substance administration." + format: + is_exact: false + possible_values: + type: string + requirement_code_name: + description: "The name of the appended REMS material that are part of the program." + format: + is_exact: false + possible_values: + type: string + requirement_text_number: + description: "The number associated with the requirement text content for this section." + format: + is_exact: false + possible_values: + type: string + requirement_text: + description: "Includes all the requirement text content for this section." + format: + is_exact: false + possible_values: + type: string + reference_id: + description: "References the procedural step the healthcare provider or the patient should undertake." + format: + is_exact: false + possible_values: + type: string + stakeholder_code: + description: "The code of the stakeholder for the requirement in substance administration." + format: + is_exact: false + possible_values: + type: string + stakeholder_code_name: + description: "The name of the stakeholder for the requirement in substance administration." + format: + is_exact: false + possible_values: + type: string + document_reference_root: + description: "Reference id for the document root." + format: + is_exact: false + possible_values: + type: string\ + rems_electronic_resource: + type: object + properties: + effective_time: + description: "Date reference to the particular version of the labeling document." + format: date + is_exact: false + pattern: "YYYYmmdd" + type: string + reference: + description: "The reference to this document." + format: + is_exact: false + possible_values: + type: string + rems_electronic_resource_name: + description: "The name of the electronic resource." + format: + is_exact: false + possible_values: + type: string + developer_of_the_standard: + description: "The developer of the standard." + format: + is_exact: false + possible_values: + type: string + standard_version: + description: "The version of the standard." + format: + is_exact: false + possible_values: + type: string + transaction: + description: "Information about the transaction." + format: + is_exact: false + possible_values: + type: string + destination_address: + description: "The destination address." + format: + is_exact: false + possible_values: + type: string + id_rems_material_document: + description: "The id of the REMS Material document." + format: + is_exact: false + possible_values: + type: string + openfda: + type: object + properties: + application_number: + type: array + items: + format: + is_exact: true + type: string + pattern: ^[BLA|ANDA|NDA]{3,4}[0-9]{6}$ + description: "This corresponds to the NDA, ANDA, or BLA number reported by the labeler for products which have the corresponding Marketing Category designated. If the designated Marketing Category is OTC Monograph Final or OTC Monograph Not Final, then the application number will be the CFR citation corresponding to the appropriate Monograph (e.g. “part 341”). For unapproved drugs, this field will be null." + possible_values: + brand_name: + type: array + items: + format: + is_exact: true + type: string + pattern: + description: "Brand or trade name of the drug product." + possible_values: + generic_name: + type: array + items: + format: + is_exact: true + type: string + pattern: + description: "Generic name(s) of the drug product." + possible_values: + is_original_packager: + type: array + items: + description: "Whether or not the drug has been repackaged for distribution." + format: + is_exact: false + possible_values: + type: one_of + value: + 'true': 'true' + 'false': 'false' + type: boolean + manufacturer_name: + type: array + items: + format: + is_exact: true + type: string + pattern: + description: "Name of manufacturer or company that makes this drug product, corresponding to the labeler code segment of the NDC." + possible_values: + nui: + type: array + items: + format: + is_exact: true + type: string + pattern: ^[N][0-9]{10}$ + description: "Unique identifier applied to a drug concept within the National Drug File Reference Terminology (NDF-RT)." + possible_values: + type: reference + value: + name: "NDF-RT" + link: "https://www.nlm.nih.gov/research/umls/sourcereleasedocs/current/NDFRT/" + package_ndc: + type: array + items: + format: + is_exact: true + type: string + pattern: ^[0-9]{5,4}-[0-9]{4,3}-[0-9]{1,2}$ + description: "This number, known as the NDC, identifies the labeler, product, and trade package size. The first segment, the labeler code, is assigned by the FDA. A labeler is any firm that manufactures (including repackers or relabelers), or distributes (under its own name) the drug." + possible_values: + pharm_class_cs: + type: array + items: + format: + is_exact: true + type: string + pattern: + description: "Chemical structure classification of the drug product’s pharmacologic class. Takes the form of the classification, followed by `[Chemical/Ingredient]` (such as `Thiazides [Chemical/Ingredient]` or `Antibodies, Monoclonal [Chemical/Ingredient]." + possible_values: + pharm_class_epc: + type: array + items: + format: + is_exact: true + type: string + pattern: + description: "Established pharmacologic class associated with an approved indication of an active moiety (generic drug) that the FDA has determined to be scientifically valid and clinically meaningful. Takes the form of the pharmacologic class, followed by `[EPC]` (such as `Thiazide Diuretic [EPC]` or `Tumor Necrosis Factor Blocker [EPC]`." + possible_values: + pharm_class_moa: + type: array + items: + format: + is_exact: true + type: string + pattern: + description: "Mechanism of action of the drug—molecular, subcellular, or cellular functional activity—of the drug’s established pharmacologic class. Takes the form of the mechanism of action, followed by `[MoA]` (such as `Calcium Channel Antagonists [MoA]` or `Tumor Necrosis Factor Receptor Blocking Activity [MoA]`." + possible_values: + pharm_class_pe: + type: array + items: + format: + is_exact: true + type: string + pattern: + description: "Physiologic effect or pharmacodynamic effect—tissue, organ, or organ system level functional activity—of the drug’s established pharmacologic class. Takes the form of the effect, followed by `[PE]` (such as `Increased Diuresis [PE]` or `Decreased Cytokine Activity [PE]`." + possible_values: + product_ndc: + type: array + items: + format: + is_exact: true + type: string + pattern: ^[0-9]{5,4}-[0-9]{4,3}$ + description: "The labeler manufacturer code and product code segments of the NDC number, separated by a hyphen." + possible_values: + product_type: + type: array + items: + format: + is_exact: true + type: string + pattern: + description: + possible_values: + type: reference + value: + name: "Type of drug product" + link: http://www.fda.gov/ForIndustry/DataStandards/StructuredProductLabeling/ucm162063.htm + route: + type: array + items: + format: + is_exact: true + type: string + pattern: + description: "The route of administation of the drug product." + possible_values: + type: reference + value: + name: "Route of administration" + link: http://www.fda.gov/ForIndustry/DataStandards/StructuredProductLabeling/ucm162034.htm + rxcui: + type: array + items: + format: + is_exact: true + type: string + pattern: ^[0-9]{6}$ + description: "The RxNorm Concept Unique Identifier. RxCUI is a unique number that describes a semantic concept about the drug product, including its ingredients, strength, and dose forms." + possible_values: + type: reference + value: + name: "RxNorm and RxCUI documentation" + link: "https://www.nlm.nih.gov/research/umls/rxnorm/docs/2012/rxnorm_doco_full_2012-3.html" + rxstring: + type: array + items: + format: + is_exact: true + type: string + description: + possible_values: + rxtty: + type: array + items: + format: + is_exact: true + type: string + description: + possible_values: + spl_id: + type: array + items: + format: + is_exact: true + type: string + pattern: ^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$ + description: "Unique identifier for a particular version of a Structured Product Label for a product. Also referred to as the document ID." + possible_values: + spl_set_id: + type: array + items: + format: + is_exact: true + type: string + pattern: ^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$ + description: "Unique identifier for the Structured Product Label for a product, which is stable across versions of the label. Also referred to as the set ID." + possible_values: + substance_name: + type: array + items: + format: + is_exact: true + type: string + pattern: + description: "The list of active ingredients of a drug product." + possible_values: + unii: + type: array + items: + format: + is_exact: true + type: string + pattern: ^[A-Z0-9]{10}$ + description: "Unique Ingredient Identifier, which is a non-proprietary, free, unique, unambiguous, non-semantic, alphanumeric identifier based on a substance’s molecular structure and/or descriptive information." + possible_values: + type: reference + value: + name: "Unique Ingredient Identifiers" + link: "http://fdasis.nlm.nih.gov/srs/srs.jsp" + upc: + type: array + items: + type: string + description: "Universal Product Code" + format: + is_exact: true + possible_values: + type: reference + value: + name: "Universal Product Code" + link: "https://en.wikipedia.org/wiki/Universal_Product_Code" + type: object \ No newline at end of file diff --git a/src/constants/fields/master_fields.yaml b/src/constants/fields/master_fields.yaml index c36556306..96c4e7b5a 100644 --- a/src/constants/fields/master_fields.yaml +++ b/src/constants/fields/master_fields.yaml @@ -7791,6 +7791,813 @@ drug: name: "Universal Product Code" link: "https://en.wikipedia.org/wiki/Universal_Product_Code" type: object + remsspl: + properties: + document_id: + description: "Unique identifier for the entire document." + format: + is_exact: false + possible_values: + type: string + document_title: + description: "There is a title with the 'Risk Evaluation and Mitigation Strategy (REMS)' followed by [Drug/Class Name] REMS Program." + format: + is_exact: false + possible_values: + type: string + effective_time: + description: "Date reference to the particular version of the labeling document." + format: date + is_exact: false + pattern: "YYYYmmdd" + type: string + set_id: + description: "The Set ID, A globally unique identifier (GUID) for the labeling, stable across all versions or revisions." + format: + is_exact: false + possible_values: + type: string + sponsor_name: + description: "The name of the sponsor for the drug." + format: + is_exact: false + possible_values: + type: string + openfda: + type: object + properties: + application_number: + type: array + items: + format: + is_exact: true + type: string + pattern: ^[BLA|ANDA|NDA]{3,4}[0-9]{6}$ + description: "This corresponds to the NDA, ANDA, or BLA number reported by the labeler for products which have the corresponding Marketing Category designated. If the designated Marketing Category is OTC Monograph Final or OTC Monograph Not Final, then the application number will be the CFR citation corresponding to the appropriate Monograph (e.g. “part 341”). For unapproved drugs, this field will be null." + possible_values: + brand_name: + type: array + items: + format: + is_exact: true + type: string + pattern: + description: "Brand or trade name of the drug product." + possible_values: + generic_name: + type: array + items: + format: + is_exact: true + type: string + pattern: + description: "Generic name(s) of the drug product." + possible_values: + is_original_packager: + type: array + items: + description: "Whether or not the drug has been repackaged for distribution." + format: + is_exact: false + possible_values: + type: one_of + value: + 'true': 'true' + 'false': 'false' + type: boolean + manufacturer_name: + type: array + items: + format: + is_exact: true + type: string + pattern: + description: "Name of manufacturer or company that makes this drug product, corresponding to the labeler code segment of the NDC." + possible_values: + nui: + type: array + items: + format: + is_exact: true + type: string + pattern: ^[N][0-9]{10}$ + description: "Unique identifier applied to a drug concept within the National Drug File Reference Terminology (NDF-RT)." + possible_values: + type: reference + value: + name: "NDF-RT" + link: "https://www.nlm.nih.gov/research/umls/sourcereleasedocs/current/NDFRT/" + package_ndc: + type: array + items: + format: + is_exact: true + type: string + pattern: ^[0-9]{5,4}-[0-9]{4,3}-[0-9]{1,2}$ + description: "This number, known as the NDC, identifies the labeler, product, and trade package size. The first segment, the labeler code, is assigned by the FDA. A labeler is any firm that manufactures (including repackers or relabelers), or distributes (under its own name) the drug." + possible_values: + pharm_class_cs: + type: array + items: + format: + is_exact: true + type: string + pattern: + description: "Chemical structure classification of the drug product’s pharmacologic class. Takes the form of the classification, followed by `[Chemical/Ingredient]` (such as `Thiazides [Chemical/Ingredient]` or `Antibodies, Monoclonal [Chemical/Ingredient]." + possible_values: + pharm_class_epc: + type: array + items: + format: + is_exact: true + type: string + pattern: + description: "Established pharmacologic class associated with an approved indication of an active moiety (generic drug) that the FDA has determined to be scientifically valid and clinically meaningful. Takes the form of the pharmacologic class, followed by `[EPC]` (such as `Thiazide Diuretic [EPC]` or `Tumor Necrosis Factor Blocker [EPC]`." + possible_values: + pharm_class_pe: + type: array + items: + format: + is_exact: true + type: string + pattern: + description: "Physiologic effect or pharmacodynamic effect—tissue, organ, or organ system level functional activity—of the drug’s established pharmacologic class. Takes the form of the effect, followed by `[PE]` (such as `Increased Diuresis [PE]` or `Decreased Cytokine Activity [PE]`." + possible_values: + pharm_class_moa: + type: array + items: + format: + is_exact: true + type: string + pattern: + description: "Mechanism of action of the drug—molecular, subcellular, or cellular functional activity—of the drug’s established pharmacologic class. Takes the form of the mechanism of action, followed by `[MoA]` (such as `Calcium Channel Antagonists [MoA]` or `Tumor Necrosis Factor Receptor Blocking Activity [MoA]`." + possible_values: + product_ndc: + type: array + items: + format: + is_exact: true + type: string + pattern: ^[0-9]{5,4}-[0-9]{4,3}$ + description: "The labeler manufacturer code and product code segments of the NDC number, separated by a hyphen." + possible_values: + product_type: + type: array + items: + format: + is_exact: true + type: string + pattern: + description: + possible_values: + type: reference + value: + name: "Type of drug product" + link: http://www.fda.gov/ForIndustry/DataStandards/StructuredProductLabeling/ucm162063.htm + route: + type: array + items: + format: + is_exact: true + type: string + pattern: + description: "The route of administation of the drug product." + possible_values: + type: reference + value: + name: "Route of administration" + link: http://www.fda.gov/ForIndustry/DataStandards/StructuredProductLabeling/ucm162034.htm + rxcui: + type: array + items: + format: + is_exact: true + type: string + pattern: ^[0-9]{6}$ + description: "The RxNorm Concept Unique Identifier. RxCUI is a unique number that describes a semantic concept about the drug product, including its ingredients, strength, and dose forms." + possible_values: + type: reference + value: + name: "RxNorm and RxCUI documentation" + link: "https://www.nlm.nih.gov/research/umls/rxnorm/docs/2012/rxnorm_doco_full_2012-3.html" + rxtty: + type: array + items: + format: + is_exact: true + type: string + description: + possible_values: + spl_id: + type: array + items: + format: + is_exact: true + type: string + pattern: ^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$ + description: "Unique identifier for a particular version of a Structured Product Label for a product. Also referred to as the document ID." + possible_values: + spl_set_id: + type: array + items: + format: + is_exact: true + type: string + pattern: ^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$ + description: "Unique identifier for the Structured Product Label for a product, which is stable across versions of the label. Also referred to as the set ID." + possible_values: + substance_name: + type: array + items: + format: + is_exact: true + type: string + pattern: + description: "The list of active ingredients of a drug product." + possible_values: + unii: + type: array + items: + format: + is_exact: true + type: string + pattern: ^[A-Z0-9]{10}$ + description: "Unique Ingredient Identifier, which is a non-proprietary, free, unique, unambiguous, non-semantic, alphanumeric identifier based on a substance’s molecular structure and/or descriptive information." + possible_values: + type: reference + value: + name: "Unique Ingredient Identifiers" + link: "http://fdasis.nlm.nih.gov/srs/srs.jsp" + upc: + type: array + items: + type: string + description: "Universal Product Code" + format: + is_exact: true + possible_values: + type: reference + value: + name: "Universal Product Code" + link: "https://en.wikipedia.org/wiki/Universal_Product_Code" + products: + items: + manufactured_product: + type: object + properties: + generic_name: + description: "Generic name(s) of the drug product." + format: + is_exact: false + possible_values: + type: string + brand_name: + format: + is_exact: true + type: string + pattern: + description: "Brand or trade name of the drug product." + possible_values: + package_type: + description: "The package type of the drug." + format: + is_exact: false + possible_values: + type: string + marketing_info: + type: object + properties: + application_number: + description: "This corresponds to the NDA, ANDA, or BLA number reported by the labeler for products which have the corresponding Marketing Category designated. If the designated Marketing Category is OTC Monograph Final or OTC Monograph Not Final, then the application number will be the CFR citation corresponding to the appropriate Monograph (e.g. “part 341”). For unapproved drugs, this field will be null." + format: + is_exact: true + type: string + pattern: ^[BLA|ANDA|NDA]{3,4}[0-9]{6}$ + possible_values: + approval_holder_org: + description: "The organization that holds the drug approval." + format: + is_exact: false + possible_values: + type: string + marketing_category: + description: "Product types are broken down into several potential Marketing Categories, such as NDA/ANDA/BLA, OTC Monograph, or Unapproved Drug." + format: + is_exact: false + possible_values: + type: string + type: array + related_spl_document_set_id: + type: array + items: + description: "REMS append the related document(s) with more detail on how to evaluate and manage risks regarding the product described in the related + document(s). The related document(s) SPL document is referred to by its setId" + format: + is_exact: false + possible_values: + type: string + rems_administrative_information: + type: object + properties: + content: + description: "Includes all the raw text content for this section.." + format: + is_exact: false + possible_values: + type: string + effective_time: + description: "Date reference to the particular version of the labeling document." + format: date + is_exact: false + pattern: "YYYYmmdd" + type: string + rems_elements: + type: array + items: + properties: + medication_guide: + properties: + content: + description: "Includes all the raw text content for this section.." + format: + is_exact: false + possible_values: + type: string + effective_time: + description: "Date reference to the particular version of the labeling document." + format: date + is_exact: false + pattern: "YYYYmmdd" + type: string + elements_to_assure_safe_use: + type: array + items: + properties: + content: + description: "Includes all the raw text content for this section.." + format: + is_exact: false + possible_values: + type: string + effective_time: + description: "Date reference to the particular version of the labeling document." + format: date + is_exact: false + pattern: "YYYYmmdd" + type: string + rems_implementation_system: + type: array + items: + properties: + content: + description: "Includes all the raw text content for this section.." + format: + is_exact: false + possible_values: + type: string + effective_time: + description: "Date reference to the particular version of the labeling document." + format: date + is_exact: false + pattern: "YYYYmmdd" + type: string + rems_submission_assessments_timetable: + description: "Description of the timetable for submissions assessments to FDA by the sponsor." + type: array + items: + properties: + content: + description: "Includes all the raw text content for this section.." + format: + is_exact: false + possible_values: + type: string + effective_time: + description: "Date reference to the particular version of the labeling document." + format: date + is_exact: false + pattern: "YYYYmmdd" + type: string + rems_summary: + type: array + items: + properties: + text: + description: "Information about the contents of this section." + format: + is_exact: false + possible_values: + type: string + title: + description: "The title of this section." + format: + is_exact: false + possible_values: + type: string + effective_time: + description: "Date reference to the particular version of the labeling document." + format: date + is_exact: false + pattern: "YYYYmmdd" + type: string + substance_administration: + type: array + items: + properties: + protocol: + type: array + items: + properties: + code: + description: "The code for this protocol in substance administration." + format: + is_exact: false + possible_values: + type: string + code_system: + description: "The code system used for this protocol in substance administration." + format: + is_exact: false + possible_values: + type: string + name: + description: "The name of this protocol in substance administration." + format: + is_exact: false + possible_values: + type: string + requirement: + description: "The requirement of the drug being a component of a REMS protocol described in the REMS Summary." + type: object + properties: + document_reference_root: + description: "Reference id for the document root." + format: + is_exact: false + possible_values: + type: string + name: + description: "The name of the appended REMS material that are part of the program." + format: + is_exact: false + possible_values: + type: string + reference_id: + description: "References the procedural step the healthcare provider or the patient should undertake." + format: + is_exact: false + possible_values: + type: string + sequence_number: + description: "Date reference to the particular version of the labeling document." + format: date + is_exact: false + pattern: "YYYYmmdd" + type: string + stakeholder_code: + description: "The code of the stakeholder for the requirement in substance administration." + format: + is_exact: false + possible_values: + type: string + stakeholder_name: + description: "The name of the stakeholder for the requirement in substance administration." + format: + is_exact: false + possible_values: + type: string + title: + description: "There is a title with the 'Risk Evaluation and Mitigation Strategy (REMS)' followed by [Drug/Class Name] REMS Program." + format: + is_exact: false + possible_values: + type: string + approval: + type: array + items: + properties: + code: + description: "The code for this approval in substance administration." + format: + is_exact: false + possible_values: + type: string + code_system: + description: "The code system used for this approval in substance administration." + format: + is_exact: false + possible_values: + type: string + effective_time: + description: "Date reference to the particular version of the document." + format: date + is_exact: false + pattern: "YYYYmmdd" + type: string + name: + description: "The name of this approval in substance administration." + format: + is_exact: false + possible_values: + type: string + rems_material: + type: array + items: + properties: + effective_time: + description: "Date reference to the particular version of the document." + format: date + is_exact: false + pattern: "YYYYmmdd" + type: string + document: + type: array + items: + properties: + name: + description: "The name of the REMS material document that are part of the program." + format: + is_exact: true + possible_values: + type: string + reference: + description: "The location of the appended REMS material that are part of the program." + format: + is_exact: true + possible_values: + type: string + rems_goals: + type: object + properties: + content: + description: "Includes all the raw text content for this section.." + format: + is_exact: false + possible_values: + type: string + effective_time: + description: "Date reference to the particular version of the labeling document." + format: date + is_exact: false + pattern: "YYYYmmdd" + type: string + rems_requirements: + type: object + properties: + text: + description: "Information about the contents of this section." + format: + is_exact: false + possible_values: + type: string + title: + description: "The title of this section." + format: + is_exact: false + possible_values: + type: string + effective_time: + description: "Date reference to the particular version of the labeling document." + format: date + is_exact: false + pattern: "YYYYmmdd" + type: string + rems_participant_requirements: + type: object + properties: + content: + description: "Includes all the raw text content for this section.." + format: + is_exact: false + possible_values: + type: string + effective_time: + description: "Date reference to the particular version of the labeling document." + format: date + is_exact: false + pattern: "YYYYmmdd" + type: string + substance_administration: + type: array + items: + properties: + protocol: + type: array + items: + properties: + code: + description: "The code for this protocol in substance administration." + format: + is_exact: false + possible_values: + type: string + code_system: + description: "The code system used for this protocol in substance administration." + format: + is_exact: false + possible_values: + type: string + name: + description: "The name of this protocol in substance administration." + format: + is_exact: false + possible_values: + type: string + requirement: + description: "The requirement of the drug being a component of a REMS protocol described in the REMS Summary." + type: object + properties: + document_reference_root: + description: "Reference id for the document root." + format: + is_exact: false + possible_values: + type: string + name: + description: "The name of the appended REMS material that are part of the program." + format: + is_exact: false + possible_values: + type: string + reference_id: + description: "References the procedural step the healthcare provider or the patient should undertake." + format: + is_exact: false + possible_values: + type: string + stakeholder_code: + description: "The code of the stakeholder for the requirement in substance administration." + format: + is_exact: false + possible_values: + type: string + stakeholder_name: + description: "The name of the stakeholder for the requirement in substance administration." + format: + is_exact: false + possible_values: + type: string + title: + description: "There is a title with the 'Risk Evaluation and Mitigation Strategy (REMS)' followed by [Drug/Class Name] REMS Program." + format: + is_exact: false + possible_values: + type: string + approval: + type: array + items: + properties: + code: + description: "The code for this approval in substance administration." + format: + is_exact: false + possible_values: + type: string + code_system: + description: "The code system used for this approval in substance administration." + format: + is_exact: false + possible_values: + type: string + effective_time: + description: "Date reference to the particular version of the document." + format: date + is_exact: false + pattern: "YYYYmmdd" + type: string + name: + description: "The name of this approval in substance administration." + format: + is_exact: false + possible_values: + type: string + rems_applicant_requirements: + type: object + properties: + content: + description: "Includes all the raw text content for this section.." + format: + is_exact: false + possible_values: + type: string + effective_time: + description: "Date reference to the particular version of the labeling document." + format: date + is_exact: false + pattern: "YYYYmmdd" + type: string + substance_administration: + type: array + items: + properties: + protocol: + type: array + items: + properties: + code: + description: "The code for this protocol in substance administration." + format: + is_exact: false + possible_values: + type: string + code_system: + description: "The code system used for this protocol in substance administration." + format: + is_exact: false + possible_values: + type: string + name: + description: "The name of this protocol in substance administration." + format: + is_exact: false + possible_values: + type: string + requirement: + description: "The requirement of the drug being a component of a REMS protocol described in the REMS Summary." + type: object + properties: + document_reference_root: + description: "Reference id for the document root." + format: + is_exact: false + possible_values: + type: string + name: + description: "The name of the appended REMS material that are part of the program." + format: + is_exact: false + possible_values: + type: string + reference_id: + description: "References the procedural step the healthcare provider or the patient should undertake." + format: + is_exact: false + possible_values: + type: string + stakeholder_code: + description: "The code of the stakeholder for the requirement in substance administration." + format: + is_exact: false + possible_values: + type: string + stakeholder_name: + description: "The name of the stakeholder for the requirement in substance administration." + format: + is_exact: false + possible_values: + type: string + title: + description: "There is a title with the 'Risk Evaluation and Mitigation Strategy (REMS)' followed by [Drug/Class Name] REMS Program." + format: + is_exact: false + possible_values: + type: string + approval: + type: array + items: + properties: + code: + description: "The code for this approval in substance administration." + format: + is_exact: false + possible_values: + type: string + code_system: + description: "The code system used for this approval in substance administration." + format: + is_exact: false + possible_values: + type: string + effective_time: + description: "Date reference to the particular version of the document." + format: date + is_exact: false + pattern: "YYYYmmdd" + type: string + name: + description: "The name of this approval in substance administration." + format: + is_exact: false + possible_values: + type: string + spl_unclassified_section: + type: object + properties: + record_details: + items: + description: "Key points of what is covered in the REMS SPL record" + format: + is_exact: false + possible_values: + type: string + type: array + effective_time: + description: "Date reference to the particular version of the labeling document." + format: date + is_exact: false + pattern: "YYYYmmdd" + type: string + type: object food: enforcement: properties: diff --git a/src/constants/fields/master_harmonization.yaml b/src/constants/fields/master_harmonization.yaml index bffb8cc1e..f2432299c 100644 --- a/src/constants/fields/master_harmonization.yaml +++ b/src/constants/fields/master_harmonization.yaml @@ -163,6 +163,30 @@ drug: - pharm_class_cs - nui - pharm_class_pe + remsspl: + - manufacturer_name + - unii + - product_type + - spl_set_id + - route + - generic_name + - brand_name + - product_ndc + - substance_name + - spl_id + - is_original_packager + - package_ndc + - upc + - original_packager_product_ndc + - application_number + - rxcui + - rxstring + - rxtty + - pharm_class_moa + - pharm_class_epc + - pharm_class_cs + - nui + - pharm_class_pe food: enforcement: [] event: [] diff --git a/src/pages/apis/doc-links.yaml b/src/pages/apis/doc-links.yaml index 1bfabf1f4..689cda012 100644 --- a/src/pages/apis/doc-links.yaml +++ b/src/pages/apis/doc-links.yaml @@ -180,6 +180,24 @@ link: /apis/drug/drugshortages/download/ - title: Searchable fields link: /apis/drug/drugshortages/searchable-fields/ + - title: REMS SPL + id: drug-rems-spl + collapse: true + items: + - title: Overview + link: /apis/drug/remsspl/ + - title: How to use the API + link: /apis/drug/remsspl/how-to-use-the-endpoint/ + - title: Example API queries + link: /apis/drug/remsspl/example-api-queries/ + - title: Explore the API with an interactive chart + link: /apis/drug/remsspl/explore-the-api-with-an-interactive-chart/ + - title: Understanding the API Results + link: /apis/drug/remsspl/understanding-the-api-results/ + - title: Download the dataset + link: /apis/drug/remsspl/download/ + - title: Searchable fields + link: /apis/drug/remsspl/searchable-fields/ - title: Device API Endpoints id: device-api-endpoints diff --git a/src/pages/apis/drug/index.tsx b/src/pages/apis/drug/index.tsx index 6e2641648..d844b2492 100644 --- a/src/pages/apis/drug/index.tsx +++ b/src/pages/apis/drug/index.tsx @@ -27,9 +27,13 @@ export default () => ( noun_name='drug' endpoint_name='drugsfda' /> +
diff --git a/src/pages/apis/drug/remsspl/_explorers.yaml b/src/pages/apis/drug/remsspl/_explorers.yaml new file mode 100644 index 000000000..02c35e5cd --- /dev/null +++ b/src/pages/apis/drug/remsspl/_explorers.yaml @@ -0,0 +1,37 @@ +effectiveTime: + params: + - search for all records with effective_time between Jun 01, 2016 and Jan 1, 2024. + - limit to 1 record. + query: 'https://openfda-api.preprod.fda.gov/drug/remsspl.json?search=effective_time:[20160601+TO+20240101]&limit=1' + description: + - This query searches for all records in a certain date range, and asks for a single one. + - See [searchable fields](/apis/drug/remsspl/searchable-fields/) for more about effective_time. Brackets [ ] are used to specify a range for date, number, or string fields. + title: One REMS SPL record +medicationGuide: + params: + - search for all records with the medication_guide field set to true. + query: 'https://openfda-api.preprod.fda.gov/drug/remsspl.json?search=rems_statutory_elements.medication_guide:true' + description: + - This query searches for REMS SPL with a medication guide, and returns one result. + title: REMS SPL record with a medication guide +setID: + params: + - search for records with given set_id. + query: 'https://openfda-api.preprod.fda.gov/drug/remsspl.json?search=set_id:01291f98-96ef-4336-95f8-825dd19690ce' + description: + - This query searches the REMS SPL dataset for records that include a specific set_id + title: Search REMS SPL records by Set ID +sponsorName: + params: + - search for all records with given sponsor_name. + query: 'https://openfda-api.preprod.fda.gov/drug/remsspl.json?search=sponsor_name:"Syneos%20Health" ' + description: + - This query searches the REMS SPL dataset for records that match the given sponsor_name. + title: Search REMS SPL records by Sponsor +brandName: + params: + - search for all records with given brand_name. + query: 'https://openfda-api.preprod.fda.gov/drug/remsspl.json?search=products.manufactured_product.brand_name:SUBLOCADE' + description: + - This query searches the REMS SPL dataset for records that match a specific brand_name. + title: Search REMS SPL records by Brand Name \ No newline at end of file diff --git a/src/pages/apis/drug/remsspl/_infographic_definitions.json b/src/pages/apis/drug/remsspl/_infographic_definitions.json new file mode 100644 index 000000000..3da267a43 --- /dev/null +++ b/src/pages/apis/drug/remsspl/_infographic_definitions.json @@ -0,0 +1,140 @@ +{ + "globalDefs": { + "startYear": 2012, + "api": "/drug/enforcement", + "apiName": "Reports", + "font": { + "color":"#000000", + "fontFamily": "Merriweather,Georgia,serif" + }, + "tooltip": { + "fontSize": "11px", + "font": "Merriweather,Georgia,serif" + }, + "pieChartConfig": { + "fill": "#8884d8", + "colors": [ + "#0088FE", + "#1ECFFF", + "#00C49F", + "#FFBB28", + "#d62728" + ] + }, + "lineChartConfig": { + "chartRow": { + "height": 200, + "trackerInfoWidth": 130 + }, + "chartContainer": { + "width": 700, + "showGrid": true, + "format": "year", + "timeAxisStyle": { + "labels": { + "labelColor": "black", + "labelWeight": 150, + "labelSize": 13 + }, + "axis": { + "axisColor": "grey", + "axisWidth": 1 + } + } + }, + "yAxis": { + "label": "Number of Drug Reports", + "min": 0, + "width": 70, + "type": "linear", + "labelOffset": 0, + "style": { + "labelFont": "Merriweather,Georgia,serif", + "labels": { + "labelColor": "#000000", + "labelWeight": 150, + "labelSize": 11 + }, + "axis": { + "axisColor": "#000000" + } + } + }, + "lineChart": { + "interpolation": "curveBasis" + }, + "colors": [ + "#1f77b4", "#00d899", "#ff3300", "#2ca02c", "#ff7f0e", + "#006666", "#990099", "#9467bd", "#c5b0d5", "#ff33cc", + "#8c564b", "#c49c94", "#e377c2", "#f7b6d2", "#7f7f7f", + "#c7c7c7", "#bcbd22", "#dbdb8d", "#17becf", "#9edae5","#00008B" + ], + "eventMarker": { + "infoTimeFormat":"%m-%Y", + "markerRadius": 0, + "markerStyle":{ + "fill": "black" + }, + "infoWidth": 175, + "infoStyle": { + "fill": "white", + "opacity": 0.90, + "stroke": "#0000", + "pointerEvents": "none" + }, + "markerLabelStyle": { + "fill": "#000000" + } + } + } + }, + "choices": [ + { + "type": "PieChart", + "title": "Drug Enforcement Report by Classification", + "subtitle": "Drug Enforcement Reports", + "yTitle": "Drugs", + "xTitle": "", + "selectionPostFix": " ", + "countBy": "classification.exact", + "dateField": "report_date", + "subfield": "state.exact", + "subfieldLabel": "State", + "pieChartCategoryName": "Classification", + "pieChartApiName": "Drug Enforcement Reports", + "lineLimiter": 100, + "defs": { + "Class II": "Class II", + "Class I": "Class I", + "Class III": "Class III", + "Not Yet Classified": "Unclassified" + }, + "dataFunction": "_getAllData", + "xLegendCoordinate": -30, + "excludedTerms": [""], + "pieChartConfig": { + "default": { + "id":"Class I", + "index": 2 + }, + "radius": { + "cx": 305, + "cy": 200, + "innerRadius": 60, + "outerRadius": 80 + }, + "textLabel": ["Percentage", "by Class"], + "width": 450, + "widthReset": 365, + "height": 450, + "viewBox": "90 100 540 510", + "margin":{ + "top": 5, + "right": 5, + "bottom": 5, + "left": 0 + } + } + } + ] +} \ No newline at end of file diff --git a/src/pages/apis/drug/remsspl/_infographics.yaml b/src/pages/apis/drug/remsspl/_infographics.yaml new file mode 100644 index 000000000..d4f2ce3a6 --- /dev/null +++ b/src/pages/apis/drug/remsspl/_infographics.yaml @@ -0,0 +1,31 @@ +- title: "REMS SPL Submissions over time" + short: "Submissions over time" + dataset: REMSSPL + description: + - "The openFDA REMS SPL API provides data for the drug safety program Risk Evaluation Mitigation Strategies. Since mid-2016, REMS data has been submitted in the [Structured Product Labeling (SPL) format](/data/spl/)." + - "This chart shows labeling submissions over time, by looking at their 'effective dates.'" + countParam: "effective_time" + filters: + - title: "All REMS SPL submissions" + searchParam: "" + - title: "Oral Route of Administration" + searchParam: "openfda.route:ORAL" + - title: "Subcutaneous Route of Administration" + searchParam: "openfda.route:SUBCUTANEOUS" + type: Line + dateConstraint: effective_time +- title: "Routes of administration" + short: "Routes of administration" + dataset: REMSSPL + description: + - "Most drug products include a single route of administration - oral, intravenous, topical, and so forth. Click the buttons below to see the top routes of administration noted in various product types." + countParam: "openfda.route.exact" + filters: + - title: "All REMS SPL submissions" + searchParam: "" + - title: "Prescription drug labeling" + searchParam: "openfda.product_type:'HUMAN PRESCRIPTION DRUG'" + - title: "Cellular therapy" + searchParam: "openfda.product_type:'CELLULAR THERAPY'" + type: Line + dateConstraint: false \ No newline at end of file diff --git a/src/pages/apis/drug/remsspl/_meta.yaml b/src/pages/apis/drug/remsspl/_meta.yaml new file mode 100644 index 000000000..d45ef38ae --- /dev/null +++ b/src/pages/apis/drug/remsspl/_meta.yaml @@ -0,0 +1,13 @@ +documentTitle: openFDA › Drugs › REMS SPL +name: Risk Evaluation and Mitigation Strategy +description: "REMS are programs designed to ensure that the benefits of certain drugs outweigh their risks." +datasets: + - REMSSPL +label: Risk Evaluation and Mitigation Strategy +title: Risk Evaluation and Mitigation Strategy +path: /apis/drug/remsspl +api_path: /drug/remsspl +start: 20160101 +status: remsspl +dateConstraintKey: rems_goals.effective_time +type: endpoint diff --git a/src/pages/apis/drug/remsspl/download/index.tsx b/src/pages/apis/drug/remsspl/download/index.tsx new file mode 100644 index 000000000..116a7040d --- /dev/null +++ b/src/pages/apis/drug/remsspl/download/index.tsx @@ -0,0 +1,23 @@ +import React from "react" +import Link from "gatsby-link" + +import Downloads from '../../../../../components/Downloads' + +import meta from '../_meta.yaml' + +class IndexRoute extends React.Component { + render () { + + return ( +
+

Download the dataset

+

Use the links below to download the dataset manually, or review the Downloads documentation for more information about other download methods.

+ +
+ ) + } +} + +export default IndexRoute diff --git a/src/pages/apis/drug/remsspl/example-api-queries/index.tsx b/src/pages/apis/drug/remsspl/example-api-queries/index.tsx new file mode 100644 index 000000000..a5ea6280c --- /dev/null +++ b/src/pages/apis/drug/remsspl/example-api-queries/index.tsx @@ -0,0 +1,59 @@ +import React from "react" + +import QueryTour from '../../../../../components/QueryTour' +import explorers from '../_explorers.yaml' + +class IndexRoute extends React.Component { + render () { + + const effectiveTime = explorers['effectiveTime'] + const medicationGuide = explorers['medicationGuide'] + const setID = explorers['setID'] + const sponsorName = explorers['sponsorName'] + const brandName = explorers['brandName'] + + return ( +
+

Example REMS SPL queries

+

To help get you started, we have provided some query examples below. Use the Run query button to call the API and get back results. You can experiment by editing the example queries in the black text box.

+ + + + + +
+ ) + } +} + +export default IndexRoute diff --git a/src/pages/apis/drug/remsspl/explore-the-api-with-an-interactive-chart/index.tsx b/src/pages/apis/drug/remsspl/explore-the-api-with-an-interactive-chart/index.tsx new file mode 100644 index 000000000..5c81f665f --- /dev/null +++ b/src/pages/apis/drug/remsspl/explore-the-api-with-an-interactive-chart/index.tsx @@ -0,0 +1,31 @@ +import React from "react" + +import InteractiveInfographicTour from '../../../../../components/InteractiveInfographicTour' + +import infographics from '../_infographics.yaml' +import fields from '../../../../../constants/fields/drugremsspl.yaml' +import meta from '../_meta.yaml' +import mapFields from "../../../../../utils/mapFields" +import flattenFields from "../../../../../utils/flattenFields" + +class IndexRoute extends React.Component { + render () { + + const fieldsMapped = mapFields(fields.properties) + const fieldsFlattened = flattenFields(fieldsMapped) + + return ( +
+ +
+ ) + } +} + +export default IndexRoute diff --git a/src/pages/apis/drug/remsspl/how-to-use-the-endpoint/index.tsx b/src/pages/apis/drug/remsspl/how-to-use-the-endpoint/index.tsx new file mode 100644 index 000000000..a271ec74e --- /dev/null +++ b/src/pages/apis/drug/remsspl/how-to-use-the-endpoint/index.tsx @@ -0,0 +1,35 @@ +import React from "react" +import Link from "gatsby-link" + +import APIUseSteps from "../../../../../components/APIUseSteps" +import APIQueryBreakdown from "../../../../../components/APIQueryBreakdown" + + +class IndexRoute extends React.Component { + render () { + + return ( +
+

How to use the Endpoint

+

Getting started with and learning how to use the API is relatively straightforward. Here are some recommended steps:

+ +

Then, when you are ready, obtain an API Key. While you don’t need an Application Programming Interface Key to try or use the Application Programming Interface, we recommend you get one if you are planning to use the Application Programming Interface on a regular basis. For more information on Application Programming Interface Keys, see the Authentication documentation.

+ +

Making a simple API Call

+

You can call the API from a web browser. Simply type a valid query in your browser’s address bar and press the Enter key.

+

In the example below, we are searching the records in the REMS SPL endpoint for matches with SOLUTION in the product_type field. We are requesting to see the first 5 records that match."

+ + +

Some key pointers

+
    +
  • An openFDA query always begins with the base endpoint, which in this case is: https://api.fda.gov/drug/remsspl.json
  • +
  • Searches have a special syntax: search=field:term
  • +
  • Unless otherwise specified, the API will return only one matching record for a search. You can specify the number of records to be returned by using the limit parameter. The maximum limit allowed is 100 for any single Application Programming Interface call. If no limit is set, the Application Programming Interface will return one matching record.
  • +
+

It is possible to construct very complex queries using the openFDA API. Review the Construct the query documentation to learn more about all the available query parameters, how to handle quotations, spaces, phrase matches, and groupings, how to search on dates and ranges, and more.

+
+ ) + } +} + +export default IndexRoute diff --git a/src/pages/apis/drug/remsspl/index.tsx b/src/pages/apis/drug/remsspl/index.tsx new file mode 100644 index 000000000..1c06cf0ae --- /dev/null +++ b/src/pages/apis/drug/remsspl/index.tsx @@ -0,0 +1,55 @@ +import React from "react" +import Link from "gatsby-link" + +import KeyFacts from '../../../../components/RenderContentObject/KeyFacts' +import FieldsHarmonization from '../../../../components/FieldsHarmonization' + +import master_harmonization from '../../../../constants/fields/master_harmonization.yaml' +import meta from './_meta.yaml' + +class IndexRoute extends React.Component { + render () { + + return ( +
+

REMS SPL Overview

+

The Food and Drug Administration Amendments Act of 2007 gave FDA the authority to require a Risk Evaluation and + Mitigation Strategy (REMS) from manufacturers to ensure that the benefits of a drug or biological product outweigh its risks. + A REMs may be required by the FDA as part of the approval of a new product, or for an approved product when new safety information arises. + Essentially, a REMS is a safety strategy to manage a known or potential serious risk associated with a medicine and to enable patients + to have continued access to such medicines by managing their safe use. Each REMS has specific safety measures unique to the safety + risks associated with a particular drug or class of drugs.

+

The FDA has begun accepting REMS in Structured Product Labeling (SPL) format to facilitate making REMS information + available within existing healthcare systems and workflows. SPL can be used to capture and present REMS information + in a format that is easily shared with stakeholders and readily incorporated into health information technology.

+

The openFDA REMS SPL API returns REMS data that has been submitted to the FDA electronically using the REMS SPL format.

+ + + +

Fields Harmonization

+

Different datasets use different unique identifiers, which can make it difficult to find the same drug in each dataset.

+

openFDA features harmonization on specific identifiers to make it easier to both search for and understand the drug products returned by API queries. These additional fields are attached to records in all categories, if applicable.

+

Review the chart below to better understand which fields are harmonized.

+ + +

Additional Information About REMS SPL

+

To read more about REMS SPL, please visit:

+ + +

Responsible use of the data

+

Do not rely on openFDA to make decisions regarding medical care. Always speak to your health provider about the risks and benefits of FDA-regulated products. We may limit or otherwise restrict your access to the API in line with our Terms of Service

+
+ ) + } +} + +export default IndexRoute diff --git a/src/pages/apis/drug/remsspl/searchable-fields/index.tsx b/src/pages/apis/drug/remsspl/searchable-fields/index.tsx new file mode 100644 index 000000000..dfa52f0c8 --- /dev/null +++ b/src/pages/apis/drug/remsspl/searchable-fields/index.tsx @@ -0,0 +1,24 @@ +import React from "react" + +import FieldExplorer from '../../../../../components/FieldExplorer' + +import meta from '../_meta.yaml' +import fields from '../../../../../constants/fields/drugremsspl.yaml' + +class IndexRoute extends React.Component { + render() { + + return ( +
+

Searchable Fields

+

Use the fields explorer below to find detailed explanations of every field in the dataset.

+ +
+ ) + } +} + +export default IndexRoute diff --git a/src/pages/apis/drug/remsspl/understanding-the-api-results/_examples.json b/src/pages/apis/drug/remsspl/understanding-the-api-results/_examples.json new file mode 100644 index 000000000..975a80bec --- /dev/null +++ b/src/pages/apis/drug/remsspl/understanding-the-api-results/_examples.json @@ -0,0 +1,329 @@ +{ + "anatomy": { + "meta": { + "disclaimer": "openFDA is a beta research project and not for clinical use. While we make every effort to ensure that data is accurate, you should assume all results are unvalidated.", + "license": "http://open.fda.gov/license", + "last_updated": "2023-08-25", + "results": { + "skip": 0, + "limit": 1, + "total": 14 + } + }, + "results": [ + {} + ] + }, + "meta": { + "meta": { + "disclaimer": "openFDA is a beta research project and not for clinical use. While we make every effort to ensure that data is accurate, you should assume all results are unvalidated.", + "license": "http://open.fda.gov/license", + "last_updated": "2023-08-25", + "results": { + "skip": 0, + "limit": 1, + "total": 14 + } + } + }, + "result": { + "document_title": "Risk Evaluation and Mitigation Strategy (REMS) Document SUBOXONE and SUBUTEX (buprenorphine and naloxone/buprenorphine) REMS Program", + "effective_time": "20160707", + "related_spl_document_set_id": [ + "8a5edcf9-828c-4f97-b671-268ab13a8ecd", + "4b9b43c4-293e-4323-a1a1-9a2f6a16ac39", + "27677612-2c5a-4bbe-893f-6bb9e1205239" + ], + "rems_goals": [ + { + "effective_time": "20170601", + "content": "I. GOALS \n The goals of the REMS for SUBOXONE sublingual film, SUBOXONE sublingual tablets and SUBUTEX sublingual tablets are to: Mitigate the risks of accidental overdose, misuse and abuse Inform prescribers, pharmacists, and patients of the serious risks associated with SUBOXONE sublingual film, SUBOXONE sublingual tablets and SUBUTEX sublingual tablets " + } + ], + "document_id": "39878815-10aa-405c-a9d4-c9d6feb241b9", + "openfda": { + "product_ndc": [ + "12496-1202", + "12496-1204", + "12496-1208", + "12496-1212" + ], + "is_original_packager": [ + true + ], + "package_ndc": [ + "12496-1202-1", + "12496-1202-3", + "12496-1204-1", + "12496-1204-3", + "12496-1208-1", + "12496-1208-3", + "12496-1212-1", + "12496-1212-3" + ], + "generic_name": [ + "BUPRENORPHINE HYDROCHLORIDE, NALOXONE HYDROCHLORIDE" + ], + "spl_set_id": [ + "8a5edcf9-828c-4f97-b671-268ab13a8ecd" + ], + "upc": [ + "0312496120231", + "0312496121238", + "0312496120835", + "0312496120439" + ], + "brand_name": [ + "Suboxone" + ], + "manufacturer_name": [ + "INDIVIOR INC." + ], + "rxcui": [ + "1010600", + "1010603", + "1010604", + "1010606", + "1307056", + "1307058", + "1307061", + "1307063" + ], + "unii": [ + "F850569PQR", + "56W8MW3EN1" + ], + "spl_id": [ + "3ca6165f-09fb-4192-8b5d-c07cf60a5326" + ], + "substance_name": [ + "BUPRENORPHINE HYDROCHLORIDE", + "NALOXONE HYDROCHLORIDE" + ], + "product_type": [ + "HUMAN PRESCRIPTION DRUG" + ], + "route": [ + "BUCCAL", + "SUBLINGUAL" + ], + "application_number": [ + "NDA022410" + ] + }, + "rems_elements": [ + { + "medication_guide": [ + { + "effective_time": "20170601", + "content": "A. Medication Guide \n A Medication Guide will be dispensed with each SUBOXONE sublingual film, SUBOXONE sublingual tablets and SUBUTEX sublingual tablets prescription in accordance with 21 CFR 208.24. The Medication Guides for buprenorphine-containing products are part of the SUBOXONE sublingual film, SUBOXONE sublingual tablets and SUBUTEX sublingual tablets REMS and will be provided with the product and is also available by going online to www.suboxoneREMS.com or calling 1-866-463-4846 " + } + ] + }, + { + "elements_to_assure_safe_use": [ + { + "effective_time": "20170601", + "content": "B. Elements to Assure Safe Use \n \n Safe use conditions SUBOXONE sublingual film, SUBOXONE sublingual tablets and SUBUTEX sublingual tablets will only be dispensed by the prescriber or prescribed to patients with documentation of the following safe use conditions:\n Verification that the patient meets the diagnostic criteria for opioid dependence. Risks described in the professional labeling and the Medication Guide have been discussed with the patient. Safe storage of the medication has been explained and reviewed with the patient. After appropriate induction, the patient is prescribed a limited amount of medication at the first visit. Prescribers will document safe use conditions for each patient by using the 'Appropriate Use Checklist,' or by using another method (e.g. electronic health record) specific to the prescriber's office practice. Indivior Inc. will ensure that within 30 days of FDA approval of the SUBOXONE sublingual film, SUBOXONE sublingual tablets and SUBUTEX sublingual tablets REMS, a Dear Prescriber Letter will be mailed to all physicians certified to treat opioid dependence under the Drug Addiction Treatment Act of 2000 (DATA 2000). This letter is designed to convey and reinforce the risks of accidental overdose, misuse, and abuse of SUBOXONE sublingual film, SUBOXONE sublingual tablets and SUBUTEX sublingual tablets, as well as the need to appropriately monitor patients and document safe use conditions. The prescriber brochure, Office-Based Buprenorphine Therapy for Opioid Dependence: Important Information for Prescribers, and the Appropriate Use Checklist will be appended to the Dear Prescriber Letter. The letter will provide instructions on where to obtain copies of the Full Prescribing Information and Medication Guide. Mailings will occur annually thereafter. Indivior Inc. will, on a monthly basis, identify any newly DATA 2000-certified physicians and mail the applicable documents to them. The prescriber brochure, Office-Based Buprenorphine Therapy for Opioid Dependence: Important Information for Prescribers will be appended to the Dear Prescriber Letter as well as the Medication Guide, Full Prescribing Information, and the Appropriate Use Checklist. To further reinforce safe use conditions, Indivior Inc. will ensure that within 30 days of FDA approval of the SUBOXONE sublingual film, SUBOXONE sublingual tablets and SUBUTEX sublingual tablets REMS, a Dear Pharmacist Letter will be mailed to all pharmacists on a national mailing list of all retail pharmacies authorized by DEA to handle schedule 3 controlled substances on a national mailing list from the National Technical Information Service. The pharmacist brochure, Office-Based Buprenorphine Therapy for Opioid Dependence: Important Information for Pharmacists will be appended to the Dear Pharmacist Letter as well as the Medication Guide, and Full Prescribing Information. Mailings will occur annually thereafter. Indivior Inc. will make the letters and all materials that are appended to the letters available through its toll-free information line, through its field personnel, and on the SUBOXONE and SUBUTEX REMS website. \n Monitoring Each patient using SUBOXONE sublingual film, SUBOXONE sublingual tablets and SUBUTEX sublingual tablets will be subject to the following monitoring:\n Return visits are scheduled at intervals commensurate with patient stability. Weekly, or more frequent, visits are recommended for the first month. Assessment and reinforcement of patient's compliance with the prescribed medication. Assessment of appropriateness of dosage prescribed. Assessment of whether patient is receiving the necessary psychosocial support. Assessment of whether patient is making adequate progress towards treatment goals. Prescribers will document that each patient has received the required clinical monitoring using the 'Appropriate Use Checklist,' or by using another method/system (e.g. electronic health record) specific to the prescriber's office practice. The following materials are part of the REMS and are appended to the REMS document: Dear Prescriber Letter Dear Pharmacist Letter Appropriate Use Checklist Prescriber Brochure, \"Office-Based Buprenorphine Therapy for Opioid Dependence: Important Information for Prescribers\" Pharmacist Brochure, \"Office-Based Buprenorphine Therapy for Opioid Dependence: Important Information for Pharmacists\" SUBOXONE and SUBUTEX REMS website (www.suboxoneREMS.com) " + } + ] + }, + { + "rems_implementation_system": [ + { + "effective_time": "20170601", + "content": "" + } + ] + }, + { + "rems_submission_assessments_timetable": [ + { + "effective_time": "20170601", + "content": "" + } + ] + }, + { + "rems_summary": [ + { + "effective_time": "20170601", + "substance_administration": [ + { + "protocol": [ + { + "code": "C128530", + "code_system": "2.16.840.1.113883.3.26.1.1", + "name": "Pharmacotherapy Initiation", + "requirement": [ + { + "stakeholder_name": "Medication Prescriber", + "reference_id": "#R001", + "stakeholder_code": "C128538", + "name": "Assess Patient Condition or Health Status", + "title": "1.\tAssess the patient's condition to verify the patient meets the diagnostic criteria for opioid dependence.", + "document_reference_root": "00000000-0000-0000-0000-000000000001" + }, + { + "stakeholder_name": "Medication Prescriber", + "reference_id": "#R002", + "stakeholder_code": "C128538", + "name": "Counsel Patient", + "title": "2.\tCounsel the patient on the risks described in the professional information and Medication Guide and safe storage of the medication.", + "document_reference_root": "00000000-0000-0000-0000-000000000001" + }, + { + "stakeholder_name": "Medication Prescriber", + "reference_id": "#R003", + "stakeholder_code": "C128538", + "name": "Complete Patient Form", + "title": "3.\tComplete the Appropriate Use Checklist. Retain a completed copy in the patient's record or by using another method (e.g. electronic health record) specific to the prescriber's office practice.", + "document_reference_root": "00000000-0000-0000-0000-000000000006" + }, + { + "stakeholder_name": "Medication Prescriber", + "reference_id": "#R004", + "stakeholder_code": "C128538", + "name": "Prescribe Limited Quantity", + "title": "4.\tPrescribe a limited amount of medication", + "document_reference_root": "00000000-0000-0000-0000-000000000001" + }, + { + "stakeholder_name": "Medication Prescriber", + "reference_id": "#R005", + "stakeholder_code": "C128538", + "name": "Assess Patient Condition or Health Status ", + "title": "5.\tAssess the patient's compliance with the prescribed medication, appropriateness of the dosage prescribed, whether patient is receiving the necessary psychosocial support, and whether patient is making adequate progress towards treatment goals.", + "document_reference_root": "00000000-0000-0000-0000-000000000001" + }, + { + "stakeholder_name": "Medication Prescriber", + "reference_id": "#R006", + "stakeholder_code": "C128538", + "name": "Complete Patient Form", + "title": "6.\tComplete the Appropriate Use Checklist. Retain a completed copy in the patient's record or by using another method (e.g. electronic health record) specific to the prescriber's office practice.", + "document_reference_root": "00000000-0000-0000-0000-000000000006" + } + ] + } + ], + "approval": [ + { + "effective_time": "20100830", + "code": "C128899", + "code_system": "2.16.840.1.113883.3.26.1.1", + "name": "REMS Approval" + } + ] + }, + { + "protocol": [ + { + "code": "C128530", + "code_system": "2.16.840.1.113883.3.26.1.1", + "name": "Pharmacotherapy Initiation", + "requirement": [ + { + "stakeholder_name": "Medication-Taking Patient", + "reference_id": "#R007", + "stakeholder_code": "C128541", + "name": "Receive Counseling", + "title": "1.\tReceive counseling from the prescriber on the risks and safe storage of the medication.", + "document_reference_root": "00000000-0000-0000-0000-000000000001" + }, + { + "stakeholder_name": "Medication-Taking Patient", + "reference_id": "#R008", + "stakeholder_code": "C128541", + "name": "Get Lab Test or Monitoring", + "title": "2.\tBe monitored for compliance with the prescribed medication, appropriateness of the dosage prescribed, assessment of whether receiving the necessary psychosocial support, and whether making adequate progress towards treatment goals.", + "document_reference_root": "00000000-0000-0000-0000-000000000006" + } + ] + } + ] + } + ], + "title": "REMS Summary" + } + ] + }, + { + "rems_material": [ + { + "effective_time": "20170601", + "document": [ + { + "reference": "https://www.accessdata.fda.gov/drugsatfda_docs/rems/suboxone_subutex_2016-07-07_dear_prescriber_letter.pdf", + "name": "Prescriber Instruction Letter" + } + ] + } + ] + } + ], + "products": [ + { + "manufactured_product": { + "generic_name": "buprenorphine hydrochloride", + "brand_name": "Subutex" + }, + "marketing_info": { + "approval_holder_org": "INDIVIOR Inc.", + "application_number": "NDA020732", + "marketing_category": "NDA" + } + } + ], + "spl_unclassified_section": [ + { + "effective_time": "20170601", + "record_details": [ + "Initial REMS Approval: 08/2010", + "Most Recent Modification: 07/2016", + "NDA 022410, NDA 020733, NDA020732", + "SUBOXONE", + "SUBOXONE", + "SUBUTEX", + "Risk Evaluation and Mitigation Strategy (REMS)" + ] + } + ], + "set_id": "3b158d87-d733-4ee3-8c31-5ba8b51545a8", + "sponsor_name": "INDIVIOR Inc." + }, + "count": { + "meta": { + "disclaimer": "Do not rely on openFDA to make decisions regarding medical care. While we make every effort to ensure that data is accurate, you should assume all results are unvalidated. We may limit or otherwise restrict your access to the API in line with our Terms of Service.", + "terms": "https://open.fda.gov/terms/", + "license": "https://open.fda.gov/license/", + "last_updated": "2031-08-25" + }, + "results": [ + { + "term": "ORAL", + "count": 8 + }, + { + "term": "INTRAVENOUS", + "count": 3 + }, + { + "term": "BUCCAL", + "count": 2 + }, + { + "term": "SUBCUTANEOUS", + "count": 2 + }, + { + "term": "SUBLINGUAL", + "count": 2 + }, + { + "term": "TRANSMUCOSAL", + "count": 1 + } + ] + } +} diff --git a/src/pages/apis/drug/remsspl/understanding-the-api-results/index.tsx b/src/pages/apis/drug/remsspl/understanding-the-api-results/index.tsx new file mode 100644 index 000000000..3ac88cac5 --- /dev/null +++ b/src/pages/apis/drug/remsspl/understanding-the-api-results/index.tsx @@ -0,0 +1,30 @@ +import React from "react" +import Highlight from 'react-highlight.js' + +import examples from './_examples.json' + +class IndexRoute extends React.Component { + render() { + const example: string = JSON.stringify(examples["count"], null, ' ') || ''; + + return ( +
+

Understanding the Query Results

+

For search queries (such as: https://api.fda.gov/drug/remsspl.json?limit=1), the results section includes matching ndc results returned by the API.

+

Each REMS SPL entry consists of three major sections:

+
    +
  • Product data:General information about the product.
  • +
  • REMS Elements:An expansive section with fine details about the REMS documentation.
  • +
  • An openFDA section:An annotation with additional product identifiers, such as UNII and UPC, of the drug product, if available.
  • +
+

For count queries (such as: https://api.fda.gov/drug/remsspl.json?count=products.manufactured_product.package_type), the results section will look something like the following:

+ + {example} + +
+ ) + } +} + +export default IndexRoute diff --git a/src/pages/data/downloads/index.tsx b/src/pages/data/downloads/index.tsx index 143200592..3ad94485b 100644 --- a/src/pages/data/downloads/index.tsx +++ b/src/pages/data/downloads/index.tsx @@ -15,8 +15,9 @@ import drug_enforcement_meta from '../../apis/drug/enforcement/_meta.yaml' import drug_event_meta from '../../apis/drug/event/_meta.yaml' import drug_label_meta from '../../apis/drug/label/_meta.yaml' import drug_ndc_meta from '../../apis/drug/ndc/_meta.yaml' -import drug_drugsfda_meta from '../../apis/drug/drugsfda/_meta.yaml' +import drugsfda_meta from '../../apis/drug/drugsfda/_meta.yaml' import drug_drugshortages_meta from '../../apis/drug/drugshortages/_meta.yaml' +import drug_remsspl_meta from '../../apis/drug/remsspl/_meta.yaml' import device_510k_meta from '../../apis/device/510k/_meta.yaml' import device_classification_meta from '../../apis/device/classification/_meta.yaml' import device_enforcement_meta from '../../apis/device/enforcement/_meta.yaml' @@ -47,9 +48,10 @@ const endpoint_list = { 'Human Drug Event': drug_event_meta, 'Human Drug Label': drug_label_meta, 'Human NDC Directory': drug_ndc_meta, - 'Human Drugs@FDA': drug_drugsfda_meta, + 'Human Drugs@FDA': drugsfda_meta, 'Human Drug Shortages': drug_drugshortages_meta, 'Human Drug Enforcement': drug_enforcement_meta, + 'Human Drug REMS Spl': drug_remsspl_meta, 'Medical Device': 'device_header', 'Medical Device 510k': device_510k_meta, 'Medical Device Classification': device_classification_meta, diff --git a/src/pages/data/remsspl/_meta.yaml b/src/pages/data/remsspl/_meta.yaml new file mode 100644 index 000000000..d8737f245 --- /dev/null +++ b/src/pages/data/remsspl/_meta.yaml @@ -0,0 +1,27 @@ +type: dataset +documentTitle: 'openFDA › Datasets › REMS SPL' +crumbs: + - openFDA + - Datasets + - REMS SPL +title: 'REMS SPL' +description: 'REMS are programs designed to ensure that the benefits of certain drugs outweigh their risks.' +source: + name: 'REMS SPL' + nameLong: 'REMS SPL' + link: 'https://dailymed.nlm.nih.gov/dailymed/spl-resources-all-indexing-files.cfm' + linkDownload: 'https://dailymed.nlm.nih.gov/dailymed/spl-resources-all-indexing-files.cfm' +license: + name: 'Public Domain and CC0' + link: 'http://creativecommons.org/publicdomain/zero/1.0/' + time: + start: 'September 2016' + current: + delay: + frequency: 'Intermittently' +provider: + name: 'FDA' + link: 'http://www.fda.gov/' +additionalContent: + - 'The Food and Drug Administration Amendments Act of 2007 gave FDA the authority to require a Risk Evaluation and Mitigation Strategy (REMS) from manufacturers to ensure that the benefits of a drug or biological product outweigh its risks.' + - 'In late December 2020, the FDA issued the Final Guidance on REMS (Risk Evaluation and Mitigation Strategy) submissions in Structured Product Labeling (SPL) format. While participation is currently voluntary, and has been since September 2016, compliance with this guidance will be required as of December 28, 2022.' \ No newline at end of file diff --git a/src/pages/data/remsspl/index.tsx b/src/pages/data/remsspl/index.tsx new file mode 100644 index 000000000..ebfa9b8b2 --- /dev/null +++ b/src/pages/data/remsspl/index.tsx @@ -0,0 +1,15 @@ +import React from 'react' + +import Dataset from '../../../components/Dataset' + +import meta from './_meta.yaml' + +export default class IndexRoute extends React.Component { + render () { + return ( + + ) + } +} diff --git a/static/fields/drugremsspl.yaml b/static/fields/drugremsspl.yaml new file mode 100644 index 000000000..a111012fa --- /dev/null +++ b/static/fields/drugremsspl.yaml @@ -0,0 +1,1209 @@ +properties: + rems_released: + description: "The release status of the document." + format: + is_exact: false + possible_values: + type: string + rems_released_date: + description: "The release date of the document." + format: + is_exact: false + possible_values: + type: string + document_id: + description: "Unique identifier for the entire document." + format: + is_exact: false + possible_values: + type: string + document_link: + description: "Link to the document." + format: + is_exact: false + possible_values: + type: string + rems_spl_file_link: + description: "Link to the REMS SPL file." + format: + is_exact: false + possible_values: + type: string + document_title: + description: "There is a title with the 'Risk Evaluation and Mitigation Strategy (REMS)' followed by [Drug/Class Name] REMS Program." + format: + is_exact: false + possible_values: + type: string + effective_time: + description: "Date reference to the particular version of the labeling document." + format: date + is_exact: false + pattern: "YYYYmmdd" + type: string + set_id: + description: "The Set ID, A globally unique identifier (GUID) for the labeling, stable across all versions or revisions." + format: + is_exact: false + possible_values: + type: string + version: + description: "The version of the file." + format: + is_exact: false + possible_values: + type: string + rems_website: + description: "Link to the REMS website." + format: + is_exact: false + possible_values: + type: string + sponsor_name: + description: "The name of the sponsor for the drug." + format: + is_exact: false + possible_values: + type: string + related_spl_document_set_id: + type: array + items: + description: "REMS append the related document(s) with more detail on how to evaluate and manage risks regarding the product described in the related + document(s). The related document(s) SPL document is referred to by its setId" + format: + is_exact: false + possible_values: + type: string + products: + items: + manufactured_product: + type: object + properties: + brand_name: + format: + is_exact: true + type: string + pattern: + description: "Brand or trade name of the drug product." + possible_values: + package_type: + description: "The package type of the drug." + format: + is_exact: false + possible_values: + type: string + generic_name: + description: "Generic name(s) of the drug product." + format: + is_exact: false + possible_values: + type: string + marketing_info: + type: object + properties: + marketing_category: + description: "Product types are broken down into several potential Marketing Categories, such as NDA/ANDA/BLA, OTC Monograph, or Unapproved Drug." + format: + is_exact: false + possible_values: + type: string + application_number: + description: "This corresponds to the NDA, ANDA, or BLA number reported by the labeler for products which have the corresponding Marketing Category designated. If the designated Marketing Category is OTC Monograph Final or OTC Monograph Not Final, then the application number will be the CFR citation corresponding to the appropriate Monograph (e.g. “part 341”). For unapproved drugs, this field will be null." + format: + is_exact: true + type: string + pattern: ^[BLA|ANDA|NDA]{3,4}[0-9]{6}$ + possible_values: + approval_holder_org: + description: "The organization that holds the drug approval." + format: + is_exact: false + possible_values: + type: string + type: array + rems_statutory_elements: + type: object + properties: + title: + description: "Title of this section." + format: + is_exact: false + possible_values: + type: string + text: + description: "Includes all the raw text content for this section." + format: + is_exact: false + possible_values: + effective_time: + description: "Date reference to the particular version of the labeling document." + format: date + is_exact: false + pattern: "YYYYmmdd" + type: string + medication_guide: + description: "Indicates whether a medication guide is included." + format: + is_exact: false + type: boolean + communication_plan: + description: "Indicates whether a communication plan is included." + format: + is_exact: false + type: boolean + packaging_and_disposal: + description: "Indicates whether packaging and disposal instructions are included." + format: + is_exact: false + type: boolean + elements_to_ensure_safe_use: + properties: + rems_etasu_A: + description: "Elements to Assure Safe Use A." + format: + is_exact: false + possible_values: + type: string + rems_etasu_B: + description: "Elements to Assure Safe Use B." + format: + is_exact: false + possible_values: + type: string + rems_etasu_C: + description: "Elements to Assure Safe Use C." + format: + is_exact: false + possible_values: + type: string + rems_etasu_D: + description: "Elements to Assure Safe Use D." + format: + is_exact: false + possible_values: + type: string + rems_etasu_E: + description: "Elements to Assure Safe Use E." + format: + is_exact: false + possible_values: + type: string + rems_etasu_F: + description: "Elements to Assure Safe Use F." + format: + is_exact: false + possible_values: + type: string + implementation_system: + description: "Indicates whether implementation system instructions are included." + format: + is_exact: false + type: boolean + timetable_for_submission_of_assessments: + description: "Indicates whether a timetable for submission of assessments is included." + format: + is_exact: false + type: boolean + spl_unclassified_section: + type: object + properties: + title: + description: "Title of this section." + format: + is_exact: false + possible_values: + type: string + text: + description: "Includes all the raw text content for this section." + format: + is_exact: false + possible_values: + type: string + effective_time: + description: "Date reference to the particular version of the labeling document." + format: date + is_exact: false + pattern: "YYYYmmdd" + type: string + spl_unclassified_section: + type: object + properties: + title: + description: "Title of this section." + format: + is_exact: false + possible_values: + type: string + text: + description: "Includes all the raw text content for this section." + format: + is_exact: false + possible_values: + type: string + effective_time: + description: "Date reference to the particular version of the labeling document." + format: date + is_exact: false + pattern: "YYYYmmdd" + type: string + rems_administrative_information: + type: object + properties: + title: + description: "Title of this section." + format: + is_exact: false + possible_values: + type: string + text: + description: "Includes all the raw text content for this section." + format: + is_exact: false + possible_values: + effective_time: + description: "Date reference to the particular version of the labeling document." + format: date + is_exact: false + pattern: "YYYYmmdd" + type: string + rems_released_date: + description: "The release date of the document." + format: + is_exact: false + possible_values: + type: string + initial_rems_approval: + description: "The initial REMS approval." + format: + is_exact: false + possible_values: + type: string + most_recent_rems_update: + description: "Date of the most recent REMS update." + format: date + is_exact: false + pattern: "YYYYmmdd" + type: string + risks: + description: "The risks indicated." + format: + is_exact: false + possible_values: + type: string + approval: + type: array + items: + properties: + code: + description: "The code for this approval in substance administration." + format: + is_exact: false + possible_values: + type: string + code_system: + description: "The code system used for this approval in substance administration." + format: + is_exact: false + possible_values: + type: string + name: + description: "The name of this approval in substance administration." + format: + is_exact: false + possible_values: + type: string + effective_time: + description: "Date reference to the particular version of the document." + format: date + is_exact: false + pattern: "YYYYmmdd" + type: string + rems_goals: + type: object + properties: + title: + description: "Title of this section." + format: + is_exact: false + possible_values: + type: string + content: + description: "Includes all the raw text content for this section." + format: + is_exact: false + possible_values: + type: string + effective_time: + description: "Date reference to the particular version of the labeling document." + format: date + is_exact: false + pattern: "YYYYmmdd" + type: string + rems_requirements: + type: object + properties: + effective_time: + description: "Date reference to the particular version of the labeling document." + format: date + is_exact: false + pattern: "YYYYmmdd" + type: string + title: + description: "The title of this section." + format: + is_exact: false + possible_values: + type: string + text: + description: "Information about the contents of this section." + format: + is_exact: false + possible_values: + type: string + rems_participant_requirements: + type: object + properties: + title: + description: "Title of this section." + format: + is_exact: false + possible_values: + type: string + content: + description: "Includes all the raw text content for this section." + format: + is_exact: false + possible_values: + type: string + effective_time: + description: "Date reference to the particular version of the labeling document." + format: date + is_exact: false + pattern: "YYYYmmdd" + type: string + substance_administration: + type: array + items: + properties: + protocol: + type: array + items: + properties: + protocol_text: + description: "Includes all the raw text content for this section." + format: + is_exact: false + possible_values: + type: string + protocol_code: + description: "The code for this protocol in substance administration." + format: + is_exact: false + possible_values: + type: string + protocol_code_name: + description: "The name of this protocol in substance administration." + format: + is_exact: false + possible_values: + type: string + code_system: + description: "The code system used for this protocol in substance administration." + format: + is_exact: false + possible_values: + type: string + requirement: + description: "The requirement of the drug being a component of a REMS protocol described in the REMS Summary." + type: object + properties: + protocol_text: + description: "Includes all the raw text content for this section." + format: + is_exact: false + possible_values: + type: string + protocol_code: + description: "The code for this protocol in substance administration." + format: + is_exact: false + possible_values: + type: string + protocol_code_name: + description: "The name of this protocol in substance administration." + format: + is_exact: false + possible_values: + type: string + protocol_timing_code_name: + description: "The name for the timing in substance administration." + format: + is_exact: false + possible_values: + type: string + protocol_timing_code: + description: "The code for the timing in substance administration." + format: + is_exact: false + possible_values: + type: string + requirement_code: + description: "The code for this requirement in substance administration." + format: + is_exact: false + possible_values: + type: string + requirement_code_name: + description: "The name of the appended REMS material that are part of the program." + format: + is_exact: false + possible_values: + type: string + requirement_text_number: + description: "The number associated with the requirement text content for this section." + format: + is_exact: false + possible_values: + type: string + requirement_text: + description: "Includes all the requirement text content for this section." + format: + is_exact: false + possible_values: + type: string + reference_id: + description: "References the procedural step the healthcare provider or the patient should undertake." + format: + is_exact: false + possible_values: + type: string + stakeholder_code: + description: "The code of the stakeholder for the requirement in substance administration." + format: + is_exact: false + possible_values: + type: string + stakeholder_code_name: + description: "The name of the stakeholder for the requirement in substance administration." + format: + is_exact: false + possible_values: + type: string + document_reference_root: + description: "Reference id for the document root." + format: + is_exact: false + possible_values: + type: string\ + rems_applicant_requirements: + type: object + properties: + title: + description: "Title of this section." + format: + is_exact: false + possible_values: + type: string + content: + description: "Includes all the raw text content for this section." + format: + is_exact: false + possible_values: + type: string + effective_time: + description: "Date reference to the particular version of the labeling document." + format: date + is_exact: false + pattern: "YYYYmmdd" + type: string + rems_communication: + type: object + properties: + text: + description: "Includes all the raw text content for this section." + format: + is_exact: false + possible_values: + type: string + effective_time: + description: "Date reference to the particular version of the labeling document." + format: date + is_exact: false + pattern: "YYYYmmdd" + type: string + substance_administration: + type: array + items: + properties: + protocol: + type: array + items: + properties: + protocol_text: + description: "Includes all the raw text content for this section." + format: + is_exact: false + possible_values: + type: string + protocol_code: + description: "The code for this protocol in substance administration." + format: + is_exact: false + possible_values: + type: string + protocol_code_name: + description: "The name of this protocol in substance administration." + format: + is_exact: false + possible_values: + type: string + code_system: + description: "The code system used for this protocol in substance administration." + format: + is_exact: false + possible_values: + type: string + requirement: + description: "The requirement of the drug being a component of a REMS protocol described in the REMS Summary." + type: object + properties: + protocol_text: + description: "Includes all the raw text content for this section." + format: + is_exact: false + possible_values: + type: string + protocol_code: + description: "The code for this protocol in substance administration." + format: + is_exact: false + possible_values: + type: string + protocol_code_name: + description: "The name of this protocol in substance administration." + format: + is_exact: false + possible_values: + type: string + protocol_timing_code_name: + description: "The name for the timing in substance administration." + format: + is_exact: false + possible_values: + type: string + protocol_timing_code: + description: "The code for the timing in substance administration." + format: + is_exact: false + possible_values: + type: string + requirement_code: + description: "The code for this requirement in substance administration." + format: + is_exact: false + possible_values: + type: string + requirement_code_name: + description: "The name of the appended REMS material that are part of the program." + format: + is_exact: false + possible_values: + type: string + requirement_text_number: + description: "The number associated with the requirement text content for this section." + format: + is_exact: false + possible_values: + type: string + requirement_text: + description: "Includes all the requirement text content for this section." + format: + is_exact: false + possible_values: + type: string + reference_id: + description: "References the procedural step the healthcare provider or the patient should undertake." + format: + is_exact: false + possible_values: + type: string + stakeholder_code: + description: "The code of the stakeholder for the requirement in substance administration." + format: + is_exact: false + possible_values: + type: string + stakeholder_code_name: + description: "The name of the stakeholder for the requirement in substance administration." + format: + is_exact: false + possible_values: + type: string + document_reference_root: + description: "Reference id for the document root." + format: + is_exact: false + possible_values: + type: string\ + rems_communication: + type: object + properties: + text: + description: "Includes all the raw text content for this section." + format: + is_exact: false + possible_values: + type: string + effective_time: + description: "Date reference to the particular version of the labeling document." + format: date + is_exact: false + pattern: "YYYYmmdd" + type: string + rems_submission_assessments_timetable: + type: object + properties: + content: + description: "Includes all the raw text content for this section." + format: + is_exact: false + possible_values: + effective_time: + description: "Date reference to the particular version of the labeling document." + format: date + is_exact: false + pattern: "YYYYmmdd" + type: string + rems_material: + type: object + properties: + title: + description: "Title of this section." + format: + is_exact: false + possible_values: + type: string + text: + description: "Includes all the raw text content for this section." + format: + is_exact: false + possible_values: + effective_time: + description: "Date reference to the particular version of the labeling document." + format: date + is_exact: false + pattern: "YYYYmmdd" + type: string + document: + properties: + title: + description: "The title of this document." + format: + is_exact: exact + possible_values: + type: string + rems_electronic_resource_name: + description: "The name of the electronic resource." + format: + is_exact: exact + possible_values: + type: string + developer_of_the_standard: + description: "The developer of the standard." + format: + is_exact: true + possible_values: + type: string + standard_version: + description: "The version of the standard." + format: + is_exact: exact + possible_values: + type: string + transaction: + description: "Information about the transaction." + format: + is_exact: exact + possible_values: + type: string + destination_address: + description: "The destination address." + format: + is_exact: exact + possible_values: + type: string + id_rems_material_document: + description: "The id of the REMS Material document." + format: + is_exact: exact + possible_values: + type: string + reference: + description: "The reference to this document." + format: + is_exact: exact + possible_values: + type: string + rems_elements: + type: array + items: + properties: + medication_guide: + properties: + content: + description: "Includes all the raw text content for this section." + format: + is_exact: false + possible_values: + type: string + effective_time: + description: "Date reference to the particular version of the labeling document." + format: date + is_exact: false + pattern: "YYYYmmdd" + type: string + elements_to_assure_safe_use: + type: array + items: + properties: + content: + description: "Includes all the raw text content for this section." + format: + is_exact: false + possible_values: + type: string + effective_time: + description: "Date reference to the particular version of the labeling document." + format: date + is_exact: false + pattern: "YYYYmmdd" + type: string + rems_implementation_system: + type: array + items: + properties: + content: + description: "Includes all the raw text content for this section." + format: + is_exact: false + possible_values: + type: string + effective_time: + description: "Date reference to the particular version of the labeling document." + format: date + is_exact: false + pattern: "YYYYmmdd" + type: string + rems_summary: + type: array + items: + properties: + title: + description: "The title of this section." + format: + is_exact: false + possible_values: + type: string + text: + description: "Information about the contents of this section." + format: + is_exact: false + possible_values: + type: string + effective_time: + description: "Date reference to the particular version of the labeling document." + format: date + is_exact: false + pattern: "YYYYmmdd" + type: string + substance_administration: + type: array + items: + properties: + protocol: + type: array + items: + properties: + protocol_text: + description: "Includes all the raw text content for this section." + format: + is_exact: false + possible_values: + type: string + protocol_code: + description: "The code for this protocol in substance administration." + format: + is_exact: false + possible_values: + type: string + protocol_code_name: + description: "The name of this protocol in substance administration." + format: + is_exact: false + possible_values: + type: string + code_system: + description: "The code system used for this protocol in substance administration." + format: + is_exact: false + possible_values: + type: string + requirement: + description: "The requirement of the drug being a component of a REMS protocol described in the REMS Summary." + type: object + properties: + protocol_text: + description: "Includes all the raw text content for this section." + format: + is_exact: false + possible_values: + type: string + protocol_code: + description: "The code for this protocol in substance administration." + format: + is_exact: false + possible_values: + type: string + protocol_code_name: + description: "The name of this protocol in substance administration." + format: + is_exact: false + possible_values: + type: string + protocol_timing_code_name: + description: "The name for the timing in substance administration." + format: + is_exact: false + possible_values: + type: string + protocol_timing_code: + description: "The code for the timing in substance administration." + format: + is_exact: false + possible_values: + type: string + requirement_code: + description: "The code for this requirement in substance administration." + format: + is_exact: false + possible_values: + type: string + requirement_code_name: + description: "The name of the appended REMS material that are part of the program." + format: + is_exact: false + possible_values: + type: string + requirement_text_number: + description: "The number associated with the requirement text content for this section." + format: + is_exact: false + possible_values: + type: string + requirement_text: + description: "Includes all the requirement text content for this section." + format: + is_exact: false + possible_values: + type: string + reference_id: + description: "References the procedural step the healthcare provider or the patient should undertake." + format: + is_exact: false + possible_values: + type: string + stakeholder_code: + description: "The code of the stakeholder for the requirement in substance administration." + format: + is_exact: false + possible_values: + type: string + stakeholder_code_name: + description: "The name of the stakeholder for the requirement in substance administration." + format: + is_exact: false + possible_values: + type: string + document_reference_root: + description: "Reference id for the document root." + format: + is_exact: false + possible_values: + type: string\ + rems_electronic_resource: + type: object + properties: + effective_time: + description: "Date reference to the particular version of the labeling document." + format: date + is_exact: false + pattern: "YYYYmmdd" + type: string + reference: + description: "The reference to this document." + format: + is_exact: false + possible_values: + type: string + rems_electronic_resource_name: + description: "The name of the electronic resource." + format: + is_exact: false + possible_values: + type: string + developer_of_the_standard: + description: "The developer of the standard." + format: + is_exact: false + possible_values: + type: string + standard_version: + description: "The version of the standard." + format: + is_exact: false + possible_values: + type: string + transaction: + description: "Information about the transaction." + format: + is_exact: false + possible_values: + type: string + destination_address: + description: "The destination address." + format: + is_exact: false + possible_values: + type: string + id_rems_material_document: + description: "The id of the REMS Material document." + format: + is_exact: false + possible_values: + type: string + openfda: + type: object + properties: + application_number: + type: array + items: + format: + is_exact: true + type: string + pattern: ^[BLA|ANDA|NDA]{3,4}[0-9]{6}$ + description: "This corresponds to the NDA, ANDA, or BLA number reported by the labeler for products which have the corresponding Marketing Category designated. If the designated Marketing Category is OTC Monograph Final or OTC Monograph Not Final, then the application number will be the CFR citation corresponding to the appropriate Monograph (e.g. “part 341”). For unapproved drugs, this field will be null." + possible_values: + brand_name: + type: array + items: + format: + is_exact: true + type: string + pattern: + description: "Brand or trade name of the drug product." + possible_values: + generic_name: + type: array + items: + format: + is_exact: true + type: string + pattern: + description: "Generic name(s) of the drug product." + possible_values: + is_original_packager: + type: array + items: + description: "Whether or not the drug has been repackaged for distribution." + format: + is_exact: false + possible_values: + type: one_of + value: + 'true': 'true' + 'false': 'false' + type: boolean + manufacturer_name: + type: array + items: + format: + is_exact: true + type: string + pattern: + description: "Name of manufacturer or company that makes this drug product, corresponding to the labeler code segment of the NDC." + possible_values: + nui: + type: array + items: + format: + is_exact: true + type: string + pattern: ^[N][0-9]{10}$ + description: "Unique identifier applied to a drug concept within the National Drug File Reference Terminology (NDF-RT)." + possible_values: + type: reference + value: + name: "NDF-RT" + link: "https://www.nlm.nih.gov/research/umls/sourcereleasedocs/current/NDFRT/" + package_ndc: + type: array + items: + format: + is_exact: true + type: string + pattern: ^[0-9]{5,4}-[0-9]{4,3}-[0-9]{1,2}$ + description: "This number, known as the NDC, identifies the labeler, product, and trade package size. The first segment, the labeler code, is assigned by the FDA. A labeler is any firm that manufactures (including repackers or relabelers), or distributes (under its own name) the drug." + possible_values: + pharm_class_cs: + type: array + items: + format: + is_exact: true + type: string + pattern: + description: "Chemical structure classification of the drug product’s pharmacologic class. Takes the form of the classification, followed by `[Chemical/Ingredient]` (such as `Thiazides [Chemical/Ingredient]` or `Antibodies, Monoclonal [Chemical/Ingredient]." + possible_values: + pharm_class_epc: + type: array + items: + format: + is_exact: true + type: string + pattern: + description: "Established pharmacologic class associated with an approved indication of an active moiety (generic drug) that the FDA has determined to be scientifically valid and clinically meaningful. Takes the form of the pharmacologic class, followed by `[EPC]` (such as `Thiazide Diuretic [EPC]` or `Tumor Necrosis Factor Blocker [EPC]`." + possible_values: + pharm_class_moa: + type: array + items: + format: + is_exact: true + type: string + pattern: + description: "Mechanism of action of the drug—molecular, subcellular, or cellular functional activity—of the drug’s established pharmacologic class. Takes the form of the mechanism of action, followed by `[MoA]` (such as `Calcium Channel Antagonists [MoA]` or `Tumor Necrosis Factor Receptor Blocking Activity [MoA]`." + possible_values: + pharm_class_pe: + type: array + items: + format: + is_exact: true + type: string + pattern: + description: "Physiologic effect or pharmacodynamic effect—tissue, organ, or organ system level functional activity—of the drug’s established pharmacologic class. Takes the form of the effect, followed by `[PE]` (such as `Increased Diuresis [PE]` or `Decreased Cytokine Activity [PE]`." + possible_values: + product_ndc: + type: array + items: + format: + is_exact: true + type: string + pattern: ^[0-9]{5,4}-[0-9]{4,3}$ + description: "The labeler manufacturer code and product code segments of the NDC number, separated by a hyphen." + possible_values: + product_type: + type: array + items: + format: + is_exact: true + type: string + pattern: + description: + possible_values: + type: reference + value: + name: "Type of drug product" + link: http://www.fda.gov/ForIndustry/DataStandards/StructuredProductLabeling/ucm162063.htm + route: + type: array + items: + format: + is_exact: true + type: string + pattern: + description: "The route of administation of the drug product." + possible_values: + type: reference + value: + name: "Route of administration" + link: http://www.fda.gov/ForIndustry/DataStandards/StructuredProductLabeling/ucm162034.htm + rxcui: + type: array + items: + format: + is_exact: true + type: string + pattern: ^[0-9]{6}$ + description: "The RxNorm Concept Unique Identifier. RxCUI is a unique number that describes a semantic concept about the drug product, including its ingredients, strength, and dose forms." + possible_values: + type: reference + value: + name: "RxNorm and RxCUI documentation" + link: "https://www.nlm.nih.gov/research/umls/rxnorm/docs/2012/rxnorm_doco_full_2012-3.html" + rxstring: + type: array + items: + format: + is_exact: true + type: string + description: + possible_values: + rxtty: + type: array + items: + format: + is_exact: true + type: string + description: + possible_values: + spl_id: + type: array + items: + format: + is_exact: true + type: string + pattern: ^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$ + description: "Unique identifier for a particular version of a Structured Product Label for a product. Also referred to as the document ID." + possible_values: + spl_set_id: + type: array + items: + format: + is_exact: true + type: string + pattern: ^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$ + description: "Unique identifier for the Structured Product Label for a product, which is stable across versions of the label. Also referred to as the set ID." + possible_values: + substance_name: + type: array + items: + format: + is_exact: true + type: string + pattern: + description: "The list of active ingredients of a drug product." + possible_values: + unii: + type: array + items: + format: + is_exact: true + type: string + pattern: ^[A-Z0-9]{10}$ + description: "Unique Ingredient Identifier, which is a non-proprietary, free, unique, unambiguous, non-semantic, alphanumeric identifier based on a substance’s molecular structure and/or descriptive information." + possible_values: + type: reference + value: + name: "Unique Ingredient Identifiers" + link: "http://fdasis.nlm.nih.gov/srs/srs.jsp" + upc: + type: array + items: + type: string + description: "Universal Product Code" + format: + is_exact: true + possible_values: + type: reference + value: + name: "Universal Product Code" + link: "https://en.wikipedia.org/wiki/Universal_Product_Code" + type: object \ No newline at end of file diff --git a/static/fields/drugremsspl_reference.pdf b/static/fields/drugremsspl_reference.pdf new file mode 100644 index 000000000..43ac1e7d5 Binary files /dev/null and b/static/fields/drugremsspl_reference.pdf differ diff --git a/static/fields/drugremsspl_reference.xlsx b/static/fields/drugremsspl_reference.xlsx new file mode 100644 index 000000000..9db419c81 Binary files /dev/null and b/static/fields/drugremsspl_reference.xlsx differ