Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions src/components/ApiStatus.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ let endpointKeys = [
'othernsde',
'othersubstance',
'otherunii',
'publicationspeerreviewed',
'tobaccoproblem',
'transparencycrl'
]
Expand Down Expand Up @@ -64,6 +65,7 @@ const catMap: Record<EndpointKey, string> = Object.freeze({
'othernsde': 'Other › NSDE',
'othersubstance': 'Other › Substance',
'otherunii': 'Other › UNII',
'publicationspeerreviewed': 'Publications › Peer Reviewed Journals',
'tobaccoproblem': 'Tobacco › Problem Reports',
'transparencycrl': 'Transparency › Complete Response Letters'
})
Expand Down Expand Up @@ -93,6 +95,7 @@ const endpointLinkMap: Record<EndpointKey, string> = Object.freeze({
'othernsde': 'other/nsde',
'othersubstance': 'other/substance',
'otherunii': 'other/unii',
'publicationspeerreviewed': 'publications/peerreviewed',
'tobaccoproblem': 'tobacco/problem',
'transparencycrl': 'transparency/crl'
})
Expand Down
9 changes: 8 additions & 1 deletion src/components/ApiUsage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,8 @@ const nounMap = {
animalandveterinary: "Animal and Veterinary",
tobacco: "Tobacco",
transparency: "Transparency",
cosmetic: "Cosmetic"
cosmetic: "Cosmetic",
publications: "Peer Reviewed"
}

