Documentos de Académico
Documentos de Profesional
Documentos de Cultura
% 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
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).
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).