startimagemap.lg wird innerhalb der HEART-2DPAGE zur Verwaltung der sensitiven Bildern atrium.quadrant[1-4].gif und ventricle.quadrant[1-4].gif ( [1-4]: eine Zahl im Bereich 1 bis 4) benötigt.
<A HREF = "url"> <IMG SRC = "bild.gif" ISMAP> </A>
url gibt den URL des CGI-Skriptes an, das vom Server nach der Mausselektierung ausgeführt werden soll. Dem CGI-Skript werden die Mauskoordianten relativ zur linken oberen Ecke mitgeteilt. Das Skript ermittelt anhand dieser Koordinaten den selektierten Bereich und führt die zugehörige Aktion aus. Im Allgemeinen werden Bereich und Aktion in einer Konfigurationsdatei (Mapdatei) definiert sein. Das Attribut ISMAP zeigt dem Client an, daß bild.gif kein gewöhnliches Bild, sondern ein sensitives ist. Die Übergabe der Mauskoordianten vom Client an den Server geschieht im URL. Dazu wird an url der Term ?x,y angehängt - x,y stellt die numerische Koordinatenangabe dar. Der Server erhält den URL url?x,y und wandelt ihn gemäß der CGI-Spezifikation um: Das Paar x,y wird in die Environment-Variable QUERY_STRING eingetragen. Das Skript liest die Variable aus, ermittelt anhand der Koordinate den selektierten Bereich und führt die in der Mapdatei zugeordnete Aktion aus.
Innerhalb der HEART-2DPAGE wird als auswertendes CGI-Skript das Programm Imagemap verwendet. Es verwaltet mehrere sensitive Bilder. In obigen URL url muß daher zusätzlich eingetragen werden, um welches sensitives Bild es sich handelt. Dies geschieht durch:
<A HREF = "url/map"> <IMG SRC = "bild.gif" ISMAP> </A>
Imagemap besitzt eine Konfigurationsdatei, in der allen sensitiven Bildern eine Mapdatei zugeordnet ist. map kann damit eindeutig einer Mapdatei zugeordnet werden. Erst die Mapdatei enthält die Zuordnung zwischen selektiertem Bereich und der auszuführenden Aktion.
Zusätzlich existieren die Bilder atrium.quadrant[1-4].gif bzw. ventricle.quadrant[1-4].gif ( [1-4] bedeutet: eine Zahl im Bereich 1 bis 4). Die die vier Quadranten der beiden Gel-Bilder in vergrößerter Form darstellen (erstellt durch make_quadrant_images).
Um die vergrößerten Quadrantenbilder atrium.quadrant[1-4].gif und ventricle.quadrant[1-4].gif ebenfalls klickbar zu machen, wären entsprechende Mapdateien nötig. atrium.map und ventricle.map können nicht einfach übernommen werden, da atrium.quadrant[1-4].gif und ATRIUM_ORIG.gif bzw. ventricle.quadrant[1-4].gif und VENTRICLE_ORIG.gif über unterschiedliche Koordinatenachsen verfügen.
atrium.quadrant[1-4].gif bzw. ventricle.quadrant[1-4].gif wurden von ATRIUM_ORIG.gif bzw. VENTRICLE_ORIG.gif durch Vergrößerung und Ausschneiden abgeleitet. D.h. es besteht ein Zusammenhang zwischen den Quadrantenbildern und ihrem jeweiligen Original.
Diesen Zusammenhang nutzt startimagemap.lg. Es bildet die Position eines beliebigen Quadrantenbildpunktes auf die Position des gleichen Punktes im Originalbild ab.
Die Quadrantenbilder können somit sensitiv bei Verwendung der Mapdateien atrium.map und ventricle.map gemacht werden. atrium.quadrant[1-4].gif und ventricle.quadrant[1-4].gif geben, damit sie sensitiv werden, als CGI-Skript nicht imagemap sondern startimagemap.lg an.
startimagemap.lg wandelt die erhaltene Koordiante zunächst um. Der selektierte Punkt aus dem vergrößerten Quadrantenbild wird auf seine ursprüngliche Position im Originalbild (ATRIUM_ORIG.gif bzw. VENTRICLE_ORIG.gif) transformiert. Anschließend wird imagemap mit der berechneten Koordinate aufgerufen und die in der Mapdatei vorgegebene Aktion ausgeführt.
Wichtig:
Die Transformation findet in Abhängigkeit des
Vergrößerungsfaktor und eines Offsets statt (die
Quadranten überschneiden sich). Wird einer der Werte
geändert
(make_quadrant_images),
so muß das Skript mit den neuen Werten angepaßt werden.
Die Übergabe der Koordinaten vom WWW-Server an startimagemap.lg erfolgt in der Environment-Variable QUERY_STRING, sie muß folgende Form besitzen:
QUERY_STRING = x,y
Die Übergabe des Quadranten und der Bildart (Ventricle, Atrium) geschieht in PATH_INFO in folgender Form:
PATH_INFO = /bildquadrant
Es findet keine Fehlerabfrage statt; d. h. QUERY_STRING und PATH_INFO sollten immer die oben beschriebene Form besitzen!