Nova versao do simulador e tratamento de erros das chamadas.
authormaroni <maroni@192.168.1.103>
Fri, 27 Apr 2012 17:07:49 +0000 (14:07 -0300)
committermaroni <maroni@192.168.1.103>
Fri, 27 Apr 2012 17:07:49 +0000 (14:07 -0300)
src/java/org/ufcspa/simdecs/comunicacao/BaseComunicacao.java
src/java/org/ufcspa/simdecs/comunicacao/MetodoRegistraAcao.java
src/java/org/ufcspa/simdecs/mediador/LogExecucao.java
src/java/org/ufcspa/simdecs/mediador/NegociacaoPedagogica.java

index d53fcae..df01da9 100644 (file)
@@ -85,6 +85,8 @@ public abstract class BaseComunicacao extends HttpServlet {
             out.println("       </mensagem>");
             out.println("   </erro>" );
             out.println("</xml>" );
+            
+            e.printStackTrace();
         } finally { 
             out.close();
         }
index 8236de6..dbfd2b9 100644 (file)
@@ -13,6 +13,7 @@ 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.mediador.NegociacaoPedagogica;
 
 /**
  *
@@ -85,6 +86,8 @@ public class MetodoRegistraAcao extends BaseComunicacao {
         em.getTransaction().commit();
 
 
+        NegociacaoPedagogica negociacaoPedagogica = new NegociacaoPedagogica(pIdSessao, paciente);
+        
         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\" />");
index bec9433..dbdbd6e 100644 (file)
@@ -4,7 +4,9 @@
  */
 package org.ufcspa.simdecs.mediador;
 
+import java.util.HashMap;
 import java.util.Iterator;
+import java.util.Map;
 import javax.persistence.EntityManager;
 import org.ufcspa.simdecs.entities.Log;
 import org.ufcspa.simdecs.entities.Nodo;
