/* * AddExploracion.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 AddExploracion, esta clase sera la * encargada de recuperar los datos del formulario "Exploracion * Fisica" y almacenarlos en el documento correspondiente al * paciente, todo ello mediante Dom */ public class AddExploracion extends Action { public boolean addExp(HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException { Collection col = null; try { // Consigue una instancia collecion col = getCollection(request,response); // Toma el dockey del paciente que estamos rellenando String dockey = request.getParameter("DOCKEY"); // Tomo los parametros del formulario String index = request.getParameter("INDEX"); String Fecha = request.getParameter("FECHAEXPLOR"); String Peso = request.getParameter("PESO"); String FC = request.getParameter("FC"); String Temp = request.getParameter("TEMP"); String Talla = request.getParameter("TALLA"); String TA = request.getParameter("TA"); String Aspecto = request.getParameter("ASPECTOGENERAL"); String Torax = request.getParameter("TORAX"); String Extremidades = request.getParameter("EXTREMIDADES"); String Cabeza = request.getParameter("CABEZA"); String Abdomen = request.getParameter("ABDOMEN"); String Observ = request.getParameter("OBSERVEXPLOR"); // Recuperar un documento de una coleccion XMLResource resource =(XMLResource) col.getResource(dockey); // Convierte a objeto DOM Document doc = (Document) resource.getContentAsDOM(); // Almacenamos los valores tomados del formulario en // el documento XML correspondiente, usando las funciones // definidas en la clase BuscaNodos BuscaNodos busca = new BuscaNodos(); busca.setDato1(doc,"FechaTest",0,Fecha); busca.setDato1(doc,"ValorCantidad",0,Peso); busca.setDato1(doc,"ValorCantidad",1,FC); busca.setDato1(doc,"ValorCantidad",2,Temp); busca.setDato1(doc,"ValorCantidad",3,Talla); busca.setDato1(doc,"ValorCantidad",4,TA); busca.setDato1(doc,"DescripcionMedida",0,Aspecto); busca.setDato1(doc,"DescripcionMedida",1,Cabeza); busca.setDato1(doc,"DescripcionMedida",2,Torax); busca.setDato1(doc,"DescripcionMedida",3,Abdomen); busca.setDato1(doc,"DescripcionMedida",4,Extremidades); // 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(); busca.setDato1(doc,"Comentario",numproc,Observ); // Por último almacena 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; } }