SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE...

1

Transcript of SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE...

Page 1: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

UNIVERSIDADE REGIONAL DE BLUMENAU

CENTRO DE CIÊNCIAS EXATAS E NATURAIS

CURSO DE SISTEMAS DE INFORMAÇÃO – BACHARELADO

SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE

CONSULTAS CLÍNICAS

PABLO DOS SANTOS ALVES

BLUMENAU 2007

2007/6-08

Page 2: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

PABLO DOS SANTOS ALVES

SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE

CONSULTAS CLÍNICAS

Trabalho de Conclusão de Curso submetido à Universidade Regional de Blumenau para a obtenção dos créditos na disciplina Trabalho de Conclusão de Curso II do curso de Sistemas de Informação - Bacharelado.

Prof. Alexander Roberto Valdameri, Mestre - Orientador

BLUMENAU 2007

2007/6-08

Page 3: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE

CONSULTAS CLÍNICAS

Por

PABLO DOS SANTOS ALVES

Trabalho aprovado para obtenção dos créditos na disciplina de Trabalho de Conclusão de Curso II, pela banca examinadora formada por:

______________________________________________________ Presidente: Prof. Alexander Roberto Valdameri, Mestre – Orientador, FURB

______________________________________________________ Membro: Prof. Ricardo Alencar de Azambuja, Mestre – FURB

______________________________________________________ Membro: Prof. Everaldo Artur Grahl, Mestre – FURB

Blumenau, dia 26 de junho de 2007

Page 4: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

Dedico este trabalho aos meus esforços e à maior fortaleza de minha vida: Vanda Marques, minha mãe.

Page 5: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

AGRADECIMENTOS

À Deus, pela vida, a morte, e às inumeráveis possibilidades de ser e mudar.

À minha mãe Vanda, pelo exemplo e por seu amor.

Aos grandes amigos João Júnior, Valacio e Alexsander, assim como meus irmãos Igor

e Erick, pelo apoio incondicional em todos os momentos.

À namorada Kerolyn, pela inspiração, atenção e paciência nos momentos mais difíceis

no desenvolvimento deste trabalho.

À humanidade e a prospecção da tecnologia, por suas infinitas possibilidades.

Page 6: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

Um homem é um sucesso se pula da cama pela manhã, vai dormir à noite e, nesse meio tempo, faz o que gosta.

Bob Dylan

Page 7: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

RESUMO

Este trabalho apresenta uma aplicação para automatizar o processo de agendamento, confirmação e gerenciamento de consultas clínicas on-line, através de um portal corporativo. O sistema foi concebido para utilização tanto pelos profissionais de uma clínica de fisioterapia, quanto para pacientes. Tem a função principal de permitir o agendamento e confirmação de consultas via Internet, informando os usuários do sistema através do envio de mensagens de notificação. Para gerenciar o aplicativo foi utilizado o servidor de aplicações Java JBoss e container WEB Tomcat. Foi utilizada tecnologia de Portais e Portlets em conjunto com a JSF, implementando por sua vez a arquitetura MVC. Para a camada de Banco de Dados foi utilizada a JPA e EJB 3.0 com o padrão de projeto DAO, e tendo como provedor o framework de persistência objeto relacional Hibernate.

Palavras-chave: Agendamento. Fisioterapia. Portais.

Page 8: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

ABSTRACT

This work presents a tool to automate the process of scheduling, confirmation and management of clinical appointments on-line, through a corporate portal. The system was conceived as much for the usage by professionals of a physiotherapy clinic, as for the patients. It has the main function of allowing the schedule and confirmation of clinical appointments through the Internet, informing the users of the system by sending notification messages. In order to manage the application, the application Java Server Jboss and container WEB Tomcat were used. The technology of Portals and Portlets joined with JSF were also used, implementing the MVC architecture. Concerning the database layer, it was used the JPA and EJB 3.0 with the project pattern DAO, and having as a provider the framework of object relational persistence Hibernate.

Key-words: Scheduling. Physiotherapy. Portals.

Page 9: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

LISTA DE ILUSTRAÇÕES

Figura 1 – Página inicial do Portal Fisioterapia .......................................................................26

Figura 2 – Página inicial do portal Fisioterapia.com................................................................27

Figura 3 – Pacotes dos casos de uso.........................................................................................44

Figura 4 – Casos de uso dos profissionais da clínica ...............................................................45

Figura 5 – Casos de uso dos pacientes .....................................................................................46

Figura 6 – Diagrama de classes de domínio.............................................................................48

Figura 7 – Pacotes do módulo WEB do diagrama de classes de projeto..................................48

Figura 8 – Diagrama de classes do pacote br.com.sagcc.portlets.............................................49

Figura 9 – Diagrama de classes do pacote br.com.sagcc.control .............................................50

Figura 10 – Diagrama de classes do pacote br.com.sagcc.validator ........................................51

Figura 11 – Diagrama de classes do pacote br.com.sagcc.util.mail .........................................52

Figura 12 – Diagrama de classes do pacote br.com.sagcc.util .................................................53

Figura 13 – Diagrama de classes do pacote br.com.sagcc.servlet............................................54

Figura 14 – Pacotes do módulo EJB do diagrama de classes de projeto..................................54

Figura 15 – Diagrama de classes do pacote br.com.sagcc.dao.interfaces ................................55

Figura 16 – Diagrama de classes do pacote br.com.sagcc.dao.ejb...........................................56

Quadro 1 – Trecho do arquivo que contém as regras de navegação para cada Portlet ............60

Quadro 2 – Trecho da classe “Paciente” demonstrando o uso de anotações............................61

Quadro 3 – Arquivo que contém as configurações de conexão com o BD..............................62

Quadro 4 – Arquivo que contém as configurações da JPA e Hibernate ..................................62

Quadro 5 – Trecho de código responsável por localizar todos agendamentos de um paciente63

Quadro 6 – Trecho de código responsável por iniciar uma transação com o BD a fim de

buscar todos agendamentos de um paciente ..........................................................64

Quadro 7 – Consulta declarada para recuperar todos agendamentos de um paciente..............65

Figura 17 – Ilustração do funcionamento do sistema do ponto de vista do usuário.................66

Figura 18 – Página de apresentação do portal ..........................................................................67

Figura 19 – Acesso ao sistema pelo administrador do portal ...................................................67

Figura 20 – Página de administração do portal ........................................................................68

Figura 21 – Cadastro de pacientes pelo administrador do portal .............................................68

Figura 22 – Consulta de pacientes pelo administrador do portal .............................................69

Figura 23 – Resultado da consulta de pacientes pelo administrador do portal.........................69

Page 10: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

Figura 24 – Alteração de um paciente pelo administrador do portal........................................70

Figura 25 – Cadastro de fisioterapeutas pelo administrador do portal .....................................70

Figura 26 – Consulta de fisioterapeutas pelo administrador do portal .....................................71

Figura 27 – Resultado da consulta de fisioterapeutas pelo administrador do portal ................71

Figura 28 – Alteração de um fisioterapeuta pelo administrador do portal ...............................72

Figura 29 – Cadastro de usuários de notificação pelo administrador do portal .......................72

Figura 30 – Consulta de usuários de notificação pelo administrador do portal .......................73

Figura 31 – Resultado da consulta de usuários de notificação pelo administrador do portal...73

Figura 32 – Alteração de um usuário de notificação pelo administrador do portal..................74

Figura 33 – Atalho para o cadastro de um usuário do portal....................................................75

Figura 34 – Lista de usuários cadastrados no portal.................................................................75

Figura 35 – Cadastro de um usuário do portal..........................................................................76

Figura 36 – Cadastro de informações detalhadas de um usuário do portal ..............................76

Figura 37 – Associação de papéis a um usuário do portal........................................................77

Figura 38 – Atalho para acessar as comunidades definidas no portal ......................................78

Figura 39 – Lista de comunidades do portal ............................................................................79

Figura 40 – Lista de usuários de uma comunidade ..................................................................79

Figura 41 – Associação de usuários a uma comunidade..........................................................80

Figura 42 – Visão da agenda de pacientes por mês..................................................................80

Figura 43 – Consulta do paciente da agenda de pacientes .......................................................81

Figura 44 – Associação de um paciente à agenda de pacientes................................................81

Figura 45 – Seleção do mês e ano do agendamento da agenda de pacientes ...........................82

Figura 46 – Visão da agenda de pacientes por ano ..................................................................83

Figura 47 – Agendamentos do dia de um determinado paciente..............................................83

Figura 48 – Lista com todos agendamentos de um determinado paciente ...............................84

Figura 49 – Página de inclusão de um novo agendamento pela agenda de pacientes..............84

Figura 50 – Correio de notificação acessado por um webmail.................................................85

Figura 51 – Página de alteração de um agendamento pela agenda de pacientes......................86

Figura 52 – Consulta de um agendamento cancelado por meio da agenda de pacientes .........87

Figura 53 – Consulta de um agendamento rejeitado pela clínica por meio da agenda de

pacientes ................................................................................................................87

Figura 54 – Consulta de um agendamento confirmado pela clínica por meio da agenda de

pacientes ................................................................................................................88

Figura 55 – Visão da agenda de fisioterapeutas por mês .........................................................88

Page 11: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

Figura 56 – Consulta do fisioterapeuta da agenda de fisioterapeutas ......................................89

Figura 57 –Associação de um fisioterapeuta à agenda de fisioterapeutas................................90

Figura 58 – Seleção do mês e ano do agendamento da agenda de fisioterapeutas...................90

Figura 59 – Visão da agenda de fisioterapeutas por ano e seleção do ano do agendamento ...91

Figura 60 – Agendamentos do dia de um determinado fisioterapeuta .....................................91

Figura 61 – Lista com todos agendamentos de um determinado fisioterapeuta.......................92

Figura 62 – Página de inclusão de um novo agendamento pela agenda de fisioterapeutas .....93

Figura 63 – Página de alteração de um agendamento pela agenda de fisioterapeutas .............93

Figura 64 – Consulta de um agendamento cancelado por meio da agenda de fisioterapeutas.94

Figura 65 – Consulta de um agendamento rejeitado pela clínica por meio da agenda de

fisioterapeutas ........................................................................................................94

Figura 66 – Consulta de um agendamento confirmado pela clínica por meio da agenda de

fisioterapeutas ........................................................................................................95

Figura 67 – Visão da agenda geral por mês .............................................................................95

Figura 68 – Seleção do mês e ano do agendamento da agenda geral .......................................96

Figura 69 – Visão da agenda geral por ano e seleção do ano do agendamento........................96

Figura 70 – Agendamentos do dia listados na agenda geral.....................................................97

Figura 71 – Lista com todos agendamentos .............................................................................97

Figura 72 – Página de inclusão de um novo agendamento pela agenda geral..........................98

Figura 73 – Página de alteração de um agendamento pela agenda geral .................................99

Figura 74 – Consulta de um agendamento cancelado por meio da agenda geral.....................99

Figura 75 – Consulta de um agendamento rejeitado pela clínica por meio da agenda geral..100

Figura 76 – Consulta de um agendamento confirmado pela clínica por meio da agenda geral

.............................................................................................................................100

Figura 77 – Página de apresentação do portal ........................................................................101

Figura 78 – Cadastro de paciente pela página de apresentação do portal ..............................102

Figura 79 – Confirmação de cadastro de paciente pela página de apresentação do portal.....102

Figura 80 – Acesso ao sistema pelo paciente .........................................................................103

Figura 81 – Página de alteração do cadastro do paciente .......................................................103

Figura 82 – Visão da agenda do paciente por mês .................................................................104

Figura 83 – Seleção do mês e ano do agendamento da agenda do paciente...........................104

Figura 84 – Visão da agenda do paciente por ano..................................................................105

Figura 85 – Agendamentos do dia do paciente.......................................................................105

Figura 86 – Lista com todos agendamentos do paciente ........................................................106

Page 12: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

Figura 87 – Página de inclusão de um novo agendamento pela agenda do paciente .............106

Figura 88 – Página de alteração de um agendamento pela agenda do paciente .....................107

Figura 89 – Consulta de um agendamento cancelado por meio da agenda do paciente.........107

Figura 90 – Consulta de um agendamento rejeitado pela clínica por meio da agenda do

paciente ................................................................................................................108

Figura 91 – Consulta de um agendamento confirmado pela clínica por meio da agenda do

paciente ................................................................................................................108

Page 13: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

LISTA DE TABELAS

Tabela 1 - Ferramentas utilizadas na especificação e implementação .....................................57

Tabela 2 - Tecnologias utilizadas na especificação e implementação......................................58

Page 14: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

LISTA DE SIGLAS

AJAX - Asynchronous Javascript And XML

API – Application Programming Interface

ASF - Apache Software Foundation

BD – Banco de Dados

CASE - Computer Aided Software Enginnering

CREFITO - Conselho Regional de Fisioterapia e Terapia Ocupacional

CRUD - Create, Read, Update and Delete

DAO - Data Access Object

EA - Enterprise Architect

EAR – Enterprise Archive

EJB - Enterprise JavaBeans

EJB-QL - Enterprise JavaBeans Query Language

HTML - HyperText Markup Language

HTTP - HyperText Transfer Protocol

IDE - Itegrated Development Environment

JAR – Java Archive

JDBC – Java Database Connectivity

JDK - Java 2 Platform Standard Edition Development Kit

J2EE - Java 2 Platform Enterprise Edition

J2SE - Java 2 Platform Standard Edition

JMS - Java Messaging Service

JNDI - Java Naming and Directory Interface

JPA – Java Persistence API

Page 15: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

JRE - Java Runtime Enviroment

JSR - Java Specification Request

JSF – JavaServer Faces

JSP – JavaServer Pages

JTA - Java Transaction API

JTS - Java Transaction Service

JVM – Java Virtual Machine

LOV – List Of Values

MVC – Model View Controller

OMG - Object Management Group

OO – Orientação a Objetos

PEP – Prontuário Eletrônico do Paciente

POO – Programação Orientada a Objetos

SAGCC – Sistema de Agendamento e Gerenciamento de Consultas Clínicas

SGBD – Sistema de Gerenciamento de Banco de Dados

SMS - Short Message Service

SMTP - Simple Mail Transfer Protocol

SQL - Structured Query Language

TI – Tecnologia da Informação

UML - Unified Modeling Language

URL - Uniform Resource Locator

W3C - World Wide Web Consortium

WAR – WEB Archive

WEB – World Wide Web

XML - eXtensible Markup Language

Page 16: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

SUMÁRIO

1 INTRODUÇÃO..................................................................................................................17

1.1 OBJETIVOS DO TRABALHO ........................................................................................19

1.2 ESTRUTURA DO TRABALHO......................................................................................19

2 FUNDAMENTAÇÃO TEÓRICA....................................................................................21

2.1 INFORMÁTICA EM SAÚDE..........................................................................................21

2.1.1 A Internet e a saúde.........................................................................................................22

2.1.2 A informática e a fisioterapia..........................................................................................23

2.2 PORTAIS DA INTERNET ...............................................................................................24

2.2.1 Portais quanto às funções ................................................................................................24

2.2.2 Portais quanto ao contexto ..............................................................................................25

2.2.3 Portais e a fisioterapia .....................................................................................................26

2.2.4 O portal Liferay...............................................................................................................27

2.2.5 Portlets ............................................................................................................................29

2.3 PADRÕES DE PROJETO DE SOFTWARE....................................................................30

2.3.1 O padrão MVC................................................................................................................31

2.3.2 O padrão DAO ................................................................................................................31

2.3.2.1 Mecanismos de persistência e mapeamento objeto/relacional .....................................32

2.4 TRABALHOS CORRELATOS........................................................................................33

3 DESENVOLVIMENTO DA APLICAÇÃO....................................................................35

3.1 REQUISITOS PRINCIPAIS DO PROBLEMA A SER TRABALHADO.......................35

3.2 ESPECIFICAÇÃO ............................................................................................................43

3.2.1 Diagrama de casos de uso ...............................................................................................43

3.2.2 Diagrama de classes ........................................................................................................47

3.3 IMPLEMENTAÇÃO ........................................................................................................57

3.4 OPERACIONALIDADE DA IMPLEMENTAÇÃO........................................................66

3.4.1 Módulo da clínica de fisioterapia....................................................................................66

3.4.2 Módulo do paciente.......................................................................................................101

3.5 RESULTADOS E DISCUSSÃO ....................................................................................109

4 CONSIDERAÇÕES FINAIS..........................................................................................111

4.1 EXTENSÕES ..................................................................................................................111

REFERÊNCIAS BIBLIOGRÁFICAS ...............................................................................114

Page 17: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

APÊNDICE A – Definição das principais classes..............................................................117

APÊNDICE B – E-mails de notificação..............................................................................129

Page 18: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

17

1 INTRODUÇÃO

A Tecnologia da Informação (TI) é utilizada atualmente no intuito de permitir

dinamizar processos, medida essencial para o sucesso das organizações. Esta realidade é cada

vez mais comum a empresas e profissionais autônomos do segmento da saúde.

O médico e outros profissionais de saúde lidam constantemente com um grande

volume e complexidade de conceitos e procedimentos. Este contato diário, através do acesso e

manipulação da informação, está relacionado diretamente com a qualidade e a eficácia da

assistência ao paciente. Portanto, qualquer solução que ajude esse trabalho passa a ser

essencial, e de uso praticamente obrigatório (SABBATINI, 1999, p. 1). Fez-se necessário, por

conseguinte, o estudo e implementação de sistemas no intuito de melhorar a comunicação,

entendimento e gerenciamento de informações em saúde.

Conforme Costa (2001, p. 29), “a saúde tem um mercado altamente distribuído, que

precisa compartilhar informações e isso é feito atualmente, na maioria das vezes, de forma

manual, principalmente no Brasil, e na maioria dos casos isso ocorre de forma ineficiente.” As

clínicas hoje em um número considerável de casos, contam com meios não automatizados

para controle de tarefas fundamentais.

Uma problemática analisada foi o agendamento e gerenciamento de consultas clínicas.

Em muitas situações este controle é feito de forma manual, através de fichários de papel. O

registro de consultas em papel apresenta diversas limitações, tanto práticas como lógicas,

sendo ineficiente para o armazenamento e organização dos dados (SABATTINI, 1982, p. 15).

Podem-se destacar diversas desvantagens em relação ao registro eletrônico, como: a agenda

pode estar somente num único lugar ao mesmo tempo, elegibilidade, ambigüidade, perda

freqüente da informação, dificuldade de pesquisa coletiva, falta de padronização, dificuldade

de acesso e fragilidade do papel.

Em alguns casos o controle é feito por softwares que não foram desenvolvidos

especificamente para essa finalidade, como por exemplo, utilização de planilhas e documentos

eletrônicos de texto.

Este tipo de prática acaba trazendo certos problemas aos profissionais da saúde, como

dificuldade de manipulação, organização e acesso às informações de consultas dos pacientes.

Uma das principais contribuições à inovação no desenvolvimento de soluções que

pode ser considerada, é a utilização da Internet e seus importantes recursos. Segundo Costa

(2001, p. 30), “a área de saúde, mesmo com o histórico atraso no uso de novas tecnologias,

Page 19: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

18

vem crescentemente aderindo à Internet e fazendo uso desta sob diferentes aspectos, desde

processos administrativos até a assistência ao paciente.”

Portanto, utilizou-se das grandes vantagens trazidas por aplicações WEB, no

desenvolvimento de um aplicativo de agendamento e gerenciamento on-line de consultas

clínicas, eliminando ou reduzindo drasticamente problemas identificados na utilização de

ferramentas não automatizadas.

Um importante aspecto das soluções WEB concebidas atualmente, é a facilidade de

personalização e gerenciamento. Estas características são incorporadas em um conceito

denominado portal corporativo. “Atualmente existem muitos sites na Internet brasileira,

conhecidos como portais (com a função de portas de entrada ou pontos de partida) com

informações exclusivas na área de saúde.” (CARVALHO JUNIOR, 2002, p. 54). Este tipo de

tecnologia agrega informações e serviços, de forma que a maior parte das operações que o

usuário deseja efetuar possa ser feita dentro do portal (SANTOS, 2005, p. 54).

Para desenvolvimento dos aplicativos que são disponibilizados dentro do Portal, por

exemplo, a agenda de consultas, foi necessário uma Application Programming Interface (API)

e um paradigma. Na linguagem de programação Java, essa API e conceito são definidos

através da especificação de Portlets (SANTOS, 2005, p. 54). Portlets são fragmentos

customizáveis de páginas feitas utilizando a HyperText Markup Language (HTML). Esta

tecnologia gera conteúdo interativo e dinâmico de forma personalizada, automatizando o

processo de gerenciamento dos agendamentos clínicos.

Um fator importante considerado no que tange ao desenvolvimento da aplicação, foi a

falta de heterogeneidade em relação aos Sistemas Gerenciadores de Bancos de Dados

(SGBDs), fazendo com que o sistema ficasse dependente do SGBD para o qual foi

desenvolvido. Existia ainda a dificuldade de implementação e manutenção da camada de

persistência1. A fim de solucionar estes problemas utilizou-se o Hibernate como provedor da

Java Persistence API (JPA), que conceitualmente é um framework2 de acesso a banco de

dados, construído na linguagem Java. O mesmo realiza o mapeamento das tabelas do modelo

relacional para classes da linguagem, servindo como uma ponte entre a aplicação e o SGBD.

O controle transacional com o Banco de Dados (BD) foi implementado utilizando a

tecnologia Enterprise JavaBeans 3.0 (EJB 3.0) e o padrão de projeto Data Access Object

