feat: stabilization + recipe edit/create UI

This commit is contained in:
clawd
2026-02-18 09:55:39 +00:00
commit ee452efa6a
75 changed files with 15160 additions and 0 deletions

242
gehirn_pdf.py Normal file
View File

@@ -0,0 +1,242 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from fpdf import FPDF
class GehirnPDF(FPDF):
def header(self):
if self.page_no() == 1:
self.set_font("DejaVu", "B", 20)
self.set_text_color(30, 80, 140)
self.cell(0, 12, "Gehirnanatomie", new_x="LMARGIN", new_y="NEXT", align="C")
self.set_font("DejaVu", "", 11)
self.set_text_color(80, 80, 80)
self.cell(0, 7, "Lernzusammenfassung für Ergotherapie", new_x="LMARGIN", new_y="NEXT", align="C")
self.ln(2)
self.set_draw_color(30, 80, 140)
self.set_line_width(0.8)
self.line(10, self.get_y(), 200, self.get_y())
self.ln(6)
def footer(self):
self.set_y(-15)
self.set_font("DejaVu", "", 8)
self.set_text_color(128)
self.cell(0, 10, f"Seite {self.page_no()}/{{nb}}", align="C")
def section_title(self, title):
self.ln(4)
self.set_fill_color(30, 80, 140)
self.set_text_color(255)
self.set_font("DejaVu", "B", 12)
self.set_x(self.l_margin)
self.cell(0, 9, f" {title}", new_x="LMARGIN", new_y="NEXT", fill=True)
self.set_text_color(0)
self.ln(3)
def sub_title(self, title):
self.set_x(self.l_margin)
self.set_font("DejaVu", "B", 10)
self.set_text_color(30, 80, 140)
self.cell(0, 7, title, new_x="LMARGIN", new_y="NEXT")
self.set_text_color(0)
def body_text(self, text):
self.set_x(self.l_margin)
self.set_font("DejaVu", "", 9)
self.multi_cell(0, 5, text)
self.ln(1)
def bullet(self, text):
self.set_x(self.l_margin)
self.set_font("DejaVu", "", 9)
indent = 5
self.cell(indent, 5, "\u2022 ")
w = self.w - self.l_margin - indent - self.r_margin
self.multi_cell(w, 5, text, markdown=True)
def info_box(self, text):
self.set_x(self.l_margin)
self.set_fill_color(240, 248, 255)
self.set_draw_color(30, 80, 140)
self.set_font("DejaVu", "", 8)
self.multi_cell(0, 4.5, "\u27A4 " + text, border=1, fill=True)
self.ln(2)
pdf = GehirnPDF()
pdf.alias_nb_pages()
pdf.add_font("DejaVu", "", "/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf")
pdf.add_font("DejaVu", "B", "/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf")
pdf.add_font("DejaVu", "I", "/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf")
pdf.add_font("DejaVu", "BI", "/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf")
pdf.set_auto_page_break(auto=True, margin=20)
pdf.add_page()
# ============ 1. HIRNLAPPEN ============
pdf.section_title("1. Hirnlappen (Lobi cerebri) \u2013 Großhirnrinde")
pdf.sub_title("Frontallappen (Lobus frontalis)")
pdf.bullet("**Lage:** Vorderer Teil des Großhirns, vor dem Sulcus centralis.")
pdf.bullet("**Funktionen:** Willkürmotorik (Gyrus praecentralis), Handlungsplanung, Impulskontrolle, Persönlichkeit, Arbeitsgedächtnis.")
pdf.bullet("**Broca-Areal (Area 44/45):** Motorisches Sprachzentrum. Schädigung → Broca-Aphasie (gestörte Sprachproduktion, Verständnis erhalten).")
pdf.info_box("Ergotherapie: Frontalhirnschäden (z.B. nach SHT) führen zu Antriebsstörungen, Planungsproblemen und Persönlichkeitsveränderungen \u2013 Kernthemen der neuropsychologischen Ergotherapie!")
pdf.sub_title("Parietallappen (Lobus parietalis)")
pdf.bullet("**Lage:** Hinter dem Sulcus centralis, oberhalb des Temporallappens.")
pdf.bullet("**Funktionen:** Somatosensorik (Gyrus postcentralis), Körperschema, räumliche Orientierung, Rechnen.")
pdf.bullet("**Neglect:** Schädigung rechts-parietal → Vernachlässigung der linken Körper-/Raumhälfte.")
pdf.info_box("Ergotherapie: Neglect-Training und Sensibilitätstraining sind klassische ergotherapeutische Interventionen.")
pdf.sub_title("Temporallappen (Lobus temporalis)")
pdf.bullet("**Lage:** Seitlich, unterhalb der Sylvischen Furche.")
pdf.bullet("**Funktionen:** Auditorischer Kortex (Hören), Sprachverständnis, Gedächtnisbildung.")
pdf.bullet("**Wernicke-Areal (Area 22):** Sensorisches Sprachzentrum. Schädigung → Wernicke-Aphasie (flüssige aber inhaltsleere Sprache).")
pdf.sub_title("Okzipitallappen (Lobus occipitalis)")
pdf.bullet("**Lage:** Hinterer Pol des Großhirns.")
pdf.bullet("**Funktionen:** Primärer visueller Kortex (V1). Schädigung → kortikale Blindheit oder Gesichtsfeldausfälle.")
pdf.sub_title("Insula (Inselrinde)")
pdf.bullet("**Lage:** Verborgen in der Tiefe der Sylvischen Furche.")
pdf.bullet("**Funktionen:** Geschmack, viszerale Wahrnehmung, Empathie, Schmerzverarbeitung.")
# ============ 2. HIRNSTAMM & KLEINHIRN ============
pdf.section_title("2. Hirnstamm (Truncus cerebri) & Kleinhirn (Cerebellum)")
pdf.body_text("Der Hirnstamm verbindet Großhirn und Rückenmark. Enthält lebenswichtige Zentren und Hirnnervenkerne (III\u2013XII).")
pdf.sub_title("Mittelhirn (Mesencephalon)")
pdf.bullet("Augenbewegungen (Kerne III, IV), Pupillenreflex, Formatio reticularis (Wachheit), Substantia nigra (Dopamin → Bewegung).")
pdf.sub_title("Brücke (Pons)")
pdf.bullet("Verbindung Großhirn \u2194 Kleinhirn, Hirnnervenkerne (V, VI, VII, VIII), Atemregulation.")
pdf.sub_title("Verlängertes Mark (Medulla oblongata)")
pdf.bullet("Kreislaufzentrum, Atemzentrum, Schluck-/Hustenreflex, **Pyramidenkreuzung** (Motorik kreuzt die Seite!). Kerne IX\u2013XII.")
pdf.info_box("Ergotherapie: Hirnstammläsionen → komplexe Schluckstörungen (Dysphagie), Atemprobleme, Koordinationsstörungen.")
pdf.sub_title("Kleinhirn (Cerebellum)")
pdf.bullet("**Aufbau:** Zwei Hemisphären + Vermis (Wurm). Kleinhirnrinde mit Purkinje-Zellen.")
pdf.bullet("**Funktionen:** Bewegungskoordination, Gleichgewicht, Feinmotorik, motorisches Lernen, Muskeltonus.")
pdf.bullet("**Schädigung:** Ataxie (unsicherer Gang), Intentionstremor, Dysarthrie, Dysdiadochokinese.")
pdf.info_box("Ergotherapie: Koordinations-, Gleichgewichts- und Feinmotoriktraining bei zerebellären Störungen.")
# ============ 3. LIMBISCHES SYSTEM ============
pdf.section_title("3. Limbisches System")
pdf.body_text("Funktionelle Einheit für Emotionen, Gedächtnis, Motivation und vegetative Steuerung.")
pdf.sub_title("Amygdala (Mandelkern)")
pdf.bullet("Emotionale Bewertung (v.a. Angst/Furcht), emotionales Lernen, Kampf-oder-Flucht-Reaktion.")
pdf.sub_title("Hippocampus")
pdf.bullet("Überführung von Kurzzeit- in Langzeitgedächtnis (Konsolidierung), räumliche Orientierung.")
pdf.bullet("**Klinik:** Schädigung → anterograde Amnesie. Atrophie bei Alzheimer-Demenz.")
pdf.sub_title("Thalamus")
pdf.bullet("**\u201ETor zum Bewusstsein\u201C** \u2013 Filterstation: Leitet sensorische Infos (außer Geruch!) an den Kortex weiter.")
pdf.sub_title("Hypothalamus")
pdf.bullet("Steuerung des vegetativen NS (Sympathikus/Parasympathikus), Hormonregulation über Hypophyse, Temperatur, Hunger, Durst, Schlaf-Wach-Rhythmus.")
pdf.sub_title("Gyrus cinguli")
pdf.bullet("Motivation, Antrieb, Schmerzverarbeitung, emotionale Bewertung, Fehlererkennung.")
pdf.info_box("Ergotherapie: Limbische Störungen beeinflussen Motivation, Lernfähigkeit und emotionale Regulation \u2013 zentral für therapeutische Beziehung und Therapieplanung.")
# ============ 4. HIRNNERVEN ============
pdf.section_title("4. Die 12 Hirnnerven (Nervi craniales)")
pdf.set_font("DejaVu", "B", 8)
pdf.set_fill_color(30, 80, 140)
pdf.set_text_color(255)
col_w = [10, 42, 14, 104]
headers = ["Nr.", "Name", "Typ", "Funktion"]
pdf.set_x(pdf.l_margin)
for i, h in enumerate(headers):
pdf.cell(col_w[i], 6, h, border=1, fill=True, align="C")
pdf.ln()
pdf.set_text_color(0)
nerven = [
("I", "N. olfactorius", "S", "Riechen"),
("II", "N. opticus", "S", "Sehen"),
("III", "N. oculomotorius", "M", "Augenbewegung, Pupillenverengung, Lidhebung"),
("IV", "N. trochlearis", "M", "Augenbewegung (M. obliquus superior)"),
("V", "N. trigeminus", "S+M", "Gesichtssensibilität, Kaumuskulatur"),
("VI", "N. abducens", "M", "Augenbewegung (M. rectus lateralis)"),
("VII", "N. facialis", "S+M", "Mimik, Geschmack (vord. 2/3 Zunge), Tränen-/Speicheldrüsen"),
("VIII", "N. vestibulocochlearis", "S", "Hören und Gleichgewicht"),
("IX", "N. glossopharyngeus", "S+M", "Geschmack (hint. 1/3 Zunge), Schlucken"),
("X", "N. vagus", "S+M", "Parasympathikus! Herz, Lunge, Verdauung, Kehlkopf"),
("XI", "N. accessorius", "M", "M. trapezius, M. sternocleidomastoideus"),
("XII", "N. hypoglossus", "M", "Zungenmuskulatur"),
]
pdf.set_font("DejaVu", "", 8)
for i, (nr, name, typ, funk) in enumerate(nerven):
fill = i % 2 == 0
if fill:
pdf.set_fill_color(240, 248, 255)
else:
pdf.set_fill_color(255, 255, 255)
pdf.set_x(pdf.l_margin)
pdf.cell(col_w[0], 6, nr, border=1, fill=fill, align="C")
pdf.cell(col_w[1], 6, name, border=1, fill=fill)
pdf.cell(col_w[2], 6, typ, border=1, fill=fill, align="C")
pdf.cell(col_w[3], 6, funk, border=1, fill=fill)
pdf.ln()
pdf.ln(2)
pdf.set_x(pdf.l_margin)
pdf.set_font("DejaVu", "", 8)
pdf.cell(0, 5, "S = sensorisch | M = motorisch | S+M = gemischt", new_x="LMARGIN", new_y="NEXT")
pdf.ln(2)
pdf.sub_title("Merkspruch (Reihenfolge):")
pdf.set_x(pdf.l_margin)
pdf.set_font("DejaVu", "B", 9)
pdf.set_text_color(30, 80, 140)
pdf.multi_cell(0, 5, "\u201EOnkel Otto okuliert, trifft Tina ab, für vier gute Vögel, alle Hühner.\u201C")
pdf.set_text_color(0)
pdf.set_x(pdf.l_margin)
pdf.set_font("DejaVu", "", 7.5)
pdf.multi_cell(0, 4, "(Olfactorius, Opticus, Oculomotorius, Trochlearis, Trigeminus, Abducens, Facialis, Vestibulocochlearis, Glossopharyngeus, Vagus, Accessorius, Hypoglossus)")
pdf.ln(2)
pdf.sub_title("Merkspruch (Faserqualität S/M):")
pdf.set_x(pdf.l_margin)
pdf.set_font("DejaVu", "B", 9)
pdf.set_text_color(30, 80, 140)
pdf.multi_cell(0, 5, "\u201ESome Say Marry Money, But My Brother Says Big Brains Matter Most.\u201C")
pdf.set_text_color(0)
pdf.set_x(pdf.l_margin)
pdf.set_font("DejaVu", "", 7.5)
pdf.multi_cell(0, 4, "(S, S, M, M, B=both, M, B, S, B, B, M, M)")
pdf.ln(2)
# ============ 5. VENTRIKELSYSTEM ============
pdf.section_title("5. Ventrikelsystem & Liquor cerebrospinalis")
pdf.sub_title("Die 4 Ventrikel")
pdf.bullet("**1. und 2. Ventrikel (Seitenventrikel):** Je einer pro Hemisphäre, C-förmig. Verbindung zum 3. Ventrikel über Foramen interventriculare (Monroi).")
pdf.bullet("**3. Ventrikel:** Im Zwischenhirn (Diencephalon), zwischen den Thalami. Verbindung zum 4. Ventrikel über Aquaeductus cerebri (Sylvii).")
pdf.bullet("**4. Ventrikel:** Zwischen Kleinhirn und Hirnstamm. Öffnet sich in den Subarachnoidalraum (Foramina Luschkae und Magendii).")
pdf.sub_title("Liquor cerebrospinalis")
pdf.bullet("**Bildung:** Plexus choroideus (in allen 4 Ventrikeln), ca. 500 ml/Tag, Gesamtvolumen ca. 150 ml.")
pdf.bullet("**Funktionen:** Mechanischer Schutz (Polsterung), Nährstofftransport, Abtransport von Stoffwechselprodukten, Hirndruck.")
pdf.bullet("**Zirkulation:** Seitenventrikel → 3. Ventrikel → Aquädukt → 4. Ventrikel → Subarachnoidalraum → Resorption über Arachnoidalzotten in venöse Sinus.")
pdf.bullet("**Klinik:** Liquorzirkulationsstörung → Hydrozephalus (\u201EWasserkopf\u201C) mit erhöhtem Hirndruck.")
pdf.info_box("Ergotherapie: Hydrozephalus (z.B. bei Kindern mit Shunt) \u2013 Vorsicht bei Lagerung und Aktivitäten. Liquorpunktion liefert diagnostische Hinweise bei MS, Meningitis u.a.")
# Lerntipp
pdf.ln(3)
pdf.set_x(pdf.l_margin)
pdf.set_fill_color(255, 245, 220)
pdf.set_draw_color(200, 150, 50)
pdf.set_font("DejaVu", "B", 9)
pdf.set_text_color(120, 80, 0)
pdf.multi_cell(0, 5.5, "Lerntipp: Zeichne die Strukturen selbst! Beschrifte ein leeres Gehirnschema und wiederhole die Funktionen laut. Nutze die Merksprüche für die Hirnnerven \u2013 sie sind Prüfungsklassiker!", border=1, fill=True, align="C")
OUT = "/home/clawd/.openclaw/workspace/luna-recipes/Gehirnanatomie-Zusammenfassung.pdf"
pdf.output(OUT)
print(f"PDF erstellt: {OUT}")