Implementação dos registros de Log de eventos!
authormaroni <maroni@192.168.1.103>
Fri, 30 Mar 2012 23:46:07 +0000 (20:46 -0300)
committermaroni <maroni@192.168.1.103>
Fri, 30 Mar 2012 23:46:07 +0000 (20:46 -0300)
29 files changed:
.gitignore
src/java/org/ufcspa/simdecs/comunicacao/BaseComunicacao.java [new file with mode: 0644]
src/java/org/ufcspa/simdecs/comunicacao/MetodoAutenticacao.java
src/java/org/ufcspa/simdecs/comunicacao/MetodoConfiancaEtapa.java
src/java/org/ufcspa/simdecs/comunicacao/MetodoConfiancaInicial.java
src/java/org/ufcspa/simdecs/comunicacao/MetodoFimCaso.java
src/java/org/ufcspa/simdecs/comunicacao/MetodoGravaHistorico.java
src/java/org/ufcspa/simdecs/comunicacao/MetodoGravaLog.java
src/java/org/ufcspa/simdecs/comunicacao/MetodoIniciaCaso.java
src/java/org/ufcspa/simdecs/comunicacao/MetodoRegistraAcao.java
src/java/org/ufcspa/simdecs/comunicacao/MetodoSelecionaCaso.java
web/login.xhtml
web/simulador/Chamadas.as [new file with mode: 0755]
web/simulador/DadosGlobais.as
web/simulador/Game.as
web/simulador/Lendo XML Medicina.fla [new file with mode: 0755]
web/simulador/Lendo XML Medicina.swf [new file with mode: 0755]
web/simulador/Lendo XML.fla [new file with mode: 0755]
web/simulador/Lendo XML.swf [new file with mode: 0755]
web/simulador/MedicinaSaude.fla [new file with mode: 0755]
web/simulador/MedicinaSaude.swf
web/simulador/SitesFlash.txt [new file with mode: 0755]
web/simulador/endereco.txt [new file with mode: 0755]
web/simulador/index.html
web/simulador/livros.xml [new file with mode: 0755]
web/simulador/padrao.xml [new file with mode: 0755]
web/simulador/teste.xml [new file with mode: 0755]
web/simulador/textLayout_1.0.0.595.swz [new file with mode: 0755]
web/simulador/textLayout_2.0.0.232.swz [new file with mode: 0755]

index 22f399f..315ea15 100644 (file)
@@ -1,3 +1,3 @@
 /dist/
 /build/
-/nbproject/private/
+/nbproject/private/
\ No newline at end of file
diff --git a/src/java/org/ufcspa/simdecs/comunicacao/BaseComunicacao.java b/src/java/org/ufcspa/simdecs/comunicacao/BaseComunicacao.java
new file mode 100644 (file)
index 0000000..4faf3ae
--- /dev/null
@@ -0,0 +1,132 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package org.ufcspa.simdecs.comunicacao;
+
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.io.StringWriter;
+import java.util.Iterator;
+import java.util.Map;
+import javax.persistence.EntityManager;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import org.ufcspa.simdecs.util.DbUtil;
+
+/**
+ *
+ * @author maroni
+ */
+public abstract class BaseComunicacao extends HttpServlet {
+
+    protected static String stack2string(Exception e) {
+        try {
+            StringWriter sw = new StringWriter();
+            PrintWriter pw = new PrintWriter(sw);
+            e.printStackTrace(pw);
+            return "------\r\n" + sw.toString() + "------\r\n";
+        } catch (Exception e2) {
+            return "bad stack2string";
+        }
+    }
+
+    protected final void printDebug(String print) {
+        System.out.println(print);
+    }
+    
+    protected abstract void executaServico(EntityManager em, HttpServletRequest request, HttpServletResponse response, PrintWriter out) throws Exception;
+
+    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();
+
+        // Debug do Servlet        
+        printDebug("------------------------------------------------------------------------------------");
+        printDebug("METODO....: " + this.getClass());
+        printDebug("PARAMETROS: ");
+        Map params = request.getParameterMap();
+        Iterator i = params.keySet().iterator();
+    
+        while ( i.hasNext() )
+        {
+            String key = (String) i.next();
+            String value = ((String[]) params.get( key ))[ 0 ];
+            printDebug("   " +  key + ": " + value);
+        }    
+        printDebug("------------------------------------------------------------------------------------");
+
+        try {
+
+            executaServico(em, request, response, out);
+        } catch(Exception e) {
+            out.println("<xml>" );
+            out.println("   <erro metodo=\"" + this.getServletName() + "\">" );
+            out.println("       <parametros>");
+            
+            Map paramsError = request.getParameterMap();
+            Iterator iError = paramsError.keySet().iterator();
+
+            while ( iError.hasNext() )
+            {
+                String key = (String) iError.next();
+                String value = ((String[]) paramsError.get( key ))[ 0 ];
+                out.println("            <parametro nome=\"" +  key + "\" value=\"" + value + "\">");
+            }    
+            out.println("       </parametros>");
+            out.println("       <mensagem>");
+            out.println("           " + stack2string(e));
+            out.println("       </mensagem>");
+            out.println("   </erro>" );
+            out.println("</xml>" );
+        } finally { 
+            out.close();
+        }
+    }
+
+    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
+    /**
+     * Handles the HTTP
+     * <code>GET</code> method.
+     *
+     * @param request servlet request
+     * @param response servlet response
+     * @throws ServletException if a servlet-specific error occurs
+     * @throws IOException if an I/O error occurs
+     */
+    @Override
+    protected void doGet(HttpServletRequest request, HttpServletResponse response)
+            throws ServletException, IOException {
+        processRequest(request, response);
+    }
+
+    /**
+     * Handles the HTTP
+     * <code>POST</code> method.
+     *
+     * @param request servlet request
+     * @param response servlet response
+     * @throws ServletException if a servlet-specific error occurs
+     * @throws IOException if an I/O error occurs
+     */
+    @Override
+    protected void doPost(HttpServletRequest request, HttpServletResponse response)
+            throws ServletException, IOException {
+        processRequest(request, response);
+    }
+
+    /**
+     * Returns a short description of the servlet.
+     *
+     * @return a String containing servlet description
+     */
+    @Override
+    public String getServletInfo() {
+        return "Short description";
+    }// </editor-fold>
+}
index 28720f6..f066d28 100644 (file)
@@ -4,18 +4,13 @@
  */
 package org.ufcspa.simdecs.comunicacao;
 
-import java.io.IOException;
 import java.io.PrintWriter;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-import javax.servlet.*;
 import javax.persistence.EntityManager;
 import javax.persistence.NoResultException;
 import org.ufcspa.simdecs.action.Action;
 import org.ufcspa.simdecs.entities.Usuario;
-import org.ufcspa.simdecs.util.DbUtil;
 import org.ufcspa.simdecs.util.JadeUtil;
 
 /**
@@ -23,33 +18,14 @@ import org.ufcspa.simdecs.util.JadeUtil;
  * @author pbarros 
  * 
  */
