FunLog++ - History - Cooperation - Frontend - Interpreter - Semantic List - Target Code
FunLog++ Frontend
The FunLog++ Frontend Engine

Die Frontend-Engine ist eine Programm-Schnittstelle, die alle Basis-Aktionen (=Instruktionen) eines Pro.M.D.-Frontends definiert. Die Frontend-Engine arbeitet auf sogenannten Akkumulatoren (=globale Variablen), die von den Instruktionen abgefragt und gesetzt werden können. Die möglichen Benutzeraktionen eines Pro.M.D.-Frontend-Formulars werden in der sogenannten Layout-Datei definiert, die alle beeinflußbaren Charakteristika des Frontends in einer erweiterten SGML-Notation darstellt. Die Frontend-Engine arbeitet durch die beiden folgenden Aufrufe mit der Inference-Engine zusammen:

     fun.exe root(KNOWLEDGE):layout(FORM).

Dieser Aufruf erzeugt eine neue Layout-Datei, welche die Frontend-Engine ab sofort steuert. FORM ist meistens „search" oder „dialog".

     fun.exe root(KNOWLEDGE):infere(TABLE,KEY).

Dieser Aufruf liest aus Tabelle TABLE die Falldaten aus dem Satz mit dem Schlüssel KEY und speichert das Inferenzergebnis in das Ergebnisfeld des gleichen Fallsatzes.

Die beiden Methoden layout/1 und infere/2 werden vom Pro.M.D.-Compiler aus den Regeln einer RUL-Wissensbasis erzeugt. Die Layout-Datei spezifiert das Verhalten des Frontends in einem Kontrollteil (PullDown-Menüleiste und Buttons) und in einem Datenteil (Eingabefelder und Anzeigeelemente). Sie definiert hierzu auch das Datenmodell, welches angibt, wo die Falldaten zu finden sind.


Instruktionssatz der Frontend-Engine

Wissensbasis und Datenbank

ask_current_knowledge
weist der Variablen current_knowledge den im Benutzerdialog erfragten Dateinamen einer Wissensbasis zu.

set_current_knowledge(FILE)
weist der Variablen current_knowledge den Dateinamen FILE einer Wissensbasis zu.

show_current_form(FORM)
berechnet eine neue Layout-Datei, zeigt das neue Formular an und weist den Variablen current_table, current_keyfield, current_resultfield und current_helpsystem entsprechend neue Werte zu.

set_current_table(TABLE)
weist der Variablen current_table die Informationen TABLE zum Zugriff auf eine Falltabelle zu.

create_new_table(TABLE)
weist der Variablen current_table die Informationen TABLE zur Erzeugung einer neuen  Falltabelle zu.

Der aktuelle Datensatz

set_current_record_new
erzeugt in der aktuellen Falltabelle einen neuen Fallsatz und weist dessen Schlüssel der Variablen current_record zu.

set_current_record_first
weist der Variablen current_record den Schlüssel des ersten passenden Fallsatzes zu.

set_current_record_last
weist der Variablen current_record den Schlüssel des letzten passenden Fallsatzes zu.

set_current_record_prev
weist der Variablen current_record den Schlüssel des vorherigen passenden Fallsatzes zu.

set_current_record_next
weist der Variablen current_record den Schlüssel des nächsten passenden Fallsatzes zu.
 

Fallauswahl und Inferenz

show_selection_form
Die im aktuellen Formular angezeigten Daten werden als Suchmaske interpretiert. Diese Instruktion zeigt in einem Fallauswahl-Formular die Liste aller passenden Fallsätze an. Der Benutzer kann hiermit einen Fall auswählen. Der Schlüssel der ausgewählten Satzes wird an current_record zugewiesen. Die genaue Struktur einer Fallzeile muß noch definiert werden.

show_selectmul_form
Falls die aktuelle Suchmaske genau einen Fall definiert, wird dessen Schlüssel an current_record zugewiesen. Ansonsten wird show_selection_form ausgeführt.
 

perform_inference
schickt die Nachricht root(KNOWLEDGE):infere(TABLE,KEY) an den Wissensserver, wobei KNOWLEDGE für die aktuelle Wissensbasis, TABLE die aktuelle Falltabelle und KEY den aktuellen Fallsatz bezeichnen. Der Wissensserver berechnet die Ergebnistexte und trägt sie in die entsprechende Falltabelle ein.
 

