Information!

Referenzen — Asklepios

Rewrite der klinischen Studiendatenbank ProDB

ProDB verwaltet und rechnet die klinischen Studien und Forschungsprojekte des Asklepios-Konzerns ab, von Prüfärzten und Teilprojekten über die Leistungskalkulation bis zu Rechnungen, Buchungen und Reporting. mindtwo hat das über rund zwei Jahrzehnte gewachsene System vollständig auf Laravel 11 und PHP 8.4 neu gebaut, ohne den laufenden Betrieb zu unterbrechen und ohne einen einzigen Datensatz zu verlieren.

Kunde
Asklepios
Branche
Gesundheit & Wissenschaft
Projektdauer
über ein Jahr
Leistung
Laravel-Rewrite
Projekt-Loop — Einblicke in die neue Anwendung Projekt-Loop — Einblicke in die neue Anwendung
Der Kunde

Einer der größten privaten Klinikbetreiber Deutschlands.

Asklepios ist einer der größten privaten Klinikbetreiber Deutschlands. Für einen Konzern dieser Größe ist die zentrale Verwaltung klinischer Studien ein sensibler Prozess: Sie berührt Patientenzahlen, Ethikvoten, EudraCT-Nummern, Vergütungsstufen und die Abrechnung gegenüber Sponsoren und Forschungsfonds.

Fehler oder Ausfälle in diesem System haben unmittelbar Controlling- und Compliance-Folgen. Genau deshalb war ein Rewrite auf ein wartbares Laravel-Fundament die Grundlage für die weitere Entwicklung.

26
fachliche Bounded
Contexts
0
Eloquent-Models statt
200 Skripten
0
Livewire-Komponenten
im Frontend
Ausgangslage

Ein 20 Jahre gewachsenes, geschäftskritisches System.

ProDB entstand im Kern 2004 und wurde über rund 20 Jahre von wechselnden Einzelentwicklern erweitert. Es hat den Studienbetrieb zwei Jahrzehnte lang zuverlässig getragen. Mit den heutigen Anforderungen an Sicherheit, Wartbarkeit und Weiterentwicklung stieß die gewachsene Architektur an klare Grenzen, ein typischer Fall für eine Legacy-Software-Modernisierung.

Herausforderungen
Sicherheit im Gesundheitskontext

Der Datenbankzugriff erfolgte per String-Konkatenation ohne Prepared Statements, Passwörter lagen als ungesalzenes MD5 vor, und das Auth-Cookie wirkte faktisch als dauerhaftes Token. Für Studien- und Abrechnungsdaten eines Klinikkonzerns war das der dringlichste Handlungspunkt.

Wartbarkeit und Technologie-Stand

Der Code war auf PHP 7.4 und MySQL 5.7 fixiert, beide End-of-Life. Datenbankzugriff, Business-Logik und HTML lagen in jeder der rund 200 Dateien vermischt vor. Ohne Tests, ohne CI und ohne Migrationen war jede Änderung mit hohem Risiko verbunden.

Wissenskonzentration und Betriebsrisiko

Zwanzig Jahre Historie, wechselnde Autoren und keine fachliche Dokumentation banden das Wissen über das System an einzelne Personen. Die Weiterentwicklung hing an wenigen Köpfen statt an einem austauschbaren Team.

Lösungsweg

Schritt für Schritt von der gewachsenen Codebasis zur wartbaren Plattform.

