Issuu on Google+

F´abio de Almeida Aquotte Thiago Momesso de Menezes Paulo Roberto de Oliveira Anderson de Souza Zanichelli

Trabalho do Terceiro Bimestre

E NGENHARIA DE S OFTWARE II ´ D EPARTAMENTO DE I NFORM ATICA U NIVERSIDADE E STADUAL DE M ARING A´

Maring´a, Paran´a, Brasil 27 de Setembro de 2010


1

Documento de Requisitos

Introduc¸a˜ o

1.1 1.1.1

Objetivos

Este documento tem por objetivo especificar os requisitos do sistema CliniMaster, fornecendo aos clientes uma formalizac¸a˜ o das suas necessidades e aos desenvolvedores as informac¸o˜ es necess´arias ao processo de desenvolvimento do mesmo.

1.1.2

Vis˜ao Geral

O sistema CliniMaster tem por objetivo auxiliar no gerenciamento de uma cl´ınica m´edica, facilitando o controle das atividades cl´ınicas, administrativas e financeiras. As atividades cl´ınicas compreendem o controle das fichas dos pacientes, o agendamento e controle de consultas, o agendamento e controle de exames realizados na cl´ınica, o controle de exames realizados em laborat´orios externos, o agendamento e controle de procedimentos m´edicos, o controle de leitos de internac¸a˜ o, a emiss˜ao de receitas m´edicas, laudos e atestados e a venda de produtos. As atividades administrativas compreendem o controle do cadastro de funcion´arios, o controle do cadastro de fornecedores, o controle do cadastro de laborat´orios associados, o controle do estoque de suprimentos m´edicos e o controle do estoque de produtos. As atividades financeiras compreendem o controle de pagamento dos funcion´arios, o controle de contas a pagar e a receber e o controle de caixa.


1.1.3

Caracter´ısticas do Usu´ario

O sistema ser´a operado por trˆes tipos de usu´arios: Recepcionistas s˜ao respons´aveis pelo cadastro de pacientes, agendamento de consultas, exames, procedimentos e leitos, cadastramento de exames recebidos de laborat´orios e recebimentos. M´edicos s˜ao respons´aveis pelo controle das fichas dos pacientes, de consultas, exames, procedimentos e leitos, emiss˜ao de receitas, laudos e atestados e venda de produtos. Administradores s˜ao respons´aveis pelas atividades administrativas e financeiras bem como pela supervis˜ao do funcionamento geral da cl´ınica.

1.2 1.2.1

Requisitos Requisitos Funcionais

• O sistema deve gerenciar as fichas dos pacientes, permitindo ao usu´ario cadastrar, alterar, remover, buscar e visualizar informac¸o˜ es e hist´orico de pacientes. • O sistema deve gerenciar os m´edicos atendentes, permitindo ao usu´ario controlar a disponibilidade para atendimento de cada funcion´ario do tipo m´edico. • O sistema deve gerenciar as consultas, permitindo ao usu´ario agendar, remarcar e cancelar consultas e retornos, registrar o hor´ario de entrada e de sa´ıda do paciente e registrar faltas. • O sistema deve gerenciar os exames realizados na cl´ınica, permitindo ao usu´ario cadastrar, alterar, excluir, visualizar e buscar tipos de exames realizados na cl´ınica, agendar, remarcar e cancelar exames, registrar o hor´ario de realizac¸a˜ o e faltas e anexar arquivos do exame a` ficha do paciente. • O sistema deve gerenciar os exames realizados em laborat´orios externos, permitindo ao usu´ario cadastrar, alterar, excluir, visualizar e buscar tipos de exames realizados em laborat´orios externos, emitir guia do exame, registrar entrada do exame na cl´ınica e anexar arquivos do exame a` ficha do paciente. • O sistema deve gerenciar os procedimentos m´edicos, permitindo ao usu´ario cadastrar, alterar, excluir, visualizar e buscar tipos de procedimentos dispon´ıveis, agendar, remarcar e cancelar procedimentos, registrar o hor´ario de entrada e de sa´ıda do paciente, registrar faltas e registrar os suprimentos utilizados no procedimento. • O sistema deve gerenciar os leitos de internac¸a˜ o, permitindo ao usu´ario cadastrar, alterar, excluir, visualizar e buscar os leitos dispon´ıveis e agendar, liberar e visualizar o estado dos leitos. • O sistema deve gerenciar as receitas m´edicas, permitindo ao usu´ario cadastrar, alterar, excluir, visualizar e buscar os rem´edios dispon´ıveis para emiss˜ao de receitas e emitir, re-emitir, cancelar, visualizar e buscar receitas. • O sistema deve gerenciar laudos m´edicos, permitindo ao usu´ario cadastrar, alterar, excluir, visualizar e buscar os tipos de laudos dispon´ıveis e emitir, cancelar, visualizar e buscar laudos.


• O sistema deve gerenciar atestados m´edicos, permitindo ao usu´ario emitir, cancelar, visualizar e buscar atestados. • O sistema deve gerenciar a venda de produtos, permitindo ao usu´ario registrar, cancelar, visualizar e buscar vendas. • O sistema deve gerenciar o cadastro de funcion´arios, permitindo ao usu´ario cadastrar e alterar funcion´arios, visualizar o seu hist´orico e registrar a sua demiss˜ao ou aposentadoria. • O sistema deve gerenciar o cadastro de fornecedores, permitindo ao usu´ario cadastrar, alterar e remover fornecedores, visualizar o hist´orico de compras e associ´a-los a produtos ou suprimentos. • O sistema deve gerenciar o cadastro de laborat´orios associados, permitindo ao usu´ario cadastrar, alterar e excluir laborat´orios, visualizar o hist´orico de exames realizados e associar os exames dispon´ıveis. • O sistema deve gerenciar o estoque de suprimentos m´edicos, permitindo ao usu´ario cadastrar, alterar, excluir, visualizar e buscar suprimentos e gerenciando a sua compra e utilizac¸a˜ o. • O sistema deve gerenciar o estoque de produtos, permitindo ao usu´ario cadastrar, alterar, excluir, visualizar e buscar produtos e gerenciando a sua compra e venda. • O sistema deve gerenciar o pagamento de sal´arios dos funcion´arios, permitindo ao usu´ario registrar, cancelar e visualizar o hist´orico de pagamentos do funcion´ario. • O sistema deve gerenciar as contas a pagar da cl´ınica, permitindo ao usu´ario registrar, alterar, cancelar, visualizar, buscar e registrar o pagamento de contas a pagar e alertando o usu´ario de contas em vencimento ou vencidas. • O sistema deve gerenciar as contas a receber da cl´ınica, permitindo ao usu´ario registrar, alterar, cancelar, visualizar, buscar e registrar o recebimento de contas a receber e alertando o usu´ario de contas em vencimento ou vencidas. • O sistema deve gerenciar o caixa da cl´ınica, permitindo ao usu´ario fazer recebimentos e estorno de valores, fazer o fechamento de caixa e gerenciando os d´ebitos e cr´editos gerados pelas demais funcionalidades do sistema. • O sistema deve gerenciar backups de dados, permitindo ao usu´ario criar e restaurar backups.

1.2.2

Requisitos N˜ao-funcionais

• O sistema deve fazer o controle de acesso dos usu´arios. • O sistema deve manter um log de todas as alterac¸o˜ es realizadas, bem como os usu´arios que realizaram as alterac¸o˜ es e a data e hora de realizac¸a˜ o. • O sistema deve prover uma interface gr´afica e responsiva. • O sistema deve atender a diversos usu´arios simultaneamente. • O sistema n˜ao deve permitir o agendamento de consultas, exames, procedimentos e leitos com hor´arios conflitantes.


2

Estudo de Viabilidade

2.1

Contribuic¸o˜ es para a Empresa

• Maior integrac¸a˜ o nas atividades dos funcion´arios, atrav´es do fluxo de informac¸o˜ es instantˆaneo e automatizado. • Maior agilidade no acesso a informac¸o˜ es operacionais, melhorando a eficiˆencia dos funcion´arios. • Maior seguranc¸a e controle de acesso a informac¸o˜ es. • Maior controle sobre as atividades da cl´ınica, oferecendo aos administradores uma vis˜ao global do seu funcionamento. • Melhor relacionamento com os pacientes, reduzindo falhas na comunicac¸a˜ o e no acompanhamento. • Maior eficiˆencia no atendimento dos pacientes devida ao controle de agendamentos e hor´arios de atendimento. • Melhor organizac¸a˜ o da agenda de atendimentos, evitando poss´ıveis conflitos de hor´arios.

2.2

Viabilidade T´ecnica O sistema ser´a disponibilizado por uma interface Web, necessitando de tecnologias como Navegador Web,

HTML, CSS, JavaScript, Sistema Operacional para Servidor, Servidor HTTP, Sistema Gerenciador de Banco de Dados e Ambiente de Programac¸a˜ o do Servidor. Todas essas tecnologias s˜ao existentes, amplamente implementadas e possuem vers˜oes livres e gratuitas. Al´em disso, a carga de processamento do sistema e´ baixa e o sistema provˆe acesso a um n´umero pequeno de usu´arios, o que requer poucos recursos de Hardware que podem ser supridos por Hardware amplamente dispon´ıvel.

2.3

Viabilidade Legal As operac¸o˜ es oferecidas pelo sistema, bem como o seu funcionamento, n˜ao infringem a legislac¸a˜ o vigente

relacionada.


2.4

Alternativas de Soluc¸a˜ o para o Projeto

• Oferecer, inicialmente, somente os m´odulos de gerenciamento de atividades cl´ınicas, expandindo o sistema para adicionar as atividades restantes posteriormente, conforme a disponibilidade e o interesse do cliente. • Oferecer, inicialmente, somente os m´odulos de gerenciamento de consultas, de receitas m´edicas e de caixa, expandindo o sistema para adicionar as atividades restantes posteriormente, conforme a disponibilidade e o interesse do cliente.


3

Avaliac¸a˜ o dos Riscos

Na concepc¸a˜ o do sistema foram identificados os seguintes riscos que podem influenciar o seu desenvolvimento: Risco: A falta de familiaridade de parte da equipe de desenvolvimento com as tecnologias utilizadas na construc¸a˜ o do sistema causa dificuldades na fase de codificac¸a˜ o e defeitos no software. Probabilidade: M´edia Efeito: S´erio Estrat´egias: Incentivar a troca de conhecimentos entre os membros da equipe, implantar um sistema de tutores e aprendizes, implantar um sistema de revis˜ao de c´odigo.

Risco: O envolvimento de membros da equipe em outros projetos afeta a sua atuac¸a˜ o na construc¸a˜ o do sistema. Probabilidade: M´edia Efeito: S´erio Estrat´egias: Implantar um sistema de atribuic¸a˜ o de responsabilidades, fazer revis˜oes peri´odicas do cumprimento de responsabilidades de cada membro da equipe.

Risco: O prazo alocado para a construc¸a˜ o do sistema se mostra insuficiente para a conclus˜ao do mesmo. Probabilidade: M´edia Efeito: S´erio Estrat´egias: Fazer priorizac¸a˜ o do desenvolvimento dos componentes do sistema, fazer revis˜oes peri´odicas do avanc¸o geral do desenvolvimento, assinalar as atividades mais complexas aos membros mais experiˆentes da equipe de desenvolvimento.

Risco: Membros da equipe abandonam o projeto antes da sua conclus˜ao. Probabilidade: Baixa Efeito: Catastr´ofico Estrat´egias: Incentivar a documentac¸a˜ o das intenc¸o˜ es e decis˜oes tomadas no desenvolvimento, incentivar a familiarizac¸a˜ o dos membros da equipe com as atividades e responsabilidades dos demais membros, implantar um sistema de revis˜ao de c´odigo.


Risco: Leis que afetem o funcionamento do sistema s˜ao criadas. Probabilidade: Baixa Efeito: S´erio Estrat´egias: Manter a arquitetura do sistema flex´ıvel, utilizar ferramentas que facilitem a refatorac¸a˜ o.


4

Arquitetura do Software

4.1

Estilos Arquiteturais Utilizados

4.1.1

Orientado a Objetos

A utilizac¸a˜ o de uma arquitetura orientada a objetos traz diversas vantagens ao desenvolvimento do sistema, como: maior facilidade na manutenc¸a˜ o, melhor reaproveitamento de c´odigo, suporte maduro nas ferramentas e sistemas dispon´ıveis no mercado, maior facilidade na modelagem de dados e maior simplicidade no entendimento do c´odigo. Em vista destas vantagens, aliadas ao amplo uso deste estilo arquitetural na ind´ustria, o sistema ser´a constru´ıdo utilizando uma arquitetura orientada a objetos.

4.1.2

Camadas

A divis˜ao do sistema em camadas permite a separac¸a˜ o e agrupamento de partes similares do sistema que se comunicam atrav´es de interfaces bem definidas. Isso facilita grandemente a organizac¸a˜ o e a compreens˜ao do c´odigo, bem como a sua manutenc¸a˜ o. Por estes motivos, o sistema ser´a desenvolvido utilizando uma arquitetura em camadas.

4.1.3

Cliente-servidor

