Sistema experto sobre enfermedades
Descripción del contenido de la página
Sistema experto sobre enfermedades, escrito en SuperBASIC para la Sinclair QL.
Etiquetas:
Este programa lo adapté en 1988 de la versión en Sinclair BASIC (para la Sinclair ZX Spectrum) que encontré en el libro que cito en el propio listado; lo reescribí en SuperBASIC para que funcionara en la Sinclair QL. Algún día me gustaría reescribirlo en Free BASIC.
Los sistemas expertos, los analizadores lingüísticos, los juegos de simulación y en general todo lo relacionado con la inteligencia artificial siempre ha sido una mis aplicaciones preferidas de la programación.
Código fuente
100 :
110 REMark ---------------------------------------------------------------
120 :
130 REMark Sistema experto sobre enfermedades
132 REMark Copyright (C) 1988, 1989 Marcos Cruz (http://programandala.net)
134 REMark Licencia/Permesilo/Licence: http://programandala.net/licencia
140 :
150 REMark Del libro:
160 REMark "Construya su propio sistema experto" página 253
170 REMark Por Chris Naylor
180 REMark Editorial Díaz de Santos, 1986
190 :
200 REMark Adaptado a SuperBasic del QL por Marcos Cruz
210 REMark Versión 0.00, Octubre/1988
220 REMark Versión 0.10, 25/Marzo/1989:
230 REMark - Corregidos algunos errores ortográficos en los textos
240 REMark - Impresión completa de créditos del programa
250 REMark - Prevenidas respuestas de longitud no 1 o 2 a las preguntas
260 REMark - Simplificada detección de SI/NO a la pregunta inicial
270 REMark Versión 0.11 8/Octubre/1989:
280 REMark - Añadido CLS#4 en la inicialización
290 :
300 REMark Toolkits:
310 REMark Turbo Toolkit
320 REMark Para compilar con Turbo Compiler
330 :
340 REMark ---------------------------------------------------------------
350 :
360 REMark Variables enteras para el compilador
370 :
380 IMPLICIT% ventana, síntoma, enfermedad, caracteres_por_línea, enfermedades, síntomas, síntoma_preguntado, síntomas_quedan, letra
390 :
400 REMark Variables de cadena para el compilador
410 :
420 IMPLICIT$ respuesta
430 :
440 REMark Inicializa pantalla
450 :
460 MODE 4
470 OPEN#4,scr_512x256a0x0
480 PAPER#4,1
490 BORDER#4,3,1,7
500 CLS#4
510 ventana=5
520 OPEN#ventana,con_482x236a15x11
530 PAPER#ventana,1
540 INK#ventana,7
550 CSIZE#ventana,0,1
560 CLS#ventana
570 caracteres_por_línea=80
580 imprime "Sistema experto sobre enfermedades"
590 PRINT#ventana
600 imprime "Del libro:"
610 imprime "'Construya su propio sistema experto'"
620 imprime "Autor: Chris Naylor"
630 imprime "Editorial: Diaz de Santos, 1986"
640 PRINT#ventana
650 imprime "Adaptación SuperBASIC por Marcos Cruz - Octubre 1988"
660 :
670 REMark Dimensiona cadenas para el compilador
680 :
690 DIM nombre_enfermedad$(caracteres_por_línea)
700 DIM texto$(3*caracteres_por_línea)
710 DIM pregunta$(3*caracteres_por_línea)
720 DIM respuesta(2)
730 :
740 REMark Inicializa matrices
750 :
760 READ enfermedades
770 READ síntomas
780 DIM probs(enfermedades)
790 DIM valor(síntomas)
800 DIM síntomas_quedan(enfermedades)
810 DIM mín_prob(enfermedades)
820 DIM máx_prob(enfermedades)
830 DIM número_síntomas(enfermedades)
840 :
850 REMark Bucle principal
860 :
870 REPeat consulta
880 :
890 REPeat pide_permiso
900 imprime "¿Comenzamos una consulta?"
910 respuesta=EDIT$(#ventana,"",2)
920 FOR letra=1 TO LEN(respuesta)
930 IF respuesta(letra) INSTR "sino"
940 respuesta(letra)=CHR$(CODE(respuesta(letra))-32)
950 END IF
960 END FOR letra
970 SELect ON respuesta
980 ="S","SI","Sí":EXIT pide_permiso
990 ="NO","N":EXIT consulta
1000 END SELect
1010 imprime "Por favor, responda SI o NO."
1020 END REPeat pide_permiso
1030 imprime "Muy bien."
1040 :
1050 DIM síntoma_preguntado(síntomas)
1060 :
1070 REMark Encuentra la probabilidad a priori y los valores de la regla
1080 :
1090 RESTORE 2820
1100 FOR enfermedad=1 TO enfermedades
1110 READ nombre_enfermedad$,probs(enfermedad)
1120 prob=probs(enfermedad)
1130 REPeat lee_síntomas_enfermedad
1140 READ síntoma
1150 IF síntoma=999:EXIT lee_síntomas_enfermedad
1160 READ prob_si,prob_no
1170 síntomas_quedan(enfermedad)=síntomas_quedan(enfermedad)+1
1180 valor(síntoma)=valor(síntoma)+ABS(prob*prob_si/(prob*prob_si+(1-prob)*prob_no)-prob*(1-prob_si)/(prob*(1-prob_si)+(1-prob)*(1-prob_no)))
1190 END REPeat lee_síntomas_enfermedad
1200 número_síntomas(enfermedad)=síntomas_quedan(enfermedad)
1210 END FOR enfermedad
1220 :
1230 REPeat pregunta_síntoma
1240 :
1250 REMark Encuentra el síntoma más importante y pregunta
1260 :
1270 valor_mín=0
1280 síntoma_a_preguntar=0
1290 FOR síntoma=1 TO síntomas
1300 IF valor(síntoma)>valor_mín
1310 síntoma_a_preguntar=síntoma
1320 valor_mín=valor(síntoma)
1330 END IF
1340 valor(síntoma)=0
1350 END FOR síntoma
1360 IF síntoma_a_preguntar=0
1370 imprime "No hay más preguntas."
1380 NEXT consulta
1390 END IF
1400 FOR síntoma=1 TO síntoma_a_preguntar
1410 READ pregunta$
1420 END FOR síntoma
1430 imprime "¿"&pregunta$
1440 síntoma_preguntado(síntoma_a_preguntar)=1
1450 REPeat pide_respuesta
1460 imprime "(NO= -5...0...5 =SI)"
1470 respuesta=EDIT$(#ventana,"",2)
1480 len_respuesta=LEN(respuesta)
1490 SELect ON len_respuesta
1500 =1
1510 IF NOT(respuesta INSTR "012345"):NEXT pide_respuesta
1520 =2
1530 IF NOT(respuesta(1) INSTR "+-"):NEXT pide_respuesta
1540 IF NOT(respuesta(2) INSTR "012345"):NEXT pide_respuesta
1550 =REMAINDER
1560 NEXT pide_respuesta
1570 END SELect
1580 EXIT pide_respuesta
1590 END REPeat pide_respuesta
1600 :
1610 REMark Actualiza las probabilidades a priori
1620 :
1630 RESTORE 2820
1640 FOR enfermedad=1 TO enfermedades
1650 READ nombre_enfermedad$
1660 READ basura:REMark saltar probabilidad a priori
1670 FOR k=1 TO número_síntomas(enfermedad)
1680 READ síntoma,prob_si,prob_no
1690 IF síntoma=síntoma_a_preguntar AND síntomas_quedan(enfermedad)
1700 síntomas_quedan(enfermedad)=síntomas_quedan(enfermedad)-1
1710 prob=probs(enfermedad)
1720 pe=prob*prob_si+(1-prob)*prob_no
1730 IF respuesta>0
1740 probs(enfermedad)=prob*(1+(prob_si/pe-1)*respuesta/5)
1750 END IF
1760 IF respuesta<=0
1770 probs(enfermedad)=prob*(1+(prob_si-(1-prob_si)*pe/(1-pe))*respuesta/5)
1780 END IF
1790 IF probs(enfermedad)=INT(probs(enfermedad))
1800 síntomas_quedan(enfermedad)=0
1810 END IF
1820 END IF
1830 END FOR k
1840 READ basura:REMark saltar marcador de final de síntomas
1850 END FOR enfermedad
1860 :
1870 REMark Encuentra nuevos valores de regla máximos y mínimos
1880 :
1890 RESTORE 2820
1900 prob_mín=0
1910 hipótesis=0
1920 FOR enfermedad=1 TO enfermedades
1930 prob=probs(enfermedad)
1940 a1=1
1950 a2=1
1960 a3=1
1970 a4=1
1980 READ nombre_enfermedad$,prob
1990 FOR k=1 TO número_síntomas(enfermedad)
2000 READ síntoma,prob_si,prob_no
2010 IF NOT(síntoma_preguntado(síntoma)) AND síntomas_quedan(enfermedad)
2020 IF prob_no>prob_si
2030 prob_si=1-prob_si
2040 prob_no=1-prob_no
2050 END IF
2060 valor(síntoma)=valor(síntoma)+prob*prob_si/(prob*prob_si+(1-prob)*prob_no)-prob*(1-prob_si)/(prob*(1-prob_si)+(1-prob)*(1-prob_no))
2070 a1=a1*prob_si
2080 a2=a2*prob_no
2090 a3=a3*(1-prob_si)
2100 a4=a4*(1-prob_no)
2110 END IF
2120 END FOR k
2130 máx_prob(enfermedad)=prob*a1/(prob*a1+(1-prob)*a2)
2140 mín_prob(enfermedad)=prob*a3/(prob*a4+(1-prob)*a3)
2150 IF máx_prob(enfermedad)<prob:síntomas_quedan(enfermedad)=0
2160 IF mín_prob(enfermedad)>prob_mín
2170 hipótesis=enfermedad
2180 prob_mín=mín_prob(enfermedad)
2190 END IF
2200 READ basura:REMark saltar marcador de final de síntomas
2210 END FOR enfermedad
2220 :
2230 REMark Busca una hipótesis claramente factible
2240 :
2250 FOR enfermedad=1 TO enfermedades
2260 IF mín_prob(hipótesis)<=máx_prob(enfermedad) AND enfermedad<>hipótesis:prob_mín=0
2270 END FOR enfermedad
2280 IF prob_mín<>0:EXIT pregunta_síntoma
2290 :
2300 END REPeat pregunta_síntoma
2310 :
2320 REMark Mostrar hipótesis
2330 :
2340 RESTORE 2820
2350 FOR enfermedad=1 TO hipótesis
2360 READ nombre_enfermedad$,prob
2370 FOR k=1 TO número_síntomas(enfermedad)
2380 READ síntoma,prob_si,prob_no
2390 END FOR k
2400 READ basura:REMark saltar marcador de final de síntomas
2410 END FOR enfermedad
2420 imprime "El resultado más probable es "&nombre_enfermedad$&" con probabilidad "&probs(hipótesis)
2430 :
2440 END REPeat consulta
2450 :
2460 REMark Final
2470 :
2480 imprime "¡ADIOS!"
2490 STOP
2500 :
2510 REMark Procedimiento para imprimir un texto formateándolo
2520 :
2530 DEFine PROCedure imprime(texto$)
2540 LOCal espacios_libres_en_línea,espacio,salir
2550 espacios_libres_en_línea=caracteres_por_línea
2560 REPeat imprime_palabras
2570 salir=0
2580 espacio=" " INSTR texto$
2590 IF NOT(espacio)
2600 espacio=LEN(texto$)
2610 salir=1
2620 END IF
2630 IF espacio>espacios_libres_en_línea
2640 PRINT#ventana
2650 espacios_libres_en_línea=caracteres_por_línea
2660 END IF
2670 PRINT#ventana,texto$(1 TO espacio);
2680 IF salir:EXIT imprime_palabras
2690 texto$=texto$(espacio+1 TO)
2700 espacios_libres_en_línea=espacios_libres_en_línea-espacio
2710 END REPeat imprime_palabras
2720 PRINT#ventana
2730 END DEFine imprime
2740 :
2750 REMark Datos
2760 :
2770 DATA 91:REMark número de enfermedades
2780 DATA 68:REMark número de preguntas
2790 :
2800 REMark Datos de enfermedades
2810 :
2820 DATA "resfriado común",2E-2
2830 DATA 1,.9,5E-2
2840 DATA 2,.8,2E-2
2850 DATA 3,.8,2E-2
2860 DATA 5,.6,1E-2
2870 DATA 6,1,1E-2
2880 DATA 7,.2,1E-2
2890 DATA 8,.5,1E-2
2900 DATA 15,.8,1E-2
2910 DATA 34,0,1E-2
2920 DATA 999
2930 DATA "rinitis alérgica",1E-2
2940 DATA 1,1,1E-2
2950 DATA 2,1,1E-2
2960 DATA 6,.9,1E-2
2970 DATA 10,.7,1E-2
2980 DATA 11,.7,1E-2
2990 DATA 12,.6,1E-2
3000 DATA 20,.9,1E-2
3010 DATA 999
3020 DATA "sinusitis",1E-2
3030 DATA 2,.5,1E-2
3040 DATA 6,.5,1E-2
3050 DATA 7,.8,1E-2
3060 DATA 13,.9,1E-2
3070 DATA 14,.8,1E-2
3080 DATA 15,.8,1E-2
3090 DATA 22,.5,1E-2
3100 DATA 63,.9,1E-2
3110 DATA 999
3120 DATA "faringitis",2E-2
3130 DATA 3,1,1E-2
3140 DATA 8,.5,1E-2
3150 DATA 11,.9,1E-2
3160 DATA 16,.9,1E-2
3170 DATA 37,.8,.3
3180 DATA 64,.4,1E-2
3190 DATA 999
3200 DATA "amigdalitis",1E-3
3210 DATA 3,1,1E-2
3220 DATA 7,.9,1E-2
3230 DATA 8,.9,1E-2
3240 DATA 15,1,1E-2
3250 DATA 16,.7,1E-2
3260 DATA 19,0,.5
3270 DATA 34,0,1E-2
3280 DATA 64,.8,1E-2
3290 DATA 999
3300 DATA "gripe",1E-2
3310 DATA 1,.9,1E-2
3320 DATA 3,.9,1E-2
3330 DATA 6,.5,1E-2
3340 DATA 7,.7,1E-2
3350 DATA 8,1,1E-2
3360 DATA 15,1,1E-2
3370 DATA 17,.8,1E-2
3380 DATA 18,.6,1E-2
3390 DATA 34,0,1E-2
3400 DATA 999
3410 DATA "laringitis",1E-2
3420 DATA 4,1,1E-2
3430 DATA 5,.9,1E-2
3440 DATA 8,.6,1E-2
3450 DATA 15,5E-2,1E-2
3460 DATA 16,.7,1E-2
3470 DATA 37,.8,.3
3480 DATA 21,.1,1E-2
3490 DATA 999
3500 DATA "tumor de laringe",4E-5
3510 DATA 4,1,1E-2
3520 DATA 34,.99,1E-2
3530 DATA 37,.8,.3
3540 DATA 999
3550 DATA "bronquitis aguda",5E-3
3560 DATA 5,1,1E-2
3570 DATA 8,1,1E-2
3580 DATA 12,1,1E-2
3590 DATA 15,1,1E-2
3600 DATA 18,.5,1E-2
3610 DATA 21,1,1E-2
3620 DATA 22,.9,1E-2
3630 DATA 31,.9,1E-2
3640 DATA 34,0,1E-2
3650 DATA 999
3660 DATA "bronquitis crónica",5E-3
3670 DATA 5,1,1E-2
3680 DATA 12,.9,1E-2
3690 DATA 14,.5,1E-2
3700 DATA 21,1,1E-2
3710 DATA 22,.8,1E-2
3720 DATA 34,1,1E-2
3730 DATA 36,.9,1E-2
3740 DATA 37,.8,.3
3750 DATA 999
3760 DATA "asma",2E-2
3770 DATA 12,.8,1E-2
3780 DATA 22,1,1E-2
3790 DATA 23,.5,1E-2
3800 DATA 24,.5,1E-2
3810 DATA 25,.5,1E-2
3820 DATA 26,.5,1E-2
3830 DATA 31,.8,1E-2
3840 DATA 999
3850 DATA "enfisema pulmonar",1E-2
3860 DATA 5,.6,1E-2
3870 DATA 12,.6,1E-2
3880 DATA 21,.6,1E-2
3890 DATA 22,1,1E-2
3900 DATA 26,.8,1E-2
3910 DATA 37,.8,.3
3920 DATA 999
3930 DATA "neumonía",3E-3
3940 DATA 8,1,1E-2
3950 DATA 15,1,1E-2
3960 DATA 17,.9,1E-2
3970 DATA 18,.8,1E-2
3980 DATA 22,1,1E-2
3990 DATA 23,.5,1E-2
4000 DATA 26,.5,1E-2
4010 DATA 27,.2,1E-2
4020 DATA 28,.1,1E-2
4030 DATA 29,2E-2,1E-2
4040 DATA 31,.9,1E-2
4050 DATA 32,.5,5E-3
4060 DATA 36,.1,.9
4070 DATA 999
4080 DATA "pleuresia",1E-3
4090 DATA 5,.8,1E-2
4100 DATA 8,.9,1E-2
4110 DATA 15,1,1E-2
4120 DATA 22,.5,1E-2
4130 DATA 31,.8,1E-2
4140 DATA 32,.8,1E-2
4150 DATA 34,0,1E-2
4160 DATA 999
4170 DATA "neumotórax",2E-4
4180 DATA 18,.8,1E-2
4190 DATA 22,.8,1E-2
4200 DATA 32,.8,5E-3
4210 DATA 999
4220 DATA "bronquiectasia",1E-5
4230 DATA 5,1,1E-2
4240 DATA 14,.5,1E-2
4250 DATA 21,1,1E-2
4260 DATA 27,.5,1E-2
4270 DATA 999
4280 DATA "abceso pulmonar",1E-5
4290 DATA 18,.5,1E-2
4300 DATA 21,.5,1E-2
4310 DATA 27,.5,1E-2
4320 DATA 33,.9,1E-2
4330 DATA 999
4340 DATA "neumoconiosis",1E-3
4350 DATA 9,1,1E-2
4360 DATA 21,.8,1E-2
4370 DATA 22,1,1E-2
4380 DATA 36,1,1E-2
4390 DATA 999
4400 DATA "cáncer de pulmón",1E-3
4410 DATA 5,1,1E-2
4420 DATA 12,.5,1E-2
4430 DATA 18,.8,1E-2
4440 DATA 21,.8,1E-2
4450 DATA 22,.5,1E-2
4460 DATA 27,.5,1E-2
4470 DATA 37,.99,.3
4480 DATA 999
4490 DATA "fibrosis intersticial",1E-5
4500 DATA 21,.6,1E-2
4510 DATA 22,.8,1E-2
4520 DATA 35,.8,1E-2
4530 DATA 999
4540 DATA "edema pulmonar",1E-3
4550 DATA 12,.8,1E-2
4560 DATA 22,.9,1E-2
4570 DATA 25,.9,1E-2
4580 DATA 26,.5,1E-2
4590 DATA 27,.5,1E-2
4600 DATA 30,.5,1E-2
4610 DATA 999
4620 DATA "gastritis",1E-2
4630 DATA 8,.4,1E-2
4640 DATA 37,.9,.5
4650 DATA 41,1E-2,.8
4660 DATA 43,.8,1E-2
4670 DATA 42,.5,1E-2
4680 DATA 999
4690 DATA "hernia de hiato",1E-3
4700 DATA 16,.9,1E-2
4710 DATA 18,.9,1E-2
4720 DATA 32,.5,5E-3
4730 DATA 41,.8,1E-2
4740 DATA 42,.8,5E-3
4750 DATA 57,.9,1E-2
4760 DATA 999
4770 DATA "úlcera duodenal",1E-2
4780 DATA 37,.8,.2
4790 DATA 41,.8,1E-2
4800 DATA 42,.99,5E-3
4810 DATA 57,.7,1E-2
4820 DATA 999
4830 DATA "úlcera gástrica",1E-2
4840 DATA 20,.8,1E-2
4850 DATA 41,.7,1E-2
4860 DATA 42,.9,5E-3
4870 DATA 46,.5,1E-2
4880 DATA 56,.9,1E-2
4890 DATA 62,1E-4,1E-2
4900 DATA 999
4910 DATA "diverticulitis intestinal",1E-3
4920 DATA 8,.5,1E-2
4930 DATA 41,.5,1E-2
4940 DATA 42,.6,5E-3
4950 DATA 43,.5,1E-2
4960 DATA 56,.8,1E-2
4970 DATA 999
4980 DATA "enterocolitis",1E-4
4990 DATA 8,.3,1E-2
5000 DATA 23,.3,1E-2
5010 DATA 41,.3,1E-2
5020 DATA 42,.9,5E-3
5030 DATA 43,.7,1E-2
5040 DATA 999
5050 DATA "enfermedad de Crohn",1E-4
5060 DATA 8,.7,1E-2
5070 DATA 15,.9,1E-2
5080 DATA 42,.9,5E-3
5090 DATA 43,.9,1E-2
5100 DATA 62,1E-5,1E-2
5110 DATA 999
5120 DATA "oclusión intestinal",1E-5
5130 DATA 41,.5,1E-2
5140 DATA 42,.9,5E-3
5150 DATA 43,.8,1E-2
5160 DATA 999
5170 DATA "apendicitis",1E-3
5180 DATA 8,.8,1E-2
5190 DATA 34,.1,.9
5200 DATA 41,.8,1E-2
5210 DATA 42,.9,5E-3
5220 DATA 44,0,.5
5230 DATA 999
5240 DATA "intoxicación alimentaria",1E-3
5250 DATA 7,.8,1E-2
5260 DATA 41,.9,1E-2
5270 DATA 42,.5,5E-3
5280 DATA 43,.9,1E-2
5290 DATA 999
5300 DATA "gastroenteritis",1E-2
5310 DATA 8,.5,1E-2
5320 DATA 41,.8,1E-2
5330 DATA 42,.7,5E-3
5340 DATA 43,.9,1E-2
5350 DATA 999
5360 DATA "litiasis renal",1E-3
5370 DATA 42,.7,5E-3
5380 DATA 999
5390 DATA "pielonefritis aguda",1E-3
5400 DATA 8,.8,1E-2
5410 DATA 41,.7,1E-2
5420 DATA 42,.9,5E-3
5430 DATA 67,.9,1E-2
5440 DATA 999
5450 DATA "litiasis biliar",1E-2
5460 DATA 41,.5,1E-2
5470 DATA 42,.5,5E-3
5480 DATA 57,.9,1E-2
5490 DATA 999
5500 DATA "colecistitis",1E-3
5510 DATA 8,.9,1E-2
5520 DATA 41,.8,1E-2
5530 DATA 42,.8,5E-3
5540 DATA 45,.8,1E-3
5550 DATA 999
5560 DATA "herpes",1E-3
5570 DATA 2,.6,1E-2
5580 DATA 8,.5,1E-2
5590 DATA 14,.8,1E-2
5600 DATA 18,.5,1E-2
5610 DATA 59,.9,1E-2
5620 DATA 60,.9,1E-2
5630 DATA 999
5640 DATA "trombloflebitis",5E-4
5650 DATA 40,.8,1E-2
5660 DATA 999
5670 DATA "artritis reumatoide",1E-3
5680 DATA 15,.8,1E-2
5690 DATA 17,.8,1E-2
5700 DATA 40,.5,1E-3
5710 DATA 999
5720 DATA "insuficiencia cardiaca",1E-3
5730 DATA 12,.6,1E-2
5740 DATA 18,.5,1E-2
5750 DATA 22,.9,1E-2
5760 DATA 25,.5,1E-3
5770 DATA 26,.3,1E-3
5780 DATA 32,.3,1E-3
5790 DATA 36,.5,1E-2
5800 DATA 39,.5,1E-2
5810 DATA 42,.5,1E-2
5820 DATA 47,.9,1E-2
5830 DATA 999
5840 DATA "ansiedad",1E-2
5850 DATA 7,.5,1E-2
5860 DATA 15,.5,1E-2
5870 DATA 16,.3,1E-2
5880 DATA 22,.5,1E-2
5890 DATA 23,.6,1E-2
5900 DATA 28,.3,1E-2
5910 DATA 38,.5,1E-2
5920 DATA 39,.8,1E-2
5930 DATA 43,.2,1E-2
5940 DATA 46,.9,1E-2
5950 DATA 47,.6,1E-2
5960 DATA 48,.6,1E-2
5970 DATA 50,.5,1E-2
5980 DATA 57,.5,1E-2
5990 DATA 58,.5,1E-2
6000 DATA 999
6010 DATA "depresión",1E-2
6020 DATA 7,.5,1E-2
6030 DATA 15,.5,1E-2
6040 DATA 47,.5,1E-2
6050 DATA 49,.5,1E-2
6060 DATA 50,.5,1E-2
6070 DATA 62,.8,1E-2
6080 DATA 999
6090 DATA "trombosis coronaria",1E-2
6100 DATA 15,.9,1E-2
6110 DATA 18,.5,1E-2
6120 DATA 20,.5,1E-2
6130 DATA 22,.5,1E-2
6140 DATA 23,.5,1E-2
6150 DATA 32,.9,1E-3
6160 DATA 36,0,.2
6170 DATA 38,.5,1E-2
6180 DATA 41,.5,1E-2
6190 DATA 999
6200 DATA "angina de pecho",1E-2
6210 DATA 18,.9,1E-2
6220 DATA 20,.9,1E-2
6230 DATA 22,.5,1E-2
6240 DATA 23,.5,1E-2
6250 DATA 32,1,1E-3
6260 DATA 36,.9,1E-2
6270 DATA 37,.8,.3
6280 DATA 38,.5,1E-2
6290 DATA 999
6300 DATA "embolia pulmonar",1E-4
6310 DATA 18,.7,1E-2
6320 DATA 21,.6,1E-2
6330 DATA 22,1,1E-2
6340 DATA 25,.5,1E-3
6350 DATA 26,.4,1E-3
6360 DATA 27,.5,1E-3
6370 DATA 999
6380 DATA "apoplegía",1E-3
6390 DATA 28,.8,1E-2
6400 DATA 38,.7,1E-2
6410 DATA 51,.8,1E-3
6420 DATA 58,.9,1E-2
6430 DATA 61,.9,1E-2
6440 DATA 999
6450 DATA "ataque isquémico transitorio",1E-3
6460 DATA 20,.5,1E-2
6470 DATA 28,.8,1E-2
6480 DATA 34,0,1E-2
6490 DATA 38,.7,1E-2
6500 DATA 51,.8,1E-3
6510 DATA 58,.9,1E-2
6520 DATA 61,.9,1E-2
6530 DATA 999
6540 DATA "tuberculosis",1E-4
6550 DATA 5,.5,1E-2
6560 DATA 7,.5,1E-2
6570 DATA 8,.5,1E-2
6580 DATA 12,.5,1E-2
6590 DATA 15,.5,1E-2
6600 DATA 18,.5,1E-2
6610 DATA 22,.5,1E-2
6620 DATA 23,.5,1E-2
6630 DATA 27,.5,1E-3
6640 DATA 30,.5,1E-2
6650 DATA 62,1E-4,1E-2
6660 DATA 999
6670 DATA "hemorroides",1E-2
6680 DATA 49,.8,1E-2
6690 DATA 52,.9,1E-3
6700 DATA 56,.9,1E-2
6710 DATA 59,.5,1E-2
6720 DATA 999
6730 DATA "hipotiroidismo",1E-3
6740 DATA 4,.5,1E-2
6750 DATA 17,.5,1E-2
6760 DATA 23,1E-3,1E-2
6770 DATA 24,0,1E-2
6780 DATA 39,1E-3,1E-2
6790 DATA 43,0,1E-2
6800 DATA 46,1E-3,1E-2
6810 DATA 48,1E-3,1E-2
6820 DATA 49,.8,1E-2
6830 DATA 62,.9,5E-2
6840 DATA 999
6850 DATA "colon irritable",7E-4
6860 DATA 41,.3,1E-2
6870 DATA 42,.8,1E-3
6880 DATA 43,.5,1E-2
6890 DATA 49,.5,1E-2
6900 DATA 56,.5,1E-2
6910 DATA 57,.9,1E-2
6920 DATA 999
6930 DATA "cáncer intestinal",1E-3
6940 DATA 42,.5,5E-3
6950 DATA 43,.9,1E-2
6960 DATA 49,.9,1E-2
6970 DATA 52,.5,1E-3
6980 DATA 56,.9,1E-2
6990 DATA 62,1E-4,1E-2
7000 DATA 999
7010 DATA "colititis ulcerosa",4E-4
7020 DATA 8,.5,1E-2
7030 DATA 23,.5,1E-2
7040 DATA 34,.4,1E-2
7050 DATA 41,.5,1E-2
7060 DATA 42,.8,5E-3
7070 DATA 43,.8,1E-2
7080 DATA 52,.6,1E-3
7090 DATA 56,.9,1E-2
7100 DATA 999
7110 DATA "enfermedad de Meniere",5E-4
7120 DATA 20,.9,1E-2
7130 DATA 34,.5,1E-2
7140 DATA 38,.9,1E-3
7150 DATA 41,.8,1E-2
7160 DATA 999
7170 DATA "espondilosis cervical",6E-3
7180 DATA 7,.5,1E-2
7190 DATA 38,.5,1E-2
7200 DATA 54,.9,1E-2
7210 DATA 58,.9,1E-2
7220 DATA 61,.5,1E-2
7230 DATA 999
7240 DATA "hemorragia subdural",1E-6
7250 DATA 7,.9,1E-2
7260 DATA 20,.5,1E-2
7270 DATA 28,.9,1E-3
7280 DATA 34,.5,1E-2
7290 DATA 38,.9,1E-2
7300 DATA 41,.9,1E-2
7310 DATA 55,.99,1E-3
7320 DATA 999
7330 DATA "tumor cerebral",1E-6
7340 DATA 7,.9,1E-2
7350 DATA 34,.5,1E-2
7360 DATA 38,.8,1E-2
7370 DATA 41,.9,1E-2
7380 DATA 50,.8,1E-2
7390 DATA 999
7400 DATA "meningitis",1E-6
7410 DATA 2,.9,1E-2
7420 DATA 7,.9,1E-2
7430 DATA 8,.9,1E-2
7440 DATA 28,.7,1E-2
7450 DATA 41,.9,1E-2
7460 DATA 54,.9,1E-2
7470 DATA 60,.5,1E-2
7480 DATA 999
7490 DATA "hemorragia subaracnoidea",1E-5
7500 DATA 2,.8,1E-2
7510 DATA 7,.99,1E-2
7520 DATA 28,.7,1E-2
7530 DATA 38,.7,1E-2
7540 DATA 41,.8,1E-2
7550 DATA 54,.9,1E-2
7560 DATA 999
7570 DATA "glaucoma agudo",1E-2
7580 DATA 2,.9,1E-2
7590 DATA 7,.9,1E-2
7600 DATA 20,.8,1E-2
7610 DATA 34,.8,1E-2
7620 DATA 41,.7,1E-2
7630 DATA 63,.9,1E-2
7640 DATA 68,.9,1E-2
7650 DATA 999
7660 DATA "arteriris de la temporal",1E-3
7670 DATA 7,.9,1E-2
7680 DATA 8,.7,1E-2
7690 DATA 17,.7,1E-2
7700 DATA 23,.8,1E-2
7710 DATA 63,.99,1E-2
7720 DATA 999
7730 DATA "dispepsia",.1
7740 DATA 7,.7,1E-2
7750 DATA 20,.9,1E-2
7760 DATA 41,.7,1E-2
7770 DATA 42,.7,1E-2
7780 DATA 57,.7,1E-2
7790 DATA 62,1E-3,1E-2
7800 DATA 999
7810 DATA "bloqueo cardiaco",3E-4
7820 DATA 18,.6,1E-2
7830 DATA 22,.5,1E-2
7840 DATA 39,.6,1E-2
7850 DATA 58,.8,1E-2
7860 DATA 999
7870 DATA "anemia perniciosa",4E-4
7880 DATA 22,.9,1E-2
7890 DATA 28,.4,1E-2
7900 DATA 36,.9,1E-2
7910 DATA 39,.9,1E-2
7920 DATA 42,.5,1E-2
7930 DATA 45,.5,1E-2
7940 DATA 50,.5,1E-2
7950 DATA 58,.9,1E-2
7960 DATA 999
7970 DATA "jaqueca",.1
7980 DATA 2,.9,1E-2
7990 DATA 7,1,1E-2
8000 DATA 15,.9,1E-2
8010 DATA 20,.9,1E-2
8020 DATA 34,.9,1E-2
8030 DATA 41,.9,1E-2
8040 DATA 43,.5,1E-2
8050 DATA 63,.99,1E-2
8060 DATA 999
8070 DATA "hipertensión esencial",.15
8080 DATA 7,.5,1E-2
8090 DATA 15,.9,1E-2
8100 DATA 34,.9,1E-2
8110 DATA 39,.5,1E-2
8120 DATA 999
8130 DATA "eccema",3E-2
8140 DATA 59,.9,1E-2
8150 DATA 60,.1,1E-2
8160 DATA 999
8170 DATA "urticaria",3E-2
8180 DATA 46,.5,1E-2
8190 DATA 59,.9,1E-2
8200 DATA 60,1,1E-2
8210 DATA 999
8220 DATA "sarna",1E-3
8230 DATA 59,1,1E-2
8240 DATA 60,1,1E-2
8250 DATA 999
8260 DATA "sarampión",2E-2
8270 DATA 2,.9,1E-2
8280 DATA 5,.9,1E-2
8290 DATA 6,.9,1E-2
8300 DATA 7,.5,1E-2
8310 DATA 8,1,1E-2
8320 DATA 11,.9,1E-2
8330 DATA 15,1,1E-2
8340 DATA 34,0,1E-2
8350 DATA 43,.5,1E-2
8360 DATA 60,1,1E-2
8370 DATA 999
8380 DATA "rubeola",1E-2
8390 DATA 8,.5,1E-2
8400 DATA 34,0,1E-2
8410 DATA 54,.2,1E-2
8420 DATA 60,.9,1E-2
8430 DATA 64,.5,1E-2
8440 DATA 999
8450 DATA "varicela",1E-3
8460 DATA 7,.5,1E-2
8470 DATA 8,.8,1E-2
8480 DATA 15,.5,1E-2
8490 DATA 34,0,1E-2
8500 DATA 59,1,1E-2
8510 DATA 60,1,1E-2
8520 DATA 999
8530 DATA "psoriasis",2E-2
8540 DATA 3,.5,1E-2
8550 DATA 46,.6,1E-2
8560 DATA 59,.5,1E-2
8570 DATA 60,.99,1E-2
8580 DATA 999
8590 DATA "pitiriasis rubra",1E-2
8600 DATA 34,.5,1E-2
8610 DATA 59,.9,1E-2
8620 DATA 60,1,1E-2
8630 DATA 999
8640 DATA "acné rosáceo",1E-2
8650 DATA 2,.5,1E-2
8660 DATA 34,.8,1E-2
8670 DATA 60,.9,1E-2
8680 DATA 999
8690 DATA "tirotoxicosis",1E-3
8700 DATA 2,.5,1E-2
8710 DATA 22,.8,1E-2
8720 DATA 23,.9,1E-2
8730 DATA 24,.9,1E-2
8740 DATA 39,.9,1E-2
8750 DATA 43,.8,1E-2
8760 DATA 46,.9,1E-2
8770 DATA 47,.8,1E-2
8780 DATA 48,.9,1E-2
8790 DATA 62,1E-5,1E-2
8800 DATA 64,.3,1E-2
8810 DATA 68,.3,1E-2
8820 DATA 999
8830 DATA "diabetes mellitus",1E-2
8840 DATA 2,.5,1E-2
8850 DATA 61,.5,1E-2
8860 DATA 62,1E-4,1E-2
8870 DATA 66,.99,1E-2
8880 DATA 68,1,1E-2
8890 DATA 999
8900 DATA "cáncer de estómago",3E-4
8910 DATA 41,.5,1E-2
8920 DATA 42,.7,5E-3
8930 DATA 52,.6,1E-3
8940 DATA 56,.5,1E-2
8950 DATA 62,1E-4,1E-2
8960 DATA 999
8970 DATA "fibrilación auricular",1E-3
8980 DATA 20,.4,1E-2
8990 DATA 38,.5,1E-2
9000 DATA 39,.8,1E-2
9010 DATA 58,.5,1E-2
9020 DATA 999
9030 DATA "enfermedad de Hodgkin",1E-4
9040 DATA 23,.5,1E-2
9050 DATA 54,.8,1E-2
9060 DATA 59,.7,1E-2
9070 DATA 63,.6,1E-2
9080 DATA 64,.99,1E-2
9090 DATA 999
9100 DATA "fiebre glandular",1E-3
9110 DATA 3,.9,1E-2
9120 DATA 7,.9,1E-2
9130 DATA 8,.9,1E-2
9140 DATA 15,.9,1E-2
9150 DATA 45,.5,1E-3
9160 DATA 54,.8,1E-2
9170 DATA 60,.5,1E-2
9180 DATA 64,.8,1E-2
9190 DATA 999
9200 DATA "linfoma",1E-4
9210 DATA 8,.8,1E-2
9220 DATA 15,.8,1E-2
9230 DATA 23,.5,1E-2
9240 DATA 54,.8,1E-2
9250 DATA 59,.8,1E-2
9260 DATA 62,1E-3,1E-2
9270 DATA 64,.9,1E-2
9280 DATA 999
9290 DATA "paperas",1E-2
9300 DATA 3,.8,1E-2
9310 DATA 8,.8,1E-2
9320 DATA 15,.9,1E-2
9330 DATA 16,.7,1E-2
9340 DATA 54,.6,1E-2
9350 DATA 64,.99,1E-2
9360 DATA 999
9370 DATA "parálisis facial",3E-4
9380 DATA 2,.9,1E-2
9390 DATA 51,.9,1E-2
9400 DATA 63,.5,1E-2
9410 DATA 999
9420 DATA "enfermedad de Parkinson",1E-3
9430 DATA 28,.2,1E-2
9440 DATA 34,1,1E-2
9450 DATA 48,.9,1E-2
9460 DATA 50,.2,1E-2
9470 DATA 51,.8,1E-2
9480 DATA 53,.8,.5
9490 DATA 999
9500 DATA "artritis reumatoide",1E-2
9510 DATA 7,.8,1E-2
9520 DATA 8,.8,1E-2
9530 DATA 15,.8,1E-2
9540 DATA 48,.1,1E-2
9550 DATA 59,1E-3,1E-2
9560 DATA 60,.5,1E-2
9570 DATA 64,.8,1E-2
9580 DATA 999
9590 DATA "cistitis",1E-2
9600 DATA 8,.5,1E-2
9610 DATA 65,.9,1E-2
9620 DATA 66,.9,1E-2
9630 DATA 67,.9,1E-2
9640 DATA 999
9650 DATA "tumor renal",1E-3
9660 DATA 8,.6,1E-2
9670 DATA 41,.5,1E-2
9680 DATA 42,.5,1E-2
9690 DATA 62,1E-4,1E-2
9700 DATA 65,.7,1E-2
9710 DATA 999
9720 DATA "tumor en la vejiga",4E-4
9730 DATA 8,.3,1E-2
9740 DATA 42,.5,1E-2
9750 DATA 65,.9,1E-2
9760 DATA 66,.5,1E-2
9770 DATA 67,.5,1E-2
9780 DATA 999
9790 DATA "iritis",5E-4
9800 DATA 2,.9,1E-2
9810 DATA 68,.9,1E-2
9820 DATA 999
9830 DATA "hepatitis aguda",1E-3
9840 DATA 8,.8,1E-2
9850 DATA 15,.8,1E-2
9860 DATA 17,.5,1E-2
9870 DATA 41,.5,1E-2
9880 DATA 42,.5,1E-2
9890 DATA 45,.5,1E-2
9900 DATA 999
9910 :
9920 REMark Preguntas, síntomas
9930 :
9940 REMark 1
9950 DATA "Estornudas mucho?"
9960 REMark 2
9970 DATA "Te duelen los ojos, o lagrimeas mucho?"
9980 REMark 3
9990 DATA "Te duele la garganta?"
10000 REMark 4
10010 DATA "Tienes ronquera o afonía?"
10020 REMark 5
10030 DATA "Toses mucho?"
10040 REMark 6
10050 DATA "Tienes mucosidad nasal muy fluida?"
10060 REMark 7
10070 DATA "Te duele la cabeza, o sufres, en general, de dolores de cabeza?"
10080 REMark 8
10090 DATA "Tienes alta temperatura? (superior a 37 grados centígrados)"
10100 REMark 9
10110 DATA "Te ves obligado/a, por tu trabajo, a pasar muchas horas respirando aire viciado o polvoriento?"
10120 REMark 10
10130 DATA "Te pica la nariz?"
10140 REMark 11
10150 DATA "Tienes la garganta reseca?"
10160 REMark 12
10170 DATA "Respiras con dificultad y fatiga?"
10180 REMark 13
10190 DATA "Tienes la nariz muy taponada?"
10200 REMark 14
10210 DATA "Has tenido recientemente un resfriado u otra infección similar?"
10220 REMark 15
10230 DATA "Tienes malestar general?"
10240 REMark 16
10250 DATA "Tienes dificultad para tragar?"
10260 REMark 17
10270 DATA "Tienes dolores musculares?"
10280 REMark 18
10290 DATA "Sientes cualquier tipo de dolor en el pecho?"
10300 REMark 19
10310 DATA "Te han extirpado las amigdalas?"
10320 REMark 20
10330 DATA "Tus síntomas tienden a aparecer en ataques, y no a estar presentes continuamente?"
10340 REMark 21
10350 DATA "Tienes una tos productiva, o sea una tos en la que expulsas algo?"
10360 REMark 22
10370 DATA "Respiras entrecortadamente?"
10380 REMark 23
10390 DATA "Sudas mucho? (no ya cuando haces un esfuerzo, sino cuando estás físicamente relajado)"
10400 REMark 24
10410 DATA "Tienes la frecuencia cardiaca elevada? (normalmente, debe estar entre 60 y 80 pulsaciones por minuto, y algo más rápida para personas de edad superior a 70 o inferior a 20)"
10420 REMark 25
10430 DATA "Sufres ataques de dificultades respiratorias tan fuertes que llegan a preocuparte?"
10440 REMark 26
10450 DATA "Tienes cianosis, es decir, se te ha puesto la piel de un color ligeramente azulado?"
10460 REMark 27
10470 DATA "Cuando toses, presentan sangre los esputos?"
10480 REMark 28
10490 DATA "Estás aturdido o perplejo sobre cuanto acontece a tu alrededor?"
10500 REMark 29
10510 DATA "Estás (o está el/la paciente) en estado delirante, hablando incoherentemente y con mala coordinación muscular?"
10520 REMark 30
10530 DATA "Tienes una tos seca (no productiva)?"
10540 REMark 31
10550 DATA "Sientes dolor al respirar o al toser?"
10560 REMark 32
10570 DATA "Has sentido en estos días un dolor muy fuerte en el pecho?"
10580 REMark 33
10590 DATA "Tienes sensaciones alternantes de frío y calor?"
10600 REMark 34
10610 DATA "Hace ya tiempo (seis semanas o más) que presentas alguno de estos síntomas?"
10620 REMark 35
10630 DATA "Tienes los dedos hipocráticos, o en 'palillos de tambor'? (se llaman así cuando las cutículas casi han desaparecido, y las uñas se abomban excesivamente hacia la punta)"
10640 REMark 36
10650 DATA "Tienes síntomas que aparecen fundamentalmente al realizar algún esfuerzo?"
10660 REMark 37
10670 DATA "Fumas? responde con el número que resulta de dividir por cinco el número de cigarrillos diarios. El número máximo para la respuesta es 5. Si no fumas, responde -5."
10680 REMark 38
10690 DATA "Tienes sensaciones de vértigo?"
10700 REMark 39
10710 DATA "Tienes palpitaciones? (sensación de que el corazón late más fuerte, o más rápido, o menos regularmente de lo que debiera)"
10720 REMark 40
10730 DATA "Tienes algún tobillo excesivamente hinchado?"
10740 REMark 41
10750 DATA "Tienes vómitos, o fuertes naúseas?"
10760 REMark 42
10770 DATA "Sufres de algún tipo de dolor abdominal, o dolor localizado entre las costillas inferiores y las ingles?"
10780 REMark 43
10790 DATA "Padeces diarrea, o sueles tener crisis de diarrea?"
10800 REMark 44
10810 DATA "Te han extirpado el apéndice?"
10820 REMark 45
10830 DATA "Tienes ictericia? (La ictericia no es una enfermedad, sino un síntoma. Con frecuencia es más patente en los ojos: la parte blanca se torna amarillenta.)"
10840 REMark 46
10850 DATA "Te sientes tenso/a o inquieto/a?"
10860 REMark 47
10870 DATA "Te cuesta conciliar el sueño, o te desvelas frecuentemente por la noche?"
10880 REMark 48
10890 DATA "Tienes contracciones involuntarias o temblores?"
10900 REMark 49
10910 DATA "Sufres de estreñimiento, o sueles tener crisis de estreñimiento?"
10920 REMark 50
10930 DATA "Te falla la memoria, tienes dificultad para recordar hechos aislados, ya sea ocasional o regularmente?"
10940 REMark 51
10950 DATA "Sufres afasia, es decir, has perdido capacidad para expresarte con palabras?"
10960 REMark 52
10970 DATA "Has tenido alguna hemorragia por el recto?"
10980 REMark 53
10990 DATA "Eres hombre o mujer? Responde con 5 para hombre y -5 para mujer. Una respuesta 0 hace que el diagnóstico sea independiente del sexo"
11000 REMark 54
11010 DATA "Tienes rigidez y/o dolor en el cuello?"
11020 REMark 55
11030 DATA "Has sufrido algún golpe o herida de cualquier tipo en la cabeza durante las últimas semanas? (un golpe incluso leve puede ser importante)"
11040 REMark 56
11050 DATA "Has expulsado recientemente heces de aspecto anormal?"
11060 REMark 57
11070 DATA "Expulsas muchos gases, por cualquier vía?"
11080 REMark 58
11090 DATA "Tienes sensaciones repentinas de desmayo, es decir, de sentirte desfallecido y mareado, incluso, quizás con pérdida de consciencia?"
11100 REMark 59
11110 DATA "Te pica alguna parte del cuerpo, tengas o no erupción en ella?"
11120 REMark 60
11130 DATA "Tienes alguna erupción o lesión de cualquier tipo en la piel?"
11140 REMark 61
11150 DATA "Tienes alguna parte del cuerpo entumecida, o con sensación de comezón u hormigueo, como de 'agujas y alfileres'?"
11160 REMark 62
11170 DATA "Es tu peso anormal? (Responde con 5 para un peso excesivamente elevado, con -5 si es excesivamente bajo y con 0 si es normal)"
11180 REMark 63
11190 DATA "Sufres de algún dolor en la cara o en la frente?"
11200 REMark 64
11210 DATA "Tienes algún bulto, hinchazón o abultamiento, en cualquier parte del cuerpo?"
11220 REMark 65
11230 DATA "Es anormal el color de tu orina?~"
11240 REMark 66
11250 DATA "Orinas con una frecuencia anormal?"
11260 REMark 67
11270 DATA "Tienes dolores al orinar?"
11280 REMark 68
11290 DATA "Tienes alguna anormalidad en la visión, como ver borroso o doble, o luces destelleantes? (no cuentan los defectos que pueden corregirse con gafas)"