-
Java
Sistema Atendimento Médico
Avaliação Final da Disciplina: Java na Web
Robson Martins
Prof. MSc. Emilio Celso de Souza
MBA em Desenvolvimento de Aplicações Java - SOA / FIAP
07/11/2011
Download do código-fonte:
Sistema Atendimento Médico (ZIP ~12MB)
Tecnologias empregadas:
- Servlet;
- JSP;
- Rich Faces;
- JSF;
- JPA;
- Banco de Dados MySQL.
Enunciado:
O projeto consiste no desenvolvimento de uma aplicação para a área da saúde, especificamente para clínicas e hospitais. A aplicação deve contemplar o cadastro e a manutenção das informações relacionadas à rotina dos profissionais desta área. As funcionalidades contempladas são descritas a seguir:
- Cadastro de Convênios.
- Cadastro de Médicos e suas especialidades.
- Cadastro de Pacientes.
- Cadastro de Materiais e/ou Medicamentos.
- Cadastro de Tratamentos – para cada atendimento, de acordo com a especialidade, existe uma remuneração por parte do convênio, ou do próprio paciente, se for um atendimento particular. Estes atendimentos devem ser previamente cadastrados, para que o médico o selecione na ocasião do atendimento.
- Agendamento de Pacientes – o usuário (normalmente o atendente) realiza o agendamento do paciente, com um médico em uma determinada área, e para um convênio previamente cadastrado. Convém o paciente informar a especialidade, e o sistema filtrar os médicos disponíveis para a especialidade escolhida.
- Atendimento de Pacientes por Médicos – o paciente pode ser atendido mais de uma vez, mas seu cadastro é único. Neste item o médico deverá preencher o prontuário do paciente. Os prontuários dos pacientes devem estar disponíveis para os próximos médicos, em atendimentos futuros.
- Para cada atendimento, o médico (ou enfermeiro) deve registrar os materiais ou medicamentos utilizados, quando for o caso.
- Faturamento por convênio, por médico – neste item o usuário poderá gerar uma lista dos atendimentos realizados, contendo os valores dos tratamentos e dos materiais/medicamentos utilizados.
Outras funcionalidades poderão ser contempladas, a critério do aluno.
Apresentação
- Dada a descrição acima, usar a criatividade para definir as interfaces e navegabilidade entre as telas.
- Como tecnologias, usar aquelas estudadas em aula. Eventualmente o trabalho pode ser enriquecido com outros recursos visuais (css, animações em flash, etc.). Preferencialmente, utilizar o framework JSF ou Struts, com recursos do Ajax.
- Cuidar para que a aplicação esteja funcionando corretamente, antes da entrega.
- Incluir o script do banco de dados, e um documento explicando o funcionamento, e as orientações para iniciar a aplicação. O código fonte deve ser entregue juntamente com o projeto, para viabilizar a correção.
Sobre a implementação:
A implementação deste projeto foi realizada com o uso de JSF, RichFaces e JPA.
As classes beans são persistidos no banco, e também são classes managed acessíveis pelo RichFaces e JSF.
A classe GenericDAO
é uma classe abstrata que implementa os métodos básicos para acesso ao banco de dados com JPA, e as classes *DAO
são as especializações responsáveis pelo acesso a cada um dos objetos persistidos.
Na classe GenericDAO
existe um atributo debugInfo
que pode ser alterado para true
para imprimir no console as informações de debug (default = false
).
Banco de Dados MySQL:
Para que a aplicação funcione, é necessário restaurar o backup do banco de dados MySQL, que também já contém alguns dados pré-cadastrados.
O schema usado é atmedico
.
O usuário administrador inicial é:
Administrador:
Username: admin
Senha: admin
ou
Emilio Celso de Souza:
Username: esouza
Senha: esouza
Há vários usuários pré-cadastrados no banco. Alguns exemplos:
Atendente:
Lima Duarte
Username: lduarte
Senha: lduarte
Médico:
Carmem Miranda
Username: cmiranda
Senha: cmiranda
Todos os usuários têm a senha igual ao Username.
Notas sobre o funcionamento da aplicação:
Para inicar a aplicação, acesse inicialmente o index.jsp
.
O sistema foi testado no navegador Firefox (3.6), com êxito. Já no Internet Explorer, muitos bugs de JavaScript ocorreram, especialmente na tela de prontuário do paciente, que utiliza muito AJAX (ModalPanels
e ExtendedDataTables
).
Funcionalidades:
O fluxo de operação do sistema é o seguinte:
- Um usuário "administrador" acessa o sistema, podendo manipular os cadastros de convênios, especialidades, médicos, atendentes, administradores, materiais/medicamentos, tratamentos/exames e a tabela de preços.
- Um usuário "atendente" acessa o sistema, podendo manipular o cadastro de pacientes e agendar consultas.
-
Um "médico" acessa o sistema, podendo manipular o prontuário do paciente.
(somente consultas pré-agendadas podem ser adicionadas ao prontuário)
O médico pode adicionar/remover consultas, materiais/medicamentos e tratamentos/exames do prontuário de qualquer paciente. - Um usuário "administrador" acessa o sistema, podendo emitir os relatórios de faturamento por convênio ou por médico.
Notas sobre a tabela de preços:
A tabela de preços define as regras para estipular o valor de um item de saúde:
- O valor do item será o cadastrado para o convênio E especialidade em uso, durante o atendimento;
- Na ausência dessa regra, o valor do item será para a especialidade OU convênio, durante o atendimento;
- Na ausência dessa regra, o valor do item será para quaisquer especialidades e convênios, durante o atendimento;
- Na ausência dessa regra, o valor do item será R$ 0,00.