Implementação dos registros de Log de eventos!
[simdecs2.git] / src / java / org / ufcspa / simdecs / comunicacao / MetodoGravaLog.java
CommitLineData
5aee716d 1/*
2 * To change this template, choose Tools | Templates
3 * and open the template in the editor.
4 */
5package org.ufcspa.simdecs.comunicacao;
6
5aee716d 7import java.io.PrintWriter;
2f5d1c39 8import java.util.Date;
f6b96b40 9import javax.persistence.EntityManager;
5aee716d 10import javax.servlet.http.HttpServletRequest;
11import javax.servlet.http.HttpServletResponse;
2f5d1c39 12import org.ufcspa.simdecs.entities.*;
5aee716d 13
14/**
15 *
16 * @author maroni
17 */
cff9bc95 18public class MetodoGravaLog extends BaseComunicacao {
2f5d1c39 19
20 private long getIdFromUID(String pUID, String prefixo) {
21 String id = pUID.replaceAll(prefixo, "");
22 id = id.substring(0, id.indexOf(":"));
23 return Long.parseLong(id);
24 }
25
26 private long getIdPacienteFromUID(String pUID) {
27 String id = pUID.substring(pUID.indexOf(":paciente-") + ":paciente-".length());
28 return Long.parseLong(id);
29 }
30
31 private void registraLog(EntityManager em, SessaoUsuario sessaoUsuario, String pUID, boolean desmarcado) {
32
33 // Sintoma vindo de NodoPaciente
34 if (pUID.toLowerCase().startsWith("sintoma-np-")) {
35 NodoPaciente nodoPaciente = em.find(NodoPaciente.class, getIdFromUID(pUID, "sintoma-np-"));
36
37 if (!em.getTransaction().isActive())
38 em.getTransaction().begin();
39
40 Log log = new Log();
41 log.setSessaoUsuario(sessaoUsuario);
42 log.setCaso(sessaoUsuario.getCaso());
43 log.setData(new Date());
44 log.setEtapa(Log.ETAPA_INVESTIGACAO);
45 log.setNodo(nodoPaciente.getNodo());
46 log.setDesmarcado(desmarcado);
47 log.setPaciente(nodoPaciente.getPaciente());
48 log.setRede(nodoPaciente.getPaciente().getRede());
49 log.setTipo(em.find(TipoEventoLog.class, TipoEventoLog.PERGUNTA_SINAL_SINTOMA));
50 log.setDescricao("CLICOU SOBRE SINAL/SINTOMA INDICADO PELO PROFESSOR!");
51 em.persist(log);
52
53 em.getTransaction().commit();
54 }
55
56 // Sintoma vindo de Nodo
57 if (pUID.toLowerCase().startsWith("sintoma-nd-")) {
58 Nodo nodo = em.find(Nodo.class, getIdFromUID(pUID, "sintoma-nd-"));
59 Paciente paciente = em.find(Paciente.class, getIdPacienteFromUID(pUID));
60
61 if (!em.getTransaction().isActive())
62 em.getTransaction().begin();
63
64 Log log = new Log();
65 log.setSessaoUsuario(sessaoUsuario);
66 log.setCaso(sessaoUsuario.getCaso());
67 log.setDesmarcado(desmarcado);
68 log.setData(new Date());
69 log.setEtapa(Log.ETAPA_INVESTIGACAO);
70 log.setNodo(nodo);
71 log.setRede(paciente.getRede());
72 log.setPaciente(paciente);
73 log.setTipo(em.find(TipoEventoLog.class, TipoEventoLog.PERGUNTA_SINAL_SINTOMA));
74 log.setDescricao("CLICOU SOBRE SINAL/SINTOMA NAO INDICADO PELO PROFESSOR!");
75 em.persist(log);
76
77 em.getTransaction().commit();
78 }
79
80 // Exame físico vindo de NodoPaciente
81 if (pUID.toLowerCase().startsWith("exame-fisico-np-")) {
82 NodoPaciente nodoPaciente = em.find(NodoPaciente.class, getIdFromUID(pUID, "exame-fisico-np-"));
83
84 if (!em.getTransaction().isActive())
85 em.getTransaction().begin();
86
87 Log log = new Log();
88 log.setDesmarcado(desmarcado);
89 log.setSessaoUsuario(sessaoUsuario);
90 log.setCaso(sessaoUsuario.getCaso());
91 log.setData(new Date());
92 log.setEtapa(Log.ETAPA_INVESTIGACAO);
93 log.setNodo(nodoPaciente.getNodo());
94 log.setPaciente(nodoPaciente.getPaciente());
95 log.setRede(nodoPaciente.getPaciente().getRede());
96 log.setTipo(em.find(TipoEventoLog.class, TipoEventoLog.SOLICITA_EXAME_FISICO));
97 log.setDescricao("CLICOU SOBRE EXAME FISICO INDICADO PELO PROFESSOR!");
98 em.persist(log);
99
100 em.getTransaction().commit();
101
102 }
103
104 // Exame complementar vindo de NodoPaciente
105 if (pUID.toLowerCase().startsWith("exame-complementar-np-")) {
106 NodoPaciente nodoPaciente = em.find(NodoPaciente.class, getIdFromUID(pUID, "exame-complementar-np-"));
107
108 if (!em.getTransaction().isActive())
109 em.getTransaction().begin();
110
111 Log log = new Log();
112 log.setDesmarcado(desmarcado);
113 log.setSessaoUsuario(sessaoUsuario);
114 log.setCaso(sessaoUsuario.getCaso());
115 log.setData(new Date());
116 log.setEtapa(Log.ETAPA_INVESTIGACAO);
117 log.setNodo(nodoPaciente.getNodo());
118 log.setPaciente(nodoPaciente.getPaciente());
119 log.setRede(nodoPaciente.getPaciente().getRede());
120 log.setTipo(em.find(TipoEventoLog.class, TipoEventoLog.SOLICITA_EXAME_COMPLEMENTAR));
121 log.setDescricao("CLICOU SOBRE EXAME COMPLEMENTAR INDICADO PELO PROFESSOR!");
122 em.persist(log);
123
124 em.getTransaction().commit();
125 }
2f5d1c39 126 // Historico médico
127 if (pUID.toLowerCase().startsWith("historico-medico-")) {
128 Paciente paciente = em.find(Paciente.class, getIdPacienteFromUID(pUID));
129
130 if (!em.getTransaction().isActive())
131 em.getTransaction().begin();
132
133 Log log = new Log();
134 log.setDesmarcado(desmarcado);
135 log.setSessaoUsuario(sessaoUsuario);
136 log.setCaso(sessaoUsuario.getCaso());
137 log.setData(new Date());
138 log.setEtapa(Log.ETAPA_INVESTIGACAO);
139 log.setPaciente(paciente);
140 log.setRede(paciente.getRede());
141 log.setTipo(em.find(TipoEventoLog.class, TipoEventoLog.PERGUNTA_HISTORICO));
142 log.setDescricao("CLICOU SOBRE O HISTORICO INDICADO PELO PROFESSOR!");
143 em.persist(log);
144
145 em.getTransaction().commit();
146 }
147
148 // Diagnostico
149 if (pUID.toLowerCase().startsWith("diagnostico-")) {
cff9bc95 150 Nodo nodo = em.find(Nodo.class, getIdFromUID(pUID, "diagnostico-"));
151 Paciente paciente = em.find(Paciente.class, getIdPacienteFromUID(pUID));
2f5d1c39 152
153 if (!em.getTransaction().isActive())
154 em.getTransaction().begin();
155
156 Log log = new Log();
157 log.setDesmarcado(desmarcado);
158 log.setSessaoUsuario(sessaoUsuario);
159 log.setCaso(sessaoUsuario.getCaso());
160 log.setData(new Date());
161 log.setEtapa(Log.ETAPA_DIAGNOSTICO);
cff9bc95 162 log.setNodo(nodo);
163 log.setPaciente(paciente);
164 log.setRede(paciente.getRede());
2f5d1c39 165 log.setTipo(em.find(TipoEventoLog.class, TipoEventoLog.SELECIONA_DIAGNOSTICO));
166 log.setDescricao("SELECIONOU O DIAGNOSTICO");
167 em.persist(log);
168
169 em.getTransaction().commit();
170 }
171
172 // Conduta
173 if (pUID.toLowerCase().startsWith("conduta-")) {
cff9bc95 174 Nodo nodo = em.find(Nodo.class, getIdFromUID(pUID, "conduta-"));
175 Paciente paciente = em.find(Paciente.class, getIdPacienteFromUID(pUID));
2f5d1c39 176
177 if (!em.getTransaction().isActive())
178 em.getTransaction().begin();
179
180 Log log = new Log();
181 log.setSessaoUsuario(sessaoUsuario);
182 log.setDesmarcado(desmarcado);
183 log.setCaso(sessaoUsuario.getCaso());
184 log.setData(new Date());
185 log.setEtapa(Log.ETAPA_CONDUTA);
cff9bc95 186 log.setNodo(nodo);
187 log.setPaciente(paciente);
188 log.setRede(paciente.getRede());
2f5d1c39 189 log.setTipo(em.find(TipoEventoLog.class, TipoEventoLog.SELECIONA_CONDUTA));
190 log.setDescricao("SELECIONOU A CONDUTA");
191 em.persist(log);
192
193 em.getTransaction().commit();
194 }
195
196 }
cff9bc95 197
198 @Override
199 protected void executaServico(EntityManager em, HttpServletRequest request, HttpServletResponse response, PrintWriter out) throws Exception
200 {
5aee716d 201 response.setContentType("text/html;charset=UTF-8");
cff9bc95 202 response.setContentType("text/xml");
203 response.setHeader("Cache-Control", "no-cache");
f6b96b40 204
cff9bc95 205 long pIdSessao = Long.parseLong(request.getParameter("idsessao"));
206 String pUID = request.getParameter("uid");
207 String pDesmarcado = request.getParameter("desmarcado");
208 boolean desmarcado = false;
f6b96b40 209
cff9bc95 210 if (pDesmarcado != null && !pDesmarcado.equals("")) {
211 desmarcado = true;
212 }
2f5d1c39 213
cff9bc95 214 SessaoUsuario sessaoUsuario = em.find(SessaoUsuario.class, pIdSessao);
215 if (sessaoUsuario == null) {
216 return;
217 }
f6b96b40 218
cff9bc95 219 registraLog(em, sessaoUsuario, pUID, desmarcado);
88cced02 220
cff9bc95 221 out.println("<xml>");
222
223 boolean isPar;
224 if (Integer.parseInt(pUID.substring(pUID.length() - 1)) % 2 == 0) {
225 isPar = true;
226 } else {
227 isPar = false;
5aee716d 228 }
5aee716d 229
5aee716d 230
cff9bc95 231 //if (isPar)
232 // out.println(" <resposta_acao_mediador acao=\"sim\" problema=\"PROBLEMA ORIGINADO PELO MEDIADOR\" mensagem=\"MENSAGEM A CADA ACAO VINDA DO MEDIADOR\" />");
233 //else
234 out.println(" <resposta_acao_mediador acao=\"sim\" problema=\"PROBLEMA: " + this.getClass() + "\" mensagem=\"MENSAGEM:" + this.getClass() + "\" />");
235// out.println(" <resposta_acao_mediador acao=\"nao\" />");
5aee716d 236
cff9bc95 237 out.println("</xml>");
238 }
5aee716d 239}