clinsoft augusto josé edson guedes guilherme oikawa paulo roberto

31
ClinSOFT Augusto José Edson Guedes Guilherme Oikawa Paulo Roberto

Upload: internet

Post on 19-Apr-2015

114 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ClinSOFT Augusto José Edson Guedes Guilherme Oikawa Paulo Roberto

ClinSOFT

Augusto JoséEdson GuedesGuilherme OikawaPaulo Roberto

Page 2: 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

Page 3: ClinSOFT Augusto José Edson Guedes Guilherme Oikawa Paulo Roberto

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.

Page 4: ClinSOFT Augusto José Edson Guedes Guilherme Oikawa Paulo Roberto

Casos de usoProjeto 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.

Page 5: ClinSOFT Augusto José Edson Guedes Guilherme Oikawa Paulo Roberto

Casos de usoVisã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;

Page 6: ClinSOFT Augusto José Edson Guedes Guilherme Oikawa Paulo Roberto

Casos de usoProjeto de Caso de Uso5.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.

Page 7: ClinSOFT Augusto José Edson Guedes Guilherme Oikawa Paulo Roberto

Diagrama de Classes

Page 8: ClinSOFT Augusto José Edson Guedes Guilherme Oikawa Paulo Roberto

ProcuraConsulta<<Protocol>>

dadosConsulta (void)

procurarConsulta (void)

(from Protocolos)

TelaProcurarConsulta

procurarConsulta()

+ / procuraConsulta

<<Capsule>>

(from GUI)

+ / procuraConsulta

<<Port>>

+ / procuraConsulta

<<Port>>

Fachada

procurarConsulta()visualizarHorario()cadastrarPaciente()marcarConsulta()

+ / procuraConsulta

<<Capsule>> + / procuraConsulta

<<Port>>

+ / procuraConsulta

<<Port>>

ControladorProcurarConsulta

procurarConsulta()

(from Consultas)

1

1

CadastroConsultas

procurar()inserir()getConsultas()existe()

(from Consultas)

1

1

IRepositorioConsultas

procurar()inserir()

getConsultas()existe()

(from Consultas)

11

RepositorioConsultasOracle

procurar()inserir()getConsultas()existe()

(from Consultas)

Paciente

ID : IntegerCPF : Stringnome : Stringnascimento : Date

(from Pacientes)

Consulta

ID : Integerqueixa : Stringobservacoes : Stringprognostico : String

(from Consultas)

0..*

1

1

1

Horario

dataHoraInicio : DateTimedataHoraFim : DateTime

(from Consultas)

1

1

1

1

1

1

1 1

1

0..*

1

1

1

1

Page 9: ClinSOFT Augusto José Edson Guedes Guilherme Oikawa Paulo Roberto

Diagrama de Seqüência

Page 10: ClinSOFT Augusto José Edson Guedes Guilherme Oikawa Paulo Roberto

/ usuarioR1 : Usuario

/ telaProcurarConsultaR1 : TelaProcurarConsulta

/ fachadaR1 : Fachada

/ controladorProcurarConsultaR1... : ControladorProcurarConsulta...

/ cadastroConsultasR1... : CadastroConsultas... / iRepositorioConsultasR1

: IRepositorioConsultas

/ repositorioConsultasOracleR1... : RepositorioConsultasOracle...

procurarConsulta(dadosConsulta)procurarConsulta(dadosConsulta)

consulta = procurarConsulta(dadosConsulta)consulta = procurarConsulta(dadosConsulta)

procurarConsulta(dadosConsulta)procurarConsulta(dadosConsulta)

procurar(dadosConsulta)procurar(dadosConsulta)procurar(dadosConsulta)procurar(dadosConsulta)procurar(dadosConsulta)procurar(dadosConsulta)

(consulta != null) VisualizarConsulta(consulta)(consulta != null) VisualizarConsulta(consulta)

Page 11: ClinSOFT Augusto José Edson Guedes Guilherme Oikawa Paulo Roberto

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.

Page 12: ClinSOFT Augusto José Edson Guedes Guilherme Oikawa Paulo Roberto

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.

Page 13: ClinSOFT Augusto José Edson Guedes Guilherme Oikawa Paulo Roberto

SubsistemasSubsistema 1 – Planos de Saúde• Diagrama de Classes• Diagrama de Seqüência

Page 14: ClinSOFT Augusto José Edson Guedes Guilherme Oikawa Paulo Roberto

SubsistemasDiagrama de Classes

ISubsistemaComunicacaoPlanosSaude

validarUsuarioPlanoSaude()

FachadaComunicacaoPlanosSaude

validarUsuarioPlanoSaude()

ControladorValidarUsuarioPlanoSaude

validarUsuarioPlanoSaude()isValido()

1

1

CadastroUsuariosPlanoSaude

procurar()

1

1

IRepositorioUsuariosPlanoSaude

procurar()

1

1

RepositorioUsuariosPlanoSaudeOracle

procurar()

UsuarioPlanoSaude

ID : IntegerCPF : Stringnome : Stringnascimento : Date

0..*

1

DadosPlanoSaudeUsuario

