MEDICAL OFFICE Forum

Forum-Navigation
ForumAktivität

Lipoprotein a Rechner

Forum-Breadcrumbs – Du bist hier:ForumÖffentlich: FragenLipoprotein a Rechner
Du musst dich anmelden um Beiträge und Themen zu erstellen.

Lipoprotein a Rechner

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?

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.

 

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.​​​​​​​​​​​​​​​​

 

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.

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… -)))

Burkhard Strauß hat auf diesen Beitrag reagiert.
Burkhard Strauß

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)