01 / 04
  1. Fachlogik erschließen und dokumentieren

    Aus rund 48.000 Zeilen ungetrenntem PHP und 274 Template-Fragmenten haben wir die fachlichen Regeln der Studienverwaltung und Abrechnung rekonstruiert und in 26 fachliche Bounded Contexts überführt.

  2. Sicheres Fundament in Laravel 11

    Der Rewrite auf Laravel 11 und PHP 8.4 bringt Prepared Statements, CSRF-Schutz und bcrypt out of the box. Ein Rechtesystem mit 4 Rollen, 105 Berechtigungen und 24 Policies ersetzt zwei einfache Flags.

  3. Zwei Altsysteme, eine Plattform

    Über Subdomain-Routing und mandantenspezifische Tabellen-Präfixe wurden die zuvor getrennten Systeme proresearch und science and research zu einer Multi-Mandanten-Plattform zusammengeführt, mit einem Codebestand und einer Wartung.

  4. Datenmigration ohne Verlust

    Der komplette 20-Jahre-Datenbestand beider Altsysteme wurde per automatisiertem Import übernommen. Composite Keys, historische Feldnamen und dokumentierte Inkonsistenzen wurden kontrolliert bereinigt statt ignoriert.

Domäne statt Skript-Sammlung
1 Legacy-Code lesen Fachregeln aus 48.000 LOC extrahieren
2 26 Bounded Contexts Fachdomänen sauber schneiden
3 Domain-Namespace eigener Namespace neben App
Nachvollziehbare Fachdomäne
Vom Flag zur Policy
1 bcrypt & Account-Locking statt ungesalzenem MD5
2 105 Berechtigungen granular statt zweier Flags
3 24 Policies statt eines Admin-Bits
Feingranulare Zugriffskontrolle
Ein Codebestand, zwei Mandanten
1 Subdomain-Routing je Mandant getrennt
2 Dynamische Präfixe mandantenspezifische Tabellen
3 Getrennte Datenhaltung fachlich und rechtlich sauber
Eine wartbare Plattform
Migration mit Respekt vor der Historie
1 Automatisierter Import beide Altsysteme
2 Composite Keys erhalten historische Feldnamen bewahrt
3 Inkonsistenzen bereinigt kontrolliert statt ignoriert
Vollständiger Datenbestand
Ergebnis & Wirkung

Ein zukunftssicheres Fundament statt konzentriertem Personenwissen.

Business Value

Die Weiterentwicklung ist nicht mehr an einzelne Personen gebunden. ProDB läuft auf einem Stack aus Laravel 11 und PHP 8.4, den jedes Laravel-Team übernehmen kann, abgesichert durch Tests, statische Analyse und Migrationen.

User-Nutzen

Study-Coordinatoren und Controlling arbeiten in einer reaktiven Oberfläche aus 154 Livewire-Komponenten. Reporting läuft über 26 Reporter mit Excel-Export, stündlich vorberechnete Temp-Tables halten Auswertungen auch bei großen Datenmengen schnell.

Sicherheit

SQL-Injection-Risiken, MD5-Passwörter und fehlender CSRF-Schutz sind beseitigt. Ein revisionssicheres Audit-Log protokolliert jede Attributänderung mandantenfähig und hält sie 365 Tage vor.

0 → 272
automatisierte Tests
Das Altsystem hatte keine Tests und keine CI. Der Rewrite ist durch rund 272 Pest-Tests und statische Analyse auf PHPStan Level 8 abgesichert, sodass Änderungen im laufenden Betrieb kalkulierbar bleiben.
MD5 → bcrypt
Passwort-Sicherheit
Ungesalzene MD5-Hashes und ein als Dauertoken wirkendes Auth-Cookie wichen bcrypt mit Account-Locking, erzwungenem Passwortwechsel und CSRF-Schutz.
2 → 1
Plattform statt zwei Installationen
proresearch und science and research liefen als zwei getrennte Systeme. Über Multi-Tenancy teilen sie sich heute einen Codebestand und eine Wartung bei getrennter Datenhaltung.

Sie wollen ein gewachsenes System modernisieren, ohne den Betrieb zu unterbrechen?

Kostenloses Erstgespräch

Eingesetzte Technologien

