Das enorme Wachstum im Bereich Smartphones und Tablet-Rechner legt die Messlatte für Benutzerschnittstellen auch bei vielen anderen Produkten höher. Dies trifft auch auf den medizinischen Bereich zu, wo die Endanwender medizintechnischer Geräte zunehmend wir selber sind, also Verbraucher, die bereits an Smartphones gewöhnt sind. Das Innenleben der Medizintechnik basiert meist auf der gleichen Elektronik wie in industriellen Anwendungen - aber die Zielanwender sind weniger technisch bewandert, dafür aber anspruchsvoller. Wie lässt sich sicherstellen, dass Benutzeroberflächen sowohl gut aussehen als auch die hohen Leistungsanforderungen erfüllen?
Medizinische Geräte finden sich immer häufiger außerhalb von Krankenhäusern und Arztpraxen, nämlich auch zuhause. Ärzte oder Pflegepersonal können tragbare Geräte bei Hausbesuchen mitbringen oder sie dem Patienten überlassen, der dann den eigenen Fortschritt überwachen kann. Dies wirkt sich auf das Produktdesign aus.
Zuverlässigkeit und Energieeffizienz sind zwar weiterhin wichtig, aber jetzt kommen noch Einfachheit und Benutzerfreundlichkeit hinzu. Von einer durchschnittlichen Person kann man nicht erwarten, dass sie ein detailliertes technisches Handbuch liest, bevor sie eine physiologische Messung und die Übertragung der Daten an den Arzt startet. Die Geräte müssen daher intuitiv und für das Auge ansprechend sein, anstatt komplex und umständlich.
Aus diesen Gründen tendieren Entwickler zum Einsatz von TFT-Bildschirmen, oft in Kombination mit Berührungssensorik zur Gerätesteuerung (Bild 1). Damit öffnet sich das Anwendungsspektrum der softwaregestützen Steuerungen. Zudem lassen sich so Maßnahmen implementieren, um Systeme zukünftig abzusichern, wenn ein Software-Update erfolgt.
Die Einschränkungen mechanischer Schalter und Einstellräder könnten dann der Geschichte angehören. Ein weiterer Vorteil von Touchscreen-Schnittstellen, der vor allem in der Medizintechnik und in Krankenhäusern von Bedeutung ist, liegt in der verbesserten Hygiene. Mechanische Schalter, Taster, Einstellräder und Blenden stellen eine potenzielle Sammelstelle für Bakterien dar - selbst bei einer noch so gewissenhaften Reinigung.
Im Vergleich dazu bietet ein Touchscreen eine glatte durchgehende Oberfläche, die sich einfach reinigen lässt. In jedem Entwicklungsprojekt sind bestimmte Disziplinen innerhalb eines Teams zu bewältigen: Produktdesigner, Hardware- und Softwareentwickler sowie Programmierer sind sich darüber bewusst, was von ihnen verlangt wird und wie sie sich mit ihren Kollegen verständigen.
In diese funktionierende Anordnung reiht sich jetzt ein neuer Anforderungskatalog mit ein: Eine optisch ansprechende grafische Benutzeroberfläche (Graphical User Interface, GUI) muss in das Produkt integriert werden. Und mit dieser Anforderung kommen zahlreiche Herausforderungen auf alle Beteiligten zu.
Design-Herausforderungen
Das Team ist zum Beispiel nicht vertraut mit modernen GUI-Werkzeugen und -Techniken. Dies beruht darauf, dass alle Beteiligten unter dem Druck stehen, das Produkt schnell bereitzustellen. Innerhalb dieses engen Zeitrahmens möchte dann auch noch das Marketing vielleicht eine frühe Demo-Version der Schnittstelle haben, um potenziellen Kunden die Interaktion zu zeigen oder Ergonomie-Tests mit verschiedenen Anwendern durchzuführen.
Es kann auch sein, dass die eigentliche Systemhardware noch nicht zur Verfügung steht. Dies führt zu Verzögerungen, bis die Hardware fertig ist, oder die Software wird auf einer anderen Plattform entwickelt und später portiert, was zusätzlichen Aufwand mit sich bringt. Dann steht noch die Herausforderung im Raum, eine hochqualitative, professionell aussehende GUI zu entwickeln, besonders wenn es sich um das erste Projekt dieser Art für das Team handelt.
Jeder weiß, dass Highend-Smartphones die Messlatte sind. Die Entwicklung der Grafikelemente, Effekte und Animationen von Grund auf ist eine extrem zeitaufwendige Tätigkeit. Bei der Entwicklung einer erfolgreichen grafischen Benutzeroberfläche geht es aber nicht nur allein um die Optik; die Codierung muss effizient erfolgen, um nicht einen zu hohen Anteil der Bandbreite des Systemprozessors zu verschwenden.
Dies kann eine Wissenschaft für sich sein. Und schließlich muss sich die UI-Software möglichst nahtlos in das Gesamtbetriebssystem integrieren. Um deterministische Performance zu bieten, sollte ein Echtzeitbetriebssystem (RTOS) zum Einsatz kommen. Die UI-Software darf dabei die Systemperformance oder Ansprechzeit nicht beeinträchtigen.
Ein Framework für die Entwicklung
»Qt« ist eine Benutzeroberfläche und ein plattformübergreifendes Applikations-Framework zugleich, das in den Bereichen Medizintechnik, Luft- und Raumfahrttechnik sowie im Automobil und in Automatisierungssystemen zum Einsatz kommt (Bild 2). Mehr als 450 000 Entwickler weltweit setzen es ein, und es steht als lizenzierbares Produkt von Digia und als Open-Source- Lizenz zur Verfügung.
Mit Qt lassen sich Embedded-Benutzeroberflächen in einer grafischen Umgebung entwickeln, womit Entwicklern die gleichen fortschrittlichen Layout- und Design-Tools zur Verfügung stehen wie in der Desktop-Welt. Mit der »Qt Layout Engine« lassen sich die Schnittstellen an verschiedene Bildschirmgrößen und Ausrichtungen einfach anpassen.
Mit seiner C++-Programmierumgebung und seinem intuitiven Ansatz in Sachen Objektorientierung soll das Werkzeug die Produktivität der Programmierer erhöhen, indem es erweiterbare, vorgefertigte Komponenten für Benutzerschnittstellen zusammen mit Klassen und Modulen bereitstellt, die gängige Funktionen in Betriebssystemen abstrahieren. Qt verfügt über eine modulare Bibliothek mit über 800 C++-Klassen, die mehr als nur GUI-Design bieten.
Mit Klassen für XML, Networking, IPC, SVG, Threading, SQL, Internationalisierung und Multimedia bietet das Werkzeug ein Applikations-Framework, sodass sich Entwickler auf ihre Kernkompetenzen und Produktdifferenzierungsmerkmale konzentrieren können, anstatt sich mit Grundlagen abzugeben. Das Tool lässt sich so konfigurieren, dass nur die Module enthalten sind, die auch erforderlich sind. Dies hält die Speicheranforderungen niedrig.
Performance und Portierbarkeit
Jede vorgefertigte Komponente der Benutzeroberfläche lässt sich verschiedenartig anpassen - von der Klassenebene über die Anpassung des Event-Handlings, bis hin zur Spezifizierung der Farbpalette oder eines Themas. Qt ermöglicht dies, indem wichtige Funktionen »virtuell« bereitstehen, der Entwickler kann also diesen Teil einer Klassenfunktion durch seine eigene Implementierung ersetzen.
Qt hat nur minimale Hardware-Abhängigkeiten, bietet eine einfache Plattform-Migration über Embedded Linux und Windows Embedded hinweg, genauso wie über die Desktop-Betriebssysteme Linux, Windows, Mac und Unix. Echtzeitbetriebssysteme von Wind River, Green Hills S
Der Applikationscode lässt sich einfach für die entsprechenden Betriebssysteme neu kompilieren. Qt wurde auch dahingehend optimiert, um auf einer Vielzahl von Hardwareplattform zu laufen: ARM, x86, PowerPC und MIPS. Mithilfe der Multi-Threading-Klassenbibliothek lassen sich Prozessor-Threads für die Benutzeroberfläche und für andere Funktionen trennen. Dadurch ist sichergestellt, dass die Schnittstelle ansprechbar bleibt, was die Benutzererfahrung und Kundenzufriedenheit mit dem Produkt erhöht.
Qt verfügt über sein eigenes Windowing-System und erübrigt somit X11 auf Embedded-Systemen. Projekte starten meist, bevor die Hardware zur Verfügung steht. Für Entwickler muss also eine Möglichkeit bestehen, mit der Arbeit zu beginnen und das Projekt einem Prototyping zu unterziehen. Selbst wenn die Hardware bereitstehen sollte, können die Kompilier- und Download-Zeiten den Projektfortschritt behindern.
Qt für Embedded Linux bietet dazu eine virtuelle Frame-Buffer-Implementierung, die auf der Linux-Entwicklungsplattform des Hosts läuft. Der virtuelle Frame-Buffer emulie
Über die integrierte Paint-Engine lassen sich attraktive Benutzeroberflächen für Embedded Systeme entwickeln - glatte Pixel in allen Rendering-Auflösungen; Support für Linien, Kurven und Steigungen; Überblenden und Glätten; Composition-Mode-Support für Alpha-Kanäle (für Semitransparenz). Auch sehr leistungsfähiges Text-Rendering steht zur Verfügung, einschließlich der Möglichkeit, Schriften vorab zu rendern, um den Rechenaufwand zu minimieren. Qt unterstützt OpenGL ES, um Geräte schneller zu machen, zum Beispiel bei 3D-Grafiken und schnellem Zeichnen. OpenVG für schnellere 2D-Grafiken wird ebenfalls unterstützt.
Praxisbeispiel
Ein Unternehmen, das Qt erfolgreich in einer medizintechnischen Anwendung eingesetzt hat, ist Eykona Technologies, ein Spin-out der Universität Oxford. Mit dem »Wound Measurement System« hat das Unternehmen ein Messsystem für schwer heilbare Wunden entwickelt, wie sie bei Diabetes und bei Patienten mit Druckgeschwüren auftreten könne (Bild 3).
Mit herkömmlichen Techniken ließ sich die Größe von Wunden nur schätzen - die Größenänderung ist ein wichtiger Indikator für den Heilungsprozess. Dabei wurde die Flächenschätzung mit einer Tiefenmessung multipliziert, die über eine Messsonde ermittelt wurde. Diese Methode erwies sich als ungenau und schwer wiederholbar. Eykona entwickelte ein Handheld-Bildgebungssystem, das ein vollständiges 3D-Farbmodell einer Wunde erzeugt. Dieses Modell lässt sich in den Patientenaufzeichnungen abspeichern und auch für Ferndiagnosen auswerten.
Das System stellt Ärzten damit eine objektive und wiederholbare Messmethode zur Verfügung. Damit lassen sich Vergleiche anstellen und der Heilungsprozess überwachen. Nach der Evaluierung verschiedener grafischer Benutzeroberflächen und Applikations-Frameworks, entschied sich Eykona für Qt. Die Flexibilität, die plattformübergreifende Einsatzfähigkeit und die weite Verbreitung waren ausschlaggebend.
Das Unternehmen bevorzugt die Support- und Lizenzierungsvorteile anstelle der Open-Source-Variante. Die Entwickler machen jedoch immer noch ausgiebig Gebrauch von der Online-Wissensbasis der Qt-Community. Eykonas Entwickler finden den plattformübergreifenden Support von Qt besonders hilfreich. Damit konnten sie eine Embedded-Linux-Anwendung entwickeln, bevor die Hardwareplattform zur Verfügung stand. Sie haben einfach unter Windows entwickelt und dann direkt auf die Linux-Plattform kompiliert. Das Unternehmen schätzt, dass die Entwicklung bis zur ersten Version ohne Qt rund sechs bis neun Monate länger gedauert hätte.
Über den Autor:
Sami Makkonen ist Senior Product Manager bei Digia.