A necessidade do sistema de atender simultaneamente a diversos usu´arios implica na utilizac¸a˜ o de uma arquitetura distribu´ıda. Devido a` baixa carga de processamento do sistema aliada a uma maior simplicidade de implementac¸a˜ o e manutenc¸a˜ o, a arquitetura cliente-servidor se mostra a melhor escolha para o desenvolvimento do sistema.

4.2

Estilos Arquiteturais N˜ao Utilizados

4.2.1

Dutos e Filtros

O sistema e´ interativo e n˜ao realiza processamento de lote, n˜ao sendo necess´aria assim a utilizac¸a˜ o de uma arquitetura de dutos e filtros.


4.2.2

Quadro Negro

O sistema n˜ao requer a utilizac¸a˜ o de t´ecnicas de Inteligˆencia Artificial para tomada de decis˜oes baseadas em uma colec¸a˜ o de dados, n˜ao sendo necess´aria assim a utilizac¸a˜ o de uma arquitetura do tipo quadro negro.

4.2.3

Invocac¸a˜ o Impl´ıcita

O sistema possui um n´umero pequeno de efeitos colaterais resultantes de cada operac¸a˜ o realizada pelo usu´ario, n˜ao sendo vantajosa assim a utilizac¸a˜ o de uma arquitetura baseada em invocac¸a˜ o impl´ıcita em vista da sua maior complexidade.

4.2.4

Orientado a Eventos

O sistema n˜ao responde a eventos externos, n˜ao sendo necess´aria assim a utilizac¸a˜ o de uma arquitetura orientada a eventos.

4.2.5

Processos Comunicantes

O sistema requer processamento em larga escala de dados e n˜ao se beneficiaria de processamento paralelo, n˜ao sendo necess´aria assim a utilizac¸a˜ o de processos comunicantes.

4.2.6

Chamada de Procedimento Remoto

O processamento do sistema e´ centralizado e auto-contido, n˜ao sendo necess´aria assim a utilizac¸a˜ o de chamadas de procedimento remoto para acessar recursos computacionais de outros sistemas.

4.2.7

Ponto-a-ponto

O sistema n˜ao requer comunicac¸a˜ o direta e arbitr´aria entre clientes, n˜ao necessitando assim de uma arquitetura do tipo ponto-a-ponto.

4.2.8

Orientada a Servic¸os

O sistema n˜ao oferece ou utiliza Web Services, n˜ao necessitando assim de uma arquitetura orientada a servic¸os.

4.2.9

Tempo Real

O sistema n˜ao possui restric¸o˜ es relacionadas a tempo de resposta, n˜ao necessitando assim de uma arquitetura de tempo real.


5

Diagrama de Pacotes


6

Modelo de Casos de Uso

6.1

Identificac¸a˜ o dos Casos de Uso

• Gerenciar Backups • Gerenciar Caixa • Gerenciar Compra de Produto • Gerenciar Compra de Suprimento M´edico • Gerenciar Consulta • Gerenciar Contas a Pagar • Gerenciar Contas a Receber • Gerenciar Estoque de Produtos • Gerenciar Estoque de Suprimentos M´edicos • Gerenciar Exame Externo • Gerenciar Leito • Gerenciar Procedimento M´edico • Gerenciar Receitas • Gerenciar Venda de Produtos


Descric¸a˜ o Breve dos Casos de Uso

6.2 6.2.1

Anderson

6.2.1.1

Controlar procedimento m´edico

Objetivo Controlar e dar assistˆencia aos procedimentos m´edicos a serem realizados Descric¸a˜ o passo a passo inicial 1. Usu´ario acessa o sistema e recebe uma tela de autenticac¸a˜ o 2. Ap´os a autenticac¸a˜ o o sistema apresenta a tela inicial com as suas funcionalidades 3. Usu´ario seleciona a opc¸a˜ o de controlar procedimento m´edico e o sistema apresentar´a as seguintes funcionalidades: Visualizar procedimento; Buscar procedimento agendado; Registrar suprimento utilizado; Registrar a falta do paciente; Registrar a entrada do paciente; Registrar a sa´ıda do paciente. Selecionando funcionalidades: Visualizar procedimento: 1. O usu´ario seleciona a opc¸a˜ o buscar procedimento; 2. O sistema apresenta um campo no qual deve ser informado o c´odigo do procedimento; 3. O usu´ario informa o c´odigo do procedimento; 4. O sistema exibe o procedimento m´edico buscado; 5. O usu´ario seleciona a opc¸a˜ o visualizar procedimento m´edico. Buscar procedimento agendado: 1. O usu´ario seleciona a opc¸a˜ o buscar procedimento agendado; 2. O sistema apresenta um campo no qual deve ser informado o c´odigo do procedimento agendado; 3. O usu´ario informa o c´odigo do procedimento agendado; 4. O sistema exibe o procedimento m´edico agendado. Registrar suprimento utilizado: 1. Enfermeira acessa a opc¸a˜ o registrar suprimentos utilizados; 2. Registra suprimentos utilizados;


Registrar a falta do paciente: 1. Enfermeira acessa a opc¸a˜ o registrar falta do paciente; 2. Seleciona o paciente; 3. Registra a falta do paciente. Registrar a entrada do paciente: 1. Enfermeira acessa a opc¸a˜ o registrar a entrada do paciente; 2. Seleciona o paciente; 3. Registra o hor´ario de entrada do paciente. Registrar a sa´ıda do paciente: 1. Enfermeira acessa a opc¸a˜ o registrar a saida do paciente; 2. Seleciona o paciente; 3. Registra o hor´ario de sa´ıda do paciente. 6.2.1.2

Gerenciar atestado m´edico

Objetivo Controlar e gerenciar a emiss˜ao dos atestados m´edicos aos pacientes atendidos. Descric¸a˜ o passo a passo inicial 1. Usu´ario acessa o sistema e recebe uma tela de autenticac¸a˜ o 2. Ap´os a autenticac¸a˜ o o sistema apresenta a tela inicial com as suas funcionalidades 3. O usu´ario seleciona a opc¸a˜ o de gerenciar atestado m´edico e o sistema apresentar´a as seguintes funcionalidades: Emitir atestado; Cancelar atestado; Buscar atestado; Visualizar atestado. Selecionando funcionalidades: Emitir atestado: 1. O m´edico acessa a opc¸a˜ o emitir atestado; 2. Preenche o atestado m´edico; 3. Grava o atestado no sistema; 4. Seleciona a opc¸a˜ o imprimir atestado.


Cancelar atestado; 1. O m´edico seleciona a opc¸a˜ o cancelar atestado; 2. Informa o n´umero do atestado ou o nome do paciente ao sistema; 3. Se encontrado, o sistema exibe o atestado m´edico emitido; 4. O m´edico seleciona a opc¸a˜ o de cancelamento. Buscar atestado: 1. O usu´ario seleciona a opc¸a˜ o buscar atestado; 2. Informa o n´umero do atestado ou o nome do paciente ao sistema; 3. Se encontrado, o sistema exibe o atestado m´edico emitido; Visualizar atestado: 1. O usu´ario seleciona a opc¸a˜ o buscar atestado; 2. Informa o n´umero do atestado ou o nome do paciente ao sistema; 3. Se encontrado, o sistema exibe o atestado; 4. Selecionando o atestado, todas informac¸o˜ es preenchidas no atestado m´edico emitido s˜ao apresentadas; 6.2.1.3

Gerenciar laudo m´edico

Objetivo Controlar e gerenciar a emiss˜ao de laudos m´edicos dos pacientes atendidos. Descric¸a˜ o passo a passo inicial 1. Usu´ario acessa o sistema e recebe uma tela de autenticac¸a˜ o; 2. Ap´os a autenticac¸a˜ o o sistema apresenta a tela inicial com as suas funcionalidades 3. O usu´ario seleciona a opc¸a˜ o gerenciar laudo m´edico e o sistema apresentar´a as seguintes funcionalidades: Cadastrar laudo; Alterar laudo; Excluir laudo; Buscar tipo de laudo; Visualizar tipo de laudo; Buscar laudo; Visualizar laudo; Emitir laudo; Cancelar laudo; Selecionando funcionalidades: Cadastrar laudo: 1. O m´edico seleciona a opc¸a˜ o cadastrar laudo m´edico;


2. O m´edico preenche o laudo m´edico; 3. O m´edico grava o laudo no sistema. Alterar laudo 1. O m´edico seleciona a opc¸a˜ o alterar laudo m´edico; 2. O m´edico informa ao sistema o n´umero do laudo ou o nome do paciente; 3. O m´edico altera os dados necess´arios no laudo m´edico; 4. O m´edico grava as alterac¸o˜ es realizados no laudo. Excluir laudo 1. O m´edico seleciona a opc¸a˜ o excluir laudo m´edico; 2. O m´edico informa ao sistema o n´umero do laudo ou o nome do paciente; 3. O sistema apresenta ao m´edico se o laudo foi encontrado; 4. O m´edico seleciona o laudo; 5. O m´edico exclui o laudo do sistema. Buscar tipos de laudo 1. O m´edico seleciona a opc¸a˜ o buscar tipo de laudo; 2. O sistema lhe apresenta os tipos de laudos cadastrados. Visualizar tipo de laudo 1. O m´edico seleciona a opc¸a˜ o buscar tipo de laudo; 2. O sistema apresenta os tipos de laudos cadastrados; 3. O m´edico seleciona a opc¸a˜ o visualizar tipo de laudo. Buscar laudo 1. O m´edico seleciona a opc¸a˜ o buscar laudo; 2. O sistema apresenta um campo para que seja informado o n´umero do laudo ou nome do paciente; 3. O m´edico informa o n´umero do laudo ou nome do paciente; 4. O sistema apresenta o laudo m´edico.


Visualizar laudo 1. O m´edico seleciona a opc¸a˜ o buscar laudo; 2. O sistema apresenta um campo para que seja informado o n´umero do laudo ou nome do paciente; 3. O m´edico informa o n´umero do laudo ou nome do paciente; 4. O sistema apresenta o laudo m´edico; 5. O m´edico seleciona a opc¸a˜ o visualizar laudo. Emitir laudo 1. O m´edico seleciona a opc¸a˜ o buscar laudo; 2. O sistema apresenta um campo para que seja informado o n´umero do laudo ou nome do paciente; 3. O m´edico informa o n´umero do laudo ou nome do paciente; 4. O sistema apresenta o laudo m´edico; 5. O m´edico seleciona a opc¸a˜ o imprimir laudo m´edico. Cancelar laudo 1. O m´edico seleciona a opc¸a˜ o buscar laudo; 2. O sistema apresenta um campo para que seja informado o n´umero do laudo ou nome do paciente; 3. O m´edico informa o n´umero do laudo ou nome do paciente; 4. O sistema apresenta o laudo m´edico; 5. O m´edico seleciona a opc¸a˜ o imprimir laudo m´edico. 6.2.1.4

Gerenciar leito

Objetivo Controlar e gerenciar os leitos de atendimento da cl´ınica. Descric¸a˜ o passo a passo inicial 1. Usu´ario acessa o sistema e recebe uma tela de autenticac¸a˜ o; 2. Ap´os a autenticac¸a˜ o o sistema apresenta a tela inicial com as suas funcionalidades 3. O usu´ario seleciona a opc¸a˜ o gerenciar leito e o sistema apresentar´a as seguintes funcionalidades: Cadastrar leito; Alterar leito; Excluir leito; Agendar leito; Buscar leito dispon´ıvel; Visualizar leito dispon´ıvel; Visualizar o estado do leito; Liberar leito.


Selecionando funcionalidades: Cadastrar leito 1. O administrador seleciona a opc¸a˜ o cadastrar leito; 2. O sistema apresenta a tela de cadastro de leito; 3. O administrador faz o cadastro do novo leito. Alterar leito 1. O administrador seleciona a opc¸a˜ o alterar leito; 2. O sistema apresenta um campo no qual deve ser informado qual e´ o leito a ser alterado; 3. O administrador informa o n´umero do leito; 4. O sistema apresenta o leito encontrado; 5. O administrador faz as alterac¸o˜ es e as grava no sistema. Excluir leito 1. O administrador seleciona a opc¸a˜ o excluir leito; 2. O sistema apresenta um campo no qual deve ser informado qual e´ o leito a ser exclu´ıdo; 3. O administrador informa o n´umero do leito; 4. O sistema apresenta o leito encontrado; 5. O administrador faz a exclus˜ao do leito no sistema. Agendar leito 1. A recepcionista seleciona a opc¸a˜ o agendar leito; 2. O sistema apresenta um campo para ser informado qual a data de agendamento; 3. A recepcionista informa a data; 4. O sistema apresenta os leitos dispon´ıvies; 5. A recepcionista seleciona um leito adequado e dispon´ıvel; 6. O sistema solicita as informac¸o˜ es do paciente que ser´a alocado no leito; 7. A recepcionista informa ao sistema qual e´ o paciente que ocupar´a o leito; 8. O sistema aloca o paciente no leito escolhido e marca o leito como indispon´ıvel apartir da data para qual foi agendado.


Buscar leito dispon´ıvel 1. A recepcionista seleciona a opc¸a˜ o buscar leito dispon´ıvel; 2. O sistema apresenta na tela quais s˜ao os leitos dispon´ıveis. Visualizar leito dispon´ıvel 1. A recepcionista seleciona a opc¸a˜ o buscar leito dispon´ıvel; 2. O sistema apresenta na tela quais s˜ao os leitos dispon´ıveis; 3. A recepcionista seleciona um leito e seleciona a opc¸a˜ o visualizar leito dispon´ıvel; 4. O sistema apresenta as informac¸o˜ es do leito selecionado. Visualizar o estado do leito 1. A recepcionista ou o m´edico seleciona a opc¸a˜ o visualizar leito; 2. O sistema apresenta um campo onde deve ser informado o n´umero do leito ou o nome do paciente; 3. A recepcionista ou o m´edico informa o dado; 4. O sistema apresenta as informac¸o˜ es do leito. Liberar leito 1. O m´edico seleciona a opc¸a˜ o liberar leito; 2. O sistema apresenta um campo onde deve ser informado o n´umero do leito ou o nome do paciente; 3. O m´edico informa o dado; 4. O sistema libera o leito marcando-o como dispon´ıvel. 6.2.1.5

Gerenciar procedimento m´edico

Objetivo Controlar e gerenciar procedimentos m´edicos realizados na cl´ınica. Descric¸a˜ o passo a passo inicial 1. Usu´ario acessa o sistema e recebe uma tela de autenticac¸a˜ o; 2. Ap´os a autenticac¸a˜ o o sistema apresenta a tela inicial com as suas funcionalidades 3. O usu´ario seleciona a opc¸a˜ o gerenciar procedimento m´edico e o sistema apresentar´a as seguintes funcionalidades: Cadastar procedimento; Buscar procedimento; Alterar procedimento; Visualizar procedimento; Excluir procedimento.


Selecionando funcionalidades: Cadastrar procedimento 1. O administrador seleciona a opc¸a˜ o cadastrar procedimento; 2. O sistema apresenta a tela de cadastro de procedimento m´edico; 3. O administrador preenche o cadastro do procedimento e submete ao sistema; 4. O sistema apresenta a tela de cadastro de suprimento a ser utilizado no procedimento; 5. O administrador preenche o cadastro de suprimento e submete ao sistema. Buscar procedimento 1. O usu´ario seleciona a opc¸a˜ o buscar procedimento; 2. O sistema apresenta um campo no qual deve ser informado o c´odigo do procedimento; 3. O usu´ario informa o c´odigo do procedimento; 4. O sistema exibe o procedimento m´edico buscado. Alterar procedimento 1. O administrador seleciona a opc¸a˜ o buscar procedimento; 2. O sistema apresenta um campo no qual deve ser informado o c´odigo do procedimento; 3. O administrador informa o c´odigo do procedimento; 4. O sistema exibe o procedimento m´edico buscado; 5. O administrador seleciona a opc¸a˜ o alterar procedimento m´edico; 6. O sistema exibe as informac¸o˜ es cadastradas no procedimento; 7. O m´edico realiza as alterac¸o˜ es e submete as alterac¸o˜ es ao sistema. Visualizar procedimento 1. O usu´ario seleciona a opc¸a˜ o buscar procedimento; 2. O sistema apresenta um campo no qual deve ser informado o c´odigo do procedimento; 3. O usu´ario informa o c´odigo do procedimento; 4. O sistema exibe o procedimento m´edico buscado; 5. O usu´ario seleciona a opc¸a˜ o visualizar procedimento m´edico.


Excluir procedimento 1. O administrador seleciona a opc¸a˜ o buscar procedimento; 2. O sistema apresenta um campo no qual deve ser informado o c´odigo do procedimento; 3. O administrador informa o c´odigo do procedimento; 4. O sistema exibe o procedimento m´edico buscado; 5. O administrador seleciona a opc¸a˜ o excluir procedimento m´edico; 6. O sistema exclui o procedimento m´edico do sistema. 6.2.1.6

Realizar procedimento m´edico

Objetivo Controlar a realizac¸a˜ o dos procedimentos m´edicos. Descric¸a˜ o passo a passo inicial 1. Usu´ario acessa o sistema e recebe uma tela de autenticac¸a˜ o; 2. Ap´os a autenticac¸a˜ o o sistema apresenta a tela inicial com as suas funcionalidades 3. O usu´ario seleciona a opc¸a˜ o gerenciar procedimento m´edico e o sistema apresentar´a as seguintes funcionalidades: Buscar procedimento; Visualizar procedimento; Agendar procedimento para paciente; Buscar procedimento agendado; Remarcar procedimento para paciente; Cancelar procedimento para paciente. Selecionando funcionalidades: Buscar procedimento 1. O usu´ario seleciona a opc¸a˜ o buscar procedimento; 2. O sistema apresenta um campo no qual deve ser informado o c´odigo do procedimento; 3. O usu´ario informa o c´odigo do procedimento; 4. O sistema exibe o procedimento m´edico buscado. Visualizar procedimento 1. O usu´ario seleciona a opc¸a˜ o buscar procedimento; 2. O sistema apresenta um campo no qual deve ser informado o c´odigo do procedimento; 3. O usu´ario informa o c´odigo do procedimento; 4. O sistema exibe o procedimento m´edico buscado;


5. O usu´ario seleciona a opc¸a˜ o visualizar procedimento m´edico. Agendar procedimento para paciente 1. O m´edico seleciona a opc¸a˜ o agendar procedimento; 2. O sistema apresenta a agenda do m´edico; 3. O m´edico seleciona uma data, dispon´ıvel, para ser realizado o procedimento; 4. O sistema apresenta um campo para ser informado qual ser´a o procedimento a ser realizado; 5. O m´edico informa o c´odigo do procedimento; 6. O sistema apresenta um campo para ser informado o c´odigo do paciente; 7. O m´edico informa o c´odigo do paciente; 8. O sistema agenda o procedimento m´edico criando um c´odigo de identificac¸a˜ o para o procedimento m´edico agendado. Buscar procedimento agendado 1. O usu´ario seleciona a opc¸a˜ o buscar procedimento agendado; 2. O sistema apresenta um campo no qual deve ser informado o c´odigo do procedimento agendado; 3. O usu´ario informa o c´odigo do procedimento agendado; 4. O sistema exibe o procedimento m´edico agendado. Remarcar procedimento para paciente 1. O m´edico seleciona a opc¸a˜ o buscar procedimento agendado; 2. O sistema apresenta um campo no qual deve ser informado o c´odigo do procedimento agendado; 3. O usu´ario informa o c´odigo do procedimento agendado; 4. O sistema exibe o procedimento m´edico agendado. 5. O m´edico seleciona a opc¸a˜ o remarcar data para o procedimento m´edico; 6. O sistema apresenta a agenda do m´edico; 7. O m´edico seleciona uma data, dispon´ıvel, para ser realizado o procedimento; 8. O sistema agenda o procedimento m´edico criando um novo c´odigo de identificac¸a˜ o para o procedimento m´edico agendado.


Cancelar procedimento para paciente. 1. O m´edico seleciona a opc¸a˜ o buscar procedimento agendado; 2. O sistema apresenta um campo no qual deve ser informado o c´odigo do procedimento; 3. O m´edico informa o c´odigo do procedimento; 4. O sistema exibe o procedimento m´edico buscado; 5. O m´edico seleciona a opc¸a˜ o cancelar procedimento agendado; 6. O sistema cancela o procedimento agendado; 7. O sistema disponibiliza a data e o hor´ario referente ao procedimento m´edico agendado cancelado.


6.2.2

F´abio

6.2.2.1

Adicionar Conta Bancaria

Objetivo Cadastrar uma conta banc´aria associada ao caixa. Descric¸a˜ o passo a passo inicial 1. O usu´ario executa a opc¸a˜ o Adicionar Conta Banc´aria; 2. O usu´ario entra com as informac¸o˜ es da conta banc´aria; 3. O usu´ario confirma a inclus˜ao. 6.2.2.2

Agendar Conta

Objetivo Agendar uma conta a pagar ou a receber. Descric¸a˜ o passo a passo inicial 1. O usu´ario executa a opc¸a˜ o Agendar Conta; 2. O usu´ario seleciona o tipo de conta (a pagar ou a receber); 3. O usu´ario entra com as informac¸o˜ es da conta; 4. O usu´ario confirma o agendamento. 6.2.2.3

Editar Conta

Objetivo Alterar as informac¸o˜ es de uma conta a pagar ou a receber. Descric¸a˜ o passo a passo inicial 1. O usu´ario executa a opc¸a˜ o Editar Conta; 2. O usu´ario altera as informac¸o˜ es desejadas; 3. O usu´ario confirma as alterac¸o˜ es.


6.2.2.4

Editar Conta Bancaria

Objetivo Alterar as informac¸o˜ es de uma conta banc´aria associada ao caixa. Descric¸a˜ o passo a passo inicial 1. O usu´ario executa a opc¸a˜ o Editar Conta Banc´aria; 2. O usu´ario altera as informac¸o˜ es desejadas; 3. O usu´ario confirma as alterac¸o˜ es. 6.2.2.5

Gerenciar Caixa

Objetivo Controlar as atividades relacionadas ao caixa. Descric¸a˜ o passo a passo inicial 1. O usu´ario executa a opc¸a˜ o Gerenciar Caixa; 2. O usu´ario seleciona a opc¸a˜ o que deseja utilizar. 6.2.2.6

Gerenciar Contas a Pagar

Objetivo Controlar as atividades relacionadas a contas a pagar. Descric¸a˜ o passo a passo inicial 1. O usu´ario executa a opc¸a˜ o Gerenciar Contas a Pagar; 2. O usu´ario seleciona a opc¸a˜ o que deseja utilizar. 6.2.2.7

Gerenciar Contas a Receber

Objetivo Controlar as atividades relacionadas a contas a receber. Descric¸a˜ o passo a passo inicial 1. O usu´ario executa a opc¸a˜ o Gerenciar Contas a Receber; 2. O usu´ario seleciona a opc¸a˜ o que deseja utilizar.


6.2.2.8

Gerenciar Contas Bancarias

Objetivo Controlar as atividades relacionadas a contas banc´arias associadas ao caixa. Descric¸a˜ o passo a passo inicial 1. O usu´ario executa a opc¸a˜ o Gerenciar Contas Banc´arias; 2. O usu´ario seleciona a opc¸a˜ o que deseja utilizar. 6.2.2.9

Pagar Conta

Objetivo Registrar o pagamento de uma conta a pagar agendada no sistema. Descric¸a˜ o passo a passo inicial 1. O usu´ario executa a opc¸a˜ o Pagar Conta; 2. O usu´ario escolhe a conta desejada; 3. O usu´ario confirma o pagamento; 4. O sistema atualiza o saldo do caixa. 6.2.2.10

Realizar Estorno

Objetivo Realizar uma operac¸a˜ o de estorno para cancelar um recebimento realizado. Descric¸a˜ o passo a passo inicial 1. O usu´ario executa a opc¸a˜ o Realizar Estorno; 2. O usu´ario escolhe o recebimento desejado; 3. O usu´ario confirma o estorno; 4. O sistema atualiza o saldo do caixa. 6.2.2.11

Realizar Movimentac¸a˜ o

Objetivo Realizar uma operac¸a˜ o de movimentac¸a˜ o para registrar a transferˆencia de valor entre o caixa e as contas banc´arias associadas.


Descric¸a˜ o passo a passo inicial 1. O usu´ario executa a opc¸a˜ o Realizar Movimentac¸a˜ o; 2. O usu´ario escolhe a origem, destino e valor; 3. O usu´ario confirma a operac¸a˜ o; 4. O sistema atualiza os saldos apropriados. 6.2.2.12

Realizar Pagamento de Salario

Objetivo Registrar o pagamento de sal´ario a um funcion´ario. Descric¸a˜ o passo a passo inicial 1. O usu´ario executa a opc¸a˜ o Realizar Pagamento de Sal´ario; 2. O usu´ario seleciona o funcion´ario desejado; 3. O usu´ario confirma o pagamento do sal´ario; 4. O sistema atualiza o saldo do caixa. 6.2.2.13

Realizar Recebimento

Objetivo Registrar o recebimento de um paciente. Descric¸a˜ o passo a passo inicial 1. O usu´ario executa a opc¸a˜ o Realizar Recebimento; 2. O usu´ario seleciona o paciente desejado; 3. O usu´ario entra com as informac¸o˜ es do recebimento; 4. O usu´ario confirma o recebimento; 5. O sistema atualiza o saldo apropriado.


6.2.2.14

Receber Conta

Objetivo Registrar o recebimento de uma conta a receber agendada no sistema. Descric¸a˜ o passo a passo inicial 1. O usu´ario executa a opc¸a˜ o Receber Conta; 2. O usu´ario seleciona a conta a receber desejada; 3. O usu´ario confirma o recebimento da conta; 4. O sistema atualiza o saldo do caixa. 6.2.2.15

Remover Conta

Objetivo Remover uma conta a pagar ou a receber do sistema. Descric¸a˜ o passo a passo inicial 1. O usu´ario executa a opc¸a˜ o Remover Conta; 2. O usu´ario seleciona a conta desejada; 3. O usu´ario confirma a remoc¸a˜ o. 6.2.2.16

Remover Conta Banc´aria

Objetivo Remover uma conta banc´aria associada ao caixa. Descric¸a˜ o passo a passo inicial 1. O usu´ario executa a opc¸a˜ o Remover Conta Banc´aria; 2. O usu´ario seleciona a conta banc´aria desejada; 3. O usu´ario confirma a remoc¸a˜ o. 6.2.2.17

Visualizar Conta Bancaria

Objetivo Visualiar o saldo esperado de uma conta banc´aria associada ao caixa.


Descric¸a˜ o passo a passo inicial 1. O usu´ario executa a opc¸a˜ o Visualizar Conta Banc´aria; 2. O usu´ario seleciona a conta banc´aria desejada; 3. O sistema exibe o saldo e hist´orico de operac¸o˜ es da conta selecionada. 6.2.2.18

Visualizar Contas em Vencimento

Objetivo Visualizar as contas a pagar agendadas no sistema que vencem na data atual. Descric¸a˜ o passo a passo inicial 1. O usu´ario executa a opc¸a˜ o Visualizar Contas em Vencimento; 2. O sistema exibe as contas a pagar que n˜ao foram pagas e possuem data de vencimento igual a` data atual. 6.2.2.19

