Está en la página 1de 7

% Autor: Mariana Isabel V. T.

% Fecha: 02/12/2014
% librerias que usa prolog para la interfaz grafica
:- use_module(library(pce)).
:- pce_image_directory('./imagenes').
:- use_module(library(pce_style_item)).
:- dynamic color/2.
% metodo para llamar a una imagen con x nombre
resource(portada, image, image('portada.jpg')).
resource(principal, image, image('principal.bmp')).
resource(dengue, image, image('dengue.jpg')).
resource(gripeb, image, image('gripeb.jpg')).
resource(gripec, image, image('gripec.jpg')).
resource(h1n1, image, image('h1n1.jpg')).
resource(h3n2, image, image('h3n2.jpg')).
resource(h5n1, image, image('h5n1.jpg')).
resource(sdengue, image, image('sdengue.jpg')).
resource(sgripeb, image, image('sgripeb.jpg')).
resource(sgripec, image, image('sgripec.jpg')).
resource(sh1n1, image, image('sh1n1.jpg')).
resource(sh3n2, image, image('sh3n2.jpg')).
resource(sh5n1, image, image('sh5n1.jpg')).
esrespuesta('si').
esrespuesta('no').
espregunta('Fiebre?',X):esrespuesta(X).
espregunta('Dolor de cabeza?',X):esrespuesta(X).
espregunta('Dolor en los ojos?',X):esrespuesta(X).
espregunta('Dolor en las articulaciones?',X):-esrespuesta(X).
espregunta('Dolores musculares?',X):esrespuesta(X).
espregunta('Debilidad general?',X):esrespuesta(X).
espregunta('Perdida de apetito?',X):esrespuesta(X).
espregunta('Nauseas?',X):esrespuesta(X).
espregunta('Vomitos?',X):esrespuesta(X).
espregunta('Picor en el cuerpo?',X):- esrespuesta(X).
espregunta('Escalofrios?',X):esrespuesta(X).
espregunta('Estornudo?',X):esrespuesta(X).
espregunta('Rinitis y congestion nasal?',X):-esrespuesta(X).
espregunta('Tos?',X):esrespuesta(X).
espregunta('Dolor de garganta ronquera?',X):-esrespuesta(X).
espregunta('Sudoracion?',X):esrespuesta(X).
espregunta('H1N1',X):- esrespuesta(X).
espregunta('H3N2',X):- esrespuesta(X).
espregunta('H5N1',X):- esrespuesta(X).
% ventana principal para la portada

inicio:new(@interfaz,dialog('Bienvenido al Sistema Experto Diagnosticador de en enfermedades')),


