Boa tarde a todos. Estou com o seguinte problema no desenvolvimento de uma aplicação hospitalar
No cadastro de internação tenho uma lista de pacientes, quando carrego o paciente ele me informa os convenios que ele pode usar atraves de uma função AJAX. A partir desse combo de convenios a hora que ele seleciona 1 eu preciso carregar os tipos de quarto que ele pode usar, mais ele não tá fazendo isso.
Vou colocar o código aqui. Alguém sabe o pq????
Meu Servletpackage sinthos.ctr;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import sinthos.bean.Cid;
import sinthos.bean.ConvenioPaciente;
import sinthos.bean.ConvenioPacienteTipoQuarto;
import sinthos.bean.Funcionario;
import sinthos.bean.Internacao;
import sinthos.bean.Medico;
import sinthos.bean.Procedencia;
import sinthos.bean.TipoAlta;
import sinthos.bean.TipoInternacao;
import sinthos.dao.CidDAO;
import sinthos.dao.ConvenioPacienteDAO;
import sinthos.dao.ConvenioPacienteTipoQuartoDAO;
import sinthos.dao.FuncionarioDAO;
import sinthos.dao.InternacaoDAO;
import sinthos.dao.MedicoDAO;
import sinthos.dao.ProcedenciaDAO;
import sinthos.dao.TipoAltaDAO;
import sinthos.dao.TipoInternacaoDAO;
public class InternacaoCTR extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet {
static final long serialVersionUID = 1L;
public InternacaoCTR() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//Define o tipo de resposta
response.setContentType("text/html; charset=iso-8859-1");
Internacao internacao = new Internacao();
InternacaoDAO daoInternacao = new InternacaoDAO();
//Cria a lista de funcionários
FuncionarioDAO daoFuncionario = new FuncionarioDAO();
List<Funcionario> listaFuncionario = daoFuncionario.getTodosFuncionarios();
request.setAttribute("listaFuncionario", listaFuncionario);
//Cria a lista de médicos
MedicoDAO daoMedico = new MedicoDAO();
List<Medico> listaMedico = daoMedico.getTodosMedicos();
request.setAttribute("listaMedico", listaMedico);
//Cria a lista de Pacientes que tem convenio
ConvenioPacienteDAO daoConvenioPaciente = new ConvenioPacienteDAO();
List<ConvenioPaciente> listaPacienteComConvenio = daoConvenioPaciente.getPacienteComConvenio();
request.setAttribute("listaPacienteComConvenio", listaPacienteComConvenio);
//Cria a Lista de Tipos de Alta
TipoAltaDAO daoTipoAlta = new TipoAltaDAO();
List<TipoAlta> listaTipoAlta = daoTipoAlta.getTodosTipoAlta();
request.setAttribute("listaTipoAlta", listaTipoAlta);
//Cria a lista de procedencias
ProcedenciaDAO daoProcedencia = new ProcedenciaDAO();
List<Procedencia> listaProcedencia = daoProcedencia.getTodasProcedencia();
request.setAttribute("listaProcedencia", listaProcedencia);
//Cria a lista de Tipos de internação
TipoInternacaoDAO daoTipoInternacao = new TipoInternacaoDAO();
List<TipoInternacao> listaTipoInternacao = daoTipoInternacao.getTodosTipoInternacao();
request.setAttribute("listaTipoInternacao", listaTipoInternacao);
//Cria a lista de CIDs
CidDAO daoCid = new CidDAO();
List<Cid> listaCid = daoCid.getTodosCid();
request.setAttribute("listaCid", listaCid);
//Manda o proximo código para tela
internacao.setCodigoInternacao(daoInternacao.getInternacaoMaxCodigo());
request.setAttribute("internacao", internacao);
//Redireciona para tela
request.getRequestDispatcher("internacao.jsp").forward(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//Define o tipo de resposta
response.setContentType("text/xml; charset=iso-8859-1");
//Cria os objetos e variaveis
Internacao internacao = new Internacao();
InternacaoDAO daoInternacao = new InternacaoDAO();
String acao = request.getParameter("acao");
//Cria a lista de funcionários
FuncionarioDAO daoFuncionario = new FuncionarioDAO();
List<Funcionario> listaFuncionario = daoFuncionario.getTodosFuncionarios();
request.setAttribute("listaFuncionario", listaFuncionario);
//Cria a lista de médicos
MedicoDAO daoMedico = new MedicoDAO();
List<Medico> listaMedico = daoMedico.getTodosMedicos();
request.setAttribute("listaMedico", listaMedico);
//Cria a lista de Pacientes que tem convenio
ConvenioPacienteDAO daoConvenioPaciente = new ConvenioPacienteDAO();
List<ConvenioPaciente> listaPacienteComConvenio = daoConvenioPaciente.getPacienteComConvenio();
request.setAttribute("listaPacienteComConvenio", listaPacienteComConvenio);
//Cria a lista de convenios por paciente
String paciente = request.getParameter("paciente");
PrintWriter selecao = response.getWriter();
List<ConvenioPaciente> listaConvenioPorPaciente = daoConvenioPaciente.getConvenioPorPaciente(paciente);
selecao.println("<convenios>");
for(ConvenioPaciente convenioPaciente : listaConvenioPorPaciente){
selecao.println("<convenio>");
selecao.println("<codigoConvenio>"+convenioPaciente.getCodigoConvenio()+"</codigoConvenio>");
selecao.println("<nome>"+convenioPaciente.getConvenio().getNome()+"</nome>");
selecao.println("</convenio>");
}
selecao.println("</convenios>");
selecao.close();
//Carrega a lista de tipos de quarto por convenio
ConvenioPacienteTipoQuartoDAO daoConvenioPacienteTipoQuarto = new ConvenioPacienteTipoQuartoDAO();
int convenio = Integer.parseInt(request.getParameter("listaConvenio"));
List<ConvenioPacienteTipoQuarto> listaTipoQuartoPorConvenio = daoConvenioPacienteTipoQuarto.getTipoQuartoPorConvenioPaciente(convenio);
selecao.println("<tiposQuarto>");
for(ConvenioPacienteTipoQuarto convenioPacienteTipoQuarto : listaTipoQuartoPorConvenio){
selecao.println("<tipoQuarto>");
selecao.println("<codigoTipoQuarto>"+convenioPacienteTipoQuarto.getCodigoTipoQuarto()+"</codigoTipoQuarto>");
selecao.println("<descricao>"+convenioPacienteTipoQuarto.getTipoQuarto().getDescricao()+"</descricao>");
selecao.println("</tipoQuarto>");
}
selecao.println("</tiposQuarto>");
selecao.close();
//Cria a Lista de Tipos de Alta
TipoAltaDAO daoTipoAlta = new TipoAltaDAO();
List<TipoAlta> listaTipoAlta = daoTipoAlta.getTodosTipoAlta();
request.setAttribute("listaTipoAlta", listaTipoAlta);
//Cria a lista de procedencias
ProcedenciaDAO daoProcedencia = new ProcedenciaDAO();
List<Procedencia> listaProcedencia = daoProcedencia.getTodasProcedencia();
request.setAttribute("listaProcedencia", listaProcedencia);
//Cria a lista de Tipos de internação
TipoInternacaoDAO daoTipoInternacao = new TipoInternacaoDAO();
List<TipoInternacao> listaTipoInternacao = daoTipoInternacao.getTodosTipoInternacao();
request.setAttribute("listaTipoInternacao", listaTipoInternacao);
//Cria a lista de CIDs
CidDAO daoCid = new CidDAO();
List<Cid> listaCid = daoCid.getTodosCid();
request.setAttribute("listaCid", listaCid);
//Recupera da tela
internacao.setCodigoInternacao(Integer.parseInt(request.getParameter("codigo")));
internacao.setDataEntrada(request.getParameter("dataEntrada"));
internacao.setDataSaida(request.getParameter("dataSaida"));
internacao.setHoraEntrada(request.getParameter("horaEntrada"));
internacao.setHoraSaida(request.getParameter("horaSaida"));
internacao.setDataSolicitacao(request.getParameter("dataSolicitacao"));
internacao.setHoraSolicitacao(request.getParameter("horaSolicitacao"));
internacao.setResponsavel(request.getParameter("responsavel"));
internacao.setNumeroGuia(Integer.parseInt(request.getParameter("numeroGuia")));
internacao.setDiagnostico(request.getParameter("diagnostico"));
internacao.setDataAutorizacao(request.getParameter("dataAutorizacao"));
internacao.setDiaria(request.getParameter("diaria"));
internacao.setStatus(request.getParameter("status"));
internacao.setCpfFuncionario(request.getParameter("funcionario"));
internacao.setCpfMedico(request.getParameter("medico"));
internacao.setCpfPaciente(request.getParameter("paciente"));
internacao.setCodigoLeito(Integer.parseInt(request.getParameter("leito")));
internacao.setCodigoTipoAlta(Integer.parseInt(request.getParameter("tipoAlta")));
internacao.setCodigoProcedencia(Integer.parseInt(request.getParameter("procedencia")));
internacao.setCodigoTipoInternacao(Integer.parseInt(request.getParameter("tipoInternacao")));
internacao.setCodigoCid(request.getParameter("cid"));
//Ação dos botões da tela
if(acao.equals("Salvar")){
internacao = daoInternacao.salvarInternacao(internacao);
request.getRequestDispatcher("mensagemOk.jsp").forward(request, response);
}else if(acao.equals("Excluir")){
daoInternacao.excluirInternacao(internacao.getCodigoInternacao());
request.getRequestDispatcher("mensagemOk.jsp").forward(request, response);
}else if(acao.equals("Pesquisar")){
internacao = daoInternacao.getInternacaoPorCodigo(internacao.getCodigoInternacao());
request.setAttribute("internacao", internacao);
request.getRequestDispatcher("internacao.jsp").forward(request, response);
}else{
request.getRequestDispatcher("internacao.jsp").forward(request, response);
}
}
}
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<link rel="stylesheet" type="text/css" href="modelos/estilo.css">
<script type="text/javascript" src="modelos/validacao.js"></script>
<script type="text/javascript" src="modelos/ajax.js"></script>
<c:if test="${internacao==null}">
<script language="javascript">window.location='internacao.do'</script>
</c:if>
<title>SINTHOS - Sistema de Internações Hospitalares</title>
</head>
<body>
<div class="principal">
<div class="cabecalho"></div>
<div class="aba">
<img src="imagens/aba_atendimento1.png" border="0"><a href="cadastros.jsp"><img src="imagens/aba_atendimento2.png" border="0"></a><a href="relatorios.jsp"><img src="imagens/aba_atendimento3.png" border="0"></a>
</div>
<div class="conteudo">
<br/>
<center>
<form name="formInternacao" id="formInternacao" method="post" action="internacao.do">
<table class="style1">
<tr>
<td><font color="red">* </font>Código: </td>
<td><input type="text" lang="1" name="codigo" id="codigo" class="codigo" onkeypress="return campoNumerico(event)" value="${internacao.codigoInternacao }"/></td>
<td><font color="red">* </font>Data Entrada: </td>
<td><input type="text" lang="1" name="dataEntrada" id="dataEntrada" class="dados" maxlength="10" onkeyup="mascaraData(this,event)" onkeypress="return campoNumerico(event)" onblur="validaDataEntrada()" value="${internacao.dataEntrada }"/></td>
<td><font color="red">* </font>Hora Entrada: </td>
<td><input type="text" lang="1" name="horaEntrada" id="horaEntrada" class="dados" maxlength="8" onkeyup="mascaraHora(this)" onkeypress="return campoNumerico(event)" onblur="validaHoraEntrada()" value="${internacao.horaEntrada }"/></td>
<td><font color="red">* </font>Data Solicitação: </td>
<td><input type="text" lang="1" name="dataSolicitacao" id="dataSolicitacao" class="dados" maxlength="10" onkeyup="mascaraData(this,event)" onblur="validaDataSolicitacao()" onkeypress="return campoNumerico(event)" value="${internacao.dataSolicitacao }"/></td>
</tr>
<tr>
<td><font color="red">* </font>Status: </td>
<td>
<select id="status" name="status" lang="1">
<c:choose>
<c:when test="${internacao.status == 'ATIVO' }">
<option value="ATIVO" selected="selected">ATIVO</option>
<option value="INATIVO">INATIVO</option>
</c:when>
<c:when test="${internacao.status == 'INATIVO' }">
<option value="ATIVO">ATIVO</option>
<option value="INATIVO" selected="selected">INATIVO</option>
</c:when>
<c:otherwise>
<option value="SELECIONE" selected="selected">SELECIONE</option>
<option value="ATIVO">ATIVO</option>
<option value="INATIVO">INATIVO</option>
</c:otherwise>
</c:choose>
</select>
</td>
<td>Data Saída: </td>
<td><input type="text" name="dataSaida" id="dataSaida" class="dados" maxlength="10" onkeyup="mascaraData(this,event);" onblur="validaDataSaida()" onkeypress="return campoNumerico(event)" value="${internacao.dataSaida }"/></td>
<td>Hora Saída: </td>
<td><input type="text" name="horaSaida" id="horaSaida" class="dados" maxlength="8" onkeypress="return campoNumerico(event)" onkeyup="mascaraHora(this)" onblur="validaHoraSaida()" value="${internacao.horaSaida }"/></td>
<td><font color="red">* </font>Hora Solicitação: </td>
<td><input type="text" lang="1" name="horaSolicitacao" id="horaSolicitacao" class="dados" maxlength="8" onkeypress="return campoNumerico(event)" onkeyup="mascaraHora(this)" value="${internacao.horaSolicitacao }"/></td>
</tr>
</table>
<table align="left">
<tr>
<td>
<font color="red">* </font>Tipo de Internação:
<select name="tipoInternacao" id="tipoInternacao" lang="1">
<c:forEach items="${listaTipoInternacao }" var="tipoInternacao">
<option value="${tipoInternacao.codigoTipoInternacao }" <c:if test="${internacao != null && internacao.tipoInternacao.codigoTipoInternacao == tipoInternacao.codigoTipoInternacao }">selected</c:if>>
${tipoInternacao.descricao }
</option>
</c:forEach>
</select>
</td>
<td align="center"><input type="submit" class="botao" name="acao" value="mapaVisual"/></td>
<td>-</td>
<td align="right"><font color="green"><a href="paciente.jsp" style="text-decoration:none; color:green" target="resourse window">Cadastro de Pacientes</a></font></td>
</tr>
</table>
<table class="style1" >
<tr>
<td>
<font color="red">* </font>Paciente:
<br/>
<select name="paciente" id="paciente" lang="1" onchange="carregaConvenios(this.value)">
<option value="">SELECIONE</option>
<c:forEach var="pacienteComConvenio" items="${listaPacienteComConvenio }">
<option value="${pacienteComConvenio.cpf }">${pacienteComConvenio.paciente.nome }</option>
</c:forEach>
</select>
</td>
<td>
Responsável:
<input type="text" name="responsavel" id="responsavel" class="texto" maxlength="50" onchange="this.value=this.value.toUpperCase();" value="${internacao.responsavel }"/>
</td>
<td>
<font color="red">* </font>Médico:
<select name="medico" id="medico" lang="1">
<c:forEach items="${listaMedico }" var="medico">
<option value="${medico.cpf }">
${medico.nome }
</option>
</c:forEach>
</select>
</td>
</tr>
<tr>
<td>
<div id="convenio"><font color="red">* </font>Convênios:<br/><select id="listaConvenio" name="listaConvenio" lang="1" onchange="carregaTiposQuarto(this.value)"></select></div>
</td>
<td>
Diária:
<input type="text" name="diaria" id="diaria" class="texto" maxlength="50" onchange="this.value=this.value.toUpperCase();" value="${internacao.diaria }"/>
</td>
<td>
<font color="red">* </font>Funcionário:
<select name="funcionario" id="funcionario" lang="1">
<c:forEach items="${listaFuncionario }" var="funcionario">
<option value="${funcionario.cpf }">
${funcionario.nome }
</option>
</c:forEach>
</select>
</td>
</tr>
<tr>
<td>
<div id="tipoQuarto"><font color="red">* </font>Tipos de Quarto:<br/><select id="listaTipoQuarto" lang="1"></select></div>
</td>
<td>
Diagnóstico:
<input type="text" name="diagnostico" id="diagnostico" class="texto" maxlength="50" onchange="this.value=this.value.toUpperCase();" value="${internacao.diagnostico }" style="width: 195px"/>
</td>
<td>
<font color="red">* </font>Procedência:
<select name="procedencia" id="procedencia" lang="1">
<c:forEach items="${listaProcedencia }" var="procedencia">
<option value="${procedencia.codigoProcedencia }" <c:if test="${internacao != null && internacao.procedencia.codigoProcedencia == procedencia.codigoProcedencia }">selected</c:if>>
${procedencia.descricao }
</option>
</c:forEach>
</select>
</td>
</tr>
<tr>
<td>
<font color="red">* </font>Quarto:
<select name="quarto" id="quarto" lang="1">
<c:forEach items="${listaQuarto }" var="quarto">
<option value="${quarto.codigotipoquarto }">
${convenioPacienteTipoQuarto.TipoQuarto.descricao }
</option>
</c:forEach>
</select>
</td>
<td>
<font color="red">* </font>Número Guia:
<input type="text" lang="1" name="numeroGuia" id="numeroGuia" class="dados" maxlength="6" onkeypress="return campoNumerico(event)" value="${internacao.numeroGuia }"/>
</td>
<td>
Tipo de Alta:
<br/>
<select name="tipoAlta" id="tipoAlta">
<c:forEach items="${listaTipoAlta }" var="tipoAlta">
<option value="${tipoAlta.codigoTipoAlta }" <c:if test="${internacao != null && internacao.tipoAlta.codigoTipoAlta == tipoAlta.codigoTipoAlta }">selected</c:if>>
${tipoAlta.descricao }
</option>
</c:forEach>
</select>
</td>
</tr>
<tr>
<td>
<font color="red">* </font>Leito:<br/>
<select name="leito" id="leito" lang="1">
</select>
</td>
<td>
<font color="red">* </font>Data da Autorização:
<input type="text" lang="1" name="dataAutorizacao" id="dataAutorizacao" class="dados" maxlength="10" onkeyup="mascaraData(this,event)" onblur="validaDataAutorizacao()" onkeypress="return campoNumerico(event)" value="${internacao.dataAutorizacao }"/>
</td>
<td>
Cid:
<select name="cid" id="cid">
<c:forEach items="${listaCid }" var="cid">
<option value="${cid.codigoCid }" <c:if test="${internacao != null && internacao.cid.codigoCid == cid.codigoCid }">selected</c:if>>
${cid.descricao }
</option>
</c:forEach>
</select>
</td>
</tr>
</table>
<!--<img src="imagens/botaoAnterior.png"> <input type="text" name="navegar" id="navegar" size="4" disabled="disabled"/> <img src="imagens/botaoProximo.png"/>!-->
<table>
<tr>
<td></td>
<td><font color="red">*</font> Campos Obrigatórios.</td>
</tr>
</table>
<table>
<tr>
<td>
<input type="submit" class="botao" name="acao" value="Salvar" onclick="return validaCampoObrigatorio(formInternacao)"/>
<input type="submit" class="botao" name="acao" value="Excluir"/>
<input type="submit" class="botao" name="acao" value="Pesquisar"/>
<input type="submit" class="botao" name="acao" value="Limpar"/>
</td>
</tr>
</table>
</center>
</div>
<br/><br/>
<a href="cadastros.jsp"><img src="imagens/botaoVoltar.png" border="0"/></a> <img align="right" src="imagens/internacao.png"/>
<div class="rodape">Todos os Direitos Reservados - SINTHOS</div>
</div>
</body>
</html>
Meu arquivo ajax
[/code]function ajaxInit(){
var xmlHttp;
try { // Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
} catch (e) { // Internet Explorer
try {
xmlHttp=new ActiveXObject('Msxml2.XMLHTTP');
} catch(e){
try {
xmlHttp=new ActiveXObject('Microsoft.XMLHTTP');
} catch(e){
alert('Seu navegador não suporta o uso de AJAX!');
return false;
}
}
}
return xmlHttp;
}
//---------------------------CARREGA OS CONVENIOS PARA O PACIENTE SELECIONADO--------------------------
function carregaConvenios(paciente) {
objAjax=ajaxInit()
if (objAjax){
url="paciente="+paciente;
url=url+"&sid="+Math.random();
objAjax.open("POST","internacao.do",true);
objAjax.setRequestHeader("Content-Type","application/x-www-form-urlencoded")
objAjax.onreadystatechange=mudaPaciente;
objAjax.send(url);
}
}
function mudaPaciente() {
if (objAjax.readyState==4){
var xml = objAjax.responseXML;
var elementos = xml.getElementsByTagName("convenio");
var listaConvenio = document.getElementById("listaConvenio");
for (i=0; i<=listaConvenio.getElementsByTagName("option").length; i++){
if (listaConvenio.hasChildNodes()){
listaConvenio.removeChild(listaCidade.lastChild)
}
}
if (listaConvenio.hasChildNodes()){
listaConvenio.removeChild(listaConvenio.lastChild)
}
for (i=0; i
nome=elementos[i].getElementsByTagName("nome")[0].firstChild.nodeValue;
// cria a tag
opcao.appendChild(texto);
document.getElementById("listaConvenio").appendChild(opcao);
//cria o evento onchange
}
}
}
//------------------------------------------------------------------------------------------------------
//------------------------CARREGA OS TIPO DE QUARTO DO CONVENIO SELECIONADO-----------------------------
function carregaTiposQuarto(convenio) {
objAjax=ajaxInit()
if (objAjax){
url="convenio="+convenio;
url=url+"&sid="+Math.random();
objAjax.open("POST","internacao.do",true);
objAjax.setRequestHeader("Content-Type","application/x-www-form-urlencoded")
objAjax.onreadystatechange=mudaConvenio;
objAjax.send(url);
}
}
function mudaConvenio() {
if (objAjax.readyState==4){
var xml = objAjax.responseXML;
var elementos = xml.getElementsByTagName("tipoQuarto");
var listaTipoQuarto = document.getElementById("listaTipoQuarto");
for (i=0; i<=listaTipoQuarto.getElementsByTagName("option").length; i++){
if (listaTipoQuarto.hasChildNodes()){
listaTipoQuarto.removeChild(listaTipoQuarto.lastChild)
}
}
if (listaTipoQuarto.hasChildNodes()){
listaTipoQuarto.removeChild(listaTipoQuarto.lastChild)
}
for (i=0; i
descricao=elementos[i].getElementsByTagName("descricao")[0].firstChild.nodeValue;
// cria a tag
opcao.appendChild(texto);
document.getElementById("listaTipoQuarto").appendChild(opcao);
}
}
}
//------------------------------------------------------------------------------------------------------
[code]
Ele da o seguinte ERRO:
xml is null
var elementos = document.getElementsByTagName("tipoQuarto");
Alguém ????