Modul Start
Systemkod
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*/
showDiagnos()
{
/*showDiagnos är en metod som går igenom slutmodulen med alla fallbeskrivningar
och matchar dessa med svarsalternativen i de olika symtommodulerna. Skriver ut
namnet på den diagnos som satts till TRUE.*/ }
exitSytem()
{
/*exitSystem() är en metod som avslutar systemet.*/}
Regelbas
(Start)
systemStart()
/*Variablerna
ålder, feber 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
int ålder;
private
Boolean påverkan, feber;
private
String barnsjukdomar, hudåkommor, förkylningsåkommor, magtarmåkommor,
nydiagnos, ångra;
{
IF (first_time) THEN ställ_fråga (initiering);
IF
(ålder) THEN ställ_fråga (Frågaålder) AND/OR
IF
(allmänpåverkan) THEN ställ_fråga (Frågapåverkan) AND/OR
IF
(feber) THEN ställ_fråga (Frågafeber1) AND/OR
IF
(Frågafeber1)=True THEN ställ_fråga ((Frågafeber2) AND/OR (Frågafeber3));
}
ELSE DO {
/*Välj
symtom nedan.*/
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ågor(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;
}}
Frågeträd (Start)
I
frågeträdet skall förutom nedanstående frågor finnas med avsluta program, ångra
val med mera. Här har vi endast tagit upp de specifika frågorna.
·
Frågaålder: Hur gammalt är barnet? : skal_svar (Välj alternativ
ur intervallet);
·
·
0-3 månader
·
4-6 månader
·
7-12 månader
·
1-2 år
·
2-3år
·
3-6 år
·
7-10 år
·
10-13 år
·
13-16 år
·
Ja (True)
·
Nej (False)
·
Ja (True)
·
Nej (False)
·
Frågafeber2: Om ja, hur hög är febern? : skal_svar (Välj
alternativ ur intervallet);
·
38-39 grader
·
39-40 grader
·
40 grader
·
Frågafeber3: Hur länge har barnet haft feber? : skal_svar (Välj
alternativ ur intervallet);
·
< 1 dygn
·
1 dygn
·
2-3 dygn
·
3-5 dygn
·
5 dygn
·
Frågamage 1: Kräks barnet? : specat_svar (Välj ett alternativ
nedan);
·
Ja (True)
·
Nej (False)
·
Ja (True)
·
Nej (False)
·
Ja (True)
·
Nej (False)
·
Ja (True)
·
Nej (False)
·
Ja (True)
·
Nej (False)
·
Ja (True)
·
Nej (False)
·
Ja (True)
·
Nej (False)
·
Ja (True)
·
Nej (False)
·
Ja (True)
·
Nej (False)
·
Ja (True)
·
Nej (False)
·
Ja (True)
·
Nej (False)
·
Ja (True)
·
Nej (False)
·
Ja (True)
·
Nej (False)