Randomização de sinais e sintomas na lista inicial
authormaroni <maroni@192.168.1.103>
Mon, 28 May 2012 02:03:04 +0000 (23:03 -0300)
committermaroni <maroni@192.168.1.103>
Mon, 28 May 2012 02:03:04 +0000 (23:03 -0300)
src/java/org/ufcspa/simdecs/comunicacao/MetodoIniciaCaso.java
src/java/org/ufcspa/simdecs/test/Teste.java
web/login.xhtml

index e1d1116..8b5e048 100644 (file)
@@ -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<IntervaloTabelaResposta> 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("        <etapa uid=\"etapa-1\" nome=\"Investigação\" sequencia=\"1\" tipo=\"investigacao\">");
 
-            // Sinais e sintomas
-            out.println("            <perguntar_sintoma uid=\"perguntar-sintoma-" + paciente.getId() + "\" descricao=\"Perguntar Sinais/Sintomas\">");
+            List<String> listaSintomas = new ArrayList<String>();
+            
             List<NodoPaciente> 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("                <sintoma uid=\"sintoma-np-" + nodo.getId() + ":paciente-" + paciente.getId() + "\" nomeCientifico=\"" + nodo.getNodo().getNome() + "\" nomePopular=\"" + pergunta + "\" imagem=\"\" som=\"\" video=\"\" dependencia=\"" + getDependencia(nodo.getNodo().getId()) + "\" falaPaciente=\"" + resposta + "\" />");
+                    listaSintomas.add("                <sintoma uid=\"sintoma-np-" + nodo.getId() + ":paciente-" + paciente.getId() + "\" nomeCientifico=\"" + nodo.getNodo().getNome() + "\" nomePopular=\"" + pergunta + "\" imagem=\"\" som=\"\" video=\"\" dependencia=\"" + getDependencia(nodo.getNodo().getId()) + "\" falaPaciente=\"" + resposta + "\" />");
                 }
             }
 
@@ -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("                <sintoma uid=\"sintoma-nd-" + nodo.getId() + ":paciente-" + paciente.getId() + "\" nomeCientifico=\"" + nodo.getNome() + "\" nomePopular=\"" + pergunta + "\" imagem=\"\" som=\"\" video=\"\" dependencia=\"" + getDependencia(nodo.getId()) + "\" falaPaciente=\"" + resposta + "\" />");
+                    listaSintomas.add("                <sintoma uid=\"sintoma-nd-" + nodo.getId() + ":paciente-" + paciente.getId() + "\" nomeCientifico=\"" + nodo.getNome() + "\" nomePopular=\"" + pergunta + "\" imagem=\"\" som=\"\" video=\"\" dependencia=\"" + getDependencia(nodo.getId()) + "\" falaPaciente=\"" + resposta + "\" />");
                 }
             }
-
+            
+            // 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("            <perguntar_sintoma uid=\"perguntar-sintoma-" + paciente.getId() + "\" descricao=\"Perguntar Sinais/Sintomas\">");
+            for(int i=0; i < listaRandom.length; i++) {
+                out.println(listaRandom[i]);
+            }
             out.println("            </perguntar_sintoma>");
 
             // Exame Físico
index e454cc4..44c8bad 100644 (file)
@@ -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<String> listaSintomas = new ArrayList<String>();
+        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]);
+        }
     }
 }
index c8d7cbc..4864fe6 100644 (file)
@@ -35,7 +35,7 @@
             <a href="simulador/index.html">Acesso ao Simulador</a>
             <br/>
             <br/>
-            <h:outputText value="Versão 4.0.7" />
+            <h:outputText value="Versão 4.0.8" />
         </center>
     </h:body>
 </html>