Lipoprotein a Rechner
Zitat von Burkhard Strauß am 25. April 2026, 13:58 Uhrauf der Seite Lp(a) Clinical Guidance wird ein Risikorechner für Lipoprotein a angeboten (auf englisch, aber sei wohl Stand der Dinge)
ich würde gerne irgendwie automatisiert die Werte übergeben (und drucke mir danach die Seite als pdf aus)
weiß jemand ob/wie man bei so seiten eingaben automatisiert durchführen könnte?
auf der Seite Lp(a) Clinical Guidance wird ein Risikorechner für Lipoprotein a angeboten (auf englisch, aber sei wohl Stand der Dinge)
ich würde gerne irgendwie automatisiert die Werte übergeben (und drucke mir danach die Seite als pdf aus)
weiß jemand ob/wie man bei so seiten eingaben automatisiert durchführen könnte?
Zitat von bro am 25. April 2026, 18:53 UhrInteressant, hab ich für mich berechnet. Bin ziemlich gesund, keine Medis, sportlich, Nichtraucher RR unter 112 Systolisch, Puls eher um 55, LDL unbekannt.
LDL 80
Ldl 100 tot.
Interessant, hab ich für mich berechnet. Bin ziemlich gesund, keine Medis, sportlich, Nichtraucher RR unter 112 Systolisch, Puls eher um 55, LDL unbekannt.
LDL 80
Ldl 100 tot.
Zitat von Peter Quick am 26. April 2026, 3:57 UhrMan könnte sich den Code der Seite anschauen und durch KI analysieren lassen. Dann könnte man eventuell die dahinterliegende Berechnung auf einem eigenen System selbst übernehmen. Die eigenen Messwerte lassen sich mit einem einfachen PHP Aufruf im Export bei einer externen Kategorie übergeben.. .
das sagt Claude dazu
Das ist ein reines Client-Side-JS-Formular (kein serverseitiges Formular-Submit, kein API-Endpoint). Das bedeutet: klassisches Server-to-Server-Posting funktioniert nicht — du musst Browser-Automation einsetzen.
Technische Situation
Die Seite hat:
• Reine JavaScript-basierte Berechnungslogik (kein <form action=“…“>)
• Keine öffentliche API
• Slider, Radio-Buttons, Inputs — alles DOM-seitig
→ Du kannst keine HTTP-POST-Anfrage von PHP direkt an die Seite schicken. Du brauchst einen Headless Browser, der die Werte einfüllt und die Seite rendert.Bester Ansatz: PHP übergibt Werte → Headless Browser füllt aus
ArchitekturMedical Office (GDT/XML)
↓
PHP Web App
↓ (URL-Parameter oder JSON)
Node.js/Python Microservice
(Playwright / Puppeteer)
↓
lpaclinicalguidance.com
(Headless Chromium, Screenshot/PDF)
↓
Ergebnis zurück ans PHPSchritt 1: PHP-Web-App als Übergabeschnittstelle
// z.B. https://deine-app.local/lpa_redirect.php
$params = [
‚age‘ => $_GET[‚age‘],
’sex‘ => $_GET[’sex‘], // male/female
‚chol_total‘ => $_GET[‚chol_total‘],
‚chol_ldl‘ => $_GET[‚chol_ldl‘],
‚chol_hdl‘ => $_GET[‚chol_hdl‘],
’sbp‘ => $_GET[’sbp‘],
‚lpa‘ => $_GET[‚lpa‘],
// …weitere Felder
];// Aufruf des Node.js-Microservice
$response = file_get_contents(
‚http://localhost:3000/fill?‘ . http_build_query($params)
);
echo $response; // z.B. Screenshot-URL oder PDFSchritt 2: Node.js + Playwright als Microservice
// server.js
const express = require(‚express‘);
const { chromium } = require(‚playwright‘);
const app = express();app.get(‚/fill‘, async (req, res) => {
const { age, sex, chol_total, chol_ldl, chol_hdl, sbp, lpa } = req.query;const browser = await chromium.launch();
const page = await browser.newPage();
await page.goto(‚https://www.lpaclinicalguidance.com/‘);
await page.waitForLoadState(’networkidle‘);// Einheiten setzen (mmol/L, cm, kg)
await page.click(‚input[value=“mmol/L“]‘);// Sex
await page.click(`input[value=“${sex}“]`); // „Male“ oder „Female“// Numerische Felder
await page.fill(‚input[name=“age“]‘, age); // exakte Selektoren prüfen!
await page.fill(‚input[name=“chol“]‘, chol_total);
// … weitere Felder// Lp(a) Slider (schwieriger — per JS-Injection)
await page.evaluate((val) => {
const slider = document.querySelector(‚#lpa-slider‘); // ID anpassen
slider.value = val;
slider.dispatchEvent(new Event(‚input‘));
}, lpa);// Screenshot oder PDF
const screenshot = await page.screenshot({ fullPage: true });
await browser.close();res.set(‚Content-Type‘, ‚image/png‘);
res.send(screenshot);
});app.listen(3000);
Alternative: Nur Anzeige mit vorausgefüllter URL via iframe
Falls du die Seite nur anzeigen willst (kein Scraping), könntest du in deiner PHP-App ein iframe öffnen und per postMessage oder URL-Hash die Werte übergeben — aber das setzt voraus, dass die Seite das unterstützt (tut sie aktuell nicht).Empfehlung für deine Praxis-Infrastruktur
Da du schon Playwright (Amazon-Automatisierung) und n8n kennst:
|Option |Aufwand|Sinnvoll |
|————————————-|——-|—————————|
|Playwright-Microservice (Node/Python)|mittel |✅ Beste Lösung |
|n8n + Puppeteer-Node |gering |✅ Wenn du n8n nutzen willst|
|Python + Playwright direkt |gering |✅ Alternativ |Soll ich dir den vollständigen Playwright-Code ausarbeiten, inkl. Inspektion der echten DOM-Selektoren der Seite? Ich kann auch einen Python-Ansatz (der dir wahrscheinlich vertrauter ist) aufzeigen.
Man könnte sich den Code der Seite anschauen und durch KI analysieren lassen. Dann könnte man eventuell die dahinterliegende Berechnung auf einem eigenen System selbst übernehmen. Die eigenen Messwerte lassen sich mit einem einfachen PHP Aufruf im Export bei einer externen Kategorie übergeben.. .
das sagt Claude dazu
Das ist ein reines Client-Side-JS-Formular (kein serverseitiges Formular-Submit, kein API-Endpoint). Das bedeutet: klassisches Server-to-Server-Posting funktioniert nicht — du musst Browser-Automation einsetzen.
Technische Situation
Die Seite hat:
• Reine JavaScript-basierte Berechnungslogik (kein <form action=“…“>)
• Keine öffentliche API
• Slider, Radio-Buttons, Inputs — alles DOM-seitig
→ Du kannst keine HTTP-POST-Anfrage von PHP direkt an die Seite schicken. Du brauchst einen Headless Browser, der die Werte einfüllt und die Seite rendert.
Bester Ansatz: PHP übergibt Werte → Headless Browser füllt aus
Architektur
Medical Office (GDT/XML)
↓
PHP Web App
↓ (URL-Parameter oder JSON)
Node.js/Python Microservice
(Playwright / Puppeteer)
↓
lpaclinicalguidance.com
(Headless Chromium, Screenshot/PDF)
↓
Ergebnis zurück ans PHP
Schritt 1: PHP-Web-App als Übergabeschnittstelle
// z.B. https://deine-app.local/lpa_redirect.php
$params = [
‚age‘ => $_GET[‚age‘],
’sex‘ => $_GET[’sex‘], // male/female
‚chol_total‘ => $_GET[‚chol_total‘],
‚chol_ldl‘ => $_GET[‚chol_ldl‘],
‚chol_hdl‘ => $_GET[‚chol_hdl‘],
’sbp‘ => $_GET[’sbp‘],
‚lpa‘ => $_GET[‚lpa‘],
// …weitere Felder
];
// Aufruf des Node.js-Microservice
$response = file_get_contents(
‚http://localhost:3000/fill?‘ . http_build_query($params)
);
echo $response; // z.B. Screenshot-URL oder PDF
Schritt 2: Node.js + Playwright als Microservice
// server.js
const express = require(‚express‘);
const { chromium } = require(‚playwright‘);
const app = express();
app.get(‚/fill‘, async (req, res) => {
const { age, sex, chol_total, chol_ldl, chol_hdl, sbp, lpa } = req.query;
const browser = await chromium.launch();
const page = await browser.newPage();
await page.goto(‚https://www.lpaclinicalguidance.com/‘);
await page.waitForLoadState(’networkidle‘);
// Einheiten setzen (mmol/L, cm, kg)
await page.click(‚input[value=“mmol/L“]‘);
// Sex
await page.click(`input[value=“${sex}“]`); // „Male“ oder „Female“
// Numerische Felder
await page.fill(‚input[name=“age“]‘, age); // exakte Selektoren prüfen!
await page.fill(‚input[name=“chol“]‘, chol_total);
// … weitere Felder
// Lp(a) Slider (schwieriger — per JS-Injection)
await page.evaluate((val) => {
const slider = document.querySelector(‚#lpa-slider‘); // ID anpassen
slider.value = val;
slider.dispatchEvent(new Event(‚input‘));
}, lpa);
// Screenshot oder PDF
const screenshot = await page.screenshot({ fullPage: true });
await browser.close();
res.set(‚Content-Type‘, ‚image/png‘);
res.send(screenshot);
});
app.listen(3000);
Alternative: Nur Anzeige mit vorausgefüllter URL via iframe
Falls du die Seite nur anzeigen willst (kein Scraping), könntest du in deiner PHP-App ein iframe öffnen und per postMessage oder URL-Hash die Werte übergeben — aber das setzt voraus, dass die Seite das unterstützt (tut sie aktuell nicht).
Empfehlung für deine Praxis-Infrastruktur
Da du schon Playwright (Amazon-Automatisierung) und n8n kennst:
|Option |Aufwand|Sinnvoll |
|————————————-|——-|—————————|
|Playwright-Microservice (Node/Python)|mittel |✅ Beste Lösung |
|n8n + Puppeteer-Node |gering |✅ Wenn du n8n nutzen willst|
|Python + Playwright direkt |gering |✅ Alternativ |
Soll ich dir den vollständigen Playwright-Code ausarbeiten, inkl. Inspektion der echten DOM-Selektoren der Seite? Ich kann auch einen Python-Ansatz (der dir wahrscheinlich vertrauter ist) aufzeigen.
Zitat von Burkhard Strauß am 26. April 2026, 9:10 UhrDanke! das klingt komplexer als erwartet 😅
dann vllt in Medical office? chat gpt empfiehlt sich anzunähern, was auch schon eigentlich ausreichen müsste, also zum arriba-score wird als multiplikator das hier näherungsweise vorgeschlagen:
Lp(a) Interpretation <30 mg/dl kein Effekt 30–50 leicht ↑ 50–180 moderat ↑ (RR ~1.2–1.5) >180 hoch (RR ~2) ich denke mal drauf rum…
LPa mache ich übrigens, wenn Personen deutlich höhere Cholesterinwerte haben, als die Altersgenossen, oder auch gar nicht so aussehen/Schlank sind (meist ges. chol 300 mg/dl)
es sei eher von Kardiologischen Fachgesellschaften empfohlen, dies vereinzelt zu prüfen, nicht von der Degam (laut Deximed:
„Die DEGAM rät aufgrund mangelnder Evidenz für einen Nutzen von einer Bestimmung von Lp(a) zur Einschätzung des kardiovaskulären Risikos ab. Ich persönlich halte die DEGAM hier einmal mehr für die Stimme der Vernunft in einer interessengeleiteten Diskussion.“ – Chefredakteurin.
Danke! das klingt komplexer als erwartet 😅
dann vllt in Medical office? chat gpt empfiehlt sich anzunähern, was auch schon eigentlich ausreichen müsste, also zum arriba-score wird als multiplikator das hier näherungsweise vorgeschlagen:
| Lp(a) | Interpretation |
|---|---|
| <30 mg/dl | kein Effekt |
| 30–50 | leicht ↑ |
| 50–180 | moderat ↑ (RR ~1.2–1.5) |
| >180 | hoch (RR ~2) |
ich denke mal drauf rum…
LPa mache ich übrigens, wenn Personen deutlich höhere Cholesterinwerte haben, als die Altersgenossen, oder auch gar nicht so aussehen/Schlank sind (meist ges. chol 300 mg/dl)
es sei eher von Kardiologischen Fachgesellschaften empfohlen, dies vereinzelt zu prüfen, nicht von der Degam (laut Deximed:
„Die DEGAM rät aufgrund mangelnder Evidenz für einen Nutzen von einer Bestimmung von Lp(a) zur Einschätzung des kardiovaskulären Risikos ab. Ich persönlich halte die DEGAM hier einmal mehr für die Stimme der Vernunft in einer interessengeleiteten Diskussion.“ – Chefredakteurin.
Zitat von Peter Quick am 26. April 2026, 14:47 UhrIch würde mal schätzen, mit den Erfahrungen, die ich jetzt gesammelt habe, ist das in 2-3 Tagen entwickelt. Was Sie bräuchten wäre System, auf dem Sie Docker Container laufen lassen können, also z.B. ein kleines NAS…
Die Frage wäre eher, wie dringend und wie häufig braucht man es. Wenn ich es täglich brauchen würde, würde ich versuchen, den Code auf der Seite zu entschlüsseln und mir eine solche Seite selber zu bauen. Claude oder auch Codex können extrem gut html und Java. Wenn die Berechnungsart bekannt ist, setzt Ihnen das Claude an einem Abend auf… mit PDF Export… -)))
Ich würde mal schätzen, mit den Erfahrungen, die ich jetzt gesammelt habe, ist das in 2-3 Tagen entwickelt. Was Sie bräuchten wäre System, auf dem Sie Docker Container laufen lassen können, also z.B. ein kleines NAS…
Die Frage wäre eher, wie dringend und wie häufig braucht man es. Wenn ich es täglich brauchen würde, würde ich versuchen, den Code auf der Seite zu entschlüsseln und mir eine solche Seite selber zu bauen. Claude oder auch Codex können extrem gut html und Java. Wenn die Berechnungsart bekannt ist, setzt Ihnen das Claude an einem Abend auf… mit PDF Export… -)))
Zitat von Burkhard Strauß am 26. April 2026, 14:52 UhrDie Frage ist zurecht, selten. Vllt einmal im halben Jahr. Da geht das bisschen abschreiben in Ordnung. Ich dachte das hätte mehr Tragweite. Arriba ist bei meiner damaligen Anfrage nicht weiter darauf eingegangen. Wird vermutlich entsprechend DEGAM nicht so hoch gehangen 🙂
Im Endeffekt direkt es dazu das Statin früher zu verordnen und auf Warnhinweise gezielter aufzuklären
(dazu kann man also den Docker nutzen :D)
Die Frage ist zurecht, selten. Vllt einmal im halben Jahr. Da geht das bisschen abschreiben in Ordnung. Ich dachte das hätte mehr Tragweite. Arriba ist bei meiner damaligen Anfrage nicht weiter darauf eingegangen. Wird vermutlich entsprechend DEGAM nicht so hoch gehangen 🙂
Im Endeffekt direkt es dazu das Statin früher zu verordnen und auf Warnhinweise gezielter aufzuklären
(dazu kann man also den Docker nutzen :D)