5. Startmodul

 

I startmodulen ligger givetvis huvudprogrammet. Metoden startSystem() anropas varje gång användare börjar köra programmet samt då denne önskar fortsätta. Slutmodulen har som nämnts tidigare endast system underhållare tillgång till för uppdatering eller revidering.

 

void main()

{

 

 /* Huvudprogrammet */

 

IF ("Starta system") THEN start_module.weight = 1000;

IF ("Lägga in ny diagnos") THEN CBS.weight := 900;

 

WHILE (getNextExpertModule());

 

weight :=0;

 

/*Returnerar och kör den modul med högst vikt. Är vikten 0 returneras NULL och villkoret := FALSE*/

 

ångraVal();

 

/* Metod som anropas då användaren ångrar ett eller flera val. Rensar fälten och går tillbaka ett steg.*/

 

fortsättSystem();

 

/* Metod som anropas då användaren valt att fortsätta.*/

 

exitSytem()

 

{ /*exitSystem() är en metod som avslutar systemet.*/}

 

5.1 Regelbas (Start)

 

systemStart()

 

/*Variablerna kräkning, diarré med mera väljs på skärmen då användaren startat systemet (Se bild ovan). Man kan välja att ange ett, fler eller inget alternativ (AND/OR), gå direkt till en viss modul, avsluta, ångra val med mera.*/

 

private Boolean prickar, diarré, hosta, snuva, klåda, magsmärtor, blåsor, halsont, utslag, fläckar, förstoppning;

private String barnsjukdomar, hudåkommor, förkylningsåkommor, magtarmåkommor, nydiagnos, ångra;

{

 

/*Välj symtom nedan.*/

 

IF (first_time) THEN ställ_fråga (initiering);

IF (ställ_frågor(Frågamage1)=True) THEN kräks:=True;

IF (ställ_frågor(Frågamage 2)=True) THEN diarré:=True;

IF (ställ_frågor(Frågamage 3)=True) THEN buksmärta:=True;

IF (ställ_frågor(Frågamage 4)=True) THEN förstoppning:=True;

IF (kräks, diarré, buksmärta, förstoppning,) THEN ModulM.weight :=900

 

} ELSE {

 

IF (ställ_frågor(Frågaförkylning1)=True) THEN snuva:=True;

IF (ställ_frågor(Frågaförkylning2)=True) THEN hosta:=True;

IF (ställ_frågor(Frågaförkylning3)=True) THEN halsont=:True;

IF (snuva, hosta, halsont) THEN ModulF.weight :=800;

 

} ELSE {

 

IF (ställ_frågor(Frågahud1)=True) THEN klåda := True;

IF (ställ_frågor(Frågahud2)=True) THEN utslag := True;

IF (ställ_frågor(Frågahud3)=True) THEN blåsor := True;

IF (ställ_frågor(Frågahud4)=True) THEN fläckar := True;

IF (ställ_frågor(Frågahud5)=True) THEN prickar := True;

IF (klåda, prickar, blåsor, fläckar, utslag) THEN ModulH.weight :=700;

 

} ELSE {

 

IF NOT (kräks, diarré, förstoppning) AND (ställ_fråga (Frågabarnsjukdom1)=True) THEN barnsjukdom:=True;

IF (barnsjukdom) THEN ModulB.weight :=600;

 

} ELSE DO {

 

/*Välj åkomma för att starta respektive modul M, F, H eller B direkt vid start*/

 

IF (magtarmåkommor) THEN ModulM.weight :=500;

ELSE

IF (hudåkommor) THEN ModulH.weight :=400;

ELSE

IF (förkylningsåkommor) THEN ModulF.weight :=300;

ELSE

IF (barnsjukdomar) THEN ModulB.weight :=200;

ELSE

IF (nydiagnos) THEN ModulCBS.weight :=100;

ELSE

IF (avsluta) THEN GOTO exit_system(); /*Avslutar systemet*/

ELSE

IF (fortsätt) THEN GOTO startSystem(); /*Repeterar hela tiden till användaren väljer att sluta*/

ELSE

IF (ångra) THEN ("Rensa fältet och gå tillbaka ett steg");

weight :=0;

}}

 

5.2 Frågeträd (Start)

 

  frågeträdet skall förutom nedanstående frågor finnas med avsluta program, ångra val med mera. Här har jag endast tagit upp de specifika frågorna.

 

 

·        Frågamage 1: Kräks barnet? : alternativ: (Välj ett alternativ nedan);

·        Ja (True)

·        Nej (False)

 

·        Frågamage 2: Har barnet diarré? : alternativ: (Välj ett alternativ nedan);

·        Ja (True)

·        Nej (False)

 

·        Frågamage 3: Har barnet ont i magen? : alternativ: (Välj ett alternativ nedan);

·        Ja (True)

·        Nej (False)

 

·        Frågaförkylning 3: Har barnet ont i halsen? : alternativ: (Välj ett alternativ nedan);

·        Ja (True)

·        Nej (False)

 

·        Frågaförkylning 1: Är barnet snuvigt? : alternativ: (Välj ett alternativ nedan);

·        Ja (True)

·        Nej (False)

 

·        Frågaförkylning 2: Hostar barnet? : alternativ: (Välj ett alternativ nedan);

·        Ja (True)

·        Nej (False)

 

·        Frågahud 1: Har barnet klåda? : alternativ: (Välj ett alternativ nedan);

·        Ja (True)

·        Nej (False)

 

·        Frågamage 4: Är barnet förstoppat? : alternativ: (Välj ett alternativ nedan);

·        Ja (True)

·        Nej (False)

 

·        Frågahud 2: Har barnet utslag? : alternativ: (Välj ett alternativ nedan);

·        Ja (True)

·        Nej (False)

 

·        Frågahud 3: Har barnet blåsor? : alternativ: (Välj ett alternativ nedan);

·        Ja (True)

·        Nej (False)

 

·        Fågahud 4: Har barnet fläckar? : alternativ: (Välj ett alternativ nedan);

·        Ja (True)

·        Nej (False)

 

·        Frågahud 5: Har barnet prickar? : alternativ: (Välj ett alternativ nedan);

·        Ja (True)

·        Nej (False)

 

·        Frågabarnsjukdom 1: Har barnet en barnsjukdom? : alternativ: (Välj ett alternativ nedan);

·        Ja (True)

·        Nej (False)

 

Tillbaka till Hemdoktorn