From 733f8ea6906d44172b12e024e1a13928a92e8ad8 Mon Sep 17 00:00:00 2001 From: maroni Date: Fri, 27 Apr 2012 14:07:49 -0300 Subject: [PATCH] Nova versao do simulador e tratamento de erros das chamadas. --- .../simdecs/comunicacao/BaseComunicacao.java | 2 + .../simdecs/comunicacao/MetodoRegistraAcao.java | 3 + .../org/ufcspa/simdecs/mediador/LogExecucao.java | 188 ++++++++++++++++++-- .../simdecs/mediador/NegociacaoPedagogica.java | 63 +++++++- 4 files changed, 243 insertions(+), 13 deletions(-) diff --git a/src/java/org/ufcspa/simdecs/comunicacao/BaseComunicacao.java b/src/java/org/ufcspa/simdecs/comunicacao/BaseComunicacao.java index d53fcae..df01da9 100644 --- a/src/java/org/ufcspa/simdecs/comunicacao/BaseComunicacao.java +++ b/src/java/org/ufcspa/simdecs/comunicacao/BaseComunicacao.java @@ -85,6 +85,8 @@ public abstract class BaseComunicacao extends HttpServlet { out.println(" "); out.println(" " ); out.println("" ); + + e.printStackTrace(); } finally { out.close(); } diff --git a/src/java/org/ufcspa/simdecs/comunicacao/MetodoRegistraAcao.java b/src/java/org/ufcspa/simdecs/comunicacao/MetodoRegistraAcao.java index 8236de6..dbfd2b9 100644 --- a/src/java/org/ufcspa/simdecs/comunicacao/MetodoRegistraAcao.java +++ b/src/java/org/ufcspa/simdecs/comunicacao/MetodoRegistraAcao.java @@ -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(""); out.println(" "); // out.println(" "); diff --git a/src/java/org/ufcspa/simdecs/mediador/LogExecucao.java b/src/java/org/ufcspa/simdecs/mediador/LogExecucao.java index bec9433..dbdbd6e 100644 --- a/src/java/org/ufcspa/simdecs/mediador/LogExecucao.java +++ b/src/java/org/ufcspa/simdecs/mediador/LogExecucao.java @@ -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 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(); confiancaAtual = ""; - abriuFichaPaciente = false; + concluiuInvestigacao = concluiuDiagnostico = concluiuConduta = encerrouCaso = abriuFichaPaciente = false; em = DbUtil.getInstance().getEntityManager(); - Iterator itLog = em.createQuery("From log where log.sessao.id=:pIDSessao order by log.data") + Iterator 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 itNodoProf = em.createQuery("Select nodo From NodoPaciente where paciente.id in (select id from Paciente where caso.id=:pIDCaso") + Iterator 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 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 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 + '}'; + + } + } diff --git a/src/java/org/ufcspa/simdecs/mediador/NegociacaoPedagogica.java b/src/java/org/ufcspa/simdecs/mediador/NegociacaoPedagogica.java index ff07a06..0595dd3 100644 --- a/src/java/org/ufcspa/simdecs/mediador/NegociacaoPedagogica.java +++ b/src/java/org/ufcspa/simdecs/mediador/NegociacaoPedagogica.java @@ -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); + } } -- 1.7.6.4