(DAO), garantindo uma hierarquia flexível e escalável para a camada de persistência.

1 Denominação de uma ação que consiste em manter em meio físico recuperável, de modo a garantir a permanência das informações em um determinado estado. 2 É uma estrutura de suporte definida em que um outro projeto de software pode ser organizado e desenvolvido.

Page 20: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

19

Ainda focando aspectos de desenvolvimento, a fim de propiciar a divisão de camadas e

garantir a modularidade3 da aplicação, utilizou-se o padrão de projeto Model View Controller

(MVC) que, conforme definição de Lozano (2004, p. 22), “[...] é um padrão pelo qual

componentes de uma aplicação são classificados como componentes de Modelo, Visualização

e Controle.” A utilização de um padrão como o MVC trouxe reusabilidade, extensão e

facilidade de manutenção à aplicação. Este padrão foi implementado de forma robusta pela

utilização do framework Java Server Faces (JSF), que também trouxe a facilidade de

organização do fluxo de navegação entre as diferentes páginas da aplicação.

1.1 OBJETIVOS DO TRABALHO

O objetivo deste trabalho é apresentar um Sistema de Agendamento e Gerenciamento

de Consultas Clínicas (SAGCC), que visa apoiar profissionais da área de fisioterapia através

da automatização de tarefas fundamentais ao exercício de suas profissões.

Os objetivos específicos incluem:

a) disponibilizar funcionalidades de agendamento de consultas clínicas aos pacientes;

b) disponibilizar funcionalidades de agendamento e gerenciamento de consultas

clínicas aos profissionais de uma clínica de fisioterapia.

1.2 ESTRUTURA DO TRABALHO

A seguir será apresentada uma síntese dos quatro capítulos desse trabalho.

O capítulo de introdução apresenta o assunto correspondente à justificativa do

trabalho, seus objetivos específicos e como está disposto o texto em relação à sua

organização.

No segundo capítulo apresenta-se uma fundamentação teórica do tema, além de

apresentar as tecnologias utilizadas para desenvolver o presente trabalho.

3 Propriedade de um sistema que foi decomposto em um conjunto de partes coesas e fracamente acopladas.

Page 21: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

20

O ciclo de vida do trabalho desenvolvido é apresentado no terceiro capítulo, onde se

tem a descrição dos requisitos funcionais, não-funcionais e regras de negócio do sistema,

assim como a apresentação do sistema proposto e do sistema atual. É demonstrada a

especificação do problema e a operacionalidade das páginas do sistema.

As conclusões sobre o desenvolvimento do trabalho, as limitações e sugestões para

trabalhos futuros encontram-se no quarto capítulo.

Page 22: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

21

2 FUNDAMENTAÇÃO TEÓRICA

Neste capítulo procura-se dar uma visão dos principais conceitos, técnicas e

ferramentas abordadas no trabalho, tais como informática em saúde, portais da Internet e

padrões de projeto de software, além de serem apresentados alguns trabalhos correlatos a este.

2.1 INFORMÁTICA EM SAÚDE

A Informática Médica ou Informática em Saúde (do inglês: Medical Informatics) é um

campo de rápido desenvolvimento científico que lida com armazenamento, recuperação e uso

da informação, dados e conhecimentos biomédicos para a resolução de problemas e tomada

de decisão (SHORTLIFFE, 2001, p. 3, tradução nossa).

Sigulem (1997, p. 1), cita que

A primeira aplicação prática da computação relevante para a área da saúde foi o desenvolvimento de um sistema de processamento de dados baseado em cartões perfurados, criado por Herman Hollerith em 1890. Primeiramente utilizado para a realização do censo dos Estados Unidos daquele ano, o sistema foi, logo a seguir, adotado para solucionar problemas nas áreas de epidemiologia e saúde pública.

A utilização dos cartões perfurados foi amadurecida e largamente utilizada nas décadas

de 20 e 30. Somente no final da década de 40 começaram a surgir novas técnicas de

armazenamento de seqüências de instruções (SIGULEM, 1997, p. 1). Nesta época, segundo

Sigulem (1997, p. 1), “Os profissionais da área da ciência da computação desenvolviam

programas em códigos extremamente complexos e eram indivíduos altamente especializados,

com profundo conhecimento sobre a máquina.”

Apenas após a substituição das válvulas por transistores e mais tarde por chips, os

computadores se tornaram acessíveis tanto aos laboratórios de pesquisas das universidades

quanto às empresas. As potencialidades de utilização dessas máquinas eram amplamente

acompanhadas e avaliadas por todas as áreas do conhecimento humano, inclusive a médica.

Seguindo a tendência geral de evolução da computação, os primeiros sistemas de

informação nos serviços de saúde foram desenvolvidos com a implementação de arquiteturas

centralizadas que integravam várias funções em um único sistema. Estes aplicativos

permitiam o controle da instituição, caracterizando os sistemas de informação como simples

Page 23: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

22

gerenciadores de contas a pagar e de cobrança dos pacientes. Esse modelo era de grande

utilidade para os administradores, visto que funcionava de acordo com a abordagem dos

negócios em saúde vigente na época: a preocupação maior então era o controle da captação de

recursos em troca dos serviços de saúde. Os principais investimentos hospitalares em sistemas

de informação não estavam de acordo com a prática da medicina de qualidade, pois tinham o

objetivo financeiro de capturar cada unidade de atividade dos profissionais da saúde para

fazer a cobrança (VIEIRA, 2007).

No entanto, o grande crescimento das técnicas médicas de investigação e tratamento

forçou a reorganização dos provedores de serviços de saúde, visando o controle do custo e da

qualidade de atendimento. Ao mesmo tempo houve uma transformação nos cuidados de

saúde, onde os dados médicos poderiam ser produzidos não apenas no hospital, mas também

na casa do paciente, no consultório ou no local de trabalho.

Com a exigência de um maior compartilhamento de informações entre pacientes e

médicos, esse tipo de relacionamento interligado se transformou praticamente em regra entre

os profissionais da área de saúde e os provedores de recursos de sistemas de informação,

resultando em uma carência por desenvolvimento de sistemas mais complexos e abrangentes

(VIEIRA, 2007). Considerando o contexto tecnológico atual e a importância da informação

para a saúde, faz-se necessário utilizar um recurso indispensável para concepção de tais

sistemas: a Internet.

2.1.1 A Internet e a saúde

Ao longo dos anos a Internet tem influenciado fortemente o mundo dos negócios e o

comércio. Acessar a Internet através de um computador pessoal já se tornou um fato comum

na vida de milhões de pessoas. A grande rede mundial de computadores tem transformado o

dia-dia das pessoas e, principalmente, das empresas e profissionais que as constituem.

A prática médica diária necessita, invariavelmente, de informação para funcionar, sem

a qual é impossível um adequado atendimento ao paciente. Isso torna a saúde uma indústria

altamente dependente de informação. Considerando este contexto, a Internet contribui muito

para informar os profissionais de saúde, permitindo, por exemplo, buscar artigos recentes em

bibliotecas eletrônicas de todo o mundo, atualizando os seus conhecimentos e tendo a

possibilidade de participar de discussões on-line sobre os diversos assuntos da área da saúde.

Além disso, o profissional da saúde pode abrir a sua própria página na Internet, deixando os

Page 24: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

23

seus conhecimentos e resultados mais recentes à disposição de todas as pessoas que têm

acesso à rede mundial (RODRIGUES, 2007).

Nesse cenário de uma indústria que precisa compartilhar e utilizar francamente a

informação, a Internet surgiu com a possibilidade de dar suporte não só a necessidades de

comunicação e pesquisa, mas também a um novo conjunto de aplicações que antes eram de

difícil realização ou mesmo não existiam. A área de saúde vem crescentemente aderindo à

Internet e fazendo uso desta sob diferentes aspectos, desde processos administrativos até a

assistência ao paciente, como é o caso da telemedicina (COSTA, 2001, p. 30).

Com o amadurecimento de novas tecnologias, e à medida que os protagonistas do

mercado de saúde se conectarem, ocorrerá gradativamente um aumento no número de

usuários desses serviços, levando à redução de custos e maior eficiência do trabalho em saúde

(DARVES, 2006, p. 10).

Observando as diversas ciências em que a saúde está dividida, percebe-se um ator

potencial para utilização de sistemas desenvolvidos com base nestas novas tecnologias: o

fisioterapeuta.

2.1.2 A informática e a fisioterapia

Fisioterapia é o ramo da saúde que estuda, avalia, previne e trata os distúrbios da

cinesia4 humana, decorrentes de alterações de órgãos e sistemas humanos, sendo atualmente

administrada em consultórios, clínicas, centros de reabilitação, asilos, escolas, clubes,

residências, hospitais, empresas, entre outros, tanto por serviços públicos como privados

(FISIOTERAPIA, 2007a).

A presença do fisioterapeuta se faz necessária quanto mais grave é a seqüela do

paciente, criando condições para desenvolvimento do mesmo e evitando o agravamento do

quadro clínico. No intuito de facilitar os meios de integração entre o fisioterapeuta e paciente,

a fisioterapia conta atualmente com um importante instrumento: o computador.

Integrada num processo multidisciplinar a fisioterapia caminhou junto ao avanço da

informática, incentivando, experimentando e obtendo resultados positivos no uso clínico da

computação. A informática a cada dia vem se consolidando na área de fisioterapia como o

mais importante e indispensável instrumento a ser associado a um trabalho de habilitação e

4 Estudo da relação do movimento com a educação, a higiene e a terapêutica

Page 25: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

24

reabilitação do paciente (UNIIFMU-FISIOTERAPIA, 2003, p.12).

A utilização da informática na fisioterapia estende-se desde sistemas administrativos

para controle de contas a pagar e cobrança dos pacientes, a aplicativos de apoio a portadores

de deficiências neuromotoras5 crônicas e avaliação postural computadorizada.

Com a crescente utilização da Internet nas diversas ciências da saúde, a fisioterapia,

mais especificamente as clínicas fisioterapêuticas devido a seu aspecto coorporativo, passou a

contar com um importante meio para obtenção e organização da informação de qualidade,

especializada, de forma rápida e centralizada: os portais.

2.2 PORTAIS DA INTERNET

Um portal é uma página na Internet que reúne diversos serviços e informações, de

forma que a maior parte das operações que o usuário deseja efetuar possa ser feita dentro do

portal, ou pelo menos a partir dele (SANTOS, 2005, p. 54).

Alguns destes serviços são: pesquisa, navegação por categorias, capacidade de

personalização e funções expandidas para outras áreas dos mundos informacionais e

comerciais (DIAS, 2001, p. 51).

Segundo Dias (2001, p. 53), os portais podem ser classificados de duas formas

diferentes: em relação às suas funções (suporte à decisão e/ou processamento coorporativo) e

em relação ao contexto de utilização (público ou coorporativo).

2.2.1 Portais quanto às funções

Quanto à funcionalidade, os portais podem ser subdivididos em portais de suporte à

decisão e portais de processamento coorporativo.

Portais com ênfase em suporte à decisão auxiliam executivos, gerentes e analistas de

negócio a acessar as informações coorporativas para tomada de decisões de negócio. Nesta

categoria estão incluídos os portais de informações ou de conteúdo, capazes de armazenar

Page 26: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

25

grandes repositórios de dados a partir dos temas e assuntos a que o mesmo está direcionado, e

os portais de negócios, que possuem a função principal de tornar disponíveis informações

para tomada de decisão de negócio da instituição (DIAS, 2001, p. 54).

Já os portais com ênfase em processamento cooperativo, lidam com informações tanto

da cadeia produtiva tradicional, armazenadas e manipuladas por aplicativos coorporativos,

como informações geradas por grupos ou indivíduos fora desta cadeia. Nesta divisão são

incluídos portais que utilizam ferramentas cooperativas de trabalho em grupo, e portais

especialistas, que relacionam pessoas com base em sua experiência e habilidades. Conforme

Dias (2001, p. 55), esta categoria de portais é a que menos se desenvolveu no mercado.

Existem portais mais abrangentes que unem as funções de suporte à decisão e

processamento cooperativo, interligando os usuários a todas as informações e pessoas

necessárias para realização dos negócios da empresa.

2.2.2 Portais quanto ao contexto

Devido à variação de propósitos e diferentes grupos de usuários, os portais são

subdivididos em duas categorias enquanto ao contexto de atuação: portais públicos e portais

corporativos. Portais públicos são comumente denominados portais Internet, portais WEB, ou

portais de consumidores. Estes portais trazem ao consumidor uma única interface à imensa

rede de serviços que compõe a Internet, atraindo para seu site o público em geral que navega

na grande rede. Um número maior de consumidores acessando o portal indica um aumento

potencial da probabilidade de que os consumidores comprarão os itens anunciados,

constituindo uma mídia adicional para o marketing de produtos (DIAS, 2001, p. 53).

Portais corporativos se concentram em expor e fornecer informações específicas de

negócio, dentro de determinado contexto, contribuindo para que os usuários dos sistemas

corporativos informatizados encontrem as informações de que precisam para fazer frente aos

concorrentes (REYNOLDS, 1999, p. 30).

O portal corporativo é tido por Collins (1999, p. 55) como o mais importante projeto

de gestão da informação da próxima década.

5 Deficiência neuromotora refere-se à dificuldade ou impossibilidade da realização dos movimentos mais simples por um indivíduo, como por exemplo, caminhar, sentar ou escrever.

Page 27: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

26

2.2.3 Portais e a fisioterapia

Na Internet existem diversos portais voltados à área da fisioterapia, sendo que a

maioria deles enfatiza o contexto de atuação dos portais públicos, ou portais WEB. Estas

páginas assumem a função principal dos portais de informações ou de conteúdo, reunindo a

comunidade de fisioterapeutas em um local específico, onde são disponibilizados materiais e

serviços direcionados, como artigos, cursos e salas de discussão. Como exemplo, existe o site

Portal Fisioterapia (PORTALFISIOTERAPIA, 2007), ilustrado na Figura 1.

Figura 1 – Página inicial do Portal Fisioterapia

Outro portal WEB existente é o Fisioterapia.com (FISIOTERAPIA, 2007b),

demonstrado na Figura 2.

Page 28: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

27

Figura 2 – Página inicial do portal Fisioterapia.com

Portanto, há uma escassez de portais corporativos e de processamento cooperativo

desenvolvidos para a área da fisioterapia.

Para implementação de um portal corporativo que suprisse as necessidades de

agendamento e gerenciamento de consultas clínicas de uma clínica de fisioterapia, optou-se

por utilizar um portal já existente, no intuito de especializá-lo. Existem várias distribuições

livres de portais para download disponíveis na Internet. No desenvolvimento do aplicativo,

utilizou-se o Portal Liferay desenvolvido na linguagem Java.

2.2.4 O portal Liferay

O Liferay é um portal corporativo de código aberto, desenvolvido na linguagem de

programação Java. Liferay (2005b), lista alguns benefícios da utilização deste portal:

a) provê experiência intuitiva e colaborativa aos usuários;

b) consolida, organiza e permite o acesso a todos os dados e aplicações a partir de um

único ponto;

c) aperfeiçoa os investimentos em TI;

d) se adapta as demandas de marketing;

Page 29: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

28

e) provê escalabilidade aos negócios;

Este portal possui vasta documentação disponibilizada em sua página oficial

(LIFERAY, 2007c). Existe também um site para troca de experiências que reúne a

comunidade que utiliza o Liferay (LIFERAYPEDIA, 2007).

O portal Liferay foi desenvolvido com base em tecnologias conceituadas da linguagem

de programação Java. Possui duas distribuições: corporativa e profissional.

A versão profissional é voltada para a concepção de aplicações WEB de menor porte

(LIFERAY, 2007a). Esta distribuição possui embutido o servidor Tomcat da Apache Software

Foundation, que é um servidor capaz de suportar o desenvolvimento e execução, em ambiente

de produção, de aplicações WEB criadas segundo padrões da plataforma Java (LOZANO,

2004, p. 20). O Tomcat possui a função principal de oferecer infra-estrutura para

gerenciamento e execução das tecnologias de Servlets e JavaServer Pages (JSP). Os Servlets e

JSPs possuem a função principal de gerar conteúdo dinâmico em HTML. (LEME, 2004, p.

32).

Já a versão corporativa é utilizada para criação de aplicações robustas, utilizando para

isto tecnologias escaláveis como os Enterprise JavaBeans (EJBs). EJB é um padrão para

desenvolvimento e gerenciamento do lado do servidor (server-side), de componentes

distribuídos em Java. Ele define um acordo (contrato) entre componentes e servidores de

aplicação, possibilitando um componente ser executado em qualquer servidor de aplicação

que esteja de acordo com a especificação6 Java de EJBs (BURKE, 2006, p. 10).

Para utilização do padrão EJB, o portal na versão corporativa foi construído com base

no servidor de aplicações JBoss.

O JBoss é um servidor de aplicações livre baseado na plataforma Java 2 Enterprise

Edition (J2EE), que segundo Burke (2006, p. 567), provê a seguinte pilha de serviços voltados

para o desenvolvimento de aplicações corporativas em Java:

• tecnologias de componentes através dos EJBs.

• persistência com o banco de dados pela JPA.

• troca de mensagens utilizando a Java Messaging Service (JMS).

• gerenciamento de transações utilizando a Java Transaction Service (JTS) e a Java

Transaction API (JTA).

6 Uma definição descrevendo algum aspecto da tecnologia Java, como características da linguagem, edições de plataformas ou APIs, por exemplo.

Page 30: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

29

• gerenciamento e execução de Servlets e JSPs: o JBoss possui o container WEB7

Tomcat embutido.

• provê uma interface de nomes e diretórios através da Java Naming and Directory

Interface (JNDI).

Excluindo o foco tecnológico das distribuições do portal, ambas possuem

essencialmente as mesmas funcionalidades (LIFERAY, 2007a). Para o desenvolvimento do

SAGCC, fez-se necessário utilizar a versão corporativa, pois como será descrito nos próximos

tópicos, um dos requisitos foi a integração com a tecnologia EJB.

A arquitetura do portal Liferay foi construída tendo em vista a utilização da API de

Portlets, que será descrita detalhadamente a seguir.

2.2.5 Portlets

Um Portlet pode ser definido como um componente WEB Java responsável pela

geração dinâmica de um fragmento de página em HTML, e gerenciado por um Portlet

container. Um Portlet container é um componente do portal, responsável por gerenciar e

invocar os Portlets. As tarefas de organização e agregação dos fragmentos dos Portlets são de

responsabilidade do portal (SANTOS, 2005, p. 54).

A API de Portlets é definida pela Java Specification Request 168 (JSR - 168) da Sun

Microsystems, empresa que possui os direitos sobre a linguagem de programação Java. Uma

JSR, segundo Pires (2006, p. 15), é um documento propondo o desenvolvimento de uma nova

especificação Java, ou uma revisão significativa a uma especificação já existente.

O desenvolvimento de Portlets provê uma mudança em como o site deverá gerar o

conteúdo dinâmico. Portlets são concebidos normalmente utilizando as tecnologias de

Servlets ou JSPs. A diferença está na forma em que os Servlets e JSPs são desenvolvidos:

normalmente eles são responsáveis pela geração da página inteira, enquanto que os Portlets

são responsáveis somente pela criação de fragmentos de página relativos à sua área. As

demais áreas do HTML são gerenciadas pelo portal, que incluirá na página resultante o

fragmento gerado por cada Portlet (SANTOS, 2005, p. 55).

Os Portlets podem possuir diferentes estados de janela (window states): normal,

maximizados e minimizados, sendo que a visualização destes estados é controlada pelo portal.

7 Container WEB é uma aplicação responsável pela criação e destruição de Servlets, como também pela

Page 31: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

30

Além dos diferentes estados de janela, os fragmentos de página podem ser renderizados em

três modos predefinidos, sendo estes, visualização, edição e ajuda (SANTOS, 2005, p. 56).

Considerando as características da tecnologia apresentada e os benefícios que esta

poderia trazer para o sistema proposto, optou-se por sua utilização no desenvolvimento do

SAGCC.

Procurando garantir a estruturação do aplicativo, e dividir a lógica de visualização dos

Portlets da lógica de controle e processamento de regras de negócio dos agendamentos de

consultas, assim como o acesso seguro aos dados da clínica de Fisioterapia, o SAGCC foi

desenvolvido utilizando alguns padrões de projeto de software, que serão detalhados na

próxima sessão.

2.3 PADRÕES DE PROJETO DE SOFTWARE

Más escolhas em como desenvolver software, conduzem a sistemas e a componentes

que são frágeis e difíceis de manter, compreender, reutilizar, ou estender. Uma

implementação habilidosa deve estar fundamentada em princípios fundamentais do bom

projeto de software.

Os desenvolvedores experientes em orientação a objetos (OO) em conjunto com outros

desenvolvedores de software, criaram um repertório de princípios gerais e soluções

idiomáticas que os guiam na concepção de sistemas computacionais. Esses princípios e

idiomas, se codificados em um formato estruturado, descrevendo o problema e a solução e

recebendo um nome, podem ser chamados de padrões de projeto de software (LARMAN,

1999, p. 194).

Um padrão de projeto pode ser definido como uma descrição nomeada de um

problema, uma solução, e uma orientação sobre quando aplicar a solução e como aplica-la a

novos casos (LARMAN, 1999, p. 483).

Os padrões apresentam soluções para problemas que ocorrem de maneira semelhante,

mesmo em projetos voltados para áreas completamente diferentes. No caso de padrões de

