From 6384677812bbebd154c17e9ae133cc31b5a1af5d Mon Sep 17 00:00:00 2001 From: maroni Date: Sun, 27 May 2012 19:02:51 -0300 Subject: [PATCH] =?utf8?q?Corre=C3=A7=C3=A3o=20de=20bug=20na=20chamada=20a=20?= =?utf8?q?flush=20em=20MetodoIniciaCaso?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../ufcspa/simdecs/comunicacao/MetodoGravaLog.java | 147 ++++++-------------- .../org/ufcspa/simdecs/mediador/LogExecucao.java | 6 +- web/login.xhtml | 2 +- 3 files changed, 47 insertions(+), 108 deletions(-) diff --git a/src/java/org/ufcspa/simdecs/comunicacao/MetodoGravaLog.java b/src/java/org/ufcspa/simdecs/comunicacao/MetodoGravaLog.java index 8fdd8ad..5dcceff 100644 --- a/src/java/org/ufcspa/simdecs/comunicacao/MetodoGravaLog.java +++ b/src/java/org/ufcspa/simdecs/comunicacao/MetodoGravaLog.java @@ -6,6 +6,7 @@ package org.ufcspa.simdecs.comunicacao; import java.io.PrintWriter; import java.util.Date; +import java.util.Iterator; import javax.persistence.EntityManager; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -28,13 +29,24 @@ public class MetodoGravaLog extends BaseComunicacao { return Long.parseLong(id); } - private String registraLog(EntityManager em, SessaoUsuario sessaoUsuario, String pUID, boolean desmarcado) { + + private void registraLog(EntityManager em, SessaoUsuario sessaoUsuario, String etapa, Nodo nodo, Paciente paciente, boolean desmarcado, String tipoEvento) { + - String taticaPedagogica=null; - - // Sintoma vindo de NodoPaciente - if (pUID.toLowerCase().startsWith("sintoma-np-")) { - NodoPaciente nodoPaciente = em.find(NodoPaciente.class, getIdFromUID(pUID, "sintoma-np-")); + if (etapa.equals(Log.ETAPA_INVESTIGACAO)) { + Iterator itLogs = em.createQuery("From Log where sessaoUsuario.id=:pIdSessao and paciente.id=:pIdPaciente and etapa=:pEtapa and tipo.id=:pTipo and (nodo.id=:pIdNodo or :pIdNodo is null) and desmarcado=:pDesmarcado") + .setParameter("pIdSessao", sessaoUsuario.getId()) + .setParameter("pIdPaciente", paciente.getId()) + .setParameter("pEtapa", etapa) + .setParameter("pIdNodo", nodo.getId()) + .setParameter("pDesmarcado", desmarcado) + .setParameter("pTipo", tipoEvento) + .getResultList().iterator(); + + while (itLogs.hasNext()) { + return; + } + } if (!em.getTransaction().isActive()) em.getTransaction().begin(); @@ -43,16 +55,28 @@ public class MetodoGravaLog extends BaseComunicacao { log.setSessaoUsuario(sessaoUsuario); log.setCaso(sessaoUsuario.getCaso()); log.setData(new Date()); - log.setEtapa(Log.ETAPA_INVESTIGACAO); - log.setNodo(nodoPaciente.getNodo()); + log.setEtapa(etapa); + log.setNodo(nodo); log.setDesmarcado(desmarcado); - log.setPaciente(nodoPaciente.getPaciente()); - log.setRede(nodoPaciente.getPaciente().getRede()); - log.setTipo(em.find(TipoEventoLog.class, TipoEventoLog.PERGUNTA_SINAL_SINTOMA)); + log.setPaciente(paciente); + log.setRede(paciente.getRede()); + log.setTipo(em.find(TipoEventoLog.class, tipoEvento)); em.persist(log); em.getTransaction().commit(); - + + } + + private String registraLog(EntityManager em, SessaoUsuario sessaoUsuario, String pUID, boolean desmarcado) { + + String taticaPedagogica=null; + + // Sintoma vindo de NodoPaciente + if (pUID.toLowerCase().startsWith("sintoma-np-")) { + NodoPaciente nodoPaciente = em.find(NodoPaciente.class, getIdFromUID(pUID, "sintoma-np-")); + + registraLog(em, sessaoUsuario, Log.ETAPA_INVESTIGACAO, nodoPaciente.getNodo(), nodoPaciente.getPaciente(), desmarcado, TipoEventoLog.PERGUNTA_SINAL_SINTOMA); + if (nodoPaciente.getNodo().getTaticaPedagogica() != null && nodoPaciente.getNodo().getTaticaPedagogica() != "") taticaPedagogica = nodoPaciente.getNodo().getTaticaPedagogica(); } @@ -62,47 +86,17 @@ public class MetodoGravaLog extends BaseComunicacao { 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(); + registraLog(em, sessaoUsuario, Log.ETAPA_INVESTIGACAO, nodo, paciente, desmarcado, TipoEventoLog.PERGUNTA_SINAL_SINTOMA); - 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)); - em.persist(log); - if (nodo.getTaticaPedagogica() != null && nodo.getTaticaPedagogica() != "") taticaPedagogica = nodo.getTaticaPedagogica(); - - 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)); - em.persist(log); - - em.getTransaction().commit(); + registraLog(em, sessaoUsuario, Log.ETAPA_INVESTIGACAO, nodoPaciente.getNodo(), nodoPaciente.getPaciente(), desmarcado, TipoEventoLog.SOLICITA_EXAME_FISICO); if (nodoPaciente.getNodo().getTaticaPedagogica() != null && nodoPaciente.getNodo().getTaticaPedagogica() != "") taticaPedagogica = nodoPaciente.getNodo().getTaticaPedagogica(); @@ -113,22 +107,7 @@ public class MetodoGravaLog extends BaseComunicacao { 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)); - em.persist(log); - - em.getTransaction().commit(); + registraLog(em, sessaoUsuario, Log.ETAPA_INVESTIGACAO, nodoPaciente.getNodo(), nodoPaciente.getPaciente(), desmarcado, TipoEventoLog.SOLICITA_EXAME_COMPLEMENTAR); if (nodoPaciente.getNodo().getTaticaPedagogica() != null && nodoPaciente.getNodo().getTaticaPedagogica() != "") taticaPedagogica = nodoPaciente.getNodo().getTaticaPedagogica(); @@ -137,21 +116,7 @@ public class MetodoGravaLog extends BaseComunicacao { 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)); - em.persist(log); - - em.getTransaction().commit(); + registraLog(em, sessaoUsuario, Log.ETAPA_INVESTIGACAO, null, paciente, desmarcado, TipoEventoLog.PERGUNTA_HISTORICO); } // Diagnostico @@ -159,22 +124,8 @@ public class MetodoGravaLog extends BaseComunicacao { Nodo nodo = em.find(Nodo.class, getIdFromUID(pUID, "diagnostico-")); Paciente paciente = em.find(Paciente.class, getIdPacienteFromUID(pUID)); - if (!em.getTransaction().isActive()) - em.getTransaction().begin(); + registraLog(em, sessaoUsuario, Log.ETAPA_DIAGNOSTICO, nodo, paciente, desmarcado, TipoEventoLog.SELECIONA_DIAGNOSTICO); - 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(nodo); - log.setPaciente(paciente); - log.setRede(paciente.getRede()); - log.setTipo(em.find(TipoEventoLog.class, TipoEventoLog.SELECIONA_DIAGNOSTICO)); - em.persist(log); - - em.getTransaction().commit(); if (nodo.getTaticaPedagogica() != null && nodo.getTaticaPedagogica() != "") taticaPedagogica = nodo.getTaticaPedagogica(); } @@ -184,22 +135,8 @@ public class MetodoGravaLog extends BaseComunicacao { Nodo nodo = em.find(Nodo.class, getIdFromUID(pUID, "conduta-")); Paciente paciente = em.find(Paciente.class, getIdPacienteFromUID(pUID)); - if (!em.getTransaction().isActive()) - em.getTransaction().begin(); + registraLog(em, sessaoUsuario, Log.ETAPA_CONDUTA, nodo, paciente, desmarcado, TipoEventoLog.SELECIONA_CONDUTA); - 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(nodo); - log.setPaciente(paciente); - log.setRede(paciente.getRede()); - log.setTipo(em.find(TipoEventoLog.class, TipoEventoLog.SELECIONA_CONDUTA)); - em.persist(log); - - em.getTransaction().commit(); if (nodo.getTaticaPedagogica() != null && nodo.getTaticaPedagogica() != "") taticaPedagogica = nodo.getTaticaPedagogica(); } diff --git a/src/java/org/ufcspa/simdecs/mediador/LogExecucao.java b/src/java/org/ufcspa/simdecs/mediador/LogExecucao.java index f9462b1..1983477 100644 --- a/src/java/org/ufcspa/simdecs/mediador/LogExecucao.java +++ b/src/java/org/ufcspa/simdecs/mediador/LogExecucao.java @@ -179,8 +179,10 @@ public class LogExecucao { if (log.getTipo().getId().equals(TipoEventoLog.SELECIONA_CONDUTA)) { if (log.isDesmarcado()) condutas.remove(log.getNodo().getId()); - else - condutas.put(log.getNodo().getId(), log.getNodo()); + else { + if (!condutas.containsKey(log.getNodo().getId())) + condutas.put(log.getNodo().getId(), log.getNodo()); + } } } diff --git a/web/login.xhtml b/web/login.xhtml index 73097c3..43814e2 100644 --- a/web/login.xhtml +++ b/web/login.xhtml @@ -35,7 +35,7 @@ Acesso ao Simulador

- + -- 1.7.6.4