Fullstack Projekt

Kundenportal für medizinisches Labor

Kundenwunsch

Es soll ein digitales Kundenportal entwickelt werden, in dem Laborkundinnen und -kunden möglichst viele Geschäftsprozesse mit dem Labor digital abwickeln können. Dazu gehören Laboraufträge, Befundabfragen, Kurieraufträge, Materialbestellungen oder die Verwaltung der internen Qualitätskontrollen. Durch die Digitalisierung der Geschäftsprozesse soll ein Marktvorteil durch effizientere Prozesse und eine höhere Kundenakzeptanz erreicht werden. Obwohl bereits ein Webportal für die Auftragserfassung und Befundrückübermittlung existiert, wird dieses nur selten genutzt. In vielen Arztpraxen werden Laboraufträge nach wie vor analog über Auftragsformulare eingereicht. Es wird vermutet, dass die Anwendung nicht mehr den Kundenerwartungen an eine moderne und einfach zu bedienende Webanwendung entspricht. Aufgrund der proprietären Lizenz der bisherigen Lösung ist eine eigenständige Weiterentwicklung nicht möglich. Die neu zu entwickelnde Anwendung muss einfach zu bedienen sein. Darüber hinaus muss die Applikation mit zahlreichen Fachsystemen, wie z.B. dem Labor- und Patienteninformationssystem, den Fremdlaboren oder dem CRM interagieren können.

Die Herausforderungen

Das Labor besteht aus mehreren Abteilungen wie z.B. Klinische Chemie, Mikrobiologie oder Pathologie. Diese Abteilungen haben individuelle Anforderungen an Materialien, Analysen, Bestellprozesse und laborinterne Abläufe. Der bisherige Bestellprozess weist Medienbrüche auf und erfordert manuelle Eingriffe. Diese manuellen Eingriffe sind fehleranfällig und zeitintensiv. Mit dem neuen Kundenportal sollen Medienbrüche reduziert und die Kundinnen und Kunden dazu animiert werden, Geschäftsprozesse möglichst digital abzuwickeln. Zudem sollen Laboraufträge über Laborgrenzen hinweg in einem einheitlichen Prozess bestellt werden können.

Die bestehende Laborinfrastruktur ist komplex. Sie besteht aus einer Vielzahl von Systemkomponenten und Schnittstellen. Auch externe Systeme wie Patienteninformationssysteme und externe Laboratorien sind angebunden. Im Laufe der Zeit wurden viele spezifische Prozesse abgebildet. Diese Prozesse müssen analysiert und wo möglich vereinheitlicht werden. Die eingesetzten Technologien und Schnittstellen sind zum Teil veraltet. Das Fehlen moderner und offener Schnittstellen erschwert die Anbindung des neuen Kundenportals.

Aufgrund proprietärer Lizenzen ist eine Weiterentwicklung der vorhandenen Komponenten nicht möglich. Die Abhängigkeit von den bestehenden Systemen und den Systemherstellern, die wenig Interesse an einer Zusammenarbeit mit anderen Anbietern haben, stellt ein erhebliches Projektrisiko dar.

Aufgrund der sensiblen Patientendaten spielt der Datenschutz eine wichtige Rolle. Zum einen muss das Zusammenspiel aller Systemkomponenten sowie die Speicherung der Daten sicher sein. Die Daten müssen vor unberechtigtem Zugriff, aber auch vor Verlust geschützt werden. Insbesondere bei einigen anzuschließenden Patienteninformationssystemen wurden Sicherheitsrisiken identifiziert. Damit diese Systeme dennoch sicher an die neue Webanwendung angebunden werden können, müssen spezifische Sicherheitsmechanismen entwickelt werden.

Vorgehensweise

Die Anforderungen des Kunden wurden analysiert und in Form von User Stories festgehalten. Die Stories wurden gemeinsam mit dem Kunden priorisiert. Die Analyse der Anforderungen erforderte die Zusammenarbeit mit zahlreichen Stakeholdern. Die bestehenden Systemkomponenten und die IT-Infrastruktur mit ihren Prozessen wurden analysiert und das Zusammenspiel der neuen Webapplikation mit den bestehenden Systemen skizziert. Ein wesentlicher Teil der Arbeit bestand darin, die zahlreichen Prozesse zu analysieren und zu verstehen. Darüber hinaus mussten die Stammdaten aufbereitet werden, um sie für die Applikation verfügbar zu machen und die gewünschte Logik im Bestellprozess abbilden zu können. Ein Fokus lag auf der User Experience, um den KundInnen trotz der hohen technischen Komplexität einen möglichst selbsterklärenden Zugang zur Applikation zu ermöglichen.

Der Entwicklungsprozess wurde agil nach Scrum strukturiert und die Entwicklungsarbeit in Sprints organisiert. Dabei entschied der Product Owner, welche User Story in einem Sprint umgesetzt werden sollte. Aufgrund der geschäftskritischen Prozesse, die mit der Webapplikation abgedeckt werden sollten, wurde eine hohe Testabdeckung angestrebt. Für jede neue Funktionalität wurden Unit-, Integrations- und bei Bedarf E2E-Tests geschrieben. Jede User Story wurde einem Peer Review unterzogen und anschließend auf dem Testsystem installiert (Continuous Deployment). Am Ende jedes Sprints wurden die umgesetzten User Stories zu einem Release zusammengefasst, auf einem PRE-PROD System installiert und dem Kunden zur Abnahme zur Verfügung gestellt. Nach der Abnahme durch den Kunden wurden die Stories produktiv installiert.

