/**
* Ingredients and products the V2.2 check can recognise.
*
* Signed off as it was in the review pack of 13 October 2026 (signoff.ts):
* names, brands, classes, over-the-counter flags and maximum doses, approved as
* written on 15 October 2026. Added since, and waiting for a top-up review: the
* source each maximum cites (maxSources). Anything not in this table is never
* guessed at: it becomes "couldn't check" (RS7, S90).
*
* Matching is whole-word and case/diacritic-insensitive (substring matching is
* banned in this codebase: "Ginkgo" must never match ginger).
*/
import type { CheckSourceId } from './sources.js';
export type DrugClass =
| 'nsaid' | 'antiplatelet' | 'anticoagulant_vka' | 'anticoagulant_doac'
| 'acei' | 'arb' | 'thiazide' | 'loop_diuretic' | 'k_sparing' | 'potassium_supplement'
| 'statin' | 'cyp3a4_statin' | 'strong_cyp3a4_inhibitor' | 'azole_antifungal' | 'fluoroquinolone'
| 'penicillin' | 'cephalosporin' | 'sulfonamide_antibiotic' | 'trimethoprim'
| 'ssri' | 'tca' | 'benzodiazepine' | 'opioid' | 'serotonergic_opioid'
| 'pde5_inhibitor' | 'nitrate' | 'sulfonylurea' | 'long_acting_sulfonylurea' | 'biguanide' | 'insulin'
| 'ppi' | 'first_gen_antihistamine' | 'strong_enzyme_inducer' | 'divalent_cation'
| 'corticosteroid' | 'beta_blocker' | 'calcium_channel_blocker' | 'antimalarial'
| 'herbal_bleeding_risk' | 'st_johns_wort' | 'thyroid_hormone'
// Set by the engine, never in this table: an NSAID used on the skin (gel,
// cream, patch), and aspirin whose dose isn't known (normalize.ts classesFor).
| 'topical_nsaid' | 'aspirin_dose_unknown';
export interface Ingredient {
key: string;
name: string;
/** Other generic names and spellings (not brands). */
aliases?: string[];
classes: DrugClass[];
/** Commonly bought without a prescription. */
otc?: boolean;
/** Adult label maximum per 24 hours, in mg. null when it depends on the indication. */
maxDailyMg?: number | null;
/** A lower ceiling for over-the-counter use, where labels set one. */
otcMaxDailyMg?: number;
/**
* Where the maximum comes from, cited by its dose and duplicate findings (M3). Without one: the NSAID labels for an
* NSAID, else the medicine's own product label (label-product), never another medicine's.
*/
maxSources?: CheckSourceId[];
herbal?: boolean;
/**
* Only ever part of a combination whose partner the rules check (caffeine in
* "extra" painkillers, clavulanic acid in co-amoxiclav): not listed as
* unchecked on its own.
*/
companion?: boolean;
/** For the pharmacist's review; never shown, never changes a result. */
notes?: string;
}
/** Review note for a medicine sometimes prescribed above its label maximum on purpose (third review, note N4). */
const ABOVE_LABEL_ON_PURPOSE = 'Pharmacist to review: more than the label maximum is same-day ("Before the next dose, call her pharmacist or doctor today") '
+ 'even when it was prescribed on purpose. Decide whether prescribed doses with a known higher-dose use should get gentler wording.';
export const INGREDIENTS: Ingredient[] = [
// Pain and inflammation
{ key: 'paracetamol', name: 'Paracetamol', aliases: ['acetaminophen'], classes: [], otc: true, maxDailyMg: 4000, maxSources: ['nhs-paracetamol'],
notes: 'Pharmacist to review (J1, overuse.ts): in symptom text and Ask, more than 8 tablets a day is too much medicine, whatever the tablet. '
+ 'US regular-strength tablets are 325 mg, so "10 Tylenol a day" (3.25 g) gets the red card: confirm the threshold of 8, or set one by strength. '
+ 'An adult\'s "6 times a day" with no tablet count, or "6 doses a day", isn\'t counted (6 x 500 mg is only 3 g): should it be?' },
{ key: 'ibuprofen', name: 'Ibuprofen', classes: ['nsaid'], otc: true, maxDailyMg: 2400, otcMaxDailyMg: 1200, maxSources: ['nhs-ibuprofen'],
notes: `${ABOVE_LABEL_ON_PURPOSE} Example: 3200 mg a day (US label maximum, prescription only). Also (J1): in symptom text and Ask, ibuprofen `
+ 'counts over the maximum written with a schedule ("8 ibuprofen a day") give no sign, unlike paracetamol: should they?' },
{ key: 'diclofenac', name: 'Diclofenac', classes: ['nsaid'], otc: true, maxDailyMg: 150 },
{ key: 'naproxen', name: 'Naproxen', classes: ['nsaid'], otc: true },
{ key: 'piroxicam', name: 'Piroxicam', classes: ['nsaid'] },
{ key: 'meloxicam', name: 'Meloxicam', classes: ['nsaid'] },
{ key: 'celecoxib', name: 'Celecoxib', classes: ['nsaid'] },
{ key: 'indometacin', name: 'Indometacin', aliases: ['indomethacin'], classes: ['nsaid'] },
{ key: 'ketoprofen', name: 'Ketoprofen', classes: ['nsaid'] },
{ key: 'mefenamic-acid', name: 'Mefenamic acid', classes: ['nsaid'], otc: true, maxDailyMg: 1500 },
// Aspirin's classes depend on its dose; the engine decides (low dose is antiplatelet only).
{ key: 'aspirin', name: 'Aspirin', aliases: ['acetylsalicylic acid'], classes: ['antiplatelet'], otc: true, maxDailyMg: 4000, maxSources: ['nhs-aspirin'],
notes: 'Pharmacist to review (J1): paracetamol over 8 tablets a day (or 4 doses a day of a children\'s product) is never read as a regimen in '
+ 'symptom text or Ask, whatever the schedule, because spread over days it is a staggered overdose. Aspirin counts with a schedule are still '
+ 'read as a regimen, so counts over the maximum ("12 aspirin a day") give no sign. Does aspirin need the same exception, and from what count?' },
{ key: 'tramadol', name: 'Tramadol', classes: ['opioid', 'serotonergic_opioid'], maxDailyMg: 400, maxSources: ['label-tramadol'] },
{ key: 'codeine', name: 'Codeine', classes: ['opioid'], maxDailyMg: 240, maxSources: ['nhs-codeine'] },
{ key: 'dihydrocodeine', name: 'Dihydrocodeine', classes: ['opioid'], maxDailyMg: 240, maxSources: ['nhs-dihydrocodeine'] },
{ key: 'morphine', name: 'Morphine', classes: ['opioid'] },
{ key: 'pentazocine', name: 'Pentazocine', classes: ['opioid'] },
{ key: 'caffeine', name: 'Caffeine', classes: [], companion: true },
// Blood thinners
{ key: 'warfarin', name: 'Warfarin', classes: ['anticoagulant_vka'] },
{ key: 'acenocoumarol', name: 'Acenocoumarol', classes: ['anticoagulant_vka'] },
{ key: 'rivaroxaban', name: 'Rivaroxaban', classes: ['anticoagulant_doac'] },
{ key: 'apixaban', name: 'Apixaban', classes: ['anticoagulant_doac'] },
{ key: 'dabigatran', name: 'Dabigatran', classes: ['anticoagulant_doac'] },
{ key: 'edoxaban', name: 'Edoxaban', classes: ['anticoagulant_doac'] },
{ key: 'clopidogrel', name: 'Clopidogrel', classes: ['antiplatelet'] },
{ key: 'ticagrelor', name: 'Ticagrelor', classes: ['antiplatelet'] },
{ key: 'prasugrel', name: 'Prasugrel', classes: ['antiplatelet'] },
// Heart and blood pressure
{ key: 'amlodipine', name: 'Amlodipine', classes: ['calcium_channel_blocker'], maxDailyMg: 10, maxSources: ['label-amlodipine'] },
{ key: 'nifedipine', name: 'Nifedipine', classes: ['calcium_channel_blocker'] },
{ key: 'lisinopril', name: 'Lisinopril', classes: ['acei'], maxDailyMg: 80 },
{ key: 'enalapril', name: 'Enalapril', classes: ['acei'], maxDailyMg: 40 },
{ key: 'ramipril', name: 'Ramipril', classes: ['acei'], maxDailyMg: 10 },
{ key: 'captopril', name: 'Captopril', classes: ['acei'] },
{ key: 'perindopril', name: 'Perindopril', classes: ['acei'] },
{ key: 'losartan', name: 'Losartan', classes: ['arb'], maxDailyMg: 100 },
{ key: 'valsartan', name: 'Valsartan', classes: ['arb'], maxDailyMg: 320 },
{ key: 'telmisartan', name: 'Telmisartan', classes: ['arb'], maxDailyMg: 80 },
{ key: 'irbesartan', name: 'Irbesartan', classes: ['arb'], maxDailyMg: 300 },
{ key: 'candesartan', name: 'Candesartan', classes: ['arb'], maxDailyMg: 32 },
{ key: 'hydrochlorothiazide', name: 'Hydrochlorothiazide', classes: ['thiazide'] },
{ key: 'bendroflumethiazide', name: 'Bendroflumethiazide', aliases: ['bendrofluazide'], classes: ['thiazide'] },
{ key: 'chlortalidone', name: 'Chlortalidone', aliases: ['chlorthalidone'], classes: ['thiazide'] },
{ key: 'indapamide', name: 'Indapamide', classes: ['thiazide'] },
{ key: 'furosemide', name: 'Furosemide', aliases: ['frusemide'], classes: ['loop_diuretic'] },
{ key: 'spironolactone', name: 'Spironolactone', classes: ['k_sparing'] },
{ key: 'eplerenone', name: 'Eplerenone', classes: ['k_sparing'] },
{ key: 'amiloride', name: 'Amiloride', classes: ['k_sparing'] },
{ key: 'potassium-chloride', name: 'Potassium chloride', aliases: ['potassium supplement'], classes: ['potassium_supplement'] },
{ key: 'atenolol', name: 'Atenolol', classes: ['beta_blocker'] },
{ key: 'propranolol', name: 'Propranolol', classes: ['beta_blocker'] },
{ key: 'bisoprolol', name: 'Bisoprolol', classes: ['beta_blocker'] },
{ key: 'metoprolol', name: 'Metoprolol', classes: ['beta_blocker'] },
{ key: 'carvedilol', name: 'Carvedilol', classes: ['beta_blocker'] },
{ key: 'digoxin', name: 'Digoxin', classes: [] },
{ key: 'amiodarone', name: 'Amiodarone', classes: [] },
{ key: 'simvastatin', name: 'Simvastatin', classes: ['statin', 'cyp3a4_statin'], maxDailyMg: 80, maxSources: ['label-simvastatin'] },
{ key: 'atorvastatin', name: 'Atorvastatin', classes: ['statin', 'cyp3a4_statin'], maxDailyMg: 80, maxSources: ['label-atorvastatin'] },
{ key: 'rosuvastatin', name: 'Rosuvastatin', classes: ['statin'], maxDailyMg: 40, maxSources: ['label-rosuvastatin'] },
{ key: 'pravastatin', name: 'Pravastatin', classes: ['statin'] },
{ key: 'sildenafil', name: 'Sildenafil', classes: ['pde5_inhibitor'] },
{ key: 'tadalafil', name: 'Tadalafil', classes: ['pde5_inhibitor'] },
{ key: 'isosorbide-mononitrate', name: 'Isosorbide mononitrate', classes: ['nitrate'] },
{ key: 'isosorbide-dinitrate', name: 'Isosorbide dinitrate', classes: ['nitrate'] },
{ key: 'glyceryl-trinitrate', name: 'Glyceryl trinitrate', aliases: ['nitroglycerin', 'gtn'], classes: ['nitrate'] },
// Diabetes
{ key: 'metformin', name: 'Metformin', classes: ['biguanide'], maxDailyMg: 3000, maxSources: ['smpc-metformin'] },
{ key: 'glibenclamide', name: 'Glibenclamide', aliases: ['glyburide'], classes: ['sulfonylurea', 'long_acting_sulfonylurea'], maxDailyMg: 15 },
{ key: 'glimepiride', name: 'Glimepiride', classes: ['sulfonylurea', 'long_acting_sulfonylurea'] },
{ key: 'gliclazide', name: 'Gliclazide', classes: ['sulfonylurea'] },
{ key: 'glipizide', name: 'Glipizide', classes: ['sulfonylurea'] },
{ key: 'insulin', name: 'Insulin', classes: ['insulin'] },
// Stomach
{ key: 'omeprazole', name: 'Omeprazole', classes: ['ppi'], otc: true },
{ key: 'esomeprazole', name: 'Esomeprazole', classes: ['ppi'] },
{ key: 'lansoprazole', name: 'Lansoprazole', classes: ['ppi'] },
{ key: 'pantoprazole', name: 'Pantoprazole', classes: ['ppi'] },
{ key: 'antacid', name: 'Antacid (aluminium or magnesium)', aliases: ['aluminium hydroxide', 'aluminum hydroxide', 'magnesium hydroxide', 'magnesium trisilicate'], classes: ['divalent_cation'], otc: true },
// Infections
{ key: 'amoxicillin', name: 'Amoxicillin', aliases: ['amoxycillin'], classes: ['penicillin'] },
{ key: 'clavulanic-acid', name: 'Clavulanic acid', classes: [], companion: true },
{ key: 'ampicillin', name: 'Ampicillin', classes: ['penicillin'] },
{ key: 'cloxacillin', name: 'Cloxacillin', classes: ['penicillin'] },
{ key: 'flucloxacillin', name: 'Flucloxacillin', classes: ['penicillin'] },
{ key: 'phenoxymethylpenicillin', name: 'Penicillin V', aliases: ['penicillin v', 'penicillin'], classes: ['penicillin'] },
{ key: 'benzylpenicillin', name: 'Benzylpenicillin', aliases: ['penicillin g'], classes: ['penicillin'] },
{ key: 'cefalexin', name: 'Cefalexin', aliases: ['cephalexin'], classes: ['cephalosporin'] },
{ key: 'cefuroxime', name: 'Cefuroxime', classes: ['cephalosporin'] },
{ key: 'ceftriaxone', name: 'Ceftriaxone', classes: ['cephalosporin'] },
{ key: 'cefixime', name: 'Cefixime', classes: ['cephalosporin'] },
{ key: 'ciprofloxacin', name: 'Ciprofloxacin', classes: ['fluoroquinolone'] },
{ key: 'levofloxacin', name: 'Levofloxacin', classes: ['fluoroquinolone'] },
{ key: 'clarithromycin', name: 'Clarithromycin', classes: ['strong_cyp3a4_inhibitor'] },
{ key: 'erythromycin', name: 'Erythromycin', classes: ['strong_cyp3a4_inhibitor'] },
{ key: 'azithromycin', name: 'Azithromycin', classes: [] },
{ key: 'metronidazole', name: 'Metronidazole', classes: [] },
{ key: 'sulfamethoxazole', name: 'Sulfamethoxazole', aliases: ['sulphamethoxazole'], classes: ['sulfonamide_antibiotic'] },
{ key: 'trimethoprim', name: 'Trimethoprim', classes: ['trimethoprim'] },
{ key: 'doxycycline', name: 'Doxycycline', classes: [] },
{ key: 'fluconazole', name: 'Fluconazole', classes: ['azole_antifungal'] },
{ key: 'ketoconazole', name: 'Ketoconazole', classes: ['azole_antifungal', 'strong_cyp3a4_inhibitor'] },
{ key: 'itraconazole', name: 'Itraconazole', classes: ['azole_antifungal', 'strong_cyp3a4_inhibitor'] },
{ key: 'rifampicin', name: 'Rifampicin', aliases: ['rifampin'], classes: ['strong_enzyme_inducer'] },
{ key: 'isoniazid', name: 'Isoniazid', classes: [] },
// Malaria
{ key: 'artemether', name: 'Artemether', classes: ['antimalarial'] },
{ key: 'lumefantrine', name: 'Lumefantrine', classes: ['antimalarial'] },
{ key: 'artesunate', name: 'Artesunate', classes: ['antimalarial'] },
{ key: 'amodiaquine', name: 'Amodiaquine', classes: ['antimalarial'] },
{ key: 'dihydroartemisinin', name: 'Dihydroartemisinin', classes: ['antimalarial'] },
{ key: 'piperaquine', name: 'Piperaquine', classes: ['antimalarial'] },
{ key: 'sulfadoxine', name: 'Sulfadoxine', classes: ['antimalarial', 'sulfonamide_antibiotic'] },
{ key: 'pyrimethamine', name: 'Pyrimethamine', classes: ['antimalarial'] },
{ key: 'chloroquine', name: 'Chloroquine', classes: ['antimalarial'] },
{ key: 'quinine', name: 'Quinine', classes: ['antimalarial'] },
// HIV
{ key: 'dolutegravir', name: 'Dolutegravir', classes: [] },
{ key: 'efavirenz', name: 'Efavirenz', classes: [] },
{ key: 'emtricitabine', name: 'Emtricitabine', classes: [] },
{ key: 'tenofovir', name: 'Tenofovir', classes: [] },
{ key: 'lamivudine', name: 'Lamivudine', classes: [] },
{ key: 'nevirapine', name: 'Nevirapine', classes: [] },
// Mind and nerves
{ key: 'sertraline', name: 'Sertraline', classes: ['ssri'] },
{ key: 'fluoxetine', name: 'Fluoxetine', classes: ['ssri'] },
{ key: 'citalopram', name: 'Citalopram', classes: ['ssri'] },
{ key: 'escitalopram', name: 'Escitalopram', classes: ['ssri'] },
{ key: 'paroxetine', name: 'Paroxetine', classes: ['ssri'] },
{ key: 'amitriptyline', name: 'Amitriptyline', classes: ['tca'] },
{ key: 'diazepam', name: 'Diazepam', classes: ['benzodiazepine'] },
{ key: 'lorazepam', name: 'Lorazepam', classes: ['benzodiazepine'] },
{ key: 'alprazolam', name: 'Alprazolam', classes: ['benzodiazepine'] },
{ key: 'bromazepam', name: 'Bromazepam', classes: ['benzodiazepine'] },
{ key: 'clonazepam', name: 'Clonazepam', classes: ['benzodiazepine'] },
{ key: 'carbamazepine', name: 'Carbamazepine', classes: ['strong_enzyme_inducer'] },
{ key: 'phenytoin', name: 'Phenytoin', classes: ['strong_enzyme_inducer'] },
{ key: 'sodium-valproate', name: 'Sodium valproate', aliases: ['valproate', 'valproic acid'], classes: [] },
{ key: 'lithium', name: 'Lithium', classes: [] },
// Allergy, breathing, steroids, thyroid, gout, immune
{ key: 'salbutamol', name: 'Salbutamol', aliases: ['albuterol'], classes: [] },
{ key: 'cetirizine', name: 'Cetirizine', classes: [], otc: true, maxDailyMg: 10,
notes: `${ABOVE_LABEL_ON_PURPOSE} Example: 10 mg twice a day for hives (urticaria).` },
{ key: 'loratadine', name: 'Loratadine', classes: [], otc: true, maxDailyMg: 10 },
{ key: 'chlorphenamine', name: 'Chlorphenamine', aliases: ['chlorpheniramine'], classes: ['first_gen_antihistamine'], otc: true },
{ key: 'promethazine', name: 'Promethazine', classes: ['first_gen_antihistamine'], otc: true },
{ key: 'diphenhydramine', name: 'Diphenhydramine', classes: ['first_gen_antihistamine'], otc: true },
{ key: 'dextromethorphan', name: 'Dextromethorphan', classes: [], otc: true },
{ key: 'pseudoephedrine', name: 'Pseudoephedrine', classes: [], otc: true },
{ key: 'prednisolone', name: 'Prednisolone', classes: ['corticosteroid'] },
{ key: 'dexamethasone', name: 'Dexamethasone', classes: ['corticosteroid'] },
{ key: 'levothyroxine', name: 'Levothyroxine', aliases: ['thyroxine'], classes: ['thyroid_hormone'] },
{ key: 'allopurinol', name: 'Allopurinol', classes: [] },
{ key: 'azathioprine', name: 'Azathioprine', classes: [] },
{ key: 'methotrexate', name: 'Methotrexate', classes: [] },
// Supplements that change how other medicines are absorbed
{ key: 'iron', name: 'Iron', aliases: ['ferrous sulfate', 'ferrous sulphate', 'ferrous fumarate', 'ferrous gluconate'], classes: ['divalent_cation'], otc: true },
{ key: 'calcium', name: 'Calcium', aliases: ['calcium carbonate'], classes: ['divalent_cation'], otc: true },
{ key: 'zinc', name: 'Zinc', classes: ['divalent_cation'], otc: true },
{ key: 'magnesium', name: 'Magnesium', aliases: ['magnesium citrate', 'magnesium oxide', 'magnesium glycinate'], classes: ['divalent_cation'], otc: true },
// Herbal and food products with published interaction reports
{ key: 'garlic', name: 'Garlic', classes: ['herbal_bleeding_risk'], herbal: true },
{ key: 'ginger', name: 'Ginger', classes: ['herbal_bleeding_risk'], herbal: true },
{ key: 'turmeric', name: 'Turmeric', aliases: ['curcumin'], classes: ['herbal_bleeding_risk'], herbal: true },
{ key: 'ginkgo', name: 'Ginkgo', aliases: ['ginkgo biloba'], classes: ['herbal_bleeding_risk'], herbal: true },
{ key: 'st-johns-wort', name: 'St John\'s wort', aliases: ['st johns wort', 'saint johns wort', 'hypericum'], classes: ['st_johns_wort'], herbal: true },
{ key: 'moringa', name: 'Moringa', classes: [], herbal: true },
{ key: 'hibiscus', name: 'Hibiscus (zobo)', aliases: ['zobo', 'bissap', 'sobolo'], classes: [], herbal: true },
{ key: 'kola-nut', name: 'Kola nut', aliases: ['kola', 'orogbo', 'bitter kola'], classes: [], herbal: true },
];
/** Brands and combinations, mapped to their ingredients. */
export const PRODUCTS: Array<{ names: string[]; ingredients: string[] }> = [
{ names: ['panadol', 'emzor paracetamol', 'calpol', 'tylenol'], ingredients: ['paracetamol'] },
{ names: ['panadol extra', 'panadol actifast extra'], ingredients: ['paracetamol', 'caffeine'] },
{ names: ['co-codamol', 'panadeine', 'solpadeine', 'paracetamol and codeine', 'tylenol with codeine'], ingredients: ['paracetamol', 'codeine'] },
{ names: ['co-dydramol'], ingredients: ['paracetamol', 'dihydrocodeine'] },
{ names: ['nurofen plus'], ingredients: ['ibuprofen', 'codeine'] },
{ names: ['brufen', 'nurofen', 'advil'], ingredients: ['ibuprofen'] },
{ names: ['voltaren', 'voltarol', 'cataflam'], ingredients: ['diclofenac'] },
{ names: ['naprosyn', 'aleve'], ingredients: ['naproxen'] },
{ names: ['feldene'], ingredients: ['piroxicam'] },
{ names: ['ponstan'], ingredients: ['mefenamic-acid'] },
{ names: ['mobic'], ingredients: ['meloxicam'] },
{ names: ['celebrex'], ingredients: ['celecoxib'] },
{ names: ['disprin', 'ecotrin'], ingredients: ['aspirin'] },
// Alabukun powder (Nigeria): acetylsalicylic acid 760 mg and caffeine 60 mg a sachet.
{ names: ['alabukun'], ingredients: ['aspirin', 'caffeine'] },
{ names: ['cardiprin', 'low dose aspirin', 'baby aspirin'], ingredients: ['aspirin'] },
{ names: ['tramal'], ingredients: ['tramadol'] },
{ names: ['coumadin', 'marevan'], ingredients: ['warfarin'] },
{ names: ['xarelto'], ingredients: ['rivaroxaban'] },
{ names: ['eliquis'], ingredients: ['apixaban'] },
{ names: ['pradaxa'], ingredients: ['dabigatran'] },
{ names: ['plavix'], ingredients: ['clopidogrel'] },
{ names: ['norvasc', 'istin'], ingredients: ['amlodipine'] },
{ names: ['adalat'], ingredients: ['nifedipine'] },
{ names: ['zestril', 'prinivil'], ingredients: ['lisinopril'] },
{ names: ['renitec', 'vasotec'], ingredients: ['enalapril'] },
{ names: ['tritace'], ingredients: ['ramipril'] },
{ names: ['cozaar'], ingredients: ['losartan'] },
{ names: ['diovan'], ingredients: ['valsartan'] },
{ names: ['micardis'], ingredients: ['telmisartan'] },
{ names: ['lasix'], ingredients: ['furosemide'] },
{ names: ['aldactone'], ingredients: ['spironolactone'] },
{ names: ['moduretic'], ingredients: ['amiloride', 'hydrochlorothiazide'] },
{ names: ['tenormin'], ingredients: ['atenolol'] },
{ names: ['inderal'], ingredients: ['propranolol'] },
{ names: ['concor'], ingredients: ['bisoprolol'] },
{ names: ['lanoxin'], ingredients: ['digoxin'] },
{ names: ['cordarone'], ingredients: ['amiodarone'] },
{ names: ['zocor'], ingredients: ['simvastatin'] },
{ names: ['lipitor'], ingredients: ['atorvastatin'] },
{ names: ['crestor'], ingredients: ['rosuvastatin'] },
{ names: ['viagra'], ingredients: ['sildenafil'] },
{ names: ['cialis'], ingredients: ['tadalafil'] },
{ names: ['glucophage'], ingredients: ['metformin'] },
{ names: ['daonil'], ingredients: ['glibenclamide'] },
{ names: ['amaryl'], ingredients: ['glimepiride'] },
{ names: ['diamicron'], ingredients: ['gliclazide'] },
{ names: ['losec', 'prilosec'], ingredients: ['omeprazole'] },
{ names: ['nexium'], ingredients: ['esomeprazole'] },
{ names: ['amoxil', 'amoxyl'], ingredients: ['amoxicillin'] },
{ names: ['augmentin', 'co-amoxiclav'], ingredients: ['amoxicillin', 'clavulanic-acid'] },
{ names: ['ampiclox'], ingredients: ['ampicillin', 'cloxacillin'] },
{ names: ['keflex'], ingredients: ['cefalexin'] },
{ names: ['zinnat'], ingredients: ['cefuroxime'] },
{ names: ['rocephin'], ingredients: ['ceftriaxone'] },
{ names: ['cipro', 'ciprotab', 'ciproxin'], ingredients: ['ciprofloxacin'] },
{ names: ['klacid'], ingredients: ['clarithromycin'] },
{ names: ['zithromax'], ingredients: ['azithromycin'] },
{ names: ['flagyl'], ingredients: ['metronidazole'] },
{ names: ['septrin', 'septrine', 'bactrim', 'co-trimoxazole', 'cotrimoxazole'], ingredients: ['sulfamethoxazole', 'trimethoprim'] },
{ names: ['diflucan'], ingredients: ['fluconazole'] },
{ names: ['rifadin'], ingredients: ['rifampicin'] },
{ names: ['coartem', 'lonart', 'lumartem'], ingredients: ['artemether', 'lumefantrine'] },
{ names: ['camosunate', 'asaq'], ingredients: ['artesunate', 'amodiaquine'] },
{ names: ['p-alaxin'], ingredients: ['dihydroartemisinin', 'piperaquine'] },
{ names: ['fansidar'], ingredients: ['sulfadoxine', 'pyrimethamine'] },
{ names: ['tivicay'], ingredients: ['dolutegravir'] },
{ names: ['tld'], ingredients: ['tenofovir', 'lamivudine', 'dolutegravir'] },
{ names: ['tle'], ingredients: ['tenofovir', 'lamivudine', 'efavirenz'] },
{ names: ['atripla'], ingredients: ['efavirenz', 'emtricitabine', 'tenofovir'] },
{ names: ['zoloft', 'lustral'], ingredients: ['sertraline'] },
{ names: ['prozac'], ingredients: ['fluoxetine'] },
{ names: ['cipramil'], ingredients: ['citalopram'] },
{ names: ['lexapro', 'cipralex'], ingredients: ['escitalopram'] },
{ names: ['valium'], ingredients: ['diazepam'] },
{ names: ['ativan'], ingredients: ['lorazepam'] },
{ names: ['xanax'], ingredients: ['alprazolam'] },
{ names: ['lexotan'], ingredients: ['bromazepam'] },
{ names: ['tegretol'], ingredients: ['carbamazepine'] },
{ names: ['epanutin', 'dilantin'], ingredients: ['phenytoin'] },
{ names: ['epilim', 'depakote'], ingredients: ['sodium-valproate'] },
{ names: ['priadel', 'camcolit'], ingredients: ['lithium'] },
{ names: ['ventolin'], ingredients: ['salbutamol'] },
{ names: ['zyrtec'], ingredients: ['cetirizine'] },
{ names: ['clarityn', 'claritin'], ingredients: ['loratadine'] },
// Night-time and decongestant versions have a second ingredient (N11).
{ names: ['tylenol pm'], ingredients: ['paracetamol', 'diphenhydramine'] },
{ names: ['advil pm'], ingredients: ['ibuprofen', 'diphenhydramine'] },
{ names: ['claritin d', 'clarityn d'], ingredients: ['loratadine', 'pseudoephedrine'] },
{ names: ['zyrtec d'], ingredients: ['cetirizine', 'pseudoephedrine'] },
{ names: ['piriton'], ingredients: ['chlorphenamine'] },
{ names: ['phenergan'], ingredients: ['promethazine'] },
{ names: ['night nurse'], ingredients: ['paracetamol', 'promethazine', 'dextromethorphan'] },
{ names: ['eltroxin', 'synthroid'], ingredients: ['levothyroxine'] },
{ names: ['zyloric'], ingredients: ['allopurinol'] },
{ names: ['imuran'], ingredients: ['azathioprine'] },
{ names: ['slow-k'], ingredients: ['potassium-chloride'] },
];
export const INGREDIENT_BY_KEY = new Map(INGREDIENTS.map((ingredient) => [ingredient.key, ingredient]));