From a837b415960ced05c1f681ad6f6071aa502d27a3 Mon Sep 17 00:00:00 2001 From: maroni Date: Sun, 27 May 2012 23:03:04 -0300 Subject: [PATCH] =?utf8?q?Randomiza=C3=A7=C3=A3o=20de=20sinais=20e=20sintoma?= =?utf8?q?s=20na=20lista=20inicial?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../simdecs/comunicacao/MetodoIniciaCaso.java | 27 ++++++++-- src/java/org/ufcspa/simdecs/test/Teste.java | 54 +++++++------------ web/login.xhtml | 2 +- 3 files changed, 43 insertions(+), 40 deletions(-) diff --git a/src/java/org/ufcspa/simdecs/comunicacao/MetodoIniciaCaso.java b/src/java/org/ufcspa/simdecs/comunicacao/MetodoIniciaCaso.java index e1d1116..8b5e048 100644 --- a/src/java/org/ufcspa/simdecs/comunicacao/MetodoIniciaCaso.java +++ b/src/java/org/ufcspa/simdecs/comunicacao/MetodoIniciaCaso.java @@ -5,6 +5,7 @@ package org.ufcspa.simdecs.comunicacao; import java.io.PrintWriter; +import java.util.ArrayList; import java.util.Date; import java.util.Iterator; import java.util.List; @@ -91,6 +92,7 @@ public class MetodoIniciaCaso extends BaseComunicacao { int random = (int) (1+Math.random()*respostas.size()); int i=1; + for(RespostaNodo resposta : respostas) { if (i++ == random) { List listaInt = em.createQuery("From IntervaloTabelaResposta Where tabelaResposta.id=:pIdTabela and :pProbabilidade between pesoMinimo and pesoMaximo") @@ -184,8 +186,8 @@ public class MetodoIniciaCaso extends BaseComunicacao { out.println(" "); - // Sinais e sintomas - out.println(" "); + List listaSintomas = new ArrayList(); + List nodos = em.createQuery("From NodoPaciente Where paciente.id=:pIDPaciente").setParameter("pIDPaciente", paciente.getId()).getResultList(); for (NodoPaciente nodo : nodos) { if (!nodo.getNodo().getTipo().equals(Nodo.SINAL_SINTOMA) && !nodo.getNodo().getTipo().equals(Nodo.HISTORICO)) { @@ -196,7 +198,7 @@ public class MetodoIniciaCaso extends BaseComunicacao { String pergunta = getPerguntaNodo(nodo.getNodo().getId()); String resposta = getRespostaNodo(nodo.getNodo(), paciente); registraPerguntaLog(em, sessaoUsuario, paciente, nodo.getNodo(), true, Nodo.SINAL_SINTOMA, pergunta, nodo.getNodo().getNomeAmigavel(), resposta); - out.println(" "); + listaSintomas.add(" "); } } @@ -211,10 +213,25 @@ public class MetodoIniciaCaso extends BaseComunicacao { String pergunta = getPerguntaNodo(nodo.getId()); String resposta = getRespostaNodo(nodo, paciente); registraPerguntaLog(em, sessaoUsuario, paciente, nodo, false, Nodo.SINAL_SINTOMA, pergunta, nodo.getNomeAmigavel(), resposta); - out.println(" "); + listaSintomas.add(" "); } } - + + // Randomiza sinais e sintomas + Object[] listaRandom = listaSintomas.toArray(); + for(int i=0; i < listaRandom.length; i++) { + int random = (int) (Math.random()*listaRandom.length); + Object temp = listaRandom[i]; + listaRandom[i] = listaRandom[random]; + listaRandom[random] = temp; + } + + + // Sinais e sintomas + out.println(" "); + for(int i=0; i < listaRandom.length; i++) { + out.println(listaRandom[i]); + } out.println(" "); // Exame Físico diff --git a/src/java/org/ufcspa/simdecs/test/Teste.java b/src/java/org/ufcspa/simdecs/test/Teste.java index e454cc4..44c8bad 100644 --- a/src/java/org/ufcspa/simdecs/test/Teste.java +++ b/src/java/org/ufcspa/simdecs/test/Teste.java @@ -5,6 +5,8 @@ package org.ufcspa.simdecs.test; import java.io.File; +import java.util.ArrayList; +import java.util.List; import unbbayes.io.xmlbif.version6.XMLBIFIO; import unbbayes.prs.bn.JunctionTreeAlgorithm; import unbbayes.prs.bn.ProbabilisticNetwork; @@ -16,41 +18,25 @@ import unbbayes.prs.bn.ProbabilisticNode; */ public class Teste { public static void main(String[] args) { - final String caminhoRede = "/Users/maroni/NetBeansProjects/SimDeCS/web/redes/influencia.xml"; - ProbabilisticNetwork rede; - - try { - // required to run unbbayes gui classes on server - System.setProperty("java.awt.headless", "false"); - rede = new ProbabilisticNetwork(null); - XMLBIFIO.loadXML(new File(caminhoRede), rede); - JunctionTreeAlgorithm jt = new JunctionTreeAlgorithm(); - jt.setNet(rede); - jt.run(); - - - for (int j = 0; j < rede.getNodeCount(); j++) { - if (!(rede.getNodeAt(j) instanceof ProbabilisticNode)) { - System.out.println(rede.getNodeAt(j).getClass()); - continue; - } - - ProbabilisticNode nodoAtual = (ProbabilisticNode) rede.getNodeAt(j); - System.out.println(nodoAtual.getName()); - - // Verificando a tabela de probabilidades do nodo - for (int pb = 0; pb < nodoAtual.getStatesSize(); pb++) { - System.out.println(nodoAtual.getStateAt(pb)+":"+nodoAtual.getMarginalAt(pb)); - } - System.out.println(""); - } - - - } catch (Exception e) { - e.printStackTrace(); - System.exit(1); + List listaSintomas = new ArrayList(); + listaSintomas.add("A"); + listaSintomas.add("B"); + listaSintomas.add("C"); + listaSintomas.add("D"); + listaSintomas.add("E"); + listaSintomas.add("F"); + + + Object[] listaRandom = listaSintomas.toArray(); + for(int i=0; i < listaRandom.length; i++) { + int random = (int) (1+Math.random()*listaRandom.length); + Object temp = listaRandom[i]; + listaRandom[i] = listaRandom[random]; + listaRandom[random] = temp; } - + for(int i=0; i < listaRandom.length; i++) { + System.out.println(listaRandom[i]); + } } } diff --git a/web/login.xhtml b/web/login.xhtml index c8d7cbc..4864fe6 100644 --- a/web/login.xhtml +++ b/web/login.xhtml @@ -35,7 +35,7 @@ Acesso ao Simulador

- + -- 1.7.6.4