Implementação dos registros de Log de eventos!
authormaroni <maroni@192.168.1.103>
Thu, 29 Mar 2012 13:08:33 +0000 (10:08 -0300)
committermaroni <maroni@192.168.1.103>
Thu, 29 Mar 2012 13:08:33 +0000 (10:08 -0300)
12 files changed:
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
src/java/org/ufcspa/simdecs/entities/Log.java
src/java/org/ufcspa/simdecs/entities/TipoEventoLog.java
src/java/org/ufcspa/simdecs/test/Teste.java
web/login.xhtml

index bfbde48..dc14ac5 100644 (file)
@@ -6,11 +6,16 @@ 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;
 
 /**
@@ -38,16 +43,56 @@ public class MetodoConfiancaEtapa extends HttpServlet {
             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");
-
-            if (!pNivel.toLowerCase().equals("baixo") && !pNivel.toLowerCase().equals("medio") && !pNivel.toLowerCase().equals("alto"))
+            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") && !pEtapa.toLowerCase().equals("investigacao") && !pEtapa.toLowerCase().equals("conduta"))
+            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\" />");
index 3969560..712159f 100644 (file)
@@ -6,11 +6,15 @@ 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;
 
 /**
@@ -40,10 +44,37 @@ public class MetodoConfiancaInicial extends HttpServlet {
             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;
+
 
-            if (!pNivel.toLowerCase().equals("baixo") && !pNivel.toLowerCase().equals("medio") && !pNivel.toLowerCase().equals("alto"))
+            // 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>" );
 
             out.println("   <nivel_confianca registrado=\"sim\" />");
index 3a14317..148e908 100644 (file)
@@ -6,11 +6,16 @@ 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;
 
 /**
@@ -40,6 +45,23 @@ public class MetodoFimCaso extends HttpServlet {
             EntityManager em = DbUtil.getInstance().getEntityManager();
             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();
+
+            Log log = new Log();
+            log.setTipo(em.find(TipoEventoLog.class, TipoEventoLog.FIM_CASO));
+            log.setCaso(sessaoUsuario.getCaso());
+            log.setData(new Date());
+            log.setSessaoUsuario(sessaoUsuario);
+
+            em.persist(log);            
+            em.getTransaction().commit();
+
             out.println( "<xml>" );
 
             out.println("   <resposta_final_mediador mensagem=\"MENSAGEM FINAL DO MEDIADOR\" />");
index 54aa334..f01f964 100644 (file)
@@ -6,11 +6,16 @@ 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;
 
 /**
@@ -41,6 +46,29 @@ public class MetodoGravaHistorico extends HttpServlet {
             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();
+
+            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);
+
+            em.persist(log);            
+            em.getTransaction().commit();
+            
             out.println( "<xml>" );
             
             out.println("   <grava_historico registrado=\"sim\" />");
index 9c6c2cf..e59bcd7 100644 (file)
@@ -6,13 +6,13 @@ package org.ufcspa.simdecs.comunicacao;
 
 import java.io.IOException;
 import java.io.PrintWriter;
-import java.util.Iterator;
+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.Caso;
+import org.ufcspa.simdecs.entities.*;
 import org.ufcspa.simdecs.util.DbUtil;
 
 /**
@@ -31,6 +31,184 @@ public class MetodoGravaLog extends HttpServlet {
      * @throws ServletException if a servlet-specific error occurs
      * @throws IOException if an I/O error occurs
      */