projeto de software orientado a objetos, tais problemas costumam ser a criação de objetos,

estruturação de classes, modos de acesso a dados, formas de troca de mensagens e outros que

delegação de requisições do protocolo Hypertext Transfer Protocol (HTTP) para Servlets existentes.

Page 32: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

31

se enfrenta de maneira semelhante em diversos sistemas (LARMAN, 1999, p. 52).

Objetivando garantir a separação das camadas do SAGCC, e o encapsulamento da

implementação da camada de banco de dados, buscou-se utilizar os padrões Model View

Controller (MVC) e Data Acess Object (DAO), que serão detalhadamente descritos nos

próximos tópicos.

2.3.1 O padrão MVC

MVC é um padrão onde os componentes de uma aplicação são classificados em

componentes de modelo (model), visualização (view) e controle (control). Componentes de

modelo cuidam do armazenamento e da recuperação de informações, assim como o

processamento de regras de negócio do sistema. Componentes de visualização se limitam a

exibir informações segundo um formato ou layout pré-definido. Os componentes de controle

por sua vez cuidam de interpretar ações do usuário, como cliques e eventos de teclado, por

exemplo, chamando os componentes de modelo ou visualização que devem responder a essas

ações (LOZANO, 2004, p. 22).

Um framework conceituado que provê, dentre outras características, a implementação

da arquitetura MVC é o JavaServer Faces (JSF). Resumidamente, a JSF é uma biblioteca de

tags e classes que facilita a interação de usuários com os elementos de formulários HTML,

provendo também um prático mecanismo de navegação entre as páginas da aplicação. A JSF é

especificada pela JSR–127, permitindo que sejam produzidas ferramentas de desenvolvimento

e componentes de terceiros, o que traz compatibilidade e independência de fornecedor às

aplicações que a utilizam (FAERMAN, 2004, p. 58).

A versão do portal Liferay utilizada no desenvolvimento do SAGCC possui suporte à

JSF, permitindo uma padronização e maior facilidade de implementação dos Portlets, além de

garantir a utilização do padrão MVC. Considerando estas vantagens, a tecnologia JSF foi

adotada na concepção do aplicativo.

2.3.2 O padrão DAO

De forma simplificada, um DAO é um objeto intermediário, responsável pelo acesso a

Page 33: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

32

dados, que encapsula detalhes de um determinado banco de dados, ou de outro mecanismo de

persistência (FAERMAN, 2005, p. 53). A motivação deste padrão é tornar o código de

persistência mais organizado, reutilizável e desacoplado da lógica de negócio.

Uma das grandes vantagens do padrão DAO é a garantia de independência do

mecanismo de persistência8.

2.3.2.1 Mecanismos de persistência e mapeamento objeto/relacional

Os sistemas de persistência mais conceituados em Java são precisamente aqueles que

se distinguem por suportar a persistência sobre objetos de valor, também chamados de Plain

Old Java Objects (POJO), em contraste a outros sistemas que exigem a implementação de

uma série de interfaces (DOEDERLEIN, 2005, p. 25). Segundo Bauer (2007, p. 114), POJOs

são classes Java que implementam métodos de negócio que definem comportamento, e

propriedades que representam estado, sendo que algumas destas propriedades podem ser

outros POJOs pré-definidos.

Estes mecanismos de persistência são capazes de realizar operações de criação,

restauração, atualização e remoção de registros da base de dados que estão relacionados a

qualquer POJO, gerando de forma automática instruções na Structured Query Language

(SQL). Para isso geralmente utilizam arquivos de metadados ou descritores, que especificam

o mapeamento entre tabelas e POJOs, para que seja possível, por exemplo, definir atributos de

um POJO após a leitura de um registro do BD (DOEDERLEIN, 2005, p. 30). Porém, até

então não havia na linguagem Java uma padronização em relação a como os mecanismos de

persistência deveriam ser implementados.

A Java Persistence API (JPA), definida pela JSR-220 (EJB 3.0) padroniza o

mapeamento objeto-relacional na plataforma Java, para desenvolvimento de componentes da

camada de persistência. A JPA é baseada no conceito de POJOs, que incorpora idéias de

conceituados frameworks de persistência. Rocha (2007, p. 29) cita suas principais vantagens:

• modo declarativo de descrever mapeamentos objeto/relacionais.

• provê uma linguagem própria de consulta.

• conjunto de ferramentas para manipular entidades.

Uma das vantagens de se utilizar a JPA é que, por ser um padrão da Sun

Page 34: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

33

Microsystems, existe a possibilidade de diversos fabricantes trabalharem sobre os mesmos

conceitos, e que o desenvolvedor escolha a implementação de sua preferência. Para

implementação da JPA, podem ser utilizados provedores de qualquer fornecedor que esteja de

acordo com a especificação. Portanto, é possível alterar entre fabricantes distintos sem

nenhum esforço adicional. (ROCHA, 2007, p. 29) Utilizando a JPA em conjunto com a

tecnologia EJB 3.0, é possível implementar de forma transparente e descomplicada o controle

transacional e de conexões com o BD.

Atualmente um produto muito utilizado no que tange a mecanismos de mapeamento

objeto/relacional é o Hibernate. Segundo Bauer (2007, p. 4), o Hibernate é um projeto

ambicioso que busca ser eficiente em resolver o problema de gerenciamento de dados em

Java, intermediando a interação do sistema com o BD relacional e deixando o desenvolvedor

livre para se concentrar nos aspectos da aplicação referentes ao negócio. Além das vantagens

citadas, o Hibernate garante a heterogeneidade em relação aos SGBDs, não sendo necessário

codificar instruções para o dialeto do BD que a aplicação foi construída.

A implementação do padrão DAO utilizando as tecnologias citadas proveu à camada

de persistência do SAGCC organização, robustez, reusabilidade e desacoplamento das outras

camadas do sistema.

2.4 TRABALHOS CORRELATOS

Alguns trabalhos similares a este são:

a) a Empresa Reckon Engenharia de Sistemas (2006) possui um serviço que possibilita

o agendamento de consultas por reconhecimento de voz. Quem assina o serviço recebe

um número de telefone exclusivo para sua agenda. Neste número um computador vai

atender a ligação e conversar com o usuário. Assim como sugerido nesta monografia,

salvo que por meio de ligações telefônicas e não pela WEB, é possível agendar, alterar,

confirmar e consultar compromissos ou consultas através da agenda;

b) Siqueira (2004) apresentou um Sistema de Agendamento Universal para a área da

saúde e discutiu o contexto de implantação desta ferramenta na Secretaria de Saúde do

Estado de São Paulo, a fim de garantir a heterogeneidade entre os tipos de

8 Mecanismo utilizado para garantir a persistência de objetos em uma aplicação. Pode ser uma API como a Java Database Connectivity (JDBC), ou um framework de persistência como Hibernate.

Page 35: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

34

agendamento e a emergente necessidade de integração entre elas. O Sistema proposto,

assim como o desta monografia, utiliza a linguagem Java, o servidor Tomcat para

desenvolvimento WEB, o conceito de divisões de camadas (MVC) e diagramas da

Unified Modeling Language (UML);

c) Costa (2001) em sua dissertação de mestrado apresentada à Faculdade de

Engenharia Elétrica e de Computação da Universidade Estadual de Campinas, fala

sobre o Desenvolvimento e Avaliação Tecnológica de um Sistema de Prontuário

Eletrônico do Paciente, Baseado nos Paradigmas da World Wide Web e da Engenharia

de Software. O autor foca o desenvolvimento de um Prontuário Eletrônico do Paciente

(PEP), trazendo considerações relevantes e comuns a esta monografia como utilização

da Internet para produção de soluções em saúde.

Page 36: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

35

3 DESENVOLVIMENTO DA APLICAÇÃO

O presente trabalho resulta na construção de um Sistema de Agendamento e

Gerenciamento de Consultas Clínicas (SAGCC), o qual permite pacientes e profissionais de

uma clínica fisioterapêutica agendar e confirmar consultas pela Internet. Na seqüência serão

apresentados os quatro tópicos do desenvolvimento do trabalho. O primeiro tópico descreve

os requisitos e regras de negócio atendidas pela aplicação. O segundo tópico refere-se à

especificação do sistema, onde são apresentados alguns diagramas na UML visando uma

melhor compreensão do mesmo. O terceiro tópico refere-se a implementação da aplicação,

onde está descrito seu funcionamento, tecnologias utilizadas e operacionalidade da

implementação. No quarto e último tópico são apresentados os resultados obtidos.

3.1 REQUISITOS PRINCIPAIS DO PROBLEMA A SER TRABALHADO

Os requisitos e regras de negócio da aplicação compreendem o levantamento das

funcionalidades e/ou necessidades dos usuários para criação do sistema, definindo suas

características e comportamento. Estes requisitos e regras são no presente trabalho, resultados

de um estudo realizado junto à clínica de fisioterapia Nova Físio.

A Nova Físio surgiu em meados do ano 2000 com a missão de atender pacientes no

diagnostico, prevenção e tratamento das mais variadas disfunções de órgãos humanos. Nos

últimos três anos conta com a administração de Adriana Freygang, que junto a outros sete

fisioterapeutas atendem pacientes de Blumenau e região.

A clínica possui uma infra-estrutura de computadores bastante simples: existe apenas

um micro-computador com acesso discado à Internet, que é utilizado na maior parte do tempo

pela secretária para fazer consultas a informações de pacientes. Através do computador é feito

o cadastro resumido dos pacientes, utilizando uma planilha do software Microsoft Excel. Um

cadastro mais detalhado é feito em fichas de papel. Hoje a clínica possui cerca de mil e

quatrocentos pacientes cadastrados na planilha (ativos ou não). O computador é utilizado

praticamente para este fim, sendo que a Internet é acessada essencialmente para envio de e-

mails à empresa cooperada Unimed. Não existe nenhum tipo de registro de informações dos

fisioterapeutas que trabalham na clínica.

Page 37: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

36

As atividades de agendamento e gerenciamento de consultas clínicas são atualmente

realizadas através de uma ficha de papel que contém tabelas relacionando dias, horários e

pacientes, assim como o status do atendimento: atendido, em caso da consulta já realizada; ou

cancelado, caso o paciente ligue solicitando cancelar o atendimento.

A atendente agrupa as consultas por fisioterapeuta, formando agendas separadas a fim

de controlar colisões de horários. Este agrupamento é feito colocando-se os horários lado a

lado, propondo facilitar a visualização e comparação.

Cerca de 80% dos agendamentos são realizados por telefone, onde o paciente liga

solicitando um horário e a atendente negocia a disponibilidade. Nos outros 20% o

agendamento é feito pessoalmente na clínica. Apesar de ser uma tarefa desempenhada na

maioria das ocasiões pela secretária, os fisioterapeutas também eventualmente manipulam a

agenda de acordo com suas necessidades. Os custos da clínica com serviços de telefonia são

relevantes, considerando os percentuais citados.

Nota-se, portanto, que a falta de automatização dos processos de agendamento e

gerenciamento de consultas clínicas traz vários problemas, como por exemplo, o da agenda

poder estar somente num único lugar ao mesmo tempo, impedindo o acesso simultâneo. O

controle dos atendimentos ser feito através de papel pode causar ilegibilidade, ambigüidade,

perda freqüente da informação devido a fragilidade do material, dificuldade de pesquisa

coletiva, falta de padronização do processo de agendamento, assim como dificuldade de

acesso e manipulação.

Outro fator a ser pontuado é a necessidade de a clínica ter uma atendente disponível a

fim de realizar o agendamento de consultas para os pacientes, assim como a falta de diferentes

possibilidades de confirmação de atendimento, restringindo-se apenas ao contato pessoal ou

uso do telefone.

A Nova Físio não possui hoje nenhum meio para utilização e divulgação de serviços de

atendimento aos pacientes por meio da Internet, o que pode ser considerado fator relevante

enquanto à competitividade frente a outras clínicas de Fisioterapia, levando-se em conta o

número cada vez maior de adeptos à utilização da WEB.

A criação do SAGCC teve como objetivo automatizar as operações realizadas no

decorrer do processo de agendamento e gerenciamento de consultas, proporcionando aos

profissionais e pacientes da clínica maior facilidade de acesso, controle e manipulação de

informações tangentes aos atendimentos.

O paciente terá a oportunidade de efetuar o cadastramento e acesso ao SAGCC através

do portal. Após acessar a aplicação o paciente terá a oportunidade de realizar a alteração de

Page 38: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

38

g) o sistema deverá permitir ao profissional da clínica cadastrar pacientes (RF07);

h) o sistema deverá permitir ao profissional da clínica cadastrar fisioterapeutas

(RF08);

i) o sistema deverá permitir ao profissional da clínica agendar consultas (RF09);

j) o sistema deverá permitir ao profissional da clínica confirmar um agedamento

(RF10);

k) o sistema deverá permitir ao profissional da clínica rejeitar um agedamento

(RF11);

l) o sistema deverá permitir ao profissional da clínica cancelar qualquer agedamento

(RF12);

m) o sistema deverá permitir ao profissional da clínica selecionar o fisioterapeuta

responsável pelo tratamento de uma consulta (RF13);

n) o sistema deverá permitir aos pacientes ou profissionais da clínica visualizar as

consultas por dia, semana, mês ou ano (RF14);

o) o sistema deverá permitir ao profissional da clínica visualizar uma agenda que

relaciona todas consultas agendadas e os horários disponíveis (RF15);

p) o sistema deverá permitir ao profissional da clínica visualizar uma agenda para

cada um dos fisioterapeutas cadastrados (RF16);

q) o sistema deverá permitir ao profissional da clínica visualizar uma agenda para

cada um dos pacientes cadastrados (RF17);

r) o sistema deverá mostrar o status de uma determinada consulta: agendada,

cancelada, confirmada pela clínica ou rejeitada pela clínica (RF18);

s) o sistema deverá permitir aos pacientes cancelar agendamentos realizados por eles

(RF19);

t) o sistema deverá permitir ao profissional da clínica cadastrar e excluir endereços

de destinatários onde serão enviados e-mails de notificação de agendamentos e

cancelamentos de agendamentos realizados por pacientes (RF20);

u) o sistema deverá permitir ao profissional da clínica escolher no momento do

cadastramento de um novo fisioterapeuta, se o mesmo receberá e-mails de

notificação de agendamentos e cancelamentos de agendamentos realizados por

pacientes (RF21);

v) o sistema deverá permitir listar em uma tabela todos os agendamentos de um

determinado paciente ou fisioterapeuta (RF22);

w) o sistema deverá permitir ao administrador do portal cadastrar e excluir usuários

Page 39: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

39

do portal (RF23);

x) o sistema deverá permitir ao administrador do portal adicionar ou retirar um

determinado perfil de acesso de qualquer usuário do portal (RF24);

y) o sistema deverá permitir ao administrador do portal adicionar ou remover Portlets

para um determinado usuário ou perfil, assim como escolher a disposição dos

mesmos na tela (RF25);

z) o sistema deverá permitir ao administrador do portal realizar todas as operações

disponíveis aos profissionais da clínica (RF26).

Como principais requisitos funcionais, podem-se destacar a possibilidade de

agendamento de consultas tanto por profissionais da clínica quanto por pacientes (RF09 e

RF03 respectivamente), assim como a confirmação ou rejeição das mesmas pela clínica

(RF10 e RF11 respectivamente). Outro requisito funcional importante é a possibilidade de

cadastrar quais endereços de e-mail receberão a notificação de um agendamento agendado ou

cancelado por um paciente (RF20).

Os requisitos não-funcionais para o desenvolvimento do sistema incluem:

a) o sistema deverá controlar o acesso dos usuários de acordo com o perfil (RNF01);

b) as configurações de software do computador onde o sistema será acessado deverão

ser: navegador Internet Explorer 6.0 com suporte a Java Script habilitado

(RNF02);

c) o sistema deverá ser desenvolvido em três camadas respeitando o modelo MVC

(RNF03);

d) as configurações mínimas de hardware do computador onde o sistema será

acessado são: processador Pentium 2, 500 MHz e 128 MB de memória RAM

(RNF04);

e) as configurações mínimas de hardware do computador Servidor onde o sistema

será executado serão: processador Pentium 4, 2.6 GHz e 1 GB de memória RAM

(RNF05);

f) as configurações de software do computador Servidor onde o sistema será

executado deverão ser: JBoss 4.0.5.GA com Tomcat 5.5, Liferay Portal 4.2, Java

Runtime Enviroment (JRE) 1.5 e banco de dados MySQL 5.0 (RNF06);

g) todas as telas do sistema não devem levar mais de 15 segundos para serem

carregadas no navegador, considerando o uso do programa em condições ideais de

hardware e software (RNF07);

h) a camada de persistência do sistema deverá ser desenvolvida com base no padrão

Page 40: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

40

de projeto DAO (RNF08);

i) para implementação do padrão DAO, deverá ser utilizada tecnologia EJB 3.0 e a

JPA (RNF09);

j) para implementação do modelo MVC, deverá ser utilizado o framework JSF 1.1

(RNF10).

Pode-se destacar os principais requisitos não-funcionais como a implementação

respeitando os padrões de projeto MVC e DAO (RNF03 e RNF08 respectivamente), e a

utilização do servidor de aplicações JBoss em sua versão 4.0.5.GA (RNF06). Esta versão do

servidor JBoss com o container EJB 3.0 instalado, possibilita a utilização da tecnologia EJB

3.0 requerida no RNF09. Além destes, é importante detalhar o RNF01, que trata do controle

de acesso dos usuários do portal de acordo com o perfil.

Os perfis de usuário para acesso ao sistema são:

• administrador do portal: pode efetuar todas as operações do sistema e tem acesso a

todas configurações internas do portal.

• profissional da clínica: pode efetuar operações de agendamento e confirmação de

consultas, visualizar todos os tipos de agenda, assim como realizar o cadastro de

pacientes e fisioterapeutas.

• paciente: pode efetuar operações de agendamento de consultas e tem acesso às

informações cadastrais do paciente.

As regras de negócio identificadas para o desenvolvimento do aplicativo incluem:

a) o paciente poderá consultar, cancelar e efetuar apenas agendamentos para seu

usuário no sistema (RN01);

b) no momento que o paciente cancelar, alterar ou efetuar um agendamento, o

sistema deverá enviar um e-mail para os destinatários cadastrados previamente

para receber a mensagem de notificação (RN02);

c) após a confirmação, cancelamento ou rejeição de um agendamento que possua o

tipo de confirmação por e-mail, o sistema deverá enviar um e-mail com um texto

padrão para o paciente da consulta informando a confirmação, cancelamento ou

rejeição (RN03);

d) após a confirmação, cancelamento ou rejeição de um agendamento que possua o

tipo de confirmação por SMS, o sistema deverá enviar uma mensagem SMS com

um texto padrão para o paciente da consulta informando a confirmação,

cancelamento ou rejeição (RN04);

e) no momento em que realizarem o cadastramento de pacientes, fisioterapeutas ou

Page 41: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

41

usuários de notificação, caso o campo referente a e-mail não estiver preenchido, o

sistema deverá apresentar mensagem de erro informando que é preciso informar

um e-mail (RN06);

f) não poderão ser realizados agendamentos para datas e hora anteriores a data atual

do servidor da aplicação (RN07);

g) todo agendamento deve ter pelo menos uma forma de confirmação associada. Caso

não houver, o sistema deverá apresentar mensagem informando que pelo menos

uma forma de confirmação deve ser selecionada (RN08);

h) no momento em que realizarem o cadastramento de pacientes, fisioterapeutas ou

usuários de notificação, caso o campo referente a nome não estiver preenchido, o

sistema deverá apresentar mensagem de erro informando que é necessário

informar um nome (RN09);

i) no momento em que realizarem o cadastramento de pacientes ou fisioterapeutas,

caso o campo referente a CGC/CPF não estiver preenchido, o sistema deverá

apresentar mensagem de erro informando que é necessário informar um nome

(RN10);

j) no momento em que realizarem o cadastramento de pacientes ou fisioterapeutas,

caso o campo referente a cidade não estiver preenchido, o sistema deverá

apresentar mensagem de erro informando que é necessário informar uma cidade

(RN11);

k) no momento em que realizarem o cadastramento de pacientes/fisioterapeutas, caso

o campo referente a CGC/CPF estiver preenchido com caracteres alfanuméricos, o

sistema deverá apresentar mensagem de erro informando permitir apenas números

para o campo (RN12);

l) no momento em que realizarem o cadastramento de pacientes, fisioterapeutas ou

usuários de notificação, caso o e-mail estiver em um formato inválido, o sistema

deverá apresentar mensagem de erro informando que é necessário informar um e-

mail válido (RN13);

m) no momento em que realizarem o cadastramento de pacientes ou fisioterapeutas,

caso o campo de data de nascimento estiver preenchido com uma data inválida, o

sistema deverá apresentar mensagem de erro (RN14);

n) no momento em que realizarem o cadastramento de pacientes ou fisioterapeutas,

caso o CGC/CPF já existir para um cadastro na base de dados, o sistema deverá

apresentar mensagem de erro informando que já existe um cadastro para o

Page 42: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

42

CGC/CPF informado (RN15);

o) no momento em que realizarem o cadastramento de fisioterapeutas, caso o campo

referente ao número do Conselho Regional de Fisioterapia e Terapia Ocupacional9

(CREFITO) não estiver preenchido, o sistema deverá apresentar mensagem de erro

informando que é necessário informar um número de CREFITO (RN16);

