Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- %:- use_module(library(pce)).
- %:- use_module(library(pce_style_item)).
- main:-%Regla_para_crear_objetos
- new(Menu, dialog('DIAGNOSTICO MEDICO', size(500,500))), %Tipo_dialogo_y_el_tamaño
- new(L, label(nombre, 'BIENVENIDO A SU ATENCION MEDICA')),%Label
- %Creando variables
- new(@texto, label(nombre, 'Favor de responder las preguntas para tener un posible diagnóstico')),%Es decir la var nombre tendra el texto
- new(@resp, label(nombre, '')),
- %Creando boton salir
- new(Salir, button('SALIR', and(message(Menu, destroy), message(Menu, free)))),
- %Creando boton de ok con su variable
- new(@boton, button('REALIZAR CONSULTA',message(@prolog, botones))),
- %Creando el tamaño de cada boton y cada label
- send(Menu, append(L)), new(@botoncarrera, button('¿Diagnostico?')),
- send(Menu, display, L, point(70,20)),
- send(Menu, display, @boton, point(300, 150)),
- send(Menu, display, @texto, point(20,100)),
- send(Menu, display, Salir, point(200,200)),
- send(Menu, display, @resp, point(20, 130)),
- send(Menu, open_centered),
- send(@texto, font, font(comic, bold, 10)),
- send(L, font, font(comic, bold, 20)).
- enfermedades(colesterol):- colesterol,!.
- enfermedades(diabete):- diabete, !.
- enfermedades(gastritis):- gastritis,!.
- enfermedades(asma):- asma,!.
- enfermedades(sida):- sida,!.
- enfermedades(tuberculosis):- tuberculosis,!.
- enfermedades(neumonia):- neumonia,!.
- enfermedades(peste):- peste,!.
- enfermedades(obesidad):- obesidad,!.
- enfermedades(malaria):- malaria,!.
- enfermedades(epilepsia):- epilepsia,!.
- enfermedades('Una enfermedad no registrada en la base de datos').
- colesterol:- tiene_colesterol,
- pregunta('¿Tiene hinchazon en alguna extremidad del cuerpo?'),
- pregunta('¿Tiene perdida del equilibro y/o mareos?'),
- pregunta('¿Tiene dolor de cabeza?'),
- pregunta('¿Tiene amarillo en sus ojos?'),
- pregunta('¿Tiene visión borrosa?'),
- pregunta('¿Tiene agitación? En especial al caminar o al realizar movimientos'),
- pregunta('¿Tiene dolor en el pecho?').
- diabete:- tiene_diabete,
- pregunta('¿Suele orinar con frecuencia?'),
- pregunta('¿Suele tener sed constante?'),
- pregunta('Suele tener hambre en exceso?'),
- pregunta('Tiene perdida de peso inexplicable?'),
- pregunta('¿Tiene debilidad en su cuerpo?'),
- pregunta('¿Suele tener irritabilidad?'),
- pregunta('¿Tiene visión borrosa?').
- gastritis:- tiene_gastritis,
- pregunta('¿Tiene ardor en el estómago?'),
- pregunta('¿Padece de perdida de peso?'),
- pregunta('¿Suele tener nauseas repentinas?'),
- pregunta('¿Padece de hipo y eructos frecuentes?'),
- pregunta('¿Suele tener mal sabor en la boca?'),
- pregunta('¿Tiene vacío gástrico?').
- asma:- tiene_asma,
- pregunta('¿Suele tener tos?'),
- pregunta('¿Tiene sibilancias?'),
- pregunta('¿Tiene presión en el pecho?'),
- pregunta('¿Tiene dificultad para respirar?').
- sida:- tiene_sida,
- pregunta('¿Tiene fiebre?'),
- pregunta('¿Tiene dolor de cabeza?'),
- pregunta('¿Tiene o sufre de fatiga?'),
- pregunta('¿Tiene glandios linfaticos hinchados?'),
- pregunta('¿Tiene dolor de garganta?'),
- pregunta('¿Tiene sarpullido?').
- tuberculosis:- tiene_tuberculosis,
- pregunta('¿Tiene tos con sangre o esputo?'),
- pregunta('¿Dolor en el pecho?'),
- pregunta('¿Debilidad o cansancio?'),
- pregunta('¿Pérdida de peso?'),
- pregunta('¿Falta de apetito?'),
- pregunta('¿Escalofríos?'),
- pregunta('¿Fiebre?').
- neumonia:- tiene_neumonia,
- pregunta('¿Tiene cansancio muscular y articular?'),
- pregunta('¿Cansancio?'),
- pregunta('¿Dolores de cabeza?').
- peste:- tiene_peste,
- pregunta('¿Tiene fiebre?'),
- pregunta('¿Escalofríos?'),
- pregunta('¿Cansancio?'),
- pregunta('¿Dolor de cabeza?'),
- pregunta('¿Dolor de estómago?'),
- pregunta('¿Infiltraciones de sangre en la piel?').
- obesidad:- tiene_obesidad,
- pregunta('¿Tiene baja resistencia?'),
- pregunta('¿Sudoración?'),
- pregunta('¿Molestias artículares?').
- malaria:- tiene_malaria,
- pregunta('¿Tiene fiebre?'),
- pregunta('¿Escalofríos?'),
- pregunta('¿Tiritonas?'),%Ojo, que carajos son las ¿Tiritonas
- pregunta('¿Sudoración?'),
- pregunta('¿Tiene cefaleas y dolores generalizados de musculos y articulaciones?'),
- pregunta('¿Tiene vómito y diarrea?').
- epilepsia:- tiene_epilepsia,
- pregunta('¿Tiene mareos?'),
- pregunta('¿Dificultad para hablar?'),
- pregunta('¿Sensación de desconexión con el entorno?'),
- pregunta('¿Convulsiones?'),
- pregunta('¿Rigidez muscular?').
- desconocido:- enfermedad_desconocida.
- tiene_colesterol:- pregunta('¿Tiene adormecimiento en alguna extremidad?'),!.
- tiene_diabete:- pregunta('¿Suele orinar con frecuencia?'),!.
- tiene_gastritis:- pregunta('¿Suele tener ardos en el estómago?'),!.
- tiene_asma:- pregunta('¿Suele tener tos?'),!.
- tiene_sida:- pregunta('¿Padece o tiene fiebre?'),!.
- tiene_tuberculosis:- pregunta('¿Padece de dolor en el pecho?'),!.
- tiene_peste:- pregunta('¿Padece o tiene fiebre?'),!.
- tiene_neumonia:- pregunta('¿Padece de peste malestar general?'),!.
- :- dynamic si/1, no/1.
- preguntar(Problema):- new(Di, dialog('EXAMEN MEDICO')),
- new(L2, label(texto, 'Responde las siguientes preguntas:')),
- new(La, label(prob, Problema)),
- new(B1, button(si, and(message(Di, return, si)))),
- new(B2, button(no, and(message(Di, return, no)))),
- send(Di, append(L2)),
- send(Di, append(La)),
- send(Di, append(B2)),
- send(Di, default_button, si),
- send(Di, open_centered), get(Di, confirm, Answer),
- write(Answer), send(Di, destroy),
- (Answer==si)->assert(si(Problema));
- assert(no(Problema)), fail).
- pregunta(S):- (si(S)->true; (no(S)->fail; preguntar(S))).
- %Acá se limpia
- limpiar:- retract(si(_)), fail.
- limpia:- retract(no(_)), fail.
- botones:- lim,
- send(@boton, free),
- send(@botoncarrera, free),
- enfermedades(Enfer),
- send(@texto, selection('Segun sus sintomas, usted es muy probable que padezca de: ')),
- send(@resp, selection(Enfer)),
- send(@resp, font, font(comic, bold, 15)),
- new(@boton, button('Iniciar su evaluación', message(@prolog, botones))),
- send(Menu, display, @boton, point(40,50)),
- send(Menu, display, @botoncarrera, point(20,50)),
- limpiar.
- lim:- send(@resp, selection('')).
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement