ClinSOFT Augusto José Edson Guedes Guilherme Oikawa Paulo Roberto.

31
ClinSOFT Augusto José Edson Guedes Guilherme Oikawa Paulo Roberto

Transcript of ClinSOFT Augusto José Edson Guedes Guilherme Oikawa Paulo Roberto.

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