p) no momento em que realizarem um agendamento, caso o paciente não for

selecionado, o sistema deverá apresentar mensagem de erro informando que é

necessário informar um paciente para o agendamento (RN17);

q) no momento em que realizarem a confirmação de um agendamento, caso o

fisioterapeuta não for selecionado, o sistema deverá apresentar mensagem de erro

informando que é necessário informar um fisioterapeuta para confirmar o

agendamento (RN18);

r) agendamentos com a situação "Confirmado pela Clínica" não poderão ser

alterados, apenas cancelados (RN19);

s) agendamentos com a situação "Rejeitado pela Clínica" não poderão ser alterados

nem cancelados (RN20);

t) o sistema não deverá permitir ao usuário alterar o campo CGC/CPF de um

paciente ou fisioterapeuta após o cadastramento (RN21);

u) o sistema não deverá permitir a edição de informações de agendamentos

cancelados (RN22);

v) o sistema deverá permitir apenas a visualização de agendamentos do ano corrente,

anterior e posterior. O ano corrente deverá ser o ano atual do servidor da aplicação

(RN23);

w) no momento em que realizarem o cadastramento de fisioterapeutas ou pacientes,

caso for informado um CGC/CPF numérico porém com dígitos "." e/ou "-", o

sistema deverá retirar os dígitos de separação e inserir apenas o número na base de

dados (RN24);

x) o sistema deverá permitir apenas ações de agendamento e cancelamento de

consultas através da Agenda de Pacientes (RN25);

y) após inclusão de um agendamento, independente do status do mesmo, o sistema

não deverá permitir alterar o paciente (RN26).

9 Órgão regional responsável perante o Conselho Federal e o Ministério do Trabalho, pelo atendimento dos objetivos de interesse público que determinaram a regulamentação das atividades da Fisioterapia e da Terapia Ocupacional.

Page 43: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

43

Dentre as regras de negócio apresentadas, a RN18 pode ser destacada, pois é necessário

existir um fisioterapeuta para atender uma determinada consulta, portanto um agendamento

não poderá ser confirmado sem que antes um fisioterapeuta seja selecionado.

Através da Agenda de Pacientes não é possível selecionar o fisioterapeuta do

agendamento. Com base neste comportamento, a RN25 restringe apenas a realização das

ações de agendamento e cancelamento de consultas por esta interface, visto que a RN18

obriga o usuário selecionar um fisioterapeuta ao realizar a confirmação de um agendamento.

A RN21 restringe a alteração do CGC/CPF de um paciente ou fisioterapeuta após o

cadastramento, pois este é o identificador único destas entidades.

3.2 ESPECIFICAÇÃO

Neste tópico são apresentadas as especificações do aplicativo, feitas através da análise

orientada a objetos.

Para descrição do SAGCC, expõem-se os diagramas criados com base na UML e

gerados com a utilização da ferramenta Enterprise Architect (EA).

A fim de ilustrar as principais funcionalidades do SAGCC, são demonstrados os

diagramas de pacote e casos de uso do paciente e profissional da clínica. Posteriormente no

diagrama de classes, é apresentada a arquitetura das classes do sistema.

3.2.1 Diagrama de casos de uso

Esta seção demonstra a representação gráfica dos casos de uso da aplicação, assim

como seu detalhamento. Para melhor visualização dos casos de uso da ferramenta foram

utilizados pacotes. Os pacotes são mecanismos de propósitos gerais para a organização de

elementos em grupos (BOOCH, 2000, p. 168). A visão de pacotes dos casos de uso é

representada graficamente pela Figura 4.

Page 44: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

44

pd 3.1 Diagrama de pacotes

PCT01 - Módulo Clínica

+ Administrador do Portal

+ Profissional da Clínica

+ UC01.01 Efetua Login

+ UC01.02 Cadastra paciente

+ UC01.03 Cadastra Fisioterapeuta

+ UC01.04 Agenda consulta

+ UC01.05 Confirma agendamento

+ UC01.06 Rejeita agendamento

+ UC01.07 Cancela consulta

+ UC01.08 Associa Fisioterapeuta à consulta

+ UC01.09 Visualiza agenda por dia, semana, mês ou ano

+ UC01.10 Visualiza agenda geral

+ UC01.11 Visualiza agenda Fisioterapeuta

+ UC01.12 Visualiza agenda paciente

+ UC01.13 Cadastra e-mail de notificação

+ UC01.14 Exclui e-mail de notificação

+ UC01.15 Lista todos agendamentos do paciente ou fisioterapeuta

+ UC01.16 Gerencia usuários do portal

+ UC01.17 Gerencia conteúdo do portal

(from 3.2 Diagrama de casos de uso)

PCT02 - Módulo Paciente

+ Paciente

+ UC02.01 Efetua login

+ UC02.02 Cadastra paciente

+ UC02.03 Agenda consulta

+ UC02.04 Visualiza agenda por dia, semana, mês ou ano

+ UC02.05 Visualiza agenda paciente

+ UC02.06 Cancela consulta

+ UC02.07 Lista todos agendamentos paciente

(from 3.2 Diagrama de casos de uso)

Figura 3 – Pacotes dos casos de uso

A Figura 4 apresenta os casos de uso do pacote 01 (Módulo Clínica). Estes casos de

uso referem-se às operações tangíveis aos profissionais da clínica de fisioterapia.

Page 45: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

45

ud PCT01 - Módulo Clínica

Profissional da Clínica

UC01.01 Efetua Login

UC01.02 Cadastra paciente

UC01.03 Cadastra Fisioterapeuta

UC01.04 Agenda consulta

UC01.05 Confirma agendamento UC01.06 Rejeita

agendamento

UC01.07 Cancela consulta

UC01.08 Associa Fisioterapeuta à

consulta

UC01.09 Visualiza agenda por dia,

semana, mês ou ano

UC01.10 Visualiza agenda geralUC01.11 Visualiza

agenda Fisioterapeuta

UC01.12 Visualiza agenda paciente

UC01.13 Cadastra e-mail de

notificação

UC01.14 Exclui e-mail de notificação

UC01.15 Lista todos agendamentos do

paciente ou fisioterapeuta

Administrador do Portal

UC01.16 Gerencia usuários do portal

UC01.17 Gerencia conteúdo do portal

Figura 4 – Casos de uso dos profissionais da clínica

O ator “Profissional da Clínica” representa uma pessoa que trabalha para a clínica de

fisioterapia que utiliza o SAGCC. No UC01.01 o profissional da clínica realiza o login no

portal através de um usuário e senha pré-cadastrados. O ator “Administrador do Portal” é um

profissional da clínica com perfil para incluir e excluir usuários do portal através do UC01.16.

Por este mesmo caso de uso, este ator pode realizar a inclusão ou remoção de um determinado

perfil de acesso de qualquer usuário do portal. O administrador do portal pode, por meio do

UC01.17, adicionar ou remover Portlets para um profissional da clínica ou paciente, assim

como escolher a disposição dos mesmos na tela.

No UC01.02 e UC01.03 o profissional da clínica efetua a manutenção (inclusão,

alteração) dos dados cadastrais de um paciente ou fisioterapeuta. Já no UC01.04 o profissional

da clínica mantém um agendamento (inclusão, alteração), informado o paciente, dia e hora,

descrição da patologia, título, assim como uma ou mais formas de confirmação. Este caso de

uso é efetivado através dos tipos de agendas disponíveis no sistema: agenda do fisioterapeuta,

do paciente e agenda geral. A visualização destas agendas é representada pelos casos de uso

UC01.10, UC01.11 e UC01.12. Para localizar um agendamento, o profissional da clínica pode

utilizar diferentes visões das agendas, conforme representado no UC01.09, sendo também

possível listar todos agendamentos por meio do UC01.15.

Através do UC01.05 o profissional da clínica confirma um agendamento, e no

UC01.06 realiza a rejeição de um agendamento efetuado por um profissional da clínica ou

Page 46: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

46

paciente. Antes de confirmar um agendamento, é necessário associar um fisioterapeuta à

consulta. Esta ação é realizada pelo UC01.08. Os agendamentos cadastrados por um

profissional da clínica ou paciente podem ser cancelados pelo UC01.07.

O profissional da clínica, por meio dos casos de uso UC01.13 e UC01.14, efetua a

manutenção (inclusão, alteração e exclusão) dos dados cadastrais de um e-mail de notificação,

para que uma determinada pessoa passe ou deixe de receber correios de notificação quando

um paciente inclui, altera ou cancela um agendamento.

A Figura 5 demonstra os casos de uso do pacote 02 (Módulo Paciente). Estes casos de

uso referem-se às operações possíveis a um paciente da clínica de fisioterapia.

ud PCT02 - Módulo Paciente

Paciente

UC02.01 Efetua login

UC02.02 Cadastra paciente

UC02.03 Agenda consulta

UC02.04 Visualiza agenda por dia,

semana, mês ou ano

UC02.05 Visualiza agenda paciente

UC02.06 Cancela consulta

UC02.07 Lista todos

agendamentos paciente

Figura 5 – Casos de uso dos pacientes

O ator “Paciente” representa uma pessoa que necessita de tratamento fisioterapêutico,

e escolhe agendar uma consulta em uma clínica de fisioterapia que utiliza o SAGCC. No

UC02.01 o paciente realiza o acesso no portal através de um usuário e senha pré-cadastrados.

No UC02.02 o paciente efetua a manutenção (inclusão, alteração) de seus dados cadastrais. Já

no UC02.03 o paciente da clínica mantém um agendamento (inclusão, alteração), informado o

dia e hora, descrição da patologia, título, assim como uma ou mais formas de confirmação. O

paciente poderá visualizar seus agendamentos, independente destes serem cadastrados pela

clínica ou por ele. A visualização da agenda pelo paciente é representada no caso de uso

UC02.05.

Para localizar um agendamento, o paciente pode utilizar diferentes visões das agendas,

Page 47: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

47

conforme demonstrado no UC02.04, sendo também possível listar todos agendamentos por

meio do UC02.07. Caso considere necessário, o paciente pode cancelar um agendamento

através do UC02.06.

3.2.2 Diagrama de classes

Esta seção demonstra os diagramas de classes criados durante o desenvolvimento da

aplicação. Os métodos e atributos, assim como suas descrições, foram omitidos das figuras a

fim de facilitar a visualização das classes e seus relacionamentos. A definição completa das

principais classes é apresentada no Apêndice A.

A Figura 6 apresenta o diagrama de classes de domínio que representa as classes no

domínio do negócio em questão. Este modelo é construído na fase de análise (BEZERRA,

2003, p. 96).

O diagrama de classes de projeto é apresentado a partir da Figura 7. Este diagrama é

uma extensão do diagrama de classes de domínio, que recebe a adição de detalhes específicos

conforme a solução de software escolhida (BEZERRA, 2003, p. 96).

As classes de projeto do sistema foram divididas em dois módulos: WEB e EJB. O

módulo WEB possui os pacotes com as classes responsáveis pela camada de controle da

aplicação, e está ilustrado na Figura 7. O módulo EJB por sua vez contém os pacotes das

classes responsáveis pela camada de modelo, sendo este demonstrado na Figura 14. A divisão

de um software em camadas permite que este seja mais portável e modificável. Uma mudança

em uma camada mais baixa que não afete sua interface não implicará em mudanças nas

camadas mais altas (BEZERRA, 2003, p. 246).

As classes da camada de controle são ilustrados nas Figuras 8, 9, 10, 11, 12 e 13. As

classes da camada de persistência, ou modelo, são apresentadas nas Figuras 15 e 16.

Page 48: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

48

cd br.com.sagcc.model

«Entidade»Pessoa

«Entidade»Paciente

«Entidade»Agendamento

«Entidade»Fisioterapeuta

«Entidade»SituacaoAgendamento

«Entidade»UsuarioNotificacao

Associação criada pararepresentar conceitualmente a relação de um Agendamento de um Paciente com um UsuarioNotificacao. Para maiores detalhes sobre esta associação, consultar descrição da Regra de Negócio 02 (RN02.)

«Entidade»FormaConfirmacao

*

*

3

*

1

*

*1

1

*

Figura 6 – Diagrama de classes de domínio

As classes de domínio representam os POJOs, ou entidades da aplicação. Neste

modelo, cada POJO é considerado um objeto que pode ser persistido, ou seja, um objeto que

está mapeado para uma tabela do BD. A forma de realização deste mapeamento é

demonstrada em detalhes no tópico 3.3.

pd 4.3.1 Módulo WEB

PCT01 - br.com.sagcc.portlets

+ AgendaFisioterapeutasPortlet

+ AgendaGeralPortlet

+ AgendaPacientesPortlet

+ com.sun.faces.portlet.FacesPortlet

+ FisioterapeutasPortlet

+ PacientesPortlet

+ UsuarioNotificacaoPortlet

PCT02 - br.com.sagcc.control

+ AgendaFisioterapeutasControl

+ AgendaGeralControl

+ AgendaPacientesControl

+ FisioterapeutasControl

+ PacientesControl

+ UsuarioNotificacaoControl

PCT03 - br.com.sagcc.v alidator

+ FisioterapeutasValidator

+ PacientesValidator

+ UsuarioNotificacaoValidator

PCT04 - br.com.sagcc.util.mail

+ Autenticador

+ EnviadorDeEmail

+ javax.mail.Authenticator

PCT05 - br.com.sagcc.util

+ ApplicationResources.properties

+ ResourcesReader

+ ValidateUtil

PCT06 - br.com.sagcc.serv let

+ AgendaFisioterapeutasServlet

+ AgendaPacientesServlet

+ javax.servlet.http.HttpServlet

Figura 7 – Pacotes do módulo WEB do diagrama de classes de projeto

Page 49: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

49

cd br.com.sagcc.portlets

«Portlet»FisioterapeutasPortlet

«Portlet»PacientesPortlet

«Validator»PCT03 - br.com.sagcc.v alidator::FisioterapeutasVali dator

«Validator»PCT03 - br.com.sagcc.v alidator::

PacientesValidator

«Controlador»PCT02 - br.com.sagcc.control::

FisioterapeutasControl

«Controlador»PCT02 - br.com.sagcc.control::

PacientesControl

«Portlet»AgendaPacientesPortlet

«Portlet»UsuarioNotificacaoPortlet

«Validator»PCT03 - br.com.sagcc.v alidator::

UsuarioNotificacaoValidator

«Controlador»PCT02 - br.com.sagcc.control::

AgendaPacientesControl

«Portlet»com.sun.faces.portlet.FacesPortlet

«Controlador»PCT02 - br.com.sagcc.control::

UsuarioNotificacaoControl

«Portlet»AgendaFisioterapeutasPortlet «Portlet»

AgendaGeralPortlet

«Controlador»PCT02 - br.com.sagcc.control::AgendaFisioterapeutas Control

«Controlador»PCT02 - br.com.sagcc.control::AgendaGeralControl

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

Figura 8 – Diagrama de classes do pacote br.com.sagcc.portlets

No pacote “br.com.sagcc.portlets” estão localizadas as classes que representam os

Portlets do aplicativo. Cada Portlet herda da classe “com.sun.faces.portlet.FacesPortlet”, que

é uma classe padronizada pela empresa Sun Microsystems para que seja possível utilizar a

tecnologia JSF (JavaServer Faces) em conjunto com a especificação de Portlets. Os métodos

“processAction”, “render”, “renderEdit”, “renderView” e “renderHelp” são operações padrões

da API de Portlets, e devem ser sobrescritos em suas subclasses, como é o caso por exemplo

da classe “AgendaFisioterapeutasPortlet”. Estes métodos têm basicamente a função de

renderizar estados de um Portlet, e processar o controle de ações executadas sobre o mesmo.

Page 50: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

50

cd br.com.sagcc.control

com.sun.faces.portlet.FacesPortlet

«Portlet»PCT01 - br.com.sagcc.portlets::AgendaFisioterapeuta sPortlet

«Controlador»AgendaFisioterapeutasControl

com.sun.faces.portlet.FacesPortlet

«Portlet»PCT01 - br.com.sagcc.portlets::AgendaPacientesPortl et

«Controlador»AgendaPacientesControl

«util i ty»PCT04 - br.com.sagcc.util.mail::Env iadorDeEmail

«uti l ity»PCT05 - br.com.sagcc.util::ResourcesReader

«Controlador»AgendaGeralControl

com.sun.faces.portlet.FacesPortlet

«Portlet»PCT01 - br.com.sagcc.portlets::AgendaGeralPortlet

«Controlador»FisioterapeutasControl

«Controlador»PacientesControl

com.sun.faces.portlet.FacesPortlet

«Portlet»PCT01 - br.com.sagcc.portlets::

FisioterapeutasPortlet

com.sun.faces.portlet.FacesPortlet

«Portlet»PCT01 - br.com.sagcc.portlets::PacientesPortlet

«uti l i ty»PCT05 - br.com.sagcc.util::ValidateUtil

«Controlador»UsuarioNotificacaoControl

com.sun.faces.portlet.FacesPortlet

«Portlet»PCT01 - br.com.sagcc.portlets::UsuarioNotificacaoPo rtlet

1

1

*1

*

1

1

1

*

1

*

1

6

1

1

*

11

1

1

*

1

*

11

1

*

1

1

1

Figura 9 – Diagrama de classes do pacote br.com.sagcc.control

No pacote “br.com.sagcc.control” estão as classes que representam os controladores do

aplicativo. Cada controlador é um objeto especial gerenciado pela JSF. Estes controladores,

também conhecidos como Beans Gerenciados (Managed Beans) ou Backing Beans, têm

propriedades privadas com métodos de acesso (getters e setters), associadas aos campos do

formulário JSP. Além disso, possuem também métodos correspondentes aos event listners, ou

ouvidores de eventos, tratando adequadamente eventos disparados pela camada de visão

representada pelas JSPs.

Os Backing Beans são intermediários entre as telas e a lógica do sistema, assumindo o

papel de controladores na arquitetura MVC. Cada Portlet em seu método “processAction” é

responsável por delegar as responsabilidades de controle a um Backing Bean correspondente.

Page 51: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

51

cd br.com.sagcc.v alidator

«Validator»FisioterapeutasValidator

«Validator»PacientesValidator

«util ity»PCT05 - br.com.sagcc.util::

ValidateUtil

com.sun.faces.portlet.FacesPortlet

«Portlet»PCT01 - br.com.sagcc.portlets::FisioterapeutasPortl et

com.sun.faces.portlet.FacesPortlet

«Portlet»PCT01 - br.com.sagcc.portlets::PacientesPortlet

«Validator»UsuarioNotificacaoValidator

com.sun.faces.portlet.FacesPortlet

«Portlet»PCT01 - br.com.sagcc.portlets::UsuarioNotificacaoPo rtlet

1

1

1

1

*

1

*

1

*

1

1

1

Figura 10 – Diagrama de classes do pacote br.com.sagcc.validator

Neste pacote estão as classes utilizadas para realizar as validações dos dados digitados

na camada de visão.

Na JSF estas classes são conhecidas como validadores, ou validators. Caso algum

componente de interface da JSP, como um campo texto por exemplo, esteja associado a um

método de um validator, quando o usuário submeter o formulário, a JSF irá invocar

automaticamente este método a fim de realizar a validação do dado digitado. Se for

identificado algum erro de validação, o fluxo da aplicação é retornado à camada de visão

informando uma mensagem de erro ao usuário.

Page 52: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

52

cd br.com.sagcc.util.mail

«uti li ty»Env iadorDeEmail

«uti l ity»Autenticador

«uti l ity»javax.mail.Authenticator

«uti l ity»PCT05 - br.com.sagcc.util::ResourcesReader

«Controlador»PCT02 - br.com.sagcc.control::

AgendaPacientesControl

«Controlador»PCT02 - br.com.sagcc.control::AgendaFisioterapeutasControl

«Controlador»PCT02 - br.com.sagcc.control::AgendaGeralControl

*

1

*

1

*

1

*

1

1

*

6

1

*

1

1

1

Figura 11 – Diagrama de classes do pacote br.com.sagcc.util.mail

No pacote “br.com.sagcc.util.mail” estão as classes responsáveis pelo envio de e-mails.

A classe “EnviadorDeEmail” é utilizada para o envio de mensagens de e-mail através do

protocolo Simple Mail Transfer Protocol (SMTP). A classe “Autenticador” encapsula a

codificação para autenticação em servidores SMTP, herdando “javax.mail.Authenticator”. A

classe “javax.mail.Authenticator” representa um objeto que sabe como obter uma

autenticação para uma conexão de rede. Para isso esta classe necessita de informações como

usuário e senha da conta do servidor SMTP.

Page 53: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

53

cd br.com.sagcc.util

«uti l i ty»ResourcesReader

«uti l ity»ValidateUtil

«Controlador»PCT02 - br.com.sagcc.control::

FisioterapeutasControl

«Controlador»PCT02 - br.com.sagcc.control::

PacientesControl

«uti l i ty»PCT04 - br.com.sagcc.util.mail::Env iadorDeEmail

«Validator»PCT03 - br.com.sagcc.v alidator::

FisioterapeutasValidator

«Validator»PCT03 - br.com.sagcc.validator::

PacientesValidator

«Controlador»PCT02 - br.com.sagcc.control::

AgendaPacientesControl

«properties fi le»

ApplicationResources.properties

«Controlador»PCT02 - br.com.sagcc.control::AgendaFisioterapeutasControl

«Validator»PCT03 - br.com.sagcc.validator::

UsuarioNotificacaoValidator

«Controlador»PCT02 - br.com.sagcc.control::

