Modificações no sistema de conexão com BD para evitar erro de shared chache e ajuste...
authormaroni <maroni@192.168.1.103>
Fri, 6 Jul 2012 04:18:11 +0000 (01:18 -0300)
committermaroni <maroni@192.168.1.103>
Fri, 6 Jul 2012 04:18:11 +0000 (01:18 -0300)
src/java/org/ufcspa/simdecs/comunicacao/BaseComunicacao.java
src/java/org/ufcspa/simdecs/comunicacao/MetodoIniciaCaso.java
src/java/org/ufcspa/simdecs/mediador/LogExecucao.java
src/java/org/ufcspa/simdecs/mediador/NegociacaoPedagogica.java
web/login.xhtml

index 0ca35b7..95e6399 100644 (file)
@@ -10,6 +10,7 @@ import java.io.StringWriter;
 import java.util.Iterator;
 import java.util.Map;
 import javax.persistence.EntityManager;
+import javax.persistence.Persistence;
 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServlet;
 import javax.servlet.http.HttpServletRequest;
@@ -65,7 +66,6 @@ public abstract class BaseComunicacao extends HttpServlet {
 
     protected void processRequest(HttpServletRequest request, HttpServletResponse response)
             throws ServletException, IOException {
-        EntityManager em = DbUtil.getInstance().getEntityManager();
 
         response.setContentType("text/html;charset=UTF-8");
         PrintWriter out = response.getWriter();
@@ -85,8 +85,11 @@ public abstract class BaseComunicacao extends HttpServlet {
         }    
         printDebug("------------------------------------------------------------------------------------");
 
+        EntityManager em = null;
         try {
-
+            // EntityManager em = DbUtil.getInstance().getEntityManager();
+            em = Persistence.createEntityManagerFactory("SimDeCSPU").createEntityManager();
+            
             executaServico(em, request, response, out);
         } catch(Exception e) {
             out.println("<xml>" );
@@ -111,7 +114,10 @@ public abstract class BaseComunicacao extends HttpServlet {
             out.println("</xml>" );
             
             e.printStackTrace();
-        } finally { 
+        } finally {
+            if (em != null)
+                em.close();
+            
             out.close();
         }
     }
index 133eb7b..014e311 100644 (file)
@@ -24,8 +24,7 @@ import unbbayes.prs.bn.TreeVariable;
  */
 public class MetodoIniciaCaso extends BaseComunicacao {
 
-    private String getPerguntaNodo(Long idNodo) {
-        EntityManager em = DbUtil.getInstance().getEntityManager();
+    private String getPerguntaNodo(Long idNodo, EntityManager em) {
         List <PerguntaNodo> perguntas = em.createQuery("From PerguntaNodo where nodo.id=:pIdNodo")
                                          .setParameter("pIdNodo", idNodo)
                                          .getResultList();
@@ -195,7 +194,7 @@ public class MetodoIniciaCaso extends BaseComunicacao {
                 }
 
                 {
-                    String pergunta = getPerguntaNodo(nodo.getNodo().getId());
+                    String pergunta = getPerguntaNodo(nodo.getNodo().getId(), em);
                     String resposta = getRespostaNodo(nodo.getNodo(), paciente);
                     registraPerguntaLog(em, sessaoUsuario, paciente, nodo.getNodo(), true, Nodo.SINAL_SINTOMA, pergunta, nodo.getNodo().getNomeAmigavel(), resposta);
                     listaSintomas.add("                <sintoma uid=\"sintoma-np-" + nodo.getId() + ":paciente-" + paciente.getId() + "\" nomeCientifico=\"" + clear(nodo.getNodo().getNome()) + "\" nomePopular=\"" + clear(pergunta) + "\" imagem=\"\" som=\"\" video=\"\" dependencia=\"" + getDependencia(nodo.getNodo().getId()) + "\" falaPaciente=\"" + clear(resposta) + "\" />");
@@ -210,7 +209,7 @@ public class MetodoIniciaCaso extends BaseComunicacao {
                 }
 
                 {
-                    String pergunta = getPerguntaNodo(nodo.getId());
+                    String pergunta = getPerguntaNodo(nodo.getId(), em);
                     String resposta = getRespostaNodo(nodo, paciente);
                     registraPerguntaLog(em, sessaoUsuario, paciente, nodo, false, Nodo.SINAL_SINTOMA, pergunta, nodo.getNomeAmigavel(), resposta);
                     listaSintomas.add("                <sintoma uid=\"sintoma-nd-" + nodo.getId() + ":paciente-" + paciente.getId() + "\" nomeCientifico=\"" + clear(nodo.getNome()) + "\" nomePopular=\"" + clear(pergunta) + "\" imagem=\"\" som=\"\" video=\"\" dependencia=\"" + getDependencia(nodo.getId()) + "\" falaPaciente=\"" + clear(resposta) + "\" />");
@@ -281,7 +280,7 @@ public class MetodoIniciaCaso extends BaseComunicacao {
             while (itDiagnosticos.hasNext()) {
                 Nodo nodo = itDiagnosticos.next();
                 {
-                    String resposta = getPerguntaNodo(nodo.getId());
+                    String resposta = getPerguntaNodo(nodo.getId(), em);
                     registraPerguntaLog(em, sessaoUsuario, paciente, nodo, false, Nodo.DIAGNOSTICO, null, nodo.getNomeAmigavel(), resposta);
                     out.println("            <diagnostico uid=\"diagnostico-" + nodo.getId() + ":paciente-" + paciente.getId() + "\" nome=\"" + clear(nodo.getNomeAmigavel()) + "\" falaMedico=\"" + clear(resposta) + "\" />");
                 }
@@ -293,7 +292,7 @@ public class MetodoIniciaCaso extends BaseComunicacao {
             while (itConduta.hasNext()) {
                 Nodo nodo = itConduta.next();
                 {
-                    String resposta = getPerguntaNodo(nodo.getId());
+                    String resposta = getPerguntaNodo(nodo.getId(), em);
                     registraPerguntaLog(em, sessaoUsuario, paciente, nodo, false, Nodo.CONDUTA, null, nodo.getNomeAmigavel(), resposta);
                     out.println("            <conduta uid=\"conduta-" + nodo.getId() + ":paciente-" + paciente.getId() + "\" nome=\"" + clear(nodo.getNomeAmigavel()) + "\" falaMedico=\"" + clear(resposta) + "\" />");
                 }
index 21400ce..d0b5c8b 100644 (file)
@@ -66,7 +66,7 @@ public class LogExecucao {
     private EntityManager em;
     
     
-    public final void refresh(SessaoUsuario sessaoUsuario, Paciente paciente) throws Exception {
+    public final void refresh(SessaoUsuario sessaoUsuario, Paciente paciente, EntityManager em) throws Exception {
         
         // Inicializa Valores
         perguntasRealizadas = perguntasDisponiveis = perguntasProfessor = perguntasBogusRealizadas =
@@ -88,7 +88,7 @@ public class LogExecucao {
         
         nodosInvestigacao = new ArrayList<Nodo>();
         
-        em = DbUtil.getInstance().getEntityManager();
+        //em = DbUtil.getInstance().getEntityManager();
         
         Iterator<Log> itLog = em.createQuery("From Log where sessaoUsuario.id=:pIDSessao order by  data")
                                 .setParameter("pIDSessao", sessaoUsuario.getId())
@@ -244,8 +244,8 @@ public class LogExecucao {
         }        
     }
     
-    public LogExecucao(SessaoUsuario sessaoUsuario, Paciente paciente) throws Exception {
-        refresh(sessaoUsuario, paciente);
+    public LogExecucao(SessaoUsuario sessaoUsuario, Paciente paciente, EntityManager em) throws Exception {
+        refresh(sessaoUsuario, paciente, em);
     }
 
     public boolean isAbriuFichaPaciente() {
index 4583ba8..25f6a3d 100644 (file)
@@ -7,6 +7,7 @@ package org.ufcspa.simdecs.mediador;
 import java.util.*;
 import javax.persistence.EntityManager;
 import javax.persistence.NoResultException;
+import javax.persistence.Persistence;
 import org.ufcspa.simdecs.entities.*;
 import org.ufcspa.simdecs.util.DbUtil;
 import org.ufcspa.simdecs.util.NodoBean;
@@ -520,7 +521,7 @@ public class NegociacaoPedagogica {
         
         
         // Verifica as condutas
-        if (logExecucao.isConcluiuConduta()) {
+        if (logExecucao.isConcluiuConduta() && logExecucao.isConcluiuDiagnostico()) {
             // Verifica a adequacao da conduta
             String resultadoConduta = getResultadoConduta();
             resultadosSimulacao.add(resultadoConduta);
@@ -549,13 +550,18 @@ public class NegociacaoPedagogica {
     }
     
     public NegociacaoPedagogica(long idSessao, Paciente paciente) throws Exception {
-        em = DbUtil.getInstance().getEntityManager(); 
-        SessaoUsuario sessaoUsuario = em.find(SessaoUsuario.class, idSessao);
-        this.sessaoUsuario = sessaoUsuario;
-        this.paciente = paciente;
-
-        // Busca o log de execução
-        logExecucao = new LogExecucao(sessaoUsuario, paciente);
+        //em = DbUtil.getInstance().getEntityManager(); 
+        try {
+            em = Persistence.createEntityManagerFactory("SimDeCSPU").createEntityManager();
+            SessaoUsuario sessaoUsuario = em.find(SessaoUsuario.class, idSessao);
+            this.sessaoUsuario = sessaoUsuario;
+            this.paciente = paciente;
+
+            // Busca o log de execução
+            logExecucao = new LogExecucao(sessaoUsuario, paciente, em);
+        } finally {
+            em.close();
+        }
     }
     
     public String getIntervencao(String etapa) throws Exception {        
index d0a2b2d..a86dc50 100644 (file)
@@ -35,7 +35,7 @@
             <a href="simulador/index.html">Acesso ao Simulador</a>
             <br/>
             <br/>
-            <h:outputText value="Versão 4.1.4" />
+            <h:outputText value="Versão 4.2" />
         </center>
     </h:body>
 </html>