Laden, Speichern und Drucken

load_current_record
zeigt die aktuellen Falldaten im aktuellen Formular an.

save_current_record
speichert die im aktuellen Formular angezeigten Falldaten als aktuellen Satz der Falltabelle.

print_result
druckt das als Ergebnis spezifizierte Feld des aktuellen Datensatzes aus.

store_result
speichert das als Ergebnis spezifizierte Feld des aktuellen Datensatzes als Textdatei.

show_print_preview
zeigt in einem typischen print-preview-Fenster den aktuellen Befundbericht an.
 

Hilfe und Ende*

show_helpsystem
zeigt die HTML des aktuellen Hilfesystems in einem HTML-Browser-Fenster an.

no_operation
keine Operation. (nicht definfert)

finish_session
schließt die aktuelle Kommunikation mit dem Wissensserver ab und beendet das Frontend-Programm.


Akkumulatoren der Frontend-Engine

current_knowledge
Diese Variable enthält den vollen Dateinamen der momentan aktuellen Wissensbasis. Zum Beispiel „//promdsvr/kbs/gerinn.rul".

current_table
Diese Variable enthält alle Informationen, die notwendig sind, um eine Datenbanktabelle zu erzeugen, zu löschen und auf ihre Datenfelder lesend oder schreibend zuzugreifen. Die genaue Darstellung dieser Informationen muß noch festgelegt werden.

current_record
Diese Variable enthält den Schlüssel (engl. key) des aktuellen Fallsatzes (engl. record). Ein Beispiel ist „0123" für den Fall Nummer 123.

current_keyfield
Diese Variable enthält den Feldnamen des Schlüssels innerhalb eines Fallsatzes. Zum Beispiel „FallNummer".

current_resultfield
Diese Variable enthält den Feldnamen des Ergebnisberichtes innerhalb eines Fallsatzes. Zum Beispiel „BefundBericht".

current_helpsystem
Diese Variable enthält den Dateinamen der aktuellen Hilfedatei, relativ zu current_knowledge. Zum Beispiel „fallsuchhilfe.html".
 
 

Für Pro.M.D.-Frondends sind nachfolgend beschriebene Kontroll-Aktionen typisch, deren Funktion mit Basis-Aktionen (siehe unten) der Frontend-Engine definiert werden.


Beispiel: Kontroll-Funktionen eines Pro.M.D.-Frontends

Aktionen der Fallsuche