AgendaGeralControl

*

1

*

1

*

1

*

1

*

1

*

1

*

1

*

1

1

1

1

*

6

1

*

1

*

1

Figura 12 – Diagrama de classes do pacote br.com.sagcc.util

Neste pacote estão as classes responsáveis pela validação e formatação de valores,

assim como acesso a informações parametrizadas em um arquivo de propriedades.

“ValidateUtil” é uma classe utilitária contendo métodos estáticos para validação e

formatação de valores, enquanto a classe “ResourcesReader” é responsável pela recuperação

dos valores do arquivo de propriedades da aplicação, denominado

“ApplicationResources.properties”. Neste arquivo de parâmetros estão contidas informações

utilizadas na classe “EnviadorDeEmail” para autenticação em um Servidor SMTP, assim

como o HTML do e-mail de notificação enviado na criação, cancelamento e alteração de

agendamentos pela Agenda de Pacientes, e também o HTML do e-mail enviado para o

paciente na confirmação, rejeição ou cancelamento de um agendamento.

Page 54: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

54

cd br.com.sagcc.serv let

«Servlet»AgendaPacientesServ let

«Servlet»javax.servlet.http.HttpServlet

«Servlet»AgendaFisioterapeutasServ let

Figura 13 – Diagrama de classes do pacote br.com.sagcc.servlet

O pacote “br.com.sagcc.servlet” contém Servlets codificados especialmente para o

processamento de controle das JSPs que não estão diretamente associadas a um Portlet. No

SAGCC, estas JSPs são os diálogos utilizados para busca de um paciente ou fisioterapeuta,

também conhecidas como List Of Values (LOVs). O controle destes diálogos foi tratado de

forma especial às outras JSPs pois são páginas independentes do HTML principal onde os

Portlets são renderizados.

Os Servlets herdam de “javax.servlet.http.HttpServlet”, que é uma classe abstrata que

possibilita às subclasses a criação de um Servlet que utiliza o protocolo HTTP.

A Figura 14 apresenta o módulo EJB, que contém os pacotes das classes responsáveis

pela camada de modelo.

pd 4.3.2 Módulo EJB

PCT01 - br.com.sagcc.dao.interfaces

+ AgendamentoDAO<Agendamento, Integer>

+ FisioterapeutaDAO<Fisioterapeuta, String>

+ FormaConfirmacaoDAO<FormaConfirmacao, Short>

+ GenericDAO<T, ID extends Serializable>

+ PacienteDAO<Paciente, String>

+ SituacaoAgendamentoDAO<SituacaoAgendamento, Short>

+ UsuarioNotificacaoDAO<UsuarioNotificacao, Integer>

PCT02 - br.com.sagcc.dao.ejb

+ AgendamentoDAOBean

+ FisioterapeutaDAOBean

+ FormaConfimacaoDAOBean

+ GenericEJBDAO<T, ID extends Serializable>

+ PacienteDAOBean

+ SituacaoAgendamentoDAOBean

+ UsuarioNotificacaoDAOBean

Figura 14 – Pacotes do módulo EJB do diagrama de classes de projeto

Page 55: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

55

cd br.com.sagcc.dao.interfaces

«interface»GenericDAO<T, ID extends Serializable>

«interface»AgendamentoDAO<Agendamento, Integer>

«interface»FisioterapeutaDAO<Fisioterapeuta, String>

«interface»PacienteDAO<Paciente, String>

«interface»UsuarioNotificacaoDAO<UsuarioNotificacao, Integer>

«interface»FormaConfirmacaoDAO<FormaConfirmacao, Short>

«interface»SituacaoAgendamentoDAO<SituacaoAgendamento, Short>

«EJB»PCT02 - br.com.sagcc.dao.ejb::AgendamentoDAOBean

«EJB»PCT02 - br.com.sagcc.dao.ejb::FisioterapeutaDAOBean

«EJB»PCT02 - br.com.sagcc.dao.ejb::FormaConfimacaoDAOBea n

«EJB»PCT02 - br.com.sagcc.dao.ejb::PacienteDAOBean

«EJB»PCT02 - br.com.sagcc.dao.ejb::SituacaoAgendamentoDA OBean

«EJB»PCT02 - br.com.sagcc.dao.ejb::UsuarioNotificacaoDAO Bean

«type»PCT02 - br.com.sagcc.dao.ejb::GenericEJBDAO<T, ID extends Serializable>

«real ize»

«real ize»

«real ize»

«real ize»

«real ize»

«realize»

«realize»

Figura 15 – Diagrama de classes do pacote br.com.sagcc.dao.interfaces

Neste pacote estão as interfaces responsáveis pela implementação do padrão DAO.

“GenericDAO” é uma interface compartilhada por todos DAOs de negócio, que são objetos

utilizados para realizar operações em um BD. Operações básicas de DAOs como create, read,

update e delete, conhecidas como operações CRUD, são isoladas nesta interface e

compartilhadas através de todas as implementações dos DAOs.

Page 56: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

56

cd br.com.sagcc.dao.ejb

«type»GenericEJBDAO<T, ID extends Serializable>

«interface»PCT01 - br.com.sagcc.dao.interfaces::GenericDAO<T, ID extends Serializable>

«EJB»AgendamentoDAOBean

«interface»PCT01 - br.com.sagcc.dao.interfaces::AgendamentoDAO<Agendamento, Integer>

«EJB»FisioterapeutaDAOBean

«EJB»FormaConfimacaoDAOBean

«interface»PCT01 - br.com.sagcc.dao.interfaces::FisioterapeutaDAO<Fisioterapeuta, String>

«interface»PCT01 - br.com.sagcc.dao.interfaces::FormaConfirmacaoDAO<FormaConfirmacao, Short>

«interface»PCT01 - br.com.sagcc.dao.interfaces::PacienteDAO<Paciente, String>

«interface»PCT01 - br.com.sagcc.dao.interfaces::SituacaoAgendamentoDAO<SituacaoAgendamento, Short>

«interface»PCT01 - br.com.sagcc.dao.interfaces::UsuarioNotificacaoDAO<UsuarioNotificacao, Integer>

«EJB»PacienteDAOBean

«EJB»SituacaoAgendamentoDAOBean

«EJB»UsuarioNotificacaoDAOBean

«realize»

«realize»

«realize»«realize»

«realize»

«realize»

«realize»

Figura 16 – Diagrama de classes do pacote br.com.sagcc.dao.ejb

Neste pacote está contida a classe “GenericEJBDAO” e os EJBs que herdam a mesma.

“GenericEJBDAO” é uma classe que implementa as operações genéricas CRUD dos

DAOs utilizando a JPA (Java Persistence API) e o framework Hibernate, respeitando a

definição da interface “GenericDAO” contida no pacote “br.com.sagcc.dao.interfaces”. Os EJBs

devem herdar desta classe, parametrizando se necessário outros métodos específicos

responsáveis pela codificação das operações não CRUD já implementadas na superclasse.

Esta arquitetura assume a utilização de uma abordagem 1:1 para o modelo

entidade/DAO, ou seja, para cada entidade deverá existir um DAO. Conforme explicado

anteriormente, as entidades são relacionadas no diagrama de classes de domínio.

A classe “AgendamentoDAOBean”, por exemplo, é um EJB que herda as operações

CRUD de “GenericEJBDAO”, e provê outros métodos específicos para uma entidade

“Agendamento”, como “buscaAgendamentosDia” e “buscaAgendamentosPeriodo”.

Page 57: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

57

3.3 IMPLEMENTAÇÃO

Este tópico contém o detalhamento da implementação da aplicação, apresentando

primeiramente as técnicas e ferramentas utilizadas no desenvolvimento do SAGCC, e

posteriormente trechos contendo características relevantes da codificação do sistema.

As ferramentas utilizadas na especificação e implementação são conceituadas no

mercado de desenvolvimento de software. A maioria delas é livre e possui rica documentação,

sendo disponibilizada para download gratuito na Internet. Estas ferramentas juntamente com

seus produtores e versões são apresentadas na Tabela 1. Em seguida é apresentada a descrição

detalhada das ferramentas e a utilização das mesmas na implementação.

Tabela 1 - Ferramentas utilizadas na especificação e implementação

Ferramentas Produtores Versões Enterprise Architect Sparx Systems 6.0.780 Eclipse IDE Eclipse Foundation 3.2 J2EE (Java 2 Platform Enterprise Edition) Sun Microsystems 5.0 J2SE (Java 2 Platform Standard Edition) Sun Microsystems 5.0 Java 2 Platform Standard Edition Development Kit (JDK) Sun Microsystems 5.0 MyEclipse Enterprise Workbench Genuitec 5.1.0 GA MySQL MySQL AB 5.0 MySQL Query Browser MySQL AB 1.2.5 (Beta)

A especificação foi realizada através da ferramenta Computer Aided Software

Enginnering (CASE) Enterprise Architect (EA). Através desta foram construídos os

diagramas de pacote, casos de uso e classes.

Para a implementação da aplicação foi utilizado o quite de desenvolvimento da

plataforma Java 2 Platform Standard Edition (J2SE): o J2SE System Development Kit (JDK).

O JDK 5.0 contém recursos como as “Anotações”, por exemplo, necessários para utilização

das tecnologias da Java 2 Platform Enterprise Edition (J2EE) implementadas no SAGCC.

Anotações são uma nova forma de definir metadados diretamente nas classes Java, através de

tipos pré-definidos.

O ambiente de desenvolvimento utilizado foi o Eclipse Itegrated Development

Environment (IDE). O Eclipse traz uma série de editores úteis para o desenvolvimento de

aplicações Java, e provê outras funcionalidades essenciais para o desenvolvedor, como

diferentes perspectivas para depuração dos fontes (debug), e navegação através dos pacotes da

aplicação. Porém foi necessário instalar um plugin que trouxesse um ambiente completo com

Page 58: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

58

suporte às diferentes tecnologias utilizadas no desenvolvimento do sistema: o MyEclipse

Enterprise Workbench.

As principais funcionalidades do MyEclipse utilizadas foram os editores com suporte à

JSF para construção de páginas JSP, que possibilitam a pré-visualização das páginas HTML

resultantes. Além disso, o MyEclipse possui a característica de integração com vários

servidores de aplicação Java, incluindo o servidor JBoss utilizado no SAGCC. Esta função

trouxe a possibilidade de depurar em tempo de execução o código fonte dos Portlets, EJBs e

também do gerenciamento da aplicação pelo JBoss (deploy), facilitando a identificação e

solução de problemas.

O SGDB (Sistema Gerenciador de Banco de Dados) utilizado para persistir os dados

do SAGCC e do portal foi o MySQL.

A ferramenta MySQL Query Browser possibilitou a consulta dos dados tanto do

aplicativo desenvolvido quanto do portal, através de comandos SQL. Esta ferramenta trouxe a

possibilidade de gerenciamento dos dados através de uma interface gráfica, que permitiu

visualizar e editar as definições das tabelas do BD.

Além das ferramentas utilizadas para a especificação e implementação, também foram

utilizadas tecnologias que facilitaram o desenvolvimento do trabalho e agregaram

padronização e qualidade ao mesmo. Estas tecnologias, os órgãos responsáveis pelas mesmas,

e suas versões são apresentadas na Tabela 2.

Tabela 2 - Tecnologias utilizadas na especificação e implementação

Tecnologias Órgãos Responsáveis Versões Ant Apache Software Foundation (ASF) 1.6.5 EJB (Enterprise JavaBeans) Sun Microsystems 3.0 Extensible Markup Language (XML) Object Management Group (OMG) 1.0 Hibernate RedHat 3.2 HiperText Markup Language (HTML) World Wide Web Consortium (W3C) 4.0.1 JavaMail Sun Microsystems 1.5 Java Naming and Directory Interface (JNDI) Sun Microsystems 1.2 JBoss Server RedHat 4.0.5.GA JPA (Java Persistence API) Sun Microsystems 1.0 JSF (JavaServer Faces) Sun Microsystems 1.1 JSP Sun Microsystems 2.0 Liferay Portal Liferay 4.2.0 Servlets Sun Microsystems 2.4 Tomcat Apache Software Foundation (ASF) 5.5 UML (Unified Modeling Language) Object Management Group (OMG) 2.0

A linguagem UML foi utilizada em conjunto com a ferramenta CASE Enterprise

Page 59: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

59

Architect para a especificação da aplicação, a fim de construir os modelos e diagramas de

pacotes, casos de uso e classes.

Para o envio dos e-mails de notificação, foi utilizada a API JavaMail. Esta API é

padronizada pela Sun Microsystems, provendo suporte a vários protocolos de envio e leitura

de e-mails, suporte a mensagens HTML e a mensagens com anexos.

O Ant é uma ferramenta indispensável em praticamente qualquer projeto Java. É

responsável por automatizar tarefas como compilação, geração de Java Archives (JARs)10,

WEB Archives (WARs)11 ou Enterprise Archives (EARs)12, criar, alterar ou excluir diretórios,

gerar código e executar classes Java, dentre outros. Neste trabalho as principais tarefas

executadas pelo Ant foram compilar os fontes e gerar os JARs, WARs e EARs do SAGCC e

do portal Liferay, assim como realizar gerenciamento automático de novos arquivos criados

(hot-deploy) tanto do módulo EJB quanto do WEB. O hot-deploy contribuiu para aumentar a

produtividade no desenvolvimento da aplicação, pois após realizar uma alteração nos fontes e

executar o Ant, as alterações são automaticamente detectadas pelo servidor de aplicação

JBoss. Para tanto foi construído um arquivo “build.xml” utilizando a Extensible Markup

Language (XML), contendo a definição das tarefas citadas. Estas tarefas são denominadas

tasks no dialeto do Ant.

A XML foi utilizada em outras tecnologias além do Ant, como para declarar o fluxo de

navegação das JSPs através da JSF e definir as configurações de conectividade com o BD

através do Hibernate e a JPA. Além disso, foi utilizada para declarar as características de cada

Portlet, como nome e perfis de acesso, e também definir as configurações da aplicação WEB.

O Quadro 1 ilustra um trecho do arquivo “faces-config.xml”, onde são declaradas as

regras de navegação para cada Portlet, utilizando para isto a JSF.

10 Arquivos compactados contendo classes Java. 11 Arquivos compactados contendo classes Java ou JARs. São utilizados para representar uma aplicação WEB. 12 Arquivos compactados contendo classes Java, JARs e/ou WARs. São utilizados para representar uma aplicação finalruída na J2EE (Java 2 Platform Enterprise Edition).

Page 60: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

60

Quadro 1 – Trecho do arquivo que contém as regras de navegação para cada Portlet

No Quadro 1 estão definidas as regras de navegação para uma JSP do Portlet de

cadastro de pacientes.

A página de origem é a “pacientesCadastro.jsp”, definida na tag XML “from-view-id”.

Após a especificação da página de origem, são incluídas todas as possibilidades de navegação

a partir desta página. Dependendo do retorno do controlador deste Portlet à requisição

submetida pelo usuário, ilustrado neste caso pelas tags “from-outcome”, a resposta será

redirecionada para uma JSP específica, descrita na tag “to-view-id”.

Considerando o caso ilustrado, a partir da página “pacientesCadastro.jsp” é possível

ser redirecionado para as páginas “pacientesConsulta.jsp”, caso o usuário clique no botão da

interface para localizar um paciente, ou para a própria “pacientesCadastro.jsp”, caso o usuário

tenha cadastrado um paciente com sucesso, ou se foi identificado algum problema durante o

processamento da requisição pelo controlador, como por exemplo um erro de validação (este

tipo de verificação é realizada em uma classe validadora ou no controlador). Todas regras de

navegação da aplicação estão definidas desta forma, permitindo um fácil mapeamento de

quais condições poderão redirecionar uma requisição para uma determinada JSP. Este modelo

garante também a divisão eficiente das camadas de visão e controle, requisito fundamental do

padrão de projeto MVC. Uma das tecnologias utilizadas para separação da camada de

controle da camada de modelo, foram os POJOs (Plain Old Java Objects) e o mapeamento

Page 61: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

61

objeto-relacional através de anotações.

O Quadro 2 demonstra uma classe Java anotada, mais especificamente um POJO que

representa um “Paciente”. Nesta classe é realizado o mapeamento da entidade para uma tabela

do BD, assim como dos atributos da classe para suas

colunas.

Quadro 2 – Trecho da classe “Paciente” demonstrando o uso de anotações

A anotação “Entity” garante que os objetos desta classe serão gerenciados pela JPA

como objetos que podem ser persistidos. A anotação “Table” mapeia a classe “Pessoa” para

uma tabela do BD relacional, enquanto que as anotações “Column” declaram para quais

campos os atributos da classe estão mapeados, assim como suas características (no caso do

Quadro 2, são tamanho e obrigatoriedade). Em outros POJOs são realizados diferentes tipos

de mapeamento, como o de chaves estrangeiras, chave primária, multiplicidade e herança.

Estas entidades são manipuladas através da JPA e o Hibermate, que utilizam conexões com o

BD.

O Quadro 3 apresenta o arquivo “sagcc-ds.xml”, que define uma fonte de dados

Page 62: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

62

(datasource) para o SAGCC.

Quadro 3 – Arquivo que contém as configurações de conexão com o BD

Neste arquivo é definido o nome do datasource (SAGCCDS), e as configurações para

conexão com o BD, como a classe do driver de conexão JDBC do SGBD (neste caso o

MySQL), a Uniform Resource Locator (URL) de conexão com o banco de dados (nesta URL

está descrito qual o nome do BD para a conexão, sendo neste caso “SAGCC”), usuário e

senha do banco, e a quantidade possível (mínima e máxima), de conexões ativas com o BD

em um determinado momento.

O datasource é carregado pelo servidor JBoss quando este é iniciado, podendo ser

requerido a qualquer momento pela aplicação a fim de solicitar uma conexão com o BD. Esta

fonte de dados é utilizada pela JPA e o Hibernate para realizar as operações de persistência. A

associação entre o datasource e a JPA/Hibernate é realizada no arquivo “persistence.xml”,

ilustrado no Quadro 4.

Quadro 4 – Arquivo que contém as configurações da JPA e Hibernate

O arquivo “persistence.xml” define uma unidade de persistência com o banco de

dados, que possuirá um número arbitrário de propriedades dependentes do provedor da JPA

utilizado. Como não é especificado nenhum fornecedor, a JPA assume a utilização do

Hibermate. A associação do datasource à unidade de persistência é realizada na tag “jta-data-

Page 63: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

63

source”. A propriedade “hibernate.hbm2ddl.auto” configurada com o valor update faz com

que qualquer alteração nas classes anotadas seja refletida automaticamente na base de dados

selecionada no datasource. O Hibernate gera e executa o código de definição das tabelas e

seus relacionamentos automaticamente, tendo como base os POJOs anotados, não sendo

necessário nenhum esforço adicional para criar o BD físico. As demais propriedades do

arquivo definem a exibição em logs e formatação das sentenças SQL geradas pelo Hibernate.

O Quadro 5 demonstra o método “localizarTodos” da classe controladora

“AgendaPacientesControl”. Este método é responsável por localizar todos os agendamentos

de um determinado paciente e adiciona-los a um mapa (representado na linguagem Java pela

classe “java.util.HashMap”), para que posteriormente a camada de apresentação através de

uma JSP, liste os registros para o usuário.

Quadro 5 – Trecho de código responsável por localizar todos agendamentos de um paciente

A primeira elipse representa o código responsável por recuperar o EJB

“AgendamentoDAOBean” para que posteriormente o mesmo seja utilizado para acesso ao

BD, recuperando todos os agendamentos do paciente.

O objeto é obtido através do contexto da Java Naming and Directory Interface (JNDI),

que neste caso é a tecnologia responsável por recuperar os EJBs instanciados na memória. Os

EJBs são instanciados em memória após o gerenciamento, ou seja deploy da aplicação pelo

servidor JBoss. Este EJB pode ser recuperado a qualquer momento pelo aplicativo, a fim de

Page 64: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

64

que seus serviços sejam utilizados, apenas informando à JNDI qual o nome que o objeto está

anexado ao contexto. Conforme explicitado no Quadro 5, este texto é composto pelo nome da

aplicação EAR (“sagcc”), o nome do EJB (“AgendamentoDAOBean”), e o tipo de acesso

(“local”, visto se tratar de uma aplicação WEB, e não cliente/servidor).

Após recuperar o EJB com a instrução explicada, cria-se um novo objeto do tipo

“Paciente”, o qual será utilizado para busca dos agendamentos na BD. A segunda elipse

evidencia a configuração do atributo “cgcCpf” do objeto, que para a classe “Paciente”

representa a chave primária da tabela “PACIENTE”. O valor configurado é obtido do

controlador, que mantém o estado do “cgcCpf” dos agendamentos a serem buscados.

A terceira elipse chama o método “buscaAgendamentosPessoa” de

“AgendamentoDAOBean”, que retornará uma lista contendo todos “Agendamentos” do

paciente. A codificação deste método é ilustrada no Quadro 6.

Quadro 6 – Trecho de código responsável por iniciar uma transação com o BD a fim de buscar todos agendamentos de um paciente

Quando um método de um EJB é invocado, inicia-se automaticamente uma transação

com o BD. Esta transação é finalizada após a execução do método, caso não seja antes

programaticamente encerrada pelo desenvolvedor. A forma que a conexão com o BD é

recuperada e utilizada fica transparente, pois é tratada pela tecnologia EJB 3.0 e a JPA.

Page 65: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

65