Visualizar Contas Inadimplentes

Objetivo Visualizar as contas a receber que est˜ao com pagamento atrasado. Descric¸a˜ o passo a passo inicial 1. O usu´ario executa a opc¸a˜ o Visualizar Contas Inadimplentes; 2. O sistema exibe as contas a receber que n˜ao foram recebidas e possuem data de vendimento anterior a` data atual. 6.2.2.20

Visualizar Contas Vencidas

Objetivo Visualizar as contas a pagar que est˜ao vencidas. Descric¸a˜ o passo a passo inicial 1. O usu´ario executa a opc¸a˜ o Visualizar Contas Vencidas; 2. O sistema exibe as contas a pagar que n˜ao foram pagas e possuem data de vencimento anterior a` data atual.


6.2.2.21

Visualizar Previs˜ao de Recebimentos

Objetivo Visualizar o montante de recebimentos esperados em uma determinada data. Descric¸a˜ o passo a passo inicial 1. O usu´ario executa a opc¸a˜ o Visualiar Previs˜ao de Recebimentos; 2. O usu´ario seleciona a data desejada; 3. O sistema exibe as contas a receber agendadas para a data selecionada e o montante total. 6.2.2.22

Visualizar Saldo

Objetivo Visualizar o saldo esperado do caixa no momento. Descric¸a˜ o passo a passo inicial 1. O usu´ario executa a opc¸a˜ o Visualizar Saldo; 2. O sistema exibe o saldo atual do caixa e o hist´orico de operac¸o˜ es realizadas. 6.2.2.23