Das Fundament bildet Laravel 11 auf PHP 8.4, strukturiert nach Domain-Driven Design mit 26 Bounded Contexts, 48 Action-Klassen und 42 Eloquent-Models. Das Frontend baut auf Livewire 3, Alpine.js, Tailwind CSS und Vite. MySQL dient als Datenbank, Laravel Scout deckt die Volltextsuche über 23 Entitäten ab, Queue und Scheduler berechnen Reporting-Temp-Tables vor. Qualität sichern rund 272 Pest-Tests, PHPStan auf Level 8, Pint und ein GrumPHP-Pre-Commit-Gate, den Betrieb überwacht Sentry.

Unsere Leistungen

Was wir für Asklepios konzipiert, entwickelt und abgesichert haben, vom Rewrite der Fachanwendung bis zur verlustfreien Migration von 20 Jahren Studiendaten.

Vertiefung

Für alle, die tiefer einsteigen wollen.

Sicherheit

Von MD5-Hashes zu einem abgesicherten Auth-System

Das Legacy-System speicherte Passwörter als ungesalzenes MD5 und nutzte ein Auth-Cookie aus Hash und User-ID, das faktisch als dauerhaftes Token wirkte. Der Rewrite setzt auf bcrypt, Account-Locking, erzwungenen Passwortwechsel und CSRF-Schutz.

Der Datenbankzugriff im Altsystem lief durchgängig über String-Konkatenation ohne ein einziges Prepared Statement, und extract($_REQUEST) machte jeden Request-Parameter zu einer globalen Variable. Mit dem Wechsel auf Laravels Query Builder und Eloquent sind parametrisierte Queries der Standard, nicht die Ausnahme.

Hinzu kommen granulare Zugriffskontrolle über 4 Rollen, 105 Berechtigungen und 24 Policies sowie ein revisionssicheres Audit-Logging, das jede Attributänderung mandantenfähig protokolliert und 365 Tage vorhält. Für einen Gesundheitskonzern ist damit nachvollziehbar, wer wann welchen Datensatz geändert hat.

Multi-Tenancy

Zwei Altsysteme unter einem Codebestand

proresearch und science and research liefen zuvor als zwei getrennte Installationen. Über Subdomain-Routing und mandantenspezifische Tabellen-Präfixe teilen sie sich heute eine Codebasis bei getrennter Datenhaltung.

Die Konsolidierung reduziert den Wartungsaufwand auf ein System statt zwei parallel gepflegte Installationen. Neue Funktionen und Sicherheitsupdates entstehen einmal und stehen beiden Mandanten zur Verfügung.

Die Datentrennung bleibt über die Präfix-Logik gewahrt, sodass die fachliche und rechtliche Trennung der beiden Forschungsbereiche erhalten bleibt.

Reporting

Von 21 Hardcode-Skripten zu einer Reporting-Engine

Das Altsystem enthielt 21 nahezu identische, fest codierte Report-Skripte. An ihre Stelle tritt eine generische Reporting-Engine mit Interfaces, 26 Reportern und 26 Excel-Exporten.

Neue Auswertungen entstehen jetzt gegen ein gemeinsames Interface, statt ein bestehendes Skript zu kopieren und anzupassen. Damit die Auswertungen auch bei großen Datenmengen schnell bleiben, berechnet ein stündlicher Queue-Job Temp-Tables vor, statt bei jedem Aufruf live zu aggregieren.

Das Controlling erhält die gewohnten Excel-Exporte für Studienabrechnungen, Buchungslisten und Fördermittelanträge.

Erstgespräch

Ihr Projekt als nächste Erfolgsgeschichte

Sie wollen ein gewachsenes, geschäftskritisches System auf ein wartbares Fundament stellen, ohne den Betrieb zu unterbrechen? Lassen Sie uns in einem kostenfreien Erstgespräch darüber sprechen.

Kostenloses Erstgespräch
Die beiden mindtwo-Geschäftsführer Jonas Emde und Christian Arenz, freundlich lächelnd
Christian Arenz (Gesellschafter, Prokurist) & Jonas Emde (Geschäftsführer)