// Imprime todas as fichas dos medicos da clinica. private static void imprimeHorarioEMedicosClinica() { Iterator<Medico> it = listaDeMedico.iterator(); if (listaDeMedico.isEmpty()) { System.out.println("A clinica nao possui nenhum medico cadastrado"); } while (it.hasNext()) { Medico novoMedico = it.next(); System.out.println("\n" + novoMedico.toString() + "\n" + novoMedico.agendaMedico() + "\n"); } }
private static void testaHorarios(Medico medico1, Medico medico2) { if (listaDeMedico.size() >= 2) { if (medico1.getEspecialidade().equals(medico2.getEspecialidade())) { for (DiaDeTrabalho diaMedico1 : medico1.getDiasDeCirurgia()) { for (DiaDeTrabalho diaMedico2 : medico2.getDiasDeCirurgia()) { if (diaMedico1.getDiaSemana().equals(diaMedico2.getDiaSemana())) { int hora1Entrou = tempoNaClinica(diaMedico1.getEntrou()); int hora2Entrou = tempoNaClinica(diaMedico2.getEntrou()); int hora1Saiu = tempoNaClinica(diaMedico1.getSaiu()); int hora2Saiu = tempoNaClinica(diaMedico2.getSaiu()); if (hora1Entrou > hora2Entrou && hora1Entrou < hora2Saiu) { System.out.println( "ATENCAO\nO medico: " + medico1.getNomeDoMedico() + " e o medico: " + medico2.getNomeDoMedico() + "\nSao da mesma especialidade e estao disponivei para cirurgia no mesmo horario\n"); } else if (hora2Entrou > hora1Entrou && hora2Entrou < hora1Saiu) { System.out.println( "ATENCAO\nO medico: " + medico1.getNomeDoMedico() + " e o medico: " + medico2.getNomeDoMedico() + "\nSao da mesma especialidade e estao disponivei para cirurgia no mesmo horario\n"); } } } } } } }
// Imprime o nome de todos os medicos cadastrados. private static void imprimeNomeMedicosCadastrados() { int cont = 0; Iterator<Medico> it = listaDeMedico.iterator(); while (it.hasNext()) { cont++; Medico proximoMedico = it.next(); if (proximoMedico == null) { continue; } else { System.out.println(cont + " - " + proximoMedico.getNomeDoMedico()); } } }
private static void verificaHoraIgual(Medico medico) { if (listaDeMedico.size() >= 2) { for (int i = 0; i < listaDeMedico.toArray().length; i++) { Medico medico1 = (Medico) listaDeMedico.toArray()[i]; if (!medico.equals(medico1)) { testaHorarios(medico, medico1); } } } }
private static void adicionaHorario() { int opcoes; Medico medico = new Medico(); if (!listaDeMedico.isEmpty()) { do { System.out.println("Escolha qual medico deseja adicionar horario"); imprimeNomeMedicosCadastrados(); System.out.print("> "); opcoes = lerValor(); try { medico = listaDeMedico.get(opcoes - 1); } catch (java.lang.IndexOutOfBoundsException e) { System.out.println("Opcao invalida!"); adicionaHorario(); } System.out.println("1 - Cadastrar horario de atendimento"); System.out.println("2 - Cadastrar horario de cirurgias"); System.out.println("3 - Voltar"); System.out.print("> "); opcoes = lerValor(); switch (opcoes) { case 1: System.out.println("\nEscolha qual dia da semana deseja adicionar horario\n"); imprimeDiaDaSemana(); System.out.print("> "); opcoes = lerValor(); Semana semana1 = Semana.values()[opcoes - 1]; try { medico.addDiasDeExpediente(lerDia(semana1)); System.out.println("Adicionado com sucesso\n"); opcoes = 3; break; } catch (Exception e) { System.out.println("Hora invalida. Tente novamente.\n"); break; } case 2: System.out.println("\nEscolha qual dia da semana deseja adicionar horario\n"); imprimeDiaDaSemana(); System.out.print("> "); opcoes = lerValor(); Semana semana2 = Semana.values()[opcoes - 1]; try { medico.addDiasDeCirurgia(lerDia(semana2)); verificaHoraIgual(medico); System.out.println("Adicionado com sucesso\n"); opcoes = 3; break; } catch (Exception e) { System.out.println("Hora invalida. Tente novamente.\n"); break; } case 3: imprimeHorarioEMedicosClinica(); break; default: System.out.println("Opcao invalida digite novamente!"); break; } } while (opcoes != 3); } else { System.out.println("Nenhum medico cadastrado na clinica"); } }