Wie man aus Word ein Schweizer Uhrwerk macht.

Um bei der Softwareentwicklung die höchsten Qualitätsstandards zu gewährleisten, haben wir Swisslab bei der Prozessoptimierung und Automatisierung für die firmenweite Dokumentation geholfen.
28.09.2016

Swisslab ist seit über 20 Jahren ein führender Anbieter für medizinische Laborinformationssysteme in Deutschland und seit Dezember 2008 Teil der Roche Group.

Das Projekt

Teilautomatisierung von Word Dokumenten macht die Mitarbeiter unseres Kunden glücklich.

Das Problem

Die Roche Diagnostics IT Solutions GmbH legt größten Wert auf die Sicherheit ihrer Laborsoftware Swisslab LIS. Sie wendet die hohen Qualitätsstandarts für Pharmazeutika auch auf die Laborsoftware an - aus freien Stücken.
Für die Softwareentwicklung bedeutet das einen besonders hohen Grad and Dokumentation. Und als Softwareentwickler möchten wir das natürlich automatsieren.

Eine besondere Herausforderung ist die generische Qualität der Dokumente, die für den ganzen Roche Konzern gedacht sind. Entsprechend ändern sich auch die Vorlagen regelmäßig.

Schon ein teilweiseses Automatisieren bedeutet für die Verantworlichen eine deutliche Entlastung ihres Altages.

Die Aufgabe

Unser Ziel war es die zum Ausfüllen der Vorlage benötigten Informationen und ihre Quellen zu identifizieren, mit einem System abzugreifen und in einem Word Dokument zusammenzuführen.

Entsprechend der agilen Firmenphilosophie unseres Kunden sind wir iterativ vorgegangen: Da sich viele Dokumente für eine Automatisierung anbieten, sollte zuerst ein Dokument exemplarisch generiert werden. Dabei wurden zunächst nur die low hanging fruits berücksichtigt. In den folgenden Iterationen sind (und werden) dann mehr Dokumente und anspruchsvollere Automatisierung folgen.

Deshalb wollten wir Dokument-spezifische Lösungen möglichst auf generische Lösungen herunterbrechen - bzw. beides auszubalancieren.

Technisch sollte dies durch einen unabhängigen Service geschehen, der von einem Web Frontend aus bedient wird. Weiterhin war eine Lösung im Microsoft Ecosystem gewünscht.

Die Lösung

Zuerst wurde bestimmt, welche Dokumente mit welchen Informationen automatisiert werden sollen. Dafür wurden die entsprechenden Experten interviewt und unerschiedliche technische Lösungen abgewogen.

Zweitens wurde unersucht, welche Information digital verfügbar ist. Dabei stellte sich heraus, dass sich die Infos in drei Gruppen teilen lassen:

  1. Einige, wenige Parameter muss der Anwender am Anfang festlegen.
  2. Viele der zu ergänzenden Informationen sind schlichte Referenzen auf Daten in diversen Roche IS.
  3. Ein weiterer Teil lässt sich aus den ersten beiden Gruppen erschließen.

Drittens wurde die technische Umsetzung angegangen. Wir haben uns für eine Webapplikation mit Standard Microsoft Komponenten (aktuelles ASP.NET Framework, OWIN Pipeline, Linq, Razor Views) entschieden. Eine für kreuzwerker ungewöhnliche Lösung, die wir durch ihre Reibungslosigkeit sehr zu schätzen gelernt haben.

Bei der Entwicklung wurde darauf geachtet, den Dokument-spezifischen Workflow von generischen Komponenten zu trennen:

  • Jedes Dokument hatte einen (View-)Controller mit der entsprechenden Workflow Logik.
  • Die Verarbeitung von Informationen wurde (soweit möglich) in generische Funktionsklassen ausgelagert.
  • Die Schnittstellen zu Fremdsystemen sind in Komponenten gekapselt und offen für neue Anforderungen.

Viertens Der Zugriff auf die verschiedene Datenquellen war nicht trivial. In einem Weltkonzern wie Roche ist der API-Zugriff auf zentrale Datenbanken (sicherheitshalber) stark eingeschränkt. Oder durch den Systemanbieter (SAP) nicht erwünscht. Letzteres liess sich mit einer gewissen praktische Kreativität umgehen.

Fünftens Im Kontrast zum unkomplizierten Plattformbau stellte sich das Füllen der Templates als unerwartet schwierig heraus. Microsoft bietet kein adäquates Tool für die Verarbeitung von Word Dokumenten. Die zwei alternativen Libraries, auf die wir zurückgreifen mussten, waren nur eingeschränkt geignet. Mehr dazu in einem Blog Eintrag von uns.

Unser Beitrag

Bei diesem Projekt bekam unser Kunde alles aus einer Hand: Kreuzwerker machte die Analyse, entwickelte ein Konzept und vollzog die Umsetzung nach den Wünschen des Kunden.

Dabei war – ganz allgemein – unsere Erfahrung mit verteilten Systemen und Webapplikationen von Vorteil. Das ist unser Brot und Butter Gechäft.

Besonders wichtig für die Lösung war unsere langjährige Verbindung zum Kunden und damit unsere Erfahrung mit den Strukturen und Gepflogenheiten der Roche Group. Ohne Feinfühligkeit für die Anforderungen und Eigenheiten der verschiedenen Systemverantwortlichen wäre das Projekt nicht sehr weit gekommen.

Fazit

Dass der Leidensdruck bei den Anwendern groß ist, war schnell klar: Jeder wollte gern noch ein paar weitere Dokumente von uns teil-automatisieren lassen.

Es ist immer wieder schön anzusehen, wie viel mit wenig Aufwand erreicht werden kann. Manchmal bedarf es einfach eines Dritten (der nicht den operativen Zwängen unterliegt), damit solche Hindernisse aus dem Weg geräumt werden können.