O retângulo vermelho no Quadro 6 evidencia o código responsável por executar a

consulta no BD, considerando o objeto “Paciente” passado como parâmetro no controlador.

Primeiramente é recuperado um objeto do tipo “javax.persistence.EntityManager”, herdado da

superclasse “GenericEJBDAO”. Este objeto encapsula uma sessão com o BD. Posteriormente

é criada uma consulta nomeada, ou named query, com o “cgcCpf” do “Paciente”, retornando

uma lista contendo todos agendamentos para o controlador.

O retângulo vermelho no Quadro 7 demonstra a named query anotada na classe

“Agendamento”, responsável por retornar os agendamentos de um paciente.

Quadro 7 – Consulta declarada para recuperar todos agendamentos de um paciente

As named queries são consultas estáticas escritas através da Enterprise JavaBeans

Query Language (EJB-QL), que é uma linguagem de consultas orientada a objetos,

sintaticamente muito parecida com a SQL. Esta tecnologia traz portabilidade às consultas,

Page 66: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

66

pois usam classes anotadas (entidades) para o modelo de dados, não dependendo portanto do

dialeto SQL utilizado pelo SGBD configurado.

3.4 OPERACIONALIDADE DA IMPLEMENTAÇÃO

Esta seção apresenta um estudo de caso, do ponto de vista do usuário, objetivando

demonstrar a funcionalidade e operacionalidade do aplicativo. O conteúdo apresentado é

composto por uma ilustração simplificada do funcionamento do sistema, representado na

Figura 17, e a explicação detalhada das interfaces e seu funcionamento relativo aos módulos

da clínica de fisioterapia e do paciente.

Figura 17 – Ilustração do funcionamento do sistema do ponto de vista do usuário

A Figura 17 demonstra de forma simplificada o funcionamento do SAGCC.

Primeiramente o usuário acessa o portal por meio de um navegador WEB instalado em um

microcomputador. Cada ação executada é enviada através da Internet ao servidor onde o

aplicativo está instalado. Este servidor processa a informação, acessa o banco de dados caso

seja necessário, e retorna o resultado para o usuário.

3.4.1 Módulo da clínica de fisioterapia

Ao digitar o endereço do SAGCC, o usuário é direcionado para a página principal do

portal apresentada na Figura 18. Para acessar o sistema o usuário clica na aba “Acesso”.

Page 67: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

67

Figura 18 – Página de apresentação do portal

A Figura 19 ilustra um profissional da clínica com perfil de administrador do portal

acessando o SAGCC. Este usuário possui um cadastro pré-definido no banco de dados do

portal.

Figura 19 – Acesso ao sistema pelo administrador do portal

Após efetuar o login informando o nome de usuário e senha, o administrador tem

Page 68: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

68

acesso aos Portlets de administração do portal, delimitados na página “Administração”

ilustrada na Figura 20, assim como os Portlets do SAGCC configurados nas demais páginas.

As funcionalidades dos Portlets de administração serão detalhadas mais à diante. Para acessar

uma página específica o usuário deve clicar sobre o nome da aba.

Figura 20 – Página de administração do portal

A Figura 21 apresenta o Portlet de cadastro de pacientes acessado por meio da aba

“Paciente”.

Figura 21 – Cadastro de pacientes pelo administrador do portal

Page 69: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

69

Após cadastrar um paciente, é possível localiza-lo clicando no botão “Localizar”. A

página de consulta de pacientes é demonstrada na Figura 22. Para listar todos pacientes

cadastrados, o administrador do portal não deve informar nenhum valor nos campos desta

página.

Figura 22 – Consulta de pacientes pelo administrador do portal

A Figura 23 ilustra a página de resultado de uma consulta de pacientes.

Figura 23 – Resultado da consulta de pacientes pelo administrador do portal

Page 70: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

70

Após realizar a consulta de um paciente, o administrador do portal pode alterar os

dados cadastrais clicando no botão “Alterar”. A página de alteração de um paciente está

disponível na Figura 24.

Figura 24 – Alteração de um paciente pelo administrador do portal

A Figura 25 ilustra a página de cadastro de fisioterapeutas acessada por meio da aba

“Fisioterapeuta”. Neste cadastro, conforme indicado, é possível informar se o fisioterapeuta

em questão deve receber e-mails de notificação no momento que um paciente cancelar, alterar

ou efetuar um agendamento.

Figura 25 – Cadastro de fisioterapeutas pelo administrador do portal

Page 71: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

71

Assim como no cadastro de pacientes, é possível localizar todos os fisioterapeutas ou

um em específico clicando no botão “Localizar”. A página de consulta de fisioterapeutas é

demonstrada na Figura 26.

Figura 26 – Consulta de fisioterapeutas pelo administrador do portal

A Figura 27 ilustra a página de resultado de uma consulta de fisioterapeutas.

Figura 27 – Resultado da consulta de fisioterapeutas pelo administrador do portal

Page 72: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

72

Após realizar a consulta de um fisioterapeuta, o administrador do portal pode alterar os

dados cadastrais clicando no botão “Alterar”. A página de alteração de um fisioterapeuta está

disponível na Figura 28.

Figura 28 – Alteração de um fisioterapeuta pelo administrador do portal

Para incluir um cadastro a fim de receber os e-mails de notificação, o administrador do

portal utiliza o Portlet de usuários de notificação ilustrado na Figura 29. Este Portlet é

acessado através da aba “Usuário Notificação”.

Figura 29 – Cadastro de usuários de notificação pelo administrador do portal

Page 73: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

73

Após cadastrar um usuário de notificação, é possível localiza-lo clicando no botão

“Localizar”. A página de consulta de usuários de notificação é demonstrada na Figura 30.

Para listar todos os usuários de notificação cadastrados, assim como nos demais cadastros

apresentados, o administrador do portal não deve informar nenhum valor nos campos desta

página.

Figura 30 – Consulta de usuários de notificação pelo administrador do portal

A Figura 31 ilustra a página de resultado de uma consulta de usuários de notificação.

Figura 31 – Resultado da consulta de usuários de notificação pelo administrador do portal

Page 74: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

74

Ao realizar a consulta de um usuário de notificação, o administrador do portal pode

alterar os dados cadastrais clicando no botão “Alterar”, ou excluí-los utilizando o botão

“Excluir”. A página de alteração de um usuário de notificação está disponível na Figura 32.

Figura 32 – Alteração de um usuário de notificação pelo administrador do portal

Os Portlets de administração do portal, conforme citado no início desta seção, estão

disponíveis na aba “Administração”. Estes Portlets são utilizados para administração de perfis

de acesso e usuários, sendo também responsáveis por alterar outras configurações do portal.

As principais funcionalidades do SAGCC configuradas em cada Portlet de administração são

detalhadas abaixo:

• Administração de Usuários: responsável pelo cadastro de usuários no portal e

associação de um usuário a um perfil de acesso, ou seja, a um papel.

• Administração de Comunidades: responsável pela associação de uma comunidade

a um usuário do portal.

A Figura 33 indica o atalho de acesso à página responsável pelo cadastro de um

usuário no portal. A partir da visão demonstrada nesta figura é possível consultar um usuário

específico informando o nome, sobrenome, e-mail ou status.

Page 75: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

75

Figura 33 – Atalho para o cadastro de um usuário do portal

Na Figura 34 está ilustrada a lista dos usuários cadastrados no portal. Para incluir um

novo usuário é necessário clicar no botão “Adicione”. Para editar as informações de um

usuário já existente, deve-se clicar no botão “Edite”. O botão “Desative” é utilizado para

desativar um usuário pré-cadastrado no portal.

Figura 34 – Lista de usuários cadastrados no portal

Page 76: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

76

A página de cadastro de usuários no portal está demonstrada na Figura 33.

Figura 35 – Cadastro de um usuário do portal

Após incluir um usuário no portal é disponibilizada uma área para digitação de

informações mais detalhadas do usuário, como idioma e mensagem de boas vindas. Estas

características são demonstradas na Figura 36. Nesta figura a aba “Papéis” indica o atalho

para editar os perfis de acesso, ou seja, papéis, configurados para o usuário.

Figura 36 – Cadastro de informações detalhadas de um usuário do portal

Page 77: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

77

Existem quatro papéis padrão no portal Liferay. São eles:

a) Administrator – representa um usuário administrador que pode gerenciar os

Portlets, usuários, comunidades, e perfis de acesso do portal;

b) Power User – representa um usuário que pode gerenciar os Portlets disponíveis

para o seu perfil de acesso, assim como alterar informações relativas à sua conta no

portal;

c) User - representa um usuário que pode acessar os Portlets disponíveis para o seu

perfil de acesso e alterar informações relativas à sua conta no portal;

d) Guest – representa um visitante do portal, que ainda não possui uma conta de

acesso. Estes usuários estão restritos apenas à página de apresentação do portal.

A Figura 36 demonstra os papéis que os usuários são adicionados automaticamente ao

criar uma nova conta. Com base na descrição de cada papel, o administrador opta por quais

perfis o usuário deverá pertencer. Caso queira excluir um papel em especial para o usuário, o

administrador pode utilizar o botão indicado na Figura 37.

Figura 37 – Associação de papéis a um usuário do portal

Após cadastrar um usuário no portal, o administrador pode adicioná-lo a uma das

comunidades existentes. Comunidades são modelos de páginas pré-definidos, que tendem a

padronizar a utilização do portal por determinados grupos de usuários. Por exemplo, a

Page 78: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

78

comunidade dos pacientes deve conter apenas os Portlets de cadastro de pacientes e agenda de

pacientes, restringindo o acesso às funcionalidades tangíveis a este tipo de usuário.

A Figura 38 ilustra como acessar as comunidades definidas no portal. É também

possível buscar uma comunidade específica pelo nome.

Figura 38 – Atalho para acessar as comunidades definidas no portal

Existem três tipos de comunidades configuradas no portal:

a) Guest – comunidade destinada aos usuários visitantes do portal. Restringe quais

Portlets deverão ser apresentados na página de apresentação do portal;

b) Pacientes - comunidade destinada aos usuários do sistema que são pacientes da

clínica de fisioterapia. Restringe quais Portlets deverão ser apresentados aos

pacientes da clínica que possuem acesso ao portal;

c) Profissional da Clínica - comunidade destinada aos usuários do sistema que são

profissionais da clínica de fisioterapia. Restringe quais Portlets deverão ser

apresentados aos profissionais da clínica que possuem acesso ao portal.

A lista das comunidades é ilustrada na Figura 39.

Page 79: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

79

Figura 39 – Lista de comunidades do portal

Ainda na página da Figura 39, é possível delegar uma determinada comunidade a um

ou mais usuários pré-cadastrados. A Figura 40 demonstra a página que contém todos os

usuários associados à comunidade “Profissional da Clínica”. Para adicionar um ou mais

usuários à comunidade, o administrador do portal acessa a aba “Disponível”.

Figura 40 – Lista de usuários de uma comunidade

Page 80: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

80

Após selecionar os novos usuários que farão parte da comunidade, o administrador do

portal clica sobre o botão “Associações Do Update” e finaliza a operação. Esta ação está

demonstrada na Figura 41.

Figura 41 – Associação de usuários a uma comunidade

O administrador do portal possui acesso a três tipos diferentes de agenda: agenda do

paciente, agenda do fisioterapeuta e agenda geral. A visão de meses da agenda de pacientes é

demonstrada na Figura 42. A agenda de pacientes é acessada através da aba “Agenda

Paciente”.

Figura 42 – Visão da agenda de pacientes por mês

Page 81: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

81

Para visualizar os agendamentos de um paciente em específico, o administrador do

portal deve selecionar o paciente clicando sobre o botão “Localizar”. O Portlet não irá

considerar nenhum agendamento, caso o paciente da agenda não seja previamente

selecionado. A Figura 43 ilustra a página de consulta do paciente.

Figura 43 – Consulta do paciente da agenda de pacientes

Após consultar o paciente da agenda, o administrador do portal deverá clicar sobre seu

nome na página de consulta, fazendo com que o Portlet associe o paciente à agenda.

A Figura 44 demonstra um paciente associado à agenda de pacientes.

Figura 44 – Associação de um paciente à agenda de pacientes

Page 82: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

82

O administrador do portal pode selecionar o mês e ano do agendamento pelas caixas de

diálogo, conforme a Figura 45.

Figura 45 – Seleção do mês e ano do agendamento da agenda de pacientes

Após selecionar o mês e ano do agendamento, o administrador do portal pode

selecionar o dia do agendamento clicando sobre o link associado ao dia do mês no calendário.

A partir desta página o administrador pode ainda criar um novo agendamento para o paciente,

clicando no botão “Novo Agendamento”, acessar a visão da agenda por ano clicando no botão

“Calendário Ano”, ou listar todos agendamentos do paciente clicando no botão “Todos

Agendamentos”.

A Figura 46 demonstra a página com a visão de agendamentos por ano. Por esta visão

o administrador do portal pode acessar os agendamentos de qualquer dia de um ano

selecionado na caixa “Ano”. Pode-se selecionar o dia do agendamento clicando sobre o link

associado ao dia do mês no calendário, ou acessar as demais páginas da agenda de pacientes

através dos botões disponíveis na parte inferior do Portlet.

Page 83: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

83

Figura 46 – Visão da agenda de pacientes por ano

Ao clicar em um dia em específico da visão por mês ou ano, o administrador do portal

é direcionado para a página ilustrada na Figura 47.

Figura 47 – Agendamentos do dia de um determinado paciente

Page 84: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

84

Nesta página o administrador do portal possui a oportunidade de alterar um

determinado agendamento clicando no botão “Alterar”, ou acessar as demais páginas da

agenda de pacientes através dos botões disponíveis na parte inferior do Portlet.

A Figura 48 ilustra uma lista contendo todos agendamentos de um paciente, acessada

por meio do botão “Todos Agendamentos”.

Figura 48 – Lista com todos agendamentos de um determinado paciente

A Figura 49 demonstra a página de inclusão de um novo agendamento pela agenda de

pacientes.

Figura 49 – Página de inclusão de um novo agendamento pela agenda de pacientes

Page 85: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

85

Nesta página o administrador do portal pode selecionar o paciente do novo

agendamento, assim como o ano, mês, dia e hora, uma ou mais formas de confirmação, digitar

o título do agendamento e uma descrição da patologia. O administrador do portal pode

também acessar as demais páginas da agenda de pacientes através dos botões disponíveis na

parte inferior do Portlet.

Após efetuar um agendamento pela agenda de pacientes o sistema envia

automaticamente um e-mail para os usuários de notificação cadastrados. O modelo do e-mail

de notificação de um novo agendamento realizado pela agenda de pacientes é apresentado no

Apêndice B. Na Figura 50 é ilustrado o correio acessado por um webmail.

Figura 50 – Correio de notificação acessado por um webmail

Por meio das páginas de consultas de agendamentos apresentadas, o administrador do

portal pode alterar os dados de um agendamento pré-cadastrado. A Figura 51 demonstra a

página de alteração de um agendamento pela agenda de pacientes.

Page 86: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

86

Figura 51 – Página de alteração de um agendamento pela agenda de pacientes

A partir desta tela o administrador do portal pode alterar os dados de um agendamento

cadastrado, assim como acessar as demais páginas da agenda de pacientes através dos botões

disponíveis na parte inferior do Portlet. O administrador pode ainda cancelar o agendamento

por meio do botão “Cancelar Agendamento”. A Figura 51 ilustra a página de um

agendamento incluído, com os campos habilitados para edição.

Caso o administrador do portal cancele ou altere o agendamento por meio da agenda

de pacientes, o sistema envia automaticamente um e-mail para os usuários de notificação

cadastrados informando a ação. O modelo do e-mail de notificação de um agendamento

alterado ou cancelado pela agenda de pacientes é apresentado no Apêndice B.

A Figura 52 demonstra a página de um agendamento cancelado, com os campos

desabilitados para edição.

Page 87: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

87

Figura 52 – Consulta de um agendamento cancelado por meio da agenda de pacientes

A Figura 53 ilustra a página de um agendamento rejeitado pela clínica, com os campos

desabilitados para edição.

Figura 53 – Consulta de um agendamento rejeitado pela clínica por meio da agenda de pacientes

A Figura 54 apresenta a página de um agendamento confirmado pela clínica, com os

Page 88: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

88

campos desabilitados para edição, exceto pelo botão para cancelamento do agendamento.

Figura 54 – Consulta de um agendamento confirmado pela clínica por meio da agenda de pacientes

A Figura 55 ilustra a visão de meses da agenda de fisioterapeutas, acessada por meio

da aba “Agenda Fisioterapeuta”.

Figura 55 – Visão da agenda de fisioterapeutas por mês

Page 89: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

89

Para visualizar os agendamentos de um fisioterapeuta em específico, assim como na

agenda de pacientes, o administrador do portal deve selecionar o fisioterapeuta clicando sobre

o botão “Localizar”. O Portlet não irá considerar nenhum agendamento, caso o fisioterapeuta

da agenda não seja previamente selecionado. A Figura 56 ilustra a página de consulta do

fisioterapeuta.

Figura 56 – Consulta do fisioterapeuta da agenda de fisioterapeutas

Após consultar o fisioterapeuta da agenda, o administrador do portal deverá clicar

sobre seu nome na página de consulta, fazendo com que o Portlet associe o fisioterapeuta à

agenda.

A Figura 57 demonstra um fisioterapeuta associado à agenda de fisioterapeutas.

Page 90: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

90

Figura 57 –Associação de um fisioterapeuta à agenda de fisioterapeutas

O comportamento das outras páginas da agenda de fisioterapeutas é singular ao

descrito para agenda de pacientes.

Figura 58 – Seleção do mês e ano do agendamento da agenda de fisioterapeutas

Page 91: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

91

Figura 59 – Visão da agenda de fisioterapeutas por ano e seleção do ano do agendamento

Figura 60 – Agendamentos do dia de um determinado fisioterapeuta

Page 92: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

92

Figura 61 – Lista com todos agendamentos de um determinado fisioterapeuta

A Figura 62 demonstra a página de inclusão de um novo agendamento pela agenda de

fisioterapeutas. O cadastro é semelhante ao existente na agenda de pacientes, porém o

administrador do portal também deve informar o fisioterapeuta do atendimento, além do

paciente, podendo escolher um dos status disponíveis para o agendamento.

Ao realizar a confirmação, rejeição ou cancelamento de um agendamento por meio da

agenda de fisioterapeutas, e se este agendamento possuir a forma de confirmação por e-mail,

o sistema irá enviar um correio eletrônico para o paciente do agendamento. Os modelos dos e-

mails de confirmação, rejeição e cancelamento dos agendamentos estão descritos no Apêndice

B.

Page 93: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

93

Figura 62 – Página de inclusão de um novo agendamento pela agenda de fisioterapeutas

Figura 63 – Página de alteração de um agendamento pela agenda de fisioterapeutas

Page 94: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

94

Figura 64 – Consulta de um agendamento cancelado por meio da agenda de fisioterapeutas

Figura 65 – Consulta de um agendamento rejeitado pela clínica por meio da agenda de fisioterapeutas

Page 95: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

95

Figura 66 – Consulta de um agendamento confirmado pela clínica por meio da agenda de fisioterapeutas

A Figura 67 ilustra a visão de meses da agenda geral, acessada por meio da aba

“Agenda Geral”. O comportamento das páginas da agenda geral é singular ao descrito para a

agenda dos pacientes e fisioterapeutas, com a característica de não ser necessário informar o

paciente ou fisioterapeuta nas páginas de consulta, pois são considerados todos agendamentos

da base de dados, respeitando o filtro por dia caso seja especificado.

Figura 67 – Visão da agenda geral por mês

Page 96: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

96

Figura 68 – Seleção do mês e ano do agendamento da agenda geral

Figura 69 – Visão da agenda geral por ano e seleção do ano do agendamento

Page 97: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

97

Figura 70 – Agendamentos do dia listados na agenda geral

Figura 71 – Lista com todos agendamentos

Page 98: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

98

A Figura 72 demonstra a página de inclusão de um novo agendamento pela agenda

geral. O cadastro é semelhante ao existente na agenda de fisioterapeutas, porém o

administrador do portal não precisa informar necessariamente o fisioterapeuta do

atendimento, apenas o paciente, podendo escolher um dos status disponíveis para o

agendamento. Caso seja selecionada a forma de confirmação “Confirmado pela Clínica”, faz-

se necessário informar o fisioterapeuta do atendimento.

Os modelos dos e-mails de confirmação, rejeição e cancelamento dos agendamentos

realizados pela agenda geral são idênticos aos da agenda de fisioterapeutas, estando descritos

no Apêndice B.

Figura 72 – Página de inclusão de um novo agendamento pela agenda geral

Page 99: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

99

Figura 73 – Página de alteração de um agendamento pela agenda geral

Figura 74 – Consulta de um agendamento cancelado por meio da agenda geral

Page 100: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

100

Figura 75 – Consulta de um agendamento rejeitado pela clínica por meio da agenda geral

Figura 76 – Consulta de um agendamento confirmado pela clínica por meio da agenda geral

Page 101: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

101

As páginas disponíveis para um profissional da clínica sem o perfil de administrador

do portal são idênticas às apresentadas até então, exceto pela possibilidade de acesso à aba de

administração e seus Portlets, e às opções de customização do portal, como adicionar páginas

ou editar preferências dos Portlets. Portanto as telas de um profissional da clínica não serão

detalhadas neste trabalho.

3.4.2 Módulo do paciente

Ao digitar o endereço do SAGCC, o paciente é direcionado para a página principal do