+
+    private long getIdFromUID(String pUID, String prefixo) {
+        String id = pUID.replaceAll(prefixo, "");
+        id = id.substring(0, id.indexOf(":"));
+        return Long.parseLong(id);
+    }
+
+    private long getIdPacienteFromUID(String pUID) {
+        String id = pUID.substring(pUID.indexOf(":paciente-") + ":paciente-".length());
+        return Long.parseLong(id);
+    }
+    
+    private void registraLog(EntityManager em, SessaoUsuario sessaoUsuario, String pUID, boolean desmarcado) {
+        
+        // Sintoma vindo de NodoPaciente
+        if (pUID.toLowerCase().startsWith("sintoma-np-")) {
+            NodoPaciente nodoPaciente = em.find(NodoPaciente.class, getIdFromUID(pUID, "sintoma-np-"));
+
+            if (!em.getTransaction().isActive())
+                em.getTransaction().begin();
+
+            Log log = new Log();
+            log.setSessaoUsuario(sessaoUsuario);
+            log.setCaso(sessaoUsuario.getCaso());
+            log.setData(new Date());
+            log.setEtapa(Log.ETAPA_INVESTIGACAO);
+            log.setNodo(nodoPaciente.getNodo());
+            log.setDesmarcado(desmarcado);
+            log.setPaciente(nodoPaciente.getPaciente());
+            log.setRede(nodoPaciente.getPaciente().getRede());
+            log.setTipo(em.find(TipoEventoLog.class, TipoEventoLog.PERGUNTA_SINAL_SINTOMA));
+            log.setDescricao("CLICOU SOBRE SINAL/SINTOMA INDICADO PELO PROFESSOR!");
+            em.persist(log);
+            
+            em.getTransaction().commit();
+        }
+        
+        // Sintoma vindo de Nodo
+        if (pUID.toLowerCase().startsWith("sintoma-nd-")) {
+            Nodo nodo = em.find(Nodo.class, getIdFromUID(pUID, "sintoma-nd-"));
+            Paciente paciente = em.find(Paciente.class, getIdPacienteFromUID(pUID));
+            
+            if (!em.getTransaction().isActive())
+                em.getTransaction().begin();
+
+            Log log = new Log();
+            log.setSessaoUsuario(sessaoUsuario);
+            log.setCaso(sessaoUsuario.getCaso());
+            log.setDesmarcado(desmarcado);
+            log.setData(new Date());
+            log.setEtapa(Log.ETAPA_INVESTIGACAO);
+            log.setNodo(nodo);
+            log.setRede(paciente.getRede());
+            log.setPaciente(paciente);
+            log.setTipo(em.find(TipoEventoLog.class, TipoEventoLog.PERGUNTA_SINAL_SINTOMA));
+            log.setDescricao("CLICOU SOBRE SINAL/SINTOMA NAO INDICADO PELO PROFESSOR!");
+            em.persist(log);
+            
+            em.getTransaction().commit();            
+        }
+
+        // Exame físico vindo de NodoPaciente
+        if (pUID.toLowerCase().startsWith("exame-fisico-np-")) {
+            NodoPaciente nodoPaciente = em.find(NodoPaciente.class, getIdFromUID(pUID, "exame-fisico-np-"));
+
+            if (!em.getTransaction().isActive())
+                em.getTransaction().begin();
+
+            Log log = new Log();
+            log.setDesmarcado(desmarcado);
+            log.setSessaoUsuario(sessaoUsuario);
+            log.setCaso(sessaoUsuario.getCaso());
+            log.setData(new Date());
+            log.setEtapa(Log.ETAPA_INVESTIGACAO);
+            log.setNodo(nodoPaciente.getNodo());
+            log.setPaciente(nodoPaciente.getPaciente());
+            log.setRede(nodoPaciente.getPaciente().getRede());
+            log.setTipo(em.find(TipoEventoLog.class, TipoEventoLog.SOLICITA_EXAME_FISICO));
+            log.setDescricao("CLICOU SOBRE EXAME FISICO INDICADO PELO PROFESSOR!");
+            em.persist(log);
+            
+            em.getTransaction().commit();
+            
+        }
+
+        // Exame complementar vindo de NodoPaciente
+        if (pUID.toLowerCase().startsWith("exame-complementar-np-")) {
+            NodoPaciente nodoPaciente = em.find(NodoPaciente.class, getIdFromUID(pUID, "exame-complementar-np-"));
+
+            if (!em.getTransaction().isActive())
+                em.getTransaction().begin();
+
+            Log log = new Log();
+            log.setDesmarcado(desmarcado);
+            log.setSessaoUsuario(sessaoUsuario);
+            log.setCaso(sessaoUsuario.getCaso());
+            log.setData(new Date());
+            log.setEtapa(Log.ETAPA_INVESTIGACAO);
+            log.setNodo(nodoPaciente.getNodo());
+            log.setPaciente(nodoPaciente.getPaciente());
+            log.setRede(nodoPaciente.getPaciente().getRede());
+            log.setTipo(em.find(TipoEventoLog.class, TipoEventoLog.SOLICITA_EXAME_COMPLEMENTAR));
+            log.setDescricao("CLICOU SOBRE EXAME COMPLEMENTAR INDICADO PELO PROFESSOR!");
+            em.persist(log);
+            
+            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));
+
+            if (!em.getTransaction().isActive())
+                em.getTransaction().begin();
+
+            Log log = new Log();
+            log.setDesmarcado(desmarcado);
+            log.setSessaoUsuario(sessaoUsuario);
+            log.setCaso(sessaoUsuario.getCaso());
+            log.setData(new Date());
+            log.setEtapa(Log.ETAPA_INVESTIGACAO);
+            log.setPaciente(paciente);
+            log.setRede(paciente.getRede());
+            log.setTipo(em.find(TipoEventoLog.class, TipoEventoLog.PERGUNTA_HISTORICO));
+            log.setDescricao("CLICOU SOBRE O HISTORICO INDICADO PELO PROFESSOR!");
+            em.persist(log);
+            
+            em.getTransaction().commit();
+        }
+
+        // Diagnostico
+        if (pUID.toLowerCase().startsWith("diagnostico-")) {
+            NodoPaciente nodoPaciente = em.find(NodoPaciente.class, getIdFromUID(pUID, "diagnostico-"));
+
+            if (!em.getTransaction().isActive())
+                em.getTransaction().begin();
+
+            Log log = new Log();
+            log.setDesmarcado(desmarcado);
+            log.setSessaoUsuario(sessaoUsuario);
+            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.setTipo(em.find(TipoEventoLog.class, TipoEventoLog.SELECIONA_DIAGNOSTICO));
+            log.setDescricao("SELECIONOU O DIAGNOSTICO");
+            em.persist(log);
+            
+            em.getTransaction().commit();
+        }
+
+        // Conduta
+        if (pUID.toLowerCase().startsWith("conduta-")) {
+            NodoPaciente nodoPaciente = em.find(NodoPaciente.class, getIdFromUID(pUID, "conduta-"));
+
+            if (!em.getTransaction().isActive())
+                em.getTransaction().begin();
+
+            Log log = new Log();
+            log.setSessaoUsuario(sessaoUsuario);
+            log.setDesmarcado(desmarcado);
+            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.setTipo(em.find(TipoEventoLog.class, TipoEventoLog.SELECIONA_CONDUTA));
+            log.setDescricao("SELECIONOU A CONDUTA");
+            em.persist(log);
+            
+            em.getTransaction().commit();
+        }
+        
+    }
+    
     protected void processRequest(HttpServletRequest request, HttpServletResponse response)
             throws ServletException, IOException {
         response.setContentType("text/html;charset=UTF-8");
@@ -48,6 +226,12 @@ public class MetodoGravaLog extends HttpServlet {
             if (pDesmarcado != null && !pDesmarcado.equals(""))
                 desmarcado = true;
             
+            SessaoUsuario sessaoUsuario = em.find(SessaoUsuario.class, pIdSessao);
+            if (sessaoUsuario == null)
+                return;
+
+            registraLog(em, sessaoUsuario, pUID, desmarcado);
+            
             out.println( "<xml>" );
 
             boolean isPar;
index 805857a..98c204d 100644 (file)
@@ -137,7 +137,7 @@ public class MetodoIniciaCaso extends HttpServlet {
             em.persist(sessaoUsuario);
             em.flush();
             
-            // Logo inicio do caso
+            // Logo inicio do caso.
             Log log = new Log();
             log.setTipo(em.find(TipoEventoLog.class, TipoEventoLog.INICIO_CASO));
             log.setCaso(caso);
@@ -172,7 +172,7 @@ public class MetodoIniciaCaso extends HttpServlet {
                     if (!nodo.getNodo().getTipo().equals(Nodo.SINAL_SINTOMA) && !nodo.getNodo().getTipo().equals(Nodo.HISTORICO))
                         continue;
                 
-                    out.println("                <sintoma uid=\"sintoma-np-" + nodo.getId() + "\" nomeCientifico=\"" + nodo.getNodo().getNome() + "\" nomePopular=\"" + getPerguntaNodo(nodo.getNodo().getId()) + "\" imagem=\"\" som=\"\" video=\"\" dependencia=\"" + getDependencia(nodo.getNodo().getId()) + "\" falaPaciente=\"" + getRespostaNodo(nodo.getNodo(), paciente)  + "\" />");
+                    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
@@ -184,7 +184,7 @@ public class MetodoIniciaCaso extends HttpServlet {
                     if (!nodo.getTipo().equals(Nodo.SINAL_SINTOMA) && !nodo.getTipo().equals(Nodo.HISTORICO))
                         continue;
                 
-                    out.println("                <sintoma uid=\"sintoma-nd-" + nodo.getId() + "\" nomeCientifico=\"" + nodo.getNome() + "\" nomePopular=\"" + getPerguntaNodo(nodo.getId()) + "\" imagem=\"\" som=\"\" video=\"\" dependencia=\"" + getDependencia(nodo.getId()) + "\" falaPaciente=\"" + getRespostaNodo(nodo, paciente)  + "\" />");
+                    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>");
@@ -195,7 +195,7 @@ public class MetodoIniciaCaso extends HttpServlet {
                     if (!nodo.getNodo().getTipo().equals(Nodo.EXAME_FISICO))
                         continue;
                 
-                    out.println("                <exame_fisico uid=\"exame-fisico-np-" + nodo.getId() + "\" dependencia=\"" + getDependencia(nodo.getNodo().getId()) + "\" descricao=\"" + nodo.getNodo().getNomeAmigavel() + "\" resultado=\"\" imagem=\"\" som=\"\" video=\"\" />");
+                    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>");
 
@@ -205,7 +205,7 @@ public class MetodoIniciaCaso extends HttpServlet {
                     if (!nodo.getNodo().getTipo().equals(Nodo.EXAME_COMPLEMENTAR))
                         continue;
                 
-                    out.println("                <exame_complementar uid=\"exame-complementar-np-" + nodo.getId() + "\" dependencia=\"" + getDependencia(nodo.getNodo().getId()) + "\" descricao=\"" + nodo.getNodo().getNomeAmigavel() + "\" resultado=\"\" imagem=\"\" som=\"\" video=\"\" />");
+                    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>");
 /*
@@ -217,7 +217,7 @@ public class MetodoIniciaCaso extends HttpServlet {
                     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" + "\" dependencia=\"\" descricao=\"Histórico Médico\" historico=\"" + paciente.getHistorico() + "\" 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>");
@@ -229,7 +229,7 @@ public class MetodoIniciaCaso extends HttpServlet {
                                                   .iterator();            
                 while(itDiagnosticos.hasNext()) {
                     Nodo nodo = itDiagnosticos.next();
-                    out.println("            <diagnostico uid=\"diagnostico-" + nodo.getId() + "\" nome=\"" + nodo.getNomeAmigavel() + "\" falaMedico=\"" +  getPerguntaNodo(nodo.getId())  + "\" />");
+                    out.println("            <diagnostico uid=\"diagnostico-" + nodo.getId() + ":paciente-" + paciente.getId() + "\" nome=\"" + nodo.getNomeAmigavel() + "\" falaMedico=\"" +  getPerguntaNodo(nodo.getId())  + "\" />");
                 }
                 out.println("        </etapa>");
             
@@ -240,7 +240,7 @@ public class MetodoIniciaCaso extends HttpServlet {
                                              .iterator();            
                 while(itConduta.hasNext()) {
                     Nodo nodo = itConduta.next();
-                    out.println("            <conduta uid=\"conduta-" + nodo.getId() + "\" nome=\"" + nodo.getNomeAmigavel() + "\" falaMedico=\"" +  getPerguntaNodo(nodo.getId())  + "\" />");
+                    out.println("            <conduta uid=\"conduta-" + nodo.getId() + ":paciente-" + paciente.getId() + "\" nome=\"" + nodo.getNomeAmigavel() + "\" falaMedico=\"" +  getPerguntaNodo(nodo.getId())  + "\" />");
                 }
                 out.println("        </etapa>");
                 out.println("    </ator>");
index 0bfb71e..69671f0 100644 (file)
@@ -6,11 +6,16 @@ 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;
 
 /**
@@ -39,10 +44,60 @@ public class MetodoRegistraAcao extends HttpServlet {
 
             EntityManager em    = DbUtil.getInstance().getEntityManager();
             long   pIdSessao    = Long.parseLong(request.getParameter("idsessao"));
-            String pAcao        = request.getParameter("acao");
-//Acoes: abre_investigacao, fecha_investigacao, abre_diagnostico, fecha_diagnostico, abre_conduta, fecha_conduta
-            out.println( "<xml>" );
+            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;
+            
+
+            // 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                
index d5f0800..9d62b12 100644 (file)
@@ -48,6 +48,7 @@ public class MetodoSelecionaCaso extends HttpServlet {
                                 .iterator();
             out.println( "<xml>" );
 
+            
             while(it.hasNext()) {
                 Caso caso = it.next();
                 out.println("   <caso id=\"" + caso.getId() + "\" titulo=\"" + caso.getNome() + "\" resumo=\"" + caso.getResumo() + "\" />");
index a23291c..a69e20f 100644 (file)
@@ -18,6 +18,18 @@ public class Log implements Serializable {
     \r
     private static final long serialVersionUID = 1L;\r
     \r
+    public static final String ETAPA_INVESTIGACAO = "INV";\r
+    public static final String ETAPA_DIAGNOSTICO  = "DIA";\r
+    public static final String ETAPA_CONDUTA      = "CON";\r
+\r
+    public static final String CONFIANCA_BAIXA    = "BAI";\r
+    public static final String CONFIANCA_MEDIA    = "MED";\r
+    public static final String CONFIANCA_ALTA     = "ALT";\r
+    \r
+    public static final String ACAO_ABERTURA      = "ABR";\r
+    public static final String ACAO_FECHAMENTO    = "FEC";\r
+\r
+    \r
     @Id\r
     @SequenceGenerator(name="seqLog", sequenceName="SQLOG")\r
     @GeneratedValue(strategy=GenerationType.AUTO, generator="seqLog")\r
@@ -52,7 +64,19 @@ public class Log implements Serializable {
     @JoinColumn(name="rede_id", nullable=true)\r
     private Rede rede;\r
     \r
-    @Column(name = "descricao")\r
+    @Column(length=3)\r
+    private String etapa;\r
+    \r
+    @Column(length=3)\r
+    private String confianca;        \r
+\r
+    @Column\r
+    private boolean desmarcado;\r
+    \r
+    @Column(length=3)\r
+    private String acao;        \r
+    \r
+    @Column(name = "descricao", nullable=true)\r
     private String descricao;\r
 \r
     public Log(Date data, TipoEventoLog tipo, SessaoUsuario sessaoUsuario, Caso caso, Paciente paciente, Nodo nodo, Rede rede, String descricao) {\r
@@ -69,6 +93,38 @@ public class Log implements Serializable {
     public Log() {\r
     }\r
 \r
+    public boolean isDesmarcado() {\r
+        return desmarcado;\r
+    }\r
+\r
+    public void setDesmarcado(boolean desmarcado) {\r
+        this.desmarcado = desmarcado;\r
+    }\r
+\r
+    public String getAcao() {\r
+        return acao;\r
+    }\r
+\r
+    public void setAcao(String acao) {\r
+        this.acao = acao;\r
+    }\r
+\r
+    \r
+    public String getConfianca() {\r
+        return confianca;\r
+    }\r
+\r
+    public void setConfianca(String confianca) {\r
+        this.confianca = confianca;\r
+    }\r
+\r
+    public String getEtapa() {\r
+        return etapa;\r
+    }\r
+\r
+    public void setEtapa(String etapa) {\r
+        this.etapa = etapa;\r
+    }\r
     \r
     \r
     public Caso getCaso() {\r
index bc3de0e..09623c2 100644 (file)
@@ -16,7 +16,18 @@ import javax.persistence.*;
 public class TipoEventoLog implements Serializable {\r
     private static final long serialVersionUID = 1L;\r
     \r
-    public static String INICIO_CASO = "INICIO_CASO";\r
+    public static String INICIO_CASO                    = "INICIO_CASO";\r
+    public static String CONFIANCA_INICIAL              = "CONFIANCA_INICIAL";\r
+    public static String CONFIANCA_ETAPA                = "CONFIANCA_ETAPA";\r
+    public static String VISUALIZA_HISTORICO            = "VISUALIZA_HISTORICO";\r
+    public static String REGISTRO_ACAO                  = "REGISTRO_ACAO";\r
+    public static String PERGUNTA_SINAL_SINTOMA         = "PERGUNTA_SINAL_SINTOMA";\r
+    public static String SOLICITA_EXAME_FISICO          = "SOLICITA_EXAME_FISICO";\r
+    public static String SOLICITA_EXAME_COMPLEMENTAR    = "SOLICITA_EXAME_COMPLEMENTAR";\r
+    public static String PERGUNTA_HISTORICO             = "PERGUNTA_HISTORICO";\r
+    public static String SELECIONA_DIAGNOSTICO          = "SELECIONA_DIAGNOSTICO";\r
+    public static String SELECIONA_CONDUTA              = "SELECIONA_CONDUTA";\r
+    public static String FIM_CASO                       = "FIM_CASO";\r
     \r
     @Id\r
     private String id;\r
index 7bc47ff..06428db 100644 (file)
@@ -4,23 +4,24 @@
  */
 package org.ufcspa.simdecs.test;
 
-import java.io.File;
-import unbbayes.io.xmlbif.version6.XMLBIFIO;
-import unbbayes.prs.Node;
-import unbbayes.prs.bn.ProbabilisticNetwork;
-import unbbayes.prs.bn.ProbabilisticNode;
-
 /**
  *
  * @author maroni
  */
 public class Teste {
+    private static long getIdFromUID(String pUID, String prefixo) {
+        String id = pUID.replaceAll(prefixo, "");
+        id = id.substring(0, id.indexOf(":"));
+        return Long.parseLong(id);
+    }
+
+    private static long getIdPacienteFromUID(String pUID) {
+        String id = pUID.substring(pUID.indexOf(":paciente-") + ":paciente-".length());
+        return Long.parseLong(id);
+    }
 
     public static void main(String[] args) {
-        String resposta = "vinicius maroni";
-        if (resposta.substring(0,1).equals(resposta.substring(0,1).toLowerCase()))
-            resposta = resposta.substring(0,1).toUpperCase() + resposta.substring(1);
-        System.out.println(resposta);
-    
+        System.out.println(getIdFromUID("sintoma-np-12:paciente-1", "sintoma-np-"));        
+        System.out.println(getIdPacienteFromUID("sintoma-np-12:paciente-15"));        
     }
 }
index 26af0a4..b74f1be 100644 (file)
@@ -33,7 +33,7 @@
             </p:panel>
             <br/>
             <br/>
-            <h:outputText value="Versão 2.2.0" />
+            <h:outputText value="Versão 3.0.0" />
         </center>
     </h:body>
 </html>