@@ -31,24 +33,56 @@ public class LogExecucao {
     private int examesComplementaresDisponiveis;
     private int desmarcacoesDiagnostico;
     private int desmarcacoesConduta;
+
+    private float examesComplementaresCustoTotal;
+    private float examesComplementaresCustoProfessor;
+    private float examesComplementaresCustoRealizado;
+    private int examesComplementaresTempoTotal;
+    private int examesComplementaresTempoProfessor;
+    private int examesComplementaresTempoRealizado;
+    private float examesFisicosCustoTotal;
+    private float examesFisicosCustoProfessor;
+    private float examesFisicosCustoRealizado;
+    private int examesFisicosTempoTotal;
+    private int examesFisicosTempoProfessor;
+    private int examesFisicosTempoRealizado;
+    
+    private boolean concluiuInvestigacao;
+    private boolean concluiuDiagnostico;
+    private boolean concluiuConduta;
+    private boolean encerrouCaso;
+    
+    
+    private Nodo diagnostico;
+    private Map<Long, Nodo> condutas;
     
     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;
+        desmarcacoesDiagnostico = desmarcacoesConduta = examesComplementaresTempoTotal =
+        examesComplementaresTempoRealizado = examesFisicosTempoTotal = examesFisicosTempoRealizado =
+        examesComplementaresTempoProfessor = examesFisicosTempoProfessor = 0;
+        
+        
+        examesFisicosCustoTotal = examesFisicosCustoRealizado = examesComplementaresCustoProfessor =
+        examesComplementaresCustoTotal = examesFisicosCustoProfessor = examesComplementaresCustoRealizado = 0;
+                
+        diagnostico = null;
+        condutas = new HashMap<Long, Nodo>();
         
         confiancaAtual = "";
-        abriuFichaPaciente = false;
+        concluiuInvestigacao = concluiuDiagnostico = concluiuConduta = encerrouCaso = abriuFichaPaciente = false;
         
         
         em = DbUtil.getInstance().getEntityManager();
         
-        Iterator<Log> itLog = em.createQuery("From log where log.sessao.id=:pIDSessao order by log.data")
+        Iterator<Log> itLog = em.createQuery("From Log where sessaoUsuario.id=:pIDSessao order by  data")
                                 .setParameter("pIDSessao", idSessao)
                                 .getResultList()
                                 .iterator();
@@ -76,14 +110,40 @@ public class LogExecucao {
                 else
                     perguntasRealizadas+=1;                
             }
+
+            // Registra encerramento de etapas
+            if (log.getTipo().getId().equals(TipoEventoLog.FIM_CASO))
+                encerrouCaso = true;
+
+            if (log.getTipo().getId().equals(TipoEventoLog.REGISTRO_ACAO) &&
+                log.getAcao().equals(Log.ACAO_FECHAMENTO) &&
+                log.getEtapa().equals(Log.ETAPA_INVESTIGACAO))
+                concluiuInvestigacao = true;
+
+            if (log.getTipo().getId().equals(TipoEventoLog.REGISTRO_ACAO) &&
+                log.getAcao().equals(Log.ACAO_FECHAMENTO) &&
+                log.getEtapa().equals(Log.ETAPA_CONDUTA))
+
+                concluiuConduta = true;
+            if (log.getTipo().getId().equals(TipoEventoLog.REGISTRO_ACAO) &&
+                log.getAcao().equals(Log.ACAO_FECHAMENTO) &&
+                log.getEtapa().equals(Log.ETAPA_DIAGNOSTICO))
+                concluiuDiagnostico = true;                        
+            
             
             // Soma os exames físicos perguntados pelo aluno
-            if (log.getTipo().getId().equals(TipoEventoLog.SOLICITA_EXAME_FISICO))
+            if (log.getTipo().getId().equals(TipoEventoLog.SOLICITA_EXAME_FISICO)) {
               examesFisicosRealizados+=1;
+              examesFisicosCustoRealizado+=log.getNodo().getCusto();
+              examesFisicosTempoRealizado+=log.getNodo().getTempo();
+            }
 
             // Soma os exames complementares perguntados pelo aluno
-            if (log.getTipo().getId().equals(TipoEventoLog.SOLICITA_EXAME_COMPLEMENTAR))
+            if (log.getTipo().getId().equals(TipoEventoLog.SOLICITA_EXAME_COMPLEMENTAR)) {
               examesComplementaresRealizados+=1;
+              examesComplementaresCustoRealizado+=log.getNodo().getCusto();
+              examesComplementaresTempoRealizado+=log.getNodo().getTempo();
+            }
             
             // Soma as desmarcações de diagnósticos
             if (log.getTipo().getId().equals(TipoEventoLog.SELECIONA_DIAGNOSTICO) &&
@@ -94,11 +154,26 @@ public class LogExecucao {
             if (log.getTipo().getId().equals(TipoEventoLog.SELECIONA_CONDUTA) &&
                 log.isDesmarcado())
               desmarcacoesConduta+=1;
-                
+
+            // Diagnostico selecionado
+            if (log.getTipo().getId().equals(TipoEventoLog.SELECIONA_DIAGNOSTICO)) {
+                if (log.isDesmarcado())
+                    diagnostico = null;
+                else
+                    diagnostico = log.getNodo();
+            }
+
+            // Condutas selecionado
+            if (log.getTipo().getId().equals(TipoEventoLog.SELECIONA_CONDUTA)) {
+                if (log.isDesmarcado())
+                    condutas.remove(log.getNodo().getId());
+                else
+                    condutas.put(log.getNodo().getId(), log.getNodo());
+            }
         }
 
         
-        Iterator<Nodo> itNodoProf = em.createQuery("Select nodo From NodoPaciente where paciente.id in (select id from Paciente where caso.id=:pIDCaso")
+        Iterator<Nodo> itNodoProf = em.createQuery("Select np.nodo From NodoPaciente as np where np.paciente.id in (select p.id from Paciente as p where p.caso.id=:pIDCaso)")
                                   .setParameter("pIDCaso", idCaso)
                                   .getResultList()
                                   .iterator();
@@ -108,10 +183,16 @@ public class LogExecucao {
                 perguntasProfessor+=1;
             if (nodo.getTipo().equals(Nodo.HISTORICO))
                 perguntasProfessor+=1;
-            if (nodo.getTipo().equals(Nodo.EXAME_COMPLEMENTAR))
+            if (nodo.getTipo().equals(Nodo.EXAME_COMPLEMENTAR)) {
                 examesComplementaresProfessor+=1;
-            if (nodo.getTipo().equals(Nodo.EXAME_FISICO))
+                examesComplementaresCustoProfessor+=nodo.getCusto();
+                examesComplementaresTempoProfessor+=nodo.getTempo();
+            }
+            if (nodo.getTipo().equals(Nodo.EXAME_FISICO)) {
                 examesFisicosProfessor+=1;
+                examesFisicosCustoProfessor+=nodo.getCusto();
+                examesFisicosTempoProfessor+=nodo.getTempo();
+            }
         }
 
         Iterator<Nodo> itNodoDisp = em.createQuery("From Nodo where rede.id=:pIDRede")
@@ -124,10 +205,16 @@ public class LogExecucao {
                 perguntasDisponiveis+=1;
             if (nodo.getTipo().equals(Nodo.HISTORICO))
                 perguntasDisponiveis+=1;
-            if (nodo.getTipo().equals(Nodo.EXAME_COMPLEMENTAR))
+            if (nodo.getTipo().equals(Nodo.EXAME_COMPLEMENTAR)) {
                 examesComplementaresDisponiveis+=1;
-            if (nodo.getTipo().equals(Nodo.EXAME_FISICO))
+                examesComplementaresCustoTotal+=nodo.getCusto();
+                examesComplementaresTempoTotal+=nodo.getTempo();
+            }
+            if (nodo.getTipo().equals(Nodo.EXAME_FISICO)) {
                 examesFisicosDisponiveis+=1;
+                examesFisicosCustoTotal+=nodo.getCusto();
+                examesFisicosTempoTotal+=nodo.getTempo();               
+            }
         }        
     }
     
@@ -194,5 +281,84 @@ public class LogExecucao {
     public int getPerguntasRealizadas() {
         return perguntasRealizadas;
     }
+
+    public Map<Long, Nodo> getCondutas() {
+        return condutas;
+    }
+
+    public Nodo getDiagnostico() {
+        return diagnostico;
+    }
+
+    public boolean isConcluiuConduta() {
+        return concluiuConduta;
+    }
+
+    public boolean isConcluiuDiagnostico() {
+        return concluiuDiagnostico;
+    }
+
+    public boolean isConcluiuInvestigacao() {
+        return concluiuInvestigacao;
+    }
+
+    public boolean isEncerrouCaso() {
+        return encerrouCaso;
+    }
+
+    public float getExamesComplementaresCustoProfessor() {
+        return examesComplementaresCustoProfessor;
+    }
+
+    public float getExamesComplementaresCustoRealizado() {
+        return examesComplementaresCustoRealizado;
+    }
+
+    public float getExamesComplementaresCustoTotal() {
+        return examesComplementaresCustoTotal;
+    }
+
+    public int getExamesComplementaresTempoProfessor() {
+        return examesComplementaresTempoProfessor;
+    }
+
+    public int getExamesComplementaresTempoRealizado() {
+        return examesComplementaresTempoRealizado;
+    }
+
+    public int getExamesComplementaresTempoTotal() {
+        return examesComplementaresTempoTotal;
+    }
+
+    public float getExamesFisicosCustoProfessor() {
+        return examesFisicosCustoProfessor;
+    }
+
+    public float getExamesFisicosCustoRealizado() {
+        return examesFisicosCustoRealizado;
+    }
+
+    public float getExamesFisicosCustoTotal() {
+        return examesFisicosCustoTotal;
+    }
+
+    public int getExamesFisicosTempoProfessor() {
+        return examesFisicosTempoProfessor;
+    }
+
+    public int getExamesFisicosTempoRealizado() {
+        return examesFisicosTempoRealizado;
+    }
+
+    public int getExamesFisicosTempoTotal() {
+        return examesFisicosTempoTotal;
+    }
+
+    @Override
+    public String toString() {
+        return "LogExecucao{" + "confiancaAtual=" + confiancaAtual + "\nabriuFichaPaciente=" + abriuFichaPaciente + "\nperguntasRealizadas=" + perguntasRealizadas + "\nperguntasDisponiveis=" + perguntasDisponiveis + "\nperguntasProfessor=" + perguntasProfessor + "\nperguntasBogusRealizadas=" + perguntasBogusRealizadas + "\nexamesFisicosRealizados=" + examesFisicosRealizados + "\nexamesFisicosProfessor=" + examesFisicosProfessor + "\nexamesFisicosDisponiveis=" + examesFisicosDisponiveis + "\nexamesComplementaresRealizados=" + examesComplementaresRealizados + "\nexamesComplementaresProfessor=" + examesComplementaresProfessor + "\nexamesComplementaresDisponiveis=" + examesComplementaresDisponiveis + "\ndesmarcacoesDiagnostico=" + desmarcacoesDiagnostico + "\ndesmarcacoesConduta=" + desmarcacoesConduta + "\nexamesComplementaresCustoTotal=" + examesComplementaresCustoTotal + "\nexamesComplementaresCustoProfessor=" + examesComplementaresCustoProfessor + "\nexamesComplementaresCustoRealizado=" + examesComplementaresCustoRealizado + "\nexamesComplementaresTempoTotal=" + examesComplementaresTempoTotal + "\nexamesComplementaresTempoProfessor=" + examesComplementaresTempoProfessor + "\nexamesComplementaresTempoRealizado=" + examesComplementaresTempoRealizado + "\nexamesFisicosCustoTotal=" + examesFisicosCustoTotal + "\nexamesFisicosCustoProfessor=" + examesFisicosCustoProfessor + "\nexamesFisicosCustoRealizado=" + examesFisicosCustoRealizado + "\nexamesFisicosTempoTotal=" + examesFisicosTempoTotal + "\nexamesFisicosTempoProfessor=" + examesFisicosTempoProfessor + "\nexamesFisicosTempoRealizado=" + examesFisicosTempoRealizado + "\nconcluiuInvestigacao=" + concluiuInvestigacao + "\nconcluiuDiagnostico=" + concluiuDiagnostico + "\nconcluiuConduta=" + concluiuConduta + "\nencerrouCaso=" + encerrouCaso + "\ndiagnostico=" + diagnostico + "\ncondutas=" + condutas + '}';
+        
+    }
+    
     
 }
index ff07a06..0595dd3 100644 (file)
@@ -4,6 +4,8 @@
  */
 package org.ufcspa.simdecs.mediador;
 
+import org.ufcspa.simdecs.entities.Paciente;
+
 /**
  *
  * @author maroni
@@ -11,8 +13,65 @@ package org.ufcspa.simdecs.mediador;
 public class NegociacaoPedagogica {
 
     
-    public NegociacaoPedagogica() {
-    }
+    
+    public static final String INVESTIGACAO_INSUFICIENTE = "INVESTIGACAO_INSUFICIENTE";
+    public static final String INVESTIGACAO_EXCESSIVA = "INVESTIGACAO_EXCESSIVA";
+    public static final String INVESTIGACAO_BOGUS = "INVESTIGACAO_BOGUS";
+    public static final String INVESTIGACAO_DISPENDIOSA = "INVESTIGACAO_DISPENDIOSA";
+    public static final String INVESTIGACAO_DEMORADA = "INVESTIGACAO_DEMORADA";
+    
+    public static final String DIAGNOSTICO_INCORRETO_IMPLAUSIVEL = "DIAGNOSTICO_INCORRETO_IMPLAUSIVEL";
+    public static final String DIAGNOSTICO_INCORRETO_PLAUSIVEL = "DIAGNOSTICO_INCORRETO_PLAUSIVEL";
+    
+    public static final String CONDUTA_INCORRETA_COERENTE = "CONDUTA_INCORRETA_COERENTE";
+    public static final String CONDUTA_INCORRETA_INCOERENTE = "CONDUTA_INCORRETA_INCOERENTE";
+    public static final String CONDUTA_INSUFICIENTE = "CONDUTA_INSUFICIENTE";
+    public static final String CONDUTA_EXCESSIVA = "CONDUTA_EXCESSIVA";
+    public static final String CONDUTA_DEMORADA = "CONDUTA_DEMORADA";
+    public static final String CONDUTA_DISPENDIOSA = "CONDUTA_DISPENDIOSA";
+    
+    // Anamnese
+    float anamneseInsuficiente;
+    float anamneseSuficiente;
+    float anamneseExcessiva;
 
+    // Exame Físico
+    float exameFisicoInsuficiente;
+    float exameFisicoSuficiente;
+    float exameFisicoExcessiva;
+
+    // Exame Complementar
+    float exameComplementarInsuficiente;
+    float exameComplementarSuficiente;
+    float exameComplementarExcessiva;
+    
+    // Abertura da Ficha do Paciente
+    float abriuFichaPacienteSim;
+    float abriuFichaPacienteNao;
+
+    // Bogus
+    float bogusPresente;
+    float bogusAusente;
+    
+    // Hesitação no Diagnóstico
+    float hesitacaoDiagnosticoPresente;
+    float hesitacaoDiagnosticoAusente;
+
+    // Hesitação na Conduta
+    float hesitacaoCondutaPresente;
+    float hesitacaoCondutaAusente;
+    
+    // Confiança
+    float confiancaBaixa;
+    float confiancaMedia;
+    float confiancaAlta;
+   
+    private LogExecucao logExecucao;
+    
+    
+    public NegociacaoPedagogica(long idSessao, Paciente paciente) {
+        logExecucao = new LogExecucao(idSessao, paciente.getCaso().getId(), paciente.getRede().getId());
+        System.out.println(logExecucao);
+    }
     
 }