Visualizar Saldo Devedor Paciente

Objetivo Visualizar o saldo devedor associado a um paciente. Descric¸a˜ o passo a passo inicial 1. O usu´ario executa a opc¸a˜ o Visualizar Saldo Devedor Paciente; 2. O usu´ario seleciona o paciente desejado; 3. O sistema exibe o saldo devedor do paciente selecionado.


6.2.3

Paulo

6.2.3.1

Gerenciar Venda de Produtos

Objetivo O sistema deve controlar, e dar apoio para que o usu´ario possa realizar a venda dos produtos. Descric¸a˜ o passo a passo inicial 1. Usu´ario acessa o sistema e recebe uma tela de autenticac¸a˜ o 2. Ap´os a autenticac¸a˜ o o sistema apresenta a tela inicial com as suas funcionalidades 3. O usu´ario seleciona a opc¸a˜ o de gerenciar venda de produtos e o sistema apresentar´a as seguintes funcionalidades: Registrar Venda; Alterar Venda Cancelar Venda Visualizar Venda Buscar Venda Selecionando funcionalidades: Registrar Venda 1. O usu´ario seleciona a opc¸a˜ o Registrar Venda; 2. O sistema abre uma tela com todos os dados necess´arios da venda, como cliente, produto, prec¸o, etc. 3. O usu´ario informa os dados para todos os campos; 4. O sistema informa se a venda foi registrada ou n˜ao, se n˜ao, o porquˆe disso; Alterar Venda 1. O usu´ario seleciona a opc¸a˜ o alterar Venda; 2. O sistema apresenta um campo no qual deve ser informado o c´odigo da venda, e uma lista para se buscar a venda a ser alterada; 3. O usu´ario informa o c´odigo da venda a ser alterada, ou seleciona na lista; 4. O sistema abre a tela de alterac¸a˜ o de venda; 5. O usu´ario altera os dados, e clica em um bot˜ao para gravar os dados 6. O sistema informa se a alterac¸a˜ o foi feita com sucesso ou n˜ao, se n˜ao, informa o porquˆe disso. Cancelar Venda 1. O usu´ario seleciona a opc¸a˜ o Cancelar Venda; 2. O sistema apresenta um campo no qual deve ser informado o c´odigo da venda, e uma lista para se buscar a venda a ser cancelada;


3. O usu´ario informa o c´odigo da venda a ser cancelada, ou seleciona na lista; 4. O sistema abre a tela que foi feita a venda; 5. O usu´ario verifica a venda, se ela realmente deve ser cancelada, e confirma; 6. O sistema informa se o cancelamento foi feito com sucesso ou n˜ao, se n˜ao, informa o porquˆe disso. Visualizar Venda 1. O usu´ario seleciona a opc¸a˜ o visualizar venda; 2. O sistema apresenta um campo no qual deve ser informado o c´odigo da venda, e uma lista para se buscar a venda que se quer visualizar; 3. O usu´ario informa o c´odigo da venda a se visualizar, ou seleciona na lista; 4. O sistema abre a tela em que foi feita a venda; Buscar Venda 1. O usu´ario seleciona a opc¸a˜ o buscar venda; 2. O sistema apresenta um campo no qual deve ser informado o c´odigo da venda, e uma lista para se buscar a venda; 3. O usu´ario informa o c´odigo da venda, ou seleciona na lista; 4. O sistema exibe a venda. 6.2.3.2

Gerenciar Backup

Objetivo Controlar e gerenciar e agendar os backups do sistema, para que n˜ao haja perca de dados. Descric¸a˜ o passo a passo inicial 1. Usu´ario acessa o sistema e recebe uma tela de autenticac¸a˜ o 2. Ap´os a autenticac¸a˜ o o sistema apresenta a tela inicial com as suas funcionalidades 3. O usu´ario seleciona a opc¸a˜ o de gerenciar backup e o sistema apresentar´a as seguintes funcionalidades: Criar Backup; Restaurar Backup; Agendar Backup; Selecionando funcionalidades: Criar Backup 1. A secret´aria acessa a opc¸a˜ o Criar Backup;


2. O sistema exibe uma tela com os dados dispon´ıveis para fazer o backup; 3. O usu´ario seleciona os dados de interesse, e clica em um bot˜ao para Criar o backup. Restaurar Backup; 1. O usu´ario acessa a opc¸a˜ o restaurar backup; 2. O sistema exibe uma tela com todos os backups criados; 3. O usu´ario seleciona o backup que se quer restaurar, e clica em um bot˜ao restaurar backup; 4. O sistema informa se o backup foi restaurado com sucesso ou n˜ao, se n˜ao, informa o porquˆe disso. Agendar Backup 1. O usu´ario seleciona a opc¸a˜ o Agendar backup; 2. O sistema exibe uma tela com os dados dispon´ıveis para fazer o backup, e tamb´em o dia e hor´ario; 3. O usu´ario seleciona os dados de interesse, e clica em um bot˜ao agendar backup; 6.2.3.3

Gerenciar Produtos

Objetivo Controlar e gerenciar os produtos. Descric¸a˜ o passo a passo inicial 1. Usu´ario acessa o sistema e recebe uma tela de autenticac¸a˜ o; 2. Ap´os a autenticac¸a˜ o o sistema apresenta a tela inicial com as suas funcionalidades 3. O usu´ario seleciona a opc¸a˜ o gerenciar estoque de produtos e o sistema apresentar´a as seguintes funcionalidades: Cadastrar produto; Alterar produto; Excluir produto; Visualizar produto; Buscar produto; Gerenciar compra de produto; Gerenciar venda de produto; Selecionando funcionalidades: Cadastrar produto: 1. O usu´ario seleciona a opc¸a˜ o cadastrar produto; 2. O sistema abre uma tela com todos os dados necess´arios do produto; 3. O usu´ario informa os dados para todos os campos; 4. O sistema informa se o produto foi registrado ou n˜ao, se n˜ao, o porquˆe disso;


Alterar produto 1. O usu´ario seleciona a opc¸a˜ o alterar produto; 2. O sistema apresenta um campo no qual deve ser informado o c´odigo do produto, e uma lista para se buscar o produto a ser alterado; 3. O usu´ario informa o c´odigo do produto a ser alterado, ou seleciona na lista; 4. O sistema abre a tela de alterac¸a˜ o de produto; 5. O usu´ario altera os dados, e clica em um bot˜ao para gravar os dados; 6. O sistema informa se a alterac¸a˜ o foi feita com sucesso ou n˜ao. Se n˜ao, informa o porquˆe disso. Excluir produto 1. O usu´ario seleciona a opc¸a˜ o excluir produto; 2. O sistema apresenta um campo no qual deve ser informado o c´odigo do produto, e uma lista para se buscar o produto a ser exclu´ıdo; 3. O usu´ario informa o c´odigo do produto a ser exclu´ıdo, ou seleciona na lista; 4. O sistema abre uma tela perguntando se o usu´ario quer realmente excluir o produto; 5. O usu´ario seleciona se sim ou n˜ao; 6. O sistema informa se a exclus˜ao foi feita com sucesso ou n˜ao. Se n˜ao, informa o porquˆe disso. Visualizar produto 1. O usu´ario seleciona a opc¸a˜ o visualizar produto; 2. O sistema apresenta um campo no qual deve ser informado o c´odigo do produto, e uma lista para se buscar o produto que se quer visualizar; 3. O usu´ario informa o c´odigo do produto a se visualizar, ou seleciona na lista; 4. O sistema abre a tela em que foi cadastrado o produto; Buscar produto 1. O usu´ario seleciona a opc¸a˜ o buscar produto; 2. O sistema apresenta um campo no qual deve ser informado o c´odigo do produto, e uma lista para se buscar o produto; 3. O usu´ario informa o c´odigo do produto, ou seleciona na lista; 4. O sistema exibe o produto.


6.2.3.4

Gerenciar Suprimentos M´edicos

Objetivo Controlar e gerenciar o estoque de suprimentos m´edicos, dando baixa nos suprimentos usados, e incrementando nas compras. Descric¸a˜ o passo a passo inicial 1. Usu´ario acessa o sistema e recebe uma tela de autenticac¸a˜ o; 2. Ap´os a autenticac¸a˜ o o sistema apresenta a tela inicial com as suas funcionalidades 3. O usu´ario seleciona a opc¸a˜ o gerenciar estoque de suprimentos m´edicos e o sistema apresentar´a as seguintes funcionalidades: Cadastrar suprimento m´edico; Alterar suprimento m´edico; Excluir suprimento m´edico; Visualizar suprimento m´edico; Buscar suprimento m´edico; Gerenciar compra de suprimento m´edico; Gerenciar venda de suprimento m´edico; Selecionando funcionalidades: Cadastrar suprimento m´edico: 1. O usu´ario seleciona a opc¸a˜ o cadastrar suprimento m´edico; 2. O sistema abre uma tela com todos os dados necess´arios do suprimento m´edico; 3. O usu´ario informa os dados para todos os campos; 4. O sistema informa se o suprimento m´edico foi registrado ou n˜ao, se n˜ao, o porquˆe disso. Alterar suprimento m´edico 1. O usu´ario seleciona a opc¸a˜ o alterar suprimento m´edico; 2. O sistema apresenta um campo no qual deve ser informado o c´odigo do suprimento m´edico, e uma lista para se buscar o suprimento m´edico a ser alterado; 3. O usu´ario informa o c´odigo do suprimento m´edico a ser alterado, ou seleciona na lista; 4. O sistema abre a tela de alterac¸a˜ o de suprimento m´edico; 5. O usu´ario altera os dados, e clica em um bot˜ao para gravar os dados; 6. O sistema informa se a alterac¸a˜ o foi feita com sucesso ou n˜ao. Se n˜ao, informa o porquˆe disso. Excluir suprimento m´edico 1. O usu´ario seleciona a opc¸a˜ o excluir suprimento m´edico;


2. O sistema apresenta um campo no qual deve ser informado o c´odigo do suprimento m´edico, e uma lista para se buscar o suprimento m´edico a ser exclu´ıdo; 3. O usu´ario informa o c´odigo do suprimento m´edico a ser exclu´ıdo, ou seleciona na lista; 4. O sistema abre uma tela perguntando se o usu´ario quer realmente excluir o suprimento m´edico; 5. O usu´ario seleciona se sim ou n˜ao; 6. O sistema informa se a exclus˜ao foi feita com sucesso ou n˜ao. Se n˜ao, informa o porquˆe disso. Visualizar suprimento m´edico 1. O usu´ario seleciona a opc¸a˜ o visualizar suprimento m´edico; 2. O sistema apresenta um campo no qual deve ser informado o c´odigo do suprimento m´edico, e uma lista para se buscar o suprimento m´edico que se quer visualizar; 3. O usu´ario informa o c´odigo do suprimento m´edico a se visualizar, ou seleciona na lista; 4. O sistema abre a tela em que foi cadastrado o suprimento m´edico; Buscar suprimento m´edico 1. O usu´ario seleciona a opc¸a˜ o buscar suprimento m´edico; 2. O sistema apresenta um campo no qual deve ser informado o c´odigo do suprimento m´edico, e uma lista para se buscar o suprimento m´edico; 3. O usu´ario informa o c´odigo do suprimento m´edico, ou seleciona na lista; 4. O sistema exibe o suprimento m´edico. 6.2.3.5

