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%
104.4 KB · 8,631 lines markdown
Rendered Raw Blame History
1> Original product specification supplied by the project owner on 2026-09-08. The repository CLAUDE.md is the condensed operational version.23# CLAUDE.md — CancerIndex.io45## 0. PROJECT IDENTITY67**Project:** CancerIndex.io8**Product type:** Global cancer intelligence platform, database, search engine, ranking system, knowledge graph, analytics platform, and AI research interface.9**Primary language:** English.10**Domain:** `cancerindex.io`11**Mission:** Build the most comprehensive, structured, searchable, continuously updated and transparently sourced cancer intelligence database possible.1213CancerIndex.io must aim to become:1415> **The global index of cancer.**1617Think of the product as a combination of:1819* Bloomberg Terminal for oncology20* IMDb/Wikipedia-style entity coverage21* Our World in Data for cancer epidemiology22* ClinicalTrials.gov explorer23* cBioPortal genomic exploration24* PubMed intelligence layer25* drug/biomarker intelligence platform26* cancer knowledge graph27* transparent ranking engine28* research assistant29* cancer statistics terminal3031The product must not merely list the 20–50 most common cancers.3233CancerIndex must attempt to model **every identifiable malignant disease, histological subtype, molecular subtype, rare cancer, hematologic malignancy, pediatric malignancy, tumor family, anatomical site and recognized cancer entity that can be responsibly mapped from authoritative taxonomies.**3435This includes cancers that may affect only a tiny number of people annually.3637Do not hardcode a simplistic cancer list.3839Build an evolving oncology ontology.4041---4243# 1. THE CORE PRINCIPLE4445CancerIndex must answer questions such as:4647* What cancers exist?48* How common is each cancer?49* Which cancers kill the most people?50* Which cancers have the highest mortality rate?51* Which cancers have the poorest survival?52* Which cancers are increasing fastest?53* Which cancers affect younger populations?54* Which cancers have the most treatments?55* Which cancers have the fewest treatments?56* Which cancers receive the most research?57* Which cancers receive the least research relative to burden?58* Which cancers currently have the most clinical trials?59* Which cancers have the most actionable mutations?60* Which cancers have the largest unmet need?61* Which cancers are associated with which genes?62* What variants occur in those genes?63* Which therapies target those abnormalities?64* Which drugs are approved?65* Which drugs are experimental?66* Which biomarkers predict response?67* Which trials are recruiting?68* Which publications support each relationship?69* Which countries have the highest incidence?70* How has incidence changed through time?71* How does survival differ by stage?72* How does age influence incidence?73* How does sex influence incidence?74* Which risk factors are associated with each malignancy?75* Which cancers can be screened for?76* Which cancers can be prevented?77* Which cancers are becoming more survivable?78* Where are the largest gaps in oncology research?7980Everything must be explorable from the web interface and eventually through an API.8182---8384# 2. ABSOLUTE RULE: PROVENANCE FIRST8586CancerIndex must never display an important scientific number without knowing where it originated.8788Every imported fact should support metadata such as:8990```ts91interface Provenance {92  sourceId: string93  sourceName: string94  sourceRecordId?: string95  sourceUrl?: string9697  dataset?: string98  datasetVersion?: string99100  publicationId?: string101  pmid?: string102  doi?: string103104  retrievedAt: string105  publishedAt?: string106  updatedAt?: string107108  geography?: string109  population?: string110  cohortSize?: number111112  methodology?: string113114  evidenceType:115    | "registry"116    | "clinical_trial"117    | "meta_analysis"118    | "systematic_review"119    | "cohort"120    | "case_control"121    | "case_series"122    | "case_report"123    | "preclinical"124    | "regulatory"125    | "guideline"126    | "expert_curation"127    | "database"128    | "computed"129130  accessLevel:131    | "open"132    | "registration_required"133    | "controlled"134    | "licensed"135136  confidence?: number137138  license?: string139}140```141142Every derived statistic must also be reproducible.143144Example:145146```json147{148  "metric": "mortality_to_incidence_ratio",149  "value": 0.73,150  "computed": true,151  "formula_version": "ci-mir-v1",152  "inputs": [153    "CINDEX-METRIC-102991",154    "CINDEX-METRIC-102992"155  ]156}157```158159Never destroy raw source information during normalization.160161Architecture:162163```text164RAW165 ↓166NORMALIZED167 ↓168CANONICAL169 ↓170DERIVED171 ↓172RANKED173 ↓174AI SYNTHESIS175```176177These layers must remain separable.178179---180181# 3. SCIENTIFIC SAFETY182183CancerIndex is a research/information platform.184185It is NOT:186187* a physician188* a diagnostic system189* a treatment prescriber190* a replacement for professional medical care191192Never produce treatment recommendations based only on an AI-generated inference.193194Clearly distinguish:195196```text197OBSERVED DATA198PUBLISHED EVIDENCE199CURATED EVIDENCE200REGULATORY STATUS201CLINICAL GUIDELINE202COMPUTED METRIC203AI-GENERATED SYNTHESIS204```205206Never silently merge these categories.207208---209210# 4. COVERAGE GOAL — EVERY CANCER WE CAN MODEL211212CancerIndex needs a hierarchical disease model.213214A simple table:215216```text217lung cancer218breast cancer219brain cancer220...221```222223is unacceptable.224225Cancer must be represented through a hierarchy.226227Example:228229```text230Cancer231└── Solid Tumor232    └── Lung Cancer233        └── Non-Small Cell Lung Cancer234            └── Lung Adenocarcinoma235                ├── EGFR-mutated LUAD236                ├── KRAS-mutated LUAD237                ├── ALK-positive LUAD238                ├── ROS1-positive LUAD239                └── RET-positive LUAD240```241242Another:243244```text245Cancer246└── Hematologic Malignancy247    └── Leukemia248        └── Acute Leukemia249            └── Acute Myeloid Leukemia250                ├── AML with NPM1 mutation251                ├── AML with CEBPA mutation252                ├── APL253                └── therapy-related AML254```255256Another:257258```text259Cancer260└── CNS Tumor261    └── Glioma262        └── Diffuse Glioma263            └── Glioblastoma264```265266The hierarchy needs multiple dimensions.267268Do NOT force every entity into only one parent tree.269270Support:271272```text273anatomical hierarchy274histological hierarchy275molecular hierarchy276WHO-style disease classification277ICD hierarchy278ICD-O morphology279ICD-O topography280NCI Thesaurus281Disease Ontology282OncoTree283SEER classification284pediatric classification285hematologic classification286```287288---289290# 5. CANONICAL CANCER ENTITY291292Create:293294```ts295CancerEntity296```297298Example schema:299300```ts301interface CancerEntity {302  id: string303  slug: string304305  canonicalName: string306  shortName?: string307308  aliases: string[]309  abbreviations: string[]310311  entityType:312    | "cancer"313    | "cancer_family"314    | "histology"315    | "subtype"316    | "molecular_subtype"317    | "hematologic_malignancy"318    | "precursor_condition"319    | "other"320321  parentIds: string[]322  childIds: string[]323324  anatomyIds: string[]325  histologyIds: string[]326327  ncitCodes: string[]328  icd10Codes: string[]329  icdoTopographyCodes: string[]330  icdoMorphologyCodes: string[]331  doidCodes: string[]332  oncotreeCodes: string[]333  umlsCodes: string[]334  meshIds: string[]335  mondoIds: string[]336337  malignant: boolean338  solidTumor: boolean339  hematologic: boolean340  pediatricRelevant: boolean341  rareCancer: boolean342343  description?: string344345  epidemiology?: CancerEpidemiologySummary346  survival?: CancerSurvivalSummary347348  geneAssociations?: string[]349  biomarkerAssociations?: string[]350  drugAssociations?: string[]351  trialAssociations?: string[]352353  ranking?: CancerRanking354355  provenanceIds: string[]356357  createdAt: string358  updatedAt: string359}360```361362---363364# 6. CANCERINDEX IDENTIFIERS365366CancerIndex needs its own stable ID namespace.367368Examples:369370```text371CI-CAN-00000001372CI-CAN-00000002373CI-GENE-00000001374CI-VAR-00000001375CI-DRUG-00000001376CI-TRIAL-00000001377CI-PUB-00000001378CI-BIO-00000001379CI-STUDY-00000001380CI-METRIC-00000001381CI-SOURCE-00000001382CI-ORG-00000001383CI-TRT-00000001384```385386Never expose database auto-increment integers as public identifiers.387388IDs must remain stable forever.389390---391392# 7. ENTITY UNIVERSE393394CancerIndex should eventually contain first-class entities for:395396## Cancer397398```text399Cancer400Cancer subtype401Histology402Molecular subtype403Tumor family404Precancerous condition where relevant405Metastatic disease state406```407408## Anatomy409410```text411Organ412Tissue413Anatomical site414Primary site415Metastatic site416```417418## Genes419420```text421Gene422Transcript423Protein424Pathway425Gene family426```427428## Genetic alterations429430```text431SNV432MNV433Insertion434Deletion435Indel436Fusion437Rearrangement438Amplification439Deletion/CNA440Loss of heterozygosity441Promoter mutation442Splice alteration443Expression change444Epigenetic alteration445Structural variant446```447448## Biomarkers449450```text451Gene mutation452Protein expression453Hormone receptor454PD-L1455MSI456TMB457HRD458ctDNA459methylation460gene signature461expression signature462cell surface marker463immune marker464```465466## Drugs467468```text469small molecule470monoclonal antibody471ADC472bispecific antibody473CAR-T474cell therapy475gene therapy476cancer vaccine477radiopharmaceutical478chemotherapy479hormonal therapy480immunotherapy481targeted therapy482```483484## Treatment concepts485486```text487drug488drug combination489surgery490radiotherapy491brachytherapy492proton therapy493transplantation494cell therapy495watchful waiting496active surveillance497```498499## Clinical research500501```text502clinical trial503trial arm504intervention505cohort506endpoint507study508publication509investigator510institution511sponsor512```513514## Population515516```text517country518territory519state/province520region521registry522age group523sex524calendar year525```526527---528529# 8. THE CONNECTOR PHILOSOPHY530531CancerIndex must be built around connectors.532533Do not manually populate the platform except for explicitly curated metadata.534535Every external system must have an independent connector.536537Structure:538539```text540/connectors541  /nci542  /gdc543  /seer544  /iarc545  /clinicaltrials546  /pubmed547  /clinvar548  /cbioportal549  /civic550  /hgnc551  /ensembl552  /chembl553  /opentargets554  /dgidb555  /fda556  ...557```558559Every connector implements something similar to:560561```ts562interface Connector {563  id: string564  name: string565566  discover(): Promise<void>567  fetch(): Promise<void>568  normalize(): Promise<void>569  reconcile(): Promise<void>570  validate(): Promise<void>571  persist(): Promise<void>572573  healthCheck(): Promise<ConnectorHealth>574575  getCursor(): Promise<ConnectorCursor>576  setCursor(cursor: ConnectorCursor): Promise<void>577}578```579580---581582# 9. CONNECTOR MANIFEST583584Every connector needs:585586```yaml587id:588name:589organization:590category:591592access:593  type: api|bulk|rss|ftp|graphql|rest|scrape|manual594  auth: none|api_key|oauth|account|controlled595596license:597terms_reviewed:598commercial_use_status:599600update_frequency:601expected_latency:602603supports_incremental_sync:604605entities:606metrics:607608rate_limits:609610retry_policy:611612raw_retention:613614schema_version:615616documentation_verified_at:617618owner:619status:620```621622---623624# 10. CONNECTOR PRIORITY TIERS625626## TIER 0 — FOUNDATIONAL627628These must be implemented first.629630### 10.1 NCI Enterprise Vocabulary Services631632Purpose:633634* cancer terminology635* canonical disease names636* disease aliases637* drug concepts638* biomarkers639* terminology mappings640* controlled oncology concepts641642Use NCI terminology as one of the anchors of the CancerIndex normalization system.643644Store NCI identifiers on entities.645646---647648### 10.2 NCI Genomic Data Commons — GDC649650Use for:651652* TCGA653* TARGET654* CPTAC where available through the platform655* case metadata656* tumor metadata657* genomic files658* mutation information659* copy-number information660* expression661* molecular features662* survival-related analyses663* cancer cohorts664665Connector must support:666667```text668projects669cases670files671annotations672genes673mutations674CNV675metadata676manifests677```678679Do not ingest controlled-access patient-identifiable/low-level data without the proper authorization model.680681Prioritize open, aggregated and de-identified data.682683---684685### 10.3 SEER686687Purpose:688689* US cancer incidence690* mortality where available/appropriate691* survival692* age693* sex694* race/ethnicity where datasets permit695* staging696* disease classification697* registry geography698* trends699700Use SEER for American cancer burden and survival analytics.701702Never represent a SEER population estimate as a global estimate.703704---705706### 10.4 IARC Global Cancer Observatory / GLOBOCAN707708This should be the major global epidemiology layer.709710Capture when permitted:711712```text713incidence714mortality715prevalence716age-standardized rates717sex718country719region720cancer type721year722```723724Build CancerIndex country and global rankings from this layer.725726Terms and redistribution rights MUST be reviewed before automated bulk ingestion.727728Do not assume that because data are publicly viewable they can automatically be republished wholesale.729730---731732### 10.5 ClinicalTrials.gov733734Build an extremely robust ClinicalTrials.gov connector.735736Capture:737738```text739NCT ID740official title741brief title742study type743phase744status745conditions746interventions747arms748sponsor749collaborators750eligibility751sex752age753enrollment754locations755countries756investigators757primary outcomes758secondary outcomes759start date760completion date761study results762references763last update764```765766CancerIndex must map free-text conditions to canonical cancer IDs.767768CancerIndex must map:769770```text771trial → cancer772trial → drug773trial → biomarker774trial → gene775trial → institution776trial → country777```778779Incrementally synchronize changed records.780781---782783### 10.6 PubMed784785Massive literature connector.786787Capture:788789```text790PMID791title792abstract793authors794affiliations795journal796publication date797publication types798MeSH799DOI800references where accessible801retractions/corrections802```803804Build mappings:805806```text807publication → cancer808publication → gene809publication → variant810publication → biomarker811publication → drug812publication → trial813```814815Do not make LLM entity extraction authoritative.816817LLM extraction creates candidate relationships.818819Those candidates must be labeled accordingly until validated.820821---822823### 10.7 ClinVar824825Use for:826827```text828variants829clinical significance830conditions831review status832submitter information833variation IDs834HGVS835genes836citations837drug response838```839840Map cancer-associated ClinVar records into the graph.841842---843844### 10.8 cBioPortal845846Use for cancer cohort/genomics exploration.847848Import where licensing permits:849850```text851studies852patients853samples854mutations855CNA856expression857clinical attributes858survival859molecular profiles860```861862CancerIndex should preserve original study IDs.863864---865866### 10.9 CIViC867868Extremely important for curated clinical interpretation of cancer variants.869870Map:871872```text873gene874variant875molecular profile876disease877therapy878evidence item879assertion880publication881evidence level882evidence direction883clinical significance884```885886Do not flatten CIViC evidence into a binary:887888```text889works / doesn't work890```891892Preserve its structured evidence.893894---895896# 11. TIER 1 — MOLECULAR INTELLIGENCE897898Implement these after foundational ingest.899900## HGNC901902Canonical human gene nomenclature.903904Capture:905906```text907HGNC ID908approved symbol909approved name910aliases911previous symbols912chromosomal location913cross references914```915916HGNC should be authoritative for canonical human gene symbol reconciliation.917918---919920## Ensembl921922Capture:923924```text925genes926transcripts927variants928coordinates929assemblies930regulatory information931homology where useful932```933934Always retain genome assembly.935936Never store a coordinate without:937938```text939assembly940chromosome941position942reference943alternate944```945946---947948## NCBI Gene949950Use as additional cross-reference and annotation source.951952---953954## dbSNP955956Variant identifiers and genomic cross references.957958---959960## dbVar961962Structural variation.963964---965966## Sequence Ontology967968Normalize variant types.969970---971972## Gene Ontology973974Functional annotation.975976---977978## UniProt979980Protein entities and protein annotation.981982---983984## Reactome985986Pathways.987988Build:989990```text991gene → pathway992protein → pathway993drug target → pathway994cancer → dysregulated pathway995```996997---998999## WikiPathways10001001Secondary pathway source.10021003---10041005## Protein Data Bank10061007Connect cancer proteins and drug targets to experimental structures.10081009---10101011## AlphaFold Protein Structure Database10121013Optional structural biology layer.10141015Do not imply predicted structure equals experimental structure.10161017---10181019# 12. TIER 2 — DRUG INTELLIGENCE10201021## ChEMBL10221023Capture:10241025```text1026molecules1027mechanisms1028targets1029assays1030activities1031indications1032development phase1033```10341035---10361037## Open Targets10381039Use as a disease-target-drug evidence layer.10401041Map:10421043```text1044target ↔ disease1045drug ↔ target1046evidence source1047association score1048```10491050Never convert another database's association score directly into a CancerIndex evidence score without documenting transformation.10511052---10531054## DGIdb10551056Drug-gene interactions.10571058Preserve contributing source information.10591060---10611062## DrugBank10631064Potential connector.10651066**Important:** licensing must be verified before implementation or redistribution.10671068Do not scrape or reproduce licensed content without permission.10691070---10711072## PubChem10731074Use for:10751076```text1077compound IDs1078structures1079synonyms1080chemical identifiers1081```10821083---10841085## DrugCentral10861087Candidate drug information source.10881089Verify current terms and downloadable datasets.10901091---10921093## DailyMed10941095Structured FDA label information.10961097Potential fields:10981099```text1100drug label1101indications1102contraindications1103warnings1104dose language1105adverse reactions1106manufacturer1107label version1108```11091110Never paraphrase a drug label and then present the paraphrase as the legal label.11111112---11131114## OpenFDA11151116Use where useful for structured FDA data.11171118Potential:11191120```text1121labels1122adverse event aggregates1123drug metadata1124```11251126Adverse-event reports must include strong caveats.11271128Spontaneous reporting cannot be treated as incidence or causal proof.11291130---11311132# 13. TIER 3 — REGULATORY INTELLIGENCE11331134Build country-aware regulatory status.11351136Never use:11371138```text1139approved = true1140```11411142alone.11431144Use:11451146```ts1147interface DrugApproval {1148  drugId: string1149  cancerId?: string1150  biomarkerIds: string[]11511152  jurisdiction:1153    | "US"1154    | "CA"1155    | "EU"1156    | "UK"1157    | "AU"1158    | "JP"1159    | "OTHER"11601161  authority:1162    | "FDA"1163    | "Health Canada"1164    | "EMA"1165    | "MHRA"1166    | "TGA"1167    | "PMDA"1168    | string11691170  indication: string11711172  lineOfTherapy?: string1173  diseaseStage?: string11741175  approvalType?: string1176  accelerated?: boolean1177  conditional?: boolean11781179  approvalDate?: string1180  withdrawalDate?: string11811182  status:1183    | "approved"1184    | "conditional"1185    | "accelerated"1186    | "withdrawn"1187    | "superseded"11881189  sourceId: string1190}1191```11921193---11941195## FDA Oncology11961197Connect:11981199* oncology approval announcements1200* Oncology Center of Excellence1201* Project Confirm1202* accelerated approvals1203* withdrawn accelerated approvals1204* verified clinical benefit1205* Project Orbis1206* labeling1207* regulatory reviews12081209CancerIndex should have an:12101211**Oncology Approval Timeline**12121213---12141215## Health Canada12161217CancerIndex is global; Canada must be properly represented.12181219Potential datasets:12201221* Drug Product Database1222* Notice of Compliance1223* Summary Basis of Decision1224* Product Monographs1225* Project Orbis-related approvals12261227Review redistribution and API availability before implementation.12281229---12301231## EMA12321233Capture:12341235```text1236European Public Assessment Reports1237indications1238marketing authorization1239authorization dates1240withdrawals1241safety changes1242```12431244---12451246## MHRA12471248UK regulatory layer.12491250---12511252## TGA12531254Australia regulatory layer.12551256---12571258## PMDA12591260Japan regulatory layer.12611262---12631264## Swissmedic12651266Swiss layer.12671268---12691270# 14. TIER 4 — GLOBAL EPIDEMIOLOGY12711272Additional country sources should augment IARC rather than blindly override it.12731274Possible connectors:12751276## WHO12771278Global health statistics and relevant cancer-related datasets.12791280## CDC12811282US cancer statistics where useful.12831284## Statistics Canada12851286Canadian mortality/population data.12871288## Canadian Cancer Statistics12891290Evaluate licensing and machine-readable availability.12911292## Canadian Cancer Registry12931294Integrate permitted aggregated data where accessible.12951296## European Cancer Information System12971298European epidemiology.12991300## EUROCARE13011302European survival research where permitted.13031304## National cancer registries13051306Build country-specific connectors where high-quality public data exist.13071308Examples:13091310```text1311UK1312Australia1313New Zealand1314Nordic countries1315France1316Germany1317Netherlands1318Japan1319South Korea1320Singapore1321Canada1322United States1323```13241325Do NOT mix incompatible epidemiological definitions without harmonization.13261327---13281329# 15. TIER 5 — LITERATURE13301331## PubMed13321333Primary.13341335## Europe PMC13361337Use as a complementary literature graph.13381339Potential:13401341```text1342abstracts1343full-text availability1344citations1345references1346grants1347preprints1348```13491350## Crossref13511352DOI and publication metadata.13531354## OpenAlex13551356Useful for:13571358```text1359citation graph1360institutions1361authors1362topics1363research trends1364```13651366Verify licensing/current API conditions.13671368## Semantic Scholar13691370Potential secondary citation/AI-literature layer.13711372Review API conditions.13731374## bioRxiv13751376Preprints.13771378## medRxiv13791380Preprints.13811382Always label preprints prominently.13831384Never rank a preprint as equivalent to peer-reviewed evidence.13851386---13871388# 16. TIER 6 — CLINICAL GUIDELINES13891390Potential sources:13911392```text1393NCI1394ASCO1395ESMO1396NCCN1397Cancer Care Ontario1398NICE1399other national oncology organizations1400```14011402CRITICAL:14031404Guideline copyright and licensing vary substantially.14051406CancerIndex must NOT automatically scrape and reproduce paid/copyrighted guidelines.14071408For restricted sources:14091410store only permitted:14111412```text1413citation1414title1415publication date1416organization1417external reference1418metadata1419```14201421unless licensing permits more.14221423---14241425# 17. TIER 7 — PRECISION ONCOLOGY14261427Potential integrations:14281429```text1430CIViC1431ClinVar1432OncoKB1433Cancer Genome Interpreter1434JAX-CKB1435MolecularMatch1436My Cancer Genome1437```14381439But:14401441**Licensing must be checked individually.**14421443Never assume commercial reuse.14441445Build the CancerIndex precision oncology layer first from sources with clear reuse rights.14461447---14481449# 18. TIER 8 — CANCER CELL LINES AND PRECLINICAL DATA14501451Potential sources:14521453## DepMap14541455```text1456cell lines1457gene dependencies1458CRISPR screens1459drug sensitivity1460molecular features1461```14621463## Cancer Cell Line Encyclopedia14641465Integrate where licensing permits.14661467## GDSC14681469Genomics of Drug Sensitivity in Cancer.14701471## Cell Model Passports14721473Cancer model information.14741475## PDX resources14761477Patient-derived xenograft data where publicly available.14781479Keep:14801481```text1482PRECLINICAL1483```14841485clearly separated from human clinical evidence.14861487---14881489# 19. TIER 9 — IMMUNO-ONCOLOGY14901491Model:14921493```text1494immune checkpoints1495immune cell populations1496neoantigens1497HLA1498PD-11499PD-L11500CTLA-41501LAG-31502TIGIT1503TIM-31504TMB1505MSI1506immune gene signatures1507```15081509Sources can include:15101511```text1512GDC1513cBioPortal1514CIViC1515clinical trials1516publications1517Open Targets1518```15191520---15211522# 20. TIER 10 — PEDIATRIC ONCOLOGY15231524CancerIndex must NOT treat pediatric cancers as simply adult cancers in younger people.15251526Build dedicated pediatric taxonomy.15271528Sources could include:15291530```text1531TARGET1532NCI1533SEER1534IARC pediatric resources1535St. Jude public resources1536pediatric clinical trials1537literature1538```15391540Add:15411542```text1543age at diagnosis1544pediatric incidence1545AYA incidence1546survival1547molecular subtype1548treatment landscape1549late effects evidence1550```15511552---15531554# 21. TIER 11 — RARE CANCERS15551556Rare cancers are a core differentiator.15571558CancerIndex should attempt to index cancers even when:15591560```text1561incidence < 1 / 100,0001562```15631564Do not hide them because data are sparse.15651566Create:15671568**Rare Cancer Explorer**15691570Metrics:15711572```text1573estimated incidence1574number of known cases/cohorts1575number of publications1576number of clinical trials1577number of approved therapies1578number of targeted therapies1579available genomic studies1580research activity1581```15821583Data scarcity itself should be displayed.15841585---15861587# 22. CONNECTOR FALLBACK SYSTEM15881589Preferred connector hierarchy:15901591```text15921. official API15932. official bulk download15943. official structured feed15954. official database export15965. official static dataset15976. compliant website extraction15987. publication extraction15998. manual curator review1600```16011602Do NOT start by scraping if an API exists.16031604---16051606# 23. FIRECRAWL + SCRAPFLY16071608CancerIndex may use Firecrawl and Scrapfly for sources without suitable APIs.16091610Architecture:16111612```text1613official API1614    ↓ unavailable1615official bulk1616    ↓ unavailable1617Firecrawl1618    ↓ blocked / inadequate1619Scrapfly1620```16211622Firecrawl is primarily useful for:16231624```text1625documentation1626regulatory pages1627research institution pages1628structured public pages1629public tables1630release notes1631```16321633Scrapfly should be a fallback for technically difficult public pages when use is permitted.16341635Do NOT use anti-bot tooling to bypass:16361637* authentication1638* paywalls1639* explicit access restrictions1640* licensing controls1641* patient privacy protections1642* controlled genomic datasets16431644Store source terms/compliance status per connector.16451646---16471648# 24. CONNECTOR OBSERVABILITY16491650Every connector receives an admin dashboard.16511652Display:16531654```text1655status1656last successful sync1657last attempt1658duration1659records fetched1660records created1661records updated1662records rejected1663schema drift1664HTTP failures1665rate limit events1666validation failures1667freshness1668```16691670Example:16711672```text1673GDC                HEALTHY       11 min ago1674ClinicalTrials     HEALTHY        4 min ago1675PubMed             HEALTHY       8 min ago1676SEER               HEALTHY       2 hr ago1677FDA                DEGRADED      37 min ago1678IARC               REVIEW       license check1679```16801681---16821683# 25. SCHEMA DRIFT DETECTION16841685External APIs change.16861687Every connector must detect:16881689```text1690new fields1691removed fields1692changed enum values1693changed types1694unexpected nullability1695pagination behavior changes1696authentication changes1697```16981699When drift occurs:17001701```text1702DO NOT silently discard data.1703```17041705Alert the administrator.17061707---17081709# 26. RAW DATA LAKE17101711Every source payload should be retained when licensing allows.17121713Use object storage:17141715```text1716/raw/{source}/{date}/{entity}/{id}.json1717```17181719or compressed batch files.17201721Benefits:17221723* auditability1724* reproducibility1725* reprocessing1726* parser upgrades1727* debugging1728* historical snapshots17291730---17311732# 27. CANONICAL DATA MODEL17331734Core relational tables:17351736```text1737cancers1738cancer_aliases1739cancer_hierarchy1740cancer_codes17411742anatomical_sites17431744genes1745gene_aliases1746proteins1747transcripts17481749variants1750variant_coordinates1751variant_aliases17521753biomarkers17541755drugs1756drug_aliases1757drug_targets1758drug_indications1759drug_approvals17601761treatments1762treatment_regimens17631764clinical_trials1765trial_conditions1766trial_interventions1767trial_locations1768trial_outcomes1769trial_eligibility17701771publications1772authors1773institutions17741775studies1776cohorts17771778epidemiology_observations1779survival_observations17801781cancer_gene_edges1782cancer_variant_edges1783cancer_biomarker_edges1784cancer_drug_edges1785drug_gene_edges1786drug_variant_edges1787trial_cancer_edges1788publication_entity_edges17891790sources1791source_records1792provenance17931794rankings1795ranking_snapshots1796```17971798---17991800# 28. KNOWLEDGE GRAPH18011802CancerIndex must be graph-native conceptually, even if PostgreSQL remains the primary transactional database.18031804Graph:18051806```text1807Cancer1808 ├── HAS_SUBTYPE → Cancer1809 ├── OCCURS_IN → Anatomy1810 ├── ASSOCIATED_WITH → Gene1811 ├── HAS_VARIANT → Variant1812 ├── HAS_BIOMARKER → Biomarker1813 ├── TREATED_BY → Drug1814 ├── STUDIED_IN → Trial1815 ├── DESCRIBED_BY → Publication1816 └── OBSERVED_IN → Cohort18171818Gene1819 ├── HAS_VARIANT → Variant1820 ├── ENCODES → Protein1821 ├── MEMBER_OF → Pathway1822 └── TARGETED_BY → Drug18231824Variant1825 ├── OCCURS_IN → Cancer1826 ├── PREDICTS_RESPONSE_TO → Drug1827 ├── CONFERS_RESISTANCE_TO → Drug1828 └── SUPPORTED_BY → Evidence18291830Drug1831 ├── TARGETS → Gene1832 ├── APPROVED_FOR → Cancer1833 ├── INVESTIGATED_FOR → Cancer1834 └── USED_IN → Trial1835```18361837Relationships need provenance.18381839---18401841# 29. EDGE MODEL18421843Never store:18441845```text1846EGFR mutation → osimertinib1847```18481849without context.18501851Use:18521853```ts1854interface KnowledgeEdge {1855  id: string18561857  sourceEntityId: string1858  targetEntityId: string18591860  relationshipType: string18611862  cancerContextIds?: string[]18631864  predictive?: boolean1865  prognostic?: boolean1866  diagnostic?: boolean1867  predisposing?: boolean18681869  direction?:1870    | "supports"1871    | "resistance"1872    | "sensitivity"1873    | "neutral"1874    | "unknown"18751876  evidenceLevel?: string1877  evidenceScore?: number18781879  provenanceIds: string[]18801881  firstSeenAt: string1882  lastSeenAt: string1883}1884```18851886---18871888# 30. CANCER RANKING ENGINE18891890This is one of the signature features.18911892CancerIndex must rank every eligible cancer across MANY metrics.18931894There must never be one unexplained “danger ranking.”18951896---18971898# 31. RANKING DIMENSIONS18991900Every cancer can potentially have:19011902## Burden19031904```text1905global incidence count1906global mortality count1907global prevalence1908age-standardized incidence1909age-standardized mortality1910DALYs if source available1911YLL if source available1912```19131914## Lethality19151916```text1917mortality / incidence ratio19181-year survival19195-year survival192010-year survival1921stage IV survival1922median OS where meaningful1923```19241925## Trend19261927```text1928incidence CAGR1929mortality CAGR1930survival improvement1931age-adjusted incidence trend1932```19331934## Rarity19351936```text1937global incidence rank1938incidence per 100k1939estimated annual patients1940```19411942## Treatment Landscape19431944```text1945number of approved therapies1946number of targeted therapies1947number of immunotherapies1948number of biomarker-directed therapies1949number of treatment classes1950```19511952## Clinical Research19531954```text1955active trials1956recruiting trials1957phase I trials1958phase II trials1959phase III trials1960interventional trial count1961trial enrollment1962```19631964## Research Activity19651966```text1967publications last 12 months1968publications last 5 years1969publication growth1970citations1971research institutions1972```19731974## Molecular Knowledge19751976```text1977known recurrent genes1978actionable variants1979validated biomarkers1980genomic studies1981sequenced cohorts1982```19831984## Unmet Need19851986Derived carefully from:19871988```text1989mortality burden1990poor survival1991few approved therapies1992few active trials1993low research activity1994lack of actionable biomarkers1995```19961997---19981999# 32. RANK EVERY CANCER BY DEFAULT20002001Cancer detail pages should display:20022003```text2004Global incidence rank2005Global mortality rank20065-year survival rank2007Lethality rank2008Research activity rank2009Clinical trial rank2010Treatment availability rank2011Genomic knowledge rank2012Unmet need rank2013CancerIndex composite rank2014```20152016Example:20172018```text2019Pancreatic Adenocarcinoma20202021Mortality burden       #72022Incidence burden      #142023Lethality              #32024Five-year survival     #4 poorest2025Research activity     #112026Active trials         #152027Treatment options     #822028Unmet need             #52029CancerIndex Impact     #82030```20312032These are examples only.20332034Never hardcode examples as actual statistics.20352036---20372038# 33. RANKING SCOPE20392040Rankings need scope.20412042Example:20432044```text2045WORLD2046CANADA2047UNITED STATES2048EUROPE2049QUEBEC2050MALE2051FEMALE2052CHILDREN2053AYA2054AGE 65+20552024205620252057historical2058```20592060A rank is meaningless without a population and reference year.20612062Schema:20632064```ts2065interface Ranking {2066  cancerId: string20672068  metricId: string20692070  rank: number2071  eligibleEntities: number20722073  percentile: number20742075  geography: string2076  sex?: string2077  ageGroup?: string2078  year?: number20792080  value: number2081  unit: string20822083  sourceIds: string[]20842085  formulaVersion?: string20862087  generatedAt: string2088}2089```20902091---20922093# 34. COMPOSITE CANCERINDEX SCORE20942095Create an optional composite metric.20962097Do NOT present it as biological truth.20982099Possible conceptual model:21002101```text2102CancerIndex Impact Score2103```210421050–100.21062107Possible components:21082109```text211025% mortality burden211120% lethality211215% incidence burden211315% unmet treatment need211410% adverse trend211510% research deficit21165% clinical trial deficit2117```21182119Weights must be:21202121* visible2122* versioned2123* configurable2124* documented21252126Example:21272128```text2129CancerIndex Impact Score v1.02130```21312132Display:21332134```text2135Score: 87.4 / 1002136Rank: 6 / 4122137```21382139and a breakdown.21402141Never show only 87.4.21422143Show:21442145```text2146Mortality burden       932147Lethality              972148Incidence              782149Treatment deficit      842150Research deficit       632151Trend                   712152```21532154---21552156# 35. UNCERTAINTY21572158Rankings must account for uncertainty.21592160A rare cancer may have:21612162```text2163n = 222164```21652166Do not rank survival estimates derived from tiny datasets as equivalent to huge registry datasets.21672168Store:21692170```text2171sample size2172confidence interval2173standard error2174estimate method2175source quality2176data completeness2177```21782179Optionally display:21802181```text2182Ranking confidence21832184HIGH2185MEDIUM2186LOW2187INSUFFICIENT DATA2188```21892190---21912192# 36. DATA COMPLETENESS SCORE21932194Every cancer gets a completeness profile.21952196Example:21972198```text2199Epidemiology      92%2200Survival          81%2201Genomics          97%2202Trials            100%2203Therapies         93%2204Biomarkers        88%2205Literature        100%2206Pathology         76%2207```22082209This is separate from scientific confidence.22102211---22122213# 37. RESEARCH GAP INDEX22142215Create a major CancerIndex innovation:22162217## Research Gap Index22182219Question:22202221> Which cancers have a large burden but disproportionately little research?22222223Possible formula:22242225```text2226burden percentile2227÷2228research activity percentile2229```22302231More sophisticated version:22322233```text2234expected research activity =2235f(2236  incidence,2237  mortality,2238  years_of_life_lost,2239  lethality2240)22412242research gap =2243expected activity - observed activity2244```22452246Display:22472248**Most Under-Researched Cancers**22492250This could be extremely compelling.22512252---22532254# 38. TRIAL GAP INDEX22552256Another ranking:22572258```text2259disease burden2260vs2261active interventional trials2262```22632264Identify:22652266> High-burden cancers with few active trials.22672268---22692270# 39. TREATMENT GAP INDEX22712272Rank cancers based on:22732274```text2275mortality2276survival2277approved drug count2278effective targeted treatment count2279biomarker-directed therapies2280```22812282Again, label as CancerIndex-derived metric.22832284---22852286# 40. PROGRESS INDEX22872288Create:22892290**Cancer Progress Index**22912292Track over 5/10/20 years:22932294```text2295mortality improvement2296survival improvement2297treatment approvals2298trial growth2299biomarker growth2300research growth2301```23022303Show:23042305```text2306Most rapidly improving cancers2307Least improving cancers2308```23092310---23112312# 41. MOMENTUM INDEX23132314Short-term research momentum.23152316Components:23172318```text2319new trials2320new publications2321new drugs2322new FDA approvals2323new biomarkers2324new genomic studies2325```23262327Windows:23282329```text233030 days233190 days23321 year23335 years2334```23352336---23372338# 42. CANCER ENTITY DETAIL PAGE23392340Route:23412342```text2343/cancer/{slug}2344```23452346Example layout:23472348```text2349┌─────────────────────────────────────────────┐2350│ Pancreatic Ductal Adenocarcinoma            │2351│ PDAC                                        │2352│ CI-CAN-0000342                              │2353└─────────────────────────────────────────────┘23542355CancerIndex Score235689.223572358Global Rank2359#523602361Tabs:2362Overview2363Statistics2364Survival2365Stages2366Genomics2367Genes2368Variants2369Biomarkers2370Treatments2371Drugs2372Trials2373Research2374Publications2375Risk Factors2376Screening2377Prevention2378Countries2379Trends2380Sources2381```23822383---23842385# 43. CANCER OVERVIEW HERO23862387Show:23882389```text2390Global annual cases2391Global annual deaths23925-year survival2393median diagnosis age2394male/female distribution23952396Impact rank2397Mortality rank2398Lethality rank2399Research rank2400Unmet need rank2401```24022403Never display unsupported values.24042405---24062407# 44. CANCER SUMMARY24082409AI-generated summary should contain:24102411```text2412What it is2413Where it originates2414Major subtypes2415Epidemiology2416Typical molecular features2417Major treatment modalities2418Current research landscape2419```24202421Every paragraph needs citations.24222423AI summaries must be cached with:24242425```text2426model2427prompt version2428source snapshot2429generation date2430```24312432---24332434# 45. GLOBAL CANCER RANKING PAGE24352436Route:24372438```text2439/rankings2440```24412442Filters:24432444```text2445metric2446year2447country2448region2449sex2450age2451cancer category2452minimum cases2453data confidence2454```24552456Columns:24572458```text2459Rank2460Cancer2461Score/value2462Cases2463Deaths2464Mortality/incidence24655-year survival2466Active trials2467Publications2468Trend2469```24702471---24722473# 46. RANKING PRESETS24742475Routes or presets:24762477```text2478/rankings/incidence2479/rankings/mortality2480/rankings/lethality2481/rankings/survival2482/rankings/research2483/rankings/trials2484/rankings/treatment-gap2485/rankings/research-gap2486/rankings/momentum2487/rankings/progress2488/rankings/rare-cancers2489```24902491---24922493# 47. COUNTRY PAGES24942495Route:24962497```text2498/country/canada2499/country/united-states2500/country/france2501```25022503Display:25042505```text2506population2507annual cancer cases2508annual cancer deaths2509ASIR2510ASMR25112512Top cancers by incidence2513Top cancers by mortality2514male2515female25162517historical trend2518age distribution2519```25202521Map visualization.25222523---25242525# 48. GLOBAL CANCER MAP25262527Interactive world map.25282529Filters:25302531```text2532cancer2533incidence2534mortality2535ASR2536sex2537year2538age2539```25402541Click country → country dashboard.25422543---25442545# 49. GENE PAGES25462547Route:25482549```text2550/gene/TP532551```25522553Display:25542555```text2556gene overview2557HGNC identity2558chromosome2559protein2560pathways25612562cancers2563variants2564mutation frequencies2565biomarkers2566therapies2567clinical trials2568publications2569```25702571---25722573# 50. VARIANT PAGES25742575Example:25762577```text2578/variant/BRAF-V600E2579```25802581Display:25822583```text2584gene2585HGVS2586protein change2587coordinates by assembly2588ClinVar2589CIViC2590cancers2591frequencies2592drug sensitivity evidence2593drug resistance evidence2594clinical trials2595publications2596```25972598Separate evidence by cancer.25992600BRAF V600E in one cancer must not automatically inherit evidence from another cancer.26012602---26032604# 51. BIOMARKER PAGES26052606Examples:26072608```text2609PD-L12610MSI-H2611TMB-high2612HER22613HRD2614ER2615PR2616PSMA2617ctDNA2618```26192620Display:26212622```text2623definition2624measurement method2625cancers2626therapies2627FDA-approved indications2628clinical evidence2629trials2630publications2631```26322633---26342635# 52. DRUG PAGES26362637Route:26382639```text2640/drug/osimertinib2641```26422643Hero:26442645```text2646Generic name2647Brand names2648Drug class2649Targets2650Mechanism2651Developer2652First approval2653Current jurisdictions2654```26552656Tabs:26572658```text2659Overview2660Mechanism2661Targets2662Cancer indications2663Biomarkers2664Approvals2665Clinical trials2666Publications2667Combinations2668Resistance2669Safety2670Sources2671```26722673---26742675# 53. DRUG COMBINATION ENTITY26762677Do not treat:26782679```text2680Drug A + Drug B2681```26822683as two unrelated drugs.26842685Create:26862687```text2688TreatmentRegimen2689```26902691Examples:26922693```text2694FOLFOX2695FOLFIRINOX2696R-CHOP2697ABVD2698drug A + drug B2699```27002701---27022703# 54. CLINICAL TRIAL PAGES27042705Route:27062707```text2708/trial/NCT...2709```27102711Display:27122713```text2714status2715phase2716title2717cancers2718biomarkers2719interventions2720enrollment2721sponsor2722locations2723eligibility2724dates2725outcomes2726publications2727results2728```27292730---27312732# 55. TRIAL MATCH EXPLORER27332734Research use only.27352736Filters:27372738```text2739cancer2740stage2741gene2742variant2743biomarker2744drug2745phase2746country2747recruiting status2748age2749sex2750```27512752Do not claim a patient is eligible solely from automated filtering.27532754Use:27552756> Potentially relevant trials — verify full eligibility criteria with the study team.27572758---27592760# 56. PUBLICATION PAGES27612762Route:27632764```text2765/publication/{pmid}2766```27672768Show:27692770```text2771title2772authors2773journal2774date2775abstract2776DOI2777publication type27782779linked cancers2780linked genes2781linked variants2782linked drugs2783linked trials2784```27852786AI:27872788```text2789structured research summary2790```27912792Only where legally permitted from available text.27932794---27952796# 57. RESEARCHER PAGES27972798Optional later stage:27992800```text2801/researcher/{id}2802```28032804Metrics:28052806```text2807oncology publications2808cancers studied2809genes studied2810clinical trials2811citations2812institutions2813```28142815Avoid misleading researcher ranking based on raw citation count alone.28162817---28182819# 58. INSTITUTION PAGES28202821Examples:28222823```text2824MD Anderson2825Memorial Sloan Kettering2826Dana-Farber2827Princess Margaret2828Mayo Clinic2829Gustave Roussy2830```28312832Automatically derived from:28332834```text2835trials2836authors2837affiliations2838publications2839```28402841Rank institutions by transparent criteria, not prestige claims.28422843---28442845# 59. CANCER RESEARCH DASHBOARD28462847Route:28482849```text2850/research2851```28522853Show:28542855```text2856publications/year2857trials/year2858new drugs/year2859new targets/year2860new biomarkers/year2861research funding when reliable data exists2862```28632864---28652866# 60. RESEARCH TRENDS28672868Detect emerging topics.28692870Examples:28712872```text2873KRAS G12D2874T-cell engagers2875ADC2876ctDNA2877personalized vaccines2878radioligand therapy2879CAR-T in solid tumors2880```28812882Do not hardcode trends.28832884Calculate from publication/trial growth.28852886---28872888# 61. CANCER NEWS28892890Potential later connector layer:28912892```text2893FDA2894NCI2895NIH2896major journals2897cancer centers2898regulators2899clinical trial updates2900```29012902Use original source and publication timestamp.29032904AI clustering:29052906```text2907multiple reports → one story cluster2908```29092910---29112912# 62. AI — ASK CANCERINDEX29132914CancerIndex should contain a research assistant.29152916Route:29172918```text2919/ask2920```29212922Example questions:29232924```text2925Which cancers have the highest mortality-to-incidence ratio?29262927What are the most frequent genomic alterations in LUAD?29282929Compare KRAS G12C in lung and colorectal cancer.29302931Which recruiting Phase III trials are testing therapies for pancreatic cancer?29322933Which rare cancers have the fewest active clinical trials relative to incidence?29342935What cancers have seen the largest improvement in survival over 20 years?2936```29372938---29392940# 63. AI MUST QUERY STRUCTURED DATA FIRST29412942Never do:29432944```text2945question2946↓2947LLM general knowledge2948↓2949answer2950```29512952Do:29532954```text2955question2956↓2957intent parser2958↓2959CancerIndex query plan2960↓2961SQL / graph / search2962↓2963source records2964↓2965LLM synthesis2966↓2967citations2968```29692970---29712972# 64. AI ANSWER CONTRACT29732974Every answer returns:29752976```json2977{2978  "answer": "...",2979  "entities": [],2980  "citations": [],2981  "data_as_of": "...",2982  "confidence": "...",2983  "limitations": []2984}2985```29862987---29882989# 65. AI CITATIONS29902991Every important assertion must point to:29922993```text2994source2995dataset2996publication2997or regulatory record2998```29993000Click citation → source drawer.30013002Source drawer:30033004```text3005Source3006Organization3007Dataset3008Version3009Record3010Retrieved3011Raw value3012Normalized value3013Transformation3014```30153016---30173018# 66. AI MODEL PROVIDER ABSTRACTION30193020Do not couple the application to one LLM.30213022Interface:30233024```ts3025interface LLMProvider {3026  generate()3027  stream()3028  structuredOutput()3029  embed()3030}3031```30323033Support configurable providers.30343035Possible:30363037```text3038OpenAI3039Anthropic3040Google3041xAI3042local OpenAI-compatible endpoint3043```30443045CancerIndex should operate without requiring AI for core database functionality.30463047---30483049# 67. EMBEDDINGS30503051Generate embeddings for:30523053```text3054cancer descriptions3055publication abstracts3056trial descriptions3057drug mechanisms3058biomarker descriptions3059evidence summaries3060```30613062Use pgvector initially.30633064Store embedding model/version.30653066Never mix embeddings generated by incompatible models in one vector column without model metadata.30673068---30693070# 68. SEARCH ENGINE30713072Global search should support:30733074```text3075cancers3076subtypes3077genes3078variants3079biomarkers3080drugs3081trials3082publications3083institutions3084researchers3085```30863087Examples:30883089```text3090panc3091→ Pancreatic Cancer3092→ Pancreatic Ductal Adenocarcinoma30933094G12C3095→ KRAS G12C30963097HER2 low3098→ HER2-low Breast Cancer3099→ HER2-low biomarker concept3100```31013102Implement:31033104```text3105exact3106alias3107prefix3108fuzzy3109semantic3110cross-entity3111```31123113---31143115# 69. ENTITY RECONCILIATION ENGINE31163117This is one of the hardest parts.31183119Example source names:31203121```text3122NSCLC3123Non-small-cell lung cancer3124Non Small Cell Lung Carcinoma3125non-small cell carcinoma of lung3126```31273128must resolve appropriately.31293130Use:31313132```text3133exact IDs3134ontology mappings3135canonical aliases3136normalized strings3137context3138LLM only as fallback candidate generator3139human review3140```31413142Never merge two cancer entities solely because embeddings are similar.31433144---31453146# 70. ENTITY MERGE QUEUE31473148Admin system:31493150```text3151Possible duplicate31523153Cancer A3154Cancer B31553156Evidence:3157name similarity: 0.943158NCIt match: yes3159OncoTree match: yes31603161[MERGE]3162[KEEP SEPARATE]3163[REVIEW]3164```31653166Every merge must be auditable and reversible.31673168---31693170# 71. TEMPORAL DATA31713172Every observation is time-aware.31733174Never overwrite:31753176```text3177incidence 20223178```31793180with:31813182```text3183incidence 20243184```31853186Store both.31873188Core observation:31893190```ts3191interface EpidemiologyObservation {3192  cancerId: string31933194  geographyId: string31953196  year: number31973198  sex?: string3199  ageGroup?: string32003201  metric:3202    | "incidence_count"3203    | "incidence_rate"3204    | "as_incidence_rate"3205    | "mortality_count"3206    | "mortality_rate"3207    | "as_mortality_rate"3208    | "prevalence"32093210  value: number3211  unit: string32123213  lowerCI?: number3214  upperCI?: number32153216  sourceId: string3217}3218```32193220---32213222# 72. SURVIVAL DATA MODEL32233224Survival requires context.32253226Never store simply:32273228```text3229survival = 32%3230```32313232Use:32333234```ts3235interface SurvivalObservation {3236  cancerId: string3237  geographyId?: string32383239  stage?: string3240  sex?: string3241  ageGroup?: string3242  diagnosisPeriod?: string32433244  survivalType:3245    | "overall"3246    | "relative"3247    | "cause_specific"3248    | "progression_free"3249    | "disease_free"32503251  durationMonths: number3252  probability?: number3253  medianMonths?: number32543255  cohortSize?: number32563257  lowerCI?: number3258  upperCI?: number32593260  sourceId: string3261}3262```32633264---32653266# 73. STAGING32673268CancerIndex must support multiple staging systems.32693270Do not pretend all cancers use identical Stage I–IV systems.32713272Model:32733274```text3275AJCC/TNM3276FIGO3277Ann Arbor3278Lugano3279Durie-Salmon3280ISS/R-ISS3281Binet3282Rai3283disease-specific systems3284```32853286Licensing must be checked before reproducing proprietary staging definitions.32873288---32893290# 74. RISK FACTORS32913292Risk factor entities:32933294```text3295smoking3296alcohol3297UV3298obesity3299infection3300occupational exposure3301radiation3302genetic predisposition3303hormonal factors3304age3305```33063307Relations require evidence.33083309Example:33103311```text3312RiskFactor → ASSOCIATED_WITH → Cancer3313```33143315Store:33163317```text3318relative risk3319odds ratio3320hazard ratio3321population attributable fraction3322confidence interval3323study3324```33253326Do not translate association into causality automatically.33273328---33293330# 75. HEREDITARY CANCER33313332Dedicated hereditary layer.33333334Entities:33353336```text3337germline gene3338syndrome3339variant3340cancer risk3341penetrance estimate3342```33433344Examples conceptually:33453346```text3347BRCA13348BRCA23349Lynch syndrome3350TP53/Li-Fraumeni3351APC/FAP3352VHL3353```33543355Use trusted genetic sources.33563357Strong warning:33583359CancerIndex must not interpret a user's personal germline result as medical advice.33603361---33623363# 76. SCREENING33643365Store:33663367```text3368screening method3369eligible population3370cancer3371country3372organization3373recommendation date3374evidence level3375```33763377Guidelines are geography and organization specific.33783379Never display a universal screening recommendation when there isn't one.33803381---33823383# 77. PREVENTION33843385Represent prevention evidence separately.33863387Potential:33883389```text3390vaccination3391smoking cessation3392UV protection3393risk-reducing surgery3394screening3395infection prevention3396occupational exposure reduction3397```33983399---34003401# 78. PATHOLOGY34023403Future module.34043405Data:34063407```text3408histology3409pathology images3410stains3411IHC3412morphology3413grade3414```34153416Use public datasets with explicit image usage rights.34173418---34193420# 79. RADIOLOGY34213422Future module.34233424Potential public datasets:34253426```text3427TCIA and other properly licensed collections3428```34293430Separate:34313432```text3433CT3434MRI3435PET3436X-ray3437ultrasound3438```34393440Do not expose patient-identifiable DICOM metadata.34413442---34433444# 80. CANCER INDEX API34453446Public API:34473448```text3449api.cancerindex.io3450```34513452Version:34533454```text3455/v1/3456```34573458Possible endpoints:34593460```text3461GET /v1/cancers3462GET /v1/cancers/{id}3463GET /v1/cancers/{id}/statistics3464GET /v1/cancers/{id}/survival3465GET /v1/cancers/{id}/genes3466GET /v1/cancers/{id}/variants3467GET /v1/cancers/{id}/drugs3468GET /v1/cancers/{id}/trials3469GET /v1/cancers/{id}/publications34703471GET /v1/genes3472GET /v1/genes/{symbol}34733474GET /v1/variants/{id}34753476GET /v1/drugs3477GET /v1/drugs/{id}34783479GET /v1/trials/{nct}34803481GET /v1/rankings3482```34833484---34853486# 81. GRAPHQL34873488Consider later:34893490```text3491/graphql3492```34933494Example conceptual query:34953496```graphql3497cancer(id: "CI-CAN-...") {3498  name3499  ranking {3500    incidence3501    mortality3502  }3503  genes {3504    gene {3505      symbol3506    }3507    frequency3508  }3509  trials(status: RECRUITING) {3510    nctId3511    phase3512  }3513}3514```35153516---35173518# 82. MCP SERVER35193520CancerIndex should eventually expose an MCP server.35213522Purpose:35233524Allow AI agents to query CancerIndex directly.35253526Tools:35273528```text3529search_cancers3530get_cancer3531rank_cancers3532get_epidemiology3533get_survival3534get_gene3535get_variant3536get_drug3537search_trials3538search_publications3539query_knowledge_graph3540```35413542Read-only initially.35433544---35453546# 83. BULK DATA35473548Eventually provide permitted CancerIndex-derived datasets.35493550Formats:35513552```text3553CSV3554JSON3555JSONL3556Parquet3557```35583559Never redistribute restricted upstream source material.35603561---35623563# 84. ARCHITECTURE35643565Recommended:35663567```text3568Next.js3569TypeScript3570React35713572PostgreSQL3573pgvector35743575ClickHouse3576Redis35773578OpenSearch or Elasticsearch35793580MinIO/S335813582Python ingestion workers3583FastAPI scientific services35843585Temporal or durable job orchestration3586```35873588Graph:35893590Start with relational edge tables.35913592Introduce Neo4j/Memgraph only if graph workloads justify operational complexity.35933594Do not add infrastructure merely because it sounds sophisticated.35953596---35973598# 85. POSTGRESQL35993600Primary store for:36013602```text3603canonical entities3604relationships3605users3606API metadata3607source registry3608provenance3609admin3610ranking snapshots3611```36123613---36143615# 86. CLICKHOUSE36163617Use for large analytical observations:36183619```text3620epidemiology3621variant frequencies3622publication timelines3623trial timelines3624ranking datasets3625event logs3626```36273628---36293630# 87. OPENSEARCH36313632Use for global full-text search.36333634Indexes:36353636```text3637cancers3638genes3639variants3640drugs3641trials3642publications3643```36443645---36463647# 88. OBJECT STORAGE36483649Use for:36503651```text3652raw connector snapshots3653bulk source archives3654large datasets3655export files3656images where licensed3657```36583659---36603661# 89. REDIS36623663Use for:36643665```text3666hot cache3667rate limiting3668jobs3669distributed locks3670temporary AI streams3671```36723673Do not use Redis as canonical storage.36743675---36763677# 90. INGESTION JOB SYSTEM36783679Every ingest must be restartable.36803681Use:36823683```text3684connector3685↓3686discovery3687↓3688fetch3689↓3690raw persist3691↓3692parse3693↓3694validate3695↓3696normalize3697↓3698reconcile3699↓3700canonical persist3701↓3702index3703↓3704derived metrics3705↓3706ranking recompute3707```37083709---37103711# 91. IDEMPOTENCY37123713Running a connector twice must not duplicate data.37143715Use source-native IDs.37163717Example:37183719```text3720source = PubMed3721source_record_id = 123456783722```37233724Unique constraint.37253726---37273728# 92. SOFT DELETION37293730Sources can retract or remove records.37313732Never immediately hard-delete.37333734Use:37353736```text3737active3738deprecated3739retracted3740withdrawn3741source_missing3742```37433744Retain history.37453746---37473748# 93. PUBLICATION RETRACTIONS37493750CancerIndex must track retracted publications when data permit.37513752Relationships based only on retracted evidence should be flagged.37533754---37553756# 94. DATA FRESHNESS37573758Every page needs:37593760```text3761Data updated3762Source updated3763CancerIndex synchronized3764```37653766Example:37673768```text3769Clinical trials updated: today3770Genomics updated: Aug 20263771Global incidence dataset: 2024 estimate3772```37733774---37753776# 95. SOURCE PAGE37773778Route:37793780```text3781/source/{source}3782```37833784Display:37853786```text3787provider3788description3789dataset3790access method3791last sync3792records3793coverage3794license status3795data version3796connector health3797```37983799Transparency is a feature.38003801---38023803# 96. CHANGE HISTORY38043805Every entity should support change history.38063807Example:38083809```text3810Aug 19:3811FDA approval added38123813Aug 14:38143 new trials38153816Aug 10:3817GDC mutation frequency refreshed38183819Aug 03:3820CancerIndex score changed 84.1 → 84.73821```38223823---38243825# 97. CANCER WATCH38263827Users can follow:38283829```text3830cancer3831gene3832variant3833drug3834trial3835```38363837Notifications:38383839```text3840new clinical trial3841trial status change3842FDA approval3843publication3844new genomic finding3845ranking change3846```38473848---38493850# 98. USER ACCOUNTS38513852Account system:38533854```text3855email3856password3857email verification3858password reset3859session management3860```38613862Optional:38633864```text3865Google3866Apple3867ORCID3868```38693870Do not store sensitive health profiles by default.38713872---38733874# 99. RESEARCH WORKSPACE38753876Users can save:38773878```text3879cancers3880genes3881variants3882drugs3883trials3884papers3885queries3886charts3887```38883889Create collections:38903891```text3892"My KRAS research"3893"Rare sarcomas"3894"Pancreatic cancer trials"3895```38963897---38983899# 100. COMPARISON ENGINE39003901Route:39023903```text3904/compare3905```39063907Compare up to several cancers.39083909Example:39103911```text3912Pancreatic cancer3913Glioblastoma3914Lung adenocarcinoma3915Melanoma3916```39173918Compare:39193920```text3921incidence3922mortality3923survival3924trends3925genes3926biomarkers3927treatments3928trials3929research3930```39313932---39333934# 101. VISUALIZATION SYSTEM39353936CancerIndex should be visually exceptional.39373938Visualizations:39393940```text3941ranked bar charts3942time-series3943survival curves3944heatmaps3945world maps3946genomic frequency plots3947co-occurrence matrices3948oncoprints3949trial timelines3950drug approval timelines3951knowledge graphs3952Sankey charts3953bubble plots3954```39553956Charts need:39573958```text3959source3960unit3961population3962time period3963download3964```39653966---39673968# 102. KNOWLEDGE GRAPH UI39693970Users can start from:39713972```text3973KRAS3974```39753976and visually explore:39773978```text3979KRAS3980├── G12C3981│   ├── NSCLC3982│   ├── colorectal cancer3983│   ├── therapies3984│   └── trials3985├── G12D3986├── G12V3987└── pathways3988```39893990Click nodes dynamically.39913992Avoid rendering thousands of nodes at once.39933994---39953996# 103. DESIGN SYSTEM39973998CancerIndex must NOT look like a generic SaaS dashboard.39994000Target aesthetic:40014002```text4003scientific4004editorial4005premium4006institutional4007modern4008high-information-density4009trustworthy4010```40114012Think:40134014```text4015Nature4016Bloomberg4017Our World in Data4018high-end scientific visualization4019```40204021Avoid:40224023```text4024giant gradients everywhere4025dozens of rounded cards4026cartoon health icons4027generic AI sparkle graphics4028```40294030---40314032# 104. COLOR40334034Base:40354036```text4037off-white / white4038deep charcoal4039muted scientific neutrals4040```40414042Cancer-specific color coding can exist but must not compromise accessibility.40434044Never rely on color alone.40454046---40474048# 105. HOME PAGE40494050Hero:40514052```text4053CancerIndex40544055The global index of cancer.40564057Explore every cancer.4058Rank global burden.4059Follow treatments.4060Search genomics.4061Track clinical research.4062```40634064Global search immediately visible.40654066Below:40674068```text4069Cancer burden today4070Global rankings4071Fastest-rising cancers4072Highest mortality4073Poorest survival4074Most active research4075Largest treatment gaps4076Rare cancers4077Latest oncology approvals4078New clinical trials4079```40804081---40824083# 106. LIVE DATA TICKER40844085Tasteful top-line statistics:40864087```text4088Cancer entities indexed4089Genes indexed4090Variants indexed4091Clinical trials4092Publications4093Drug indications4094Countries4095Sources4096```40974098Values must come from database counts.40994100---41014102# 107. "ALL CANCERS" EXPLORER41034104Route:41054106```text4107/cancers4108```41094110Do not show only a few dozen cards.41114112Build a powerful explorer.41134114Filters:41154116```text4117anatomical system4118histology4119solid/hematologic4120adult/pediatric4121rare/common4122molecular subtype4123incidence4124mortality4125survival4126research level4127trial count4128treatment availability4129```41304131Support thousands of entities.41324133---41344135# 108. TAXONOMY EXPLORER41364137Tree/browser:41384139```text4140Blood4141Breast4142CNS4143Digestive4144Endocrine4145Gynecologic4146Head & Neck4147Lung4148Skin4149Soft tissue4150Urinary4151...4152```41534154Also:41554156```text4157histology view4158molecular view4159WHO view4160NCI view4161```41624163---41644165# 109. RARE CANCER DISCOVERY41664167Feature:41684169**Random Rare Cancer**41704171Useful for discovery.41724173Shows:41744175```text4176what it is4177annual incidence4178known cases/data4179research count4180trials4181genes4182treatments4183```41844185---41864187# 110. DATA QUALITY ENGINE41884189Every normalized record runs validation.41904191Examples:41924193```text4194incidence >= 04195deaths >= 04196survival between 0 and 14197year reasonable4198country valid4199gene symbol canonical4200variant syntax valid where possible4201trial phase enum recognized4202```42034204---42054206# 111. CROSS-SOURCE CONFLICTS42074208Sources will disagree.42094210Never silently average everything.42114212Store each observation.42134214Example:42154216```text4217Source A:42185-year survival = 31%42194220Source B:42215-year survival = 36%4222```42234224CancerIndex may compute a harmonized estimate only with a documented method.42254226Show:42274228```text4229Why estimates differ4230```42314232---42334234# 112. EVIDENCE ENGINE42354236Create CancerIndex evidence hierarchy.42374238Possible dimensions:42394240```text4241study design4242sample size4243replication4244publication quality4245clinical relevance4246regulatory validation4247expert curation4248recency4249```42504251Do NOT reduce all scientific truth to one score.42524253Use multi-dimensional evidence badges.42544255---42564257# 113. CLINICAL EVIDENCE LABELS42584259Example:42604261```text4262REGULATORY APPROVED4263GUIDELINE SUPPORTED4264PHASE III4265PHASE II4266PHASE I4267RETROSPECTIVE CLINICAL4268CASE SERIES4269CASE REPORT4270PRECLINICAL4271COMPUTATIONAL4272```42734274---42754276# 114. STATISTICAL INTEGRITY42774278Never calculate survival by dividing unrelated values.42794280Never compare crude incidence with age-standardized incidence without labeling.42814282Never mix:42834284```text4285incidence4286prevalence4287mortality4288case fatality4289overall survival4290relative survival4291```42924293Every metric needs precise definition.42944295---42964297# 115. CANCER "DEADLINESS"42984299Avoid an undefined “deadliest cancer” metric.43004301The interface should let users choose:43024303```text4304Most deaths4305Highest mortality rate4306Highest mortality/incidence ratio4307Lowest 5-year survival4308Highest CancerIndex Impact4309```43104311This distinction is important.43124313---43144315# 116. AGE STANDARDIZATION43164317For international comparison prioritize appropriately standardized rates.43184319Store standard population used if source provides it.43204321Do not present crude rates as directly comparable across countries with radically different age structures.43224323---43244325# 117. GEOGRAPHIC NORMALIZATION43264327Canonical geography entity:43284329```text4330ISO country4331ISO subdivision4332region4333continent4334WHO region4335IARC region if appropriate4336```43374338Keep source geography separately.43394340---43414342# 118. CURRENCY43434344Not central initially.43454346If later adding:43474348```text4349drug cost4350economic burden4351research funding4352```43534354always store:43554356```text4357currency4358year4359country4360nominal/real4361source4362```43634364---43654366# 119. RESEARCH FUNDING43674368Future innovation:43694370Connect:43714372```text4373NIH RePORTER4374CIHR4375EU grants4376UKRI4377other public grants4378```43794380Then create:43814382```text4383funding by cancer4384funding per annual death4385funding per incident case4386```43874388Potential:43894390**Funding Gap Index**43914392But methodology must be transparent.43934394---43954396# 120. NIH REPORTER CONNECTOR43974398Potential high-priority future connector.43994400Map grant:44014402```text4403project4404principal investigator4405institution4406funding amount4407year4408cancer4409gene4410topic4411publication4412```44134414---44154416# 121. PATENTS44174418Potential future module.44194420Sources:44214422```text4423USPTO4424EPO4425Google Patents metadata where appropriate4426```44274428Use to map therapeutic innovation.44294430Not required for MVP.44314432---44334434# 122. COMPANY PIPELINE44354436Potential future module:44374438```text4439biotech4440pharma4441drug candidate4442target4443phase4444indication4445```44464447Sources must be verified.44484449Public company claims should not override trial registries/regulatory sources.44504451---44524453# 123. DRUG DEVELOPMENT PIPELINE44544455Statuses:44564457```text4458preclinical4459Phase I4460Phase I/II4461Phase II4462Phase II/III4463Phase III4464submitted4465approved4466discontinued4467withdrawn4468```44694470Status may be disease-specific.44714472---44734474# 124. FAILURE DATABASE44754476Extremely valuable.44774478Track oncology programs that fail or stop.44794480Sources:44814482```text4483ClinicalTrials.gov status4484regulatory documents4485company releases4486publications4487```44884489Create:44904491```text4492Drug → Cancer → Development outcome4493```44944495Avoid inferring failure solely from stale trial status.44964497---44984499# 125. RESISTANCE DATABASE45004501Track mechanisms:45024503```text4504primary resistance4505acquired resistance4506```45074508Relations:45094510```text4511Variant → confers resistance → Drug4512Pathway → resistance mechanism → Drug4513```45144515Evidence-backed only.45164517---45184519# 126. METASTASIS DATABASE45204521Map:45224523```text4524primary cancer4525→ common metastatic locations4526```45274528Store frequency only with cohort context.45294530Do not generalize from small cohorts.45314532---45334534# 127. MULTI-OMICS45354536Future coverage:45374538```text4539genome4540transcriptome4541epigenome4542proteome4543metabolome4544single-cell4545spatial4546```45474548GDC and other public research repositories can seed this layer.45494550---45514552# 128. SINGLE-CELL CANCER DATA45534554Future connector candidates:45554556```text4557CELLxGENE4558Human Tumor Atlas Network resources4559public scRNA-seq studies4560```45614562Must support:45634564```text4565study4566sample4567cell type4568cancer4569gene expression4570```45714572Large matrices should not live in PostgreSQL.45734574---45754576# 129. HUMAN TUMOR ATLAS45774578Potential high-value research connector where datasets and terms permit.45794580---45814582# 130. PROTEOMICS45834584CPTAC-related data should connect:45854586```text4587cancer4588protein4589phosphoprotein4590genomic alteration4591clinical outcome4592```45934594---45954596# 131. MICROBIOME / CANCER45974598Future experimental research category.45994600Clearly label exploratory evidence.46014602---46034604# 132. ENVIRONMENTAL EXPOSURES46054606Possible integration:46074608```text4609IARC carcinogen classifications4610occupational exposure datasets4611air pollution data4612```46134614Do not infer personal cancer risk.46154616---46174618# 133. CARCINOGEN ENTITY46194620Create:46214622```text4623Carcinogen4624```46254626Relations:46274628```text4629Carcinogen → evidence of association → Cancer4630```46314632Store classification authority.46334634---46354636# 134. INFECTIOUS ONCOLOGY46374638Entities:46394640```text4641HPV4642HBV4643HCV4644EBV4645H. pylori4646HHV-84647etc.4648```46494650Map to cancer evidence.46514652---46534654# 135. CANCER PREVALENCE FORECASTS46554656Can later model forecasts.46574658But clearly label:46594660```text4661OBSERVED4662ESTIMATED4663PROJECTED4664```46654666Never make projections visually indistinguishable from observed registry data.46674668---46694670# 136. FORECAST ENGINE46714672Potential:46734674```text4675incidence forecast4676mortality forecast4677trial activity forecast4678research momentum4679```46804681Version each model.46824683Display uncertainty intervals.46844685---46864687# 137. DATA SNAPSHOTS46884689Monthly immutable snapshots:46904691```text4692CancerIndex 2026-094693CancerIndex 2026-104694```46954696Allows reproducibility.46974698---46994700# 138. DATA RELEASES47014702Publish:47034704```text4705CancerIndex Data Release 14706```47074708With:47094710```text4711new sources4712updated sources4713entity changes4714ranking methodology changes4715known limitations4716```47174718---47194720# 139. API VERSIONING47214722Never break existing clients casually.47234724Use:47254726```text4727/v14728/v24729```47304731Data release version separate from API version.47324733---47344735# 140. ADMIN CONTROL CENTER47364737Route:47384739```text4740/admin4741```47424743Sections:47444745```text4746Overview4747Connectors4748Ingestion4749Entities4750Reconciliation4751Rankings4752Evidence4753Sources4754Licensing4755Users4756AI4757Jobs4758Search4759System4760```47614762---47634764# 141. CONNECTOR ADMIN47654766For every connector:47674768```text4769Run now4770Pause4771Resume4772Backfill4773Incremental sync4774Dry run4775View raw records4776View parser4777View errors4778View schema changes4779```47804781---47824783# 142. LICENSE REGISTRY47844785Create internal table:47864787```text4788source_license4789```47904791Fields:47924793```text4794source4795license4796commercial use4797redistribution4798derivative works4799attribution requirements4800API terms4801review date4802notes4803approved for production4804```48054806No new connector becomes public until licensing status is reviewed.48074808---48094810# 143. SOURCE PRIORITY48114812When sources conflict, do not blindly implement a global precedence.48134814Precedence depends on field.48154816Examples:48174818```text4819Gene official symbol → HGNC4820Clinical trial registration → ClinicalTrials.gov4821US regulatory status → FDA4822global burden estimate → selected IARC dataset4823US registry survival → SEER4824variant clinical curation → retain multiple curated sources4825```48264827---48284829# 144. ENTITY LINEAGE48304831Every canonical field may need:48324833```text4834derivedFromSourceRecordIds4835```48364837Example:48384839```text4840canonical name:4841"Lung Adenocarcinoma"48424843supported by:4844NCIt4845SEER4846OncoTree4847GDC4848```48494850---48514852# 145. CACHING48534854Cache expensive:48554856```text4857rankings4858global aggregates4859country dashboards4860AI answers4861knowledge graph layouts4862```48634864Invalidation should be event-driven when possible.48654866---48674868# 146. PERFORMANCE48694870Targets:48714872```text4873homepage < 2 sec meaningful render4874search suggestions < 200 ms cached target4875common API reads < 300 ms target4876ranking query < 500 ms target4877```48784879Do not block page rendering on AI generation.48804881---48824883# 147. SEO48844885CancerIndex has enormous programmatic SEO potential.48864887Pages:48884889```text4890/cancer/{cancer}4891/cancer/{cancer}/survival4892/cancer/{cancer}/statistics4893/cancer/{cancer}/genes4894/cancer/{cancer}/trials48954896/gene/{gene}4897/drug/{drug}4898/variant/{variant}4899/country/{country}4900```49014902Every generated page must contain substantive sourced information.49034904No thin spam pages.49054906---49074908# 148. STRUCTURED DATA49094910Use relevant Schema.org structured metadata where appropriate:49114912```text4913MedicalCondition4914Drug4915Dataset4916ScholarlyArticle4917Organization4918```49194920Verify current specifications before implementation.49214922---49234924# 149. ACCESSIBILITY49254926WCAG-minded implementation.49274928Requirements:49294930```text4931keyboard navigation4932screen reader labels4933contrast4934chart text alternatives4935color-independent state4936reduced motion4937```49384939---49404941# 150. INTERNATIONALIZATION49424943English first.49444945Architecture must support:49464947```text4948French4949Spanish4950German4951Portuguese4952Japanese4953etc.4954```49554956Canonical scientific entity remains language-independent.49574958Translations are attributes.49594960---49614962# 151. LOCALIZATION49634964Important distinction:49654966```text4967language != geography4968```49694970French Canadian user can view Canadian data.49714972French user can view France data.49734974---49754976# 152. TESTING REQUIREMENTS49774978Claude must create:49794980```text4981unit tests4982integration tests4983connector fixture tests4984schema tests4985ranking tests4986reconciliation tests4987API contract tests4988UI tests4989end-to-end tests4990```49914992---49934994# 153. CONNECTOR FIXTURES49954996Never run all connector tests against production APIs.49974998Store sanitized fixtures.49995000Test:50015002```text5003normal response5004empty response5005pagination5006rate limit5007server error5008schema change5009malformed record5010duplicate record5011```50125013---50145015# 154. SCIENTIFIC REGRESSION TESTS50165017Create invariant tests.50185019Examples:50205021```text5022survival >= 05023survival <= 150245025incidence >= 05026mortality >= 050275028lowerCI <= estimate5029estimate <= upperCI5030```50315032---50335034# 155. RANKING TESTS50355036Given fixed fixture inputs, ranking output must be deterministic.50375038Snapshot:50395040```text5041ranking methodology version5042input snapshot5043output5044```50455046---50475048# 156. RECONCILIATION TESTS50495050Known aliases:50515052```text5053NSCLC5054non-small cell lung cancer5055```50565057should behave correctly.50585059Known distinct diseases must never merge accidentally.50605061Build a large gold-standard mapping fixture.50625063---50645065# 157. AI EVALUATION SUITE50665067Create fixed questions:50685069```text5070What is PDAC?5071Compare LUAD and SCLC.5072What cancers are associated with BRAF V600E?5073What recruiting trials exist for X?5074```50755076Evaluate:50775078```text5079citation correctness5080entity correctness5081numerical correctness5082unsupported statements5083source freshness5084```50855086---50875088# 158. HALLUCINATION DEFENSE50895090AI must say:50915092```text5093CancerIndex does not currently have sufficient sourced data to answer this.5094```50955096instead of guessing.50975098---50995100# 159. NO SILENT FALLBACK TO MODEL KNOWLEDGE51015102If CancerIndex retrieval finds no evidence:51035104do not silently answer using model memory.51055106Model knowledge may only be used as clearly labeled supplementary context if product policy explicitly allows it.51075108Default:51095110**database-grounded answers only.**51115112---51135114# 160. SECURITY51155116Protect:51175118```text5119API keys5120database credentials5121connector credentials5122LLM keys5123admin routes5124worker endpoints5125```51265127Use environment variables/secrets.51285129Never commit secrets.51305131---51325133# 161. USER PRIVACY51345135CancerIndex does not require personal health data to be useful.51365137Avoid collecting:51385139```text5140diagnosis5141genetic results5142treatment history5143medical documents5144```51455146unless a future clearly separated healthcare feature has proper privacy architecture.51475148---51495150# 162. ANALYTICS PRIVACY51515152Do not log sensitive search queries unnecessarily.51535154Provide privacy-preserving analytics.51555156---51575158# 163. AUTHORIZATION51595160Roles:51615162```text5163USER5164RESEARCHER5165CURATOR5166ADMIN5167SUPERADMIN5168```51695170Curators can edit scientific metadata.51715172Every curator action is logged.51735174---51755176# 164. CURATION PLATFORM51775178Allow expert curators to:51795180```text5181merge entities5182split entities5183add aliases5184correct mappings5185flag evidence5186resolve conflicts5187add citations5188approve AI extractions5189```51905191---51925193# 165. AI CURATION QUEUE51945195LLM pipeline may discover candidate:51965197```text5198publication → gene5199publication → cancer5200publication → drug5201```52025203Confidence:52045205```text5206>0.98 auto-accept only for low-risk deterministic mappings52070.80–0.98 review5208<0.80 reject/manual5209```52105211Thresholds must be evaluated empirically.52125213Do not use these exact numbers blindly.52145215---52165217# 166. EXTRACTION ENGINE52185219For publications:52205221```text5222abstract5223↓5224NER5225↓5226ontology mapping5227↓5228relationship extraction5229↓5230confidence5231↓5232validation5233↓5234graph edge5235```52365237Prefer deterministic identifiers when present.52385239---52405241# 167. PDF INGESTION52425243Some sources publish PDFs.52445245Pipeline:52465247```text5248PDF5249↓5250native text extraction5251↓5252layout understanding5253↓5254table extraction5255↓5256OCR only when necessary5257↓5258structured JSON5259↓5260validation5261```52625263Store page-level citations.52645265---52665267# 168. TABLE EXTRACTION52685269AI-extracted numeric tables must pass validations.52705271Do not accept:52725273```text5274OCR number → production statistic5275```52765277without confidence checks.52785279---52805281# 169. DATA DIFFS52825283On source refresh:52845285```text5286previous snapshot5287vs5288current snapshot5289```52905291Generate:52925293```text5294new records5295removed records5296changed values5297new enums5298```52995300Store diff.53015302---53035304# 170. ALERTS53055306Internal alerts:53075308```text5309connector failure5310stale source5311ranking anomaly5312mass entity deletion5313schema drift5314unexpected record drop5315license review due5316```53175318---53195320# 171. ANOMALY DETECTION53215322Example:53235324```text5325GDC records yesterday: 2,430,0005326today: 2145327```53285329Do NOT publish a destructive update.53305331Pause ingest and alert.53325333---53345335# 172. BACKUPS53365337Automated:53385339```text5340PostgreSQL backups5341object storage versioning5342search reindex ability5343configuration backups5344```53455346Test restore process.53475348---53495350# 173. INFRASTRUCTURE / CLUSTER DEPLOYMENT53515352CancerIndex should be containerized.53535354Use:53555356```text5357Docker5358```53595360Services should be independently deployable.53615362Suggested:53635364```text5365web5366api5367worker-ingest5368worker-ai5369worker-ranking5370postgres5371redis5372clickhouse5373opensearch5374minio5375```53765377If deploying to an existing cluster, keep configuration portable.53785379---53805381# 174. DOMAIN53825383Production:53845385```text5386www.cancerindex.io5387cancerindex.io5388api.cancerindex.io5389```53905391Optional:53925393```text5394status.cancerindex.io5395docs.cancerindex.io5396```53975398---53995400# 175. OBSERVABILITY54015402Use:54035404```text5405structured logs5406metrics5407distributed traces5408error monitoring5409job monitoring5410```54115412Every request gets correlation ID.54135414Every ingest gets run ID.54155416---54175418# 176. INGEST RUN ID54195420Example:54215422```text5423ING-CLINICALTRIALS-20260908-0000195424```54255426Every created/updated record can reference ingest run.54275428---54295430# 177. CANCERINDEX SCORE VERSIONING54315432Example:54335434```text5435CI-IMPACT-v1.05436CI-RESEARCH-GAP-v1.05437CI-TRIAL-GAP-v1.05438CI-PROGRESS-v1.05439CI-MOMENTUM-v1.05440```54415442Never silently change formula.54435444---54455446# 178. METHODOLOGY PAGE54475448Route:54495450```text5451/methodology5452```54535454Explain:54555456```text5457sources5458normalization5459ranking5460age standardization5461survival5462research metrics5463trial metrics5464composite indexes5465uncertainty5466limitations5467```54685469The methodology page should be exceptionally detailed.54705471---54725473# 179. PUBLIC REPRODUCIBILITY54745475For each ranking:54765477button:54785479```text5480Methodology5481```54825483Display formula.54845485Potential later:54865487```text5488Download input dataset5489Download ranking dataset5490```54915492where licensing permits.54935494---54955496# 180. DATA SOURCE BADGES54975498On values:54995500```text5501IARC5502SEER5503GDC5504FDA5505ClinicalTrials.gov5506CIViC5507```55085509Hover → metadata.55105511---55125513# 181. CITATION UX55145515Citation:55165517```text5518[1]5519```55205521click opens side panel rather than sending user away immediately.55225523Panel:55245525```text5526Source5527Original title5528Dataset5529Record5530Date5531Method5532Open source5533```55345535---55365537# 182. CONFIDENCE UX55385539Examples:55405541```text5542High confidence5543Moderate confidence5544Limited evidence5545Sparse data5546```55475548Do not hide uncertainty.55495550---55515552# 183. "WHY THIS RANK?"55535554Every CancerIndex rank gets:55555556```text5557Why #4?5558```55595560Click:55615562```text5563Mortality burden     +23.35564Lethality            +18.95565Treatment gap        +14.15566Research gap          +9.75567Trend                 +8.25568...5569```55705571---55725573# 184. HISTORICAL RANKS55745575Store ranking snapshots.55765577Graph:55785579```text55802015 #1255812018 #1155822021 #955832024 #85584```55855586Important: methodology consistency must be maintained or explicitly annotated.55875588---55895590# 185. USER-CUSTOM RANKINGS55915592Advanced feature.55935594Allow users to set weights:55955596```text5597Mortality      40%5598Incidence      20%5599Survival       20%5600Research gap   20%5601```56025603Generate:56045605```text5606Custom Cancer Index5607```56085609Do not overwrite official CancerIndex ranking.56105611---56125613# 186. DATA EXPLORER56145615Advanced SQL-like analytics UI without exposing raw SQL.56165617Dimensions:56185619```text5620cancer5621country5622year5623sex5624age5625```56265627Measures:56285629```text5630cases5631deaths5632ASIR5633ASMR5634survival5635trials5636publications5637```56385639---56405641# 187. CHART BUILDER56425643Users choose:56445645```text5646X = year5647Y = mortality5648Group = cancer5649Country = Canada5650```56515652Generate shareable chart.56535654---56555656# 188. EMBEDDABLE CHARTS56575658Future:56595660```text5661embed.cancerindex.io/chart/{id}5662```56635664Attribution required.56655666---56675668# 189. SHAREABLE RESEARCH CARDS56695670Generate beautiful cards:56715672```text5673Pancreatic Cancer5674#3 Lethality5675#7 Global Mortality56765-year survival ...5677```56785679Always include date/source.56805681---56825683# 190. PUBLIC DATA API KEYS56845685API account:56865687```text5688free5689research5690pro5691institutional5692```56935694Do not monetize third-party data contrary to source licenses.56955696Value can come from CancerIndex aggregation, normalization and infrastructure where permitted.56975698---56995700# 191. RATE LIMITING57015702API:57035704```text5705anonymous5706authenticated5707paid/institutional5708```57095710Return standard rate-limit headers.57115712---57135714# 192. DEVELOPER PORTAL57155716Route:57175718```text5719/developers5720```57215722Include:57235724```text5725API docs5726OpenAPI5727authentication5728examples5729schema5730changelog5731status5732```57335734---57355736# 193. DATA DOWNLOAD CENTER57375738Route:57395740```text5741/data5742```57435744List datasets CancerIndex is legally allowed to redistribute.57455746---57475748# 194. SOURCE LICENSE AUTOMATION57495750Crawler can periodically detect source terms changes.57515752But:57535754AI cannot make final legal determination.57555756Flag for human review.57575758---57595760# 195. RELEASE BOT57615762Weekly report:57635764```text5765CancerIndex Weekly Data Report57665767+43 cancers/subtypes5768+12,328 publications5769+184 trials5770+2 FDA approvals5771+91,224 variant relations577257733 connector warnings5774```57755776---57775778# 196. FRONT PAGE DAILY UPDATE57795780Show:57815782```text5783Updated X minutes ago5784```57855786only for sources actually refreshed that recently.57875788Do not imply global dataset freshness because ClinicalTrials updated today.57895790---57915792# 197. CANCERINDEX DAILY57935794Potential editorial product:57955796**CancerIndex Daily**57975798Automatically identify:57995800```text5801important approvals5802practice-changing trials5803major publications5804new trial openings5805large dataset releases5806```58075808AI summarizes with citations.58095810---58115812# 198. TREND DETECTOR58135814Calculate abnormal increases in:58155816```text5817publication volume5818trial creation5819drug development5820gene mentions5821```58225823Potential:58245825```text5826"KRAS G12D research activity +74% YoY"5827```58285829Only publish after methodology validation.58305831---58325833# 199. TOPIC GRAPH58345835Search:58365837```text5838ADC5839```58405841Graph:58425843```text5844ADC5845→ HER25846→ TROP25847→ HER35848→ cancers5849→ drugs5850→ trials5851→ publications5852```58535854---58555856# 200. RELATIONSHIP TEMPORALITY58575858Relationships evolve.58595860Store:58615862```text5863first evidence5864most recent evidence5865current status5866```58675868A therapy-cancer relationship may change from:58695870```text5871experimental5872→ Phase III5873→ approved5874```58755876---58775878# 201. REAL-WORLD EVIDENCE58795880Future module.58815882Possible sources:58835884```text5885public registries5886regulatory RWE reports5887published cohorts5888```58895890Do not attempt to ingest private medical records casually.58915892---58935894# 202. PATIENT-REPORTED OUTCOMES58955896When published:58975898```text5899quality of life5900symptom burden5901functional outcomes5902```59035904Store separately from survival.59055906---59075908# 203. ENDPOINT ENTITY59095910Clinical endpoints should become structured concepts:59115912```text5913OS5914PFS5915DFS5916EFS5917ORR5918DOR5919pCR5920MRD5921QoL5922```59235924Map trial results.59255926---59275928# 204. TRIAL RESULTS EXTRACTION59295930When results are available:59315932capture structured registry results first.59335934Publication-derived results must cite paper.59355936Store:59375938```text5939endpoint5940population5941arm5942estimate5943CI5944p-value5945follow-up5946```59475948---59495950# 205. TREATMENT EFFECT MODEL59515952Do not store:59535954```text5955Drug X improves survival by 40%5956```59575958Store:59595960```text5961endpoint5962effect measure5963HR/RR/OR5964estimate5965CI5966population5967comparator5968trial5969follow-up5970```59715972---59735974# 206. CROSS-CANCER ANALYSIS59755976Enable questions:59775978```text5979Which cancers share KRAS mutations?59805981Which cancers have HER2 amplification?59825983Which cancers respond to tissue-agnostic therapies?59845985Which cancers share immune biomarkers?5986```59875988---59895990# 207. TUMOR-AGNOSTIC INDICATIONS59915992Support cancer-agnostic drug approvals.59935994Drug indication entity may reference:59955996```text5997biomarker5998without single cancer restriction5999```60006001Do not force every approval to one cancer ID.60026003---60046005# 208. CANCER OF UNKNOWN PRIMARY60066007Include CUP properly.60086009Do not force primary anatomical site where unknown.60106011---60126013# 209. BENIGN / BORDERLINE TUMORS60146015CancerIndex may index clinically relevant nonmalignant/borderline tumors if useful for taxonomy.60166017They must be clearly marked:60186019```text6020malignant = false6021```60226023Never count them in cancer rankings unless methodology explicitly includes them.60246025---60266027# 210. SKIN CANCER COUNTING60286029Be careful with:60306031```text6032non-melanoma skin cancers6033```60346035Some global datasets treat them differently.60366037Ranking engine must preserve inclusion/exclusion rules.60386039---60406041# 211. HEMATOLOGIC MALIGNANCIES60426043Do not model solely by anatomical organ.60446045Dedicated structure for:60466047```text6048leukemia6049lymphoma6050myeloma6051myelodysplastic neoplasms6052myeloproliferative neoplasms6053```60546055---60566057# 212. SARCOMAS60586059Build fine-grained taxonomy.60606061Examples categories:60626063```text6064soft tissue6065bone6066GIST6067leiomyosarcoma6068liposarcoma6069angiosarcoma6070synovial sarcoma6071Ewing sarcoma6072osteosarcoma6073```60746075Do not group all rare sarcomas when subtype data exists.60766077---60786079# 213. BRAIN/CNS TUMORS60806081Molecular classification is essential.60826083Model modern molecular subtypes.60846085Taxonomies change over time.60866087Store classification version.60886089---60906091# 214. BREAST CANCER60926093Support:60946095```text6096histology6097ER6098PR6099HER26100HER2-low where applicable6101triple negative6102molecular subtypes6103germline context6104```61056106Do not collapse all breast cancers.61076108---61096110# 215. LUNG CANCER61116112Support:61136114```text6115SCLC6116NSCLC6117adenocarcinoma6118squamous6119large cell6120molecular alterations6121```61226123---61246125# 216. COLORECTAL CANCER61266127Support:61286129```text6130colon6131rectal6132left/right sided context where evidence requires6133MSI6134RAS6135BRAF6136HER26137```61386139---61406141# 217. PRECISION TAXONOMY61426143CancerIndex needs overlapping labels.61446145One patient cohort may conceptually be:61466147```text6148lung6149adenocarcinoma6150metastatic6151EGFR-mutated6152exon 19 deletion6153```61546155Do not create a unique canonical cancer entity for every arbitrary combination.61566157Use attributes/biomarker cohort definitions appropriately.61586159---61606161# 218. COHORT ENTITY61626163Create:61646165```ts6166CohortDefinition6167```61686169Example:61706171```text6172Metastatic EGFR exon 19 deletion lung adenocarcinoma6173```61746175This is not necessarily a globally recognized cancer taxonomy node.61766177---61786179# 219. ONTOLOGY VERSIONING61806181Taxonomies evolve.61826183Store:61846185```text6186ontology6187version6188concept6189valid_from6190valid_to6191```61926193Never lose historical mappings.61946195---61966197# 220. CROSSWALK TABLES61986199Build:62006201```text6202NCIt ↔ ICD-O6203NCIt ↔ ICD-106204NCIt ↔ OncoTree6205NCIt ↔ Disease Ontology6206NCIt ↔ MONDO6207SEER ↔ canonical CancerIndex6208```62096210Mappings may be:62116212```text6213exact6214broader6215narrower6216related6217ambiguous6218```62196220---62216222# 221. MATCH CONFIDENCE62236224Entity mapping:62256226```text6227EXACT_IDENTIFIER6228CURATED_EXACT6229ONTOLOGY_EXACT6230CURATED_BROADER6231CURATED_NARROWER6232ALIAS6233PROBABILISTIC6234UNRESOLVED6235```62366237---62386239# 222. UNRESOLVED ENTITY QUEUE62406241Never discard unknown disease labels.62426243Store:62446245```text6246source text6247source ID6248context6249count6250```62516252Admin can map later.62536254---62556256# 223. DATA DISCOVERY AGENT62576258Build an AI-assisted internal agent that searches for:62596260```text6261new official APIs6262new dataset releases6263schema changes6264new registries6265new cancer ontologies6266```62676268It produces proposals.62696270It cannot automatically onboard sources into production without compliance review.62716272---62736274# 224. CONNECTOR DOCUMENTATION REQUIREMENT62756276Before Claude implements ANY connector:627762781. locate current official documentation;62792. verify API/bulk mechanism;62803. verify authentication;62814. inspect pagination;62825. inspect rate limits;62836. inspect license/terms;62847. inspect update schedule;62858. inspect identifiers;62869. save source schema;628710. create tests.62886289Do not implement an API from memory.62906291---62926293# 225. CURRENT-DOC REQUIREMENT62946295Because CancerIndex depends on external systems:62966297**Claude MUST always verify current documentation before coding an integration.**62986299Do not trust:63006301```text6302old blog posts6303random GitHub examples6304Stack Overflow6305cached knowledge6306```63076308Prefer:63096310```text6311official documentation6312official repositories6313official OpenAPI specs6314official release notes6315```63166317---63186319# 226. CONNECTOR SOURCE TEST63206321Before production:63226323```text6324curl/API smoke test6325↓6326small fixture6327↓6328parser6329↓6330normalization6331↓6332reconciliation6333↓6334integration test6335↓6336full sync6337```63386339---63406341# 227. HUGE IMPORT SAFETY63426343Never begin a million-record import before proving the pipeline on:63446345```text634610634710063481,0006349```63506351records.63526353---63546355# 228. BULK-FIRST STRATEGY63566357For massive datasets:63586359prefer bulk downloads over millions of API calls when terms and official access support it.63606361---63626363# 229. RATE LIMIT RESPECT63646365Implement:63666367```text6368token bucket6369exponential backoff6370Retry-After6371jitter6372max concurrency6373```63746375Source-specific.63766377---63786379# 230. CHECKSUMS63806381Bulk file:63826383```text6384SHA-2566385```63866387Store:63886389```text6390source URL6391timestamp6392checksum6393size6394```63956396---63976398# 231. ETL LANGUAGE63996400Use Python heavily for scientific ETL.64016402TypeScript can orchestrate web/application systems.64036404Do not force complex bioinformatics normalization into TypeScript if mature Python packages are appropriate.64056406---64076408# 232. DATAFRAMES64096410For large ETL:64116412consider:64136414```text6415Polars6416PyArrow6417DuckDB6418```64196420instead of blindly using pandas for everything.64216422---64236424# 233. PARQUET64256426Use Parquet for large analytical snapshots.64276428Partition by sensible dimensions.64296430Example:64316432```text6433source6434year6435entity type6436```64376438---64396440# 234. BIOINFORMATICS LIBRARIES64416442Before choosing packages:64436444verify active maintenance/current documentation.64456446Potential functionality:64476448```text6449HGVS normalization6450VCF parsing6451genomic liftover6452sequence handling6453```64546455Never implement complex genomics standards from scratch unless necessary.64566457---64586459# 235. GENOME BUILD64606461Canonical support:64626463```text6464GRCh376465GRCh386466```64676468Where available.64696470Never silently convert coordinates.64716472Store original + normalized.64736474---64756476# 236. LIFTOVER64776478If performing liftover:64796480```text6481original assembly6482original coordinate6483target assembly6484converted coordinate6485tool/version6486status6487```64886489---64906491# 237. VARIANT NORMALIZATION64926493Store:64946495```text6496genomic HGVS6497coding HGVS6498protein HGVS6499gene6500transcript6501assembly6502dbSNP6503ClinVar ID6504CIViC ID6505```65066507Not every variant will have all identifiers.65086509---65106511# 238. FUSIONS65126513Dedicated structure:65146515```text65165' gene65173' gene6518breakpoint6519fusion name6520orientation6521```65226523Do not model only as free text.65246525---65266527# 239. COPY NUMBER65286529Model:65306531```text6532amplification6533gain6534loss6535deep deletion6536```65376538Keep source-specific thresholds.65396540---65416542# 240. EXPRESSION65436544Keep units/platform.65456546Never compare raw expression values from incompatible platforms directly.65476548---65496550# 241. BIOMARKER THRESHOLDS65516552Example PD-L1.65536554Store:65556556```text6557assay6558clone6559scoring system6560threshold6561cancer6562indication6563```65646565Do not reduce to positive/negative globally.65666567---65686569# 242. TMB65706571Store:65726573```text6574assay6575unit6576threshold6577panel6578cancer6579```65806581---65826583# 243. MSI65846585Map:65866587```text6588MSI-H6589MSS6590MSI-L6591dMMR6592pMMR6593```65946595but preserve differences.65966597---65986599# 244. EVIDENCE CROSS-CANCER CONTEXT66006601A variant may be:66026603```text6604predictive in cancer A6605prognostic in cancer B6606unknown in cancer C6607```66086609Relationship context is mandatory.66106611---66126613# 245. RANKING DATA ELIGIBILITY66146615For a cancer to enter a ranking:66166617define explicit inclusion rules.66186619Example survival ranking:66206621```text6622minimum cohort size6623accepted survival type6624accepted diagnosis period6625geography6626minimum source quality6627```66286629Do not rank sparse estimates unfairly.66306631---66326633# 246. PARENT VS SUBTYPE RANKING66346635Avoid double-counting.66366637If global incidence gives:66386639```text6640Lung Cancer = 2.4M6641```66426643and subtype estimates separately:66446645```text6646LUAD6647SCC6648```66496650do not sum all three.66516652Rank scope must define entity level.66536654Allow:66556656```text6657Top-level cancer ranking6658Histology ranking6659Subtype ranking6660Rare entity ranking6661```66626663---66646665# 247. GLOBAL MASTER RANKING66666667Default broad global ranking should use mutually exclusive or carefully defined top-level cancer categories.66686669Fine-grained ranking is separate.66706671---66726673# 248. CANCERINDEX COVERAGE COUNT66746675Homepage may say:66766677```text66784,812 cancer entities indexed6679```66806681only if entity model genuinely contains them.66826683Do not market every alias as a separate cancer.66846685---66866687# 249. DUPLICATE CONTROL66886689Alias count ≠ cancer count.66906691Subtype count ≠ top-level cancer count.66926693Be explicit.66946695---66966697# 250. METRIC CATALOG66986699Create first-class:67006701```text6702MetricDefinition6703```67046705Fields:67066707```text6708id6709name6710description6711formula6712unit6713higherIsWorse6714aggregation6715validDimensions6716sources6717methodologyVersion6718```67196720---67216722# 251. FORMULA ENGINE67236724Derived metrics should not live as random code functions.67256726Create versioned formulas.67276728Example:67296730```yaml6731id: CI-METRIC-MIR6732name: Mortality-to-Incidence Ratio6733formula: mortality_count / incidence_count6734version: 1.06735```67366737---67386739# 252. DATA LINEAGE GRAPH67406741Every ranked score should be traceable:67426743```text6744CancerIndex score6745↓6746component6747↓6748normalized metric6749↓6750source observation6751↓6752raw source record6753```67546755---67566757# 253. ADMIN "TRACE VALUE"67586759Admin button:67606761```text6762TRACE6763```67646765For any number.67666767Shows full lineage.67686769This will save massive debugging time.67706771---67726773# 254. CANCERINDEX LABS67746775Experimental section:67766777```text6778/labs6779```67806781For:67826783```text6784forecasting6785experimental indexes6786novel network analysis6787AI research tools6788```67896790Clearly separate experimental metrics from main product.67916792---67936794# 255. NETWORK CENTRALITY67956796Interesting research feature:67976798rank genes by:67996800```text6801number of cancers6802number of actionable variants6803number of approved drugs6804number of trials6805network centrality6806```68076808Do not imply biological importance solely from graph centrality.68096810---68116812# 256. DRUG TARGET LANDSCAPE68136814Visual:68156816```text6817targets × cancers6818```68196820Heatmap:68216822```text6823approved6824clinical6825preclinical6826```68276828---68296830# 257. ONCOLOGY PIPELINE MAP68316832Interactive:68336834```text6835Cancer6836→ Target6837→ Drug6838→ Phase6839→ Company6840```68416842---68436844# 258. BIOMARKER LANDSCAPE68456846Interactive matrix:68476848```text6849Cancer × Biomarker6850```68516852Color:68536854```text6855frequency6856clinical actionability6857```68586859Different toggles.68606861---68626863# 259. CANCER GENOMIC LANDSCAPE68646865Cancer page:68666867```text6868Top mutated genes6869CNAs6870fusions6871pathways6872```68736874Allow study selection.68756876Do not merge frequencies from incompatible cohorts without method.68776878---68796880# 260. COHORT SELECTOR68816882Example:68836884```text6885TCGA6886MSK cohort6887CPTAC6888study X6889```68906891User can switch data source.68926893---68946895# 261. FREQUENCY DENOMINATORS68966897Every genomic frequency must include denominator.68986899Example:69006901```text6902KRAS mutation: 31.4%6903214 / 681 profiled samples6904```69056906Never show 31.4% without cohort context.69076908---69096910# 262. MISSINGNESS69116912Genomic studies frequently have different profiling coverage.69136914Store:69156916```text6917tested6918not tested6919unknown6920```69216922Do not assume missing = wild type.69236924---69256926# 263. SURVIVAL CURVES69276928Where permissible/raw aggregate data allow:69296930Kaplan-Meier visualization.69316932Display:69336934```text6935n at risk6936CI6937censoring6938cohort6939endpoint6940```69416942Do not fabricate curves from summary survival percentages.69436944---69456946# 264. INCIDENCE TREND CHART69476948Use:69496950```text6951annual estimates6952ASIR6953confidence intervals when available6954```69556956---69576958# 265. GLOBAL BURDEN BUBBLE CHART69596960Axes:69616962```text6963X = incidence6964Y = mortality/incidence6965bubble = deaths6966```69676968Great discovery visualization.69696970---69716972# 266. RESEARCH GAP QUADRANT69736974Axes:69756976```text6977X = disease burden6978Y = research activity6979```69806981Quadrants:69826983```text6984high burden / high research6985high burden / low research6986low burden / high research6987low burden / low research6988```69896990---69916992# 267. CLINICAL TRIAL MAP69936994World map of recruiting trial sites.69956996Filters:69976998```text6999cancer7000drug7001phase7002biomarker7003```70047005---70067007# 268. FACILITY ENTITY70087009Normalize trial locations.70107011Challenge:70127013```text7014same hospital with slightly different names7015```70167017Use:70187019```text7020name7021address7022city7023country7024geocode7025organization ID7026```70277028---70297030# 269. ORGANIZATION RESOLUTION70317032Potential IDs:70337034```text7035ROR7036GRID historical mappings7037OpenAlex institution7038```70397040Use ROR where appropriate.70417042---70437044# 270. RESEARCHER RESOLUTION70457046Use ORCID when explicitly linked.70477048Never assume identical author names are same person.70497050---70517052# 271. PUBLICATION ENTITY EXTRACTION70537054Use pipeline:70557056```text7057dictionary match7058ontology mapping7059NER7060LLM structured extraction7061cross validation7062```70637064Store extraction method.70657066---70677068# 272. EVIDENCE SENTENCE70697070When permitted, keep sentence-level evidence reference.70717072Do not violate publication copyright.70737074Store small extracted evidence snippets within legal limits where appropriate, otherwise store location/reference only.70757076---70777078# 273. FULL-TEXT RIGHTS70797080Open access ≠ automatically unrestricted redistribution in every context.70817082Track article license.70837084---70857086# 274. AUTOMATED CITATION70877088Generated text should prefer primary source where possible.70897090Example:70917092trial result:70937094prefer:70957096```text7097peer-reviewed trial publication7098```70997100plus registry.71017102Regulatory claim:71037104prefer regulator.71057106---71077108# 275. SOURCE TRUST DOES NOT MEAN UNIVERSAL AUTHORITY71097110A source can be excellent for one question and inappropriate for another.71117112Example:71137114```text7115FDA → US approval7116SEER → US registry statistics7117IARC → global estimates7118HGNC → gene symbols7119```71207121---71227123# 276. NO SOURCE MONOCULTURE71247125Important cancer facts should ideally cross-reference multiple sources where appropriate.71267127---71287129# 277. DATA FUSION71307131Do not create a fused value unless scientifically justified.71327133Often the right UX is:71347135```text7136SEER estimate7137IARC estimate7138Canadian estimate7139```71407141side by side.71427143---71447145# 278. DOCUMENT EVERYTHING71467147Repository:71487149```text7150/docs7151  architecture.md7152  data-model.md7153  ranking-methodology.md7154  source-policy.md7155  connectors.md7156  reconciliation.md7157  evidence.md7158  ai.md7159  security.md7160```71617162---71637164# 279. ADRs71657166Use Architecture Decision Records.71677168Example:71697170```text7171ADR-001 PostgreSQL as canonical database7172ADR-002 pgvector7173ADR-003 source-native raw retention7174ADR-004 CancerIndex identifiers7175```71767177---71787179# 280. CLAUDE WORKFLOW71807181Before editing code:71827183```text71841. inspect repository71852. inspect CLAUDE.md71863. inspect current architecture71874. inspect existing tests71885. inspect database schema71896. inspect connector framework71907. verify current external documentation71918. create plan71929. implement719310. test719411. verify719512. document7196```71977198---71997200# 281. DO NOT FAKE FEATURES72017202Never create UI with hardcoded fake metrics merely to make screenshots look complete.72037204If backend data doesn't exist:72057206show:72077208```text7209Data not yet available7210```72117212or use explicitly labeled fixtures only in tests/dev.72137214---72157216# 282. NO MOCK DATA IN PRODUCTION72177218Absolutely no hidden mock values.72197220---72217222# 283. SOURCE AVAILABILITY72237224If a source connector fails:72257226CancerIndex continues using last known valid snapshot.72277228Display freshness.72297230Do not replace missing real data with AI guesses.72317232---72337234# 284. DATABASE MIGRATIONS72357236Every schema change:72377238```text7239migration7240rollback strategy7241test7242```72437244Never manually mutate production schema without migration.72457246---72477248# 285. QUERY OPTIMIZATION72497250Use indexes on:72517252```text7253canonical IDs7254external IDs7255slugs7256gene symbol7257NCT ID7258PMID7259DOI7260year7261geography7262metric7263```72647265---72667267# 286. PARTITIONING72687269For huge observations:72707271partition or use ClickHouse.72727273Do not create billions of rows in poorly indexed PostgreSQL tables.72747275---72767277# 287. ENTITY COUNTERS72787279Precompute:72807281```text7282trial count7283publication count7284gene count7285drug count7286```72877288where necessary.72897290But source them from canonical relations and refresh deterministically.72917292---72937294# 288. RANKING MATERIALIZATION72957296Rankings should be precomputed per common scope.72977298Do not run huge window functions for every homepage request.72997300---73017302# 289. INCREMENTAL RANK REBUILD73037304When ClinicalTrials changes:73057306recalculate trial-dependent ranks only.73077308Do not recompute global genomic rankings unnecessarily.73097310---73117312# 290. EVENT BUS73137314Useful events:73157316```text7317CancerUpdated7318TrialUpdated7319DrugApprovalAdded7320PublicationAdded7321ConnectorCompleted7322RankingInvalidated7323```73247325---73267327# 291. STATIC + DYNAMIC73287329Use Next.js rendering strategy intelligently.73307331SEO pages can be statically regenerated.73327333Live trials/rankings can refresh dynamically.73347335---73367337# 292. MOBILE73387339Mobile is first-class.73407341High-density information must remain usable.73427343Use:73447345```text7346sticky tabs7347collapsible sources7348horizontal ranking tables7349full-screen charts7350```73517352---73537354# 293. DESKTOP73557356Desktop should feel like a professional research terminal.73577358Allow:73597360```text7361split panels7362dense tables7363compare mode7364persistent filters7365keyboard search7366```73677368---73697370# 294. COMMAND PALETTE73717372Shortcut:73737374```text7375⌘K7376```73777378Search any entity/action.73797380---73817382# 295. SHAREABLE URL STATE73837384Filters reflected in URL.73857386Example:73877388```text7389/rankings?metric=mortality&year=2024&sex=all7390```73917392---73937394# 296. DOWNLOAD CHART DATA73957396Every chart:73977398```text7399Download CSV7400Download PNG/SVG where appropriate7401Copy citation7402```74037404subject to source redistribution terms.74057406---74077408# 297. CITATION EXPORT74097410Support:74117412```text7413BibTeX7414RIS7415plain citation7416```74177418for publications.74197420---74217422# 298. RESEARCH NOTEBOOK74237424Future:74257426Users can create notes linking CancerIndex entities.74277428Not needed for initial release.74297430---74317432# 299. COMPLIANCE CHECKLIST74337434Before new source goes live:74357436```text7437[ ] official source verified7438[ ] access method verified7439[ ] license reviewed7440[ ] attribution requirements stored7441[ ] rate limits implemented7442[ ] parser tests7443[ ] raw snapshot7444[ ] entity mappings7445[ ] quality tests7446[ ] production health monitoring7447```74487449---74507451# 300. PHASE 174527453Build foundation.74547455Deliver:74567457```text7458Cancer taxonomy7459NCI EVS7460GDC7461ClinicalTrials.gov7462PubMed7463ClinVar7464SEER7465IARC integration plan/compliance7466HGNC74677468Cancer pages7469Gene pages7470Trial pages7471Publication pages7472Search7473Provenance7474Basic rankings7475```74767477---74787479# 301. PHASE 274807481Add:74827483```text7484cBioPortal7485CIViC7486ChEMBL7487Open Targets7488DGIdb7489FDA7490DailyMed7491Ensembl74927493Drug pages7494Variant pages7495Biomarker pages7496Knowledge graph7497Advanced rankings7498```74997500---75017502# 302. PHASE 375037504Add:75057506```text7507global country data7508European sources7509Canadian sources7510additional regulators7511research funding7512research gap7513trial gap7514treatment gap7515```75167517---75187519# 303. PHASE 475207521Add:75227523```text7524DepMap7525cell lines7526preclinical7527single cell7528pathology7529imaging7530multi-omics7531```75327533---75347535# 304. PHASE 575367537Add:75387539```text7540CancerIndex AI7541MCP7542advanced analytics7543custom rankings7544developer ecosystem7545public data releases7546```75477548---75497550# 305. INITIAL CONNECTOR TARGET75517552Do not stop at five connectors.75537554Long-term target:75557556```text755750+ high-quality connectors7558```75597560But quality > arbitrary connector count.75617562One reliable bulk/API integration is worth more than ten fragile scrapers.75637564---75657566# 306. CANCER COVERAGE TARGET75677568Do not set a fixed target such as:75697570```text7571200 cancers7572```75737574Instead:75757576> Index every distinct malignant disease entity that can be mapped from selected authoritative oncology classifications.75777578Then expose:75797580```text7581top-level cancers7582families7583histologies7584subtypes7585molecular subtypes7586```75877588separately.75897590---75917592# 307. PUBLIC SOURCE CATALOG75937594CancerIndex should publicly list connectors.75957596Example:75977598```text7599NCI GDC           Genomics7600SEER              Epidemiology7601IARC              Global burden7602ClinicalTrials    Trials7603PubMed            Literature7604ClinVar           Variants7605cBioPortal        Cancer genomics7606CIViC             Clinical variants7607HGNC              Genes7608ChEMBL            Drugs7609FDA               Regulation7610...7611```76127613---76147615# 308. SOURCE COVERAGE MATRIX76167617Table:76187619```text7620                    Epidemiology Genomics Trials Drugs Research7621GDC                      ·          ✓       ·      ·      ✓7622SEER                     ✓          ·       ·      ·      ·7623ClinicalTrials           ·          ·       ✓      ✓      ✓7624PubMed                   ·          ✓       ✓      ✓      ✓7625CIViC                    ·          ✓       ·      ✓      ✓7626```76277628---76297630# 309. CANCER DATA CARD76317632Every cancer card should contain at minimum:76337634```text7635name7636parent category7637annual burden if available7638mortality7639survival7640CancerIndex rank7641research activity7642data confidence7643```76447645---76467647# 310. CANCER INDEX BADGES76487649Examples:76507651```text7652Rare7653Pediatric7654Hematologic7655High Mortality7656Rapidly Rising7657High Research Activity7658Low Trial Activity7659Treatment Gap7660```76617662Generated from rules, not editorial opinion.76637664---76657666# 311. RANKING CHANGE EXPLANATION76677668If rank changes:76697670```text7671#12 → #87672```76737674show why:76757676```text76772024 global mortality estimate updated7678+4 new active trials7679methodology unchanged7680```76817682---76837684# 312. SEARCH RESULT EXPLANATION76857686Search result should show type:76877688```text7689EGFR7690GENE76917692EGFR L858R7693VARIANT76947695EGFR-mutated NSCLC7696MOLECULAR COHORT76977698Osimertinib7699DRUG7700```77017702---77037704# 313. SYNONYM MANAGEMENT77057706Alias examples:77077708```text7709GBM7710glioblastoma7711glioblastoma multiforme [historical usage]7712```77137714Preserve historical terminology without necessarily using it as preferred current name.77157716---77177718# 314. DEPRECATED TERMINOLOGY77197720Fields:77217722```text7723deprecated7724deprecated_reason7725replacement_entity7726classification_version7727```77287729---77307731# 315. VERSION-SENSITIVE MEDICINE77327733Cancer classification changes.77347735Never rewrite historical publication terminology as if author used modern classification.77367737Map:77387739```text7740source_term7741→ modern CancerIndex entity7742```77437744while preserving original term.77457746---77477748# 316. DATA CITATION77497750CancerIndex itself should produce dataset citations:77517752```text7753CancerIndex Data Release YYYY-MM7754```77557756for researchers.77577758---77597760# 317. ABOUT PAGE77617762Explain:77637764```text7765what CancerIndex is7766what it is not7767where data comes from7768how rankings work7769limitations7770```77717772---77737774# 318. TRUST CENTER77757776Route:77777778```text7779/trust7780```77817782Include:77837784```text7785data provenance7786methodology7787AI policy7788privacy7789security7790source policy7791corrections7792```77937794---77957796# 319. CORRECTIONS77977798Public correction mechanism.77997800Researchers can report:78017802```text7803wrong mapping7804outdated statistic7805incorrect citation7806entity duplication7807```78087809Corrections tracked publicly where appropriate.78107811---78127813# 320. SCIENTIFIC ADVISORY MODEL78147815Future:78167817expert contributors can have verified profiles.78187819No anonymous modification of clinical evidence without review.78207821---78227823# 321. API SOURCE ATTRIBUTION78247825API responses include:78267827```json7828{7829  "data": {},7830  "sources": [],7831  "dataRelease": "..."7832}7833```78347835---78367837# 322. AI SOURCE SNAPSHOT78387839AI answer stores exactly which record versions were used.78407841This allows reproducibility after database updates.78427843---78447845# 323. NO BLACK-BOX SCORE78467847CancerIndex's major promise:78487849> Every score can be decomposed.78507851No proprietary mystery scoring methodology.78527853---78547855# 324. RESEARCH GAP ETHICS78567857Low research activity does not inherently mean neglect.78587859Reasons can include:78607861```text7862rarity7863disease biology7864classification changes7865small populations7866successful prevention7867```78687869Display as quantitative signal, not accusation.78707871---78727873# 325. SURVIVAL ETHICS78747875Population survival statistics do not predict an individual's outcome.78767877Always show contextual note.78787879---78807881# 326. EPIDEMIOLOGY ESTIMATES78827883Global cancer statistics are frequently estimates, not literal complete counts.78847885Label:78867887```text7888estimated cases7889estimated deaths7890```78917892where appropriate.78937894---78957896# 327. CANCERINDEX "TODAY"78977898Avoid saying:78997900```text7901today X people have cancer7902```79037904unless the methodology genuinely supports it.79057906Prefer annual/latest dataset statistics.79077908---79097910# 328. CANCERINDEX DISCOVERY HOMEPAGE79117912Interesting modules:79137914```text7915Most common7916Most lethal7917Most researched7918Most under-researched7919Most trials7920Largest treatment gaps7921Fastest improving7922Fastest rising7923Rare cancer spotlight7924```79257926---79277928# 329. "CANCER UNIVERSE"79297930Create a visual:79317932```text7933Cancer Universe7934```79357936Thousands of cancer/subtype nodes arranged by anatomical/histological family.79377938Size could represent:79397940```text7941incidence7942```79437944Color could represent:79457946```text7947survival7948```79497950Filterable.79517952Potential signature visualization.79537954---79557956# 330. "CANCER MATRIX"79577958Rows:79597960```text7961cancers7962```79637964Columns:79657966```text7967genes7968```79697970Cell:79717972```text7973alteration frequency7974```79757976Filter by study.79777978---79797980# 331. "DRUG MATRIX"79817982Rows:79837984```text7985cancers7986```79877988Columns:79897990```text7991drugs7992```79937994Cell:79957996```text7997approved7998clinical7999preclinical8000```80018002---80038004# 332. "TRIAL PULSE"80058006Live research activity chart.80078008```text8009new oncology trials / week8010```80118012Break down by:80138014```text8015cancer8016phase8017country8018target8019```80208021---80228023# 333. "RESEARCH PULSE"80248025```text8026new publications / week8027```80288029Topic clustering.80308031---80328033# 334. "APPROVAL PULSE"80348035Timeline of oncology regulatory decisions.80368037---80388039# 335. "GENOMIC PULSE"80408041Newly curated variant/drug evidence from authoritative sources.80428043---80448045# 336. DATA QUALITY BADGE80468047Pages can show:80488049```text8050Data Quality: High8051```80528053Derived from:80548055```text8056source coverage8057freshness8058agreement8059sample size8060missingness8061```80628063Document formula.80648065---80668067# 337. SPARSE CANCER UX80688069For ultra-rare cancers:80708071do NOT show empty giant sections.80728073Instead:80748075```text8076Very limited epidemiological data are currently available.80778078What CancerIndex knows:8079- 7 publications8080- 1 active trial8081- 2 reported genomic associations8082```80838084Sparse-data visibility is valuable.80858086---80878088# 338. ENTITY DISCOVERY PRIORITY80898090Nightly job:80918092find source disease labels not mapped to canonical CancerIndex cancer.80938094Rank by frequency.80958096This continuously expands coverage.80978098---80998100# 339. AUTOMATIC CANCER DISCOVERY81018102Candidate disease discovery:81038104```text8105NCIt additions8106SEER updates8107ClinicalTrials condition strings8108GDC disease terms8109CIViC diseases8110PubMed MeSH8111```81128113Candidate → curator queue.81148115---81168117# 340. NEVER LET LLM INVENT A NEW CANONICAL DISEASE81188119LLM can suggest.81208121Canonical entity creation requires:81228123```text8124recognized ontology8125trusted source8126or human curator approval8127```81288129---81308131# 341. SOURCE COUNT IS NOT EVIDENCE QUALITY81328133Displaying:81348135```text813614 sources8137```81388139does not mean stronger evidence if all sources repeat one paper.81408141Track evidence lineage and primary evidence.81428143---81448145# 342. DUPLICATE PUBLICATION DETECTION81468147Resolve:81488149```text8150PubMed8151DOI8152Crossref8153Europe PMC8154```81558156into one publication entity.81578158---81598160# 343. TRIAL ↔ PUBLICATION RESOLUTION81618162Use:81638164```text8165NCT IDs in publication8166registry references8167PubMed links8168```81698170Then probabilistic matching only as fallback.81718172---81738174# 344. DRUG SYNONYMS81758176Drug naming is messy.81778178Support:81798180```text8181generic8182brand8183development code8184salt8185active moiety8186combination8187```81888189Do not treat brand names as separate molecules.81908191---81928193# 345. TARGET SYNONYMS81948195Resolve gene/protein target nomenclature carefully.81968197---81988199# 346. CANCERINDEX INTERNAL ONTOLOGY82008201Do not reinvent all external ontologies.82028203CancerIndex ontology should function primarily as a stable reconciliation layer.82048205---82068207# 347. EXTERNAL IDS ARE FIRST-CLASS82088209Never place IDs in an unstructured JSON dump only.82108211Create searchable cross-reference tables.82128213---82148215# 348. AUDIT LOG82168217Record:82188219```text8220who8221what8222before8223after8224when8225why8226```82278228for curator/admin changes.82298230---82318232# 349. SOFT LAUNCH CRITERIA82338234CancerIndex is not ready merely because home page looks good.82358236Minimum:82378238```text8239credible taxonomy8240multiple foundational connectors8241provenance8242search8243cancer pages8244ranking methodology8245ranking reproducibility8246connector monitoring8247scientific disclaimers8248```82498250---82518252# 350. LAUNCH DATA QUALITY TARGETS82538254Before launch:82558256* no unexplained metrics8257* no production mock data8258* no duplicate canonical cancers from obvious aliases8259* no broken source links8260* no AI answers without citations8261* no ranking without scope/year/source8262* no unsupported treatment claims82638264---82658266# 351. PRIORITY IMPLEMENTATION ORDER82678268Claude should execute approximately:82698270```text82711. repository foundation82722. database82733. source/provenance framework82744. canonical IDs82755. cancer ontology82766. NCI terminology connector82777. HGNC82788. GDC82799. ClinicalTrials828010. PubMed828111. ClinVar828212. SEER828313. IARC compliance/integration828414. cBioPortal828515. CIViC828616. FDA828717. ChEMBL828818. Open Targets828919. ranking engine829020. web experience829121. AI8292```82938294Exact order may change based on API/data dependencies.82958296---82978298# 352. FIRST RANKINGS TO SHIP82998300Ship these first:83018302```text8303Global Incidence8304Global Mortality8305Age-standardized Incidence8306Age-standardized Mortality8307Mortality/Incidence Ratio83085-Year Survival where comparable8309Active Trial Count8310Research Publication Count8311CancerIndex Research Gap8312CancerIndex Trial Gap8313```83148315Then composite score.83168317---83188319# 353. COMPOSITE SCORE MUST COME LATER83208321Do not launch composite score until individual metrics are correct.83228323Composite rankings amplify bad data.83248325---83268327# 354. DOCUMENT CONNECTORS AS CODE83288329Connector documentation should be generated/validated from manifests where practical.83308331---83328333# 355. REPOSITORY STRUCTURE83348335Suggested:83368337```text8338/apps8339  /web8340  /api8341  /admin83428343/services8344  /ingestion8345  /ranking8346  /ai8347  /search83488349/packages8350  /database8351  /ontology8352  /connectors8353  /schemas8354  /ui8355  /analytics8356  /provenance83578358/connectors8359  /nci-evs8360  /gdc8361  /seer8362  /iarc8363  /clinicaltrials8364  /pubmed8365  /clinvar8366  /cbioportal8367  /civic8368  /hgnc8369  /ensembl8370  /chembl8371  /opentargets8372  /dgidb8373  /fda83748375/docs83768377/infra83788379/tests8380```83818382---83838384# 356. TYPES83858386Share canonical TypeScript/Python schemas where possible.83878388Use generated JSON Schema/OpenAPI contracts to prevent divergence.83898390---83918392# 357. OPENAPI83938394API documentation generated from real API definitions.83958396Never manually maintain docs that drift from endpoints.83978398---83998400# 358. DATABASE SEEDS84018402Only seed:84038404```text8405system roles8406configuration8407metric definitions8408source definitions8409```84108411Scientific data comes from connectors.84128413---84148415# 359. DEVELOPMENT FIXTURES84168417Label dev fixtures clearly.84188419Environment must make production fixture insertion impossible.84208421---84228423# 360. FINAL PRODUCT STANDARD84248425CancerIndex.io should feel like a serious piece of scientific infrastructure.84268427Not:84288429> "Here are 30 cancers and some AI summaries."84308431But:84328433> "Here is a continuously updated, provenance-aware, globally ranked ontology of cancer connecting epidemiology, genomics, biomarkers, therapies, trials, regulatory evidence and scientific literature."84348435The user should be able to start at any node:84368437```text8438a cancer8439a gene8440a mutation8441a drug8442a clinical trial8443a paper8444a country8445```84468447and move through the entire oncology knowledge graph.84488449---84508451# 361. NORTH STAR84528453The ultimate CancerIndex graph should conceptually support:84548455```text8456ALL CANCERS8457    ↓8458ALL RECOGNIZED SUBTYPES8459    ↓8460EPIDEMIOLOGY8461    ↓8462GENES8463    ↓8464VARIANTS8465    ↓8466BIOMARKERS8467    ↓8468PATHWAYS8469    ↓8470DRUGS8471    ↓8472TREATMENTS8473    ↓8474APPROVALS8475    ↓8476CLINICAL TRIALS8477    ↓8478PUBLICATIONS8479    ↓8480RESEARCHERS8481    ↓8482INSTITUTIONS8483    ↓8484COUNTRIES8485```84868487Every connection:84888489```text8490traceable8491versioned8492source-backed8493queryable8494rankable8495```84968497---84988499# 362. NON-NEGOTIABLE CLAUDE INSTRUCTION85008501Claude must NOT rush this project.85028503Before building substantial portions of CancerIndex:85048505* read this entire `CLAUDE.md`;8506* inspect all existing code;8507* research the latest official documentation;8508* identify source licensing constraints;8509* construct the canonical ontology carefully;8510* test every connector independently;8511* retain raw source provenance;8512* build reconciliation before massive ingestion;8513* validate all scientific computations;8514* ensure ranking formulas are reproducible;8515* never fabricate missing data;8516* never substitute AI memory for missing database evidence;8517* preserve uncertainty;8518* optimize the product for both ordinary users and serious researchers.85198520Whenever there is a choice between:85218522```text8523faster implementation8524```85258526and:85278528```text8529scientifically defensible implementation8530```85318532choose the scientifically defensible implementation.85338534Whenever there is a choice between:85358536```text8537more connectors8538```85398540and:85418542```text8543reliable connectors with provenance8544```85458546choose reliability first — then expand aggressively.85478548Whenever there is a choice between:85498550```text8551one broad cancer category8552```85538554and:85558556```text8557accurately modeling recognized subtypes8558```85598560preserve the detailed taxonomy.85618562Whenever an upstream source provides an identifier:85638564**keep it.**85658566Whenever an upstream source provides provenance:85678568**keep it.**85698570Whenever an upstream source provides uncertainty:85718572**keep it.**85738574Whenever CancerIndex computes something:85758576**make the formula visible.**85778578Whenever CancerIndex ranks something:85798580**explain the ranking.**85818582Whenever CancerIndex AI says something:85838584**cite the evidence.**85858586---85878588# 363. FINAL VISION85898590CancerIndex.io should eventually make it possible to ask:85918592> Rank every indexed cancer in the world by unmet need, weighting global mortality, 5-year survival, number of approved systemic therapies, active Phase II/III trials and publication activity.85938594and receive a reproducible result.85958596Or:85978598> Show every known cancer subtype associated with BRAF V600E, the frequency reported in each major cohort, regulatory-approved treatments by jurisdiction, active trials and supporting clinical evidence.85998600Or:86018602> Which rare cancers have fewer than five recruiting trials worldwide despite high mortality?86038604Or:86058606> What malignancies experienced the largest improvement in survival during the last two decades?86078608Or:86098610> Which cancer research areas are accelerating fastest this year?86118612Or:86138614> Show the entire treatment-development landscape for KRAS G12D.86158616CancerIndex should answer these from structured, sourced data rather than model memory.86178618That is the standard.86198620---86218622# 364. BUILD PRINCIPLE86238624**Do not build a cancer website.**86258626Build:86278628> **the structured global intelligence layer for cancer.**86298630That is CancerIndex.io.8631