MAL-Homepage Inhaltsverzeichnis



MAL Dokumentation: Impementieren von Analysen




Inhalt:

1. ALLGEMEINES
2. EINRICHTEN EINER NEUEN ANALYSE
3. ADRESSIEREN DER MESSDATEN
3.1. Einfachselektion
3.2. Mehrfachselektion
4. BEISPIELE


1. ALLGEMEINES

Jede Messdaten-Analyse ist eine eigene MAL-Klasse. Sie sind alle im Vetmed-Analyse-Folder untergebracht. Dieser kann durch Eingabe von unser und anschließenden Doppelklick auf vetmed_analysen geöffnet werden.

Die Minimalanforderungen für eine Messdaten-Analyse-Klasse sind:

Soll die Analyse konfigurierbar sein, so ist noch eine Funktion configure_analysis (this -> this) erforderlich.

Der einfachste Code für die Funktion create sieht folgendermaßen aus:

{ } create_analysis inherit ;

Zwischen den geschwungenen Klammern können diverse Konfigurationsdaten definiert werden. Die meisten Analysen haben einen Verbund mit dem Namen "configö in dem alle Konfigurationsdaten untergebracht sind, die mit einer Maske eingebbar sind.

Beispiel:

{ [ 0 "von" >name 50 "bis" >name ] "config" >name } create_analysis inherit ;

In diesem Fall kann die Funktion configure_analysis folgendermaßen aussehen:

config >voc [ "von #### bis #####" ] writemask -> config this> ;

MAL-Homepage Inhaltsverzeichnis


2. EINRICHTEN EINER NEUEN ANALYSE

Das einfachste Verfahren, eine neue Analyse-Klasse einzurichten ist, eine bestehende mit Submenu / Copy zu kopieren. Bei der Auswahl der Muster-Klasse sollte man darauf achten, ob sie mit Einfachselektion oder Mehrfachselektion (oder wahlweise) eingerichtet wird. Natürlich wird man versuchen eine Klasse zu nehmen, die vielleicht schon eine ähnliche Auswertung durchführt.

Will man die neue Analyse-Klasse "from the scratch" einrichten, so müssen folgende Schritte durchgeführt werden:

Als Environment für die Klasse (Doppelklick auf die Klasse und Menüpunkt Environment) empfielt sich folgener Minimalcode:

interface_of analysis_class >voc
interface_of objekt \ code >voc
create start ;


Dieser Code erzeugt eine Instanz der neuen Klasse und ruft (implizit in start, das in der Klasse analysis_class definiert ist) die Funktion start_selected auf.

MAL-Homepage Inhaltsverzeichnis


3. ADRESSIEREN DER MESSDATEN

Die Versorgung der Funktion start_selected mit den Messdaten erfolgt über eine vordefinierte Variable mit dem Namen "selection". Diese Variable enthält einen Verbund in dem sämtliche selektierten Messdaten gespeichert sind. Die Struktur der Variablen selection hängt davon ab, ob die Analyse-Instanz mit Einfachselektion oder Mehrfachselektion eingerichtet wurde.

MAL-Homepage Inhaltsverzeichnis


3.1. Einfachselektion

Die allgemeinen Versuchsdaten (Patientenname, Bearbeiter, Datum usw.) sind direkt unter dem entsprechenden Namen in der Variablen selection gespeichert.

Zum Beispiel:

selection .

[
Patientenname=Rosso
Bearbeiter=Holzreiter
Projekt=Test
Kommentar=Kistler Testmessung, Trab
Datum=2002-11-14
Uhrzeit=16:03
identification=VuC3628
logbook=vetm:720
messinstanzen=vetm:721
selected?= ]


Die Komponente messinstanzen enthält einen Poolverweis (siehe
Poolsystem ) auf die Messdaten der einzelnen Durchgänge. Der erste Durchgang kann also mit

selection \ messinstanzen 1 ,

adressiert werden. Der so berechnete Datensatz ist eine Instanz einer Messklasse. Nachdem alle Messklassen zumindest die Funktionen analog>, trajectories>, frequency> und duration> implementiert haben (siehe unten), können zum Beispiel mit

selection \ messinstanzen 1 , analog>

alle Analogwerte des ersten Durchgangs adressiert werden. Voraussetzung ist, dass die Interfaces der Messklassen zuvor ins Vokabular geladen wurden:

public \ 3d >voc
messklassen_interfaces >voc


Standardfunktionen der Messklassen:

analog>
Die Funktion analog> übergibt all jene Messdaten in einem Verbund am Stack, die sich in Form von Zeitreihen darstellen lassen. Die dabei verwendete Samplingfrequenz kann mit der Funktion frequency> abgefragt werden.

Beispiel (Ausgeben der Hufhöhe mit richtigem Zeitmaßstab):

selection \ messinstanzen 1 , >> messinstanz
messinstanz frequency> >> frequenz
messinstanz analog> \ Huf_LVz >> vertikalweg
vertikalweg count ramp frequenz * >> zeit
[ zeit vertikalweg ] aplot screen


Enthält die Messinstanz Daten aus einer Messung, bei der mehrere unterschiedliche Messsysteme mit unterschiedlichen Messfrequenzen verwendet wurde, so werden alle Messdaten auf die maximal verwendete Messfrequenz normalisiert.

trajectories>
Die Funktion trajectories> übergibt alle Messdaten, die sich in Form von dreidimensionalen Raumkurven (Trajektorien) darstellen lassen, am Stack. Der übergebene Datensatz ist eine Instanz der Klasse
trajectories_class.

Beispiel:

selection \ messintanzen 1 , trajectories>
0.1 * anima


zeigt alle Trajektorien in einer 3d-Animation im Massstab 1:10.

frequency>
Die Funktion frequency> übergibt die Samplingfrequenz in Hertz am Stack. Enthält die Messung Daten mit unterschiedlicher Samplingfrequenz, so besorgt die Klasse
combi_measurement_class automatisch die Konvertierung aller Messdaten auf die höchste vorkommende Frequenz.

duration>
Die Funktion duration> übergibt die Dauer der Messdatenaufzeichnung in Sekunden. Bei einer Kombinationsmessung mehrerer Messsysteme wird die kürzeste Aufzeichnungsdauer übergeben.

MAL-Homepage Inhaltsverzeichnis


3.2. Mehrfachselektion

Bei Mehrfachselektionen enthält die Variable selektion einen Verbund mit den Daten der Einzelmessungen. Jede Komponente hat die Struktur wie die bei
Einfachselektion beschriebene Struktur von selektion. Der erste Durchgang der ersten Messung lässt sich also folgendermaßen adressieren:

selection 1 , messinstanzen 1 ,

MAL-Homepage Inhaltsverzeichnis


4. BEISPIELE

Die hier angeführten Beispiele betrachten nur die Funktion start_selected unter der Annahme, das die Analyse mit Einfachselektion arbeitet. Die Codes können auch bei einer Analyse vom Typ "Interaktivö unter Konfiguration / Analyse eingegeben und getestet werden.



Die Funktion emed> ist eine Memberfunktion der Messklasse
pliance_measurement_class.

MAL-Homepage Inhaltsverzeichnis