CNPJ : Stringsituacao : String

1

1

1

1

1

1

1

1

1

0..*

1

1

Page 15: ClinSOFT Augusto José Edson Guedes Guilherme Oikawa Paulo Roberto

SubsistemasDiagrama de Seqüência

/ qualquerClienteR1 : QualquerCliente

/ fachadaComunicacaoPlanosSaudeR1... : FachadaComunicacaoPlanosSaude...

/ controladorValidarUsuarioPlanoSaudeR1... : ControladorValidarUsuarioPlanoSaude...

/ cadastroUsuariosPlanoSaudeR1... : CadastroUsuariosPlanoSaude... / iRepositorioUsuariosPlanoSaudeR1...

: IRepositorioUsuariosPlanoSaude...

/ repositorioUsuariosPlanoSaudeOracleR1... : RepositorioUsuariosPlanoSaudeOracle...

validarUsuarioPlanoSaude(dadosPaciente, dadosPlano)validarUsuarioPlanoSaude(dadosPaciente, dadosPlano)

validarUsuarioPlanoSaude(dadosPaciente, dadosPlano)validarUsuarioPlanoSaude(dadosPaciente, dadosPlano)

usuarioPlano = procurar(dadosPaciente)usuarioPlano = procurar(dadosPaciente)

procurar(dadosPaciente)procurar(dadosPaciente)

procurar(dadosPaciente)procurar(dadosPaciente)

dadosValidos = isValido(usuarioPlano, dadosPlano)dadosValidos = isValido(usuarioPlano, dadosPlano)

dadosValidosdadosValidos

Page 16: ClinSOFT Augusto José Edson Guedes Guilherme Oikawa Paulo Roberto

SubsistemasSubsistema 2 – Hospitais• Diagrama de Classes• Diagrama de Seqüência

Page 17: ClinSOFT Augusto José Edson Guedes Guilherme Oikawa Paulo Roberto

SubsistemasDiagrama de Classes

ISubsistemaComunicacoHospitais

validarConsulta()

IRepositorioConsultas

procurar()inserir()getConsultas()existe()

(from Consultas)RepositorioConsultasOracle

procurar()inserir()getConsultas()existe()

(from Consultas)

Horario

dataHoraInicio : DateTimedataHoraFim : DateTime

(from Consultas)

Consulta

ID : Integerqueixa : Stringobservacoes : Stringprognostico : String

(from Consultas)

0..*

1

0..*

1

1

1

1

1

Paciente

ID : IntegerCPF : Stringnome : Stringnascimento : Date

(from Pacientes)

1

1

1

1

FachadaComuncacaoHospitais

validarConsulta()

ControladorValidarConsultaHospital

validarConsulta()

CadastroConsultas

procurar()inserir()getConsultas()existe()

(from Consultas)

1

1

1

1

Page 18: ClinSOFT Augusto José Edson Guedes Guilherme Oikawa Paulo Roberto

Subsistemas Diagrama de Seqüência

/ repositorioConsultasOracleR1 : RepositorioConsultasOracle

/ iRepositorioConsultasR1......

/ cadastroConsultasR1 : CadastroConsultas

/ controladorValidarConsultaHospitalR1... : ControladorValidarConsultaHospital...

/ fachadaComuncacaoHospitaisR1... : FachadaComuncacaoHospitais...

/ qualquerClienteR1 : QualquerCliente

validarConsulta(consulta)validarConsulta(consulta)

validarConsulta(consulta)validarConsulta(consulta)

existeConsulta = existe(consulta)existeConsulta = existe(consulta)existe(consulta)existe(consulta) existe(consulta)existe(consulta)

isValida = !existeConsultaisValida = !existeConsulta

Page 19: ClinSOFT Augusto José Edson Guedes Guilherme Oikawa Paulo Roberto

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

Page 20: ClinSOFT Augusto José Edson Guedes Guilherme Oikawa Paulo Roberto

CápsulasTelaMarcarConsulta

+ / portaFachada : ProtocoloTelaMarcarConsulta~

+ / portaFachada : ProtocoloTelaMarcarConsulta~

# / timer : Timing# / timer : Timing

Page 21: ClinSOFT Augusto José Edson Guedes Guilherme Oikawa Paulo Roberto

CápsulasTelaMarcarConsulta

Aguardando EsperandoDados

Initial

solicitaMarcacao

finaliza

Initial

solicitaMarcacao

finaliza

Page 22: ClinSOFT Augusto José Edson Guedes Guilherme Oikawa Paulo Roberto

CápsulasFachada

+ / portaControladorMarcarConsulta : ProtocoloFachada~

+ / portaFachada : ProtocoloTelaMarcarConsulta

+ / portaControladorMarcarConsulta : ProtocoloFachada~

+ / portaFachada : ProtocoloTelaMarcarConsulta

Page 23: ClinSOFT Augusto José Edson Guedes Guilherme Oikawa Paulo Roberto

CápsulasFachada

AguardandoSolicitacao EsperandoDados

Initial

solicitaMarcacao

recebeConfirmacao

Initial

solicitaMarcacao

recebeConfirmacao

