From: maroni Date: Thu, 15 Mar 2012 04:16:15 +0000 (-0300) Subject: (no commit message) X-Git-Url: http://200.18.67.61/gitweb/?a=commitdiff_plain;h=c1897a7f3611d3788a564ddb1e2d0c3db0bcf9db;p=simdecs2.git --- diff --git a/src/java/org/ufcspa/simdecs/comunicacao/MetodoIniciaCaso.java b/src/java/org/ufcspa/simdecs/comunicacao/MetodoIniciaCaso.java index 9383f9c..652d968 100644 --- a/src/java/org/ufcspa/simdecs/comunicacao/MetodoIniciaCaso.java +++ b/src/java/org/ufcspa/simdecs/comunicacao/MetodoIniciaCaso.java @@ -14,9 +14,11 @@ import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import javax.xml.crypto.Data; import org.ufcspa.simdecs.entities.*; import org.ufcspa.simdecs.util.DbUtil; +import org.ufcspa.simdecs.util.NodoBean; +import org.ufcspa.simdecs.util.UnBUtil; +import unbbayes.prs.bn.ProbabilisticNode; /** * @@ -40,19 +42,51 @@ public class MetodoIniciaCaso extends HttpServlet { return ""; } + - private String getRespostaNodo(Long idNodo) { + private String getRespostaNodo(NodoPaciente nodoPaciente) { EntityManager em = DbUtil.getInstance().getEntityManager(); + + UnBUtil unBUtil = UnBUtil.getInstance(nodoPaciente.getPaciente().getRede()); + unBUtil.abreRede(nodoPaciente.getPaciente().getRede()); + + Iterator it = em.createQuery("From NodoPaciente Where paciente.id=:pIdPaciente") + .setParameter("pIdPaciente", nodoPaciente.getPaciente().getId()) + .getResultList() + .iterator(); + + while(it.hasNext()) { + NodoPaciente nodoPac = it.next(); + + ProbabilisticNode pn = unBUtil.getNodeByName(nodoPac.getNodo().getNome()); + unBUtil.ativarNodo(pn); + } + + NodoBean nodoBean = unBUtil.getNodoBeanByNodo(nodoPaciente.getNodo()); + nodoBean.getPercentualProbabilidade(); + List respostas = em.createQuery("From RespostaNodo where nodo.id=:pIdNodo") - .setParameter("pIdNodo", idNodo) + .setParameter("pIdNodo", nodoPaciente.getNodo().getId()) .getResultList(); int random = (int) (1+Math.random()*respostas.size()); int i=1; for(RespostaNodo resposta : respostas) { - if (i++ == random) - return resposta.getTexto(); + if (i++ == random) { + + List listaInt = em.createQuery("From IntervaloTabelaResposta Where tabelaResposta.id=:pIdTabela and :pProbabilidade between pesoInicial and pesoFinal") + .setParameter("pIdTabela", resposta.getTabelaResposta().getId()) + .setParameter("pProbabilidade", nodoBean.getPercentualProbabilidade()) + .getResultList(); + + int randomInt = (int) (1+Math.random()*listaInt.size()); + int x=1; + for(IntervaloTabelaRespota intervalo : listaInt) { + if (x++ == random) + return resposta.getTexto().replaceAll("&&tabela", intervalo.getTexto()); + } + } } return ""; @@ -116,7 +150,7 @@ public class MetodoIniciaCaso extends HttpServlet { if (!nodo.getNodo().getTipo().equals(Nodo.SINAL_SINTOMA)) continue; - out.println(" "); + out.println(" "); } out.println(" "); diff --git a/src/java/org/ufcspa/simdecs/util/UnBUtil.java b/src/java/org/ufcspa/simdecs/util/UnBUtil.java index c77f62d..495ef1e 100644 --- a/src/java/org/ufcspa/simdecs/util/UnBUtil.java +++ b/src/java/org/ufcspa/simdecs/util/UnBUtil.java @@ -63,6 +63,15 @@ public class UnBUtil { return null; } + + public NodoBean getNodoBeanByNodo(Nodo nodo) { + for(Node node : rede.getNodes()) { + if (node.getName().equals(nodo.getNome())) + return new NodoBean(nodo, (ProbabilisticNode) node); + } + + return null; + } public ProbabilisticNetwork getRede() { return rede; @@ -95,7 +104,6 @@ public class UnBUtil { setProbablidadeNodo(pn, 0.0f, 1f); } - public List getProbabilidadeNodos(String tipo) { EntityManager em = DbUtil.getInstance().getEntityManager(); List nodos = new ArrayList();