Nova versao do simulador e tratamento de erros das chamadas.
authormaroni <maroni@192.168.1.103>
Wed, 18 Apr 2012 12:03:40 +0000 (09:03 -0300)
committermaroni <maroni@192.168.1.103>
Wed, 18 Apr 2012 12:03:40 +0000 (09:03 -0300)
src/java/org/ufcspa/simdecs/mediador/LogExecucao.java [new file with mode: 0644]
src/java/org/ufcspa/simdecs/mediador/NegociacaoPedagogica.java [new file with mode: 0644]

diff --git a/src/java/org/ufcspa/simdecs/mediador/LogExecucao.java b/src/java/org/ufcspa/simdecs/mediador/LogExecucao.java
new file mode 100644 (file)
index 0000000..bec9433
--- /dev/null
@@ -0,0 +1,198 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package org.ufcspa.simdecs.mediador;
+
+import java.util.Iterator;
+import javax.persistence.EntityManager;
+import org.ufcspa.simdecs.entities.Log;
+import org.ufcspa.simdecs.entities.Nodo;
+import org.ufcspa.simdecs.entities.TipoEventoLog;
+import org.ufcspa.simdecs.util.DbUtil;
+
+/**
+ *
+ * @author maroni
+ */
+public class LogExecucao {
+
+    private String confiancaAtual;
+    private boolean abriuFichaPaciente;
+    private int perguntasRealizadas;
+    private int perguntasDisponiveis;
+    private int perguntasProfessor;
+    private int perguntasBogusRealizadas;
+    private int examesFisicosRealizados;
+    private int examesFisicosProfessor;
+    private int examesFisicosDisponiveis;
+    private int examesComplementaresRealizados;
+    private int examesComplementaresProfessor;
+    private int examesComplementaresDisponiveis;
+    private int desmarcacoesDiagnostico;
+    private int desmarcacoesConduta;
+    
+    private EntityManager em;
+    
+    
+    public final void refresh(long idSessao, long idCaso, long idRede) {
+        // Inicializa Valores
+        perguntasRealizadas = perguntasDisponiveis = perguntasProfessor = perguntasBogusRealizadas =
+        examesFisicosRealizados = examesFisicosProfessor = examesFisicosDisponiveis =
+        examesComplementaresRealizados = examesComplementaresProfessor = examesComplementaresDisponiveis =
+        desmarcacoesDiagnostico = desmarcacoesConduta = 0;
+        
+        confiancaAtual = "";
+        abriuFichaPaciente = false;
+        
+        
+        em = DbUtil.getInstance().getEntityManager();
+        
+        Iterator<Log> itLog = em.createQuery("From log where log.sessao.id=:pIDSessao order by log.data")
+                                .setParameter("pIDSessao", idSessao)
+                                .getResultList()
+                                .iterator();
+        
+        while(itLog.hasNext()) {
+            Log log = itLog.next();
+            
+            // Registra a abertura da ficha do paciente
+            if (log.getTipo().getId().equals(TipoEventoLog.VISUALIZA_HISTORICO))
+              abriuFichaPaciente = true;
+
+            // Registra a confianca do aluno
+            if (log.getTipo().getId().equals(TipoEventoLog.CONFIANCA_INICIAL))
+              confiancaAtual = log.getConfianca();
+
+            if (log.getTipo().getId().equals(TipoEventoLog.CONFIANCA_ETAPA))
+              confiancaAtual = log.getConfianca();
+            
+            // Soma os sinais e sintomas perguntados pelo aluno
+            if (log.getTipo().getId().equals(TipoEventoLog.PERGUNTA_SINAL_SINTOMA) ||
+                log.getTipo().getId().equals(TipoEventoLog.PERGUNTA_HISTORICO) ) {
+
+                if (log.getNodo().getBogus())
+                    perguntasBogusRealizadas+=1;
+                else
+                    perguntasRealizadas+=1;                
+            }
+            
+            // Soma os exames físicos perguntados pelo aluno
+            if (log.getTipo().getId().equals(TipoEventoLog.SOLICITA_EXAME_FISICO))
+              examesFisicosRealizados+=1;
+
+            // Soma os exames complementares perguntados pelo aluno
+            if (log.getTipo().getId().equals(TipoEventoLog.SOLICITA_EXAME_COMPLEMENTAR))
+              examesComplementaresRealizados+=1;
+            
+            // Soma as desmarcações de diagnósticos
+            if (log.getTipo().getId().equals(TipoEventoLog.SELECIONA_DIAGNOSTICO) &&
+                log.isDesmarcado())
+              desmarcacoesDiagnostico+=1;
+
+            // Soma as desmarcações de condutas
+            if (log.getTipo().getId().equals(TipoEventoLog.SELECIONA_CONDUTA) &&
+                log.isDesmarcado())
+              desmarcacoesConduta+=1;
+                
+        }
+
+        
+        Iterator<Nodo> itNodoProf = em.createQuery("Select nodo From NodoPaciente where paciente.id in (select id from Paciente where caso.id=:pIDCaso")
+                                  .setParameter("pIDCaso", idCaso)
+                                  .getResultList()
+                                  .iterator();
+        while(itNodoProf.hasNext()) {
+            Nodo nodo = itNodoProf.next();
+            if (nodo.getTipo().equals(Nodo.SINAL_SINTOMA))
+                perguntasProfessor+=1;
+            if (nodo.getTipo().equals(Nodo.HISTORICO))
+                perguntasProfessor+=1;
+            if (nodo.getTipo().equals(Nodo.EXAME_COMPLEMENTAR))
+                examesComplementaresProfessor+=1;
+            if (nodo.getTipo().equals(Nodo.EXAME_FISICO))
+                examesFisicosProfessor+=1;
+        }
+
+        Iterator<Nodo> itNodoDisp = em.createQuery("From Nodo where rede.id=:pIDRede")
+                                  .setParameter("pIDRede", idRede)
+                                  .getResultList()
+                                  .iterator();
+        while(itNodoDisp.hasNext()) {
+            Nodo nodo = itNodoDisp.next();
+            if (nodo.getTipo().equals(Nodo.SINAL_SINTOMA))
+                perguntasDisponiveis+=1;
+            if (nodo.getTipo().equals(Nodo.HISTORICO))
+                perguntasDisponiveis+=1;
+            if (nodo.getTipo().equals(Nodo.EXAME_COMPLEMENTAR))
+                examesComplementaresDisponiveis+=1;
+            if (nodo.getTipo().equals(Nodo.EXAME_FISICO))
+                examesFisicosDisponiveis+=1;
+        }        
+    }
+    
+    public LogExecucao(long idSessao, long idCaso, long idRede) {
+        refresh(idSessao, idCaso, idRede);
+    }
+
+    public boolean isAbriuFichaPaciente() {
+        return abriuFichaPaciente;
+    }
+
+    public String getConfiancaAtual() {
+        return confiancaAtual;
+    }
+
+    public int getDesmarcacoesConduta() {
+        return desmarcacoesConduta;
+    }
+
+    public int getDesmarcacoesDiagnostico() {
+        return desmarcacoesDiagnostico;
+    }
+
+    public EntityManager getEm() {
+        return em;
+    }
+
+    public int getExamesComplementaresDisponiveis() {
+        return examesComplementaresDisponiveis;
+    }
+
+    public int getExamesComplementaresProfessor() {
+        return examesComplementaresProfessor;
+    }
+
+    public int getExamesComplementaresRealizados() {
+        return examesComplementaresRealizados;
+    }
+
+    public int getExamesFisicosDisponiveis() {
+        return examesFisicosDisponiveis;
+    }
+
+    public int getExamesFisicosProfessor() {
+        return examesFisicosProfessor;
+    }
+
+    public int getExamesFisicosRealizados() {
+        return examesFisicosRealizados;
+    }
+
+    public int getPerguntasBogusRealizadas() {
+        return perguntasBogusRealizadas;
+    }
+
+    public int getPerguntasDisponiveis() {
+        return perguntasDisponiveis;
+    }
+
+    public int getPerguntasProfessor() {
+        return perguntasProfessor;
+    }
+
+    public int getPerguntasRealizadas() {
+        return perguntasRealizadas;
+    }
+    
+}
diff --git a/src/java/org/ufcspa/simdecs/mediador/NegociacaoPedagogica.java b/src/java/org/ufcspa/simdecs/mediador/NegociacaoPedagogica.java
new file mode 100644 (file)
index 0000000..ff07a06
--- /dev/null
@@ -0,0 +1,18 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package org.ufcspa.simdecs.mediador;
+
+/**
+ *
+ * @author maroni
+ */
+public class NegociacaoPedagogica {
+
+    
+    public NegociacaoPedagogica() {
+    }
+
+    
+}