Page 24: ClinSOFT Augusto José Edson Guedes Guilherme Oikawa Paulo Roberto

CápsulasControladorMarcarConsulta

+ / portaComunicacaoPlanos : ProtocoloControladorMarcarConsulta~

+ / portaComunicacaoHospitais : ProtocoloControladorMarcarConsulta~

+ / portaFachada : ProtocoloControladorMarcarConsulta

+ / portaComunicacaoPlanos : ProtocoloControladorMarcarConsulta~

+ / portaComunicacaoHospitais : ProtocoloControladorMarcarConsulta~

+ / portaFachada : ProtocoloControladorMarcarConsulta

Page 25: ClinSOFT Augusto José Edson Guedes Guilherme Oikawa Paulo Roberto

CápsulasControladorMarcarConsulta

Aguardando

ComunicandoSubsistemas

EsperandoHospitais

EsperandoPlanos

Initial

recebeuDadosHospitaisrecebeuDadosPlanos

recebeuDadosPlanosrecebeuDadosHospitais

recebeuSolicitacao

Initial

recebeuDadosHospitaisrecebeuDadosPlanos

recebeuDadosPlanosrecebeuDadosHospitais

recebeuSolicitacao

Page 26: ClinSOFT Augusto José Edson Guedes Guilherme Oikawa Paulo Roberto

CápsulasComunicacaoHospitais

+ / portaControladorMarcarConsulta : ProtocoloComunicacaoHospitais

+ / portaControladorMarcarConsulta : ProtocoloComunicacaoHospitais

Page 27: ClinSOFT Augusto José Edson Guedes Guilherme Oikawa Paulo Roberto

CápsulasComunicacaoHospitais

EsperandoComunicacao

EsperandoHospitalBEsperandoHospitalA

ComunicandoHospitais

Initial

recebeuSolicitacao

recebeuDadosHospitalB

recebeuDadosHospitalA

recebeuDadosHospitalA

recebeuDadosHospitalB

Initial

recebeuSolicitacao

recebeuDadosHospitalB

recebeuDadosHospitalA

recebeuDadosHospitalA

recebeuDadosHospitalB

Page 28: ClinSOFT Augusto José Edson Guedes Guilherme Oikawa Paulo Roberto

CápsulasComunicacaoPlanos

+ / portaControladorMarcarConsulta : ProtocoloComunicacaoPlanos

+ / portaControladorMarcarConsulta : ProtocoloComunicacaoPlanos

Page 29: ClinSOFT Augusto José Edson Guedes Guilherme Oikawa Paulo Roberto

CápsulasComunicacaoPlanos

EsperandoSolicitacao

EsperandoPlano

Initial

recebeuSolicitacao

Initial

recebeuSolicitacaorecebeDadosrecebeDados

Page 30: ClinSOFT Augusto José Edson Guedes Guilherme Oikawa Paulo Roberto

CápsulasDiagrama de estruturas

/ capsulaFachadaR1 : CapsulaFachada

/ capsulaComunicacaoHospitaisR1 : CapsulaComunicacaoHospitais

/ capsulaTelaMarcarConsultaR1 : CapsulaTelaMarcarConsulta

/ capsulaControladorMarcarConsultaR1 : CapsulaControladorMarcarConsulta

/ capuslaComunicacaoPlanosR1 : CapsulaComunicacaoPlanos

+ / portaControladorMarcarConsulta : ProtocoloFachada~

+ / portaFachada : ProtocoloTelaMarcarConsulta

+ / portaControladorMarcarConsulta : ProtocoloComunicacaoHospitais

+ / portaControladorMarcarConsulta : ProtocoloComunicacaoPlanos

+ / portaFachada : ProtocoloTelaMarcarConsulta~

+ / portaComunicacaoPlanos : ProtocoloControladorMarcarConsulta~

+ / portaComunicacaoHospitais : ProtocoloControladorMarcarConsulta~

+ / portaFachada : ProtocoloControladorMarcarConsulta

/ capsulaFachadaR1 : CapsulaFachada

+ / portaControladorMarcarConsulta : ProtocoloFachada~

/ capsulaComunicacaoHospitaisR1 : CapsulaComunicacaoHospitais

/ capsulaTelaMarcarConsultaR1 : CapsulaTelaMarcarConsulta

/ capsulaControladorMarcarConsultaR1 : CapsulaControladorMarcarConsulta

/ capuslaComunicacaoPlanosR1 : CapsulaComunicacaoPlanos

+ / portaFachada : ProtocoloTelaMarcarConsulta

+ / portaControladorMarcarConsulta : ProtocoloComunicacaoHospitais

+ / portaControladorMarcarConsulta : ProtocoloComunicacaoPlanos

+ / portaFachada : ProtocoloTelaMarcarConsulta~

+ / portaComunicacaoPlanos : ProtocoloControladorMarcarConsulta~

+ / portaComunicacaoHospitais : ProtocoloControladorMarcarConsulta~

+ / portaFachada : ProtocoloControladorMarcarConsulta

Page 31: ClinSOFT Augusto José Edson Guedes Guilherme Oikawa Paulo Roberto

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