ImplementaĆ§Ć£o dos registros de Log de eventos!
[simdecs2.git] / src / java / org / ufcspa / simdecs / comunicacao / MetodoConfiancaEtapa.java
1 /*
2  * To change this template, choose Tools | Templates
3  * and open the template in the editor.
4  */
5 package org.ufcspa.simdecs.comunicacao;
6
7 import java.io.PrintWriter;
8 import java.util.Date;
9 import javax.persistence.EntityManager;
10 import javax.servlet.http.HttpServletRequest;
11 import javax.servlet.http.HttpServletResponse;
12 import org.ufcspa.simdecs.entities.Log;
13 import org.ufcspa.simdecs.entities.Paciente;
14 import org.ufcspa.simdecs.entities.SessaoUsuario;
15 import org.ufcspa.simdecs.entities.TipoEventoLog;
16
17 /**
18  *
19  * @author maroni
20  */
21 public class MetodoConfiancaEtapa extends BaseComunicacao {
22
23     @Override
24     protected void executaServico(EntityManager em, HttpServletRequest request, HttpServletResponse response, PrintWriter out) throws Exception
25     {
26         response.setContentType("text/html;charset=UTF-8");
27         
28         response.setContentType("text/xml");
29         response.setHeader("Cache-Control", "no-cache");
30
31         long pIdSessao = Long.parseLong(request.getParameter("idsessao"));
32         String pNivel = request.getParameter("nivelconfianca");
33         String pEtapa = request.getParameter("etapa");
34         long pIdPaciente = Long.parseLong(request.getParameter("idpaciente"));
35         String nivelConfianca;
36         String etapa;
37
38         if (pNivel.toLowerCase().equals("baixo")) {
39             nivelConfianca = Log.CONFIANCA_BAIXA;
40         } else if (pNivel.toLowerCase().equals("medio")) {
41             nivelConfianca = Log.CONFIANCA_MEDIA;
42         } else if (pNivel.toLowerCase().equals("alto")) {
43             nivelConfianca = Log.CONFIANCA_ALTA;
44         } else {
45             return;
46         }
47
48         if (pEtapa.toLowerCase().equals("diagnostico")) {
49             etapa = Log.ETAPA_DIAGNOSTICO;
50         } else if (pEtapa.toLowerCase().equals("investigacao")) {
51             etapa = Log.ETAPA_INVESTIGACAO;
52         } else if (pEtapa.toLowerCase().equals("conduta")) {
53             etapa = Log.ETAPA_CONDUTA;
54         } else {
55             return;
56         }
57
58         // Registra Log
59         SessaoUsuario sessaoUsuario = em.find(SessaoUsuario.class, pIdSessao);
60         if (sessaoUsuario == null) {
61             return;
62         }
63
64         Paciente paciente = em.find(Paciente.class, pIdPaciente);
65         if (paciente == null) {
66             return;
67         }
68
69         if (!em.getTransaction().isActive()) {
70             em.getTransaction().begin();
71         }
72
73         Log log = new Log();
74
75
76         log.setTipo(em.find(TipoEventoLog.class, TipoEventoLog.CONFIANCA_ETAPA));
77         log.setData(new Date());
78         log.setSessaoUsuario(sessaoUsuario);
79
80         log.setRede(paciente.getRede());
81         log.setConfianca(nivelConfianca);
82         log.setEtapa(etapa);
83         log.setPaciente(paciente);
84         log.setCaso(sessaoUsuario.getCaso());
85
86         em.persist(log);
87         em.getTransaction().commit();
88
89         out.println("<xml>");
90
91         out.println("   <nivel_confianca registrado=\"sim\" />");
92         out.println("   <resposta_acao_mediador acao=\"sim\" problema=\"PROBLEMA: " + this.getClass() + "\" mensagem=\"MENSAGEM:" + this.getClass() + "\" />");
93 //            out.println("   <resposta_acao_mediador acao=\"nao\" />");
94
95         out.println("</xml>");
96     }
97 }