Gerenciar Compra de Produtos

Objetivo Controlar a compra de produtos n˜ao deixando faltar em estoque. Descric¸a˜ o passo a passo inicial 1. Usu´ario acessa o sistema e recebe uma tela de autenticac¸a˜ o; 2. Ap´os a autenticac¸a˜ o o sistema apresenta a tela inicial com as suas funcionalidades 3. O usu´ario seleciona a opc¸a˜ o gerenciar compra de produtos e o sistema apresentar´a as seguintes funcionalidades: Registrar compra de produto; Alterar compra de produto; Excluir compra de produto; Visualizar compra de produto; Buscar compra de produto;


Selecionando funcionalidades: Registrar compra de produto: 1. O usu´ario seleciona a opc¸a˜ o registrar compra de produto; 2. O sistema abre uma tela com todos os dados necess´arios da compra; 3. O usu´ario informa os dados para todos os campos; 4. O sistema informa se a compra foi registrada ou n˜ao, se n˜ao, o porquˆe disso; Alterar compra de produto 1. O usu´ario seleciona a opc¸a˜ o alterar compra de produto; 2. O sistema apresenta um campo no qual deve ser informado o c´odigo da compra, e uma lista para se buscar a compra a ser alterada; 3. O usu´ario informa o c´odigo da compra a ser alterado, ou seleciona na lista; 4. O sistema abre a tela de alterac¸a˜ o de compra; 5. O usu´ario altera os dados, e clica em um bot˜ao para gravar os dados; 6. O sistema informa se a alterac¸a˜ o foi feita com sucesso ou n˜ao. Se n˜ao, informa o porquˆe disso. Excluir compra de produto 1. O usu´ario seleciona a opc¸a˜ o excluir compra de produto; 2. O sistema apresenta um campo no qual deve ser informado o c´odigo da compra do produto, e uma lista para se buscar a compra a ser exclu´ıda; 3. O usu´ario informa o c´odigo da compra a ser exclu´ıda, ou seleciona na lista; 4. O sistema abre uma tela perguntando se o usu´ario quer realmente excluir a compra; 5. O usu´ario seleciona se sim ou n˜ao; 6. O sistema informa se a exclus˜ao foi feita com sucesso ou n˜ao. Se n˜ao, informa o porquˆe disso. Visualizar compra de produto 1. O usu´ario seleciona a opc¸a˜ o visualizar compra de produto; 2. O sistema apresenta um campo no qual deve ser informado o c´odigo da compr, e uma lista para se buscar a compra que se quer visualizar; 3. O usu´ario informa o c´odigo da compra a se visualizar, ou seleciona na lista;


4. O sistema abre a tela em que foi cadastrada a compra; Buscar compra de produto 1. O usu´ario seleciona a opc¸a˜ o buscar compra de produto; 2. O sistema apresenta um campo no qual deve ser informado o c´odigo da compra, e uma lista para se buscar a mesma; 3. O usu´ario informa o c´odigo da compra, ou seleciona na lista; 4. O sistema exibe o produto. 6.2.3.6

Gerenciar Compra de Suprimentos M´edicos

Objetivo Controlar e gerenciar os suprimento m´edicos. Descric¸a˜ o passo a passo inicial 1. Usu´ario acessa o sistema e recebe uma tela de autenticac¸a˜ o; 2. Ap´os a autenticac¸a˜ o o sistema apresenta a tela inicial com as suas funcionalidades 3. O usu´ario seleciona a opc¸a˜ o gerenciar estoque de suprimento m´edicos e o sistema apresentar´a as seguintes funcionalidades: Cadastrar suprimento m´edico; Alterar suprimento m´edico; Excluir suprimento m´edico; Visualizar suprimento m´edico; Buscar suprimento m´edico; Selecionando funcionalidades: Registrar compra de suprimento m´edico: 1. O usu´ario seleciona a opc¸a˜ o registrar compra de suprimento m´edico; 2. O sistema abre uma tela com todos os dados necess´arios; 3. O usu´ario informa os dados para todos os campos; 4. O sistema informa se a compra de suprimento m´edico foi registrado ou n˜ao, se n˜ao, o porquˆe disso; Alterar compra de suprimento m´edico 1. O usu´ario seleciona a opc¸a˜ o alterar compra de suprimento m´edico; 2. O sistema apresenta um campo no qual deve ser informado o c´odigo da compra, e uma lista para se buscar a compra a ser alterado; 3. O usu´ario informa o c´odigo da compra a ser alterada, ou seleciona na lista;


4. O sistema abre a tela de alterac¸a˜ o de compra de suprimento m´edico; 5. O usu´ario altera os dados, e clica em um bot˜ao para gravar os dados; 6. O sistema informa se a alterac¸a˜ o foi feita com sucesso ou n˜ao. Se n˜ao, informa o porquˆe disso. Excluir compra de suprimento m´edico 1. O usu´ario seleciona a opc¸a˜ o excluir compra de suprimento m´edico; 2. O sistema apresenta um campo no qual deve ser informado o c´odigo da compra de suprimento m´edico, e uma lista para se buscar a compra a ser exclu´ıdo; 3. O usu´ario informa o c´odigo da compra a ser exclu´ıdo, ou seleciona na lista; 4. O sistema abre uma tela perguntando se o usu´ario quer realmente excluir a compra; 5. O usu´ario seleciona se sim ou n˜ao; 6. O sistema informa se a exclus˜ao foi feita com sucesso ou n˜ao. Se n˜ao, informa o porquˆe disso. Visualizar compra de suprimento m´edico 1. O usu´ario seleciona a opc¸a˜ o visualizar compra de suprimento m´edico; 2. O sistema apresenta um campo no qual deve ser informado o c´odigo da compra, e uma lista para se buscar a compra que se quer visualizar; 3. O usu´ario informa o c´odigo da compra a se visualizar, ou seleciona na lista; 4. O sistema abre a tela em que foi cadastrada a compra; Buscar compra de suprimento m´edico 1. O usu´ario seleciona a opc¸a˜ o buscar compra de suprimento m´edico; 2. O sistema apresenta um campo no qual deve ser informado o c´odigo da compra de suprimento m´edico, e uma lista para se buscar a compra; 3. O usu´ario informa o c´odigo da compra, ou seleciona na lista; 4. O sistema exibe a compra. 6.2.3.7

Gerenciar Uso de Suprimento M´edico

Objetivo O sistema deve controlar, e dar apoio para que o usu´ario possa realizar a uso de suprimento m´edico. Descric¸a˜ o passo a passo inicial


1. Usu´ario acessa o sistema e recebe uma tela de autenticac¸a˜ o 2. Ap´os a autenticac¸a˜ o o sistema apresenta a tela inicial com as suas funcionalidades 3. O usu´ario seleciona a opc¸a˜ o de gerenciar uso de suprimento m´edico e o sistema apresentar´a as seguintes funcionalidades: Registrar Uso de suprimento m´edico; Alterar Uso de suprimento m´edico; Cancelar Uso de suprimento m´edico; Visualizar Uso de suprimento m´edico; Buscar Uso de suprimento m´edico; Selecionando funcionalidades: Registrar Uso de suprimento m´edico 1. O usu´ario seleciona a opc¸a˜ o Registrar Uso de suprimento m´edico; 2. O sistema abre uma tela com todos os dados necess´arios do uso de suprimento m´edico, como m´edico, suprimento, prec¸o, etc. 3. O usu´ario informa os dados para todos os campos; 4. O sistema informa se o registro do uso de suprimento m´edico foi efetuado ou n˜ao, se n˜ao, o porquˆe disso; Alterar Uso de suprimento m´edico 1. O usu´ario seleciona a opc¸a˜ o alterar registro de uso de suprimento m´edico; 2. O sistema apresenta um campo no qual deve ser informado o c´odigo do registro de uso de suprimento m´edico, e uma lista para se buscar o mesmo a ser alterada; 3. O usu´ario informa o c´odigo do registro de uso de suprimento m´edico a ser alterado, ou seleciona na lista; 4. O sistema abre a tela de alterac¸a˜ o de registro de uso de suprimento m´edico; 5. O usu´ario altera os dados, e clica em um bot˜ao para gravar os dados 6. O sistema informa se a alterac¸a˜ o foi feita com sucesso ou n˜ao, se n˜ao, informa o porquˆe disso. Cancelar Uso de suprimento m´edico 1. O usu´ario seleciona a opc¸a˜ o Cancelar registro de uso de suprimento m´edico; 2. O sistema apresenta um campo no qual deve ser informado o c´odigo do registro de uso de suprimento m´edico, e uma lista para se buscar o mesmo a ser cancelado; 3. O usu´ario informa o c´odigo do registro a ser cancelado, ou seleciona na lista; 4. O sistema abre a tela que foi feita o registro do uso de suprimento m´edico; 5. O usu´ario verifica o registro, se ele realmente deve ser cancelado, e confirma; 6. O sistema informa se o cancelamento foi feito com sucesso ou n˜ao, se n˜ao, informa o porquˆe disso.


Visualizar Uso de suprimento m´edico 1. O usu´ario seleciona a opc¸a˜ o visualizar uso de suprimento m´edico; 2. O sistema apresenta um campo no qual deve ser informado o c´odigo do registro do uso de suprimento m´edico, e uma lista para se buscar o mesmo que se quer visualizar; 3. O usu´ario informa o c´odigo do registro a se visualizar, ou seleciona na lista; 4. O sistema abre a tela em que foi feita o registro do uso de suprimento m´edico; Buscar registro de uso de suprimento m´edico 1. O usu´ario seleciona a opc¸a˜ o buscar registro de uso de suprimento m´edico; 2. O sistema apresenta um campo no qual deve ser informado o c´odigo do registro, e uma lista para se buscar o mesmo; 3. O usu´ario informa o c´odigo do registro de uso de suprimento m´edico, ou seleciona na lista; 4. O sistema exibe o registro de uso de suprimento m´edico.


6.2.4

Thiago

6.2.4.1

Agendar Exames

Objetivo Agendar um exame, marcando dia e hor´ario para determinado paciente. Descric¸a˜ o passo a passo inicial 1. O recepcionista acessa o sistema 2. O recepcionista requisita agendamento de hor´ario 3. O recepcionista seta um dia e hor´ario e cliente para exame 4. O sistema valida e grava os dados 6.2.4.2

Anexar Exame a` ficha

Objetivo Referenciar exame agendado a ficha de um determinado cliente Descric¸a˜ o passo a passo inicial 1. O recepcionista acessa o sistema 2. O recepcionista busca a ficha referente a um determinado cliente 3. O recepcionista insere os dados do exame na ficha do cliente 4. O sistema valida e grava os dados 6.2.4.3

Cadastrar Exame Interno

Objetivo Cadastrar dados de um exame efetuado dentro da cl´ınica Descric¸a˜ o passo a passo inicial 1. O recepcionista acessa o sistema 2. O recepcionista requisita cadastro de exame interno 3. O recepcionista entra com os dados referentes ao exame 4. O sistema valida e grava os dados


6.2.4.4

Cadastrar Exames

Objetivo Cadastrar dados de um exame referente a um determinado cliente Descric¸a˜ o passo a passo inicial 1. O recepcionista acessa o sistema 2. O recepcionista requisita cadastro de exame 3. O recepcionista escolhe entre exame externo ou interno 4. O recepcionista entra com os dados referentes ao exame 5. O sistema valida e grava os dados 6.2.4.5

Cadastrar Receitas

Objetivo Cadastrar receitas m´edicas emitidas por um determinado m´edico afim de orientar o paciente a como tratar de sua enfermidade Descric¸a˜ o passo a passo inicial 1. O m´edico acessa o sistema 2. O m´edico requisita cadastro de receita 3. O m´edico entra com os dados referentes a` receita 4. O sistema valida e grava os dados 6.2.4.6

Cadastrar Rem´edio

Objetivo Cadastrar medicamentos afim de inseri-los nas configurac¸o˜ es de receitas encaminhadas a pacientes Descric¸a˜ o passo a passo inicial 1. O m´edico acessa o sistema 2. O m´edico requisita cadastro de medicamento 3. O m´edico entra com os dados referentes ao rem´edio 4. O sistema valida e grava os dados


6.2.4.7

Gerenciar Consulta

Objetivo Gerenciar informac¸o˜ es referentes a consultas, bem como hor´ario de agendamento, agendamento de retorno de pacientes, comunicac¸a˜ o de faltas de pacientes a consultas agendadas Descric¸a˜ o passo a passo inicial 1. O recepcionista acessa o sistema 2. O recepcionista requisita gerenciamento de consulta 3. O recepcionista faz alterac¸o˜ es ou configurac¸o˜ es necess´arias 4. O sistema valida e grava os dados 6.2.4.8

Gerenciar Exame Externo

Objetivo Promover o controle do recebimento de exames realizados fora da cl´ınica referentes a pacientes dessa Descric¸a˜ o passo a passo inicial 1. O recepcionista acessa o sistema 2. O recepcionista requisita cadastro de exame 3. O recepcionista escolhe entre exame externo 4. O recepcionista entra com os dados referentes ao exame 5. O sistema valida e grava os dados 6.2.4.9

