/* * AddPatologia.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 AddPatoloia, esta clase sera la * encargada de recuperar los datos del formulario "Patologias * Previas" referentes a una nueva patologia, crear los nodos * correspondientes y almacena los valores recogidos, en los * nodos creados, todo ello mediante Dom */ public class AddPatologia extends Action { public boolean addPat(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 NombrePatologia = request.getParameter("NOMBREPATOLOGIA"); String IdPatologia = request.getParameter("IDPATOLOGIA"); String FechaPatologia = request.getParameter("FECHAPATOLOGIA"); //Recuperar un documento de una coleccion XMLResource resource =(XMLResource) col.getResource(dockey); // Convierte a objeto DOM Document doc = (Document) resource.getContentAsDOM(); // Ahora tengo que crear los nodos y asignarles los // valores que hemos tomado del formulario // Para crear los nodos tengo que localizar el nodo // sobre el que va a colgar Node eleNode0 = null; NodeList lista = doc.getElementsByTagName("PatologiasPrevias"); eleNode0 = (Element)lista.item(0); // Una vez localizado creo el nodo y luego lo coloco Element eleNode = doc.createElement ("RegistroPatologia"); Element eleNode1 = doc.createElement ("Diagnostico"); eleNode.appendChild (eleNode1); Element textNode3 = doc.createElement ("FechaDiagnostico"); textNode3.appendChild( doc.createTextNode(FechaPatologia) ); eleNode.appendChild (textNode3); Element eleNode2 = doc.createElement ("NombrePatologia"); eleNode1.appendChild (eleNode2); Element eleNode3 = doc.createElement ("CodigoClinico"); eleNode2.appendChild (eleNode3); Element textNode2 = doc.createElement ("DescripcionCodigoClinico"); textNode2.appendChild( doc.createTextNode(NombrePatologia) ); eleNode2.appendChild (textNode2); Element eleNodev = doc.createElement ("ValorCodigoClinico"); eleNodev.appendChild( doc.createTextNode("null") ); eleNode3.appendChild (eleNodev); Element eleNode4 = doc.createElement ("EsquemaCodigoClinico"); eleNode3.appendChild (eleNode4); Element textNode1 = doc.createElement ("IdEsquemaCodigoClinico"); textNode1.appendChild( doc.createTextNode(IdPatologia) ); eleNode4.appendChild (textNode1); eleNode0.appendChild (eleNode); //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("/InformeAlta/error.jsp?error=" + URLEncoder.encode(e.getMessage()) ); } else { response.sendRedirect("/InformeAlta/error.jsp" ); } } return true; } } e-REdING. Biblioteca de la Escuela Superior de Ingenieros de Sevilla.


GESTIÓN DE INFORMES DE ALTA CON TECNOLOGÃA JAVA Y BASE DE DATOS XML NATIVAS

: Lavado Gómez, Irene
: Ingeniería Telecomunicación
Contenido del proyecto: