Kompetenzen

Die Arbeit von Medilyse ruht auf drei wichtigen Pfeilern: hohe technologische Kompetenz, detaillierte Kentnisse der Anwenderdomäne und ein agiler Entwicklungsprozess.

Technologien

Unser breites Wissen in allen Bereichen der Softwareentwicklung ist die Grundlage für erfolgreiche Arbeit. Schwerpunkte unserer technischen Expertise liegen in den Gebieten Programmiersprachen, Betriebssysteme, Netzwerke und Datenbanken. In unserer täglichen Arbeit setzen wir Technologien ein, die es uns erlauben robuste, performante und fehlerfreie Software in kurzer Zeit zu realisieren. Dabei legen wir ein besonderes Augenmerk auf offene Standards und Open Source Lösungen.

Haskell

Das Backend der digitalen Patientenakte und auch der Patienten-App ist in der funktionalen Programmiersprache Haskell geschrieben, da Haskell hohe Typsicherheit sowie sehr gute Unterstützung zur Realisierung nebenläufiger Programme bietet. Inzwischen sind so mehr als 400.000 Zeilen Haskell Code zusammengekommen.

TypeScript / React

Moderne Weboberflächen realisieren wir in HTML5 und CSS. Statt Javascript setzen wir auf Typescript, da statische Typen eine bessere Skalierbarkeit bei großen Projekten bieten. Für die Modellierung von User-Interfaces benutzen wir zumeist React. Aktuell haben wir 350.000 Zeilen TypeScript-Code.

Objective C / iOS

Die iOS Anwendung für die digitale Patientenakte ist in Objective-C geschrieben. Neue Komponenten werden mit Swift realisiert.
Aktuell haben wir 120.000 Zeilen Objective C-Code.

Flutter / Dart

Neben unserem klassischen iOS-Client in Objective C haben wir uns für die Entwicklung einer Patienten-App für eine plattformunabhängige Lösung mit Flutter entschieden. Die Wiederverwendung unserer medizinischen Entwicklungsplattform hat es dabei ermöglicht, dass weniger als 45.000 Zeilen Dart-Code nötig waren um eine offlinefähige native und web-basierte Portallösung für Patienten und niedergelassene Ärzte zu entwickeln.

PostgreSQL / LevelDB / SQLite

Mobile Geräte, die offline Daten ausliefern und entgegennehmen und Plattformen zur Integration von Daten und Prozessen von mehreren Großkrankenhäusern erfordern lokale und fehlertolerante globale Datenspeicherung mit Datensynchronisation und -replikation. Wir verwenden PostgreSQL und LevelDB serverseitig in Microservices und SQLite in unseren mobilen Applikationen um schnellen lokalen Datenzugriff in Millisekunden für jeden Zugriff zu gewährleisten und nutzen gleichzeitig Synchronisation zwischen Clients und Applikationsservern und zwischen Servern im Gesamtsystem um Konsistenz herzustellen.

Event Sourcing

Bereits 2009 noch bevor dieses Architekturmuster zum Trend wurde und bevor nun etablierte Lösungen wie Kafka zur Verfügung standen, haben wir unsere Systeme zur Datenverarbeitung in Krankenhäusern so aufgebaut, dass es eine durchgängige Push-Pipeline von dem z.B. per HL7 kommunizierten Ereignis im Krankhaus bis zur Aktualisierung des Screens auf dem mobilen Gerät oder einer Push-Notification für den Anwender gibt, die innerhalb von Sekunden Ärzte und Pflege über genau das informiert, was die Person für ihren Arbeitsprozess gerade im Moment braucht.

Docker / Kubernetes / Linux

Als Betriebssystem für unsere Server setzen wir die Linux Distributionen Ubuntu Server sowie die Virtualisierungslösung docker ein. Linux vereint für uns Quelloffenheit mit Skalierbarkeit und Anpassbarkeit. Für unsere Continuous Delivery Infrastruktur nutzen wir einen Kubernetes Cluster um jede Codeänderung schnell testen und prüfen zu können.

Domänenwissen

Nur mit technischer Kompetenz lässt sich noch keine gute Software entwickeln. Dazu bedarf es auch viel Wissen und ein gutes Gespür, welche Probleme mit der Software gelöst werden sollen und wie die Arbeitsabläufe in der Anwendungsdomäne sind. Wir haben daher über viele Jahre hinweg Erfahrungen und umfangsreiches Wissen über die Prozesse und Technologien in Krankenhäusern gesammelt.

HL7 FHIR

Als sowohl leichtgewichtige als auch mächtige Weiterentwicklung des klassischen HL7 Standards hat uns FHIR sofort interessiert und wir konnten die Technologie bereits bei der Ausleitung des GECCO Datensatzes oder bei der Terminkommunikation für Patientenportale nutzen.

IHE

Seit vielen Jahren allgegenwärtig konnten wir bereits 2016 mit zwei städtischen Großkrankenhäusern den Dokumentenaustausch über IHE XDS.b realisieren. Seit gehört IHE neben HL7 v2 zu den Standardschnittstellen, die wir bei der Einführung von Clinical Data Repositories zur Integration nutzen.

PDMS Datenintegration

Der Übergang von Patienten auf die Intensivstation und zurück auf Normalstation war schon vor der Digitalisierung eine Herausforderung. Eine zusätzliche Herausforderung sind nun häufig Brüche durch unterschiedliche Softwaresysteme. Wir haben uns intensiv mit den marktführenden Kurvensystemen auseinander gesetzt und Algorithmen und Datenstrukturen entwickelt, die Anwendern ein einheitliches und ununterbrochenes Bild liefern und Arbeitsprozesse der Übernahme und Übergabe unterstützen.

Entwicklungsprozess

Gute Software kann nur dann entstehen, wenn die Entwickler sich mit der Software identifizieren und Spaß daran haben, die Software zu entwerfen, zu entwickeln und zu testen. Daher ist bei uns jeder Entwickler in alle Schritte der Produktentwicklung bzw. eines Projekts eingebunden und kann seine eigene Vorschläge einbringen und umsetzen. Als Vorgehensmodell bei der Entwicklung setzen wir vor allem auf die Scrum Methodik, da wir damit den sich häufig schnell ändernden Anforderungen gerecht werden können und wir ganz allgemein die Werte der agilen Softwareentwicklung teilen:

  • Individuals and interactions over processes and tools
  • Working software over comprehensive documentation
  • Customer collaboration over contract negotiation
  • Responding to change over following a plan