Gerenciar Receitas

Objetivo Promover o controle de receitas cadastradas por m´edicos, referentes a seus pacienetes Descric¸a˜ o passo a passo inicial 1. O m´edico acessa o sistema 2. O m´edico requisita gerenciamento de receita 3. O m´edico requisita operac¸o˜ es sobre receita (emitir receita, re-emitir receita, etc.) 4. O sistema valida e atende a requisic¸a˜ o


6.2.4.10

Registrar Hor´ario

Objetivo Registrar hor´arios referentes a ocorrˆencia de consultas na cl´ınica Descric¸a˜ o passo a passo inicial 1. O recepcionista acessa o sistema 2. O recepcionista requisita registro de hor´ario 3. O recepcionista entra com dados de entrada e sa´ıda de pacientes em consultas, ou suas faltas 4. O sistema valida e grava os dados 6.2.4.11

Remarcar Exame

Objetivo Agendar exames para clientes que necessitaram faltar em exames previamente agendados Descric¸a˜ o passo a passo inicial 1. O recepcionista acessa o sistema 2. O recepcionista requisita agendamento de hor´ario 3. O recepcionista seta um dia e hor´ario e cliente para exame 4. O sistema valida e grava os dados


6.3

Priorizac¸a˜ o dos Casos de Uso

1. Gerenciar Consulta 2. Gerenciar Caixa 3. Gerenciar Venda de Produtos 4. Gerenciar Procedimento M´edico 5. Gerenciar Receitas 6. Gerenciar Contas a Pagar 7. Gerenciar Contas a Receber 8. Gerenciar Estoque de Produtos 9. Gerenciar Estoque de Suprimentos M´edicos 10. Gerenciar Exame Externo 11. Gerenciar Leito 12. Gerenciar Compra de Produto 13. Gerenciar Compra de Suprimento M´edico


Iterac¸a˜ o 2

6.4

Organizac¸a˜ o: Cl´ınica M´edica

P´agina: 1

Sistema: CliniMaster

Vers˜ao: 1

Documento: Caso de Uso Agendar Procedimento

Data: 19/04/2010

Fase: An´alise

Iterac¸a˜ o: 2

Respons´avel: Anderson

Caso de Uso Agendar Procedimento Objetivo No atendimento de consulta de algum paciente, se o m´edico constatar a necessidade da realizac¸a˜ o de algum procedimento m´edico especializado, o m´edico pode realizar o agendamento desse procedimento a ser realizado. Pr´e-condic¸o˜ es O agendamento deve ser realizado para paciente cadastrado na cl´ınica e procedimento m´edico existente na cl´ınica. Iniciado por O m´edico faz uma consulta na sua agenda no sistema para confirmar a disponibilidade de data e tamb´em faz uma busca pela disponibilidade do procedimento m´edico na cl´ınica. Fluxo principal Para um usu´ario autenticado o sistema apresenta a tela inicial com as suas funcionalidades; 1. O m´edico seleciona a opc¸a˜ o agendar procedimento m´edico; 2. O m´edico seleciona a opc¸a˜ o buscar procedimentos; 3. O sistema busca os tipos de procedimentos; 4. O sistema apresenta os tipos de procedimentos disponiveis; 5. O m´edico seleciona o tipo de procedimento; 6. O sistema busca na agenda do m´edico as datas disponiveis; 7. O sistema busca, na agenda dos leitos disponiveis, as intersec¸o˜ es entre agenda do m´edico e agenda do tipo do leito para o procedimento; 8. O sistema apresenta ao m´edico uma agenda dispon´ıvel; 9. O m´edico seleciona uma data; 10. O sistema busca os pacientes; 11. O sistema apresenta os pacientes;


12. O m´edico seleciona o paciente; 13. O sistema agenda o procedimento m´edico criando uma identificac¸a˜ o para o procedimento m´edico agendado; 14. O sistema atualiza a agenda do m´edico, indisponibilizando esta data; 15. O sistema atualiza a agenda do leito, indisponibilizando esta data. P´os-condic¸a˜ o O sistema agenda o procedimento m´edico para o paciente, atualiza a agenda do m´edico e do leito.


Iterac¸a˜ o 3

6.5

Organizac¸a˜ o: Cl´ınica M´edica

P´agina: 1

Sistema: CliniMaster

Vers˜ao: 1

Documento:Caso de Uso Realizar Recebimento

Data: 19/04/2010

Fase: An´alise

Iterac¸a˜ o: 3

Respons´avel: F´abio

Caso de Uso Realizar Recebimento Objetivo O objetivo deste caso de uso e´ permitir ao recepcionista ou ao administrador realizar o recebimento de pagamento de um paciente com o objetivo de quitar em parte ou em todo o seu saldo devedor proveniente da utilizac¸a˜ o dos servic¸os da cl´ınica ou da compra de produtos. Pr´e-condic¸o˜ es O paciente deve estar devidamente cadastrado e deve possuir saldo devedor maior que zero. Iniciado por O usu´ario executa a opc¸a˜ o de recebimento no sistema a pedido do paciente. Fluxo principal 1. O usu´ario acessa o sistema; 2.

include Autenticar Usu´ario;



3. O usu´ario executa a opc¸a˜ o Recebimento; 4. O usu´ario seleciona o paciente desejado; 5. O sistema exibe o saldo devedor do paciente; 6. O usu´ario seleciona a opc¸a˜ o de quitac¸a˜ o (parcial ou total); 7. O usu´ario seleciona o tipo de pagamento (dinheiro, cheque, cart˜ao de cr´edito ou cart˜ao de d´ebito); 8. O sistema exibe as informac¸o˜ es do pagamento e pede para o usu´ario confirmar a operac¸a˜ o; 9. O sistema insere uma entrada no registro de pagamentos referente a` operac¸a˜ o realizada; 10. O sistema atualiza o saldo devedor do paciente; 11. O sistema atualiza o saldo do caixa; 12. O sistema gera um recibo do pagamento e permite ao usu´ario imprim´ı-lo; 13. O sistema retorna a` tela inicial.


Fluxo alternativo: Cancelar por Falta de Saldo Devedor No item 5, o paciente selecionado n˜ao possui saldo devedor. O sistema exibe uma mensagem informativa e retorna a` tela inicial. Fluxo alternativo: Quitar Parcialmente No item 6, o usu´ario seleciona a opc¸a˜ o de quitac¸a˜ o parcial. O sistema exibe uma entrada para que ele informe o valor a ser quitado, garantindo que o valor seja menor ou igual ao saldo devedor. O sistema retorna ao item 7. Fluxo alternativo: Cancelar Operac¸a˜ o Nos itens 4, 6 ou 7 o usu´ario cancela a operac¸a˜ o. O sistema retorna a` tela inicial. Fluxo alternativo: Pagar com Cheque No item 11, caso o usu´ario tenha selecionado pagamento por cheque. O sistema gera uma conta a receber referente ao desconto do cheque. O sistema retorna ao item 12. Fluxo alternativo: Pagar com Cart˜ao de Cr´edito No item 11, caso o usu´ario tenha selecionado pagamento por cart˜ao de cr´edito. O sistema gera uma conta a receber referente ao recebimento do dinheiro da operadora de cart˜ao de cr´edito. O sistema retorna ao item 12. Fluxo alternativo: Pagar com Cart˜ao de D´ebito No item 11, caso o usu´ario tenha selecionado pagamento por cart˜ao de d´ebito. O sistema atualiza o saldo esperado da conta banc´aria associada com pagamentos por cart˜ao de d´ebito. O sistema retorna ao item 12. P´os-condic¸a˜ o O pagamento foi registrado e os saldos apropriados atualizados ou nada ocorreu, por cancelamento da operac¸a˜ o.


Iterac¸a˜ o 4

6.6

Organizac¸a˜ o: Cl´ınica M´edica

P´agina: 1

Sistema: CliniMaster

Vers˜ao: 1

Documento:Caso de Uso Gerenciar Venda de Produtos

Data: 19/04/2010

Fase: An´alise

Iterac¸a˜ o: 4

Respons´avel: Paulo

Caso de Uso Gerenciar Venda de Produtos Objetivo Para uma maior comodidade do paciente, os pacientes que necessitarem, e quiserem, podem adquirir produtos na pr´opria cl´ınica. O sistema estar´a apto para realizar todas estas operac¸o˜ es. Pr´e-condic¸o˜ es O paciente deve ser cadastrado no sistema, o produto que ele necessitar deve estar cadastrado tamb´em, e ainda deve existir em estoque. Iniciado por O m´edico faz uma consulta com o paciente, emite uma receita, e se houver a disponibilidade do produto em estoque, ele pode ser adquirido ali mesmo. Fluxo principal 1. Usu´ario acessa o sistema e recebe uma tela de autenticac¸a˜ o; 2.

include Autenticar usu´ario;



3. Ap´os a autenticac¸a˜ o o sistema apresenta a tela de venda de produtos com as suas funcionalidades; 4. O m´edico informa o ID do paciente; 5. O sistema confirma a existˆencia do ID do paciente; 6. O m´edico informa os IDs dos produtos e a quantidade que o paciente deseja; 7. O sistema confirma a existˆencia dos IDs dos produtos e da quantidade em estoque; 8. O m´edico confirma a venda dos produtos; 9. O sistema d´a baixa nos produtos vendidos. Fluxo alternativo: N˜ao autenticar o usu´ario No item 3, se o m´edico n˜ao for autenticado, o sistema retorna na tela inicial do sistema.


Fluxo alternativo: Inexistˆencia do c´odigo do paciente No item 4, se o m´edico informar um ID de paciente inexistente, o sistema deve informar o erro ao m´edico e retornar ao item 3 do fluxo principal. Fluxo alternativo: Inexistˆencia do c´odigo do produto, ou quantidade No item 6, se o m´edico informar um ID de produto inexistente, o sistema deve informar o erro ao m´edico e retornar ao item 5 do fluxo principal. Fluxo alternativo: Inexistˆencia de estoque do produto No item 6, se o m´edico informar uma quantidade do produto que seja inexistente no estoque, o sistema deve informar o erro ao m´edico e retornar ao item 5 do fluxo principal. P´os-condic¸a˜ o O sistema confirma a venda do produto para o paciente.


Iterac¸a˜ o 5

6.7

Organizac¸a˜ o: Cl´ınica M´edica

P´agina: 1

Sistema: CliniMaster

Vers˜ao: 1

Documento: Caso de Uso Agendar Exames

Data: 19/04/2010

Fase: An´alise

Iterac¸a˜ o: 5

Respons´avel: Thiago

Caso de Uso Agendar Exames Objetivo Permite o agendamento de exames a serem realizados em um paciente, dentro da cl´ınica. Pr´e-Condic¸o˜ es O usu´ario tem que estar autorizado para efetuar essa ac¸a˜ o. O paciente deve estar cadastrado na cl´ınica. Iniciado por O usu´ario acessa a tela de agendamento de exame. Fluxo Principal 1. O usu´ario acessa a p´agina inicial do sistema; 2.

include Autenticar Usu´ario;



