SPB Git forge

spb/cancerindex

Public
37commits 1branches 0releases
2.9 MBsize
maindefault branch
10 days agolast push
TypeScript 97.2% SQL 1.5% CSS 0.6% JavaScript 0.5%
4.0 KB · 100 lines typescript
Raw Blame History
1export const SITE_URL = process.env.NEXT_PUBLIC_SITE_URL ?? 'https://www.cancerindex.io';2export const SITE_NAME = 'CancerIndex';3export const TAGLINE = 'The global index of cancer.';4export const DISCLAIMER =5  'CancerIndex is a research and information platform. It is not a physician, does not diagnose, and does not recommend treatment. Population statistics do not predict individual outcomes.';6export const CONTACT_EMAIL = 'contact@spboucher.ai';7export const AUTHOR_NAME = 'Simon-Pierre Boucher';8export const AUTHOR_URL = 'https://www.spboucher.ai';9export const HOSTING_NAME = 'MacLustr';10export const HOSTING_URL = 'https://www.maclustr.io';1112export const NAV = [13  { href: '/cancers', label: 'Cancers' },14  { href: '/explore', label: 'Data' },15  { href: '/trials', label: 'Trials' },16  { href: '/drugs', label: 'Drugs' },17  { href: '/genes', label: 'Genes' },18  { href: '/biomarkers', label: 'Biomarkers' },19  { href: '/approvals', label: 'Approvals' },20  { href: '/rankings', label: 'Rankings' },21  { href: '/research-gap', label: 'Research gap' },22  { href: '/graph', label: 'Graph' },23] as const;2425/** Secondary navigation (mobile menu + footer): everything not in the primary bar. */26export const MORE_NAV = [27  { href: '/pulse', label: 'Pulse' },28  { href: '/data-updates', label: 'Data updates' },29  { href: '/year/2025', label: 'Year in cancer' },30  { href: '/taxonomy', label: 'Taxonomy' },31  { href: '/countries', label: 'Countries' },32  { href: '/compare', label: 'Compare' },33  { href: '/trials/intelligence', label: 'Trial intelligence' },34  { href: '/trials/map', label: 'Trial map' },35  { href: '/pipeline', label: 'Drug pipeline' },36  { href: '/sources', label: 'Sources' },37  { href: '/methodology', label: 'Methodology' },38] as const;3940export const FOOTER_NAV = [41  { href: '/about', label: 'About' },42  { href: '/trust', label: 'Trust & policies' },43  { href: '/explore', label: 'Data explorer' },44  { href: '/data', label: 'Data downloads' },45  { href: '/pulse', label: 'Pulse' },46  { href: '/data-updates', label: 'Data update log' },47  { href: '/developers', label: 'Developers (API)' },48  { href: '/sources', label: 'Sources' },49  { href: '/methodology', label: 'Methodology' },50  { href: '/taxonomy', label: 'Taxonomy' },51  { href: '/countries', label: 'Countries' },52  { href: '/compare', label: 'Compare' },53] as const;5455/** External identifier browsers (chips on cancer pages link out to the authority). */56export function codeUrl(system: string, code: string): string | null {57  switch (system) {58    case 'ncit':59      return `https://evsexplore.semantics.cancer.gov/evsexplore/concept/ncit/${encodeURIComponent(code)}`;60    case 'oncotree':61      return `https://oncotree.mskcc.org/?version=oncotree_latest_stable&field=CODE&search=${encodeURIComponent(code)}`;62    case 'icd10':63    case 'icd10cm':64      return `https://icd.who.int/browse10/2019/en#/${encodeURIComponent(code)}`;65    case 'doid':66      return `https://disease-ontology.org/?id=${encodeURIComponent(code.startsWith('DOID:') ? code : `DOID:${code}`)}`;67    case 'umls':68      return `https://uts.nlm.nih.gov/uts/umls/concept/${encodeURIComponent(code)}`;69    case 'mesh':70      return `https://meshb.nlm.nih.gov/record/ui?ui=${encodeURIComponent(code)}`;71    case 'mondo':72      return `https://monarchinitiative.org/${encodeURIComponent(code)}`;73    case 'efo':74      return `https://www.ebi.ac.uk/efo/${encodeURIComponent(code)}`;75    case 'orphanet':76      return `https://www.orpha.net/en/disease/detail/${encodeURIComponent(code.replace(/^ORPHA:?/i, ''))}`;77    case 'gdc_project':78      return `https://portal.gdc.cancer.gov/projects/${encodeURIComponent(code)}`;79    default:80      return null;81  }82}8384export const CODE_SYSTEM_LABEL: Record<string, string> = {85  ncit: 'NCIt',86  oncotree: 'OncoTree',87  icd10: 'ICD-10',88  icd10cm: 'ICD-10-CM',89  icdo_topography: 'ICD-O topography',90  icdo_morphology: 'ICD-O morphology',91  doid: 'DOID',92  umls: 'UMLS CUI',93  mesh: 'MeSH',94  mondo: 'MONDO',95  seer_site: 'SEER site',96  efo: 'EFO',97  orphanet: 'Orphanet',98  gdc_project: 'GDC project',99};100