// Update in pages/about/statistics/_content.yaml
Expand Down Expand Up @@ -472,6 +473,9 @@ if (!bp.mob && hasWindow) {
<tr><td>Enforcement Reports</td><td>{this.docCount('deviceenforcement')}</td></tr>
<tr><td>COVID-19 Serological Testing Evaluations</td><td>{this.docCount('covid19serology')}</td></tr>

<tr className='bg-primary-darkest clr-white' id='dataset-downloads-scroll-anchor'> <td colSpan={2}><strong>Publications</strong></td></tr>
<tr> <td>Peer Reviewed Journals</td><td>{this.docCount('publicationspeerreviewed')}</td> </tr>

<tr className='bg-primary-darkest clr-white' id='dataset-downloads-scroll-anchor'> <td colSpan={2}><strong>Tobacco</strong></td></tr>
<tr> <td>Problem Reports</td><td>{this.docCount('tobaccoproblem')}</td> </tr>

Expand Down Expand Up @@ -532,6 +536,9 @@ if (!bp.mob && hasWindow) {
<tr><td>Enforcement Reports</td><td>{this.downloadCount('deviceenforcement')}</td></tr>
<tr><td>COVID-19 Serological Testing Evaluations</td><td>{this.downloadCount('covid19serology')}</td></tr>

<tr className='bg-primary-darkest clr-white'><td colSpan={2}><strong>Publications</strong></td></tr>
<tr><td>Peer Reviewed</td><td>{this.downloadCount('publicationspeerreviewed')}</td></tr>

<tr className='bg-primary-darkest clr-white'><td colSpan={2}><strong>Tobacco</strong></td></tr>
<tr><td>Problem Reports</td><td>{this.downloadCount('tobaccoproblem')}</td></tr>

Expand Down
4 changes: 3 additions & 1 deletion src/components/DataDictionary.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,7 @@ class DataDictionary extends React.Component<{}, DataDictionaryState> {
'food': 'Food',
'cosmetic': 'Cosmetic',
'other': 'Other',
'publications': 'Publications',
'tobacco': 'Tobacco',
'transparency': 'Transparency'
}
Expand All @@ -110,7 +111,8 @@ class DataDictionary extends React.Component<{}, DataDictionaryState> {
'substance': 'Substance Data',
'udi': 'UDI',
'unii': 'UNII',
'crl': 'Complete Response Letters'
'crl': 'Complete Response Letters',
'peerreviewed': 'Peer Reviewed Journals'
}


Expand Down
31 changes: 23 additions & 8 deletions src/components/EndpointBox.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import Link from 'gatsby-link'

import '../css/components/EndpointBox.scss'

type NounName = 'animalandveterinary' | 'food' | 'device' | 'drug' | 'other' | 'tobacco' | 'transparency';
type NounName = 'animalandveterinary' | 'food' | 'device' | 'drug' | 'other' | 'publications' | 'tobacco' | 'transparency';
type EndpointName =
| 'event'
| 'enforcement'
Expand All @@ -26,7 +26,8 @@ type EndpointName =
| 'substance'
| 'unii'
| 'problem'
| 'completeresponseletters';
| 'completeresponseletters'
| 'peerreviewed';

type tPROPS = {
noun_name: NounName,
Expand Down Expand Up @@ -84,11 +85,14 @@ const EndpointBox = (props: tPROPS) => {
'substance': 'Substance information that is precise to the molecular level for use internally and externally (where appropriate).',
'unii': 'Unique Ingredient Identifier list.'
},
'publications': {
'peerreviewed': 'Journals reflecting FDA-authored works from September 2023 through September 2025.'
},
'tobacco': {
'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)'
}
}

Expand Down Expand Up @@ -128,20 +132,25 @@ const EndpointBox = (props: tPROPS) => {
'substance': 'Substance Data',
'unii': 'UNII'
},
'publications': {
'peerreviewed': 'Peer Reviewed Journals'
},
'tobacco': {
'problem': 'Tobacco Problem Reports'
},
'transparency': {
'crl': 'Complete Response Letters',
'crl': 'Complete Response Letters'
}
}

const bg_color: Record<NounName, React.CSSProperties> = {
'animalandveterinary': {background: "linear-gradient(to right bottom, #9cf6f6, #007CBA)"},
'food': {background: "linear-gradient(to right bottom, rgb(143, 209, 100), rgb(81, 161, 22))"},
'cosmetic': {background: "linear-gradient(to right bottom, #CFA1CF, #592680)"},
'device': {background: "linear-gradient(to right bottom, #ff8989, #c94747)"},
'drug': {background: "linear-gradient(to right bottom, rgb(220, 141, 188), rgb(153, 88, 163))"},
'other': {background: "linear-gradient(to right bottom, #9cf6f6, #099db7)"},
'publications': {background: "linear-gradient(to right bottom, #9cf6f6, #099db7)"},
'tobacco': {background: "linear-gradient(to right bottom, #e6ccb3, #6d5843)"},
'transparency': {background: "linear-gradient(to right bottom, rgb(241 238 237), rgb(133 133 132))"},
}
Expand Down Expand Up @@ -177,10 +186,13 @@ const EndpointBox = (props: tPROPS) => {
'drugshortages': <div className='ep-icon' style={bg_color.drug}><i className='fa fa-3x fa-at' style={{color: "white"}}/></div>
},
'other': {
'historicaldocument': <div className="ep-icon" style={bg_color['other']}><i className="fa fa-3x fa-history" style={{color: "white"}}/></div>,
'nsde': <div className="ep-icon" style={bg_color['other']}><i className="fa fa-3x fa-database" style={{color: "white"}}/></div>,
'substance': <div className="ep-icon" style={bg_color['other']}><i className="fa fa-3x fa-flask" style={{color: "white"}}/></div>,
'unii': <div className="ep-icon" style={bg_color['other']}><i className="fa fa-3x fa-barcode" style={{color: "white"}}/></div>
'historicaldocument': <div className='ep-icon' style={bg_color['other']}><i className='fa fa-3x fa-history' style={{color: "white"}}/></div>,
'nsde': <div className='ep-icon' style={bg_color['other']}><i className='fa fa-3x fa-database' style={{color: "white"}}/></div>,
'substance': <div className='ep-icon' style={bg_color['other']}><i className='fa fa-3x fa-flask' style={{color: "white"}}/></div>,
'unii': <div className='ep-icon' style={bg_color['other']}><i className='fa fa-3x fa-barcode' style={{color: "white"}}/></div>
},
'publications': {
'peerreviewed': <div className='ep-icon' style={bg_color.publications}><i className='fa fa-3x fa-book' style={{color: "white"}}/></div>
},
'tobacco': {
'problem': <div className='ep-icon' style={bg_color.tobacco}><i className='fa fa-3x fa-leaf' style={{color: "white"}}/></div>
Expand Down Expand Up @@ -226,6 +238,9 @@ const EndpointBox = (props: tPROPS) => {
'substance': '/apis/other/substance/',
'unii': '/apis/other/unii/'
},
'publications': {
'peerreviewed': '/apis/publications/peerreviewed/'
},
'tobacco': {
'problem': '/apis/tobacco/problem/'
},
Expand Down
3 changes: 3 additions & 0 deletions src/components/FieldDownload.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ const pdfDownloadMap: Readonly<Record<string, string>> = Object.freeze({
'otherhistoricaldocument': '/fields/otherhistoricaldocument_reference.pdf',
'othernsde': '/fields/othernsde_reference.pdf',
'othersubstance': '/fields/othersubstance_reference.pdf',
'publicationspeerreviewed': '/fields/publicationspeerreviewed_reference.pdf',
'tobaccoproblem': '/fields/tobaccoproblem_reference.pdf',
'transparencycrl': '/fields/transparencycrl_reference.pdf'
});
Expand Down Expand Up @@ -51,6 +52,7 @@ const xlsxDownloadMap: Readonly<Record<string, string>> = Object.freeze({
'otherhistoricaldocument': '/fields/otherhistoricaldocument_reference.xlsx',
'othernsde': '/fields/othernsde_reference.xlsx',
'othersubstance': '/fields/othersubstance_reference.xlsx',
'publicationspeerreviewed': '/fields/publicationspeerreviewed_reference.xlsx',
'tobaccoproblem': '/fields/tobaccoproblem_reference.xlsx',
'transparencycrl': '/fields/transparencycrl_reference.xlsx'
});
Expand Down Expand Up @@ -78,6 +80,7 @@ const yamlDownloadMap: Readonly<Record<string, string>> = Object.freeze({
'otherhistoricaldocument': '/fields/otherhistoricaldocument.yaml',
'othernsde': '/fields/othernsde.yaml',
'othersubstance': '/fields/othersubstance.yaml',
'publicationspeerreviewed': '/fields/publicationspeerreviewed.yaml',
'tobaccoproblem': '/fields/tobaccoproblem.yaml',
'transparencycrl': '/fields/transparencycrl.yaml'
});
Expand Down
3 changes: 2 additions & 1 deletion src/components/Nav.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -160,9 +160,10 @@ const Nav = (props: tPROPS) => {
<Link className={linkCx} to='/apis/device/' onClick={closeMobileNav}>Device Endpoints</Link>
<Link className={linkCx} to='/apis/food/' onClick={closeMobileNav}>Food Endpoints</Link>
<Link className={linkCx} to='/apis/cosmetic/' onClick={closeMobileNav}>Cosmetic Endpoints</Link>
<Link className={linkCx} to='/apis/other/' onClick={closeMobileNav}>Other Endpoints</Link>
<Link className={linkCx} to='/apis/publications/' onClick={closeMobileNav}>Publications Endpoints</Link>
<Link className={linkCx} to='/apis/tobacco/' onClick={closeMobileNav}>Tobacco Endpoints</Link>
<Link className={linkCx} to='/apis/transparency/' onClick={closeMobileNav}>Transparency Endpoints</Link>
<Link className={linkCx} to='/apis/other/' onClick={closeMobileNav}>Other Endpoints</Link>
</div>
</div>
</div>
Expand Down
12 changes: 12 additions & 0 deletions src/components/RenderContentObject/KeyFacts.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,9 @@ const source: Record<string, Record<string, string>> = {
'substance': 'Substance Data Reports',
'unii': 'Unique Ingredient Identifiers'
},
'publications': {
'peerreviewed': 'Peer Reviewed Journals'
},
'tobacco': {
'problem': 'Tobacco Problem Reports'
},
Expand Down Expand Up @@ -83,6 +86,9 @@ const sourceLink: any = {
'substance': '/apis/other/substance/',
'unii': '/data/unii/'
},
'publications': {
'peerreviewed': '/apis/publications/peerreviewed/'
},
'tobacco': {
'problem': '/data/tobaccoproblem/'
},
Expand Down Expand Up @@ -126,6 +132,9 @@ const timePeriod: any = {
'substance': 'Last updated',
'unii': '2006 to'
},
'publications': {
'peerreviewed': '2023-09-01 to'
},
'tobacco': {
'problem': '2017 to'
},
Expand Down Expand Up @@ -170,6 +179,9 @@ const frequency = {
'substance': 'Every few months',
'unii': 'Daily'
},
'publications': {
'peerreviewed': 'Infrequently'
},
'tobacco': {
'problem': 'Quarterly'
},
Expand Down
2 changes: 1 addition & 1 deletion src/components/SideBar/DownloadsMenu.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ const DownloadsMenu = (props: DownloadsMenuProps) => {
{
content.map((c: string|Object, i: number) => {
let header: number = 0
if (c === 'Animal and Veterinary' || c === 'Food' || c === 'Cosmetics' || c === 'Human Drug' || c === 'Medical Device' || c === 'Tobacco' || c === 'Transparency' || c === 'Other') {
if (c === 'Animal and Veterinary' || c === 'Food' || c === 'Cosmetics' || c === 'Human Drug' || c === 'Medical Device' || c=== 'Publications' || c === 'Tobacco' || c === 'Transparency' || c === 'Other') {
header = 1
}

Expand Down
2 changes: 1 addition & 1 deletion src/constants/api.tsx
Original file line number Diff line number Diff line change
@@ -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,
Expand Down
136 changes: 136 additions & 0 deletions src/constants/fields/master_fields.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11415,6 +11415,142 @@ other:
name: "Unique Ingredient Identifiers"
link: "http://fdasis.nlm.nih.gov/srs/srs.jsp"
type: object
publications:
peerreviewed:
properties:
pubmed_id:
description: "The PubMed identifier"
format:
is_exact: false
possible_values:
type: string
category:
description: "What category of publication it is"
format:
is_exact: false
possible_values:
type: string
title:
description: "The title of the publication"
format:
is_exact: true
possible_values:
type: string
abstract:
description: "The abstract text"
format:
is_exact: false
possible_values:
type: string
authors:
type: array
items:
description: "The authors of the publication"
format:
is_exact: true
possible_values:
type: string
affiliations:
type: array
items:
description: "The organizations affiliated with the publication"
format:
is_exact: true
possible_values:
type: string
journal:
description: "The name of the journal"
format:
is_exact: true
possible_values:
type: string
volume:
description: "What volume the publication is in"
format:
is_exact: false
possible_values:
type: string
issue:
description: "What issue the publication is in"
format:
is_exact: false
possible_values:
type: string
pub_status:
description: "The publication status"
format:
is_exact: false
possible_values:
type: string
month:
description: "The month published"
format:
is_exact: false
possible_values:
type: string
year:
description: "The year published"
format:
is_exact: false
possible_values:
type: string
journal_type:
description: "The type of journal"
format:
is_exact: false
possible_values:
type: string
doi_id:
description: "The DOI identifier"
format:
is_exact: false
possible_values:
type: string
keywords:
type: array
items:
description: "Keywords found in the publication"
format:
is_exact: true
possible_values:
type: string
mesh_descriptor_name:
type: array
items:
description: "Names of the mesh descriptors included in the publication"
format:
is_exact: true
possible_values:
type: string
mesh_qualifier_name:
type: array
items:
description: "Names of the mesh qualifiers included in the publication"
format:
is_exact: true
possible_values:
type: string
citation:
description: "The full citation"
format:
is_exact: false
possible_values:
type: string
fda_authors:
type: array
items:
description: "The FDA authors of the publication"
format:
is_exact: true
possible_values:
type: string
link:
description: "The url link to the full publication"
format:
is_exact: false
possible_values:
type: string
type: object
tobacco:
problem:
properties:
Expand Down
Loading