Die LIMS-API

Wer weiß, vielleicht kann ja nicht jeder sofort etwas mit dem Begriff "API" anfangen - geht es hier etwa um den Plural der legendären "Kleintransporter" auf Mopedbasis namens Ape (ital. für Biene) aus dem Hause Piaggio? Und um nostalgische Erinnerungen an italienische Komödien aus der guten alten Zeit, wo dieses ein bisschen skurrile Gefährt oft eine zentrale Rolle spielt?

Nein, wir bleiben (leider?) doch in einem recht sachlich-technischem Ambiente. Unter API ist die Abkürzung für "application programming interface" gemeint, wie wahrscheinlich ohnehin die meisten der geneigten Leser sofort erraten haben. Also eine Schnittstelle, die ein Betriebssystem oder auch ein Einzelprogramm zur Verfügung stellt, über die andere (z.B. selbst programmierte) Anwendungen die bereitgestellten Funktionen nützen können. Am wichtigsten ist wohl die Windows-API, die von jedem Windows-Programm ausgiebig angesprochen wird, um die Funktionen des Betriebssystems (Bildschirmdarstellung, Dateizugriff, Druckerausgabe und so weiter) für sich zu nützen. Aber auch Anwenderprogramme wie z.B. Microsoft Office können über eine API genützt werden, um sie von anderen Programmen aus zu steuern. Unser LIMS "uniLIME" verwendet diese Möglichkeit beispielsweise für die Berichtausgabe über Microsoft Word.

Aber dass ein Laborinformationssystem (LIMS) selbst eine API anbietet, damit nicht nur (menschliche) Anwender, sondern auch Fremdprogramme die Funktionen des LIMS nützen können, ist eine eher weniger bekannte Angelegenheit. Dabei spielt eine solche LIMS-API eine recht zentrale Funktion vor allem in den Laborinformationssystemen der großen/internationalen LIMS-Anbieter, die sehr umfangreiche und vielfältige Systeme mit vielen Optionen anbieten, aber die mühseligen Tiefen der Detailanpassungen an die konkreten Anforderungen der Endanwender oft scheuen wie der Teufel das Weihwasser ...

Da aber ein erfolgreicher und effizienter Einsatz eines LIMS ohne Detailanpassungen an die individuellen Gegebenheiten des eigenen Labors kaum möglich ist, erhalten die LIMS-Kunden mit dieser API die Möglichkeit, selbst darüber ihre Anpassungen umzusetzen. Nun beschäftigt aber nicht jeder LIMS-Kunden gleich ein Heer von Softwareentwickler, die freudig auf eine neue Aufgabe warten, daher werden diese Anpassungen gerne an externe LIMS-Berater oder freie Programmierer übertragen.

Wir (lims.wien) sind wohl einer von wenigen verbliebenen LIMS-Anbietern, die die Detailanpassung für die LIMS-Kunden noch komplett selbst durchführen, um damit Probleme wie inhaltliche Missverständnisse, gegenseitiges Zuschieben der Zuständigkeit etc. dieser Aufspaltung zwischen Anbieter und LIMS-Berater/Programmierer gar nicht erst aufkommen zu lassen. Damit stellt sich diese Frage einer im LIMS intergrierten API auch nicht so direkt. Von Zeit zu Zeit kommen aber doch Anfragen dieser Art, wenn ein vom Kunden entwickeltes Hilfsprogramm oder auch ein anderes im Haus genützes System Funktionen im LIMS ausführen oder anstoßen ("triggern", wie man im IT-Jargon so sagt) möchte. Der "Klassiker" ist die Formelauswertung, in der Umrechnungen von Parametern nach freidefinierbaren Formeln innerhalb von Proben oder Aufträgen stattfinden, aber auch kompliziertere Import- oder Exportfunktionen sind öfters betroffen.

Um den Aufwand gering zu halten (welches Labor hat schon ein unbegrenztes Budget?) wäre die Entwicklung einer "echten" API wie der erwähnten Windows-API oder der "office automation" (Schnittstelle zu Word, Excel oder anderen Komponenten von Microsoft Office) viel zu kompliziert und zeitaufwändig. Wesentlich einfacher ist die Einrichtung eines Webservice, also dass das externe Programm über Aufrufe wie in der "Internet-Welt" die LIMS-internen Funktionen startet. Derzeit am angesagtesten wäre hier wohl eine REST-Schnittstelle. Nur exponiert man sich durch die universelle Aufrufmethodik (genauso wie "ganz normales Surfen im Internet") relativ stark auch gegenüber bösartigen Zeitgenossen oder Schadsoftware.

Noch unkomplizierter und vor allem aber weniger riskant ist es, dass das externe Programm einfach in einem abgetrennten Teil der LIMS-Datenbank (oder einer anderen Datenbank) die Anforderung einträgt und das LIMS wiederum regelmäßig nachsieht, ob etwas zu tun ist. Natürlich bietet diese Variante weniger Flexibilität, für die oben erwähnten typischen Aufgaben ist sie aber bei weitem ausreichend.

< Früherer Beitrag     Neuerer Beitrag >