CCCPaste

ControleClinica.java

package imc;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.text.ParseException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.xml.ws.Response;

@WebServlet("/ControleClinica")
public class ControleClinica extends HttpServlet {

	private static final long serialVersionUID = 1L;

	private Clinica clinica = new Clinica("Clinica ADS");

	private Paciente selecionado;
	private String aviso;

	public ControleClinica() {

		if (Paciente.gerador == 0) {
			try {
				deserializar();
			} catch (Exception e) {
				aviso = "Erro buscando dados";
			}
		}

//		Paciente p = new Paciente("Pedro Renan", "26/05/1999", 'M', 65f, 1.75f);
//		Paciente q = new Paciente("John Kim", "27/02/1948", 'M', 69f, 1.82f);
//		Paciente r = new Paciente("Martha Martineau", "18/01/1927", 'F', 51f, 1.63f);
//		Paciente s = new Paciente("Cesar Newton", "23/06/1986", 'M', 81f, 1.84f);
//		Paciente t = new Paciente("Ana Carollyna", "19/03/1999", 'F', 49f, 1.64f);
//		Paciente u = new Paciente("Gary Perez", "23/08/2014", 'M', 14f, 0.88f);
//		Paciente v = new Paciente("John Cox", "26/08/2015", 'M', 11f, 0.80f);
//		Paciente w = new Paciente("Giovanna Barbosa", "04/01/1974", 'F', 64f, 1.69f);
//		
//		 clinica.clear();
//		
//		 clinica.add(p);
//		 clinica.add(q);
//		 clinica.add(r);
//		 clinica.add(s);
//		 clinica.add(t);
//		 clinica.add(u);
//		 clinica.add(v);
//		 clinica.add(w);
//		 
//		 try {
//			serializar();
//		} catch (Exception e) {
//			// TODO Auto-generated catch block
//			e.printStackTrace();
//		}
	}

	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		doPost(request, response);
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		String arquivo = "formClinica.jsp";

		String acao = request.getParameter("acao");

		if ("delete".equals(acao)) {
			String id = request.getParameter("id");

			arquivo = "formClinica.jsp";

			try {

				paciente(Integer.parseInt(id));

				if (selecionado != null) {
					clinica.retira(selecionado);
					this.selecionado = null;
					clinica.getRelatorio();

				}
			} catch (Exception e) {
				aviso = "Erro buscando paciente para deletar;";
			}
		}

		try {
			serializar();

		} catch (Exception e) {
			aviso = "Erro buscando paciente para deletar;";
		}

		RequestDispatcher rd = request.getRequestDispatcher(arquivo);

		rd.forward(request, response);
	}

	public String getRelatorio() {
		return clinica.getRelatorio();
	}

	public void setPaciente(String id) {

		try {
			if (id != null && !"".equals(id.trim())) {
				aviso = "";
				try {
					paciente(Integer.parseInt(id));
				} catch (Exception e) {
					aviso = "Código inválido";
				}
			} else {
				limpa();
			}
		} catch (Exception e) {
			//
		}
	}

	private void limpa() {
		paciente(0);
		aviso = "";
		setNome("");
		setNascimento("");
		setPeso("");
		setAltura("");
		setSexo(" ");
	}

	public void setNovo(String novo) {
		aviso = "";
		if (!"".equals(novo)) {
			this.selecionado = new Paciente(novo, "", '?', 0, 0);
			clinica.add(this.selecionado);
		}
	}

	public String getNomeClinica() {
		return clinica.getNomeClinica();
	}

	public String getAviso() {
		return aviso;
	}

	public Paciente getSelecionado() {
		return this.selecionado;
	}

	public String getNome() {
		return selecionado != null ? selecionado.getNome() : "";
	}

	public String getNascimento() throws ParseException {
		return selecionado != null ? selecionado.getDtNascimento() : "";
	}

	public String getDiagnostico() {
		return selecionado != null ? selecionado.getImc().diagnostico() : "";
	}

	public String getSexo() {
		return selecionado != null ? selecionado.getSexo() + "" : "";
	}

	public void setSexo(String sexo) {
		if (selecionado != null && sexo.length() > 0) {
			char s = sexo.toUpperCase().charAt(0);
			if (s == 'F' || s == 'M') {
				this.selecionado.setSexo(s);
			} else {
				aviso = "Sexo deve ser F ou M";
				clinica.retira(this.selecionado);
				this.selecionado = null;
			}
		}
	}

	public String getImc() {
		return selecionado != null ? selecionado.getImc().calcImc() + "" : "";
	}

	public void setNome(String nome) {

		if (selecionado != null && !"".equals(nome))
			this.selecionado.setNome(nome);
	}

	public void setNascimento(String data) {

		if (selecionado != null && !"".equals(data))
			this.selecionado.setDtNascimento(data);
	}

	public void setPeso(String peso) {
		try {
			if (selecionado != null && !"".equals(peso)) {
				this.aviso = "";
				this.selecionado.setPeso(Float.parseFloat(peso));
			}
		} catch (Exception e) {
			this.aviso = "Valor do peso inválido";
		}
	}

	public String getPeso() {
		return selecionado != null ? this.selecionado.getPeso() + "" : "";
	}

	public String getAltura() {
		return selecionado != null ? this.selecionado.getAltura() + "" : "";
	}

	public void setAltura(String altura) {
		try {
			if (selecionado != null && !"".equals(altura)) {
				this.aviso = "";
				this.selecionado.setAltura(Float.parseFloat(altura));
			}
		} catch (Exception e) {
			this.aviso = "Valor da altura inválida";
			clinica.retira(this.selecionado);
			this.selecionado = null;
		}
	}

	public String getId() {
		return selecionado != null ? selecionado.getId() + "" : "";
	}

	public void serializar() throws Exception {

		if (clinica.getPacientes().size() > 0) {
			FileOutputStream outFile = new FileOutputStream("C:\\Teste\\DadosClinica.dat");
			ObjectOutputStream s = new ObjectOutputStream(outFile);
			s.writeObject(clinica);
			s.close();
		}
	}

	public void setSalvar(String dummy) {
		try {

			serializar();

		} catch (Exception e) {
			aviso = "Erro: " + e.getMessage();
		}
	}

	public void deserializar() throws Exception {

		File file = new File("C:\\Teste\\DadosClinica.dat");

		if (file.exists()) {

			FileInputStream inFile = new FileInputStream("C:\\Teste\\DadosClinica.dat");
			ObjectInputStream d = new ObjectInputStream(inFile);
			clinica = (Clinica) d.readObject();
			d.close();
			clinica.getRelatorio();
			Paciente.setGerador(clinica.pegaMaiorId());
		}
	}

	public void paciente(int idPaciente) {
		selecionado = null;
		if (0 == idPaciente) {
			return;
		}
		aviso = "";
		for (Paciente paciente : clinica.getPacientes()) {

			if (idPaciente == paciente.getId()) {
				selecionado = paciente;
				return;
			}
		}
		this.aviso = "Nao achei o paciente código: " + idPaciente + " " + clinica.getPacientes().size();
	}

}