send(@interfaz,size,size(880,655)),
mostrar_imagen(@interfaz, portada), % llama al metodo mostrar imagen
new(BotonComenzar,button('INICIAR
PROGRAMA',and(message(@prolog,main),and(message(@interfaz,destroy),message(@interfaz,free)) ))),
new(BotonSalir,button('SALIR',and(message(@interfaz,destroy),message(@interfaz,free)))),
send(@interfaz,append(BotonComenzar)),
send(@interfaz,append(BotonSalir)),
send(@interfaz, display,BotonComenzar,point(50,500)),
send(@interfaz, display,BotonSalir,point(250,500)),
send(@interfaz,open_centered).
% ventana secundaria SISTEMA EXPERTO
main:new(D,dialog('SISTEMA EXPERTO DE DIAGNOSTICO Y CLASIFICACION DE GRIPE')),
send(D,size,size(820,565)), % ancho alto
send(D,colour,colour(black)),
send(D, append, new(Menu, menu_bar)),
send(Menu, append, new(Inicio, popup(inicio))),
send(Menu, append, new(Enfermedad, popup(enfermedad))),
send(Menu, append, new(Sintoma, popup(sintoma))),
send(Menu, append, new(Ayuda, popup(ayuda))),
send_list(Inicio, append,[menu_item(salir, message(D,destroy))]),
send_list(Enfermedad, append,[menu_item(enfermedad_A,message(@prolog,ir_a_enfermedad))]),
send_list(Enfermedad, append,[menu_item(enfermedad_B,message(@prolog,ir_a_sintomas_b))]),
send_list(Sintoma, append,[menu_item(sintomas, message(@prolog,ir_a_sintomas_c))]),
send_list(Ayuda, append, [menu_item(pagina_oficial, message(@display,
inform,'www.diagnosticodegripeprolog.16mb.com'))]),
send_list(Ayuda, append, [menu_item(autor, message(@display, inform,'MARIANA ISABEL VILLCA TARRAGA'))]),
mostrar_imagen(D, principal),
send(D,open_centered).
% metodo para imagen portada principal
mostrar_imagen(Pantalla, Imagen):new(Figura, figure),
new(Bitmap, bitmap(resource(Imagen),@on)),
send(Bitmap, name, 1),
send(Figura, display, Bitmap),
send(Figura, status, 1),
send(Pantalla, display,Figura,point(10,30)).
%%%%%%%%%%%%%%%%% GRIPE C %%%%%%%%%%%%%%%%%%%%%%%%%%%%
% metodo para las primeras preguntas gripe C
ir_a_sintomas_c:new(D,dialog('RESPONDE A LAS PREGUNTAS')),
new(Pre1,menu('Fiebre?')),
send_list(Pre1,append,[si,no]),

new(Pre2,menu('Dolor de cabeza?')),
send_list(Pre2,append,[si,no]),
new(Pre3,menu('Dolor en los ojos?')),
send_list(Pre3,append,[si,no]),
new(Pre4,menu('Dolor en las articulaciones?')),send_list(Pre4,append,[si,no]),
new(Pre5,menu('Dolores musculares?')),
send_list(Pre5,append,[si,no]),
new(Pre6,menu('Debilidad general?')),
send_list(Pre6,append,[si,no]),
new(Pre7,menu('Perdida de apetito?')),
send_list(Pre7,append,[si,no]),
send(D,append,Pre1),
send(D,append,Pre2),
send(D,append,Pre3),
send(D,append,Pre4),
send(D,append,Pre5),
send(D,append,Pre6),
send(D,append,Pre7),
new(B,button(siguiente,and(message(@prolog,ir_a_sintomas_c_correccion,Pre1?selection,Pre2?selection,Pre3?
selection,Pre4?selection,Pre5?selection,Pre6?selection,Pre7?selection),message(D,destroy)))),
send(D,append,B),
send(D,open_centered).
% metodo validando los radiobuton de primera pregunta
ir_a_sintomas_c_correccion(P1,P2,P3,P4,P5,P6,P7):espregunta('Fiebre?',P1),
P1='si',
espregunta('Dolor de cabeza?',P2),
P2='si',
espregunta('Dolor en los ojos?',P3),
P3='si',
espregunta('Dolor en las articulaciones?',P4),P4='si',
espregunta('Dolores musculares?',P5),
P5='si',
espregunta('Debilidad general?',P6),
P6='si',
espregunta('Perdida de apetito?',P7),
P7='si',
ir_a_sintomas_c_dos.
% metodo si no se elige correctamente los sintomas
ir_a_sintomas_c_correccion(_,_,_,_,_,_,_):new(D,dialog('ERROR')),
new(L,label(l,'ENFERMEDAD NO DETERMINADA',font('times','roman',16))),
new(B,button(volver_a_consultar,message(D,destroy))),send(D,append,B),
send(D,append,L),
send(D,open_centered).

% metodo para las segundas preguntas gripe C


ir_a_sintomas_c_dos:new(D,dialog('RESPONDE A LAS PREGUNTAS')),
new(Pre1,menu('Nauseas?')),
send_list(Pre1,append,[si,no]),
new(Pre2,menu('Vomitos?')),
send_list(Pre2,append,[si,no]),
new(Pre3,menu('Picor en el cuerpo?')),
send_list(Pre3,append,[si,no]),
new(Pre4,menu('Escalofrios?')),
send_list(Pre4,append,[si,no]),
new(Pre5,menu('Estornudo?')),
send_list(Pre5,append,[si,no]),
new(Pre6,menu('Rinitis y congestion nasal?')),send_list(Pre6,append,[si,no]),

new(Pre7,menu('Tos?')),
send_list(Pre7,append,[si,no]),
new(Pre8,menu('Dolor de garganta ronquera?')),send_list(Pre8,append,[si,no]),
new(Pre9,menu('Sudoracion?')),
send_list(Pre9,append,[si,no]),
send(D,append,Pre1),
send(D,append,Pre2),
send(D,append,Pre3),
send(D,append,Pre4),
send(D,append,Pre5),
send(D,append,Pre6),
send(D,append,Pre7),
send(D,append,Pre8),
send(D,append,Pre9),
new(A,button(atras,and(message(@prolog,ir_a_sintomas_c),message(D,destroy)))),
new(B,button(siguiente,and(message(@prolog,ir_a_sintomas_c_dos_correccion,Pre1?selection,Pre2?selection,
Pre3?selection,Pre4?selection,Pre5?selection,Pre6?selection,Pre7?selection,Pre8?selection,Pre9?selection),mes
sage(D,destroy)))),
send(D,append,A),
send(D,append,B),
send(D,open_centered).
% metodo validando radiobuton segunda pregunta DENGUE
ir_a_sintomas_c_dos_correccion(P1,P2,P3,P4,P5,P6,P7,P8,P9):espregunta('Nauseas?',P1),
P1='si',
espregunta('Vomitos?',P2),
P2='si',
espregunta('Picor en el cuerpo?',P3),
P3='si',
espregunta('Escalofrios?',P4),
P4='no',
espregunta('Estornudo?',P5),
P5='no',
espregunta('Rinitis y congestion nasal?',P6),
P6='no',
espregunta('Tos?',P7),
P7='no',
espregunta('Dolor de garganta ronquera?',P8),
P8='no',
espregunta('Sudoracion?',P9),
P9='no',
ir_a_dengue_diagnostico.
% metodo validando radiobuton segunda pregunta GRIPE
ir_a_sintomas_c_dos_correccion(P1,P2,P3,P4,P5,P6,P7,P8,P9):espregunta('Nauseas?',P1),
P1='no',
espregunta('Vomitos?',P2),
P2='no',
espregunta('Picor en el cuerpo?',P3),
P3='no',
espregunta('Escalofrios?',P4),
P4='si',
espregunta('Estornudo?',P5),
P5='si',
espregunta('Rinitis y congestion nasal?',P6),
P6='si',
espregunta('Tos?',P7),
P7='si',
espregunta('Dolor de garganta ronquera?',P8),
P8='si',
espregunta('Sudoracion?',P9),
P9='si',
ir_a_gripe_diagnostico.
% metodo si no se elige correctamente los sintomas

ir_a_sintomas_c_dos_correccion(_,_,_,_,_,_,_,_,_):new(D,dialog('ERROR')),
new(L,label(l,'ENFERMEDAD NO DETERMINADA',font('times','roman',16))),
new(B1,button(atras,and(message(@prolog,ir_a_sintomas_c_dos),message(D,destroy) ))),
send(D,append,B1),
send(D,append,L),
send(D,open_centered).
% metodo que muestra el diagnostico del dengue
ir_a_dengue_diagnostico:new(D,dialog('SINTOMAS DE LA ENFERMEDAD')),
mostrar_imagen(D,sdengue),
new(B,button(tratamiento,and(message(@prolog,ir_a_dengue_tratamiento),message(D,destroy)))),
send(D,append,B),
send(D,open_centered).
% metodo que muestra el tratamiento del dengue
ir_a_dengue_tratamiento:new(D,dialog('TRATAMIENTO DE LA ENFERMEDAD')),
mostrar_imagen(D,dengue),
new(B,button(volver_a_consultar,message(D,destroy))),send(D,append,B),
send(D,open_centered).
% metodo que muestra el diagnostico de la gripe c
ir_a_gripe_diagnostico:new(D,dialog('SINTOMAS DE LA ENFERMEDAD')),
mostrar_imagen(D,sgripec),
new(B,button(tratamiento,and(message(@prolog,ir_a_gripe_tratamiento),message(D,destroy)))),
send(D,append,B),
send(D,open_centered).
% metodo que muestra el tratamiento de la gripe c
ir_a_gripe_tratamiento:new(D,dialog('TRATAMIENTO DE LA ENFERMEDAD')),
mostrar_imagen(D,gripec),
new(B,button(volver_a_consultar,message(D,destroy))),send(D,append,B),
send(D,open_centered).
%%%%%%%%%%%%%%%%% GRIPE B %%%%%%%%%%%%%%%%%%%%%%%%%
% metodo para mostrar los sintomas de la gripe B
ir_a_sintomas_b:new(D,dialog('SINTOMAS DE LA ENFERMEDAD TIPO B')),
mostrar_imagen(D,sgripeb),
new(B,button(tratamiento,and(message(@prolog,ir_a_tratamiento_b),message(D,destroy)))),
send(D,append,B),
send(D,open_centered).
% metodo para mostrar el tratamiento gripe B

ir_a_tratamiento_b:new(D,dialog('TRATAMIENTO DE LA ENFERMEDAD')),
mostrar_imagen(D,gripeb),
new(B,button(volver_a_consultar,message(D,destroy))),send(D,append,B),
send(D,open_centered).
%%%%%%%%%%%%%%%%% GRIPE A %%%%%%%%%%%%%%%%%%%%%%%%%
% metodo clasificacion de gripe A
ir_a_enfermedad:new(D,dialog('Clasificacion de la gripe')),
new(Pre1,menu('H1N1')), send_list(Pre1,append,[si,no]),
new(Pre2,menu('H3N2')), send_list(Pre2,append,[si,no]),
new(Pre3,menu('H5N1')), send_list(Pre3,append,[si,no]),
send(D,append,Pre1),
send(D,append,Pre2),
send(D,append,Pre3),
new(B1,button(volver_a_consultar,message(D,destroy))),send(D,append,B1),
new(B,button(siguiente,and(message(@prolog,ir_a_enfermedad_correccion,Pre1?selection,Pre2?selection,Pre3
?selection),message(D,destroy) ))),
send(D,append,B),
send(D,open,point(350,350)).
% metodo validando radiobuton eligiendo
ir_a_enfermedad_correccion(P1,P2,P3):espregunta('H1N1',P1), P1='si',
espregunta('H3N2',P2), P2='no',
espregunta('H5N1',P3), P3='no',
ir_a_diagnostico_ah1n1.
% metodo validando radiobuton eligiendo
ir_a_enfermedad_correccion(P1,P2,P3):espregunta('H1N1',P1), P1='no',
espregunta('H3N2',P2), P2='si',
espregunta('H5N1',P3), P3='no',
ir_a_diagnostico_ah3n2.
% metodo validando radiobuton eligiendo
ir_a_enfermedad_correccion(P1,P2,P3):espregunta('H1N1',P1), P1='no',
espregunta('H3N2',P2), P2='no',
espregunta('H5N1',P3), P3='si',
ir_a_diagnostico_ah5n1.
% metodo si no se elige correctamente
ir_a_enfermedad_correccion(_,_,_):-new(D,dialog('ERROR')),
new(L,label(l,'ERROR ELIJA SOLO UNA OPCION',font('times','roman',16))),
new(B2,button(volver_a_consultar,message(D,destroy))),send(D,append,B2),
send(D,append,L),
send(D,open,point_centered).

% metodo para mostrar los sintomas de AH1N1


ir_a_diagnostico_ah1n1:new(D,dialog('SINTOMAS DE LA ENFERMEDAD H1N1')),
mostrar_imagen(D,sh1n1),
new(B,button(tratamiento,and(message(@prolog,ir_a_tratamiento_ah1n1),message(D,destroy)))),
send(D,append,B),
send(D,open_centered).
% metodo para mostrar tratamiento de AH1N1
ir_a_tratamiento_ah1n1:new(D,dialog('TRATAMIENTO DE LA ENFERMEDAD')),
mostrar_imagen(D,h1n1),
new(B,button(volver_a_consultar,message(D,destroy))),send(D,append,B),
send(D,open_centered).
% metodo para mostrar sintomas de AH3N2
ir_a_diagnostico_ah3n2:new(D,dialog('SINTOMAS DE LA ENFERMEDAD H3N2')),
mostrar_imagen(D,sh3n2),
new(B,button(tratamiento,and(message(@prolog,ir_a_tratamiento_ah3n2),message(D,destroy)))),
send(D,append,B),
send(D,open_centered).
% metodo para mostrar tratamiento de AH3N2
ir_a_tratamiento_ah3n2:new(D,dialog('TRATAMIENTO DE LA ENFERMEDAD')),
mostrar_imagen(D,h3n2),
new(B,button(volver_a_consultar,message(D,destroy))),send(D,append,B),
send(D,open_centered).
% metodo para mostrar sintomas de AH5N1
ir_a_diagnostico_ah5n1:new(D,dialog('SINTOMAS DE LA ENFERMEDAD H5N1')),
mostrar_imagen(D,sh5n1),
new(B,button(tratamiento,and(message(@prolog,ir_a_tratamiento_ah5n1),message(D,destroy)))),
send(D,append,B),
send(D,open_centered).
% metodo para mostrar tratamiento de AH5N1
ir_a_tratamiento_ah5n1:new(D,dialog('TRATAMIENTO DE LA ENFERMEDAD')),
mostrar_imagen(D,h5n1),
new(B,button(volver_a_consultar,message(D,destroy))),send(D,append,B),
send(D,open_centered).
% metodo para que se ejecute automaticamente previa instalacion de swi prolog
:-inicio.

También podría gustarte