portal apresentada na Figura 77. Caso o paciente não seja um usuário do portal, o mesmo

poderá realizar seu cadastro através do Portlet disponível na página de apresentação,

informando um usuário e senha. Para isso, o paciente deverá clicar no link indicado na Figura

74.

Figura 77 – Página de apresentação do portal

A tela de cadastramento do paciente pela página de apresentação é demonstrada na

Figura 78.

Page 102: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

102

Figura 78 – Cadastro de paciente pela página de apresentação do portal

A página de confirmação exibida ao visitante após o cadastramento é apresentada na

Figura 79.

Figura 79 – Confirmação de cadastro de paciente pela página de apresentação do portal

Após o cadastramento, ou caso já possua um usuário e senha pré-definidos no banco de

Page 103: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

103

dados do portal, o paciente poderá acessar o sistema clicando na aba “Acesso”. A Figura 80

ilustra um usuário com perfil de paciente acessando o SAGCC.

Figura 80 – Acesso ao sistema pelo paciente

Após efetuar o login informando o nome de usuário e senha, o paciente tem acesso ao

Portlet de alteração de seu cadastro, delimitado na página “Meu Cadastro” ilustrada na Figura

81, assim como o Portlet de agenda do paciente acessível pela aba “Minha Agenda”.

Figura 81 – Página de alteração do cadastro do paciente

O Portlet da agenda do paciente irá considerar apenas agendamentos realizados para o

Page 104: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

104

usuário que está acessando o portal. O comportamento das outras páginas da agenda do

paciente é singular ao descrito para o acesso do administrador do portal, demonstrado na

seção 3.4.1.

Figura 82 – Visão da agenda do paciente por mês

Figura 83 – Seleção do mês e ano do agendamento da agenda do paciente

Page 105: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

105

Figura 84 – Visão da agenda do paciente por ano

Figura 85 – Agendamentos do dia do paciente

Page 106: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

106

Figura 86 – Lista com todos agendamentos do paciente

Figura 87 – Página de inclusão de um novo agendamento pela agenda do paciente

O e-mail de notificação de um agendamento novo, alterado ou cancelado pela agenda

Page 107: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

107

do paciente é apresentado no Apêndice B.

Figura 88 – Página de alteração de um agendamento pela agenda do paciente

Figura 89 – Consulta de um agendamento cancelado por meio da agenda do paciente

Page 108: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

108

Figura 90 – Consulta de um agendamento rejeitado pela clínica por meio da agenda do paciente

Figura 91 – Consulta de um agendamento confirmado pela clínica por meio da agenda do paciente

Page 109: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

109

3.5 RESULTADOS E DISCUSSÃO

No decorrer da fase inicial do trabalho houve uma grande preocupação em relação ao

tempo disponível para o desenvolvimento da aplicação, devido à quantidade considerável de

tecnologias utilizadas. Dentre estas tecnologias destacam-se a EJB 3.0 (Enterprise JavaBeans

3.0), JPA (Java Persistence API), Hibernate, JSF (JavaServer Faces), Portlets e o portal

Liferay, além das ferramentas utilizadas tanto na fase de análise como na implementação.

Para a utilização de temas e estilos do portal, por exemplo, assim como para o

gerenciamento de usuários e permissões, foi necessário estudar detalhes do funcionamento da

API do portal Liferay.

A base de dados do portal foi migrada para utilizar o banco MySQL, a fim de que o

SAGCC e o portal Liferay utilizassem o mesmo SGBD, unificando e facilitando o

gerenciamento dos dados da aplicação.

As customizações realizadas no coração do Liferay, como por exemplo, desabilitar

Portlets não utilizados pelo SAGCC visando o aumento de desempenho do sistema, foram

efetuadas por meio do ambiente extensível (EXT), assim como recomendado na

documentação do portal. O ambiente extensível disponibiliza o código fonte do Liferay, a

partir de onde é possível alterar as classes e configurações de infra-estrutura do portal.

Alterações feitas utilizando este ambiente permitem que atualizações futuras do portal possam

ser realizadas sem a necessidade de se preocupar com revisões nos fontes para garantir a

compatibilidade entre novas versões.

Antes de iniciar a utilização destas tecnologias foi necessário estudar os padrões MVC

e DAO, a fim de definir a modelagem da arquitetura do sistema.

Uma grande dificuldade encontrada após o estudo dos padrões e tecnologias, foi fazer

com que estas funcionassem em conjunto. O portal Liferay em sua versão corporativa, por

exemplo, possui o servidor JBoss integrado, porém este não contém um containter EJB 3.0

embutido, que é um recurso necessário para realizar o gerenciamento (deploy) de EJBs 3.0.

Foi necessário instalar e configurar no JBoss o container EJB 3.0 separadamente.

Ocorreram outros problemas após a instalação do container, como o estouro da

memória reservada para os objetos da Java Virtual Machine (JVM), em decorrência da

execução de ciclos consecutivos de alteração e gerenciamento da aplicação (hot-deploy). Para

corrigir este problema, fez-se necessário configurar a JVM e criar tarefas exclusivas

utilizando a tecnologia Ant, a fim de limpar o cache de JSPs mantido pelo JBoss que

Page 110: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

110

originava o problema.

Outra situação identificada foi a incompatibilidade de horários entre o JBoss e o portal

Liferay. Ao inserir e recuperar valores de dada/hora na base de dados, mesmo configurando

programaticamente o fuso horário de Brasília na JVM, os objetos que guardavam a

informação de data/hora dos agendamentos se comportavam de forma inesperada,

adicionando ou subtraindo horas ao valor original persistido na base de dados.

O estudo dos padrões, ferramentas, tecnologias, e os métodos e recursos utilizados para

que estas se comunicassem, consumiram uma grande parcela do tempo destinado ao

desenvolvimento do trabalho.

O estudo realizado na fundamentação teórica demonstrou-se de suma importância na

fase de modelagem da aplicação, em especial os estudos realizados sobre os padrões de

projeto MVC e DAO. O conhecimento destes padrões foi um requisito essencial para garantir

a utilização e a comunicação efetiva entre as diferentes tecnologias.

A implementação do SAGCC foi totalmente baseada no diagrama de classes definido

previamente na fase de especificação. Esse foi um fator muito importante, pois possibilitou

prever problemas que poderiam ocorrer durante a fase de desenvolvimento. Houveram poucos

casos durante o desenvolvimento que levaram à alteração da especificação, não representando

muito esforço em modificar a modelagem.

Ao se comparar a aplicação desenvolvida com os sistemas destinados ao agendamento

de consultas clínicas disponíveis no mercado, nota-se que a mesma apresenta uma

característica não encontrada nas demais: a utilização de um portal corporativo e da

tecnologia de Portlets como meio de disponibilizar serviços de agendamento e gerenciamento

de consultas. A preocupação em utilizar padrões de projeto e tecnologias Java também é

perceptível no trabalho correlato de Siqueira (2004).

Page 111: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

111

4 CONSIDERAÇÕES FINAIS

O objetivo do trabalho foi atingido, o qual consistia no desenvolvimento de uma

aplicação para automatizar o processo de agendamento, confirmação e gerenciamento de

consultas clínicas on-line, através de um portal corporativo. O sistema foi concebido para

utilização tanto pelos profissionais de uma clínica de fisioterapia, quanto para pacientes,

conforme os requisitos levantados, tendo a função principal de permitir o agendamento e

confirmação de consultas via Internet, informando os usuários do sistema através do envio de

mensagens de notificação.

O sistema automatizou as operações de agendamento e gerenciamento de consultas

utilizando novas tecnologias, incorporando assim a extensão da informática em um processo

essencial aos profissionais e pacientes de uma clínica de fisioterapia, trazendo maior

facilidade de acesso, controle e manipulação de informações tangentes aos agendamentos.

Para o desenvolvimento do sistema foram utilizadas tecnologias, padrões e ferramentas

conceituadas no mercado de desenvolvimento de software. Algumas tecnologias como o

Servidor de aplicações Java JBoss, container WEB Tomcat, tecnologia de Portais e Portlets e

os padrões de projeto DAO e MVC foram considerados pré-requisitos para a implementação

do SAGCC.

O Liferay demonstrou ser um portal corporativo muito robusto e ao mesmo tempo

flexível, oferecendo todos os requisitos necessários para cobrir, por exemplo, a

implementação dos Portlets utilizando em conjunto a tecnologia JSF. Outra característica

positiva do Liferay foi a facilidade de customização do portal, assim como a intuitiva

interface para tratar a lógica de acesso de usuários.

A JPA e o Hibernate em conjunto com a tecnologia EJB 3.0 apresentaram

características importantes como praticidade no desenvolvimento, que contribuíram

enormemente para a produtividade, economizado código e mantendo as preocupações na

lógica do negócio que diz respeito ao agendamento e gerenciamento de consultas.

4.1 EXTENSÕES

Os objetivos específicos do trabalho foram atingidos, salvo por dois requisitos

Page 112: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

112

funcionais e uma regra de negócio apresentados no tópico 3.1 (Requisitos Principais do

Problema a Ser Trabalhado) que não foram completamente implementados, devido ao tempo

gasto no estudo e integração das tecnologias e padrões utilizados no desenvolvimento.

Tratam-se dos RF05 e RF14, assim como a RN04. O aspecto do RF05 não implementado no

SAGCC foi o envio de mensagens de confirmação por SMS, abrangendo também o escopo da

RN04. A característica não realizada do RF14 foi a disponibilidade de visualização das

agendas por semana e mês.

As sugestões para trabalhos futuros incluem a implementação de uma interface rica

com o usuário, incorporação das visões das agendas por semana e mês, implementação da

forma de confirmação por SMS, criação de relatórios assim como novos módulos para o

portal.

Se comparado à HTML pura, a tecnologia de Portlets trás para o SAGCC uma maior

proximidade das aplicações desktop tradicionais, enquanto ao maior grau de iteração e

personalização. A interface do sistema pode ser melhorada ainda mais para possibilitar uma

experiência contínua ao usuário enquanto à utilização dos componentes gráficos, trazendo

recursos como arrastar e soltar, ou autocomplete de textos, por exemplo. Estas características

poderiam ser implementadas utilizando tecnologias como o Asynchronous Javascript And

XML (AJAX).

As visões das agendas por semana e mês podem ser implementadas com base na lógica

das demais visões já existentes no SAGCC. Melhorando a interface do sistema conforme

sugerido, estas visões poderiam assumir um aspecto mais usual, indicando dinamicamente os

agendamentos realizados em um determinado dia assim como seus dados, sem a necessidade

de submeter a página HTML inteira. Outra melhoria na interface seria a distinção dos dias em

que existem consultas agendadas por cores nas diferentes visões da agenda. O Sistema

poderia ainda sugerir dias e horários para realização de um novo agendamento.

A forma de confirmação de agendamento por SMS pode ser implementada no sistema

sem haver necessidade de alterar o modo que as tecnologias e padrões foram utilizados.

Outras formas de confirmação podem ainda ser incorporadas, aumentando a flexibilidade do

sistema em relação às notificações de agendamentos.

Para extração de informações gerenciais, poderiam ser desenvolvidos relatórios

relacionando os agendamentos por paciente, fisioterapeuta, ou o número de atendimentos

realizados por convênio.

Por ter sido construído com base em uma arquitetura flexível, o SAGCC pode ser visto

como um módulo de um sistema completo para uma clínica de fisioterapia. Para tanto, fica a

Page 113: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

113

possibilidade de desenvolver outros módulos do portal corporativo da clínica, como o

gerenciamento de prontuários clínicos do paciente, por exemplo.

Page 114: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

114

REFERÊNCIAS BIBLIOGRÁFICAS

BAUER, Christian; KING, Gavin. Java Persistence with Hibernate: Revised edition of Hibernate in Action. New York: Manning Publications, 2007. 822 p.

BEZZERA, Eduardo. Princípios da análise e projeto de sistemas com UML. Rio de Janeiro: Campus, 2003. 286 p.

BOOCH, G.; RUMBAUGH, J.; JACOBSON, I. UML, guia do usuário. Rio de Janeiro: Campus, 2000. 472 p.

BURKE, Bill; MONSON, Richard. Enterprise JavaBeans 3.0. Santa Clara: O'reilly Media, 2006. 760 p.

CARVALHO JUNIOR, Paulo Marcondes. Modelo de uso da tecnologia de informação no suporte ao processo de ensino-aprendizagem baseado em problemas no curso médico: desenvolvimento e avaliação. 2002. 235 f. Tese (Doutorado - Engenharia Elétrica e Computação) Departamento de Engenharia Biomédica, Universidade Estadual de Campinas, Campinas, 2002. Disponível em: <http://libdigi.unicamp.br/document/?code=vtls000242814>. Acesso em: Apr. 2007.

COLLINS, Daniel. Data warehouses, enterprise information portal, and the SmartMart meta directory. Information Builders Systems Journal, New York, v. 12, n. 2, p.53-61, 01 abr. 1999.

COSTA, Claudio Giulliano Alves da. Desenvolvimento e avaliação tecnológica de um sistema de prontuário eletrônico do paciente, baseado nos paradigmas da World Wide Web e da engenharia de software. 2001. 268 f. Dissertação (Mestrado - Engenharia Elétrica e de Computação) Universidade Estadual de Campinas, Campinas, 2001. Disponível em: <http://libdigi.unicamp.br/document/?code=vtls000231024>. Acesso em: Apr. 2007.

DARVES, B. A saúde on-line. Bibliomed, Belo Horizonte, n. 1962, p.1-20, 01 jun. 2001. Disponível em: <http://www.bibliomed.com.br/lib/showdoc.cfm?LibCatID=-1&Search=saude%20online&LibDocID=137>. Acesso em: Maio 2007.

DIAS, Cláudia Augusto. Portal corporativo: conceitos e características. Brasília: ISSN, 2001. 30 v. Disponível em: <http://www.scielo.br/scielo.php?script=sci_abstract&pid=S0100-19652001000100007&lng=pt&nrm=iso&tlng=pt>. Acesso em: Maio 2007.

DOEDERLEIN, Osvaldo Pinali. Persistência Turbinada: DAOs otimizados, Caching e JDBC Avançado. Java Magazine, Rio de Janeiro, n. 25, p. 28-41, Jun. 2005.

FAERMAN, Julio. JavaServer Faces na Prática. Java Magazine, Rio de Janeiro, n. 22, p. 58-66, Mar. 2004.

Page 115: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

115

FAERMAN, Julio. Design Patterns Aplicados. Java Magazine, Rio de Janeiro, n. 20, p. 52-58, Jan. 2005.

FISIOTERAPIA. Definição e áreas de atuação, [2007a]. Disponível em: <http://www.fisioterapia.com.br/fisioterapia.asp>. Acesso em: Maio 2007.

______. Desenvolvendo ações para o crescimento da Fisioterapia, [2007b]. Disponível em: <http://www.fisioterapia.com.br>. Acesso em: Maio 2007.

LARMAN, Graig. Utilizando UML e padrões: uma introdução à análise e ao projeto orientados a objetos. Porto Alegre: Bookman, 1999. 493 p.

LEME, Felipe. Servlets Parte 1: conceitos e técnicas básicas. Java Magazine, Rio de Janeiro, n. 18, p. 32-42, Nov. 2004.

LIFERAY. Downloads, [2007a]. Disponível em: <http://www.liferay.com/web/guest/products/portal#Optimize%20existing%20IT%20investments>. Acesso em: Maio 2007.

______. Key business benefits, [2007b]. Disponível em: <http://www.liferay.com/web/guest/products/portal#Optimize%20existing%20IT%20investments>. Acesso em: Maio 2007.

______. Liferay, [2007c]. Disponível em: <http://www.liferay.com/>. Acesso em: Maio 2007.

LIFERAYPEDIA. LiferayPedia, [2007]. Disponível em: <http://wiki.liferay.com/>. Acesso em: Maio 2007.

LOZANO, Fernando. Aplicações WEB no Tomcat 5 Parte 1: primeiros passos no desenvolvimento JSP. Java Magazine, Rio de Janeiro, n. 18, p. 20-31, Nov. 2004.

PIRES, Waldir. Entendendo o Java Community Process (JCP). Mundo Java, Curitiba, n. 18, p.13-20, Set. 2006.

PORTALFISIOTERAPIA. O universo da Fisioterapia na Internet, [2007]. Disponível em: <http://www.portalfisioterapia.com.br>. Acesso em: Maio 2007.

RECKON ENGENHARIA DE SISTEMAS (Org.). Sistema de Agendamento Reckon, [2006]. Disponível em: <http://www.reckon.com.br/Agendamento_de_Consultas>. Acesso em: Abr. 2007.

REYNOLDS, Hadley; KOULOPOULOS, Tom. Enterprise knowledge has a face. Intelligent Enterprise, New York, v. 2, n. 5, p.29-34, 30 fev. 1999. Disponível em: <http://www.intelligententerprise.com/db_area/archives/1999/993003/feat1.jhtml;jsessionid=IWJCJT5QJQFVIQSNDLQSKH0CJUNN2JVN>. Acesso em: Maio 2007.

Page 116: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

116

ROCHA, Andre Dantas; KUBOTA, Sergio Oliveira. Persistência no Java: iniciando com a Java Persistence API. Java Magazine, Rio de Janeiro, n. 39, p. 28-37, Fev. 2007.

RODRIGUES, Denise Munari et al. Saúde intermediada. Disponível em: <http://www.virtual.epm.br/material/tis/curr-med/temas/med5/med5t32000/grupo5/apresent.htm>. Acesso em: Maio 2007.

SABBATINI, Renato Marcos Endrizzi. Porque usar a informática? Informática Médica, Campinas, v. 2, n. 1, 1999. Disponível em: <http://www.informaticamedica.org.br/informaticamedica/n0201/editorial.htm/>. Acesso em: Apr. 2007.

SABBATINI, Renato Marcos Endrizzi. Introdução à microinformática para usuário em saúde. São Paulo: Academia de Ciências de São Paulo, 1982.

SANTOS, Alexandre Denes Dos. Portlets na Prática. Java Magazine, Rio de Janeiro, n. 25, p. 54-61, Jun. 2005.

SHORTLIFFE, E.H; BLOIS, M.S. The computer meets medicine and biology: emergence of a discipline. 2. ed. New York: Springer, 2001.

SIGULEM, Daniel. Um novo paradigma de aprendizado na prática médica da UNIFESP/EPM. 1997. 1 f. Tese (Mestrado - Livre- Docência, Departamento de Centro de Informática em Saúde) CIS-EPM, São Paulo, 1997. Cap. 1. Disponível em: <http://www.virtual.epm.br/material/tis/curr-med/infosaude/index.htm>. Acesso em: Maio 2007.

SIQUEIRA, Sandra Regina Cardoso. Sistema de Agendamento Universal. In: CONGRESSO BRASILEIRO DE INFORMÁTICA EM SAÚDE, 9., 2004, Ribeirão Preto. IX Congresso Brasileiro de Informática em Saúde. Ribeirão Preto: Atech/vidatis Sistemas de Informação em Saúde, 2004. p. 1 - 6. Disponível em: <http://www.sbis.org.br/cbis9/arquivos/862.doc>. Acesso em: Abr. 2007.

UNIIFMU-FISIOTERAPIA: revista de fisioterapia do centro universitário do UniFMU. São Paulo: ISNN, n. 2, 01 jun. 2003. Semestral. Disponível em: <http://www.fmu.br/pdf/edi_04_fisio_i_n.2.pdf>. Acesso em: Maio 2007.

VIEIRA, Ana Cristina Trench et al. Informática em saúde, [2000]. Trabalho das turmas do 3º e 5º ano do curso de medicina da UNIFESP. Disponível em: <http://www.virtual.epm.br/material/tis/curr-med/temas/med5/med5t32000/grupo3/grupoiii.htm>. Acesso em: Abr. 2007.

Page 117: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

117

APÊNDICE A – Definição das principais classes

A seguir são apresentados os atributos e métodos dos principais tipos de classes da aplicação.

Primeiramente é demonstrado um exemplo para cada tipo de classe mais relevante do módulo

WEB, e posteriormente do módulo EJB. Abaixo um exemplo de uma classe que representa

um Portlet de agendamento para fisioterapeutas.

Métodos da classe “br.com.sagcc.portlets.AgendaFisioterapeutasPortlet”

Método Detalhes

public processAction( ActionResponse response, ActionRequest request):void

Notas: Método padrão da API de Portlets. É responsável por processar uma ação executada em um Portlet.

public render( RenderResponse response, RenderRequest request):void

Notas: Método padrão da API de Portlets. É responsável por renderizar o Portlet.

private renderEdit( RenderResponse response, RenderRequest request):void

Notas: Método padrão da API de Portlets. É responsável por renderizar o estado de Edição de um Portlet.

private renderHelp( RenderResponse response, RenderRequest request):void

Notas: Método padrão da API de Portlets. É responsável por renderizar o estado de Ajuda de um Portlet.

private renderView( RenderResponse response, RenderRequest request):void

Notas: Método padrão da API de Portlets. É responsável por renderizar o estado de Visão de um Portlet.

Abaixo definição da classe responsável por realizar o processamento de controle do Portlet da

Agenda Geral.

Atributos da classe “br.com.sagcc.control.AgendaGeralControl”

Page 118: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

118

Atributo Detalhes

private String ano

Notas: Ano selecionado no formulário de visão da Agenda por mês e ano

private String anoAgendamento

Notas: Ano do Agendamento

private List anosFormularioCadastro

