FORMOSA - Ein interaktives XML-Derivat für die klinische
Mathematik
eMail (dietrich | fischer)@instruct.de
Die klinische Medizin wird heute durch zahlreiche mathematische
Methoden unterstützt, die allerdings meist ungenutzt bleiben.
Ihre geringe Akzeptanz ist in didaktischen Umständen und
mangelhafter Verfügbarkeit der benötigten Gleichungen in
der klinischen Praxis begründet. Als unterstützendes
Instrument sollte daher ein didaktisch orientiertes Nachschlagewerk
(FORMICA) entwickelt werden, das multimodal über verschiedene
Informationskanäle zur Verfügung steht. Der Datenstruktur
wurde ein XML-Dialekt (FORMOSA) zugrundegelegt, der eine
plattformübergreifende Codierung und die Möglichkeit einer
automatischen Konvertierung in andere XML-Dialekte wie HTML oder WML
offeriert. Interaktive Funktionen werden durch eine integrierte
Skriptsprache realisiert, die je nach technischen Voraussetzungen auf
dem Client oder Server interpretiert werden kann. Eine erste
Implementation als lokal benutzbares Programm konnte mit einer
schnellen und sehr kompakten Engine realisiert werden. FORMOSA
scheint sich insgesamt für eine þexible und effiziente
Codierung klinisch-mathematischer Inhalte zu eignen.
Numerous mathematical methods promise to support clinical medicine.
Nevertheless, due to their insufficient availability in the clinical
setting and educational factors they are used only seldomly.
Therefore, a didactical oriented interactive encyclopedia was to be
developed, that should be available via several communication
channels. The data structure was realized as an XML dialect
(FORMOSA), offering a platform independent coding and the possibility
to convert the data automatically into other XML dialects as HTML or
WML. Interactive functions are implemented by an integrated scripting
language that can be interpreted by the server or client, depending
on technical conditions. A Þrst implementation as a stand-alone
application could be realized with a fast and very compact engine
(<100 KB in size). Therefore, FORMOSA seems to be suitable for a
þexible and efÞcient coding of clinical-mathematical
contents.
Schlüsselwörter: Klinische Mathematik, XML,
Computer Based Training
Key Words: Clinical Mathematics, XML, Computer Based
Training
1 Einleitung
Sowohl die theoretische als auch die klinische Medizin
proÞtieren von der Anwendung mathematischer Methoden, die in
den vergangenen Jahrzehnten entwickelt wurden.
So wurden Algorithmen und Gleichungen entwickelt, die es erlauben,
physiologische und pharmakologische Zusammenhänge detailliert zu
beschreiben und zu simulieren und hieraus z. B.
Dosierungsempfehlungen für Arzneimittel abzuleiten. Auch
für die Interpretation diagnostischer Verfahren stehen heute
mathematische Methoden zur Verfügung, welche die Aussagekraft
von Untersuchungen erhöhen oder Hinweise auf die Prognose von
Krankheitsbildern erlauben.
Leider werden diese Verfahren in der klinischen Medizin bislang
selten genutzt. Einerseits sind die erforderlichen Gleichungen und
Algorithmen in der konkreten klinischen Bedarfssituation nur
schwierig verfügbar, andererseits scheinen jedoch nach wie vor
auch DeÞzite in der medizinischen Ausbildung zu bestehen. Diese
Situation hat unerwünschte Folgen, die von unzureichendem
theoretischen Verständnis über nicht optimale Ausnutzung
diagnostischer Verfahren bis hin zu ernsten Fehlern bei der
therapeutischen Konzeption reichen können.
In diversen Studien aus dem angelsächsichen Raum hatte ein
Großteil der interviewten Ärzte Schwierigkeiten, klinisch
relevante Berechnungen wie die Ermittlung von Arzneimitteldosen oder
die Bilanzierung der Flüssigkeitszufuhr fehlerfrei
auszuführen [1&endash;4].
In das medizinische Curriculum wurden bereits seit Jahren
statistische und epidemiologische Fragestellungen mit Erfolg
eingeführt. Methoden der angewandten klinischen Mathematik
werden bislang jedoch nicht vermittelt.
Die Klinische Mathematik verspricht damit zwar große Vorteile
für Diagnostik und Therapieplanung, faktisch entgeht dieser
BeneÞt jedoch vielen Patienten.
Evidence Based Medicine gilt als Gebot der Stunde für eine
patientenorientierte und efÞziente Praxis [5]. Soll sie
wirklich eingesetzt werden, müssen auch die ihr
zugrundeliegenden mathematischen Berechnungsalgorithmen zur Hand
sein.
2 Methoden
Eine Auswahl klinisch und theoretisch wichtiger Gleichungen und
Algorithmen sollte als interaktive Medizinische
Formelsammlung (FORMICA &endash; Formulary of Mathematics in
Clinical Application) über verschiedene Informationskanäle
zugänglich gemacht werden. Dazu wurden zunächst drei
parallele Ansätze vorgesehen:
Sowohl das Computerprogramm, das plattformübergreifend
für Mac OS und Windows zur Verfügung stehen soll, als auch
das internetbasierte Programm sollen Recherche-, Nachschlage- und
Berechnungsfunktionen bieten. Komplexe und multivariable
Zusammenhänge sollen in beiden Lösungen mit der
mittlerweile etablierten QuickTime-Technologie visualisiert werden.
Im endgültigen Umfang sollen die etwa 250 &endash; 300
wesentlichen Gleichungen kommentiert für die klinische Medizin
zur Verfügung stehen.
Erste Tests, die mit einer prototypischen CGI-basierten
Internet-Version erfolgten, verliefen erfolgreich. Die
endgültige Version sollte jedoch erheblich flexibler gestaltet
werden.
Als erstes Teilprojekt der neuen Version wurde eine Datenstruktur
deÞniert, welche die folgenden Anforderungen erfüllen
soll:
Diese Ziele führten zur Entwicklung eines XML-basierten
Formats (FORMOSA). Ein gültiges FORMOSA-Dokument besteht aus
einem Prolog, der das Datenformat speziÞziert, fakultativ einer
Mainlist, welche die verfügbaren Gleichungen anbietet, und/oder
einer Entry-Beschreibung und schließlich einem das Dokument
abschließenden Epilog (Fig. 1).
Die Mainlist enthält dazu einerseits einzelne Items, die jeweils
aus einem Verweis auf eine Entry-Card-ID und den Text-Etiketten
für verschiedene Spalten bestehen, und andererseits die
Überschriften für die Spalten (Listing 1). Diese Daten
werden dann verwendet, um den Inhalt des Blätter-/Suchfensters
darzustellen (Fig. 2).
<FORMOSA version="1.0">
<!-- Hauptliste -->
<MAINLIST>
<!-- Listenelemente, entry verweist auf den Eintrag -->
<CAPTION><COL1>Gleichung</COL1><COL2>Gebiet</COL2></CAPTION>
<ITEM
ENTRY=4><COL1>Enzymkinetik</COL1><COL2>Physiologie</COL2></ITEM>
<ITEM
ENTRY=2><COL1>Gesamtkörperwasser</COL1><COL2>Diagnostik</COL2>
</ITEM>
<ITEM
ENTRY=5><COL1>Györgi-Quotient</COL1><COL2>Diagnostik</COL2></ITEM>
<ITEM
ENTRY=12><COL1>Henderson-Hasselbalch-Gleichung</COL1>
<COL2>Physiologische Chemie</COL2></ITEM>
<ITEM
ENTRY=52><COL1>Körperoberfläche</COL1><COL2>Diagnostik</COL2>
</ITEM>
<ITEM
ENTRY=1><COL1>Konversionskoeffizient</COL1><COL2>Physik</COL2></ITEM>
<ITEM
ENTRY=22><COL1>Kreatinin-Clearance</COL1><COL2>Diagnostik</COL2>
</ITEM>
<ITEM
ENTRY=25><COL1>Na<SUP>+</SUP>-Substitution</COL1>
<COL2>Therapieplanung</COL2></ITEM>
<ITEM ENTRY=52><COL1>Nernstsche
Gleichung</COL1><COL2>Physiologie</COL2>
</ITEM>
<ITEM ENTRY=21><COL1>Radioaktiver
Zerfall</COL1><COL2>Physik</COL2></ITEM>
<ITEM ENTRY=9><COL1>Regelkreis 0.
Ordnung</COL1><COL2>Kybernetik</COL2>
</ITEM>
</MAINLIST>
</FORMOSA>
Der Code einer Entry-Card besteht wiederum aus vier Abschnitten. Nach
der Titel-Sektion, die eine ID-Nummer, den Namen der Gleichung und
den Titel des Fensters festlegt, folgen ein Content-Abschnitt, der
einen Erklärungstext mit fakultativen multimedialen
Ergänzungen enthält, sowie, jeweils optional, ein Skript,
das für die Berechnungsfunktion verwendet werden kann und ein
Formularbereich (Listing 2 und Fig. 3).
<FORMOSA version="1.0">
<ENTRY ID="22">
<TITLE>Kreatininclearance</TITLE>
<WINDOW.TITLE>@TITLE</WINDOW.TITLE>
<CONTENT>
<EQN>
<IMG SRC=pict.422></IMG>
<UNIT>ml/min</UNIT>
</EQN>
<MOV SRC=moov.403></MOV>
<P>Die Clearance hat die Maßeinheit ml/min. Daher
muß das Ergebnis noch durch die Sammelzeit geteilt
werden. Handelt es sich um 24-Stunden-Urin, wird also durch
1440 Minuten geteilt.</P>
<P>Diese Gleichung kann analog auch für andere
Substanzen verwendet werden, z. B. Inulin.</P>
</CONTENT>
<SCRIPT>
on docalc()
set c to u*v/p/1440
end docalc
</SCRIPT>
</ENTRY>
<FORM>
<TEXTFIELD NAME="Kreatininkonzentration im Urin (U)"
ID="u">
<UNIT FACTOR="0.0113">g/24h</UNIT>
<UNIT>µmol/24h</UNIT>
</TEXTFIELD>
<TEXTFIELD NAME="Urinvolumen (V)" ID="v">
<UNIT>ml</UNIT>
<UNIT FACTOR="1000">l</UNIT>
</TEXTFIELD>
<TEXTFIELD NAME="Plasmakonzentration (P)" ID="p">
<UNIT FACTOR="1131">mg/dl</UNIT>
<UNIT>µmol/l</UNIT>
</TEXTFIELD>
<REPLYFIELD NAME="Ergebnis:"
ID="c">ml/min</REPLYFIELD>
<BUTTON NAME="Berechnen" ONCLICK="docalc"></BUTTON>
</FORM>
</FORMOSA>
Die Kernkomponente für FORMICA bildet ein FORMOSA-Parser, der in
Pascal implementiert wurde. Aufbauend auf bewährten Prinzipien
des Compilerbaus [6] ruft der Parser einen Scanner auf, der
FORMOSA-Tags und reservierte Wörter der integrierten
Skriptsprache erkennt und als Symbole an den Parser zurückgibt
sowie neue Bezeichner innerhalb von Skripten identiÞziert,
damit sie anschließend korrekt als Variablen oder
Funktionsnamen behandelt werden können. Zeichenfolgen
außerhalb von Tags oder Skripten werden als Text erkannt, der
dann mit den ihm zugeordneten Tags in der speziÞzierten Weise
dargestellt werden kann.
3 Ergebnisse
Die prototypische Version, die noch ausschließlich auf HTML-
und CGI-Techniken basiert (Münchener Formelsammlung der
Medizin, http://link.medinn.med.uni-muenchen.de/mfm/) konnte
erfolgreich in Betrieb genommen werden [7]. Trotz ihres
kleinen inhaltlichen Umfanges erfreut sie sich innerhalb der
medizinischen Fakultät der Universität München einer
großen Beliebtheit.
Die neue Version baut mit FORMOSA auf einer spezialisierten Technik
auf. Wegen seiner Mächtigkeit kann FORMOSA allerdings unrschwer
in andere Markup-Sprachen konvertiert werden, so daß diese
Lösung zugleich sehr viel þexibler ist.
Mit den oben beschriebenen Methoden konnte eine außerordentlich
kompakte Engine realisiert werden, die weniger als 100 KB
Speicherplatz beansprucht. In ersten Testläufen konnten zudem
bei direkter Interpretation im Stand-Alone-Programm dank der
mächtigen, auf die Inhalte abgestimmten
Seitenbeschreibungssprache im Vergleich zu im Browser dargestellten
HTML-Seiten insbesondere auf älteren Rechnern erhebliche
Geschwindigkeitsvorteile erreicht werden.
4 Diskussion und Ausblick
FORMOSA hat sich als geeignet für die Darstellung mathematischer
Inhalte in der Medizin erwiesen. für die lokale,
browserunabhängige Nutzung zeichnet sich die beschriebene
Methodik durch Geschwindigkeits- und Speicherplatzvorteile aus.
Die Hauptvorteile dieses Ansatzes liegen jedoch in der þexiblen
Verwendungsmöglichkeit der Inhalte. So können die Codes
sehr rasch in andere XML-basierte Sprachen umgewandelt werden. Im
wesentlichen läuft dieser Konvertierprozeß auf eine
schlichte Suchen-und-Ersetzen-Operation hinaus.
Es ist geplant, diese Techniken für die Online-Version von
FORMICA zu nutzen. Dafür sind, je nach erforderlicher
Technologie, verschiedene Einstiegspunkte, z. B. für HTTP- oder
WAP-Clients zu schaffen. Die FORMOSA-Dateien müssen dann
für die jeweilige Seitenbeschreibungssprache konvertiert werden.
für die enthaltenen Skripte ist eine Umwandlung in JavaScript
vorgesehen, die jedoch so transparent sein muß, daß
Clients, die nicht JavaScript-fähig sind oder in denen
Skriptsprachen manuell deaktiviert wurden, durch ein serverseitiges
CGI bedient werden, das dann die FORMOSA-Skripte ausführt und
die Ergebnisse an den Client zurückliefert.
Das beschriebene Verfahren kann auch als Modell für die
þexible Bereitstellung von Wissen in Datenbanken betrachtet
werden.
5 Literatur
Dieses Projekt wird von der Merck KG aA unterstützt.