-public class MetodoAutenticacao extends HttpServlet {
+public class MetodoAutenticacao extends BaseComunicacao {
 
-    /**
-     * Processes requests for both HTTP
-     * <code>GET</code> and
-     * <code>POST</code> methods.
-     *
-     * @param request servlet request
-     * @param response servlet response
-     * @throws ServletException if a servlet-specific error occurs
-     * @throws IOException if an I/O error occurs
-     */
-    private ServletConfig config;
-    public void init(ServletConfig config)
-            throws ServletException{
-        this.config=config;
-    }
-    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
-            throws ServletException, IOException {
-        
-        PrintWriter out = response.getWriter();
-        
-        
-        
+    @Override
+    protected void executaServico(EntityManager em, HttpServletRequest request, HttpServletResponse response, PrintWriter out)
+            throws Exception
+    {
         response.setContentType( "text/xml" );
         response.setHeader( "Cache-Control", "no-cache" );
-        EntityManager em = DbUtil.getInstance().getEntityManager();
         
         out.println( "<xml>" );
         
@@ -63,57 +39,12 @@ public class MetodoAutenticacao extends HttpServlet {
                 out.println( "<id>" + String.valueOf(user.getId()) + "</id>" );
        } catch (NoResultException ne) {
                 out.println( "<id>" + "0" + "</id>" );
-       } finally {         
-            
+       } finally {                     
             out.println( "</xml>" );
-            out.close();
         }
-        JadeUtil instance = JadeUtil.getInstance();
-        Action ac = instance.getActions().get("sendmessage");
-        ac.perform(this, request, response);
-        out.print(ac.toString());
-        
-        
+//        JadeUtil instance = JadeUtil.getInstance();
+  //      Action ac = instance.getActions().get("sendmessage");
+    //    ac.perform(this, request, response);
+//        out.print(ac.toString());
     }
-
-    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
-    /**
-     * Handles the HTTP
-     * <code>GET</code> method.
-     *
-     * @param request servlet request
-     * @param response servlet response
-     * @throws ServletException if a servlet-specific error occurs
-     * @throws IOException if an I/O error occurs
-     */
-    @Override
-    protected void doGet(HttpServletRequest request, HttpServletResponse response)
-            throws ServletException, IOException {
-        processRequest(request, response);
-    }
-
-    /**
-     * Handles the HTTP
-     * <code>POST</code> method.
-     *
-     * @param request servlet request
-     * @param response servlet response
-     * @throws ServletException if a servlet-specific error occurs
-     * @throws IOException if an I/O error occurs
-     */
-    @Override
-    protected void doPost(HttpServletRequest request, HttpServletResponse response)
-            throws ServletException, IOException {
-        processRequest(request, response);
-    }
-
-    /**
-     * Returns a short description of the servlet.
-     *
-     * @return a String containing servlet description
-     */
-    @Override
-    public String getServletInfo() {
-        return "Short description";
-    }// </editor-fold>
 }
index dc14ac5..ca4339d 100644 (file)
  */
 package org.ufcspa.simdecs.comunicacao;
 
-import java.io.IOException;
 import java.io.PrintWriter;
 import java.util.Date;
 import javax.persistence.EntityManager;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import org.ufcspa.simdecs.entities.Log;
 import org.ufcspa.simdecs.entities.Paciente;
 import org.ufcspa.simdecs.entities.SessaoUsuario;
 import org.ufcspa.simdecs.entities.TipoEventoLog;
-import org.ufcspa.simdecs.util.DbUtil;
 
 /**
  *
  * @author maroni
  */
-public class MetodoConfiancaEtapa extends HttpServlet {
-
-    /**
-     * Processes requests for both HTTP
-     * <code>GET</code> and
-     * <code>POST</code> methods.
-     *
-     * @param request servlet request
-     * @param response servlet response
-     * @throws ServletException if a servlet-specific error occurs
-     * @throws IOException if an I/O error occurs
-     */
-    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
-            throws ServletException, IOException {
+public class MetodoConfiancaEtapa extends BaseComunicacao {
+
+    @Override
+    protected void executaServico(EntityManager em, HttpServletRequest request, HttpServletResponse response, PrintWriter out) throws Exception
+    {
         response.setContentType("text/html;charset=UTF-8");
-        PrintWriter out = response.getWriter();
-        try {
-            response.setContentType( "text/xml" );
-            response.setHeader( "Cache-Control", "no-cache" );
-
-            EntityManager em = DbUtil.getInstance().getEntityManager();
-            long     pIdSessao    = Long.parseLong(request.getParameter("idsessao"));
-            String   pNivel       = request.getParameter("nivelconfianca");
-            String   pEtapa       = request.getParameter("etapa");
-            long     pIdPaciente  = Long.parseLong(request.getParameter("idpaciente"));
-            String   nivelConfianca;
-            String   etapa;
-            
-            if (pNivel.toLowerCase().equals("baixo"))
-                nivelConfianca = Log.CONFIANCA_BAIXA;
-            else if(pNivel.toLowerCase().equals("medio"))
-                nivelConfianca = Log.CONFIANCA_MEDIA;
-            else if(pNivel.toLowerCase().equals("alto"))
-                nivelConfianca = Log.CONFIANCA_ALTA;
-            else
-                return;
-
-            if (pEtapa.toLowerCase().equals("diagnostico"))
-                etapa = Log.ETAPA_DIAGNOSTICO;
-            else if(pEtapa.toLowerCase().equals("investigacao"))
-                etapa = Log.ETAPA_INVESTIGACAO;
-            else if (pEtapa.toLowerCase().equals("conduta"))
-                etapa = Log.ETAPA_CONDUTA;
-            else
-                return;
-            
-            // Registra Log
-            SessaoUsuario sessaoUsuario = em.find(SessaoUsuario.class, pIdSessao);
-            if (sessaoUsuario == null)
-                return;
-            
-            Paciente paciente = em.find(Paciente.class, pIdPaciente);
-            if (paciente == null)
-                return;
-            
-            if (!em.getTransaction().isActive())
-                em.getTransaction().begin();
-
-            Log log = new Log();
-            log.setTipo(em.find(TipoEventoLog.class, TipoEventoLog.CONFIANCA_ETAPA));
-            log.setRede(paciente.getRede());
-            log.setConfianca(nivelConfianca);
-            log.setEtapa(etapa);
-            log.setPaciente(paciente);
-            log.setCaso(sessaoUsuario.getCaso());
-            log.setData(new Date());
-            log.setSessaoUsuario(sessaoUsuario);
-
-            em.persist(log);            
-            em.getTransaction().commit();
-
-            out.println( "<xml>" );
-
-            out.println("   <nivel_confianca registrado=\"sim\" />");
-            out.println("   <resposta_acao_mediador acao=\"nao\" />");
-            
-            out.println( "</xml>" );
-        } finally {
-            out.close();
+        
+        response.setContentType("text/xml");
+        response.setHeader("Cache-Control", "no-cache");
+
+        long pIdSessao = Long.parseLong(request.getParameter("idsessao"));
+        String pNivel = request.getParameter("nivelconfianca");
+        String pEtapa = request.getParameter("etapa");
+        long pIdPaciente = Long.parseLong(request.getParameter("idpaciente"));
+        String nivelConfianca;
+        String etapa;
+
+        if (pNivel.toLowerCase().equals("baixo")) {
+            nivelConfianca = Log.CONFIANCA_BAIXA;
+        } else if (pNivel.toLowerCase().equals("medio")) {
+            nivelConfianca = Log.CONFIANCA_MEDIA;
+        } else if (pNivel.toLowerCase().equals("alto")) {
+            nivelConfianca = Log.CONFIANCA_ALTA;
+        } else {
+            return;
         }
-    }
 
-    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
-    /**
-     * Handles the HTTP
-     * <code>GET</code> method.
-     *
-     * @param request servlet request
-     * @param response servlet response
-     * @throws ServletException if a servlet-specific error occurs
-     * @throws IOException if an I/O error occurs
-     */
-    @Override
-    protected void doGet(HttpServletRequest request, HttpServletResponse response)
-            throws ServletException, IOException {
-        processRequest(request, response);
-    }
+        if (pEtapa.toLowerCase().equals("diagnostico")) {
+            etapa = Log.ETAPA_DIAGNOSTICO;
+        } else if (pEtapa.toLowerCase().equals("investigacao")) {
+            etapa = Log.ETAPA_INVESTIGACAO;
+        } else if (pEtapa.toLowerCase().equals("conduta")) {
+            etapa = Log.ETAPA_CONDUTA;
+        } else {
+            return;
+        }
 
-    /**
-     * Handles the HTTP
-     * <code>POST</code> method.
-     *
-     * @param request servlet request
-     * @param response servlet response
-     * @throws ServletException if a servlet-specific error occurs
-     * @throws IOException if an I/O error occurs
-     */
-    @Override
-    protected void doPost(HttpServletRequest request, HttpServletResponse response)
-            throws ServletException, IOException {
-        processRequest(request, response);
-    }
+        // Registra Log
+        SessaoUsuario sessaoUsuario = em.find(SessaoUsuario.class, pIdSessao);
+        if (sessaoUsuario == null) {
+            return;
+        }
 
-    /**
-     * Returns a short description of the servlet.
-     *
-     * @return a String containing servlet description
-     */
-    @Override
-    public String getServletInfo() {
-        return "Short description";
-    }// </editor-fold>
+        Paciente paciente = em.find(Paciente.class, pIdPaciente);
+        if (paciente == null) {
+            return;
+        }
+
+        if (!em.getTransaction().isActive()) {
+            em.getTransaction().begin();
+        }
+
+        Log log = new Log();
+
+
+        log.setTipo(em.find(TipoEventoLog.class, TipoEventoLog.CONFIANCA_ETAPA));
+        log.setData(new Date());
+        log.setSessaoUsuario(sessaoUsuario);
+
+        log.setRede(paciente.getRede());
+        log.setConfianca(nivelConfianca);
+        log.setEtapa(etapa);
+        log.setPaciente(paciente);
+        log.setCaso(sessaoUsuario.getCaso());
+
+        em.persist(log);
+        em.getTransaction().commit();
+
+        out.println("<xml>");
+
+        out.println("   <nivel_confianca registrado=\"sim\" />");
+        out.println("   <resposta_acao_mediador acao=\"sim\" problema=\"PROBLEMA: " + this.getClass() + "\" mensagem=\"MENSAGEM:" + this.getClass() + "\" />");
+//            out.println("   <resposta_acao_mediador acao=\"nao\" />");
+
+        out.println("</xml>");
+    }
 }
index 712159f..4840141 100644 (file)
  */
 package org.ufcspa.simdecs.comunicacao;
 
-import java.io.IOException;
 import java.io.PrintWriter;
 import java.util.Date;
 import javax.persistence.EntityManager;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import org.ufcspa.simdecs.entities.Log;
 import org.ufcspa.simdecs.entities.SessaoUsuario;
 import org.ufcspa.simdecs.entities.TipoEventoLog;
-import org.ufcspa.simdecs.util.DbUtil;
 
 /**
  *
  * @author maroni
  */
-public class MetodoConfiancaInicial extends HttpServlet {
+public class MetodoConfiancaInicial extends BaseComunicacao {
 
-    /**
-     * Processes requests for both HTTP
-     * <code>GET</code> and
-     * <code>POST</code> methods.
-     *
-     * @param request servlet request
-     * @param response servlet response
-     * @throws ServletException if a servlet-specific error occurs
-     * @throws IOException if an I/O error occurs
-     */
-    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
-            throws ServletException, IOException {
+    @Override
+    protected void executaServico(EntityManager em, HttpServletRequest request, HttpServletResponse response, PrintWriter out) throws Exception {
         response.setContentType("text/html;charset=UTF-8");
-        PrintWriter out = response.getWriter();
-        try {
-            response.setContentType( "text/xml" );
-            response.setHeader( "Cache-Control", "no-cache" );
+        response.setContentType("text/xml");
+        response.setHeader("Cache-Control", "no-cache");
 
-            EntityManager em = DbUtil.getInstance().getEntityManager();
-            long     pIdSessao  = Long.parseLong(request.getParameter("idsessao"));
-            String   pNivel     = request.getParameter("nivelconfianca");
-            String   nivelConfianca;
-            
-            if (pNivel.toLowerCase().equals("baixo"))
-                nivelConfianca = Log.CONFIANCA_BAIXA;
-            else if(pNivel.toLowerCase().equals("medio"))
-                nivelConfianca = Log.CONFIANCA_MEDIA;
-            else if(pNivel.toLowerCase().equals("alto"))
-                nivelConfianca = Log.CONFIANCA_ALTA;
-            else
-                return;
+        long pIdSessao = Long.parseLong(request.getParameter("idsessao"));
+        String pNivel = request.getParameter("nivelconfianca");
+        String nivelConfianca;
 
+        if (pNivel.toLowerCase().equals("baixo")) {
+            nivelConfianca = Log.CONFIANCA_BAIXA;
+        } else if (pNivel.toLowerCase().equals("medio")) {
+            nivelConfianca = Log.CONFIANCA_MEDIA;
+        } else if (pNivel.toLowerCase().equals("alto")) {
+            nivelConfianca = Log.CONFIANCA_ALTA;
+        } else {
+            return;
+        }
 
-            // Registra Log
-            SessaoUsuario sessaoUsuario = em.find(SessaoUsuario.class, pIdSessao);
-            if (sessaoUsuario == null)
-                return;
-            
-            // Logo inicio do caso
-            if (!em.getTransaction().isActive())
-                em.getTransaction().begin();
 
-            Log log = new Log();
-            log.setTipo(em.find(TipoEventoLog.class, TipoEventoLog.CONFIANCA_INICIAL));            
-            log.setConfianca(nivelConfianca);
-            log.setCaso(sessaoUsuario.getCaso());
-            log.setData(new Date());
-            log.setSessaoUsuario(sessaoUsuario);
-            
-            em.persist(log);            
-            em.getTransaction().commit();
-            
-            out.println( "<xml>" );
+        // Registra Log
+        SessaoUsuario sessaoUsuario = em.find(SessaoUsuario.class, pIdSessao);
+        if (sessaoUsuario == null) {
+            return;
+        }
 
-            out.println("   <nivel_confianca registrado=\"sim\" />");
-            out.println("   <resposta_acao_mediador acao=\"nao\" />");
-            
-            out.println( "</xml>" );
-        } finally {
-            out.close();
+        // Logo inicio do caso
+        if (!em.getTransaction().isActive()) {
+            em.getTransaction().begin();
         }
-    }
 
-    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
-    /**
-     * Handles the HTTP
-     * <code>GET</code> method.
-     *
-     * @param request servlet request
-     * @param response servlet response
-     * @throws ServletException if a servlet-specific error occurs
-     * @throws IOException if an I/O error occurs
-     */
-    @Override
-    protected void doGet(HttpServletRequest request, HttpServletResponse response)
-            throws ServletException, IOException {
-        processRequest(request, response);
-    }
+        Log log = new Log();
+        log.setTipo(em.find(TipoEventoLog.class, TipoEventoLog.CONFIANCA_INICIAL));
+        log.setConfianca(nivelConfianca);
+        log.setCaso(sessaoUsuario.getCaso());
+        log.setData(new Date());
+        log.setSessaoUsuario(sessaoUsuario);
 
-    /**
-     * Handles the HTTP
-     * <code>POST</code> method.
-     *
-     * @param request servlet request
-     * @param response servlet response
-     * @throws ServletException if a servlet-specific error occurs
-     * @throws IOException if an I/O error occurs
-     */
-    @Override
-    protected void doPost(HttpServletRequest request, HttpServletResponse response)
-            throws ServletException, IOException {
-        processRequest(request, response);
-    }
+        em.persist(log);
+        em.getTransaction().commit();
 
-    /**
-     * Returns a short description of the servlet.
-     *
-     * @return a String containing servlet description
-     */
-    @Override
-    public String getServletInfo() {
-        return "Short description";
-    }// </editor-fold>
+        out.println("<xml>");
+
+        out.println("   <nivel_confianca registrado=\"sim\" />");
+        out.println("   <resposta_acao_mediador acao=\"sim\" problema=\"PROBLEMA: " + this.getClass() + "\" mensagem=\"MENSAGEM:" + this.getClass() + "\" />");
+//            out.println("   <resposta_acao_mediador acao=\"nao\" />");
+
+        out.println("</xml>");
+    }
 }
index 148e908..8322b86 100644 (file)
  */
 package org.ufcspa.simdecs.comunicacao;
 
-import java.io.IOException;
 import java.io.PrintWriter;
 import java.util.Date;
 import javax.persistence.EntityManager;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import org.ufcspa.simdecs.entities.Log;
-import org.ufcspa.simdecs.entities.Paciente;
 import org.ufcspa.simdecs.entities.SessaoUsuario;
 import org.ufcspa.simdecs.entities.TipoEventoLog;
-import org.ufcspa.simdecs.util.DbUtil;
 
 /**
  *
  * @author maroni
  */
-public class MetodoFimCaso extends HttpServlet {
+public class MetodoFimCaso extends BaseComunicacao {
 
-    /**
-     * Processes requests for both HTTP
-     * <code>GET</code> and
-     * <code>POST</code> methods.
-     *
-     * @param request servlet request
-     * @param response servlet response
-     * @throws ServletException if a servlet-specific error occurs
-     * @throws IOException if an I/O error occurs
-     */
-    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
-            throws ServletException, IOException {
+    @Override
+    protected void executaServico(EntityManager em, HttpServletRequest request, HttpServletResponse response, PrintWriter out) throws Exception {
         response.setContentType("text/html;charset=UTF-8");
-        PrintWriter out = response.getWriter();
-        try {
-            response.setContentType( "text/xml" );
-            response.setHeader( "Cache-Control", "no-cache" );
+        response.setContentType("text/xml");
+        response.setHeader("Cache-Control", "no-cache");
 
-            EntityManager em = DbUtil.getInstance().getEntityManager();
-            long   pIdSessao  = Long.parseLong(request.getParameter("idsessao"));
+        long pIdSessao = Long.parseLong(request.getParameter("idsessao"));
 
-            // Registra Log
-            SessaoUsuario sessaoUsuario = em.find(SessaoUsuario.class, pIdSessao);
-            if (sessaoUsuario == null)
-                return;
-            
-            if (!em.getTransaction().isActive())
-                em.getTransaction().begin();
+        // Registra Log
+        SessaoUsuario sessaoUsuario = em.find(SessaoUsuario.class, pIdSessao);
+        if (sessaoUsuario == null) {
+            return;
+        }
 
-            Log log = new Log();
-            log.setTipo(em.find(TipoEventoLog.class, TipoEventoLog.FIM_CASO));
-            log.setCaso(sessaoUsuario.getCaso());
-            log.setData(new Date());
-            log.setSessaoUsuario(sessaoUsuario);
+        if (!em.getTransaction().isActive()) {
+            em.getTransaction().begin();
+        }
 
-            em.persist(log);            
-            em.getTransaction().commit();
+        Log log = new Log();
+        log.setTipo(em.find(TipoEventoLog.class, TipoEventoLog.FIM_CASO));
+        log.setCaso(sessaoUsuario.getCaso());
+        log.setData(new Date());
+        log.setSessaoUsuario(sessaoUsuario);
 
-            out.println( "<xml>" );
+        em.persist(log);
+        em.getTransaction().commit();
 
-            out.println("   <resposta_final_mediador mensagem=\"MENSAGEM FINAL DO MEDIADOR\" />");
-            
-            out.println( "</xml>" );
-        } finally {
-            out.close();
-        }
-    }
+        out.println("<xml>");
 
-    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
-    /**
-     * Handles the HTTP
-     * <code>GET</code> method.
-     *
-     * @param request servlet request
-     * @param response servlet response
-     * @throws ServletException if a servlet-specific error occurs
-     * @throws IOException if an I/O error occurs
-     */
-    @Override
-    protected void doGet(HttpServletRequest request, HttpServletResponse response)
-            throws ServletException, IOException {
-        processRequest(request, response);
-    }
+        out.println("   <resposta_final_mediador mensagem=\"" + this.getClass() + "\" />");
 
-    /**
-     * Handles the HTTP
-     * <code>POST</code> method.
-     *
-     * @param request servlet request
-     * @param response servlet response
-     * @throws ServletException if a servlet-specific error occurs
-     * @throws IOException if an I/O error occurs
-     */
-    @Override
-    protected void doPost(HttpServletRequest request, HttpServletResponse response)
-            throws ServletException, IOException {
-        processRequest(request, response);
+        out.println("</xml>");
     }
-
-    /**
-     * Returns a short description of the servlet.
-     *
-     * @return a String containing servlet description
-     */
-    @Override
-    public String getServletInfo() {
-        return "Short description";
-    }// </editor-fold>
 }
index f01f964..dca9f89 100644 (file)
  */
 package org.ufcspa.simdecs.comunicacao;
 
-import java.io.IOException;
 import java.io.PrintWriter;
 import java.util.Date;
 import javax.persistence.EntityManager;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import org.ufcspa.simdecs.entities.Log;
 import org.ufcspa.simdecs.entities.Paciente;
 import org.ufcspa.simdecs.entities.SessaoUsuario;
 import org.ufcspa.simdecs.entities.TipoEventoLog;
-import org.ufcspa.simdecs.util.DbUtil;
 
 /**
  *
  * @author maroni
  */
-public class MetodoGravaHistorico extends HttpServlet {
+public class MetodoGravaHistorico extends BaseComunicacao {
 
-    /**
-     * Processes requests for both HTTP
-     * <code>GET</code> and
-     * <code>POST</code> methods.
-     *
-     * @param request servlet request
-     * @param response servlet response
-     * @throws ServletException if a servlet-specific error occurs
-     * @throws IOException if an I/O error occurs
-     */
-    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
-            throws ServletException, IOException {
+    @Override
+    protected void executaServico(EntityManager em, HttpServletRequest request, HttpServletResponse response, PrintWriter out) throws Exception {
         response.setContentType("text/html;charset=UTF-8");
-        PrintWriter out = response.getWriter();
-        try {
-            response.setContentType( "text/xml" );
-            response.setHeader( "Cache-Control", "no-cache" );
+        response.setContentType("text/xml");
+        response.setHeader("Cache-Control", "no-cache");
 
-            EntityManager em    = DbUtil.getInstance().getEntityManager();
-            long   pIdSessao    = Long.parseLong(request.getParameter("idsessao"));
-            String pIdPaciente  = request.getParameter("idpaciente");
+        long pIdSessao = Long.parseLong(request.getParameter("idsessao"));
+        String pIdPaciente = request.getParameter("idpaciente");
 
-            // Registra Log
-            SessaoUsuario sessaoUsuario = em.find(SessaoUsuario.class, pIdSessao);
-            if (sessaoUsuario == null)
-                return;
-            
-            Paciente paciente = em.find(Paciente.class, pIdPaciente);
-            if (paciente == null)
-                return;
-            
-            if (!em.getTransaction().isActive())
-                em.getTransaction().begin();
+        // Registra Log
+        SessaoUsuario sessaoUsuario = em.find(SessaoUsuario.class, pIdSessao);
+        if (sessaoUsuario == null) {
+            return;
+        }
 
-            Log log = new Log();
-            log.setTipo(em.find(TipoEventoLog.class, TipoEventoLog.VISUALIZA_HISTORICO));
-            log.setPaciente(paciente);
-            log.setRede(paciente.getRede());
-            log.setCaso(sessaoUsuario.getCaso());
-            log.setData(new Date());
-            log.setSessaoUsuario(sessaoUsuario);
+        Paciente paciente = em.find(Paciente.class, pIdPaciente);
+        if (paciente == null) {
+            return;
+        }
 
-            em.persist(log);            
-            em.getTransaction().commit();
-            
-            out.println( "<xml>" );
-            
-            out.println("   <grava_historico registrado=\"sim\" />");
-            
-            out.println( "</xml>" );
-        } finally {
-            out.close();
+        if (!em.getTransaction().isActive()) {
+            em.getTransaction().begin();
         }
-    }
 
-    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
-    /**
-     * Handles the HTTP
-     * <code>GET</code> method.
-     *
-     * @param request servlet request
-     * @param response servlet response
-     * @throws ServletException if a servlet-specific error occurs
-     * @throws IOException if an I/O error occurs
-     */
-    @Override
-    protected void doGet(HttpServletRequest request, HttpServletResponse response)
-            throws ServletException, IOException {
-        processRequest(request, response);
-    }
+        Log log = new Log();
+        log.setTipo(em.find(TipoEventoLog.class, TipoEventoLog.VISUALIZA_HISTORICO));
+        log.setPaciente(paciente);
+        log.setRede(paciente.getRede());
+        log.setCaso(sessaoUsuario.getCaso());
+        log.setData(new Date());
+        log.setSessaoUsuario(sessaoUsuario);
 
-    /**
-     * Handles the HTTP
-     * <code>POST</code> method.
-     *
-     * @param request servlet request
-     * @param response servlet response
-     * @throws ServletException if a servlet-specific error occurs
-     * @throws IOException if an I/O error occurs
-     */
-    @Override
-    protected void doPost(HttpServletRequest request, HttpServletResponse response)
-            throws ServletException, IOException {
-        processRequest(request, response);
-    }
+        em.persist(log);
+        em.getTransaction().commit();
 
-    /**
-     * Returns a short description of the servlet.
-     *
-     * @return a String containing servlet description
-     */
-    @Override
-    public String getServletInfo() {
-        return "Short description";
-    }// </editor-fold>
+        out.println("<xml>");
+
+//            out.println("   <grava_historico registrado=\"sim\" />");
+        out.println("   <resposta_acao_mediador acao=\"sim\" problema=\"PROBLEMA: " + this.getClass() + "\" mensagem=\"MENSAGEM:" + this.getClass() + "\" />");
+//            out.println("   <resposta_acao_mediador acao=\"nao\" />");
+
+        out.println("</xml>");
+    }
 }
index e59bcd7..8e8c290 100644 (file)
@@ -4,33 +4,18 @@
  */
 package org.ufcspa.simdecs.comunicacao;
 
-import java.io.IOException;
 import java.io.PrintWriter;
 import java.util.Date;
 import javax.persistence.EntityManager;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import org.ufcspa.simdecs.entities.*;
-import org.ufcspa.simdecs.util.DbUtil;
 
 /**
  *
  * @author maroni
  */
-public class MetodoGravaLog extends HttpServlet {
-
-    /**
-     * Processes requests for both HTTP
-     * <code>GET</code> and
-     * <code>POST</code> methods.
-     *
-     * @param request servlet request
-     * @param response servlet response
-     * @throws ServletException if a servlet-specific error occurs
-     * @throws IOException if an I/O error occurs
-     */
+public class MetodoGravaLog extends BaseComunicacao {
 
     private long getIdFromUID(String pUID, String prefixo) {
         String id = pUID.replaceAll(prefixo, "");
@@ -138,7 +123,6 @@ public class MetodoGravaLog extends HttpServlet {
             
             em.getTransaction().commit();
         }
-// ARRUMAR DO HISTORICO PARA BAIXO E REVISTAR TODOS OS DEMAIS LOGS SALVOS
         // Historico médico
         if (pUID.toLowerCase().startsWith("historico-medico-")) {
             Paciente paciente = em.find(Paciente.class, getIdPacienteFromUID(pUID));
@@ -163,7 +147,8 @@ public class MetodoGravaLog extends HttpServlet {
 
         // Diagnostico
         if (pUID.toLowerCase().startsWith("diagnostico-")) {
-            NodoPaciente nodoPaciente = em.find(NodoPaciente.class, getIdFromUID(pUID, "diagnostico-"));
+            Nodo nodo = em.find(Nodo.class, getIdFromUID(pUID, "diagnostico-"));
+            Paciente paciente = em.find(Paciente.class, getIdPacienteFromUID(pUID));
 
             if (!em.getTransaction().isActive())
                 em.getTransaction().begin();
@@ -174,9 +159,9 @@ public class MetodoGravaLog extends HttpServlet {
             log.setCaso(sessaoUsuario.getCaso());
             log.setData(new Date());
             log.setEtapa(Log.ETAPA_DIAGNOSTICO);
-            log.setNodo(nodoPaciente.getNodo());
-            log.setPaciente(nodoPaciente.getPaciente());
-            log.setRede(nodoPaciente.getPaciente().getRede());
+            log.setNodo(nodo);
+            log.setPaciente(paciente);
+            log.setRede(paciente.getRede());
             log.setTipo(em.find(TipoEventoLog.class, TipoEventoLog.SELECIONA_DIAGNOSTICO));
             log.setDescricao("SELECIONOU O DIAGNOSTICO");
             em.persist(log);
@@ -186,7 +171,8 @@ public class MetodoGravaLog extends HttpServlet {
 
         // Conduta
         if (pUID.toLowerCase().startsWith("conduta-")) {
-            NodoPaciente nodoPaciente = em.find(NodoPaciente.class, getIdFromUID(pUID, "conduta-"));
+            Nodo nodo = em.find(Nodo.class, getIdFromUID(pUID, "conduta-"));
+            Paciente paciente = em.find(Paciente.class, getIdPacienteFromUID(pUID));
 
             if (!em.getTransaction().isActive())
                 em.getTransaction().begin();
@@ -197,9 +183,9 @@ public class MetodoGravaLog extends HttpServlet {
             log.setCaso(sessaoUsuario.getCaso());
             log.setData(new Date());
             log.setEtapa(Log.ETAPA_CONDUTA);
-            log.setNodo(nodoPaciente.getNodo());
-            log.setPaciente(nodoPaciente.getPaciente());
-            log.setRede(nodoPaciente.getPaciente().getRede());
+            log.setNodo(nodo);
+            log.setPaciente(paciente);
+            log.setRede(paciente.getRede());
             log.setTipo(em.find(TipoEventoLog.class, TipoEventoLog.SELECIONA_CONDUTA));
             log.setDescricao("SELECIONOU A CONDUTA");
             em.persist(log);
@@ -208,88 +194,46 @@ public class MetodoGravaLog extends HttpServlet {
         }
         
     }
-    
-    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
-            throws ServletException, IOException {
+
+    @Override
+    protected void executaServico(EntityManager em, HttpServletRequest request, HttpServletResponse response, PrintWriter out) throws Exception
+    {       
         response.setContentType("text/html;charset=UTF-8");
-        PrintWriter out = response.getWriter();
-        try {
-            response.setContentType( "text/xml" );
-            response.setHeader( "Cache-Control", "no-cache" );
+        response.setContentType("text/xml");
+        response.setHeader("Cache-Control", "no-cache");
 
-            EntityManager em    = DbUtil.getInstance().getEntityManager();
-            long   pIdSessao    = Long.parseLong(request.getParameter("idsessao"));
-            String pUID         = request.getParameter("uid");
-            String pDesmarcado = request.getParameter("desmarcado");
-            boolean desmarcado  = false;
+        long pIdSessao = Long.parseLong(request.getParameter("idsessao"));
+        String pUID = request.getParameter("uid");
+        String pDesmarcado = request.getParameter("desmarcado");
+        boolean desmarcado = false;
 
-            if (pDesmarcado != null && !pDesmarcado.equals(""))
-                desmarcado = true;
-            
-            SessaoUsuario sessaoUsuario = em.find(SessaoUsuario.class, pIdSessao);
-            if (sessaoUsuario == null)
-                return;
+        if (pDesmarcado != null && !pDesmarcado.equals("")) {
+            desmarcado = true;
+        }
 
-            registraLog(em, sessaoUsuario, pUID, desmarcado);
-            
-            out.println( "<xml>" );
+        SessaoUsuario sessaoUsuario = em.find(SessaoUsuario.class, pIdSessao);
+        if (sessaoUsuario == null) {
+            return;
+        }
 
-            boolean isPar;
-            if (Integer.parseInt(pUID.substring(pUID.length()-1)) % 2 == 0)
-                isPar = true;
-            else
-                isPar = false;
-            
+        registraLog(em, sessaoUsuario, pUID, desmarcado);
 
-            //if (isPar)
-            //    out.println("   <resposta_acao_mediador acao=\"sim\" problema=\"PROBLEMA ORIGINADO PELO MEDIADOR\" mensagem=\"MENSAGEM A CADA ACAO VINDA DO MEDIADOR\" />");
-            //else                
-                out.println("   <resposta_acao_mediador acao=\"nao\" />");
-            
-            out.println( "</xml>" );
-        } finally {
-            out.close();
+        out.println("<xml>");
+
+        boolean isPar;
+        if (Integer.parseInt(pUID.substring(pUID.length() - 1)) % 2 == 0) {
+            isPar = true;
+        } else {
+            isPar = false;
         }
-    }
 
-    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
-    /**
-     * Handles the HTTP
-     * <code>GET</code> method.
-     *
-     * @param request servlet request
-     * @param response servlet response
-     * @throws ServletException if a servlet-specific error occurs
-     * @throws IOException if an I/O error occurs
-     */
-    @Override
-    protected void doGet(HttpServletRequest request, HttpServletResponse response)
-            throws ServletException, IOException {
-        processRequest(request, response);
-    }
 
-    /**
-     * Handles the HTTP
-     * <code>POST</code> method.
-     *
-     * @param request servlet request
-     * @param response servlet response
-     * @throws ServletException if a servlet-specific error occurs
-     * @throws IOException if an I/O error occurs
-     */
-    @Override
-    protected void doPost(HttpServletRequest request, HttpServletResponse response)
-            throws ServletException, IOException {
-        processRequest(request, response);
-    }
+        //if (isPar)
+        //    out.println("   <resposta_acao_mediador acao=\"sim\" problema=\"PROBLEMA ORIGINADO PELO MEDIADOR\" mensagem=\"MENSAGEM A CADA ACAO VINDA DO MEDIADOR\" />");
+        //else                
+        out.println("   <resposta_acao_mediador acao=\"sim\" problema=\"PROBLEMA: " + this.getClass() + "\" mensagem=\"MENSAGEM:" + this.getClass() + "\" />");
+//            out.println("   <resposta_acao_mediador acao=\"nao\" />");
 
-    /**
-     * Returns a short description of the servlet.
-     *
-     * @return a String containing servlet description
-     */
-    @Override
-    public String getServletInfo() {
-        return "Short description";
-    }// </editor-fold>
+        out.println("</xml>");
+    }
 }
index 98c204d..d72b4da 100644 (file)
@@ -4,14 +4,11 @@
  */
 package org.ufcspa.simdecs.comunicacao;
 
-import java.io.IOException;
 import java.io.PrintWriter;
 import java.util.Date;
 import java.util.Iterator;
 import java.util.List;
 import javax.persistence.EntityManager;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import org.ufcspa.simdecs.entities.*;
@@ -24,7 +21,7 @@ import unbbayes.prs.bn.ProbabilisticNode;
  *
  * @author maroni
  */
-public class MetodoIniciaCaso extends HttpServlet {
+public class MetodoIniciaCaso extends BaseComunicacao {
 
     private String getPerguntaNodo(Long idNodo) {
         EntityManager em = DbUtil.getInstance().getEntityManager();
@@ -118,179 +115,127 @@ public class MetodoIniciaCaso extends HttpServlet {
         return "";
     }
 
-    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
-            throws ServletException, IOException {
+    @Override
+    protected void executaServico(EntityManager em, HttpServletRequest request, HttpServletResponse response, PrintWriter out) throws Exception
+    {
         response.setContentType("text/html;charset=UTF-8");
-        PrintWriter out = response.getWriter();
-        try {
-            EntityManager em = DbUtil.getInstance().getEntityManager();
-            Caso caso = em.find(Caso.class, Long.parseLong(request.getParameter("idcaso")));
+        Caso caso = em.find(Caso.class, Long.parseLong(request.getParameter("idcaso")));
 
-            
-            if (!em.getTransaction().isActive())
-                em.getTransaction().begin();
-            
-            // Cria sessao
-            SessaoUsuario sessaoUsuario = new SessaoUsuario();
-            sessaoUsuario.setData(new Date());            
-            sessaoUsuario.setCaso(caso);
-            em.persist(sessaoUsuario);
-            em.flush();
-            
-            // Logo inicio do caso.
-            Log log = new Log();
-            log.setTipo(em.find(TipoEventoLog.class, TipoEventoLog.INICIO_CASO));
-            log.setCaso(caso);
-            log.setData(new Date());
-            log.setSessaoUsuario(sessaoUsuario);
-            
-            
-            em.persist(log);
-                    
-            
-            em.getTransaction().commit();
-            
-            
-            out.println("<caso uid=\"caso-" + caso.getId() + "\" sessao=\"" + sessaoUsuario.getId() + "\" titulo=\"" + caso.getNome() + "\" modelo=\"" + caso.getModelo() + "\" descricaoAmbiente=\"" + caso.getTextoInicial() + "\">");
-
-            Iterator<Paciente> itPac = em.createQuery("From Paciente where caso.id=:pIdCaso")
-                                         .setParameter("pIdCaso", caso.getId())
-                                         .getResultList()
-                                         .iterator();
-            while(itPac.hasNext()) {
-                Paciente paciente = itPac.next();
-                out.println("    <ator uid=\"paciente-" + paciente.getId() + "\" tipo=\"paciente\" nome=\"" + paciente.getNome() + "\" modelo=\"" + paciente.getModelo() + "\" idade=\"" + paciente.getIdade() + "\" peso=\"" + paciente.getPeso() + "\" altura=\"" + paciente.getAltura() + "\" >");
-
-                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<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))
-                        continue;
-                
-                    out.println("                <sintoma uid=\"sintoma-np-" + nodo.getId() + ":paciente-" + paciente.getId() + "\" nomeCientifico=\"" + nodo.getNodo().getNome() + "\" nomePopular=\"" + getPerguntaNodo(nodo.getNodo().getId()) + "\" imagem=\"\" som=\"\" video=\"\" dependencia=\"" + getDependencia(nodo.getNodo().getId()) + "\" falaPaciente=\"" + getRespostaNodo(nodo.getNodo(), paciente)  + "\" />");
-                }
 
-                // Sinais e sintomas inativos
-                List<Nodo> nodosNaoSelecionados = em.createQuery("From Nodo Where rede.id=:pIDRede and id not in (Select nodo.id from NodoPaciente Where paciente.id=:pIDPaciente)")
-                                             .setParameter("pIDRede", paciente.getRede().getId())                
-                                             .setParameter("pIDPaciente", paciente.getId())                
-                                             .getResultList();
-                for(Nodo nodo : nodosNaoSelecionados) {
-                    if (!nodo.getTipo().equals(Nodo.SINAL_SINTOMA) && !nodo.getTipo().equals(Nodo.HISTORICO))
-                        continue;
-                
-                    out.println("                <sintoma uid=\"sintoma-nd-" + nodo.getId() + ":paciente-" + paciente.getId() + "\" nomeCientifico=\"" + nodo.getNome() + "\" nomePopular=\"" + getPerguntaNodo(nodo.getId()) + "\" imagem=\"\" som=\"\" video=\"\" dependencia=\"" + getDependencia(nodo.getId()) + "\" falaPaciente=\"" + getRespostaNodo(nodo, paciente)  + "\" />");
-                }
-                
-                out.println("            </perguntar_sintoma>");
+        if (!em.getTransaction().isActive()) {
+            em.getTransaction().begin();
+        }
 
-                // Exame Físico
-                out.println("            <realiza_exame_fisico uid=\"realiza-exame-fisico-" + paciente.getId() + "\" descricao=\"Realizar Exame Físico\">");
-                for(NodoPaciente nodo : nodos) {
-                    if (!nodo.getNodo().getTipo().equals(Nodo.EXAME_FISICO))
-                        continue;
-                
-                    out.println("                <exame_fisico uid=\"exame-fisico-np-" + nodo.getId() + ":paciente-" + paciente.getId() + "\" dependencia=\"" + getDependencia(nodo.getNodo().getId()) + "\" descricao=\"" + nodo.getNodo().getNomeAmigavel() + "\" resultado=\"\" imagem=\"\" som=\"\" video=\"\" />");
-                }
-                out.println("            </realiza_exame_fisico>");
+        // Cria sessao
+        SessaoUsuario sessaoUsuario = new SessaoUsuario();
+        sessaoUsuario.setData(new Date());
+        sessaoUsuario.setCaso(caso);
+        em.persist(sessaoUsuario);
+        em.flush();
 
-                // Exame Complementar
-                out.println("            <solicitar_exames_complementar uid=\"solicitar-exame-complementar-" + paciente.getId() + "\" descricao=\"Solicitar Exame Complementar\">\"");
-                for(NodoPaciente nodo : nodos) {
-                    if (!nodo.getNodo().getTipo().equals(Nodo.EXAME_COMPLEMENTAR))
-                        continue;
-                
-                    out.println("                <exame_complementar uid=\"exame-complementar-np-" + nodo.getId() + ":paciente-" + paciente.getId() + "\" dependencia=\"" + getDependencia(nodo.getNodo().getId()) + "\" descricao=\"" + nodo.getNodo().getNomeAmigavel() + "\" resultado=\"\" imagem=\"\" som=\"\" video=\"\" />");
+        // Logo inicio do caso.
+        Log log = new Log();
+        log.setTipo(em.find(TipoEventoLog.class, TipoEventoLog.INICIO_CASO));
+        log.setCaso(caso);
+        log.setData(new Date());
+        log.setSessaoUsuario(sessaoUsuario);
+
+
+        em.persist(log);
+
+
+        em.getTransaction().commit();
+
+
+        out.println("<caso uid=\"caso-" + caso.getId() + "\" sessao=\"" + sessaoUsuario.getId() + "\" titulo=\"" + caso.getNome() + "\" modelo=\"" + caso.getModelo() + "\" descricaoAmbiente=\"" + caso.getTextoInicial() + "\">");
+
+        Iterator<Paciente> itPac = em.createQuery("From Paciente where caso.id=:pIdCaso").setParameter("pIdCaso", caso.getId()).getResultList().iterator();
+        while (itPac.hasNext()) {
+            Paciente paciente = itPac.next();
+            out.println("    <ator uid=\"" + paciente.getId() + "\" tipo=\"paciente\" nome=\"" + paciente.getNome() + "\" modelo=\"" + paciente.getModelo() + "\" idade=\"" + paciente.getIdade() + "\" peso=\"" + paciente.getPeso() + "\" altura=\"" + paciente.getAltura() + "\" >");
+
+            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<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)) {
+                    continue;
                 }
-                out.println("            </solicitar_exames_complementar>");
-/*
-                // historico
-                for(NodoPaciente nodo : nodos) {
-                    if (!nodo.getNodo().getTipo().equals(Nodo.HISTORICO))
-                        continue;
-                
-                    out.println("        <historico_medico uid=\"historico-medico-" + nodo.getId() + "\" dependencia=\"" + getDependencia(nodo.getNodo().getId()) + "\" descricao=\"Histórico Médico\" historico=\"" + nodo.getNodo().getNomeAmigavel() + "\" imagem=\"\" som=\"\" video=\"\" />");
+
+                out.println("                <sintoma uid=\"sintoma-np-" + nodo.getId() + ":paciente-" + paciente.getId() + "\" nomeCientifico=\"" + nodo.getNodo().getNome() + "\" nomePopular=\"" + getPerguntaNodo(nodo.getNodo().getId()) + "\" imagem=\"\" som=\"\" video=\"\" dependencia=\"" + getDependencia(nodo.getNodo().getId()) + "\" falaPaciente=\"" + getRespostaNodo(nodo.getNodo(), paciente) + "\" />");
+            }
+
+            // Sinais e sintomas inativos
+            List<Nodo> nodosNaoSelecionados = em.createQuery("From Nodo Where rede.id=:pIDRede and id not in (Select nodo.id from NodoPaciente Where paciente.id=:pIDPaciente)").setParameter("pIDRede", paciente.getRede().getId()).setParameter("pIDPaciente", paciente.getId()).getResultList();
+            for (Nodo nodo : nodosNaoSelecionados) {
+                if (!nodo.getTipo().equals(Nodo.SINAL_SINTOMA) && !nodo.getTipo().equals(Nodo.HISTORICO)) {
+                    continue;
                 }
-*/
-                out.println("        <historico_medico uid=\"historico-medico-1" + ":paciente-" + paciente.getId() + "\" dependencia=\"\" descricao=\"Histórico Médico\" historico=\"" + paciente.getHistorico() + "\" imagem=\"\" som=\"\" video=\"\" />");
-            
-            
-                out.println("        </etapa>");
-            
-                out.println("        <etapa uid=\"etapa-2\" nome=\"Diagnóstico\" sequencia=\"2\" tipo=\"diagnostico\">");
-                Iterator<Nodo> itDiagnosticos = em.createQuery("From Nodo where tipo=:pTipo")
-                                                  .setParameter("pTipo", Nodo.DIAGNOSTICO)
-                                                  .getResultList()
-                                                  .iterator();            
-                while(itDiagnosticos.hasNext()) {
-                    Nodo nodo = itDiagnosticos.next();
-                    out.println("            <diagnostico uid=\"diagnostico-" + nodo.getId() + ":paciente-" + paciente.getId() + "\" nome=\"" + nodo.getNomeAmigavel() + "\" falaMedico=\"" +  getPerguntaNodo(nodo.getId())  + "\" />");
+
+                out.println("                <sintoma uid=\"sintoma-nd-" + nodo.getId() + ":paciente-" + paciente.getId() + "\" nomeCientifico=\"" + nodo.getNome() + "\" nomePopular=\"" + getPerguntaNodo(nodo.getId()) + "\" imagem=\"\" som=\"\" video=\"\" dependencia=\"" + getDependencia(nodo.getId()) + "\" falaPaciente=\"" + getRespostaNodo(nodo, paciente) + "\" />");
+            }
+
+            out.println("            </perguntar_sintoma>");
+
+            // Exame Físico
+            out.println("            <realiza_exame_fisico uid=\"realiza-exame-fisico-" + paciente.getId() + "\" descricao=\"Realizar Exame Físico\">");
+            for (NodoPaciente nodo : nodos) {
+                if (!nodo.getNodo().getTipo().equals(Nodo.EXAME_FISICO)) {
+                    continue;
                 }
-                out.println("        </etapa>");
-            
-                out.println("        <etapa uid=\"etapa-3\" nome=\"Conduta\" sequencia=\"3\" tipo=\"conduta\">");
-                Iterator<Nodo> itConduta = em.createQuery("From Nodo where tipo=:pTipo")
-                                             .setParameter("pTipo", Nodo.CONDUTA)
-                                             .getResultList()
-                                             .iterator();            
-                while(itConduta.hasNext()) {
-                    Nodo nodo = itConduta.next();
-                    out.println("            <conduta uid=\"conduta-" + nodo.getId() + ":paciente-" + paciente.getId() + "\" nome=\"" + nodo.getNomeAmigavel() + "\" falaMedico=\"" +  getPerguntaNodo(nodo.getId())  + "\" />");
+
+                out.println("                <exame_fisico uid=\"exame-fisico-np-" + nodo.getId() + ":paciente-" + paciente.getId() + "\" dependencia=\"" + getDependencia(nodo.getNodo().getId()) + "\" descricao=\"" + nodo.getNodo().getNomeAmigavel() + "\" resultado=\"\" imagem=\"\" som=\"\" video=\"\" />");
+            }
+            out.println("            </realiza_exame_fisico>");
+
+            // Exame Complementar
+            out.println("            <solicitar_exames_complementar uid=\"solicitar-exame-complementar-" + paciente.getId() + "\" descricao=\"Solicitar Exame Complementar\">\"");
+            for (NodoPaciente nodo : nodos) {
+                if (!nodo.getNodo().getTipo().equals(Nodo.EXAME_COMPLEMENTAR)) {
+                    continue;
                 }
-                out.println("        </etapa>");
-                out.println("    </ator>");
-        }
-       
-        
-        out.println("</caso>");
-        } finally {            
-            out.close();
+
+                out.println("                <exame_complementar uid=\"exame-complementar-np-" + nodo.getId() + ":paciente-" + paciente.getId() + "\" dependencia=\"" + getDependencia(nodo.getNodo().getId()) + "\" descricao=\"" + nodo.getNodo().getNomeAmigavel() + "\" resultado=\"\" imagem=\"\" som=\"\" video=\"\" />");
+            }
+            out.println("            </solicitar_exames_complementar>");
+            /*
+             * // historico for(NodoPaciente nodo : nodos) { if
+             * (!nodo.getNodo().getTipo().equals(Nodo.HISTORICO)) continue;
+             *
+             * out.println(" <historico_medico uid=\"historico-medico-" +
+             * nodo.getId() + "\" dependencia=\"" +
+             * getDependencia(nodo.getNodo().getId()) + "\"
+             * descricao=\"Histórico Médico\" historico=\"" +
+             * nodo.getNodo().getNomeAmigavel() + "\" imagem=\"\" som=\"\"
+             * video=\"\" />"); }
+             */
+            out.println("        <historico_medico uid=\"historico-medico-1" + ":paciente-" + paciente.getId() + "\" dependencia=\"\" descricao=\"Histórico Médico\" historico=\"" + paciente.getHistorico() + "\" imagem=\"\" som=\"\" video=\"\" />");
+
+
+            out.println("        </etapa>");
+
+            out.println("        <etapa uid=\"etapa-2\" nome=\"Diagnóstico\" sequencia=\"2\" tipo=\"diagnostico\">");
+            Iterator<Nodo> itDiagnosticos = em.createQuery("From Nodo where tipo=:pTipo").setParameter("pTipo", Nodo.DIAGNOSTICO).getResultList().iterator();
+            while (itDiagnosticos.hasNext()) {
+                Nodo nodo = itDiagnosticos.next();
+                out.println("            <diagnostico uid=\"diagnostico-" + nodo.getId() + ":paciente-" + paciente.getId() + "\" nome=\"" + nodo.getNomeAmigavel() + "\" falaMedico=\"" + getPerguntaNodo(nodo.getId()) + "\" />");
+            }
+            out.println("        </etapa>");
+
+            out.println("        <etapa uid=\"etapa-3\" nome=\"Conduta\" sequencia=\"3\" tipo=\"conduta\">");
+            Iterator<Nodo> itConduta = em.createQuery("From Nodo where tipo=:pTipo").setParameter("pTipo", Nodo.CONDUTA).getResultList().iterator();
+            while (itConduta.hasNext()) {
+                Nodo nodo = itConduta.next();
+                out.println("            <conduta uid=\"conduta-" + nodo.getId() + ":paciente-" + paciente.getId() + "\" nome=\"" + nodo.getNomeAmigavel() + "\" falaMedico=\"" + getPerguntaNodo(nodo.getId()) + "\" />");
+            }
+            out.println("        </etapa>");
+            out.println("    </ator>");
         }
-    }
 
-    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
-    /**
-     * Handles the HTTP
-     * <code>GET</code> method.
-     *
-     * @param request servlet request
-     * @param response servlet response
-     * @throws ServletException if a servlet-specific error occurs
-     * @throws IOException if an I/O error occurs
-     */
-    @Override
-    protected void doGet(HttpServletRequest request, HttpServletResponse response)
-            throws ServletException, IOException {
-        processRequest(request, response);
-    }
 
-    /**
-     * Handles the HTTP
-     * <code>POST</code> method.
-     *
-     * @param request servlet request
-     * @param response servlet response
-     * @throws ServletException if a servlet-specific error occurs
-     * @throws IOException if an I/O error occurs
-     */
-    @Override
-    protected void doPost(HttpServletRequest request, HttpServletResponse response)
-            throws ServletException, IOException {
-        processRequest(request, response);
+        out.println("</caso>");
     }
 
-    /**
-     * Returns a short description of the servlet.
-     *
-     * @return a String containing servlet description
-     */
-    @Override
-    public String getServletInfo() {
-        return "Short description";
-    }// </editor-fold>
 }
index 69671f0..c4f321b 100644 (file)
  */
 package org.ufcspa.simdecs.comunicacao;
 
-import java.io.IOException;
 import java.io.PrintWriter;
 import java.util.Date;
 import javax.persistence.EntityManager;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import org.ufcspa.simdecs.entities.Log;
 import org.ufcspa.simdecs.entities.Paciente;
 import org.ufcspa.simdecs.entities.SessaoUsuario;
 import org.ufcspa.simdecs.entities.TipoEventoLog;
-import org.ufcspa.simdecs.util.DbUtil;
 
 /**
  *
  * @author maroni
  */
-public class MetodoRegistraAcao extends HttpServlet {
+public class MetodoRegistraAcao extends BaseComunicacao {
 
-    /**
-     * Processes requests for both HTTP
-     * <code>GET</code> and
-     * <code>POST</code> methods.
-     *
-     * @param request servlet request
-     * @param response servlet response
-     * @throws ServletException if a servlet-specific error occurs
-     * @throws IOException if an I/O error occurs
-     */
-    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
-            throws ServletException, IOException {
+    @Override
+    protected void executaServico(EntityManager em, HttpServletRequest request, HttpServletResponse response, PrintWriter out) throws Exception
+    {
         response.setContentType("text/html;charset=UTF-8");
-        PrintWriter out = response.getWriter();
-        try {
-            response.setContentType( "text/xml" );
-            response.setHeader( "Cache-Control", "no-cache" );
+        response.setContentType("text/xml");
+        response.setHeader("Cache-Control", "no-cache");
 
-            EntityManager em    = DbUtil.getInstance().getEntityManager();
-            long   pIdSessao    = Long.parseLong(request.getParameter("idsessao"));
-            long   pIdPaciente  = Long.parseLong(request.getParameter("idpaciente"));
-            String pAcao        = request.getParameter("acao"); //Acoes: abre_investigacao, fecha_investigacao, abre_diagnostico, fecha_diagnostico, abre_conduta, fecha_conduta            
-            String acao;
-            String etapa;
+        long pIdSessao = Long.parseLong(request.getParameter("idsessao"));
+        long pIdPaciente = Long.parseLong(request.getParameter("idpaciente"));
+        String pAcao = request.getParameter("acao"); //Acoes: abre_investigacao, fecha_investigacao, abre_diagnostico, fecha_diagnostico, abre_conduta, fecha_conduta            
+        String acao;
+        String etapa;
 
-            if (pAcao.toLowerCase().equals("abre_investigacao")) {
-                acao  = Log.ACAO_ABERTURA;
-                etapa = Log.ETAPA_INVESTIGACAO;
-            } else if (pAcao.toLowerCase().equals("fecha_investigacao")) {
-                acao  = Log.ACAO_FECHAMENTO;
-                etapa = Log.ETAPA_INVESTIGACAO;                
-            } else if (pAcao.toLowerCase().equals("abre_diagnostico")) {
-                acao  = Log.ACAO_ABERTURA;
-                etapa = Log.ETAPA_DIAGNOSTICO;                
-            } else if (pAcao.toLowerCase().equals("fecha_diagnostico")) {
-                acao  = Log.ACAO_FECHAMENTO;
-                etapa = Log.ETAPA_DIAGNOSTICO;                
-            } else if (pAcao.toLowerCase().equals("abre_conduta")) {
-                acao  = Log.ACAO_ABERTURA;
-                etapa = Log.ETAPA_CONDUTA;                
-            } else if (pAcao.toLowerCase().equals("fecha_conduta")) {
-                acao  = Log.ACAO_FECHAMENTO;
-                etapa = Log.ETAPA_CONDUTA;                
-            } else
-                return;
-            
+        if (pAcao.toLowerCase().equals("abre_investigacao")) {
+            acao = Log.ACAO_ABERTURA;
+            etapa = Log.ETAPA_INVESTIGACAO;
+        } else if (pAcao.toLowerCase().equals("fecha_investigacao")) {
+            acao = Log.ACAO_FECHAMENTO;
+            etapa = Log.ETAPA_INVESTIGACAO;
+        } else if (pAcao.toLowerCase().equals("abre_diagnostico")) {
+            acao = Log.ACAO_ABERTURA;
+            etapa = Log.ETAPA_DIAGNOSTICO;
+        } else if (pAcao.toLowerCase().equals("fecha_diagnostico")) {
+            acao = Log.ACAO_FECHAMENTO;
+            etapa = Log.ETAPA_DIAGNOSTICO;
+        } else if (pAcao.toLowerCase().equals("abre_conduta")) {
+            acao = Log.ACAO_ABERTURA;
+            etapa = Log.ETAPA_CONDUTA;
+        } else if (pAcao.toLowerCase().equals("fecha_conduta")) {
+            acao = Log.ACAO_FECHAMENTO;
+            etapa = Log.ETAPA_CONDUTA;
+        } else {
+            return;
+        }
 
-            // Registra Log
-            SessaoUsuario sessaoUsuario = em.find(SessaoUsuario.class, pIdSessao);
-            if (sessaoUsuario == null)
-                return;
-            
-            Paciente paciente = em.find(Paciente.class, pIdPaciente);
-            if (paciente == null)
-                return;
-            
-            if (!em.getTransaction().isActive())
-                em.getTransaction().begin();
 
-            Log log = new Log();
-            log.setTipo(em.find(TipoEventoLog.class, TipoEventoLog.REGISTRO_ACAO));
-            log.setAcao(acao);
-            log.setEtapa(etapa);
-            log.setPaciente(paciente);
-            log.setRede(paciente.getRede());
-            log.setCaso(sessaoUsuario.getCaso());
-            log.setData(new Date());
-            log.setSessaoUsuario(sessaoUsuario);
-            
-            em.persist(log);            
-            em.getTransaction().commit();
-            
-            
-            out.println( "<xml>" );
-            //if (isPar)
-            //    out.println("   <resposta_acao_mediador acao=\"sim\" problema=\"PROBLEMA ORIGINADO PELO MEDIADOR\" mensagem=\"MENSAGEM A CADA ACAO VINDA DO MEDIADOR\" />");
-            //else                
-                out.println("   <resposta_acao_mediador acao=\"nao\" />");
-            
-            out.println( "</xml>" );
-        } finally {
-            out.close();
+        // Registra Log
+        SessaoUsuario sessaoUsuario = em.find(SessaoUsuario.class, pIdSessao);
+        if (sessaoUsuario == null) {
+            return;
         }
-    }
 
-    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
-    /**
-     * Handles the HTTP
-     * <code>GET</code> method.
-     *
-     * @param request servlet request
-     * @param response servlet response
-     * @throws ServletException if a servlet-specific error occurs
-     * @throws IOException if an I/O error occurs
-     */
-    @Override
-    protected void doGet(HttpServletRequest request, HttpServletResponse response)
-            throws ServletException, IOException {
-        processRequest(request, response);
-    }
+        Paciente paciente = em.find(Paciente.class, pIdPaciente);
+        if (paciente == null) {
+            return;
+        }
 
-    /**
-     * Handles the HTTP
-     * <code>POST</code> method.
-     *
-     * @param request servlet request
-     * @param response servlet response
-     * @throws ServletException if a servlet-specific error occurs
-     * @throws IOException if an I/O error occurs
-     */
-    @Override
-    protected void doPost(HttpServletRequest request, HttpServletResponse response)
-            throws ServletException, IOException {
-        processRequest(request, response);
+        if (!em.getTransaction().isActive()) {
+            em.getTransaction().begin();
+        }
+
+        Log log = new Log();
+        log.setTipo(em.find(TipoEventoLog.class, TipoEventoLog.REGISTRO_ACAO));
+        log.setAcao(acao);
+        log.setEtapa(etapa);
+        log.setPaciente(paciente);
+        log.setRede(paciente.getRede());
+        log.setCaso(sessaoUsuario.getCaso());
+        log.setData(new Date());
+        log.setSessaoUsuario(sessaoUsuario);
+
+        em.persist(log);
+        em.getTransaction().commit();
+
+
+        out.println("<xml>");
+        out.println("   <resposta_acao_mediador acao=\"sim\" problema=\"PROBLEMA: " + this.getClass() + "\" mensagem=\"MENSAGEM:" + this.getClass() + "\" />");
+//            out.println("   <resposta_acao_mediador acao=\"nao\" />");
+
+        out.println("</xml>");
     }
 
-    /**
-     * Returns a short description of the servlet.
-     *
-     * @return a String containing servlet description
-     */
-    @Override
-    public String getServletInfo() {
-        return "Short description";
-    }// </editor-fold>
 }
index 9d62b12..4465d38 100644 (file)
  */
 package org.ufcspa.simdecs.comunicacao;
 
-import java.io.IOException;
 import java.io.PrintWriter;
 import java.util.Iterator;
 import javax.persistence.EntityManager;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import org.ufcspa.simdecs.entities.Caso;
-import org.ufcspa.simdecs.util.DbUtil;
 
 /**
  *
  * @author maroni
  */
-public class MetodoSelecionaCaso extends HttpServlet {
+public class MetodoSelecionaCaso extends BaseComunicacao {
 
-    /**
-     * Processes requests for both HTTP
-     * <code>GET</code> and
-     * <code>POST</code> methods.
-     *
-     * @param request servlet request
-     * @param response servlet response
-     * @throws ServletException if a servlet-specific error occurs
-     * @throws IOException if an I/O error occurs
-     */
-    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
-            throws ServletException, IOException {
-
-        PrintWriter out = response.getWriter();
-        try {
-            response.setContentType( "text/xml" );
-            response.setHeader( "Cache-Control", "no-cache" );
+    @Override
+    protected void executaServico(EntityManager em, HttpServletRequest request, HttpServletResponse response, PrintWriter out) throws Exception
+    {
+        response.setContentType("text/xml");
+        response.setHeader("Cache-Control", "no-cache");
 
-            EntityManager em = DbUtil.getInstance().getEntityManager();
-            long pIdUsuario = Long.parseLong(request.getParameter("idusuario"));
+        long pIdUsuario = Long.parseLong(request.getParameter("idusuario"));
 
-            Iterator<Caso> it = em.createQuery("From Caso where usuario.id=:pIdUsuario")
-                                .setParameter("pIdUsuario", pIdUsuario)
-                                .getResultList()
-                                .iterator();
-            out.println( "<xml>" );
+        Iterator<Caso> it = em.createQuery("From Caso where usuario.id=:pIdUsuario").setParameter("pIdUsuario", pIdUsuario).getResultList().iterator();
+        out.println("<xml>");
 
-            
-            while(it.hasNext()) {
-                Caso caso = it.next();
-                out.println("   <caso id=\"" + caso.getId() + "\" titulo=\"" + caso.getNome() + "\" resumo=\"" + caso.getResumo() + "\" />");
-            }
 
-            out.println( "</xml>" );
-        } finally {
-            out.close();
+        while (it.hasNext()) {
+            Caso caso = it.next();
+            out.println("   <caso id=\"" + caso.getId() + "\" titulo=\"" + caso.getNome() + "\" resumo=\"" + caso.getResumo() + "\" />");
         }
-        
-    }
-
-    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
-    /**
-     * Handles the HTTP
-     * <code>GET</code> method.
-     *
-     * @param request servlet request
-     * @param response servlet response
-     * @throws ServletException if a servlet-specific error occurs
-     * @throws IOException if an I/O error occurs
-     */
-    @Override
-    protected void doGet(HttpServletRequest request, HttpServletResponse response)
-            throws ServletException, IOException {
-        processRequest(request, response);
-    }
 
-    /**
-     * Handles the HTTP
-     * <code>POST</code> method.
-     *
-     * @param request servlet request
-     * @param response servlet response
-     * @throws ServletException if a servlet-specific error occurs
-     * @throws IOException if an I/O error occurs
-     */
-    @Override
-    protected void doPost(HttpServletRequest request, HttpServletResponse response)
-            throws ServletException, IOException {
-        processRequest(request, response);
+        out.println("</xml>");
     }
 
-    /**
-     * Returns a short description of the servlet.
-     *
-     * @return a String containing servlet description
-     */
-    @Override
-    public String getServletInfo() {
-        return "Short description";
-    }// </editor-fold>
 }
index b74f1be..9f31a9e 100644 (file)
                 </h:form>
             </p:panel>
             <br/>
+            <a href="simulador/index.html">Acesso ao Simulador</a>
             <br/>
-            <h:outputText value="Versão 3.0.0" />
+            <br/>
+            <h:outputText value="Versão 3.1.0" />
         </center>
     </h:body>
 </html>
diff --git a/web/simulador/Chamadas.as b/web/simulador/Chamadas.as
new file mode 100755 (executable)
index 0000000..d89491a
--- /dev/null
@@ -0,0 +1,66 @@
+\feffpackage  {\r
+       \r
+       public class Chamadas {\r
+\r
+               public function Chamadas() {\r
+                       \r
+               }\r
+\r
+               public static var enderecoHttp:String="";\r
+\r
+               public static function MetodoIniciaCaso(id:String) {\r
+                       var endereco:String;\r
+                       endereco= enderecoHttp + "MetodoIniciaCaso?idcaso="+id+"&DT=" + (new Date().getTime());\r
+                       return endereco;\r
+               }\r
+               public static function MetodoFimCaso(id:String) {\r
+                       var endereco:String;\r
+                       endereco= enderecoHttp + "MetodoFimCaso?idsessao="+id+"&DT=" + (new Date().getTime());\r
+                       return endereco;\r
+               }\r
+               public static function MetodoConfiancaInicial(id:String,nivel:String) {\r
+                       var endereco:String;\r
+                       endereco= enderecoHttp + "MetodoConfiancaInicial?idsessao="+id+"&nivelconfianca="+nivel+"&DT=" + (new Date().getTime());\r
+                       return endereco;\r
+               }\r
+               public static function MetodoConfiancaEtapa(id:String,nivel:String,etapa:String, PersonagemSelecionado:String) {\r
+                       var endereco:String;\r
+                       endereco= enderecoHttp + "MetodoConfiancaEtapa?idsessao="+id+"&idpaciente="+PersonagemSelecionado+"&nivelconfianca="+nivel+"&etapa="+etapa+"&DT=" + (new Date().getTime());\r
+                       return endereco;\r
+               }\r
+               public static function MetodoGravaHistorico(id:String,PersonagemSelecionado:String) {\r
+                       var endereco:String;\r
+                       endereco= enderecoHttp + "MetodoGravaHistorico?idsessao="+id+"&idpaciente="+PersonagemSelecionado+"&DT=" + (new Date().getTime());\r
+                       return endereco;\r
+               }\r
+               public static function MetodoGravaLogDiag(id:String,uid:String, marcado:Boolean) {\r
+                       var endereco:String;\r
+                       endereco= enderecoHttp + "MetodoGravaLog?idsessao="+id+"&uid="+uid+"&desmarcado="+!marcado+"&DT=" + (new Date().getTime());\r
+                       return endereco;\r
+               }\r
+               public static function MetodoGravaLog(id:String,uid:String) {\r
+                       var endereco:String;\r
+                       endereco= enderecoHttp + "MetodoGravaLog?idsessao="+id+"&uid="+uid+"&DT=" + (new Date().getTime());\r
+                       return endereco;\r
+               }\r
+               public static function MetodoSelecionaCaso(id:String) {\r
+                       var endereco:String;\r
+                       endereco= enderecoHttp + "MetodoSelecionaCaso?idusuario="+ id +"&DT="+(new Date().getTime());\r
+                       return endereco;\r
+               }\r
+                               \r
+               public static function MetodoRegistraAcao(acao:String,id:String,PersonagemSelecionado:String) {\r
+                       var endereco:String;\r
+                       endereco= enderecoHttp + "MetodoRegistraAcao?idpaciente="+PersonagemSelecionado+"&acao="+acao+"&idsessao="+ id +"&DT="+(new Date().getTime());\r
+                       return endereco;\r
+               }\r
+               public static function MetodoAutenticacao(nome:String,senha:String) {\r
+                       var endereco:String;\r
+                       endereco= enderecoHttp + "MetodoAutenticacao?DT="+(new Date().getTime())+"&user="+nome+"&pass="+senha;\r
+                       return endereco;\r
+               }\r
+\r
+               \r
+       }\r
+       \r
+}\r
index 166776a..4ef543d 100755 (executable)
@@ -5,8 +5,10 @@
                var DiagFunction:String;\r
                var UidCaso:String;\r
                var TextoCaso:String;\r
+               var Endereco:String;\r
                \r
                public function DadosGlobais () {\r
+                       Endereco="";\r
                        UidCheckBox="";\r
                        DiagFunction="";\r
                        UidCaso="";\r
index 4ce3d79..9e62f1c 100755 (executable)
                public function Game() {\r
                        // constructor code\r
                }\r
+               \r
+               public static function Limpar()\r
+               {\r
+\r
+                       idPersonagemSelecionado="";\r
+                       //idUsuario="";\r
+                       idSessao="";\r
+                       staticCaso = new Caso();\r
+                       staticDadosGlobais = new DadosGlobais();                                \r
+                       mediadorAtivo=false;\r
+                       mediadorMensagem="";\r
+                       mediadorProblema="";\r
+\r
+\r
+               }\r
 \r
        }\r
        \r
diff --git a/web/simulador/Lendo XML Medicina.fla b/web/simulador/Lendo XML Medicina.fla
new file mode 100755 (executable)
index 0000000..68226d9
Binary files /dev/null and b/web/simulador/Lendo XML Medicina.fla differ
diff --git a/web/simulador/Lendo XML Medicina.swf b/web/simulador/Lendo XML Medicina.swf
new file mode 100755 (executable)
index 0000000..5b4aaf7
Binary files /dev/null and b/web/simulador/Lendo XML Medicina.swf differ
diff --git a/web/simulador/Lendo XML.fla b/web/simulador/Lendo XML.fla
new file mode 100755 (executable)
index 0000000..3db1e9e
Binary files /dev/null and b/web/simulador/Lendo XML.fla differ
diff --git a/web/simulador/Lendo XML.swf b/web/simulador/Lendo XML.swf
new file mode 100755 (executable)
index 0000000..12e6d74
Binary files /dev/null and b/web/simulador/Lendo XML.swf differ
diff --git a/web/simulador/MedicinaSaude.fla b/web/simulador/MedicinaSaude.fla
new file mode 100755 (executable)
index 0000000..67899f1
Binary files /dev/null and b/web/simulador/MedicinaSaude.fla differ
index cdaaadb..0ce2b46 100755 (executable)
Binary files a/web/simulador/MedicinaSaude.swf and b/web/simulador/MedicinaSaude.swf differ
diff --git a/web/simulador/SitesFlash.txt b/web/simulador/SitesFlash.txt
new file mode 100755 (executable)
index 0000000..be2c1c5
--- /dev/null
@@ -0,0 +1,4 @@
+http://www.criarweb.com/artigos/scroll-de-texto-em-flash.html\r
+http://www.criarweb.com/artigos/trabalhando-arrays-flash.html\r
+http://www.criarweb.com/flash/\r
+http://help.adobe.com/pt_BR/flash/cs/using/flash_cs5_help.pdf
\ No newline at end of file
diff --git a/web/simulador/endereco.txt b/web/simulador/endereco.txt
new file mode 100755 (executable)
index 0000000..831425f
--- /dev/null
@@ -0,0 +1 @@
+http://200.18.67.61/simdecs2/
index e928f4d..829de26 100755 (executable)
@@ -2,8 +2,8 @@
 <body>\r
 <center>\r
 <object width="800" height="600" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000">\r
-<param name="SRC" value="simulador.swf">\r
-<embed src="simulador.swf" width="800" height="600"></embed>\r
+<param name="SRC" value="MedicinaSaude.swf">\r
+<embed src="MedicinaSaude.swf" width="800" height="600"></embed>\r
 </object>\r
 </center>\r
 </body>\r
diff --git a/web/simulador/livros.xml b/web/simulador/livros.xml
new file mode 100755 (executable)
index 0000000..1fea6c6
--- /dev/null
@@ -0,0 +1,20 @@
+<Books>\r
+       <Book ISBN="0553212419">\r
+               <title>Sherlock Holmes: Complete Novels and Stories, Vol 1</title>\r
+               <author>Sir Arthur Conan Doyle</author>\r
+       </Book>\r
+       <Book ISBN="0743273567">\r
+               <title>The Great Gatsby</title>\r
+               <author>F. Scott Fitzgerald</author>\r
+\r
+       </Book>\r
+       <Book ISBN="0684826976">\r
+               <title>Undaunted Courage</title>\r
+               <author>Stephen E. Ambrose</author>\r
+       </Book>\r
+       <Book ISBN="0743203178">\r
+               <title>Nothing Like It In the World</title>\r
+\r
+               <author>Stephen E. Ambrose</author>\r
+       </Book>\r
+</Books>
\ No newline at end of file
diff --git a/web/simulador/padrao.xml b/web/simulador/padrao.xml
new file mode 100755 (executable)
index 0000000..c51fdb5
--- /dev/null
@@ -0,0 +1,96 @@
+<caso uid="1"\r
+    titulo="Caso Amélia" \r
+    modelo="cenario_casa"      \r
+    descricaoAmbiente="Dra. Luísa esta trabalhando há 2 meses no PSF \r
+    de um município do interior de médio porte, quando, durante \r
+    uma reunião de equipe, na qual participam a enfermeira Karla, \r
+    o técnico em enfermagem, a dentista e os agentes de saúde, abordou o tema da saúde.">\r
+    <ator uid="2" tipo="paciente" nome="Amélia" modelo="mulher_normal" idade="50" peso="100" altura="1.70">\r
+\r
+               <etapa uid="9876" nome="Investigação" sequencia="1" tipo="investigacao">\r
+\r
+                       <perguntar_sintoma uid="5" descricao="Perguntar Sinais/Sintomas" >\r
+                               <sintoma uid="6" nomeCientifico="nomecientifico" nomePopular="nomepopular" imagem="imagem.jpg" som="som1.mp3" video="video1.wmv" falaPaciente="Fala do Paciente1" dependencia=""/>\r
+                               <sintoma uid="7" nomeCientifico="nomecientifico" nomePopular="nomepopular" imagem="imagem.jpg" som="som.wav" video="video.avi" falaPaciente="Fala do Paciente2" dependencia=""/>\r
+                               <sintoma uid="8" nomeCientifico="nomecientifico" nomePopular="nomepopular" imagem="imagem.jpg" som="som.wav" video="video.avi" falaPaciente="Fala do Paciente3" dependencia=""/>\r
+                               <sintoma uid="55" nomeCientifico="Aperto na garganta" nomePopular="Aperto na garganta" imagem="" som="" video="" falaPaciente="" dependencia=""/>\r
+                               <sintoma uid="56" nomeCientifico="leucorréia, dispareunia" nomePopular="leucorréia, dispareunia" imagem="" som="" video="" falaPaciente=" Nega sintomas ginecológicos (leucorréia, dispareunia). "dependencia="" />\r
+                       </perguntar_sintoma>\r
+\r
+                       <realiza_exame_fisico uid="13" descricao="Realizar Exame Físico" >\r
+                               <exame_fisico uid="14" descricao="descricaoExame" resultado="resultado" imagem="imagem.jpg" som="som.wav" video="video.avi" dependencia="7,12" />\r
+                               <exame_fisico uid="15" descricao="descricaoExame" resultado="resultado" imagem="imagem.jpg" som="som.wav" video="video.avi" dependencia="7,12"/>\r
+                               <exame_fisico uid="16" descricao="descricaoExame" resultado="resultado" imagem="imagem.jpg" som="som.wav" video="video.avi" dependencia="7,12"/>\r
+                       </realiza_exame_fisico>\r
+         \r
+                       <solicitar_exames_complementar uid="18" descricao="Solicitar Exame Complementar" >\r
+                               <exame_complementar uid="19" descricao="descricaoExame" resultado="resultado" imagem="imagem.jpg" som="som.wav" video="video.avi" dependencia=""/>\r
+                               <exame_complementar uid="20" descricao="descricaoExame" resultado="resultado" imagem="imagem.jpg" som="som.wav" video="video.avi" dependencia=""/>\r
+                               <exame_complementar uid="21" descricao="descricaoExame" resultado="resultado" imagem="imagem.jpg" som="som.wav" video="video.avi" dependencia=""/>\r
+                       </solicitar_exames_complementar>                                \r
+\r
+                       <historico_medico uid="4525" descricao="Histórico Médico" historico="historico" dependencia="" />\r
+               </etapa>\r
+\r
+               <etapa uid="7614" nome="Diagnóstico" sequencia="2" tipo="diagnostico">\r
+                       <diagnostico uid="7615" nome="hipotese a1" />\r
+                       <diagnostico uid="7616" nome="hipotese a2" />\r
+                       <diagnostico uid="7617" nome="hipotese a3" />\r
+                       <diagnostico uid="7618" nome="hipotese a4" />\r
+               </etapa>\r
+\r
+               <etapa uid="8000" nome="Conduta" sequencia="3" tipo="conduta">\r
+                       <conduta uid="8001" nome="Conduta a1" />\r
+                       <conduta uid="8002" nome="Conduta a2" />\r
+                       <conduta uid="8003" nome="Conduta a3" />\r
+                       <conduta uid="8005" nome="Conduta a4" />\r
+                       <conduta uid="8005" nome="Conduta a5" />\r
+                       <conduta uid="8006" nome="Conduta a6" />\r
+               </etapa>\r
+    </ator>\r
+        <ator uid="20000" tipo="paciente" nome="Amélia2" modelo="mulher_normal" idade="50" peso="100" altura="1.70">\r
+\r
+               <etapa uid="9876" nome="Investigação" sequencia="1" tipo="investigacao">\r
+\r
+                       <perguntar_sintoma uid="5" descricao="Perguntar Sinais/Sintomas" >\r
+                               <sintoma uid="6" nomeCientifico="nomecientifico2" nomePopular="nomepopular" imagem="imagem.jpg" som="som1.mp3" video="video1.wmv" falaPaciente="Fala do Paciente1" dependencia=""/>\r
+                               <sintoma uid="7" nomeCientifico="nomecientifico2" nomePopular="nomepopular" imagem="imagem.jpg" som="som.wav" video="video.avi" falaPaciente="Fala do Paciente2" dependencia=""/>\r
+                               <sintoma uid="8" nomeCientifico="nomecientifico2" nomePopular="nomepopular" imagem="imagem.jpg" som="som.wav" video="video.avi" falaPaciente="Fala do Paciente3" dependencia=""/>\r
+                               <sintoma uid="55" nomeCientifico="Aperto na garganta2" nomePopular="Aperto na garganta" imagem="" som="" video="" falaPaciente="" dependencia=""/>\r
+                               <sintoma uid="56" nomeCientifico="leucorréia, dispareunia2" nomePopular="leucorréia, dispareunia" imagem="" som="" video="" falaPaciente=" Nega sintomas ginecológicos (leucorréia, dispareunia). "dependencia="" />\r
+                       </perguntar_sintoma>\r
+\r
+                       <realiza_exame_fisico uid="13" descricao="Realizar Exame Físico" >\r
+                               <exame_fisico uid="14" descricao="descricaoExame2" resultado="resultado" imagem="imagem.jpg" som="som.wav" video="video.avi" dependencia="7,12" />\r
+                               <exame_fisico uid="15" descricao="descricaoExame2" resultado="resultado" imagem="imagem.jpg" som="som.wav" video="video.avi" dependencia="7,12"/>\r
+                               <exame_fisico uid="16" descricao="descricaoExame2" resultado="resultado" imagem="imagem.jpg" som="som.wav" video="video.avi" dependencia="7,12"/>\r
+                       </realiza_exame_fisico>\r
+         \r
+                       <solicitar_exames_complementar uid="18" descricao="Solicitar Exame Complementar" >\r
+                               <exame_complementar uid="19" descricao="descricaoExame2" resultado="resultado" imagem="imagem.jpg" som="som.wav" video="video.avi" dependencia=""/>\r
+                               <exame_complementar uid="20" descricao="descricaoExame2" resultado="resultado" imagem="imagem.jpg" som="som.wav" video="video.avi" dependencia=""/>\r
+                               <exame_complementar uid="21" descricao="descricaoExame2" resultado="resultado" imagem="imagem.jpg" som="som.wav" video="video.avi" dependencia=""/>\r
+                       </solicitar_exames_complementar>                                \r
+\r
+                       <historico_medico uid="4525" descricao="Histórico Médico" historico="historico" dependencia="" />\r
+               </etapa>\r
+\r
+               <etapa uid="7614" nome="Diagnóstico" sequencia="2" tipo="diagnostico">\r
+                       <diagnostico uid="7615" nome="hipotese b1" />\r
+                       <diagnostico uid="7616" nome="hipotese b2" />\r
+                       <diagnostico uid="7617" nome="hipotese b3" />\r
+                       <diagnostico uid="7618" nome="hipotese b4" />\r
+               </etapa>\r
+\r
+               <etapa uid="8000" nome="Conduta" sequencia="3" tipo="conduta">\r
+                       <conduta uid="8001" nome="Conduta b1" />\r
+                       <conduta uid="8002" nome="Conduta b2" />\r
+                       <conduta uid="8003" nome="Conduta b3" />\r
+                       <conduta uid="8005" nome="Conduta b4" />\r
+                       <conduta uid="8005" nome="Conduta b5" />\r
+                       <conduta uid="8006" nome="Conduta b6" />\r
+               </etapa>\r
+    </ator>\r
+\r
+\r
+</caso>\r
diff --git a/web/simulador/teste.xml b/web/simulador/teste.xml
new file mode 100755 (executable)
index 0000000..81359fa
--- /dev/null
@@ -0,0 +1,64 @@
+<caso uid="1"\r
+    titulo="Caso Amélia" \r
+    modelo="cenario_casa"      \r
+    descricaoAmbiente="Dra. Luísa esta trabalhando há 2 meses no PSF \r
+    de um município do interior de médio porte, quando, durante \r
+    uma reunião de equipe, na qual participam a enfermeira Karla, \r
+    o técnico em enfermagem, a dentista e os agentes de saúde, abordou o tema da saúde.">\r
+       \r
+       <ator uid="2" tipo="paciente" nome="Amélia" modelo="mulher_normal" idade="50" peso="100" altura="1.70">\r
+               <etapa uid="9876" nome="Investigação" sequencia="1" tipo="investigacao">\r
+                \r
+                       <perguntar_sintoma uid="5" descricao="Perguntar Sinais/Sintomas">\r
+                               <sintoma uid="6" nomeCientifico="nomecientifico" nomePopular="nomepopular" imagem="imagem.jpg" som="som1.mp3" video="video1.wmv" falaPaciente="Fala do Paciente" dependencia="" />\r
+                               <sintoma uid="7" nomeCientifico="nomecientifico" nomePopular="nomepopular" imagem="imagem.jpg" som="som.wav" video="video.avi" falaPaciente="Fala do Paciente" dependencia="" />\r
+                               <sintoma uid="8" nomeCientifico="nomecientifico" nomePopular="nomepopular" imagem="imagem.jpg" som="som.wav" video="video.avi" falaPaciente="Fala do Paciente" dependencia="" />\r
+                               <sintoma uid="55" nomeCientifico="Aperto na garganta" nomePopular="Aperto na garganta" imagem="" som="" video="" falaPaciente="" dependencia="" />\r
+                               <sintoma uid="56" nomeCientifico="leucorréia, dispareunia" nomePopular="leucorréia, dispareunia" imagem="" som="" video="" falaPaciente=" Nega sintomas ginecológicos (leucorréia, dispareunia). " dependencia="" />\r
+               </perguntar_sintoma>\r
+                       \r
+                       \r
+                       <realiza_exame_fisico uid="13" descricao="Realizar Exame Físico" >\r
+                       <exame_fisico uid="14" descricao="descricaoExame" resultado="resultado" imagem="imagem.jpg" som="som.wav" video="video.avi" dependencia="7,12" />\r
+                       <exame_fisico uid="15" descricao="descricaoExame" resultado="resultado" imagem="imagem.jpg" som="som.wav" video="video.avi" dependencia="7,12" />\r
+                       <exame_fisico uid="16" descricao="descricaoExame" resultado="resultado" imagem="imagem.jpg" som="som.wav" video="video.avi" dependencia="7,12" />\r
+               </realiza_exame_fisico>\r
+               \r
+                       <solicitar_exames_complementar uid="18" descricao="Solicitar Exame Complementar">\r
+                       <exame_complementar uid="19" descricao="descricaoExame" resultado="resultado" imagem="imagem.jpg" som="som.wav" video="video.avi" dependencia="" />\r
+                       <exame_complementar uid="20" descricao="descricaoExame" resultado="resultado" imagem="imagem.jpg" som="som.wav" video="video.avi" dependencia="" />\r
+                       <exame_complementar uid="21" descricao="descricaoExame" resultado="resultado" imagem="imagem.jpg" som="som.wav" video="video.avi" dependencia="" />\r
+                   </solicitar_exames_complementar>                   \r
+\r
+                       <historico_medico uid="4525" descricao="Histórico Médico" historico="historico" dependencia="" />\r
+               \r
+               </etapa>\r
+               \r
+               \r
+               <etapa uid="7614" nome="Diagnóstico" sequencia="2" tipo="diagnostico">\r
+                       <diagnostico uid="7615" nome="hipotese 1" />\r
+                       <diagnostico uid="7616" nome="hipotese 2" />\r
+                       <diagnostico uid="7617" nome="hipotese 3" />\r
+                       <diagnostico uid="7618" nome="hipotese 4" />\r
+               </etapa>\r
+\r
+               <etapa uid="8000" nome="Conduta" sequencia="3" tipo="conduta">\r
+                       <conduta uid="8001" nome="Conduta 1" />\r
+                       <conduta uid="8002" nome="Conduta 2" />\r
+                       <conduta uid="8003" nome="Conduta 3" />\r
+                       <conduta uid="8005" nome="Conduta 4" />\r
+                       <conduta uid="8005" nome="Conduta 5" />\r
+                       <conduta uid="8006" nome="Conduta 6" />\r
+               </etapa>\r
+                               \r
+       </ator>\r
+       \r
+       <ator uid="3" tipo="paciente" nome="Amélia" modelo="mulher_normal" idade="50" peso="100" altura="1.70">\r
+               <info>teste teste teste</info>\r
+       </ator>\r
+       \r
+       \r
+       \r
+       \r
+       \r
+</caso>
\ No newline at end of file
diff --git a/web/simulador/textLayout_1.0.0.595.swz b/web/simulador/textLayout_1.0.0.595.swz
new file mode 100755 (executable)
index 0000000..e24632f
Binary files /dev/null and b/web/simulador/textLayout_1.0.0.595.swz differ
diff --git a/web/simulador/textLayout_2.0.0.232.swz b/web/simulador/textLayout_2.0.0.232.swz
new file mode 100755 (executable)
index 0000000..a1d80de
Binary files /dev/null and b/web/simulador/textLayout_2.0.0.232.swz differ