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;
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")
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)) {
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 + "\" />");
}
}
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
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;
*/
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]);
+ }
}
}