Menu_File_Open:  ask_current_knowledge, show_current_form(„search").

Menu_File_Exit:  finish_session.

Button_Last:     show_current_form(„dialog"), set_current_record_last,
                 load_current_record.

Button_First:    show_current_form(„dialog"), set_current_record_first,
                 load_current_record.

Button_New:      show_current_form(„dialog"), set_current_record_new,
                 load_current_record.

Button_Select:   show_selection_form, show_current_form(„dialog").

Button_Dialog:   show_selectmul_form, show_current_form(„dialog").

Button_Exit:     finish_session.

Button_Help:     show_helpsystem.
 
 

Aktionen des Falldialogs

Menu_File_Open:  ask_current_knowledge, show_current_form(„search").

Menu_File_Exit:  finish_session.

Button_Prev:     save_current_record, set_current_record_prev,
                 load_current_record.

Button_Next:     save_current_record, set_current_record_next,
                 load_current_record.

Button_New:      save_current_record, set_current_record_new,
                 load_current_record.

Button_Answer:   save_current_record, perform_inference, load_table_record.

Button_Result:   save_current_record, perform_inference, show_print_preview

Button_Print:    save_current_record, perform_inference, print_result.

Button_Store:    save_current_record, perform_inference, store_result.

Button_Edit:     no_operation.

Button_Select:   no_operation.

Button_Search:   save_current_record, show_current_form(„search").

Button_Exit:     finish_session.

Button_Help:     show_helpsystem.



Structure of the layout file
 

Die Layoutdatei ist eine Schnittstelle, die Informationen über die für den Aufbau und die Steuerung des Frontends nötigen Daten enthält. Sie wird vom FUNLOG++-System generiert und ist in einer SGML-ähnlichen Notation spezifiziert. Sie besteht aus drei Hauptteilen, deren Zusammenhänge weiter unten erläutert werden.

Der erste Teil ist der sogennante Kontrollteil, der die Kommandos zur Steuerung des Systems enthält.

Der zweite Teil ist der Datenteil; hier werden die Eingabefelder beschrieben.

Der letzte Teil beschreibt das Datenmodell, das dazu dient, die Datenbankfelder zu identifizieren und die Eingabefelder des Datenteils anzuzeigen.



Example: A Pro.M.D. source file  and its  corresponding layout file

The source file

frage lautet
  "<CENTER><B><FONT SIZE=+2>Gerinnungs-Diagnostik</FONT></B></CENTER>"
  in seite 1/1.

frage labnr         lautet "LaborNummer: "  in seite 1/2/1*1.
frage einsender     lautet "Einsender:   "  in seite 1/2/2*1.

frage name          lautet "Name:    "      in seite 1/2/1*2.
frage vorname       lautet "Vorname: "      in seite 1/2/2*2.

frage gdatum        lautet "Geburtsdatum: " in seite 1/2/1*3 breite 10 hoehe 1.
frage tdatum        lautet "Tagesdatum:   " in seite 1/2/2*3 breite 10 hoehe 1.

frage fragestellung                        in seite 1/3     breite 50 hoehe 1.

begriff fragestellung sei 'V.a. Hämophilie A'
                     oder 'V.a. Hämophilie B'
                     oder 'V.a. Thrombophilie'.
/* Auswahl-Typ geht noch nicht */

frage quick         lautet "Quick:   "      in seite 1/4/1*2.
frage ptt           lautet "PTT:     "      in seite 1/4/2*2.
frage tz            lautet "TZ:      "      in seite 1/4/3*2.
frage fibrinogen    lautet "F'gen:   "      in seite 1/4/4*2.

frage thrombos      lautet "Thrombozyten: " in seite 1/4/1*1.
frage blutungszeit  lautet "Blutungszeit: " in seite 1/4/3*1.

ergebnis kurzbefund lautet "Kurzbefund: "              in seite 1/5.

frage anmerkung                             in seite 2/1 breite 66 hoehe 4.

ergebnis langbefund lautet "Langbefund:"    in seite 2/2 breite 66 hoehe 8.

fakt kurzbefund = "V.a. Hämophilie A".
fakt langbefund = "Bei Herrn/Frau " # name # " besteht " # kurzbefund.

ergebnis            lautet langbefund.

fakt ende.



The layout file

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD> <TITLE>Pro.M.D.-WWW-System</TITLE>
  <COMMAND NAME="Menu_File_Open">
   <ACTION NAME="ask_current_knowledge">       </ACTION>
   <ACTION NAME="show_current_form">
            <PARAM NAME="face" VALUE="search"> </PARAM>
   </ACTION>
   </COMMAND>
  <COMMAND NAME="Menu_File_Exit">
   <ACTION NAME="finish_session">              </ACTION>
   </COMMAND>
  <COMMAND NAME="Button_Prev">
   <ACTION NAME="save_current_record">         </ACTION>
   <ACTION NAME="set_current_record_prev">     </ACTION>
   <ACTION NAME="load_current_record">         </ACTION>
   </COMMAND>
  <COMMAND NAME="Button_Next">
   <ACTION NAME="save_current_record">         </ACTION>
   <ACTION NAME="set_current_record_next">     </ACTION>
   <ACTION NAME="load_current_record">         </ACTION>
   </COMMAND>
  <COMMAND NAME="Button_New">
   <ACTION NAME="save_current_record">         </ACTION>
   <ACTION NAME="set_current_record_new">      </ACTION>
   <ACTION NAME="load_current_record">         </ACTION>
   </COMMAND>
  <COMMAND NAME="Button_Answer">
   <ACTION NAME="save_current_record">         </ACTION>
   <ACTION NAME="perform_inference">           </ACTION>
   <ACTION NAME="load_current_record">         </ACTION>
   </COMMAND>
  <COMMAND NAME="Button_Result">
   <ACTION NAME="save_current_record">         </ACTION>
   <ACTION NAME="perform_inference">           </ACTION>
   <ACTION NAME="show_print_preview">          </ACTION>
   </COMMAND>
  <COMMAND NAME="Button_Print">
   <ACTION NAME="save_current_record">         </ACTION>
   <ACTION NAME="perform_inference">           </ACTION>
   <ACTION NAME="print_result">                </ACTION>
   </COMMAND>
  <COMMAND NAME="Button_Store">
   <ACTION NAME="save_current_record">         </ACTION>
   <ACTION NAME="perform_inference">           </ACTION>
   <ACTION NAME="store_result">                </ACTION>
   </COMMAND>
  <COMMAND NAME="Button_Edit">
   <ACTION NAME="no_operation">                </ACTION>
   </COMMAND>
  <COMMAND NAME="Button_Select">
   <ACTION NAME="no_operation">                </ACTION>
   </COMMAND>
  <COMMAND NAME="Button_Search">
   <ACTION NAME="save_current_record">         </ACTION>
   <ACTION NAME="show_current_form">
            <PARAM NAME="face" VALUE="search"> </PARAM>
   </ACTION>
   </COMMAND>
  <COMMAND NAME="Button_Exit">
   <ACTION NAME="finish_session">              </ACTION>
   </COMMAND>
  <COMMAND NAME="Button_Help">
   <ACTION NAME="show_helpsystem">             </ACTION>
   </COMMAND>

</HEAD>
<FORM ACTION=xxx METHOD="POST">

<TABLE BORDER=5 COLS=1>
<TR> <TD><!-- FallDialog-Kontrolle -->
       <SELECT NAME="File">
         <OPTION> <B>FILE</B> </OPTION>
         <OPTION onClick="Menu_File_New">  New </OPTION>
         <OPTION onClick="Menu_File_Open"> Open </OPTION>
         <OPTION onClick="Menu_File_Save"> Save </OPTION>
         <OPTION onClick="Menu_File_Exit"> Exit </OPTION>
       </SELECT>
       <SELECT NAME="Edit">
         <OPTION> <B>EDIT</B> </OPTION>
         <OPTION onClick="Menu_Edit_Cut">   Cut </OPTION>
         <OPTION onClick="Menu_Edit_Copy">  Copy </OPTION>
         <OPTION onClick="Menu_Edit_Paste"> Paste </OPTION>
       </SELECT>
       <INPUT TYPE="submit" VALUE="GO"> </INPUT>
<BR> </BR>
       <INPUT onClick="Button_Prev"     TYPE="submit" VALUE="PREV"> </INPUT>
       <INPUT onClick="Button_Next"     TYPE="submit" VALUE="NEXT"> </INPUT>
       <INPUT onClick="Button_New"      TYPE="submit" VALUE="NEW"> </INPUT>
       <INPUT onClick="Button_Answer"   TYPE="submit" VALUE="ANSWER"> </INPUT>
       <INPUT onClick="Button_Result"   TYPE="submit" VALUE="RESULT"> </INPUT>
       <INPUT onClick="Button_Print"    TYPE="submit" VALUE="PRINT"> </INPUT>
       <INPUT onClick="Button_Store"    TYPE="submit" VALUE="STORE"> </INPUT>
       <INPUT onClick="Button_Edit"     TYPE="submit" VALUE="EDIT"> </INPUT>
       <INPUT onClick="Button_Select"   TYPE="submit" VALUE="SELECT"> </INPUT>
       <INPUT onClick="Button_Search"   TYPE="submit" VALUE="SEARCH"> </INPUT>
       <INPUT onClick="Button_Exit"     TYPE="submit" VALUE="EXIT"> </INPUT>
       <INPUT onClick="Button_Help"     TYPE="submit" VALUE="HELP"> </INPUT>

</TD> </TR>

<TR> <TD><!-- FallDialog-Felder -->

<!-- FD-Begin -->

<TABLE BORDER=1 WIDTH="100%">
  <TR>
    <TD>
<TABLE BORDER=1 WIDTH="100%">
  <TR>
    <TD BGCOLOR="#FFFF99">
    <CENTER><B><FONT SIZE=+2>Gerinnungs-Diagnostik</FONT></B></CENTER>
    </TD>
  </TR>
  <TR>
    <TD>
<TABLE BORDER=1 WIDTH="100%">
  <TR>
    <TD BGCOLOR="#FFFF99">
    <PRE><LABEL for="labnr">LaborNummer: </LABEL> <INPUT
        LABEL="LaborNummer: " TYPE="text"
        NAME="labnr" SIZE="16,1">    </INPUT></PRE>
    </TD>
    <TD BGCOLOR="#FFFF99">
    <PRE><LABEL for="name">Name:    </LABEL> <INPUT
        LABEL="Name:    " TYPE="text"
        NAME="name" SIZE="16,1">    </INPUT></PRE>
    </TD>
    <TD BGCOLOR="#FFFF99">
    <PRE><LABEL for="gdatum">Geburtsdatum: </LABEL> <INPUT
        LABEL="Geburtsdatum: " TYPE="text"
        NAME="gdatum" SIZE="10,1">    </INPUT></PRE>
    </TD>
  </TR>
  <TR>
    <TD BGCOLOR="#FFFF99">
    <PRE><LABEL for="einsender">Einsender:   </LABEL> <INPUT
        LABEL="Einsender:   " TYPE="text"
        NAME="einsender" SIZE="16,1">    </INPUT></PRE>
    </TD>
    <TD BGCOLOR="#FFFF99">
    <PRE><LABEL for="vorname">Vorname: </LABEL> <INPUT
        LABEL="Vorname: " TYPE="text"
        NAME="vorname" SIZE="16,1">    </INPUT></PRE>
    </TD>
    <TD BGCOLOR="#FFFF99">
    <PRE><LABEL for="tdatum">Tagesdatum:   </LABEL> <INPUT
        LABEL="Tagesdatum:   " TYPE="text"
        NAME="tdatum" SIZE="10,1">    </INPUT></PRE>
    </TD>
  </TR>
</TABLE></TD>
  </TR>
  <TR>
    <TD BGCOLOR="#FFFF99">
    <PRE><LABEL for="fragestellung">fragestellung: </LABEL> <INPUT
        LABEL="fragestellung: " TYPE="text"
        NAME="fragestellung" SIZE="50,1">    </INPUT></PRE>
    </TD>
  </TR>
  <TR>
    <TD>
<TABLE BORDER=1 WIDTH="100%">
  <TR>
    <TD BGCOLOR="#FFFF99">
    <PRE><LABEL for="thrombos">Thrombozyten: </LABEL> <INPUT
        LABEL="Thrombozyten: " TYPE="text"
        NAME="thrombos" SIZE="16,1">    </INPUT></PRE>
    </TD>
    <TD BGCOLOR="#FFFF99">
    <PRE><LABEL for="quick">Quick:   </LABEL> <INPUT
        LABEL="Quick:   " TYPE="text"
        NAME="quick" SIZE="16,1">    </INPUT></PRE>
    </TD>
  </TR>
  <TR><TD BGCOLOR="#FFFF99"> </TD>
    <TD BGCOLOR="#FFFF99">
    <PRE><LABEL for="ptt">PTT:     </LABEL> <INPUT
        LABEL="PTT:     " TYPE="text"
        NAME="ptt" SIZE="16,1">    </INPUT></PRE>
    </TD>
  </TR>
  <TR>
    <TD BGCOLOR="#FFFF99">
    <PRE><LABEL for="blutungszeit">Blutungszeit: </LABEL> <INPUT
        LABEL="Blutungszeit: " TYPE="text"
        NAME="blutungszeit" SIZE="16,1">    </INPUT></PRE>
    </TD>
    <TD BGCOLOR="#FFFF99">
    <PRE><LABEL for="tz">TZ:      </LABEL> <INPUT
        LABEL="TZ:      " TYPE="text"
        NAME="tz" SIZE="16,1">    </INPUT></PRE>
    </TD>
  </TR>
  <TR><TD BGCOLOR="#FFFF99"> </TD>
    <TD BGCOLOR="#FFFF99">
    <PRE><LABEL for="fibrinogen">F'gen:   </LABEL> <INPUT
        LABEL="F'gen:   " TYPE="text"
        NAME="fibrinogen" SIZE="16,1">    </INPUT></PRE>
    </TD>
  </TR>
</TABLE></TD>
  </TR>
  <TR>
    <TD BGCOLOR="#FFFF99">
    <PRE><LABEL for="kurzbefund">Kurzbefund: </LABEL> <EMBED
        NAME="kurzbefund" MIMETYPE="text/plain"
        WIDTH=128 HEIGHT=8>    </EMBED></PRE>
    </TD>
  </TR>
</TABLE></TD>
  </TR>
  <TR>
    <TD>
<TABLE BORDER=1 WIDTH="100%">
  <TR>
    <TD BGCOLOR="#FFFF99">
    <PRE><LABEL for="anmerkung">anmerkung: </LABEL> <TEXTAREA
        LABEL="anmerkung: " TYPE="text"
        NAME="anmerkung" COLS=66 ROWS=4>    </TEXTAREA></PRE>
    </TD>
  </TR>
  <TR>
    <TD BGCOLOR="#FFFF99">
    <PRE><LABEL for="langbefund">Langbefund:</LABEL> <EMBED
        NAME="langbefund" MIMETYPE="text/plain"
        WIDTH=528 HEIGHT=64>    </EMBED></PRE>
    </TD>
  </TR>
</TABLE></TD>
  </TR>
</TABLE>
<!-- FD-End -->
 

</TD> </TR>

<TR> <TD>

<TABLE BORDER=1 COLS=3>
        <TR><TD>KB=aaaaa </TD> <TD>DB=bbbbb </TD> <TD>Case=ccccc </TD></TR>

</TABLE>

</TD> </TR>

</TABLE>

<DATA><!-- FallDialog-Daten -->
<ACCU CURRKB="quarto" CURRDB="CaseTable" CURRHELP="PromdDocs\DialogH.Htm"> </ACCU>
<DBTABLE NAME="CaseTable" SOURCE="quartoCases"
         TABLE="CaseTable" KEY="CaseKey" RESULT="CaseResult">
<FIELD NAME="ohneBegriff" DBNAME="ohneBegriff" DBTYPE="text" DBSIZE="0"> </FIELD>
<FIELD NAME="labnr" DBNAME="labnr" DBTYPE="text" DBSIZE="0"> </FIELD>
<FIELD NAME="einsender" DBNAME="einsender" DBTYPE="text" DBSIZE="0"> </FIELD>
<FIELD NAME="name" DBNAME="name" DBTYPE="text" DBSIZE="0"> </FIELD>
<FIELD NAME="vorname" DBNAME="vorname" DBTYPE="text" DBSIZE="0"> </FIELD>
<FIELD NAME="gdatum" DBNAME="gdatum" DBTYPE="text" DBSIZE="10"> </FIELD>
<FIELD NAME="tdatum" DBNAME="tdatum" DBTYPE="text" DBSIZE="10"> </FIELD>
<FIELD NAME="fragestellung" DBNAME="fragestellung" DBTYPE="text" DBSIZE="50"> </FIELD>
<FIELD NAME="quick" DBNAME="quick" DBTYPE="text" DBSIZE="0"> </FIELD>
<FIELD NAME="ptt" DBNAME="ptt" DBTYPE="text" DBSIZE="0"> </FIELD>
<FIELD NAME="tz" DBNAME="tz" DBTYPE="text" DBSIZE="0"> </FIELD>
<FIELD NAME="fibrinogen" DBNAME="fibrinogen" DBTYPE="text" DBSIZE="0"> </FIELD>
<FIELD NAME="thrombos" DBNAME="thrombos" DBTYPE="text" DBSIZE="0"> </FIELD>
<FIELD NAME="blutungszeit" DBNAME="blutungszeit" DBTYPE="text" DBSIZE="0"> </FIELD>
<FIELD NAME="kurzbefund" DBNAME="kurzbefund" DBTYPE="text" DBSIZE="0"> </FIELD>
<FIELD NAME="anmerkung" DBNAME="anmerkung" DBTYPE="text" DBSIZE="264"> </FIELD>
<FIELD NAME="langbefund" DBNAME="langbefund" DBTYPE="text" DBSIZE="528"> </FIELD>
</DBTABLE>
</DATA>

<!-- /FRAMESET>
</FORM>
</HTML>



Gerinnungs-Diagnostik
     
     
     
     
     
     
 
     
     
     
     
     
     
     
 
     
 
 
     
 
KB=aaaaa  DB=bbbbb  Case=ccccc 
 


 
FunLog++ - History - Cooperation - Frontend - Interpreter - Semantic List - Target Code
Last modification: Amadou / B. Pohl 17.April 1997 / 24.Oktober 2000