LISTAGEM DE PROGRAMA

RISCMAM: Um Software para Avaliação Quantitativa do Risco de Câncer de Mama


Renato M.E. Sabbatini, Neide M. F. Silveira, Olga M.Z. Miranda, Luiz C. Zeferino


110 ' RISCMAM 2.0 W 8 - Determinar quantitativamente os fatores de
150 ' risco associados ao cancer mamario na mulher.
160 ' LINGUAGEM: MICROSOFT BASICA para MS-DOS
180 ' AUTORIA: Drs. Luiz C. Zeferino, Olga M.Z. Miranda e Renato M.E. Sabbatini
210 ' Nucleo de Informatica Biomedica/ Universidade Estadual de Campinas
220 '
270 DEFINT I-N
280 DIM NPROXIMA(10),TEXTALT$(10),IRESPOSTA(36),NALTERN(36),M$(6),RISCO(4),RISCO$(4)
285 DIM PESOS(36),TRESUM$(36)
290 IOUT=2:RISCO$(1)="altissimo":RISCO$(2)="alto":RISCO$(3)="medio":RISCO$(4)="baixo"
310 SEP$=STRING$(63,205):S2$=CHR$(201)+STRING$(40,205)+CHR$(187)
320 S3$=CHR$(200)+STRING$(40,205)+CHR$(188):C1$=CHR$(186)
350 '----------------- TITULO E OPCOES INICIAIS ---------------------
370 KEY OFF:CLS:PRINT TAB(20);S2$
380 PRINT TAB(20);C1$;TAB(25);"UNIVERSIDADE ESTADUAL DE CAMPINAS" TAB(61);C1$
390 PRINT TAB(20);C1$;TAB(26);"Nucleo de Informatica Biomedica" TAB(61);C1$
400 PRINT TAB(20);S3$:PRINT:PRINT TAB(20);S2$
410 PRINT TAB(20);C1$;TAB(35);"RISCMAM 2.0.6";TAB(61);C1$
420 PRINT TAB(20);C1$;TAB(23);"Avaliacao do Risco de Cancer Mamario" TAB(61);C1$
430 PRINT TAB(20);C1$;TAB(25);" R.M.E. Sabbatini, L.C. Zeferino";TAB(61);C1$
440 PRINT TAB(20);C1$;TAB(33);"& O.M.Z. Miranda";TAB(61);C1$
450 PRINT TAB(20);S3$:DAT$=DATE$:PRINT:PRINT
470 PRINT TAB(20);"Nome do medico responsavel : ";:LINE INPUT MD$
480 PRINT TAB(20);"Gravar informacoes coletadas";:GOSUB 1520:GR$=X$
500 IF GR$="N" THEN 550
510 PRINT TAB(20);"Numero do arquivo (0 a 9) ";:INPUT NF$
520 NF$=LEFT$(NF$,1):NF=VAL(NF$):IF NF<<0 OR NF>>9 THEN 510
530 OPEN "R",1,"RISCMAM"+NF$+".DAT"
540 FIELD 1,10 AS RG$,30 AS RP$
550 PRINT TAB(20);"Listar so' achados positivos da anamnese";:GOSUB 1520:LA$=X$
560 PRINT TAB(20);"Listar resultados na impressora ";:GOSUB 1520:IO$=X$
570 CLS:PRINT "Avaliacao de risco do cancer mamario":PRINT SEP$
580 PRINT:LINE INPUT "Nome da paciente (entre * p/terminar) : ";NO$
590 IF NO$="" OR NO$="*" THEN CLS:CLOSE:END
600 LINE INPUT "Numero de registro : ";NR$
620 '----------------- APRESENTACAO DO QUESTIONARIO A PACIENTE ------
640 RESPOSTAS$=""
650 RESTORE:READ NPERGUNTAS
660 FOR I=1 TO NPERGUNTAS:IRESPOSTA(I)=0:NEXT I
670 NX=1
680 READ NQUEST,NALTERN,TEXT$,TRESUM$
690 IF NQUEST=0 THEN 880
700 NALTERN(NQUEST)=NALTERN:TRESUM$(NQUEST)=TRESUM$
710 FOR I=1 TO NALTERN:READ TEXTALT$(I),NPROXIMA(I):NEXT I
740 IF NQUEST<<NX THEN 680
750 CLS:PRINT "Avaliacao de Riscos de Cancer Mamario";
755 PRINT TAB(50) "QUESTAO NO.";NQUEST:PRINT SEP$
760 PRINT:PRINT:PRINT TEXT$:PRINT
770 FOR I=1 TO NALTERN:PRINT I;"- " TEXTALT$(I):NEXT I
780 PRINT:PRINT SEP$:PRINT STRING$(7,10);
795 PRINT "PRESSIONE O NUMERO CORRESPONDENTE A ALTERNATIVA CORRETA :";
800 GOSUB 1630:IO=VAL(X$):IF IO<<1 OR IO>>NALTERN THEN 790 ELSE PRINT IO
830 NX=NPROXIMA(IO):IRESPOSTA(NQUEST)=IO:RESPOSTAS$=RESPOSTAS$+X$
840 GOTO 680
860 '----------------- CALCULO DO RESULTADO -------------------------
880 CLS:'PRINT STRING$(8,10); TAB(16); "Calculando..."
890 IF GR$="S" THEN LSET RG$=NR$:LSET RP$=RESPOSTAS$:PUT 1,LOF(1)+1
900 RISCMAX=-1:RISCCUM=1 'Calculo do risco maximo
910 FOR I=1 TO NPERGUNTAS
920 FOR J=1 TO NALTERN(I):READ PESOS(J):NEXT J
930 J=IRESPOSTA(I):RISCO=PESOS(J)
940 IF RISCO>>0 THEN RISCCUM=RISCCUM*RISCO
960 IF RISCO>>RISCMAX THEN RISCMAX=RISCO
970 NEXT I
980 FOR J=1 TO 4:RISCO(J)=0:NEXT J ' Calculo da faixa de risco
990 RISCO=4
1000 FOR I=1 TO 3
1010 READ NC
1015 FOR J=1 TO NC
1020 READ IQ,IA:IF IRESPOSTA(IQ)=IA THEN RISCO(I)=RISCO(I)+1
1030 NEXT J
1040 NEXT I
1050 FOR I=3 TO 1 STEP -1:
1060 IF RISCO(I)>>0 THEN R$=RISCO$(I):RISCO=I
1070 NEXT I
1080 IF RISCO=4 THEN R$=RISCO$(4)
1090 IF IRESPOSTA(1)<<4 THEN 1140
1100 IF RISCO(3)=>>3 THEN R$=RISCO$(2):RISCO=2
1120 '----------------- IMPRESSAO DOS RESULTADOS --------------------
1140 IF IO$="S" THEN OPEN "O",#IOUT,"PRN:"
1150 IF IO$="N" THEN OPEN "O",#IOUT,"SCRN:":CLS
1160 PRINT#IOUT, SEP$:PRINT#IOUT, TAB(15) "Nucleo de Informatica Biomedica"
1165 PRINT#IOUT, TAB(15);"Universidade Estadual de Campinas":PRINT#IOUT,""
1180 PRINT#IOUT, TAB(15) "Calculo do risco de cancer mamario"
1185 PRINT#IOUT, TAB(25);"RESULTADOS"
1190 PRINT#IOUT, SEP$:PRINT#IOUT,""
1200 PRINT#IOUT, "NOME : ";NO$;TAB(40);"NUMERO : ";NR$:PRINT#IOUT,"":PRINT#IOUT, SEP$
1210 GOSUB 1350
1220 PRINT#IOUT, "A paciente apresenta um risco ";R$;" de desenvolvimento"
1230 PRINT#IOUT, "de cancer mamario";
1240 IF RISCMAX=1 THEN PRINT#IOUT, ".":GOTO 1270
1250 PRINT#IOUT, ", correspondente a"; USING "##.#";RISCMAX;
1255 PRINT#IOUT, " vezes o da populacao normal."
1265 PRINT#IOUT," ":PRINT#IOUT,"Risco cumulativo de ";USING "##.#";RISCCUM;
1268 PRINT#IOUT," vezes o da populacao normal."
1270 PRINT#IOUT,"":PRINT#IOUT, "ACOES MEDICAS RECOMENDADAS:":PRINT#IOUT,""
1280 GOSUB 1670
1290 PRINT#IOUT, " ":PRINT#IOUT," ":PRINT#IOUT," "
1295 PRINT#IOUT, TAB(40); "-----------------------"
1300 PRINT#IOUT, TAB(40); " "; MD$
1305 IF IO$="N" THEN PRINT#IOUT,SEP$:GOSUB 1550
1307 CLOSE(IOUT):GOTO 570
1330 '----------------- SUBROTINA DE APRESENTACAO DA ANAMNESE -------
1350 PRINT#IOUT, "HISTORICO MEDICO :":PRINT#IOUT," "
1360 RESTORE:READ N:NX=1
1370 FOR I=1 TO N
1380 READ NQUEST,NALTERN,TEXT$,TRESUM$
1390 FOR J=1 TO NALTERN:READ TEXTALT$(J),NPROXIMA(J):NEXT J
1420 IF NQUEST<<NX THEN 1460
1430 IF IRESPOSTA(I)=0 THEN 1460
1440 IF LEFT$(TEXTALT$(IRESPOSTA(I)),3)="Nao" AND LA$="S" THEN 1460
1450 PRINT#IOUT,TAB(5);TRESUM$; " : ";TEXTALT$(IRESPOSTA(I))
1460 NX=NPROXIMA(IRESPOSTA(I))
1470 NEXT I
1475 IF IO$="N" THEN PRINT#IOUT,SEP$:GOSUB 1550
1480 RETURN
1500 '----------------- SUBROTINA DE RESPOSTA S/N -------------------
1520 PRINT " (S/N) ? ";
1530 X$=INKEY$:IF X$="" THEN 1530
1532 IF X$="s" OR X$="S" THEN X$="S":PRINT X$:RETURN
1534 IF X$="n" OR X$="N" THEN X$="N":PRINT X$:RETURN
1536 BEEP:GOTO 1530
1540 '----------------- SUBROTINA DE INTERRUPCAO DA TELA ------------
1550 PRINT "Pressione qualquer tecla para continuar"
1555 IF INKEY$="" THEN 1555 ELSE CLS:RETURN
1600 '----------------- SUBROTINA DE RESPOSTA NUMERICA --------------
1630 X$=INKEY$:IF X$="" THEN 1630
1632 IF X$<<"1" OR X$>>"9" THEN BEEP:GOTO 1630
1636 RETURN
1650 '----------------- SUBROTINA DE APRESENTACAO DE ACOES MEDICAS --
1670 IF RISCO=1 AND IRESPOSTA(1)>>1 THEN 1740
1680 IF RISCO=2 AND IRESPOSTA(1)=2 THEN 1760
1690 IF RISCO=2 AND IRESPOSTA(1)>>2 THEN 1780
1700 IF (RISCO=3 OR RISCO=4) AND IRESPOSTA(1)>>1 AND IRESPOSTA(1)<<4 THEN 1810
1710 IF (RISCO=3 OR RISCO=4) AND IRESPOSTA(1)=4 THEN 1850
1720 PRINT#IOUT, "Auto-exame periodico das mamas.":RETURN
1740 PRINT#IOUT, "Controle anual: exame clinico, termografia,"
1750 PRINT#IOUT, "ecografia e mamografia.":GOTO 1870
1760 PRINT#IOUT, "Controle clinico na admissao, com termografia de","
1770 PRINT#IOUT, "placa e ecografia.":GOTO 1870
1780 PRINT#IOUT, "Fazer controle clinico anual, termografia de placa,
1790 PRINT#IOUT, "ecografia e mamografia.":GOTO 1870
1810 PRINT#IOUT, "Realizar controle clinico a cada 2 anos, com"
1820 PRINT#IOUT, "termografia de placa e ecografia, ate' os 45"
1830 PRINT#IOUT, "anos de idade.":GOTO 1870
1850 PRINT#IOUT, "Realizar controle clinico a cada 2 anos, termografia"
1860 PRINT#IOUT, "de placa, ecografia e mamografia."
1870 PRINT#IOUT," ":PRINT#IOUT, "Apos a realizacao dos exames recomendados,"
1880 PRINT#IOUT, "eventualmente a periodicidade dos controles podera'"
1890 PRINT#IOUT, "ser alterada, a criterio do medico.":RETURN
1930 '----------------- DADOS DO QUESTIONARIO -----------------------
1950 DATA 15
1960 DATA 1,4,"Qual e' a sua idade ?",IDADE
1980 DATA "Menos de 30 anos",4,"De 30 a 35 anos",4,"De 35 a 50 anos",2,"50 anos ou mais",2
1990 DATA 2,2,"Ja' passou pela menopausa ?",MENOPAUSA,"Sim",3,"Nao",4
2020 DATA 3,2,"Com que idade iniciou-se a menopausa ?",IDADE DA MENOPAUSA
2040 DATA "antes dos 55 anos",4,"depois dos 55 anos",4
2050 DATA 4,2,"Com que idade teve a primeira menstruacao ?"
2060 DATA MENARCA,"antes dos 12 anos",3,"depois dos 12 anos",3
2080 DATA 5,4,"Qual e' o seu estado civil ?",ESTADO CIVIL
2100 DATA Solteira,6,Casada,6,Amasiada,6,Viuva,6
2110 DATA 6,2,"Ja' teve algum filho ?",PARIDADE,"Sim",7,"Nao",8
2140 DATA 7,2,"Com quantos anos ficou gravida pela primeira vez ?"
2150 DATA IDADE PRIMEIRO FILHO,"antes dos 34 anos",8,"depois dos 34 anos",8
2170 DATA 8,2,"Sua mae teve cancer no seio ?",ANTECEDENTE FAMILIAR,"Sim",9,"Nao",10
2200 DATA 9,4,"Quando e de que tipo foi o cancer ?",TIPO CANCER
2220 DATA "antes da menopausa, de um lado so'",10
2230 DATA "depois da menopausa, de um lado so'",10
2240 DATA "antes da menopausa, dos dois lados",10
2250 DATA "depois da menopausa, dos dois lados",10
2260 DATA 10,2,"Como esta' o seu peso atual em relacao ao normal ?"
2270 DATA PESO ATUAL,"Normal ou abaixo do normal",11,"Acima do normal",11
2290 DATA 11,2,"Ja' fez alguma cirurgia nas mamas, que nao foi plastica ?"
2300 DATA CIRURGIA MAMARIA,Sim,12,Nao,12
2320 DATA 12,2,"Ja' teve cancer em alguma das mamas ?",CANCER MAMARIO,Sim,13,Nao,13
2350 DATA 13,2,"Ja' teve cancer em algum dos ovarios ?",CANCER OVARIANO
2370 DATA Sim,14,Nao,14
2380 DATA 14,2,"Ja' teve cancer do utero ?",CANCER ENDOMETRIO,Sim,15,Nao,15
2410 DATA 15,2,"Ja' teve cancer nos intestinos ?",CANCER INTESTINAL,Sim,16,Nao,16
2440 DATA 0,0,"FIM","FIM"
2460 '----------------- DADOS DOS PESOS DE AVALIACAO ---
2480 DATA 1,1.1,1.2,1.5 :'01 IDADE
2490 DATA 1.2,1 :'02 MENOPAUSA
2500 DATA 1,1.5 :'03 IDADE DA MENOPAUSA
2510 DATA 1.5,1 :'04 IDADE DA MENARCA
2520 DATA 1.3,1,1,1 :'05 ESTADO CIVIL
2530 DATA 1,1.3 :'06 PARIDADE
2540 DATA 1,1.3 :'07 IDADE PRIMEIRO FILHO
2550 DATA 1,1 :'08 ANTECEDENTES FAMILIARES
2560 DATA 3,1.5,9,5 :'09 TIPO DE CANCER
2570 DATA 1,1.5 :'10 PESO ATUAL
2580 DATA 2.5,1 :'11 CIRURGIA MAMARIA
2590 DATA 10,1 :'12 CA MAMARIO
2600 DATA 3,1 :'13 CA OVARIANO
2610 DATA 2,1 :'14 CA UTERINO
2620 DATA 3,1 :'15 CA INTESTINAL
2624 '----------------- DADOS DAS FAIXAS DE RISCO ---
2630 DATA 2,9,3,12,1 :'ALTISSIMO
2640 DATA 6,9,1,9,4,11,1,13,1,14,1,15,1 :'ALTO
2650 DATA 6,6,2,7,2,9,2,4,1,3,2,10,2 :'MEDIO

Voltar ao artigo
Copyright (c) 1995 Renato M.E. Sabbatini