*/
package org.ufcspa.simdecs.comunicacao;
-import java.io.IOException;
import java.io.PrintWriter;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
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.*;
*
* @author maroni
*/
-public class MetodoIniciaCaso extends HttpServlet {
+public class MetodoIniciaCaso extends BaseComunicacao {
private String getPerguntaNodo(Long idNodo) {
EntityManager em = DbUtil.getInstance().getEntityManager();
return "";
}
- protected void processRequest(HttpServletRequest request, HttpServletResponse response)
- throws ServletException, IOException {
+ @Override
+ protected void executaServico(EntityManager em, HttpServletRequest request, HttpServletResponse response, PrintWriter out) throws Exception
+ {
response.setContentType("text/html;charset=UTF-8");
- PrintWriter out = response.getWriter();
- try {
- EntityManager em = DbUtil.getInstance().getEntityManager();
- Caso caso = em.find(Caso.class, Long.parseLong(request.getParameter("idcaso")));
+ Caso caso = em.find(Caso.class, Long.parseLong(request.getParameter("idcaso")));
-
- if (!em.getTransaction().isActive())
- em.getTransaction().begin();
-
- // Cria sessao
- SessaoUsuario sessaoUsuario = new SessaoUsuario();
- sessaoUsuario.setData(new Date());
- sessaoUsuario.setCaso(caso);
- em.persist(sessaoUsuario);
- em.flush();
-
- // Logo inicio do caso.
- Log log = new Log();
- log.setTipo(em.find(TipoEventoLog.class, TipoEventoLog.INICIO_CASO));
- log.setCaso(caso);
- log.setData(new Date());
- log.setSessaoUsuario(sessaoUsuario);
-
-
- em.persist(log);
-
-
- em.getTransaction().commit();
-
-
- out.println("<caso uid=\"caso-" + caso.getId() + "\" sessao=\"" + sessaoUsuario.getId() + "\" titulo=\"" + caso.getNome() + "\" modelo=\"" + caso.getModelo() + "\" descricaoAmbiente=\"" + caso.getTextoInicial() + "\">");
-
- Iterator<Paciente> itPac = em.createQuery("From Paciente where caso.id=:pIdCaso")
- .setParameter("pIdCaso", caso.getId())
- .getResultList()
- .iterator();
- while(itPac.hasNext()) {
- Paciente paciente = itPac.next();
- out.println(" <ator uid=\"paciente-" + paciente.getId() + "\" tipo=\"paciente\" nome=\"" + paciente.getNome() + "\" modelo=\"" + paciente.getModelo() + "\" idade=\"" + paciente.getIdade() + "\" peso=\"" + paciente.getPeso() + "\" altura=\"" + paciente.getAltura() + "\" >");
-
- out.println(" <etapa uid=\"etapa-1\" nome=\"Investigação\" sequencia=\"1\" tipo=\"investigacao\">");
-
- // Sinais e sintomas
- out.println(" <perguntar_sintoma uid=\"perguntar-sintoma-" + paciente.getId() + "\" descricao=\"Perguntar Sinais/Sintomas\">");
- List<NodoPaciente> nodos = em.createQuery("From NodoPaciente Where paciente.id=:pIDPaciente")
- .setParameter("pIDPaciente", paciente.getId())
- .getResultList();
- for(NodoPaciente nodo : nodos) {
- if (!nodo.getNodo().getTipo().equals(Nodo.SINAL_SINTOMA) && !nodo.getNodo().getTipo().equals(Nodo.HISTORICO))
- continue;
-
- 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
- List<Nodo> nodosNaoSelecionados = em.createQuery("From Nodo Where rede.id=:pIDRede and id not in (Select nodo.id from NodoPaciente Where paciente.id=:pIDPaciente)")
- .setParameter("pIDRede", paciente.getRede().getId())
- .setParameter("pIDPaciente", paciente.getId())
- .getResultList();
- for(Nodo nodo : nodosNaoSelecionados) {
- if (!nodo.getTipo().equals(Nodo.SINAL_SINTOMA) && !nodo.getTipo().equals(Nodo.HISTORICO))
- continue;
-
- 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>");
+ if (!em.getTransaction().isActive()) {
+ em.getTransaction().begin();
+ }
- // Exame Físico
- out.println(" <realiza_exame_fisico uid=\"realiza-exame-fisico-" + paciente.getId() + "\" descricao=\"Realizar Exame Físico\">");
- for(NodoPaciente nodo : nodos) {
- if (!nodo.getNodo().getTipo().equals(Nodo.EXAME_FISICO))
- continue;
-
- 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>");
+ // Cria sessao
+ SessaoUsuario sessaoUsuario = new SessaoUsuario();
+ sessaoUsuario.setData(new Date());
+ sessaoUsuario.setCaso(caso);
+ em.persist(sessaoUsuario);
+ em.flush();
- // Exame Complementar
- out.println(" <solicitar_exames_complementar uid=\"solicitar-exame-complementar-" + paciente.getId() + "\" descricao=\"Solicitar Exame Complementar\">\"");
- for(NodoPaciente nodo : nodos) {
- if (!nodo.getNodo().getTipo().equals(Nodo.EXAME_COMPLEMENTAR))
- continue;
-
- 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=\"\" />");
+ // Logo inicio do caso.
+ Log log = new Log();
+ log.setTipo(em.find(TipoEventoLog.class, TipoEventoLog.INICIO_CASO));
+ log.setCaso(caso);
+ log.setData(new Date());
+ log.setSessaoUsuario(sessaoUsuario);
+
+
+ em.persist(log);
+
+
+ em.getTransaction().commit();
+
+
+ out.println("<caso uid=\"caso-" + caso.getId() + "\" sessao=\"" + sessaoUsuario.getId() + "\" titulo=\"" + caso.getNome() + "\" modelo=\"" + caso.getModelo() + "\" descricaoAmbiente=\"" + caso.getTextoInicial() + "\">");
+
+ Iterator<Paciente> itPac = em.createQuery("From Paciente where caso.id=:pIdCaso").setParameter("pIdCaso", caso.getId()).getResultList().iterator();
+ while (itPac.hasNext()) {
+ Paciente paciente = itPac.next();
+ out.println(" <ator uid=\"" + paciente.getId() + "\" tipo=\"paciente\" nome=\"" + paciente.getNome() + "\" modelo=\"" + paciente.getModelo() + "\" idade=\"" + paciente.getIdade() + "\" peso=\"" + paciente.getPeso() + "\" altura=\"" + paciente.getAltura() + "\" >");
+
+ out.println(" <etapa uid=\"etapa-1\" nome=\"Investigação\" sequencia=\"1\" tipo=\"investigacao\">");
+
+ // Sinais e sintomas
+ out.println(" <perguntar_sintoma uid=\"perguntar-sintoma-" + paciente.getId() + "\" descricao=\"Perguntar Sinais/Sintomas\">");
+ List<NodoPaciente> nodos = em.createQuery("From NodoPaciente Where paciente.id=:pIDPaciente").setParameter("pIDPaciente", paciente.getId()).getResultList();
+ for (NodoPaciente nodo : nodos) {
+ if (!nodo.getNodo().getTipo().equals(Nodo.SINAL_SINTOMA) && !nodo.getNodo().getTipo().equals(Nodo.HISTORICO)) {
+ continue;
}
- out.println(" </solicitar_exames_complementar>");
-/*
- // historico
- for(NodoPaciente nodo : nodos) {
- if (!nodo.getNodo().getTipo().equals(Nodo.HISTORICO))
- continue;
-
- 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(" <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
+ List<Nodo> nodosNaoSelecionados = em.createQuery("From Nodo Where rede.id=:pIDRede and id not in (Select nodo.id from NodoPaciente Where paciente.id=:pIDPaciente)").setParameter("pIDRede", paciente.getRede().getId()).setParameter("pIDPaciente", paciente.getId()).getResultList();
+ for (Nodo nodo : nodosNaoSelecionados) {
+ if (!nodo.getTipo().equals(Nodo.SINAL_SINTOMA) && !nodo.getTipo().equals(Nodo.HISTORICO)) {
+ continue;
}
-*/
- 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>");
-
- out.println(" <etapa uid=\"etapa-2\" nome=\"Diagnóstico\" sequencia=\"2\" tipo=\"diagnostico\">");
- Iterator<Nodo> itDiagnosticos = em.createQuery("From Nodo where tipo=:pTipo")
- .setParameter("pTipo", Nodo.DIAGNOSTICO)
- .getResultList()
- .iterator();
- while(itDiagnosticos.hasNext()) {
- Nodo nodo = itDiagnosticos.next();
- out.println(" <diagnostico uid=\"diagnostico-" + nodo.getId() + ":paciente-" + paciente.getId() + "\" nome=\"" + nodo.getNomeAmigavel() + "\" falaMedico=\"" + getPerguntaNodo(nodo.getId()) + "\" />");
+
+ 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>");
+
+ // Exame Físico
+ out.println(" <realiza_exame_fisico uid=\"realiza-exame-fisico-" + paciente.getId() + "\" descricao=\"Realizar Exame Físico\">");
+ for (NodoPaciente nodo : nodos) {
+ if (!nodo.getNodo().getTipo().equals(Nodo.EXAME_FISICO)) {
+ continue;
}
- out.println(" </etapa>");
-
- out.println(" <etapa uid=\"etapa-3\" nome=\"Conduta\" sequencia=\"3\" tipo=\"conduta\">");
- Iterator<Nodo> itConduta = em.createQuery("From Nodo where tipo=:pTipo")
- .setParameter("pTipo", Nodo.CONDUTA)
- .getResultList()
- .iterator();
- while(itConduta.hasNext()) {
- Nodo nodo = itConduta.next();
- out.println(" <conduta uid=\"conduta-" + nodo.getId() + ":paciente-" + paciente.getId() + "\" nome=\"" + nodo.getNomeAmigavel() + "\" falaMedico=\"" + getPerguntaNodo(nodo.getId()) + "\" />");
+
+ 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>");
+
+ // Exame Complementar
+ out.println(" <solicitar_exames_complementar uid=\"solicitar-exame-complementar-" + paciente.getId() + "\" descricao=\"Solicitar Exame Complementar\">\"");
+ for (NodoPaciente nodo : nodos) {
+ if (!nodo.getNodo().getTipo().equals(Nodo.EXAME_COMPLEMENTAR)) {
+ continue;
}
- out.println(" </etapa>");
- out.println(" </ator>");
- }
-
-
- out.println("</caso>");
- } finally {
- out.close();
+
+ 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>");
+ /*
+ * // historico for(NodoPaciente nodo : nodos) { if
+ * (!nodo.getNodo().getTipo().equals(Nodo.HISTORICO)) continue;
+ *
+ * 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" + ":paciente-" + paciente.getId() + "\" dependencia=\"\" descricao=\"Histórico Médico\" historico=\"" + paciente.getHistorico() + "\" imagem=\"\" som=\"\" video=\"\" />");
+
+
+ out.println(" </etapa>");
+
+ out.println(" <etapa uid=\"etapa-2\" nome=\"Diagnóstico\" sequencia=\"2\" tipo=\"diagnostico\">");
+ Iterator<Nodo> itDiagnosticos = em.createQuery("From Nodo where tipo=:pTipo").setParameter("pTipo", Nodo.DIAGNOSTICO).getResultList().iterator();
+ while (itDiagnosticos.hasNext()) {
+ Nodo nodo = itDiagnosticos.next();
+ out.println(" <diagnostico uid=\"diagnostico-" + nodo.getId() + ":paciente-" + paciente.getId() + "\" nome=\"" + nodo.getNomeAmigavel() + "\" falaMedico=\"" + getPerguntaNodo(nodo.getId()) + "\" />");
+ }
+ out.println(" </etapa>");
+
+ out.println(" <etapa uid=\"etapa-3\" nome=\"Conduta\" sequencia=\"3\" tipo=\"conduta\">");
+ Iterator<Nodo> itConduta = em.createQuery("From Nodo where tipo=:pTipo").setParameter("pTipo", Nodo.CONDUTA).getResultList().iterator();
+ while (itConduta.hasNext()) {
+ Nodo nodo = itConduta.next();
+ out.println(" <conduta uid=\"conduta-" + nodo.getId() + ":paciente-" + paciente.getId() + "\" nome=\"" + nodo.getNomeAmigavel() + "\" falaMedico=\"" + getPerguntaNodo(nodo.getId()) + "\" />");
+ }
+ out.println(" </etapa>");
+ out.println(" </ator>");
}
- }
- // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
- /**
- * Handles the HTTP
- * <code>GET</code> method.
- *
- * @param request servlet request
- * @param response servlet response
- * @throws ServletException if a servlet-specific error occurs
- * @throws IOException if an I/O error occurs
- */
- @Override
- protected void doGet(HttpServletRequest request, HttpServletResponse response)
- throws ServletException, IOException {
- processRequest(request, response);
- }
- /**
- * Handles the HTTP
- * <code>POST</code> method.
- *
- * @param request servlet request
- * @param response servlet response
- * @throws ServletException if a servlet-specific error occurs
- * @throws IOException if an I/O error occurs
- */
- @Override
- protected void doPost(HttpServletRequest request, HttpServletResponse response)
- throws ServletException, IOException {
- processRequest(request, response);
+ out.println("</caso>");
}
- /**
- * Returns a short description of the servlet.
- *
- * @return a String containing servlet description
- */
- @Override
- public String getServletInfo() {
- return "Short description";
- }// </editor-fold>
}