Die Lösung

Entstanden ist ein modernes Kundenportal, in dem Laboraufträge effizient erfasst und Befunde in Echtzeit dargestellt werden können. Das Portal wurde so konzipiert, dass es um weitere Module wie z.B. Kurieranforderung, Qualitätsmanagement oder Materialbestellung erweitert werden kann.

Über das Kundenportal können Laboranforderungen in einem einheitlichen Prozess laborübergreifend bestellt werden. Die Analysen werden einerseits über das Suchfeld oder aus den vordefinierten Favoriten hinzugefügt. Je nach Analyse werden weitere Informationen wie z.B. der Ort oder der Zeitpunkt der Probenentnahme abgefragt. Wurden alle notwendigen Angaben erfasst, werden dem Benutzer alle notwendigen Informationen zur Probenahme angezeigt, wie z.B. das Material, das Probenahmesystem oder weitere Angaben zur Aufbereitung oder Lagerung.

Die Analyseergebnisse werden in Echtzeit an das Portal übermittelt, aufbereitet und dargestellt. Die Ergebnisse können über eine Zeitachse miteinander verglichen werden (sog. Kumulativbefunde). Werte, die über oder unter einem Referenzwert liegen, werden grafisch hervorgehoben. Liegt ein Analysewert im pathologischen Bereich, wird die Praxis bzw. der Nutzer darüber informiert.

Im Kundenportal werden auch die Arztpraxen, die Mitarbeiterzugänge und die Praxiseinstellungen verwaltet. Zu den Praxiseinstellungen gehören unter anderem die Favoriten, die Serothek oder das Empfangssystem sowie die Anbindung von Patienten- und Arztinformationssystemen (PIS/AIS) oder der Etikettendrucker.

Technisch besteht die Webapplikation aus einem Frontend, einem Backend sowie zwei Connector-Applikationen zur Anbindung von älteren Umsystemen. Das Frontend basiert auf Angular und TypeScript. Für das Backend wurden Scala und Akka verwendet. Zur Speicherung der Daten wird ein MariaDB Galera Cluster sowie ein Minio Cluster als S3 Object Storage verwendet. Die Applikationen werden als Docker Container bereitgestellt und in einem dedizierten Kubernetes Cluster in der Schweiz betrieben. Durch die Containerisierung und die Kubernetes-Infrastruktur ist ein moderner Betrieb, die Skalierbarkeit der Applikation und die Erweiterbarkeit mit neuen Komponenten gewährleistet.

Für die Anbindung der Webapplikation an bestehende Umsysteme wurden aufgrund fehlender moderner Schnittstellen wie REST zwei Connector-Applikationen entwickelt. Ein Connector ist für die Anbindung der Webanwendung an die internen Laborsysteme zuständig. Der zweite Connector (Praxisconnector) bindet die verschiedenen Patienteninformationssysteme an die Webapplikation an und stellt die Verbindung zu den Labeldruckern über LAN oder USB her. Der Praxisconnector ist für Windows, OSX und Linux verfügbar. Neue Versionen bezieht der Praxisconnector automatisch über die Update-Funktion.

Die Connectoren kommunizieren mit der Webapplikation über eine verschlüsselte REST-Schnittstelle. Die Umsysteme kommunizieren mangels moderner Alternativen über dateibasierte Schnittstellen (hl7 oder gdt). Die Connectoren transformieren die angelieferten hl7- oder gdt-Dateien in die gewünschten Formate und deren Dialekte und stellen diese wiederum dem Webportal, aber auch anderen Umsystemen zur Verfügung.

Um den sensiblen Daten gerecht zu werden, wurde großer Wert auf Sicherheit und Zuverlässigkeit gelegt. So erfolgt die Kommunikation mit der Webapplikation ausschließlich verschlüsselt über moderne TLS- und Cipher-Protokolle. Die Datenbank ist at rest verschlüsselt und die Befunde sind mit einem Zufallsschlüssel pro Praxis verschlüsselt. Um auch Patienteninformationssysteme mit schwachen Sicherheitsmechanismen an das neue Kundenportal anbinden zu können, wurde eine spezielle Single-Token-Schnittstelle entwickelt, die auch Patienteninformationssystemen mit Shared Login den sicheren Zugriff auf einzelne Auftragseinträge und Befunde ermöglicht.

Neben Sicherheitsmaßnahmen wie Zwei-Faktor-Authentifizierung, OWASP-Header, dem Einsatz einer Web-Firewall und Maßnahmen zur Abwehr von Brute-Force- und DDOS-Attacken verfügt die Anwendung über eine sehr hohe Testabdeckung durch Unit-, Integrations- und E2E-Tests.

Technologien

Scala
© 2024 Tegonal GenossenschaftImpressum & Datenschutz