3. O sistema apresenta a tela inicial do sistema; 4. O Usu´ario seleciona a opc¸a˜ o de Agendar Exame; 5. O sistema exibe as opc¸o˜ es de agendamento de exame. Fluxo Alternativo: Marcar Exame No item 5, ap´os a opc¸a˜ o “Agendar Exame” ser selecionada, os seguintes passos s˜ao executados: 5.1. O sistema apresenta campos para o agendamento do exame; 5.2. O usu´ario busca pelo cadastro do cliente ao qual se refere a avaliac¸a˜ o ou cancela a operac¸a˜ o indo para o passo 1 do fluxo principal; 5.3. O sistema exibe dados de cadastro do paciente procurado, caso este esteja cadastrado na cl´ınica. Caso contr´ario o sistema exibe uma tela de aviso sobre a falta de cadastro e o sistema retorna ao passo 5.2; 5.4. O usu´ario entra com os dados referentes a` execuc¸a˜ o do exame (data, hora, etc.) ou cancela a operac¸a˜ o retornando ao passo 1 do fluxo principal;


5.5. O sistema valida os dados inseridos pelo usu´ario e verifica a disponibilidade de hor´ario para tal. Em caso de inconsistˆencias, o sistema avisa e retorna ao passo 5.4; 5.6. O usu´ario confirma o agendamento ou cancela a operac¸a˜ o retornando ao passo 5.4; 5.7. Os dados s˜ao gravados no banco de dados; 5.8. O sistema apresenta opc¸a˜ o de agendar novo exame; 5.9. O usu´ario opta por agendar novo exame fazendo o sistema retornar ao passo 5.1 ou cancela a operac¸a˜ o indo ao passo 1 do fluxo principal. Fluxo Alternativo: Registrar Hor´ario No item 5, ap´os a opc¸a˜ o “Agendar Exame” ser selecionada, os seguintes passos s˜ao executados: 5.1. O usu´ario solicita a visualizac¸a˜ o de exames agendados; 5.2. O sistema exibe um calend´ario contendo marcac¸o˜ es sobre exames agendados; 5.3. O usu´ario escolhe um exame j´a ocorrido para registrar o hor´ario da ocorrˆencia para futura comparac¸a˜ o com o hor´ario que deveria ter ocorrido ou cancela, voltando ao passo 5 do fluxo principal; 5.4. O usu´ario confirma a alterac¸a˜ o voltando ao passo 1 do fluxo principal; Fluxo Alternativo: Registrar Falta No item 5, ap´os a opc¸a˜ o “Agendar Exame” ser selecionada, os seguintes passos s˜ao executados: 5.1. O usu´ario solicita a visualizac¸a˜ o de exames agendados; 5.2. O sistema exibe um calend´ario contendo marcac¸o˜ es sobre exames agendados; 5.3. O usu´ario marca o hor´ario com a falta do pacienta ou seleciona “Voltar” retornando ao passo 5 do fluxo principal; 5.4. O hor´ario fica dispon´ıvel a outros agendamentos e o sistema retorna ao passo 5 do fluxo principal. Fluxo Alternativo: Cancelar Exame No item 5, ap´os a opc¸a˜ o “Agendar Exame” ser selecionada, os seguintes passos s˜ao executados: 5.5. O usu´ario solicita a visualizac¸a˜ o de exames agendados; 5.6. O sistema exibe um calend´ario contendo marcac¸o˜ es sobre exames agendados; 5.7. O usu´ario verifica os hor´arios agendados ou seleciona “Voltar” retornando ao passo 5 do fluxo principal; 5.8. O usu´ario seleciona o hor´ario a ser cancelado ou seleciona “Voltar” retornando ao passo 5 do fluxo principal;


5.9. O usu´ario seleciona “Cancelar Hor´ario” e confirma ou seleciona “Voltar” retornando ao passo 5 do fluxo principal; 5.10. O hor´ario fica dispon´ıvel a outros agendamentos e o sistema retorna ao passo 5 do fluxo principal. P´os-condic¸o˜ es Um hor´ario foi agendado para um determinado cliente e este n˜ao poder´a comparecer, portanto o(a) recepcionista e´ notificado(a) e necessita cancelar o exame.


6.8

Diagrama de Casos de Uso


7

Modelo de An´alise

7.1

Diagramas de Colaborac¸a˜ o

7.1.1

Anderson

Fluxo O m´edico seleciona, via interface, a funcionalidade “Agendar Procedimento” (1). O sistema apresenta a interface de agendamento de procedimento. O m´edico seleciona a opc¸a˜ o “Buscar Tipos de Procedimentos” e a interface “iGerenciarAgendamento” pede ao objeto “GerenciadorAgendamento” que busque os tipos de procedimentos dispon´ıveis atrav´es da chamada “buscar tipos procedimentos” assim e´ exibido ao m´edico os tipos de procedimentos “apresentar tipos procedimentos” (2,3,4), o m´edico seleciona um tipo de procedimento “selecionar tipo procedimento” (5). O “GerenciadorAgendamento” busca as datas disponiveis da agenda do m´edico “data disponivel” (6), o “GerenciadorAgendamento” busca a intersec¸a˜ o entre as datas dos leitos dispon´ıveis e as datas dispon´ıveis na agenda do m´edico “buscar leito” (7), o sistema apresenta ao m´edico as poss´ıveis datas para se agendar esse tipo de procedimento, “apresentar agenda” (8). O m´edico seleciona uma data, “agendar data” (9). O sistema busca os pacientes “buscar pacientes” (10). O sistema apresenta ao m´edico os pacientes, “apresentar pacientes” (11). O m´edico seleciona o paciente “selecionar paciente” (12). Ent˜ao, o “GerenciadorAgendamento” cria o objeto “Procedimento” atrav´es da chamada “agendar procedimento” (13). O objeto “GerenciadorAgendamento” envia a mensagem para alterar a disponibilidade desta data no objeto “AgendaMedico”, “alterar agenda” (14). E por fim, envia a mensagem para alterar a agenda do leito, “agendar leito” (15).


7.1.2

Fabio

Fluxo O usu´ario acessa a opc¸a˜ o “Realizar Recebimento” (1,2). O sistema exibe uma lista com os pacientes existentes (3,4). O usu´ario seleciona o paciente desejado (5,6). O sistema apresenta o saldo devedor do paciente selecionado (7,8). O sistema mostra os tipos de recebimento dispon´ıveis (9). O usu´ario informa o valor de quitac¸a˜ o e seleciona o tipo de recebimento (10,11,12,13). O sistema exibe os dados do recebimento para confirmac¸a˜ o (14). O usu´ario confirma o recebimento (15,16). O sistema atualiza o saldo devedor do paciente (17). O sistema atualiza o saldo do caixa (18). O sistema exibe o recibo do recebimento para que o usu´ario possa imprim´ı-lo (19).


7.1.3

Paulo

Fluxo O m´edico acessa a interface inicial do sistema (1), o m´edico deve passar os dados do paciente e tamb´em do produto (2), o sistema ent˜ao atrav´es do controlador “GerenciadorVendaProduto” ir´a at´e a entidade “Paciente” e buscar´a se o mesmo tem cadastro no sistema (3), o controlador ainda buscar´a os dados dos produtos a serem vendidos (4), e se os produtos tˆem a quantidade desejada em estoque (5), o sistema retorna para a interface uma mensagem se h´a estoque dos produtos selecionados (6,7), ent˜ao o m´edico faz a confirmac¸a˜ o da venda (8,9), se n˜ao houver o objeto “Venda” e o objeto “ItemProduto” eles ser˜ao criados, e registra-se a venda e os produtos da venda respectivamente (10,11), e o sistema dever´a retornar uma mensagem para a interface (12,13) e para o m´edico, mostrando se a venda dos produtos foi efetuada com sucesso.


7.1.4

Thiago

Fluxo A secret´aria acessa o gerenciamento de exames atrav´es do menu. O sistema apresenta a tela pertinente a tal opc¸a˜ o. A secret´aria escolhe a opc¸a˜ o agendar exame (1). A classe boundary envia a solicitac¸a˜ o ao “GerenciadorAgendamento” (2). O “GerenciadorAgendamento” busca os pacientes que ser˜ao disponibilizados ao cadastro (3). O “GereciadorAgendamendo” busca os m´edicos cadastrados que ser˜ao disponibilizados ao agendamento (4). O “GerenciadorAgendamento” retorna as informac¸o˜ es de pacientes e m´edicos ao “iGerenciarAgendamento” (5). O “iGerenciarAgendamento” exibe as informac¸o˜ es (6). A secret´aria faz uso das informac¸o˜ es exibidas e entra com os dados pertinentes ao agendamento (7). O “iGerenciarAgendamento” injeta as informac¸o˜ es do agendamento no “GerenciadorAgendamento” (8). O gerenciador salva as informac¸o˜ es do agendamento na classe “ExameInterno” (9). O gerenciador retorna uma mensagem pertinente a` realizac¸a˜ o do salvamento (10). A classe de interface exibe a mensagem (11).


8

Modelo de Projeto

Identificac¸a˜ o dos Padr˜oes de Projeto

8.1 8.1.1

Anderson

Padr˜ao Fac¸ade Minha classe controladora de agendamento de procedimentos precisa se comunicar com um grande n´umero de objetos, isso fez com que ela se torna-se muito acoplada, muito dependente dos outros objetos. Com o padr˜ao de projeto Fac¸ade, posso apresentar uma interface simples para a minha classe controladora, deixando-a com baixo acoplamento, favorecendo a independˆencia e a portabilidade.

8.1.2

Fabio

Padr˜ao Memento A operac¸a˜ o de recebimento deve, durante a sua execuc¸a˜ oi atualizar o saldo devedor do paciente e realizar um cr´edito no saldo do caixa. Para que n˜ao hajam problemas de inconsistˆencia de dados, e´ necess´ario que essas duas operac¸o˜ es sejam feitas de forma atˆomica, isto e´ , ou ambas ocorrem ou nenhuma ocorre. Para resolver este problema, foi utilizado o padr˜ao Memento. Ele permite adicionar a funcionalidade de “desfazer” a` classe Paciente, de forma que seja poss´ıvel desfazer a atualizac¸a˜ o no saldo do paciente se o cr´edito no caixa n˜ao for bem sucedido, obtendo assim a atomicidade da operac¸a˜ o.

8.1.3

Paulo

Padr˜ao Flyweight Neste caso, foi usado o padr˜ao de projetos Flyweight, porque o mesmo, compartilha objetos que tem poucas diferenc¸as entre si, sem a necessidade de criar v´arios objetos diferentes. O que e´ o caso do objeto suprimento m´edico e tamb´em do objeto produto, pois os dois s˜ao praticamente iguais, a u´ nica coisa que muda, e´ que um n˜ao pode ser vendido (´e para uso dentro da cl´ınica), e o outro deve ser vendido, respectivamente.


8.1.4

Thiago

Padr˜ao Adapter O padr˜ao adapter e´ utilizado para conectar objetos com mesma necessidades espec´ıficas por´em com interfaces incompat´ıveis. Como no exemplo as classes “ExameExterno” e “ExameInterno” que utilizam dados dados semelhantes sob um mesmo padr˜ao de operac¸o˜ es por´em seus gerenciadores possuem m´etodos diferentes que podem ser supridos de uma mesma forma pela classe “Adapter”. E a classe receita que acessa “Agenda” da mesma forma atrav´es do padr˜ao de projeto.


8.2 8.2.1

Diagramas de Sequˆencia Anderson


8.2.2

Fabio


8.2.3

Paulo


8.2.4

Thiago


8.3

Diagrama de Estados


8.4 8.4.1

Diagramas de Atividades Anderson


8.4.2

Fabio


8.4.3

Paulo


8.4.4

Thiago


8.5

Diagrama de Componentes


8.6 8.6.1

Projeto de Interface Anderson


8.6.2

Fabio


8.6.3

Paulo


8.6.4

Thiago


8.7

Mapeamento objeto-relacional O mapeamento objeto-relacional e´ gerado automaticamente pelo framework Ruby on Rails. As tabelas re-

sultantes referentes a` s classes de entidade s˜ao dadas pela schema a seguir:

CREATE TABLE "contas_bancarias" ( "id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "banco" varchar(255) NOT NULL, "agencia" varchar(255) NOT NULL, "numero" varchar(255) NOT NULL, "saldo" decimal(12,2) NOT NULL, "created_at" datetime, "updated_at" datetime ); CREATE TABLE "fornecedores" ( "id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "codigo" integer NOT NULL, "nome" varchar(255) NOT NULL, "cnpj" varchar(255) NOT NULL, "inscricao_estadual" varchar(255) NOT NULL, "endereco" varchar(255) NOT NULL, "cep" varchar(255) NOT NULL, "cidade" varchar(255) NOT NULL, "estado" varchar(255) NOT NULL, "telefone" varchar(255) NOT NULL, "created_at" datetime, "updated_at" datetime );


CREATE TABLE "funcionarios" ( "id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "codigo" integer NOT NULL, "tipo" varchar(255) NOT NULL, "nome" varchar(255) NOT NULL, "cpf" varchar(255) NOT NULL, "rg" varchar(255) NOT NULL, "carteira_trabalho" varchar(255) NOT NULL, "nascimento" date NOT NULL, "endereco" varchar(255) NOT NULL, "cep" varchar(255) NOT NULL, "cidade" varchar(255) NOT NULL, "estado" varchar(255) NOT NULL, "telefone" varchar(255) NOT NULL, "admissao" date NOT NULL, "afastamento" date, "tipo_afastamento" varchar(255), "created_at" datetime, "updated_at" datetime ); CREATE TABLE "laboratorios" ( "id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "codigo" integer NOT NULL, "nome" varchar(255) NOT NULL, "cnpj" varchar(255) NOT NULL, "inscricao_estadual" varchar(255) NOT NULL, "endereco" varchar(255) NOT NULL, "cep" varchar(255) NOT NULL, "cidade" varchar(255) NOT NULL, "estado" varchar(255) NOT NULL, "telefone" varchar(255) NOT NULL, "created_at" datetime, "updated_at" datetime );


