Zum Inhalt springen

Case Study · Einkaufsgenossenschaft im Gesundheitswesen

Bestellen für Krankenhäuser: ein Webshop und eine Scan-App für den OP

Für eine Einkaufsgenossenschaft im Gesundheitswesen habe ich mit einem Backend-Entwickler zwei Produkte aufgebaut: einen Webshop für den Klinikeinkauf und eine App, mit der Pflegekräfte direkt im OP scannen und bestellen. Frontend, Mobile-App, Datenbank und Cloud-Infrastruktur lagen bei mir.

Organisation
Einkaufsgenossenschaft im Gesundheitswesen
Rolle
Full Stack Web Developer
Zeitraum
Mitte 2025 – 07/2026
Team
Zwei Entwickler: Backend (.NET) und ich (Frontend, Mobile, Datenbank, Cloud, Infrastruktur)
Status
Übergeben 07/2026
Stack
React · TypeScript · React Native · DataWedge · PostgreSQL · Azure · .NET (Backend)

Zuletzt aktualisiert:

Kontext

Eine große Einkaufsgenossenschaft im deutschen Gesundheitswesen bündelt den Einkauf ihrer Mitgliedskrankenhäuser. Ab Mitte 2025 habe ich mit einem Backend-Entwickler zwei neue Produkte für sie aufgebaut:

  • einen Bestell-Webshop, in dem Einkaufsleitungen und strategische Einkäufer den täglichen und wöchentlichen Bedarf ihres Hauses bestellen. Gefüllte Warenkörbe gehen an das bestehende Bestellsystem, das die Bestellung abschickt.
  • eine Scan-App für Pflegekräfte im OP: Artikel direkt am Einsatzort scannen und nachbestellen, Schränke verwalten, Inventur erfassen.

Mein Beitrag

Die Backend-Architektur (.NET) hat mein Kollege entschieden und gebaut. Bei mir lagen Entscheidung, Planung, Aufbau und Administration von allem anderen: das Web-Frontend (React, TypeScript), die Mobile-App (React Native mit DataWedge für die Hardware-Scanner), die Datenbank (PostgreSQL) sowie Cloud-Services und Infrastruktur auf Azure.

Meine Verantwortung endete bei der Frage, was gebaut wird. Wie Einkäufer arbeiten, wusste ich anfangs nicht. Die fachliche Definition lag deshalb eine Ebene über mir, bei jemandem, der IT und Einkauf kennt: wie Prozesse abzubilden sind, wie die Workflows aussehen, wo sie möglichst leicht sein müssen und wo Details und Dynamik zählen.

Die schwierige Entscheidung: das BFF zurückbauen

Am Anfang stand vor dem React-Frontend ein Backend-for-Frontend (BFF) in Java/Spring Boot, gebaut nach dem Muster eines bestehenden Portals der Genossenschaft. Es übernahm Authentifizierung, Cookie-Handling und Routing.

Mit der Zeit wanderte das Routing in React Router, und vom BFF blieb im Wesentlichen ein Proxy zwischen Frontend und Backend. Ich habe vorgeschlagen, es zu entfernen. Der Hauptgrund war das Team: Bei zwei Entwicklern hieß Java neben .NET und TypeScript eine dritte Sprache und Laufzeitumgebung, die gewartet, deployt und von jedem Nachfolger beherrscht werden muss. Ohne das BFF besteht der Stack aus .NET im Backend und TypeScript im Frontend, und das Frontend spricht typisiert direkt mit der API. Das macht es deutlich leichter, eine Nachfolge für das Projekt zu finden.

Die Authentifizierung selbst hing nie am BFF: Sie lief vorher wie nachher über einen zentralen Identity-Provider. Heute meldet sich das Frontend dort direkt per OAuth 2.0 mit PKCE an.

Zusammenarbeit

  • Backend-Kollege: gemeinsame Abstimmung der API zwischen Backend und Frontend.
  • Technische Leitung: Design und Planung des Projekts.
  • Pilothaus: alle zwei Wochen ein Termin mit der Einkaufsleitung eines Mitgliedskrankenhauses, um Feedback aus der Praxis einzuholen.

Ergebnis

Stand bei meiner Übergabe im Juli 2026:

  • Scan-App: Die Parser für HIBC, GS1, EAN und GTIN waren vollständig fertig, abgesichert durch mehrere hundert Unit-Tests. Damit liest die App die Codes, die auf Medizinprodukten tatsächlich vorkommen.
  • Webshop: Artikelsuche über mehr als eine Million Artikel, Organisationsstrukturen der Häuser, ein Berechtigungssystem sowie das Anlegen und Befüllen von Listen und Warenkörben.

Rückblick

Das BFF hätte es von Anfang an nicht geben dürfen. Es entstand aus Routine, weil ein bestehendes Portal so gebaut war, nicht aus einer Planung für dieses Projekt. Die Lehre für mich: Jede Schicht braucht zu Beginn einen Grund, der aus diesem Projekt kommt, nicht aus dem letzten.


Produkt- und Kundennamen, interne Kennzahlen und Screenshots lasse ich bewusst weg. Im Gespräch erzähle ich gern mehr, soweit es meine Verschwiegenheit erlaubt.

Alle Projekte