385 lines
20 KiB
Python
385 lines
20 KiB
Python
"""Zentrale Medikamenten-Validierung fuer AZA Desktop.
|
||
|
||
Stellt validate_medication_name() und suggest_medication_candidate() bereit.
|
||
Verwendet eine kuratierte Liste bekannter Medikamente/Wirkstoffe im DACH-Raum
|
||
plus difflib.get_close_matches() fuer Fuzzy-Matching.
|
||
"""
|
||
|
||
import difflib
|
||
|
||
_KNOWN_MEDICATIONS: frozenset = frozenset({
|
||
# --- Dermatologie ---
|
||
"Dermovate", "Clobetasol", "Elidel", "Pimecrolimus", "Protopic", "Tacrolimus",
|
||
"Dupixent", "Dupilumab", "Cosentyx", "Secukinumab", "Tremfya", "Guselkumab",
|
||
"Skyrizi", "Risankizumab", "Stelara", "Ustekinumab", "Humira", "Adalimumab",
|
||
"Enbrel", "Etanercept", "Taltz", "Ixekizumab", "Bimzelx", "Bimekizumab",
|
||
"Otezla", "Apremilast", "Fumaderm", "Dimethylfumarat", "Skilarence",
|
||
"Methotrexat", "MTX", "Ciclosporin", "Cyclosporin", "Sandimmun",
|
||
"Acitretin", "Neotigason", "Isotretinoin", "Roaccutan", "Accutane",
|
||
"Daivobet", "Calcipotriol", "Daivonex", "Betamethason", "Betnovate",
|
||
"Hydrocortison", "Advantan", "Methylprednisolon", "Prednisolon", "Prednison",
|
||
"Dexamethason", "Triamcinolon", "Kenacort", "Mometason", "Elocom",
|
||
"Fluticason", "Cutivate", "Fluocinolon", "Synalar", "Halcinonid",
|
||
"Aldara", "Imiquimod", "Efudix", "Fluorouracil", "5-FU",
|
||
"Picato", "Ingenolmebutat", "Solaraze", "Diclofenac",
|
||
"Lamisil", "Terbinafin", "Itraconazol", "Sporanox", "Fluconazol", "Diflucan",
|
||
"Ketoconazol", "Nizoral", "Clotrimazol", "Canesten", "Miconazol", "Daktarin",
|
||
"Nystatin", "Permethrin", "Infectoscab", "Ivermectin", "Stromectol", "Scabioral",
|
||
"Aciclovir", "Zovirax", "Valaciclovir", "Valtrex",
|
||
"Mupirocin", "Bactroban", "Fusidinsaeure", "Fucidine", "Fucidin",
|
||
"Retinol", "Tretinoin", "Adapalen", "Differin", "Epiduo",
|
||
"Azelainsaeure", "Skinoren", "Benzoylperoxid", "BPO",
|
||
"Doxycyclin", "Minocyclin", "Tetracyclin",
|
||
"Bilastin", "Cetirizin", "Loratadin", "Desloratadin", "Aerius",
|
||
"Fexofenadin", "Telfast", "Levocetirizin", "Xyzal",
|
||
"Hydroxyzin", "Atarax", "Clemastin", "Tavegil",
|
||
"Rituximab", "MabThera", "Omalizumab", "Xolair",
|
||
"Baricitinib", "Olumiant", "Upadacitinib", "Rinvoq",
|
||
"Abrocitinib", "Cibinqo", "Ruxolitinib", "Jakavi", "Opzelura",
|
||
"Tralokinumab", "Adtralza", "Lebrikizumab", "Ebglyss",
|
||
"Deucravacitinib", "Sotyktu", "Tildrakizumab", "Ilumetri",
|
||
"Brodalumab", "Kyntheum", "Certolizumab", "Cimzia",
|
||
"Infliximab", "Remicade", "Golimumab", "Simponi",
|
||
|
||
# --- Schmerz / Analgetika ---
|
||
"Paracetamol", "Dafalgan", "Panadol", "Ibuprofen", "Brufen", "Algifor",
|
||
"Naproxen", "Aspirin", "Acetylsalicylsaeure", "Novalgin", "Metamizol",
|
||
"Tramadol", "Tramal", "Morphin", "Oxycodon", "Targin", "Fentanyl",
|
||
"Durogesic", "Buprenorphin", "Temgesic", "Transtec",
|
||
"Gabapentin", "Neurontin", "Pregabalin", "Lyrica",
|
||
"Celecoxib", "Celebrex", "Etoricoxib", "Arcoxia",
|
||
"Indometacin", "Piroxicam", "Meloxicam",
|
||
|
||
# --- Kardio / Blutdruck / Antikoagulation ---
|
||
"Amlodipin", "Norvasc", "Lisinopril", "Enalapril", "Ramipril", "Triatec",
|
||
"Candesartan", "Atacand", "Valsartan", "Diovan", "Losartan", "Cosaar",
|
||
"Irbesartan", "Aprovel", "Telmisartan", "Micardis",
|
||
"Metoprolol", "Beloc", "Bisoprolol", "Concor", "Atenolol", "Tenormin",
|
||
"Propranolol", "Inderal", "Carvedilol", "Nebivolol",
|
||
"Hydrochlorothiazid", "HCT", "Torasemid", "Furosemid", "Lasix",
|
||
"Spironolacton", "Aldactone", "Eplerenon",
|
||
"Marcoumar", "Phenprocoumon", "Xarelto", "Rivaroxaban",
|
||
"Eliquis", "Apixaban", "Pradaxa", "Dabigatran", "Lixiana", "Edoxaban",
|
||
"Heparin", "Enoxaparin", "Clexane", "Clopidogrel", "Plavix",
|
||
"Ticagrelor", "Brilique", "Prasugrel", "Efient",
|
||
"Atorvastatin", "Sortis", "Rosuvastatin", "Crestor", "Simvastatin", "Zocor",
|
||
"Pravastatin", "Ezetimib", "Ezetrol", "Evolocumab", "Repatha",
|
||
"Alirocumab", "Praluent", "Inclisiran", "Leqvio",
|
||
"Amiodaron", "Cordarone", "Digoxin",
|
||
|
||
# --- Diabetes ---
|
||
"Metformin", "Glucophage", "Jardiance", "Empagliflozin",
|
||
"Forxiga", "Dapagliflozin", "Invokana", "Canagliflozin",
|
||
"Ozempic", "Semaglutid", "Wegovy", "Rybelsus",
|
||
"Trulicity", "Dulaglutid", "Victoza", "Liraglutid",
|
||
"Januvia", "Sitagliptin", "Galvus", "Vildagliptin",
|
||
"Insulin", "Lantus", "Levemir", "Tresiba", "NovoRapid", "Humalog",
|
||
"Glimepirid", "Amaryl", "Gliclazid",
|
||
"Pioglitazon", "Actos",
|
||
|
||
# --- Antibiotika ---
|
||
"Amoxicillin", "Augmentin", "Amoxicillin-Clavulansaeure",
|
||
"Ciprofloxacin", "Cipro", "Levofloxacin", "Tavanic",
|
||
"Moxifloxacin", "Avalox", "Azithromycin", "Zithromax",
|
||
"Clarithromycin", "Klacid", "Erythromycin",
|
||
"Cotrimoxazol", "Bactrim", "Trimethoprim",
|
||
"Cefuroxim", "Zinnat", "Ceftriaxon", "Rocephin",
|
||
"Cefpodoxim", "Cephalexin", "Clindamycin", "Dalacin",
|
||
"Metronidazol", "Flagyl", "Penicillin", "Nitrofurantoin",
|
||
"Fosfomycin", "Monuril", "Rifampicin",
|
||
"Linezolid", "Zyvoxid", "Vancomycin", "Daptomycin",
|
||
|
||
# --- Psychopharmaka ---
|
||
"Sertralin", "Zoloft", "Escitalopram", "Cipralex", "Citalopram",
|
||
"Fluoxetin", "Fluctine", "Paroxetin", "Deroxat",
|
||
"Venlafaxin", "Efexor", "Duloxetin", "Cymbalta",
|
||
"Mirtazapin", "Remeron", "Amitriptylin", "Saroten",
|
||
"Quetiapin", "Seroquel", "Olanzapin", "Zyprexa",
|
||
"Risperidon", "Risperdal", "Aripiprazol", "Abilify",
|
||
"Lithium", "Quilonum", "Valproat", "Depakine",
|
||
"Carbamazepin", "Tegretol", "Lamotrigin", "Lamictal",
|
||
"Lorazepam", "Temesta", "Diazepam", "Valium",
|
||
"Oxazepam", "Midazolam", "Dormicum",
|
||
"Zolpidem", "Stilnox", "Zopiclon",
|
||
"Methylphenidat", "Ritalin", "Concerta",
|
||
"Atomoxetin", "Strattera",
|
||
|
||
# --- Magen/Darm ---
|
||
"Omeprazol", "Antra", "Pantoprazol", "Pantozol", "Zurcal",
|
||
"Esomeprazol", "Nexium", "Lansoprazol", "Rabeprazol",
|
||
"Ranitidin", "Famotidin", "Antacida",
|
||
"Ondansetron", "Zofran", "Metoclopramid", "Paspertin",
|
||
"Domperidon", "Motilium", "Loperamid", "Imodium",
|
||
"Mesalazin", "Pentasa", "Salofalk", "Sulfasalazin",
|
||
"Budesonid", "Entocort", "Azathioprin", "Imurek",
|
||
"Mercaptopurin",
|
||
|
||
# --- Atemwege ---
|
||
"Salbutamol", "Ventolin", "Formoterol", "Salmeterol",
|
||
"Beclomethason", "Budesonid", "Pulmicort",
|
||
"Fluticason", "Flutide", "Seretide", "Symbicort",
|
||
"Tiotropium", "Spiriva", "Ipratropium", "Atrovent",
|
||
"Montelukast", "Singulair", "Theophyllin",
|
||
"Benralizumab", "Fasenra", "Mepolizumab", "Nucala",
|
||
|
||
# --- Schilddruese ---
|
||
"Levothyroxin", "Euthyrox", "L-Thyroxin",
|
||
"Carbimazol", "Neo-Mercazole", "Thiamazol", "Tapazole",
|
||
|
||
# --- Urologie ---
|
||
"Tamsulosin", "Pradif", "Finasterid", "Proscar", "Propecia",
|
||
"Dutasterid", "Avodart", "Sildenafil", "Viagra",
|
||
"Tadalafil", "Cialis", "Solifenacin", "Vesicare",
|
||
"Mirabegron", "Betmiga",
|
||
|
||
# --- Augen ---
|
||
"Timolol", "Latanoprost", "Xalatan", "Travoprost", "Travatan",
|
||
"Dorzolamid", "Brinzolamid",
|
||
|
||
# --- Weitere haeufige ---
|
||
"Allopurinol", "Zyloric", "Febuxostat", "Adenuric",
|
||
"Colchicin", "Colchysat",
|
||
"Alendronsaeure", "Fosamax", "Risedronat", "Ibandronat",
|
||
"Denosumab", "Prolia", "Xgeva",
|
||
"Calcitonin", "Calcium", "Vitamin D", "Cholecalciferol",
|
||
"Eisen", "Ferritin", "Ferinject", "Eisenfumarat",
|
||
"Folsaeure", "Vitamin B12", "Hydroxocobalamin",
|
||
"Magnesium", "Kalium",
|
||
"Leflunomid", "Arava", "Mycophenolatmofetil", "CellCept",
|
||
"Tacrolimus", "Prograf", "Everolimus", "Certican",
|
||
"Sirolimus", "Rapamune",
|
||
"Hydroxychloroquin", "Plaquenil", "Chloroquin",
|
||
"Sulfasalazin", "Salazopyrin",
|
||
"Tofacitinib", "Xeljanz",
|
||
"Tocilizumab", "Actemra", "RoActemra",
|
||
"Sarilumab", "Kevzara",
|
||
"Belimumab", "Benlysta",
|
||
"Vedolizumab", "Entyvio",
|
||
"Natalizumab", "Tysabri",
|
||
"Fingolimod", "Gilenya", "Dimethylfumarat", "Tecfidera",
|
||
"Teriflunomid", "Aubagio",
|
||
"Ocrelizumab", "Ocrevus",
|
||
|
||
# --- Onkologie (haeufigste) ---
|
||
"Tamoxifen", "Letrozol", "Femara", "Anastrozol", "Arimidex",
|
||
"Imatinib", "Glivec", "Pembrolizumab", "Keytruda",
|
||
"Nivolumab", "Opdivo", "Atezolizumab", "Tecentriq",
|
||
"Ipilimumab", "Yervoy", "Trastuzumab", "Herceptin",
|
||
"Bevacizumab", "Avastin",
|
||
"Palbociclib", "Ibrance", "Ribociclib", "Kisqali",
|
||
})
|
||
|
||
_KNOWN_LOWER = {m.lower(): m for m in _KNOWN_MEDICATIONS}
|
||
|
||
|
||
def validate_medication_name(name: str) -> tuple:
|
||
"""Prueft ob ein Medikamentenname bekannt ist.
|
||
|
||
Returns:
|
||
(True, canonical_name) – sicher erkannt
|
||
(False, candidate_or_None) – nicht erkannt; candidate ist ein
|
||
naher Treffer oder None
|
||
"""
|
||
if not name or len(name.strip()) < 2:
|
||
return (False, None)
|
||
|
||
clean = name.strip()
|
||
low = clean.lower()
|
||
|
||
if low in _KNOWN_LOWER:
|
||
return (True, _KNOWN_LOWER[low])
|
||
|
||
for k, v in _KNOWN_LOWER.items():
|
||
if k == low.rstrip("s"):
|
||
return (True, v)
|
||
|
||
candidates = difflib.get_close_matches(low, _KNOWN_LOWER.keys(), n=1, cutoff=0.75)
|
||
if candidates:
|
||
return (False, _KNOWN_LOWER[candidates[0]])
|
||
|
||
return (False, None)
|
||
|
||
|
||
def suggest_medication_candidate(name: str) -> str | None:
|
||
"""Gibt den besten Kandidaten zurueck oder None."""
|
||
valid, candidate = validate_medication_name(name)
|
||
if valid:
|
||
return name.strip()
|
||
return candidate
|
||
|
||
|
||
# ---------------------------------------------------------------------------
|
||
# Kuratierte Medikamenten-Fakten aus Fachinformationen (Compendium.ch / EMA)
|
||
# ---------------------------------------------------------------------------
|
||
# Jeder Eintrag ist MANUELL aus der jeweiligen Fachinformation extrahiert.
|
||
# NUR Informationen, die direkt aus der Quelle ableitbar sind.
|
||
# Felder: wirkstoff, indikation, einnahme, dosierung, wichtig, quelle
|
||
|
||
_MEDICATION_FACTS: dict[str, dict] = {
|
||
"bilastin": {
|
||
"wirkstoff": "Bilastin",
|
||
"indikation": "Nicht-sedierendes Antihistaminikum (H1-Blocker, 2. Generation). Symptomatische Behandlung allergische Rhinokonjunktivitis und Urtikaria.",
|
||
"einnahme": "Nuechtern einnehmen: mindestens 1 Stunde vor oder 2 Stunden nach einer Mahlzeit. Nicht mit Fruchtsaft (insbesondere Grapefruit) einnehmen, da dies die Bioverfuegbarkeit reduziert.",
|
||
"dosierung": "Erwachsene und Jugendliche ab 12 Jahren: 20 mg 1x taeglich.",
|
||
"wichtig": "Keine klinisch relevante Sedierung in Studien. Kein relevanter Einfluss auf QTc in therapeutischer Dosis.",
|
||
"quelle": "Fachinformation Bilastin / Compendium.ch, EMA EPAR Bilastin",
|
||
},
|
||
"cetirizin": {
|
||
"wirkstoff": "Cetirizin",
|
||
"indikation": "Antihistaminikum (H1-Blocker, 2. Generation). Allergische Rhinitis, chronische spontane Urtikaria.",
|
||
"einnahme": "Unabhaengig von Mahlzeiten einnehmbar.",
|
||
"dosierung": "Erwachsene: 10 mg 1x taeglich. Bei Niereninsuffizienz Dosisreduktion.",
|
||
"wichtig": "Kann Muedigkeit verursachen. Dosisanpassung bei Niereninsuffizienz erforderlich.",
|
||
"quelle": "Fachinformation Cetirizin / Compendium.ch",
|
||
},
|
||
"loratadin": {
|
||
"wirkstoff": "Loratadin",
|
||
"indikation": "Antihistaminikum (H1-Blocker, 2. Generation). Allergische Rhinitis, chronische Urtikaria.",
|
||
"einnahme": "Unabhaengig von Mahlzeiten einnehmbar.",
|
||
"dosierung": "Erwachsene und Kinder ab 12 Jahren: 10 mg 1x taeglich.",
|
||
"wichtig": "Nicht sedierend in therapeutischer Dosis. Vorsicht bei schwerer Leberinsuffizienz.",
|
||
"quelle": "Fachinformation Loratadin / Compendium.ch",
|
||
},
|
||
"desloratadin": {
|
||
"wirkstoff": "Desloratadin",
|
||
"indikation": "Antihistaminikum (H1-Blocker, 2. Generation). Aktiver Metabolit von Loratadin. Allergische Rhinitis, chronische Urtikaria.",
|
||
"einnahme": "Unabhaengig von Mahlzeiten einnehmbar.",
|
||
"dosierung": "Erwachsene: 5 mg 1x taeglich.",
|
||
"wichtig": "Sehr geringe Sedierung. Dosisanpassung bei Nieren-/Leberinsuffizienz erwaegen.",
|
||
"quelle": "Fachinformation Desloratadin (Aerius) / Compendium.ch",
|
||
},
|
||
"fexofenadin": {
|
||
"wirkstoff": "Fexofenadin",
|
||
"indikation": "Antihistaminikum (H1-Blocker, 2. Generation). Allergische Rhinitis, chronische Urtikaria.",
|
||
"einnahme": "Nicht mit Fruchtsaft (Grapefruit, Orange, Apfel) einnehmen – reduziert Bioverfuegbarkeit. Vor einer Mahlzeit einnehmen.",
|
||
"dosierung": "Allergische Rhinitis: 120 mg 1x taeglich. Urtikaria: 180 mg 1x taeglich.",
|
||
"wichtig": "Nicht sedierend. Keine Dosisanpassung bei Leberinsuffizienz noetig.",
|
||
"quelle": "Fachinformation Fexofenadin (Telfast) / Compendium.ch",
|
||
},
|
||
"ibuprofen": {
|
||
"wirkstoff": "Ibuprofen",
|
||
"indikation": "NSAR. Schmerzen, Entzuendungen, Fieber.",
|
||
"einnahme": "Zu oder nach einer Mahlzeit einnehmen (Magenschutz). Mit ausreichend Fluessigkeit.",
|
||
"dosierung": "200-400 mg alle 6-8 Stunden. Maximaldosis OTC: 1200 mg/Tag. Verschreibungspflichtig: bis 2400 mg/Tag.",
|
||
"wichtig": "GI-Blutungsrisiko. KI bei schwerer Nieren-/Leberinsuffizienz, 3. Trimenon, aktiver GI-Blutung.",
|
||
"quelle": "Fachinformation Ibuprofen / Compendium.ch",
|
||
},
|
||
"methotrexat": {
|
||
"wirkstoff": "Methotrexat",
|
||
"indikation": "Immunsuppressivum / Zytostatikum. Schwere Psoriasis, rheumatoide Arthritis, weitere Autoimmunerkrankungen.",
|
||
"einnahme": "CAVE: 1x WOECHENTLICH, NICHT taeglich! Oral oder s.c. Folsaeure-Substitution (5 mg) 24-48 Stunden nach MTX-Gabe empfohlen.",
|
||
"dosierung": "Dermatologie: 7.5-25 mg 1x pro Woche. Einschleichend beginnen.",
|
||
"wichtig": "Verwechslungsgefahr taeglich/woechentlich ist lebensgefaehrlich! Regelmaessige Kontrolle von Blutbild, Leber- und Nierenwerten. Teratogen.",
|
||
"quelle": "Fachinformation Methotrexat / Compendium.ch",
|
||
},
|
||
"dupilumab": {
|
||
"wirkstoff": "Dupilumab",
|
||
"indikation": "Monoklonaler Antikoerper (Anti-IL-4/IL-13). Mittelschwere bis schwere atopische Dermatitis, Asthma, CRSwNP.",
|
||
"einnahme": "Subkutane Injektion. Injektionsstellen wechseln.",
|
||
"dosierung": "Atopische Dermatitis Erwachsene: 600 mg Initialdosis (2x 300 mg), dann 300 mg alle 2 Wochen.",
|
||
"wichtig": "Haeufigste NW: Reaktion an Injektionsstelle, Konjunktivitis. Keine Lebendimpfstoffe waehrend Therapie.",
|
||
"quelle": "Fachinformation Dupixent (Dupilumab) / Compendium.ch, EMA EPAR",
|
||
},
|
||
"prednisolon": {
|
||
"wirkstoff": "Prednisolon",
|
||
"indikation": "Glukokortikoid. Entzuendliche und allergische Erkrankungen, Autoimmunerkrankungen.",
|
||
"einnahme": "Morgens einnehmen (entsprechend zirkadianem Cortisol-Rhythmus). Mit oder nach einer Mahlzeit.",
|
||
"dosierung": "Stark indikationsabhaengig. Stosstherapie, ausschleichend oder Erhaltungsdosis je nach Erkrankung.",
|
||
"wichtig": "Ausschleichen bei Therapie ueber 2 Wochen. Osteoporose-Prophylaxe bei Langzeittherapie. Infektionsrisiko erhoht.",
|
||
"quelle": "Fachinformation Prednisolon / Compendium.ch",
|
||
},
|
||
"aciclovir": {
|
||
"wirkstoff": "Aciclovir",
|
||
"indikation": "Virostatikum. Herpes-simplex-Infektionen, Varizella-Zoster-Infektionen.",
|
||
"einnahme": "Mit reichlich Fluessigkeit einnehmen (Kristallurierisiko). Unabhaengig von Mahlzeiten.",
|
||
"dosierung": "Herpes simplex: 5x 200 mg/Tag. Zoster: 5x 800 mg/Tag fuer 7 Tage.",
|
||
"wichtig": "Ausreichende Hydratation wichtig. Dosisanpassung bei Niereninsuffizienz. Fruehzeitiger Therapiebeginn entscheidend.",
|
||
"quelle": "Fachinformation Aciclovir (Zovirax) / Compendium.ch",
|
||
},
|
||
"isotretinoin": {
|
||
"wirkstoff": "Isotretinoin",
|
||
"indikation": "Retinoid. Schwere, therapieresistente Akne (nodulaer-zystisch).",
|
||
"einnahme": "Mit einer fetthaltigen Mahlzeit einnehmen (verbessert Resorption erheblich).",
|
||
"dosierung": "0.5-1.0 mg/kg/Tag, Gesamtkumulativdosis 120-150 mg/kg.",
|
||
"wichtig": "STRENG TERATOGEN – Schwangerschaftsverhuetungsprogramm obligat. Trockene Haut/Lippen haeufig. Regelmaessige Laborkontrolle (Lipide, Leberwerte).",
|
||
"quelle": "Fachinformation Isotretinoin (Roaccutan) / Compendium.ch",
|
||
},
|
||
"omeprazol": {
|
||
"wirkstoff": "Omeprazol",
|
||
"indikation": "Protonenpumpeninhibitor (PPI). Refluxoesophagitis, peptisches Ulkus, Magenschutz bei NSAR.",
|
||
"einnahme": "Vor einer Mahlzeit einnehmen (idealerweise 30 Min. vor dem Fruehstueck). Kapsel ganz schlucken.",
|
||
"dosierung": "Standarddosis: 20 mg 1x taeglich. Bei Ulkus oder Reflux: 20-40 mg/Tag.",
|
||
"wichtig": "Langzeitanwendung: Magnesium-/B12-Mangel, Osteoporoserisiko erhoht. Interaktion mit Clopidogrel beachten.",
|
||
"quelle": "Fachinformation Omeprazol (Antra) / Compendium.ch",
|
||
},
|
||
"pantoprazol": {
|
||
"wirkstoff": "Pantoprazol",
|
||
"indikation": "Protonenpumpeninhibitor (PPI). Refluxoesophagitis, peptisches Ulkus, Magenschutz bei NSAR.",
|
||
"einnahme": "Vor einer Mahlzeit einnehmen (idealerweise morgens). Tablette ganz schlucken.",
|
||
"dosierung": "Standarddosis: 20-40 mg 1x taeglich.",
|
||
"wichtig": "Langzeitanwendung: Magnesium-/B12-Mangel moeglich. Geringeres CYP-Interaktionspotenzial als Omeprazol.",
|
||
"quelle": "Fachinformation Pantoprazol (Pantozol) / Compendium.ch",
|
||
},
|
||
"amoxicillin": {
|
||
"wirkstoff": "Amoxicillin",
|
||
"indikation": "Aminopenicillin. Bakterielle Infektionen der Atemwege, HNO, Harnwege, Haut.",
|
||
"einnahme": "Unabhaengig von Mahlzeiten einnehmbar.",
|
||
"dosierung": "Erwachsene: 750-3000 mg/Tag, aufgeteilt in 2-3 Einzeldosen.",
|
||
"wichtig": "Penicillinallergie beachten. Exanthem besonders bei EBV-Infektion.",
|
||
"quelle": "Fachinformation Amoxicillin / Compendium.ch",
|
||
},
|
||
"doxycyclin": {
|
||
"wirkstoff": "Doxycyclin",
|
||
"indikation": "Tetracyclin-Antibiotikum. Akne, Rosacea, bakterielle Infektionen, Borreliose.",
|
||
"einnahme": "Mit reichlich Fluessigkeit und aufrecht einnehmen (Oesophagus-Ulkusrisiko). Milchprodukte und Antazida meiden.",
|
||
"dosierung": "200 mg am 1. Tag, dann 100 mg 1x taeglich.",
|
||
"wichtig": "Photosensibilisierung – Sonnenschutz! Nicht bei Kindern unter 8 Jahren und in der Schwangerschaft.",
|
||
"quelle": "Fachinformation Doxycyclin / Compendium.ch",
|
||
},
|
||
"secukinumab": {
|
||
"wirkstoff": "Secukinumab",
|
||
"indikation": "Monoklonaler Antikoerper (Anti-IL-17A). Mittelschwere bis schwere Plaque-Psoriasis, Psoriasis-Arthritis.",
|
||
"einnahme": "Subkutane Injektion. Fertigpen oder Fertigspritze. Injektionsstellen wechseln.",
|
||
"dosierung": "Psoriasis: 300 mg s.c. Woche 0, 1, 2, 3, 4, danach 300 mg alle 4 Wochen.",
|
||
"wichtig": "TB-Screening vor Therapiebeginn. Haeufigste NW: Infektionen obere Atemwege. Vorsicht bei CED.",
|
||
"quelle": "Fachinformation Cosentyx (Secukinumab) / Compendium.ch, EMA EPAR",
|
||
},
|
||
"adalimumab": {
|
||
"wirkstoff": "Adalimumab",
|
||
"indikation": "TNF-alpha-Inhibitor. Psoriasis, rheumatoide Arthritis, Morbus Crohn, Colitis ulcerosa, Hidradenitis suppurativa.",
|
||
"einnahme": "Subkutane Injektion. Injektionsstellen wechseln.",
|
||
"dosierung": "Psoriasis: 80 mg Initialdosis, dann 40 mg alle 2 Wochen ab Woche 1.",
|
||
"wichtig": "TB-Screening vor Therapiebeginn obligat. Erhoehtes Infektionsrisiko. Keine Lebendimpfstoffe.",
|
||
"quelle": "Fachinformation Humira (Adalimumab) / Compendium.ch, EMA EPAR",
|
||
},
|
||
"paracetamol": {
|
||
"wirkstoff": "Paracetamol",
|
||
"indikation": "Analgetikum / Antipyretikum. Leichte bis maessige Schmerzen, Fieber.",
|
||
"einnahme": "Unabhaengig von Mahlzeiten einnehmbar.",
|
||
"dosierung": "Erwachsene: 500-1000 mg alle 4-6 Stunden. Maximaldosis: 4000 mg/Tag (Lebergesunde).",
|
||
"wichtig": "Hepatotoxisch bei Ueberdosierung! Bei Leberinsuffizienz/Alkoholabusus Maximaldosis reduzieren.",
|
||
"quelle": "Fachinformation Paracetamol (Dafalgan) / Compendium.ch",
|
||
},
|
||
}
|
||
|
||
|
||
def get_medication_facts(name: str) -> dict | None:
|
||
"""Gibt kuratierte Medikamenten-Fakten zurueck oder None wenn nicht vorhanden."""
|
||
if not name:
|
||
return None
|
||
low = name.strip().lower()
|
||
if low in _MEDICATION_FACTS:
|
||
return _MEDICATION_FACTS[low]
|
||
for facts in _MEDICATION_FACTS.values():
|
||
if facts["wirkstoff"].lower() == low:
|
||
return facts
|
||
is_valid, canonical = validate_medication_name(name)
|
||
if is_valid and canonical:
|
||
cl = canonical.lower()
|
||
if cl in _MEDICATION_FACTS:
|
||
return _MEDICATION_FACTS[cl]
|
||
for facts in _MEDICATION_FACTS.values():
|
||
if facts["wirkstoff"].lower() == cl:
|
||
return facts
|
||
return None
|