CREATE TABLE "leitos" ( "id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "codigo" integer NOT NULL, "localizacao" varchar(255) NOT NULL, "tipo" varchar(255) NOT NULL, "paciente_id" integer, "created_at" datetime, "updated_at" datetime ); CREATE TABLE "pacientes" ( "id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "codigo" integer NOT NULL, "nome" varchar(255) NOT NULL, "cpf" varchar(255) NOT NULL, "rg" varchar(255) NOT NULL, "nascimento" date NOT NULL, "endereco" varchar(255) NOT NULL, "cep" varchar(255) NOT NULL, "cidade" varchar(255) NOT NULL, "estado" varchar(255) NOT NULL, "telefone" varchar(255) NOT NULL, "created_at" datetime, "updated_at" datetime ); CREATE TABLE "produtos" ( "id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "codigo" integer NOT NULL, "nome" varchar(255) NOT NULL, "descricao" text NOT NULL, "preco" decimal(12,2) NOT NULL, "created_at" datetime, "updated_at" datetime );


CREATE TABLE "remedios" ( "id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "codigo" integer NOT NULL, "nome" varchar(255) NOT NULL, "peso" integer NOT NULL, "unidade" varchar(255) NOT NULL, "descricao" text NOT NULL, "created_at" datetime, "updated_at" datetime ); CREATE TABLE "suprimentos" ( "id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "codigo" integer NOT NULL, "nome" varchar(255) NOT NULL, "descricao" text NOT NULL, "preco" decimal(12,2) NOT NULL, "created_at" datetime, "updated_at" datetime ); CREATE TABLE "tipos_exame_externo" ( "id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "codigo" integer NOT NULL, "nome" varchar(255) NOT NULL, "descricao" text NOT NULL, "laboratorio_id" integer NOT NULL, "created_at" datetime, "updated_at" datetime ); CREATE TABLE "tipos_exame_interno" ( "id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "codigo" integer NOT NULL, "nome" varchar(255) NOT NULL, "descricao" text NOT NULL, "preco" decimal(12,2) NOT NULL, "created_at" datetime, "updated_at" datetime );


CREATE TABLE "tipos_laudo" ( "id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "codigo" integer NOT NULL, "nome" varchar(255) NOT NULL, "descricao" text NOT NULL, "created_at" datetime, "updated_at" datetime ); CREATE TABLE "tipos_procedimento" ( "id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "codigo" integer NOT NULL, "nome" varchar(255) NOT NULL, "descricao" text NOT NULL, "created_at" datetime, "updated_at" datetime ); CREATE TABLE "usuarios" ( "id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "codigo" integer NOT NULL, "login" varchar(255) NOT NULL, "senha" varchar(255) NOT NULL, "created_at" datetime, "updated_at" datetime );


8.8

Diagrama de Implantac¸a˜ o


9

Diagrama de Classes


10 Frameworks

10.1

Ruby on Rails

Ruby on Rails e´ um framework para aplicac¸o˜ es web baseado no padr˜ao MVC e nos conceitos “Don’t Repeat Yourself” e “Convention over Configuration”. O conceito “Don’t Repeat Yourself” dita que as informac¸o˜ es devem existir somente em um lugar para evitar a redundˆancia e poss´ıveis inconsistˆencias. O conceito “Convention over Configuration” dita que e´ melhor criar-se convenc¸o˜ es sobre como as coisas devem ser feitas do que criar configurac¸o˜ es que devem ser ajustadas para cada projeto. O framework possui como caracter´ısticas: ORM integrado, roteamento de requisic¸o˜ es, sistema de templates, suporte a internacionalizac¸a˜ o, extens˜ao por meio de plugins, suporte a testes integrado e suporte a` utilizac¸a˜ o de middlewares. Ele visa oferecer uma soluc¸a˜ o para o desenvolvimento a´ gil de aplicativos web. Ele foi escolhido por oferecer uma soluc¸a˜ o integrada de desenvolvimento, proporcionar alta produtividade, prover seguranc¸a a` aplicac¸a˜ o, se adequar aos padr˜oes utilizados na ind´ustria e ser utilizado por diversas empresas de grande porte na web, como Twitter, YellowPages e GitHub.

10.2

MooTools

MooTools e´ um framework orientado a objetos, compacto e modular para o desenvolvimento de JavaScript. Possui m´odulos para extens˜ao da linguagem JavaScript, acesso ao DOM, efeitos gr´aficos e animac¸a˜ o, requisic¸o˜ es ass´ıncronas (Ajax/XHR) e detecc¸a˜ o de navegadores. Ele foi escolhido por facilitar o desenvolvimento da camada client-side do sistema por eliminar a preocupac¸a˜ o com as diferenc¸as existentes nas implementac¸o˜ es dos padr˜oes web pelos diversos navegadores do mercado. Tamb´em por fornecer suporte simplificado a` utilizac¸a˜ o de requisic¸o˜ es ass´ıncronas, que melhoram a responsividade da interface, e efeitos gr´aficos, que tornam a interface mais agrad´avel de ser utilizada.


11 Implementac¸a˜ o dos Cadastros B´asicos

11.1

Tecnologias utilizadas

11.1.1

Ruby

Ruby e´ uma linguagem de programac¸a˜ o de alto n´ıvel, orientada a objetos e dinamicamente tipada que re´une caracter´ısticas de Smalltalk, Lisp e Perl. Ela proporciona um desenvolvimento a´ gil e apresenta alto poder de expressividade aliado a` baixa verbosidade.

11.1.2

HTML + CSS + JavaScript

HTML, CSS e JavaScript s˜ao as linguagem padr˜ao para o desenvolvimento client-side de aplicativos web. Elas permitem a criac¸a˜ o de interfaces multiplataforma que podem ser acessadas a partir de qualquer navegador web moderno.

11.1.3

Apache

Apache e´ um poderoso servidor web multiplataforma. Possui como caracter´ısticas: modularidade, suporte a extens˜oes (plugins), integrac¸a˜ o com diversas linguagens de desenvolvimento, alta performance e suporte a balanceamento de carga. Para a integrac¸a˜ o do Apache com o framework Ruby on Rails foi utilizado o Phusion Passenger, que e´ um plugin para o servidor Apache que faz esta integrac¸a˜ o de forma transparente e autom´atica.

11.1.4

PostgreSQL

PostgreSQL e´ um Sistema Gerenciador de Banco de Dados Objeto-Relacional multiplataforma. Possui como caracter´ısticas: suporte completo aos princ´ıpios ACID, implementac¸a˜ o do padr˜ao ANSI SQL, foco na integridade dos dados, suporte a grandes volumes de dados, suporte a replicac¸a˜ o e integrac¸a˜ o com diversos sistemas e linguagens.


11.1.5

Mercurial

Mercurial e´ um sistema de controle de vers˜oes distribu´ıdo e multiplataforma. Ele permite a v´arios desenvolvedores trabalharem simultˆaneamente em uma base de c´odigo de forma segura e transparente, gerenciando automaticamente a integrac¸a˜ o das alterac¸o˜ es efetuadas. Possui como caracter´ısticas: alta performance, escalabilidade e suporte a desenvolvimento distribu´ıdo colaborativo.


11.2

Utilizac¸a˜ o do padr˜ao MVC

O framework Ruby on Rails foi criado segundo os princ´ıpios do padr˜ao MVC e organiza as aplicac¸o˜ es criadas com ele de acordo com esse padr˜ao de forma padronizada.

11.2.1

Model

Os models no Ruby on Rails s˜ao classes Ruby normais que herdam da classe ActiveRecord::Base, fornecida pelo ORM do framework e que implementa o Mapeamento Objeto-Relacional e os m´etodos necess´arios para a criac¸a˜ o, alterac¸a˜ o e destruic¸a˜ o de registros. Eles s˜ao declarados em arquivos .rb na pasta app/models/. Os models no Rails n˜ao declaram os seus atributos diretamente na classe, em vez disso, eles inferem os nomes e tipos dos atributos a partir do schema do banco de dados. Isto e´ feito pois o banco de dados no Rails e´ gerenciado por um sistema de migrations, que fazem o controle versionado das alterac¸o˜ es do banco e j´a possuem as declarac¸o˜ es dos atributos das tabelas do banco. Desta forma, a declarac¸a˜ o tamb´em na classe seria redundante. As migrations s˜ao declaradas em arquivos .rb na pasta db/migrate/. Na classe do model s˜ao declaradas as validac¸o˜ es que devem ser feitas pelo model na gravac¸a˜ o e alterac¸a˜ o de dados, bem como os m´etodos que implementar˜ao a l´ogica de neg´ocios. Abaixo segue um exemplo do model Funcionario:

class Funcionario < ActiveRecord::Base validates_presence_of :codigo, :tipo, :nome, :cpf, :rg, :carteira_trabalho, :nascimento, :endereco, :cep, :cidade, :estado, :admissao validates_date :nascimento, :before => Proc.new { Time.now }, :before_message => "deve ser no passado." validates_date :admissao, :on_or_before => Proc.new { Time.now }, :on_or_before_message => "n~ ao pode ser no futuro." end As validac¸o˜ es presentes no model validam a presenc¸a de determinados atributos e o valor das datas de nascimento e admiss˜ao.


A tabela referente a esse model e´ criada pela seguinte migration:

class CreateFuncionarios < ActiveRecord::Migration def self.up create_table :funcionarios do |t| t.integer :codigo, :null => false t.string :tipo, :null => false t.string :nome, :null => false t.string :cpf, :null => false t.string :rg, :null => false t.string :carteira_trabalho, :null => false t.date :nascimento, :null => false t.string :endereco, :null => false t.string :cep, :null => false t.string :cidade, :null => false t.string :estado, :null => false t.string :telefone, :null => false t.date :admissao, :null => false t.date :afastamento, :null => true t.string :tipo_afastamento, :null => true t.timestamps end end def self.down drop_table :funcionarios end end A migrac¸a˜ o especifica os atributos, os seus tipos e as restric¸o˜ es em n´ıvel de banco de dados que ser˜ao aplicadas a eles.

11.2.2

View

As views no Ruby on Rails s˜ao constru´ıdas utilizando-se o sistema de templates ERB (Embedded Ruby), que permite que se criem p´aginas HTML com c´odigo Ruby incluso que e´ executado quando chamado pelo usu´ario. Elas recebem valores obtidos e organizados pelos controllers e os utilizam para renderizar as p´aginas HTML finais que ser˜ao enviadas ao usu´ario. Elas s˜ao declaradas em arquivos .html.erb na pasta app/views/.


Abaixo segue um exemplo da view funcionarios/index: <div class="block"> <div class="secondary-navigation"> <ul class="cf"> <li class="first active"><%= link_to "Listar", funcionarios_path

%></li>

<li><%= link_to "Criar", new_funcionario_path %></li> </ul> </div> <div class="content"> <h2 class="title">Funcion´ arios</h2> <div class="inner"> <table class="table"> <tr> <th class="first">C´ odigo</th> <th>CPF</th> <th>Nome</th> <th>Tipo</th> <th class="last">&nbsp;</th> </tr> <% @funcionarios.each do |funcionario| -%> <tr class="<%= cycle("odd", "even") %>"> <td> <%= link_to funcionario.codigo, funcionario_path(funcionario) %> </td> <td> <%= link_to funcionario.cpf, funcionario_path(funcionario) %> </td> <td> <%= link_to funcionario.nome, funcionario_path(funcionario) %> </td> <td> <%= link_to funcionario.tipo, funcionario_path(funcionario) %> </td> <td class="last"> <%= link_to "Visualizar", funcionario_path(funcionario) %> | <%= link_to "Editar", edit_funcionario_path(funcionario) %> | <%= link_to "Excluir", funcionario_path(funcionario), :method => :delete, :confirm => "Voc^ e tem certeza que deseja excluir o item selecionado?" %> </td> </tr> <% end -%>


</table> <div class="actions-bar cf"> <div class="actions"> </div> </div> </div> </div> </div> <% content_for :sidebar, render(:partial => ’layouts/sidebar’) -%> Os c´odigos ruby entre <% e %> s˜ao executados quando a view e´ renderizada e geram c´odigo HTML que e´ retornado ao usu´ario. O Ruby on Rails fornece diversos “helpers” que facilitam a criac¸a˜ o do HTML pela view, como link to que gera links automaticamente. As views tamb´em podem incluir “partials”, que s˜ao trechos de c´odigo ERB que podem ser utilizados por v´arias views diferentes. No exemplo, a view utiliza a partial layouts/sidebar que renderiza a barra lateral de navegac¸a˜ o.

11.2.3

Control

Os controllers no Ruby on Rails s˜ao classes Ruby normais que herdam da classe ActionController::Base, fornecida pelo pr´oprio framework e que implementa a conex˜ao autom´atica entre o controller e as views correspondentes. Eles s˜ao declarados em arquivos .rb na pasta app/controllers/. O papel do controller no Rails e´ interagir com os models, obter e organizar os dados que ser˜ao utilizados pelas views e passar o controle para as views apropriadas. Abaixo segue um exemplo do controller FuncionariosController: class FuncionariosController < ApplicationController def index @funcionarios = Funcionario.all respond_to do |format| format.html # index.html.erb format.xml end end def show

{ render :xml => @funcionarios }


@funcionario = Funcionario.find(params[:id]) respond_to do |format| format.html # show.html.erb format.xml

{ render :xml => @funcionario }

end end def new @funcionario = Funcionario.new respond_to do |format| format.html # new.html.erb format.xml

{ render :xml => @funcionario }

end end def edit @funcionario = Funcionario.find(params[:id]) end def create @funcionario = Funcionario.new(params[:funcionario]) respond_to do |format| if @funcionario.save format.html { redirect_to(@funcionario, :notice => ’Funcion´ ario criado com sucesso.’) } format.xml

{ render :xml => @funcionario, :status => :created, :location => @funcionario }

else format.html { render :action => "new" } format.xml

{ render :xml => @funcionario.errors, :status => :unprocessable_entity }

end end end def update @funcionario = Funcionario.find(params[:id])


respond_to do |format| if @funcionario.update_attributes(params[:funcionario]) format.html { redirect_to(@funcionario, :notice => ’Funcion´ ario editado com sucesso.’) } format.xml

{ head :ok }

else format.html { render :action => "edit" } format.xml

{ render :xml => @funcionario.errors, :status => :unprocessable_entity }

end end end def destroy @funcionario = Funcionario.find(params[:id]) @funcionario.destroy respond_to do |format| format.html { redirect_to(funcionarios_url) } format.xml

{ head :ok }

end end end Os m´etodos index, show, new e edit somente obt´em dados do model Funcionario e passam o controle para a view apropriada (o Rails carrega automaticamente a view baseada no nome do controller e do m´etodo). Os m´etodos create, update e destroy chamam o model para criar, atualizar e destruir um registro, e enviam o controle para um outro controller apropriado.


Documento de Requisitos