ClinSOFT Augusto José Edson Guedes Guilherme Oikawa Paulo Roberto Roteiro • • • • • Descrição Projeto de Caso de Uso Projeto dos Subsistemas Projeto das Cápsulas Referências Descrição O ClinSoft tem como principais metas: • Gerenciar a marcação de consultas dentro de uma clínica médica; • Facilitar o atendimento de um paciente. Casos de uso Projeto de Caso de Uso • Caso de Uso escolhido: [RF_04] Procurar Consulta • Projeto: – Visão do caso de uso; – Diagrama de Classes; – Diagrama de Seqüência. Casos de uso Visão do Caso de Uso • Descrição: Funcionalidade que permite o acesso a uma lista de consultas cadastradas no sistema, de acordo com parâmetros (filtros) informados pelo ator. • Fluxo Principal: 1.O ator acessa a tela de busca de consultas; 2.O ator informa dados para refinar a busca (filtros da busca); 3.O ator clica em procurar; 4.O sistema procura as consultas que atendem aos parâmetros informados; Casos de uso Projeto de Caso de Uso 5.O sistema exibe uma lista com dados gerais das consultas encontradas, incluindo links para detalhamento de cada consulta e também edição ou cancelamento. • Fluxo Secundário: - No passo 5, o sistema informa que não existem consultas marcadas que atendem aos parâmetros especificados na pesquisa. Diagrama de Classes Diagrama de Seqüência / telaProcurarConsultaR1 : TelaProcurarConsulta / fachadaR1 : Fachada / controladorProcurarConsultaR1 ... / cadastroConsultasR1 ... : ControladorProcurarConsulta ... : CadastroConsultas ... / iRepositorioConsultasR1 : IRepositorioConsultas / repositorioConsultasOracleR1 ... : RepositorioConsultasOracle ... / usuarioR1 : Usuario procurarConsulta(dadosConsulta) consulta = procurarConsulta(dadosConsulta) procurarConsulta(dadosConsulta) procurar(dadosConsulta) procurar(dadosConsulta) (consulta != null) VisualizarConsulta(consulta) procurar(dadosConsulta) Projeto dos Subsistemas • 2 Subsistemas: – Comunicação com os planos de saúde: verificar se já existe uma consulta marcada para o paciente na rede de hospitais e clínicas credenciadas para o dia informado na tentativa de marcação da consulta. Caso não exista uma consulta para o paciente informado no mesmo horário da consulta que se deseja marcar, a marcação é, então, confirmada. Projeto dos Subsistemas − Comunicação com hospitais e clínicas conveniados: validar os dados do paciente junto ao plano de saúde no momento da marcação de uma consulta. Dados de identificação do paciente e do plano de saúde do mesmo são enviados ao subsistema, que verifica a autenticidade das informações e a validade do plano de saúde do paciente. Subsistemas Subsistema 1 – Planos de Saúde • Diagrama de Classes • Diagrama de Seqüência Subsistemas Diagrama de Classes Subsistemas Diagrama de Seqüência / fachadaComunicacaoPlanosSaudeR1 ... / controladorValidarUsuarioPlanoSaudeR1 ... / cadastroUsuariosPlanoSaudeR1 ... / repositorioUsuariosPlanoSaudeOracleR1 ... : FachadaComunicacaoPlanosSaude ... : ControladorValidarUsuarioPlanoSaude ... : CadastroUsuariosPlanoSaude ... / iRepositorioUsuariosPlanoSaudeR1 ... ... : RepositorioUsuariosPlanoSaudeOracle : IRepositorioUsuariosPlanoSaude ... / qualquerClienteR1 : QualquerCliente validarUsuarioPlanoSaude(dadosPaciente, dadosPlano) validarUsuarioPlanoSaude(dadosPaciente, dadosPlano) usuarioPlano = procurar(dadosPaciente) procurar(dadosPaciente) procurar(dadosPaciente) dadosValidos = isValido(usuarioPlano, dadosPlano) dadosValidos Subsistemas Subsistema 2 – Hospitais • Diagrama de Classes • Diagrama de Seqüência Subsistemas Diagrama de Classes Subsistemas Diagrama de Seqüência / fachadaComuncacaoHospitaisR1 ... / controladorValidarConsultaHospitalR1 ... / cadastroConsultasR1 : FachadaComuncacaoHospitais ... : ControladorValidarConsultaHospital ... : CadastroConsultas / iRepositorioConsultasR1 ... ... / repositorioConsultasOracleR1 : RepositorioConsultasOracle / qualquerClienteR1 : QualquerCliente validarConsulta(consulta) validarConsulta(consulta) existeConsulta = existe(consulta) isValida = !existeConsulta existe(consulta) existe(consulta) Projeto das Cápsulas • O caso de uso escolhido para o projeto de cápsulas foi o Marcar Consulta • Marcar consulta envolve 2 subsistemas acessados concorrentemente: o de planos de saúde e o de hospitais • Recebem como resposta booleanos de confirmação Cápsulas TelaMarcarConsulta + / portaFachada : ProtocoloTelaMarcarConsulta~ # / timer : Timing Cápsulas TelaMarcarConsulta Initial solicitaMarcacao Aguardando EsperandoDados finaliza Cápsulas Fachada + / portaFachada : ProtocoloTelaMarcarConsulta + / portaControladorMarcarConsulta : ProtocoloFachada~ Cápsulas Fachada Initial AguardandoSolicitacao recebeConfirmacao solicitaMarcacao EsperandoDados Cápsulas ControladorMarcarConsulta + / portaComunicacaoPlanos : ProtocoloControladorMarcarConsulta~ + / portaComunicacaoHospitais : ProtocoloControladorMarcarConsulta~ + / portaFachada : ProtocoloControladorMarcarConsulta Cápsulas ControladorMarcarConsulta Initial Aguardando recebeuSolicitacao ComunicandoSubsistemas recebeuDadosHospitais recebeuDadosPlanos recebeuDadosPlanos recebeuDadosHospitais EsperandoHospitais EsperandoPlanos Cápsulas ComunicacaoHospitais + / portaControladorMarcarConsulta : ProtocoloComunicacaoHospitais Cápsulas ComunicacaoHospitais Initial EsperandoComunicacao recebeuDadosHospitalA recebeuDadosHospitalB EsperandoHospitalA recebeuSolicitacao EsperandoHospitalB recebeuDadosHospitalA recebeuDadosHospitalB ComunicandoHospitais Cápsulas ComunicacaoPlanos + / portaControladorMarcarConsulta : ProtocoloComunicacaoPlanos Cápsulas ComunicacaoPlanos Initial EsperandoSolicitacao recebeDados recebeuSolicitacao EsperandoPlano Cápsulas Diagrama de estruturas / capsulaTelaMarcarConsultaR1 + / portaFachada : CapsulaTelaMarcarConsulta : ProtocoloTelaMarcarConsulta~ + / portaFachada : ProtocoloTelaMarcarConsulta / capsulaFachadaR1 : CapsulaFachada + / portaControladorMarcarConsulta : ProtocoloFachada~ + / portaFachada : ProtocoloControladorMarcarConsulta / capsulaControladorMarcarConsultaR1 : CapsulaControladorMarcarConsulta + / portaComunicacaoHospitais : ProtocoloControladorMarcarConsulta~ + / portaControladorMarcarConsulta : ProtocoloComunicacaoPlanos / capuslaComunicacaoPlanosR1 : CapsulaComunicacaoPlanos + / portaComunicacaoPlanos : ProtocoloControladorMarcarConsulta~ + / portaControladorMarcarConsulta : ProtocoloComunicacaoHospitais / capsulaComunicacaoHospitaisR1 : CapsulaComunicacaoHospitais Referências • Página do Projeto: http://clinsoft.googlepages.com • Texto sobre Análise e Projeto de Sistemas: http://www.inf.ufsc.br/~raul/livro/ • Aulas do curso de Análise e Projeto de Sistemas: http://www.cin.ufpe.br/~if718