/* * EditBioquimica.java * * Proyecto Fin de Carrera 2002/2003 * GESTION DE INFORMES DE ALTA CON TECNOLOGIA JAVA * Y BASE DE DATOS XML NATIVAS */ package InformeAlta; import java.io.*; import java.net.*; import javax.servlet.*; import javax.servlet.http.*; import org.xmldb.api.base.*; import org.xmldb.api.modules.*; import org.xmldb.api.DatabaseManager; import org.w3c.dom.*; /** * @author Irene Lavado Gomez */ /** * Definimos la clase EditBioquimica, esta clase sera la encargada * de recuperar los datos del documento XML almacenado y mandarlos a * la página JSP correspondiente al formulario "Prueba Bioquimica", * todo ello mediante Dom */ public class EditBioquimica extends Action { public boolean editBio(HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException { Collection col= null; try{ // Consigue una instancia collection col = getCollection(request,response); // Recupera el dockey del paciente que estamos rellenando String dockey = request.getParameter("DOCKEY"); // Recuperar un documento de una coleccion: XMLResource resource =(XMLResource) col.getResource(dockey); // Convierte a objeto Dom Document doc = (Document) resource.getContentAsDOM(); // Leo los datos del documento y los almacena en strings para // después enviarlos a la página JSP, para ello usamos las // funciones definidas en la clase BuscaNodos BuscaNodos busca = new BuscaNodos(); String Fecha = busca.getDato1(doc,"FechaTest",2); String Glucosa = busca.getDato1(doc,"ValorCantidad",19); String Urea = busca.getDato1(doc,"ValorCantidad",20); String Creatinina = busca.getDato1(doc,"ValorCantidad",21); String AcidoUrico = busca.getDato1(doc,"ValorCantidad",22); String Colesterol = busca.getDato1(doc,"ValorCantidad",23); String Trigliceridos = busca.getDato1(doc,"ValorCantidad",24); String CPK = busca.getDato1(doc,"ValorCantidad",25); String ProteinaTotal = busca.getDato1(doc,"ValorCantidad",26); String Albumina = busca.getDato1(doc,"ValorCantidad",27); String GOT = busca.getDato1(doc,"ValorCantidad",28); String GPT = busca.getDato1(doc,"ValorCantidad",29); String GGT = busca.getDato1(doc,"ValorCantidad",30); String BilirrubinaTotal = busca.getDato1(doc,"ValorCantidad",31); String BilirrubinaDirecta = busca.getDato1(doc,"ValorCantidad",32); String Fosfatasa = busca.getDato1(doc,"ValorCantidad",33); String Lactico = busca.getDato1(doc,"ValorCantidad",34); String Amilasa = busca.getDato1(doc,"ValorCantidad",35); String Sodio = busca.getDato1(doc,"ValorCantidad",36); String Potasio = busca.getDato1(doc,"ValorCantidad",37); String Fosforo = busca.getDato1(doc,"ValorCantidad",38); String Calcio = busca.getDato1(doc,"ValorCantidad",39); // En el caso de la etiqueta comentario, tenemos que tener // en cuenta, que depende del número de procedimientos que se // hayan introducido, por lo que tenemos que hayar dicho numero NodeList listaproc = doc.getElementsByTagName("Procedimiento"); int numproc = listaproc.getLength(); String Observ = busca.getDato1(doc,"Comentario",2); request.setAttribute("Glucosa",Glucosa); request.setAttribute("Urea",Urea); request.setAttribute("Creatinina",Creatinina); request.setAttribute("AcidoUrico",AcidoUrico); request.setAttribute("Colesterol",Colesterol); request.setAttribute("CPK",CPK); request.setAttribute("ProteinaTotal",ProteinaTotal); request.setAttribute("Albumina",Albumina); request.setAttribute("GOT",GOT); request.setAttribute("GPT",GPT); request.setAttribute("GGT",GGT); request.setAttribute("BilirrubinaTotal",BilirrubinaTotal); request.setAttribute("BilirruninaDirecta",BilirrubinaDirecta); request.setAttribute("Fosfatasa",Fosfatasa); request.setAttribute("Lactico",Lactico); request.setAttribute("Amilasa",Amilasa); request.setAttribute("Sodio",Sodio); request.setAttribute("Potasio",Potasio); request.setAttribute("Fosforo",Fosforo); request.setAttribute("Calcio",Calcio); request.setAttribute("Observ",Observ); // Almacenar el documento resource.setContentAsDOM(doc); col.storeResource(resource); } catch (IOException e) { System.out.println(e); } catch ( Exception e) { e.printStackTrace(); // Si la respuesta es committed no hay mucho más que se pueda hacer if (response.isCommitted()) return true; // Toma la excepción y envia al usuario a la página de error if (e.getMessage() != null ) { response.sendRedirect("/Addressbook/error.jsp?error=" + URLEncoder.encode(e.getMessage()) ); } else { response.sendRedirect("/Addressbook/error.jsp" ); } } return true; } }