Notas: Lista contendo o número dos anos para popular o combo de ano

private String cgcCpfFisioterapeuta

Notas: Atributo utilizado na consulta do Fisioterapeuta do Agendamento

private String cgcCpfPaciente

Notas: Atributo utilizado na consulta do Paciente do Agendamento

private InicialContext ctx

Notas: Contexto JNDI para o lookup dos EJBs

private boolean desabilitaBtnCancelar

Notas: Flag para desabilitar o botão de cancelamento de Agendamentos do form de alteração

private boolean desabilitaCamposTela

Notas: Flag para desabilitar todos os campos do form de alteração de Agendamentos, excluindo o botão de cancelamento e os botões de consulta

private String descricaoPatologia

Notas: Descrição da patologia do Agendamento

private String diaAgendamento

Notas: Dia do Agendamento

private String diaConsulta

Notas: Dia a ser passado como parâmetro para localizar os Agendamentos de um determinado dia Este valor é configurado na jsp geralAgendaCalendario.jsp

private List diasFormularioCadastro

Notas: Lista contendo o número dos dias do mês para popular o combo de dia

private final int EMAIL_CANCELAR_AGENDAMENTO

Inicial: 3 Notas: Tipo de E-mail de Notificação para

Cancelamento de Agendamento

private final int EMAIL_CONFIRMAR_AGENDAMENTO

Inicial: 1 Notas: Tipo de E-mail de Notificação para

Confirmação de Agendamento

private final int EMAIL_REJEITAR_AGENDAMENTO

Inicial: 2 Notas: Tipo de E-mail de Notificação para Rejeição

de Agendamento

private String formaConfirmacaoEmail

Notas: Forma de confirmação por e-mail do Agendamento

private String formaConfirmacaoSMS

Notas: Forma de confirmação por SMS do Agendamento

Page 119: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

119

private String formaConfirmacaoTelefone

Notas: Forma de confirmação por telefone do Agendamento

private String horaAgendamento

Notas: Hora do Agendamento

private String idAgendamentoAlterar

Notas: Id do Agendamento a ser alterado a partir da JSP geralAgendamentosDia

private String idSituacaoAgendamento

Notas: Situação do Agendamento

private List listaAgendamentosDia

Notas: ArrayList com os Agendamentos de um determinado dia

private List listaAgendamentosGeral

Notas: ArrayList com todos os Agendamentos

private List listaDiasMesAbril

Notas: Lista do mês de Abril do ano para montar a visão do Calendário por Ano

private List listaDiasMesAgenda

Notas: ArrayList com os dias do mês de um determinado dia da semana

private List listaDiasMesAgosto

Notas: Lista do mês de Agosto do ano para montar a visão do Calendário por Ano

private List listaDiasMesDezembro

Notas: Lista do mês de Dezembro do ano para montar a visão do Calendário por Ano

private List listaDiasMesFevereiro

Notas: Lista do mês de Fevereiro do ano para montar a visão do Calendário por Ano

private List listaDiasMesJaneiro

Notas: Lista do mês de Janeiro do ano para montar a visão do Calendário por Ano

private List listaDiasMesJulho

Notas: Lista do mês de Julho do ano para montar a visão do Calendário por Ano

private List listaDiasMesJunho

Notas: Lista do mês de Junho do ano para montar a visão do Calendário por Ano

private List listaDiasMesMaio

Notas: Lista do mês de Maio do ano para montar a visão do Calendário por Ano

private List listaDiasMesMarco

Notas: Lista do mês de Março do ano para montar a visão do Calendário por Ano

private List listaDiasMesNovembro

Notas: Lista do mês de Novembro do ano para montar a visão do Calendário por Ano

private List listaDiasMesOutubro

Notas: Lista do mês de Outubro do ano para montar a visão do Calendário por Ano

private List listaDiasMesSetembro

Notas: Lista do mês de Setembro do ano para montar a visão do Calendário por Ano

private String mes

Notas: Mês selecionado no formulário de visão da Agenda por mês e ano

Page 120: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

120

private String mesAgendamento

Notas: Mês do Agendamento

private String mesConsulta

Notas: Mês a ser passado como parâmetro para localizar os Agendamentos de um determinado dia Este valor é configurado na jsp geralAgendaCalendarioAno.jsp

private List mesesFormularioCadastro

Notas: Lista contendo o nome dos mêses do ano para popular o combo de mês

private String minutoAgendamento

Notas: Minuto do Agendamento

private String nomeFisioterapeuta

Notas: Atributo utilizado na consulta Geral do Agendamento

private String nomePaciente

Notas: Atributo utilizado na consulta Geral do Agendamento

private boolean primeiraRenderizacaoAgenda

Notas: Flag indicando se é a primeira vez que a Agenda será renderizada Se for a primeira vez, o método montaVisaoMes() é invocado dentro da JSP geralAgendaCalendario a fim de montar o calendário de mês

private String tituloAgendamento

Notas: Título do Agendamento

Métodos da classe “br.com.sagcc.control.AgendaGeralControl”

Método Detalhes

public AgendaGeralControl():

Notas: Construtor padrão do Controlador. Responsável por invocar o método open()

public alterar():String

Notas: Atualiza objetos do tipo Agendamento @return String informando à camada de visão qual JSP deverá ser renderizada

public cancelar():String

Notas: Cancela um Agendamento e desabilita os campos do form para edição @return String informando à camada de visão qual JSP deverá ser renderizada

private enviarEmailNotificacaoAgendamento( int tipoEmail,

Page 121: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

121

Agendamento agendamento):void Notas: Método responsável por enviar um e-mail de notificação ao Paciente do Agendamento quando realizarem a confirmação, rejeição ou cancelamento de um Agendamento de acordo com o tipoEmail informado

protected finalize():void

Notas: Seta o contexto JNDI para nulo quando o objeto é retirado da memória.

public getAnosFormularioCadastro():List

Notas: Popula valores do ComboBox de Anos do Form da Agenda Geral

public getDiasFormularioCadastro():List

Notas: Popula valores do ComboBox de Dias do Form da Agenda Geral

public getMesesFormularioCadastro():List

Notas: Popula valores do ComboBox de Mêses do Form da Agenda Geral

private limparCampos():void

Notas: Limpa todos os atributos do Controlador mapeados para os campos da JSP

public localizar():String

Notas: Localiza os Agendamentos de um dia @return String informando à camada de visão qual JSP deverá ser renderizada

public localizarListener( ActionEvent actionEvent):void

Notas: Listner utilizado para receber o dia que o usuário selecionou na página geralAgendaCalendario.jsp

public localizarTodos():String

Notas: Localiza todos os Agendamentos @return String informando à camada de visão qual JSP deverá ser renderizada

public montarVisaoAno():String

Notas: Cria doze calendários por ano, um para cada mês, a partir do ano selecionado pelo usuário no Form

public montarVisaoMes():String

Notas: Cria um calendário por mês a partir do mês

Page 122: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

122

selecionado pelo usuário no Form

private open():void

Notas: Recupera o contexto JNDI para realizar posteriormente o lookup dos EJBs

public salvar():String

Notas: Torna persistente um objeto do tipo Agendamento Se o método salvar() for chamado a partir do form de alteração, configura o id do Agendamento para que seja feito o update Senão, será criado um novo agendamento (insert) @return String informando à camada de visão qual JSP deverá ser renderizada

public selecionaAnoAgendamento( ValueChangeEvent event):void

Notas: Listner para o evento de seleção do Ano no formulário de Cadastro do Agendamento Geral

public selecionaAnoCalendarioAno( ValueChangeEvent event):void

Notas: Listner para o evento de seleção do Ano no formulário de visão da Agenda por Ano

public selecionaAnoCalendarioMes( ValueChangeEvent event):void

Notas: Listner para o evento de seleção do Ano no formulário de visão da Agenda por Mês

public selecionaMesAgendamento( ValueChangeEvent event):void

Notas: Listner para o evento de seleção do Mês no formulário de Cadastro do Agendamento Geral

public selecionaMesCalendarioMes( ValueChangeEvent event):void

Notas: Listner para o evento de seleção do Mês no formulário de visão da Agenda por Mês

Abaixo definição da classe que representa um validator invocado para validar informações

digitadas no formulário de Cadastro de Pacientes.

Métodos da classe “br.com.sagcc.validator.PacientesValidator”

Método Detalhes

Page 123: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

123

public validaFormPaciente( Object value, UIComponent componet, FacesContext context):void

Notas: Valida dados digitados no Form de Cadastro de Pacientes => Valida se o cgcCpf digitado no Formulário é um número válido; Se for um número válido, verifica se já existe um registro na base de dados com o mesmo CGC/CPF =>Valida o e-mail digitado pelo usuário =>Valida formato da Data de Nascimento digitada pelo usuário

Definição da classe que representa um Servlet utilizado na LOV de consulta de Pacientes do

Agendamento.

Atributos da classe “br.com.sagcc.servlet.AgendaPacientesServlet”

Atributo Detalhes

private InicialContext ctx

Inicial: null Notas: Contexto para o lookup dos EJBs

Métodos da classe “br.com.sagcc.servlet.AgendaPacientesServlet”

Método Detalhes

public AgendaPacientesServlet():

Notas: Construtor padrão sem argumentos

public destroy():

protected finalize():void

public init( ServletConfig config):

Notas: Processamento inicial do Servlet Recupera o contexto JNDI para realizar posteriormente o lookup dos EJBs

private listarPacientes( HttpServletResponse response, HttpServletRequest request):void

protected service( HttpServletResponse response, HttpServletRequest request):void

Page 124: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

124

Definição da classe utilizada para o envio de mensagens de e-mail, através do protocolo

SMTP.

Atributos da classe “br.com.sagcc.util.mail.EnviadorDeEmail”

Atributo Detalhes

private static String EMAIL_REMETENTE

Inicial: enviador.email.remetente

private static String NOME_REMETENTE

Inicial: enviador.nome.remetente

private static String PORTA_SMTP

Inicial: enviador.porta.smtp

private static String SENHA_REMETENTE

Inicial: enviador.senha.smtp

private static String SERVIDOR_SMTP

Inicial: enviador.servidor.remetente

private static String SSL_FACTORY

Inicial: enviador.ssl.factory Notas: Provê um socket para conexões autenticadas por

SSL

Métodos da classe “br.com.sagcc.util.mail.EnviadorDeEmail”

Método Detalhes

private adicionarConteudoEAnexo( String arquivo, String destinatario, String conteudo, Message mensagem):void

private criarMensagem( Pessoa destinatario, String assunto, Session session):Message

private criarMensagem( UsuarioNotificacao destinatario, String assunto, Session session):Message

public enviarEmail( boolean requerAutenticacaoSMTP, String assunto, Pessoa... destinatarios, String conteudo, String arquivo):void

Page 125: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

125

public enviarEmail( boolean requerAutenticacaoSMTP, String assunto, UsuarioNotificacao... destinatarios, String conteudo, String arquivo):void

private obterSessao():Session

A diante são descritas as definições dos principais tipos de classes e interfaces do módulo

EJB. A figura abaixo demonstra a definição de uma interface implementada por todos DAOs

de negócio. Operações CRUD (create, read, update e delete) básicas dos DAOs são isoladas

nesta interface, e compartilhadas através de todas as implementações dos DAOs.

Métodos da interface “br.com.sagcc.dao.interfaces.GenericDAO”

Método Detalhes

package abstract buscaPorExemplo( String... propiedadeExcludente, T exemploDeInstancia):List

package abstract buscaPorId( boolean lock, ID id):T

package abstract buscarTodos():List

package abstract tornaPersistente( T entidade):T

package abstract tornaTransiente( ID id):void

A interface abaixo encapsula operações DAO de negócio referentes à entidade Agendamento.

Métodos da interface “br.com.sagcc.dao.interfaces.AgendamentoDAO”

Método Detalhes

package abstract buscaAgendamentosDia( Date dia):List

Page 126: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

126

package abstract buscaAgendamentosDia( Pessoa pessoa, Date dia):List

package abstract buscaAgendamentosPeriodo( Date dataFinal, Date dataInicial):List

package abstract buscaAgendamentosPeriodo( Pessoa pessoa, Date dataFinal, Date dataInicial):List

package abstract buscaAgendamentosPessoa( Pessoa pessoa):List

package abstract buscarTodos():List

A classe abaixo implementa as operações genéricas CRUD dos DAOs utilizando a JPA e o

Hibernate. Os DAOs herdam desta classe, e parametrizam outros métodos específicos, se for

necessário.

Atributos da classe “br.com.sagcc.dao.ejb.GenericEJBDAO”

Atributo Detalhes

private EntityManager em

Notas: Se este DAO estiver gerenciado pelo JBoss por exemplo, o container irá injetar o correto contexto de persistência se um método deste DAO for chamado. Se o invocador for um componente conversasional statefull (Statefull SessionBean), o contexto de persistencia será ajustado para o escopo da conversação, não para o escopo da chamada do método. (no caso de EJBs stateless)

private Class tipoEntityBean

Notas: Representa a Entidade da superclasse genérica. O atributo tipoEntityBean deve ser atribuído automaticamente na chamada no Construtor da classe GenericEJBDAO.

Métodos da classe “br.com.sagcc.dao.ejb.GenericEJBDAO”

Método Detalhes

protected buscaPorCriteria( Criterion... criterio):List

Page 127: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

127

public buscaPorExemplo( String... excludeProperty, T exampleInstance):List

public buscaPorId( boolean lock, ID id):T

public buscarTodos():List

public clear():void

Notas: Deve executar uma chamada do método "clear()" sobre a EntityManager a fim de "limpa-la"

public flush():void

Notas: Deve executar uma chamada do método "flush()" sobre a EntityManager afim de "descarrega-la"

public GenericEJBDAO():void

Notas: O atributo tipoEntityBean deve ser atribuído automaticamente na chamada no Construtor da classe GenericEJBDAO.

protected getEntityManager():EntityManager

Notas: Se este DAO estiver gerenciado pelo JBoss por exemplo, o container irá injetar o correto contexto de persistência se um método deste DAO for chamado. Se o invocador for um componente conversasional statefull (Statefull SessionBean), o contexto de persistencia será ajustado para o escopo da conversação, não para o escopo da chamada do método. Este método pode ser chamado para setar o EntityManager manualmente, em um teste de integração por exemplo.

public getTipoEntityBean():Class

public setEntityManager( EntityManager em):void

Notas: Implementado apenas para utilização em testes, visto que o PersistenceContext gerencia automaticamente as transações atravéz de injeção de depenência, quando é utilizado um container EJB.

public tornaPersistente( T entity):T

public tornaTransiente( ID id):void

Page 128: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

128

Implementação EJB 3.0 (stateless) da interface “PacienteDAO” relacionada à operações não

CRUD. Operações CRUD já estão implementadas na superclasse “GenericEJBDAO”.

Métodos da classe “br.com.sagcc.dao.ejb. PacienteDAOBean”

Método Detalhes

public buscaPacientePorCriterio( String cidade, String email, String nome, String cgcCpf):List

Notas: Método responsável por buscar Pacientes utilizando a cláusula 'like', a fim de restringir a consulta aos parâmetros passados no método.

Page 129: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

129

APÊNDICE B – E-mails de notificação

Abaixo são apresentados os modelos dos e-mails de notificação enviados pela aplicação. Os

valores delimitados pelas chaves são parâmetros que o SAGCC insere dinamicamente ao

HTML, antes de enviar o correio para o(s) destinatário(s).

Modelo do e-mail de notificação de um novo agendamento realizado pela agenda de

pacientes.

Caro(a), Você está cadastrado(a) em nosso sistema e esta é uma mensagem para informar a inclusão de um novo Agendamento por um Paciente. Dados do novo Agendamento: Nome do Paciente: {0} E-mail do Paciente: {1} Data do Agendamento: {2} Título do Agendamento: {3} Descrição da Patologia: {4} Situação do Agendamento: {8} Forma(s) de confirmação: {5} {6} {7} Pedimos a gentileza de analisar no Portal da Clínica o Agendamento efetuado pelo Paciente a fim de enviar um parecer. Se você não quer mais receber nossos e-mails de notificação, por favor escreva para {9} solicitando descadastramento.

Page 130: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

130

Cordialmente, Portal Clínica Nova Físio

Modelo do e-mail de notificação de um agendamento alterado pela agenda de pacientes.

Caro(a), Você está cadastrado(a) em nosso sistema e esta é uma mensagem para informar a alteração de Agendamento por um Paciente. Dados Agendamento Alterado: Nome do Paciente: {0} E-mail do Paciente: {1} Data do Agendamento: {2} Título do Agendamento: {3} Descrição da Patologia: {4} Situação do Agendamento: {8} Forma(s) de confirmação: {5} {6} {7} Pedimos a gentileza de analisar no Portal da Clínica o Agendamento alterado pelo Paciente a fim de enviar um parecer. Se você não quer mais receber nossos e-mails de notificação, por favor escreva para {9} solicitando descadastramento. Cordialmente, Portal Clínica Nova Físio

Page 131: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

131

Modelo do e-mail de notificação de um agendamento cancelado pela agenda de pacientes.

Caro(a), Você está cadastrado(a) em nosso sistema e esta é uma mensagem para informar o cancelamento de um Agendamento por um Paciente. Dados do Agendamento cancelado: Nome do Paciente: {0} E-mail do Paciente: {1} Data do Agendamento: {2} Título do Agendamento: {3} Descrição da Patologia: {4} Situação do Agendamento: {8} Forma(s) de confirmação: {5} {6} {7} Pedimos a gentileza de analisar no Portal da Clínica o Agendamento cancelado pelo Paciente. Se você não quer mais receber nossos e-mails de notificação, por favor escreva para {9} solicitando descadastramento. Cordialmente, Portal Clínica Nova Físio

Modelo do e-mail de confirmação do agendamento enviado ao paciente.

Prezado(a) {0}, Você está cadastrado(a) em nosso sistema e esta é uma mensagem para informar a confirmação de um Agendamento pela Clínica.

Page 132: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

132

Dados do Agendamento Confirmado: Nome do Paciente: {0} E-mail do Paciente: {1} Nome do Fisioterapeuta: {10} Data do Agendamento: {2} Título do Agendamento: {3} Descrição da Patologia: {4} Situação do Agendamento: {8} Forma(s) de confirmação: {5} {6} {7} Caso exista alguma dúvida, pedimos a gentileza de analisar no Portal o Agendamento confirmado pela Clínica. Caso não queira mais receber nossos e-mails de notificação, basta ao realizar um novo Agendamento não selecionar a Forma de Confirmação por E-mail. Havendo alguma dificuldade, pedimos que entre em contato diretamente com a Clínica a fim de receber os devidos esclarecimentos. Aguardamos sua presença na consulta. Muito obrigado. Cordialmente, Portal Clínica Nova Físio

Modelo do e-mail de rejeição de um agendamento enviado ao paciente.

Prezado(a) {0},

Page 133: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

133

Você está cadastrado(a) em nosso sistema e esta é uma mensagem para informar a rejeição de um Agendamento pela Clínica. Dados do Agendamento Rejeitado: Nome do Paciente: {0} E-mail do Paciente: {1} Data do Agendamento: {2} Título do Agendamento: {3} Descrição da Patologia: {4} Situação do Agendamento: {8} Forma(s) de confirmação: {5} {6} {7} O motivo da rejeição do Agendamento pode variar. As causas mais comuns são conflitos de horários de outros Agendamentos ou falta de recursos disponíveis para atender a consulta. A Clínica ficará responsável por entrar em contato a fim de que seja acordado um novo horário e/ou dia para o Agendamento. Caso exista alguma dúvida, pedimos a gentileza de analisar no Portal o Agendamento rejeitado pela Clínica. Caso não queira mais receber nossos e-mails de notificação, basta ao realizar um novo Agendamento não selecionar a Forma de Confirmação por E-mail. Havendo alguma dificuldade, pedimos que entre em contato diretamente com a Clínica a fim de receber os devidos esclarecimentos. Agradecemos a compreensão. Cordialmente, Portal Clínica Nova Físio

Modelo do e-mail de cancelamento do agendamento enviado ao paciente.

Page 134: SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE …campeche.inf.furb.br/tccs/2007-I/2007-1pablodossantosalvesvf.pdf · O sistema foi concebido para utilização tanto pelos profissionais

134

Prezado(a) {0}, Você está cadastrado(a) em nosso sistema e esta é uma mensagem para informar o cancelamento de um Agendamento pela Clínica. Dados do Agendamento Cancelado: Nome do Paciente: {0} E-mail do Paciente: {1} Data do Agendamento: {2} Título do Agendamento: {3} Descrição da Patologia: {4} Situação do Agendamento: {8} Forma(s) de confirmação: {5} {6} {7} O motivo do cancelamento do Agendamento pode variar. Na maioria das vezes o cancelamento está associado à impossibilidade de presença do Paciente no dia da consulta, sendo necessário a criação de um novo agendamento em uma data futura. A Clínica ficará responsável por entrar em contato a fim de que seja acordado um novo horário e/ou dia para o Agendamento. Caso exista alguma dúvida, pedimos a gentileza de analisar no Portal o Agendamento cancelado pela Clínica. Caso não queira mais receber nossos e-mails de notificação, basta ao realizar um novo Agendamento não selecionar a Forma de Confirmação por E-mail. Havendo alguma dificuldade, pedimos que entre em contato diretamente com a Clínica a fim de receber os devidos esclarecimentos. Agradecemos a compreensão.

Cordialmente,

Portal Clínica Nova Físio