Universidade Estadual de Maringá Centro de Tecnologia – Departamento de Informática Especialização em Desenvolvimento de Sistema para Web Desenvolvimento e Integração de um Sistema Web a um Aplicativo Desktop como Ferramenta no Gerenciamento Municipal de Centros de Saúde Anderson da Silva Prof. Dr. Edson A. Oliveira Junior Orientador Maringá - 2010 Anderson da Silva Desenvolvimento e Integração de um Sistema Web a um Aplicativo Desktop como Ferramenta no Gerenciamento Municipal de Centros de Saúde Trabalho submetido à Universidade Estadual de Maringá como requisito para obtenção de título de Especialista em Desenvolvimento de Sistemas Web. Orientador: Prof. Dr. Edson A. Oliveira Junior Maringá, 2010 Anderson da Silva Desenvolvimento e Integração de um Sistema Web a um Aplicativo Desktop como Ferramenta no Gerenciamento Municipal de Centros de Saúde Aprovado em ___ de__________________ de _______. BANCA EXAMINADORA ______________________________________________ Prof. Dr. Edson A. Oliveira Junior (Orientador) ______________________________________________ Prof. Dr. Anderson Faustino ______________________________________________ Prof. Me. Ademir Carniel DEDICATÓRIA Dedico este trabalho minha esposa e filhas que souberam me dar apoio nos momentos em que precisei para realizar esta caminhada. AGRADECIMENTOS Primeiramente a Deus, pois sem ele nada seria e não conseguiria ter força e sabedoria para realizar este trabalho. A minha esposa por ter tido a paciência e sabedoria de compreender os momentos de ausência para intermináveis noites de estudo e pesquisa. Ao Dr. Edson A. Oliveira Junior, orientador, que com sabedoria soube me orientar ao caminho certo a seguir no desenvolvimento deste trabalho. LISTA DE ILUSTRAÇÕES Figura 1: Ciclo de vida clássico do software ........................................................ 12 Figura 2: Diagrama de Casos de Uso .................................................................... 13 Figura 3: Diagrama de Classes ............................................................................... 14 Figura 4: Diagrama Entidade-Relacionamento do Módulo de Consulta ........... 15 Figura 5: Diagrama Entidade-Relacionamento do Módulo de Farmácia .......... 16 Figura 6: Tela de Agendamento de Consultas do Sistema Desktop ................. 17 Figura 7: Tela de Acesso ao Sistema ..................................................................... 19 Figura 8: Tela de Cadastro de Pacientes............................................................... 20 Figura 9: Tela de Pesquisa de Consultas Agendas ............................................. 21 Figura 10: Tela de Agendamento de Consultas ................................................... 22 Figura 11: Tela de Consulta ao Estoque de Medicamentos ............................... 23 Figura 12: Tela de Fornecimento de Medicamentos ............................................ 24 Figura 13: Diagrama de Implantação ..................................................................... 25 LISTA DE ABREVIATURAS, SIGLAS E SÍMBOLOS T.I. - Tecnologia da informação PSF - Programa da Saúde da Família TCP-IP - Transmission Control Protocol Internet Protocol SQL - Structured Query Language JDBC - Java Database Connectivity ACID - Atomicidade, Consistência, Isolamento e Durabilidade MVCC - Multi-Version Concurrency Control XML - Extensible Markup Language UML - Unified Modeling Language RESUMO A empresa SOS Consultoria atua na área de consultoria em desenvolvimento e implantação de sistemas de gerenciamento de centros municipais de saúde em vários estados do Brasil. Seus sistemas de software auxiliam gestores municipais de saúde na obtenção e controle de informações, tais como: cadastro de pacientes, agendamento de consultas, controle de laboratório, atendimentos de emergência, controle de farmácia, atendimentos no departamento de PSF (Programa da Saúde da Família), atendimentos do departamento de assistência social, controle de vacinação, gerenciamento de frota de veículos do departamento de saúde, entre outras. O estudo e desenvolvimento de um software para plataforma Web que gerencie os módulos de cadastro de pacientes, agendamento e registro de consultas e fornecimento de medicamentos integrado ao software desktop já existente na empresa tem relativa importância. Tal integração leva à interligação de vários centros de saúde distintos dentro de um mesmo município em um único banco de dados centralizado. Essa unificação fornece ao gestor uma forma de buscar todas as informações relativas ao gerenciamento municipal de saúde. Assim para o desenvolvimento de um sistema para Web, foram tomados como base os conceitos fundamentais de engenharia de software, como o ciclo de vida de desenvolvimento, visto que fornecem uma metodologia sistemática das etapas a serem alcançadas ao longo do estudo e desenvolvimento de um software. Os resultados alcançados com este trabalho incluem a criação de um software para a Web que possibilita a integração entre postos de saúde com base em um banco de dados centralizado, proporcionando a captação de novos clientes que podem utilizar essa nova ferramenta, bem como propiciar aos clientes que já utilizam o sistema Desktop uma nova forma integrada de gerenciar departamentos municipais de saúde. Algumas dificuldades foram encontradas ao longo deste trabalho incluindo, por exemplo, a curva de aprendizagem da nova tecnologia adotada para o desenvolvimento Java. Este trabalho esta limitado ao desenvolvimento dos módulos de cadastro de pacientes, agendamento e registro de consultas e o fornecimento de medicamentos. Novos módulos poderão ser implementados futuramente, a fim de compor como um todo o sistema de gerenciamento de saúde em um aplicativo totalmente Web/Java, o que permitirá maior portabilidade e facilidade de acesso. Palavras-Chave: Sistema Web, Gerenciamento de Centros Saúde, Integração entre Sistemas de Softwares. ABSTRACT The SOS Consulting Company operates in the area of development consulting and systems implementation management municipal health centers in several states of Brazil. Their software systems help local health managers to obtain and control information such as patient registration, appointment scheduling, laboratory control, emergency control, pharmacy, outpatients in the department of FHP (Family Health Program), attended the department of social control, vaccination, management of fleet vehicles of the department of health, among others. The study and development of a software platform for Web modules that manage patient registration, scheduling and recording of consultations and provision of medicines along with your company's existing desktop has relative importance. Such integration leads to the interconnection of several different health centers within the same municipality in a single centralized database. This unification gives the manager a way to get all information related to municipal management of health. So to develop a system for web, were taken based on the fundamental concepts of software engineering, as the life cycle of development, they will provide a systematic methodology of steps to be achieved during the study and development of a software. The results of this work include the creation of software for the Web that enables integration between health centers based on a centralized database, providing the acquisition of new customers who can use this new tool as well as providing customers already using a new desktop system to manage integrated local health departments. Some difficulties were encountered throughout this work including, for example, the learning curve of new technology used to develop Java. This work is limited to the development of the modules for patient registration, scheduling and recording of consultations and the provision of medicines. New modules can be implemented in future in order to compose as a whole system of health management in a fully Web / Java, which allows greater portability and ease of access. Keywords: Health Center Management, Software Systems Integration, Web Systems. SUMÁRIO 1. INTRODUÇÃO .................................................................................................... 01 1.1. Contextualização ....................................................................................... 01 1.2. Motivação .................................................................................................... 01 1.3. Objetivos ..................................................................................................... 02 1.3.1. Objetivos Gerais .................................................................................. 02 1.3.2. Objetivos Específicos ......................................................................... 02 1.4. Estrutura da Monografia ........................................................................... 03 2. REVISÃO BIBLIOGRÁFICA ............................................................................ 04 2.1. O Sistema SyS Doctor Desktop .............................................................. 04 2.2. Definição da Tecnologia de Desenvolvimento do Sistema Web ...... 06 2.2.1. A Tecnologia Java .............................................................................. 06 2.2.2. Persistência de Dados ....................................................................... 07 2.2.3. Firebird .................................................................................................. 08 2.2.4. Ambiente de Desenvolvimento Integrado ....................................... 09 2.2.5. Interface Gráfica para Web ............................................................... 10 3. SYS DOCTOR WEB – SISTEMA DE GERENCIAMENTO DE CENTROS DE SAÚDE .......................................................................................... 11 3.1. Análise e Projeto do Sistema SyS Doctor Web .................................... 12 3.2. Análise do Banco de Dados do Sistema Desktop................................ 14 3.3. Prototipação dos Módulos Desenvolvidos............................................. 16 3.4. Definição da Linguagem Utilizada na Implementação ........................ 18 3.5. Codificação do Sistema Web................................................................... 18 3.6. Testes no Sistema Desenvolvido ............................................................ 24 3.7. Implantação do Sistema ........................................................................... 25 4. CONCLUSÕES E TRABALHOS FUTUROS ................................................ 26 REFERÊNCIAS BIBLIOGRÁFICAS ................................................................... 28 1. INTRODUÇÃO 1.1. Contextualização A partir de experiências na implantação do software SyS Doctor – Sistema de Gerenciamento de Centros de Saúde - em vários municípios do Brasil, a SOS Consultoria, empresa que atua na área de desenvolvimento de software para órgãos públicos, na cidade de Manoel Ribas – Paraná, deparou-se com um limitador na implantação de seu aplicativo Desktop: a interligação entre postos de saúde dentro de um mesmo município para a utilização de um banco de dados único que possibilitasse o gerenciamento integrado da secretaria de saúde municipal. A necessidade do estudo e desenvolvimento de uma ferramenta que possibilite a integração dos centros de saúde fez-se necessária. Isso acontece, pois existe a necessidade do município integrar as informações, o que reduz o esforço de gerenciamento de informações relativas a pacientes, medicamentos e agendamento de consultas. O agendamento de consultas ocorre em cada posto de saúde que possui o seu próprio banco de dados totalmente descentralizado. A interligação dos centros permite a geração de relatórios mais eficazes. O gerenciamento dos medicamentos acontece de forma isolada impossibilitando a integração do estoque das farmácias dos postos de saúde e um melhor gerenciamento de recursos. Assim, fica clara a necessidade de um sistema de gerenciamento centralizado, que permita interligar os centros de saúde do município de forma efetiva e que possa ser implantado utilizando os atuais recursos computacionais do município. 1.2. Motivação A motivação para a realização deste trabalho e a criação do aplicativo Web - nomeado SyS Doctor Web – em prol da interligação do sistema de saúde municipal é a possibilidade de fornecer, ao administrador público, uma ferramenta 1 que o auxilia no gerenciamento de pacientes, agendamento de consultas e controle de fornecimento de medicamentos, mas que por sua vez seja integrado em um único banco de dados. Tal gerenciamento possibilita uma administração eficaz dos recursos desses setores. Outra motivação pelo desenvolvimento de um sistema Web é a sua fácil manutenção e a distribuição automática de atualizações de novos módulos desenvolvidos, sem necessidade de fazer esta atualização em cada computador que utiliza o sistema. 1.3. Objetivos 1.3.1. Objetivos Gerais Este trabalho teve como objetivo geral o desenvolvimento de um sistema Web, composto por módulos para o gerenciamento de ambulatórios e farmácias que estejam localizados em pontos distintos de um município e que possibilite a integração com um aplicativo desktop já existente armazenando as informações em um único banco de dados centralizado. 1.3.2. Objetivos Específicos Os objetivos específicos deste trabalho foram: 1) Efetuar uma análise no sistema Desktop que a empresa comercializa atualmente objetivando o projeto de um sistema Web para interligar postos de saúde em um banco de dados centralizado; 2) Efetuar a análise no banco de dados existente atualmente no sistema Desktop para efetuar as alterações necessárias para integração dos sistemas; 3) Desenvolver os protótipos dos módulos para o sistema Web; 4) Definir a linguagem utilizada para o desenvolvimento e codificar o sistema Web; 5) Efetuar os testes necessários no sistema desenvolvido; e 6) Implantar o sistema em um município que já utiliza o sistema Desktop. 2 1.4. Estrutura da Monografia Este trabalho está organizado da seguinte maneira: o Capítulo 2 apresenta o software Desktop atual que a empresa comercializa, além dos conceitos fundamentais sobre as soluções de integração de sistemas de software e da definição das tecnologias utilizadas no desenvolvimento do software para a plataforma Web; o Capítulo 3 apresenta o sistema SyS Doctor Web desenvolvido com base na metodologia utilizada para o seu desenvolvimento, os principais diagramas que compõem a sua documentação e os módulos implementados; o Capítulo 4 apresenta as conclusões acerca do trabalho desenvolvido bem como os trabalhos futuros. 3 2. REVISÃO BIBLIOGRÁFICA Este capítulo apresenta os principais módulos existentes no sistema Desktop atual e aborda os conceitos fundamentais sobre as tecnologias que foram utilizadas para o desenvolvimento do sistema Web. 2.1. O Sistema SyS Doctor Desktop O sistema SyS Doctor é um software desenvolvido para proporcionar o gerenciamento de centros de saúde municipais englobando 11 módulos que proporcionam o lançamento e busca de informações integradas de vários setores do departamento municipal de saúde. O SyS Doctor possui os seguintes módulos: Controle de Cadastro de Pacientes com Identificação Biométrica; Controle de Agendamento de Consultas com Prontuário e Receituário Eletrônico; Controle de Atendimentos de Emergência; Controle de Farmácia; Controle de Solicitação de Exames e Digitação de Laudos Laboratoriais; Controle de Internações; Controle de Encaminhamentos; Controle de Registros de Atividades do PSF; Controle de Registros de Vacinação; Controle de Registros de Atividades da Vigilância Sanitária e Controle de Registros de Atividades do Departamento de Assistência Social. Desenvolvido com a estrutura de banco de dados Firebird, possibilita que os 11 módulos sejam utilizados em um único banco de dados, facilitando assim a unificação de informações. Ao se deparar com a limitação ocorrida ao longo do tempo em suas aplicações Desktop, relacionadas à interligação entre pontos distintos dentro dos municípios onde fornece seu aplicativo de gerenciamento de saúde, a empresa SOS Consultoria pesquisou formas de interligar o seu sistema sem a necessidade 4 de mudanças drásticas em seu ambiente de desenvolvimento e estrutura do banco de dados. Dentre as várias tentativas realizadas para integrar o software SyS Doctor Desktop, uma se mostrou mais confiável e produtiva : a integração entre pontos distintos, por meio da tecnologia de acesso remoto presente no sistema operacional Windows Server da empresa Microsoft® (MICROSFOT.COM, 2010). Esse sistema operacional mostrou-se estável e apresentou a segurança e acessibilidade que a empresa precisava fornecer aos seus clientes, sem a necessidade de alterar uma linha de código em seu sistema desktop. Porém, por ser um sistema operacional proprietário, e que demanda a aquisição de licenças por quantidade de usuários conectados via acesso remoto, essa solução se mostrou relativamente inviável, superando até o próprio custo do software de gerenciamento que a empresa comercializa (SOSSOLUCOES.COM.BR, 2010). Iniciou-se, então, a busca por ferramentas e/ou linguagens de programação que permitissem a integração do sistema de saúde municipal, mas que não onerassem o processo de implantação do sistema. Um estudo feito pela empresa que desenvolve o sistema Desktop sobre servidores que utilizam Linux mostrou a sua estabilidade e custo de aquisição de licenças praticamente zero. O sistema Desktop atual, voltado para a plataforma Windows, utiliza Linux apenas como servidor de banco de dados e não como um fornecedor de serviços que podem ser acessados remotamente. A versão Web do sistema trás portabilidade à plataforma Windows e Linux permitindo ao município, escolher qual plataforma será adotada. Marimoto (2008) aborda o tema da montagem e configuração de um servidor para o sistema operacional Linux; a utilização desse sistema operacional, de forma a interligar os centros de saúde do município pode ser feita por meio do protocolo de TCP-IP (Transmission Control Protocol Internet Protocol) para comunicação entre o sistema desktop e o servidor Linux. Para o software Web desenvolvido, este sistema operacional poderá ser amplamente utilizado pois a linguagem de programação Java, adotada para o seu desenvolvimento é portável a este ambiente operacional. 5 2.2. Definição da Tecnologia de Desenvolvimento do Sistema Web NETO (2006) apresenta uma abordagem sobre o desenvolvimento de aplicativos para Web utilizando a tecnologia Java. Pode-se verificar que esta é uma poderosa ferramenta de apoio à criação de aplicativos Web e que permite a integração da maioria de aplicativos desktop. Com base em uma análise bibliográfica e em experiências de projetos desenvolvidos anteriormente, definiu-se a linguagem Java como sendo a mais apropriada para realização deste trabalho. 2.2.1. A Tecnologia Java Java é uma tecnologia de desenvolvimento de software lançada pela Sun Microsystems (JAVA.COM, 2010). Java é uma das tecnologias que capacita a produção de programas, como utilitários, jogos e aplicativos corporativos, dentre muitos outros. Java é executado em mais de 850 milhões de computadores pessoais e em bilhões de dispositivos em todo o mundo, inclusive telefones celulares e dispositivos de televisão (JAVA.COM, 2010). Java SE (Standard Edition) é o ambiente de desenvolvimento voltado para computadores e servidores, onde existe uma maior necessidade de aplicações (INFOWESTER.COM, 2007). Java EE (Enterprise Edition) é a plataforma Java voltada para aplicações corporativas robustas e distribuída. Assim, ela contém bibliotecas especialmente desenvolvidas para o acesso a servidores, a sistemas de e -mail, a banco de dados, etc. Por essas características, Java EE foi desenvolvido para suportar uma grande quantidade de usuários simultâneos (INFOWESTER.COM, 2007). A plataforma Java EE contém uma série de especificações, cada uma com funcionalidades distintas. Entre elas, tem-se: JDBC (Java Database Connectivity), utilizado no acesso a banco de dados; JSP (Java Server Pages) é uma tecnologia utilizada para desenvolver a interface gráfica (GUI) com usuário para a Web na forma de páginas HTML com conteúdo dinâmico; 6 Servlets, para o desenvolvimento de aplicações Web, isso é, esse recurso "estende" o funcionamento dos servidores Web, permitindo a geração de conteúdo dinâmico nos sites (INFOWESTER.COM, 2007). Servlets tem o papel de controladores de MVC (Model View Controller) aceitando requisições a partir de protocolos http (HyperText Transfer Protocol Secure). Java ME (Micro Edition) é o ambiente de desenvolvimento para dispositivos móveis ou portáteis, como telefones celulares PDA e Smartphones. Como a linguagem Java já é consolidada no mercado e na literatura, logo surgiram diversos tipos de aplicativos para tais dispositivos, como jogos e agendas eletrônicas. As empresas obtiveram vantagens com isso porque, desde que seus dispositivos tenham uma JVM (Java Virtual Machine), é possível, com poucas modificações, implementar os aplicativos em qualquer aparelho, sendo o único limite a capacidade do hardware (INFOWESTER.COM, 2007). Para o desenvolvimento do sistema Web, foram utilizadas as plataformas Java SE e Java EE. 2.2.2. Persistência de Dados Quando um software é desenvolvido em uma linguagem orientada a objetos com um banco de dados relacional, algumas dificuldades relacionadas à persistência dos dados podem ser encontradas , como por exemplo a interligação do banco de dados por meio de diversos sistemas operacionais. O Hibernate é um arcabouço que permite fazer o mapeamento objeto-relacional de objetos Java e .NET para bancos de dados relacionais. O termo mapeamento objeto -relacional refere-se à técnica de mapear uma representação de dados de um modelo de objeto para dados de modelo relacional com o esquema baseado em SQL (Structured Query Language) (HIBERNATE.ORG, 2010). O Hibernate não somente permite mapear classes Java para entidades de banco de dados (e de tipos de dados em Java para tipos de dados em SQL), como também fornece facilidade de consultas e recuperação de dados, podendo também reduzir significantemente o tempo de desenvolvimento gasto com a 7 manipulação de dados com SQL e JDBC (Java Database Connectivity) (HIBERNATE.ORG, 2010). Pode-se obter com o Hibernate uma redução de até 95% do esforço de codificação das tarefas comuns de programação relacionadas à persistência de dados (HIBERNATE.ORG, 2010). 2.2.3. Firebird Firebird ou FirebirdSQL, é um sistema gerenciador de banco de dados (SGBD) que possui distribuições para Linux, Windows, Mac OS e uma variedade de plataformas Unix. A Fundação FirebirdSQL coordena a manutenção e o desenvolvimento do Firebird, sendo que os códigos fonte são disponibilizados sob o CVS (Concurrent Version System) da SourceForge (FIREBIRDSQL.ORG, 2010). Baseado no código do InterBase da Borland, quando da abertura de seu código na versão 6.0, alguns programadores em associação, assumiram o projeto de identificar e corrigir inúmeros defeitos da versão original, surgindo o Firebird 1.0, que se tornou um banco com características próprias, obtendo uma aceitação imediata no círculo de programadores. A versão mais recente estável é a 2.5. Essa versão tem uma nova arquitetura chamada SuperClassic. O Firebird é gratuito: não há limitações de uso, e seu suporte amplamente discutido em listas na Internet, o que facilita a obtenção suporte técnico. O Firebird receberá em breve uma versão mobile para Android, o sistema operacional da Google para dispositivos moveis (FIREBIRDSQL.ORG, 2010). O produto é bastante seguro e confiável, suportando sistemas com centenas de usuários simultâneos e bases de dados com dezenas/centenas de gigabytes. Há suporte gratuito na Internet por meio de vários sítios (FIREBIRDSQL.ORG, 2010). Desde a primeira versão, o Firebird oferece recursos de um verdadeiro SGBD, como: compatibilidade ACID (Atomicidade, Consistência, Isolamento e Durabilidade), transações MVCC (Multi-Version Concurrency Control), triggers, stored procedures, collations, UDFs, etc (FIREBIRDSQL.ORG, 2010). 8 O sistema Desktop que a empresa comercializa atualmente é desenvolvido utilizando o banco de dados criado em Firebird, por esse motivo o software Web foi desenvolvido sobre a mesma plataforma de banco de dados para que a integração fosse possível. 2.2.4. Ambiente de Desenvolvimento Integrado Um Ambiente de Desenvolvimento Integrado (IDE - Integrated Development Environment) consiste em um software que contém um conjunto de funcionalidades automatizado embutidas, e interativo cuja de finalidade construir é e fornecer manipular um seus modo mais programas (CIN.UFPE.BR, 2010) Dentre esses ambientes geralmente figuram: um editor de texto com facilidades especialmente projetadas para a linguagem; um compilador e um interpretador, no caso de Java e outras linguagens interpretadas; um editor gráfico, com facilidades para a criação e a edição da interface gráfica do programa a ser desenvolvido; e um depurador, uma ferramenta especialmente feita para verificar possíveis bugs de código fonte. O ambiente possibilita um monitoramento sistemático do funcionamento do seu programa, facilitando a detecção e remoção de erros. O Eclipse é uma IDE com recursos como a visualização de todos os arquivos do projeto, ferramentas para gerenciamento de trabalhos co letivos, Wizards, aplicativos que auxiliam o desenvolvedor a construir rapidamente aplicativos que possuam características específicas. A escolha pelo software Eclipse como IDE de desenvolvimento do software Web, ocorreu com base na sua curva de aprendizagem. O Eclipse é relativamente rápido, pois oferece um ambiente de trabalho prático e de simples utilização. A empresa que desenvolve o sistema Desktop está implantando a utilização desta IDE como ferramenta para a criação de novos aplicativos Web, que estão sendo projetados para desenvolvimentos futuros. 9 2.2.5. Interface Gráfica para a Web A construção da interface com o usuário é algo dispendioso no desenvolvimento de um aplicativo Web. O ZK (ZKOSS.ORG, 2010) surgiu como uma opção para a criação de interfaces utilizando uma sintaxe fácil e ágil, fazendo com que a produtividade aumente consideravelmente quando o projeto atingir a etapa de construção da interface com o usuário (DEVMEDIA.COM.BR, 2010). A produtividade na construção de um aplicativo Web é realmente comprometida quando se alcança a fase de construção da interface com o usuário (PRESSMAN, 1995). Ao construir uma interface rica, o desenvolvedor deve ter conhecimentos de diversas tecnologias além de Java. O ZK é uma alternativa na construção de interfaces com o usuário, fornecendo uma estrutura declarativa de interfaces, possibilitando a criação de controladores para os eventos dos componentes utilizando classes Java e retirando do desenvolvedor a necessidade de ter conhecimentos em Javascript, XML (Extensible Markup Language), Json (JavaScript Object Notation), etc (DEVMEDIA.COM.BR, 2010). Esse arcabouço ZK permitiu desenvolver no software Web, interfaces mais ricas em recursos para o usuário e sem a necessidade de muito tempo para o desenvolvimento do mesmo. 10 3. SYS DOCTOR WEB – SISTEMA DE GERENCIAMENTO DE CENTROS DE SAÚDE Há vários anos o hardware deixou de ser um grande obstáculo na informatização de empresas e instituições. Por outro lado, o custo relacionado ao software utilizado por esses equipamentos cresceu devido, principalmente, à crescente complexidade das informações que devem ser processadas (DEGOULET E FIESCHI, 1997 apud COSTA G. A., 2001, p. 62). Aliado a isso, alguns problemas inerentes ao processo de desenvolvimento de um software começaram a surgir (PRESSMAN, 1995): as estimativas de prazo e de custo, frequentemente, são imprecisas, a produtividade das pessoas da área de software não tem acompanhado a demanda por seus serviços, e a qualidade de software, às vezes, é menor que a adequada, ocorrendo, muito frequentemente, a insatisfação do usuário. A chave para se vencer os problemas e dificuldades acima relatados é a larga utilização de uma abordagem de engenharia ao desenvolvimento de software, aliada a uma contínua melhoria das técnicas e ferramentas, no intuito, também, de melhorar a produtividade da equipe (PRESSMAN, 1995). No processo de desenvolvimento de um software, um conjunto de etapas deve ser definido, o qual é denominado Paradigmas da Engenharia de Software (PRESSMAN, 1995), também conhecido como Modelos de Ciclo de Vida de Software (COSTA G. A., 2001, p. 62). Destacam-se alguns paradigmas (DAVIS, 1997): o ciclo de vida clássico (Waterfall, Figura 1), o modelo incremental, o evolucionário, o concorrente, a p rototipação e o modelo espiral. Independentemente do paradigma a ser utilizado, três fases genéricas dividem o processo de desenvolvimento (PRESSMAN, 1995): Definição: esta fase focaliza o "o que" (análise do sistema, planejamento do projeto de software e análise de requisitos). Desenvolvimento: focaliza-se o "como" (projeto de software, codificação e realização de testes do software). Manutenção: concentra-se nas "mudanças" (correção, adaptação e melhoramento funcional). 11 Definição do problema Análise e especificação Projeto Desenvolvimento Codificação Testes Operação e Manutenção Figura 1 – Ciclo de vida clássico do software (Davis, 1997). Para o desenvolvimento do software Web, foi utilizado o paradigma do Ciclo de Vida Clássico do software como o mostrado na Figura 1 onde foram seguidas as etapas por ele definidas. Para este trabalho foi estabelecido que os módulos a serem implementados, seriam os de Agendamento e Registro de Consultas e o módulo de fornecimento de medicamento, pois são os mais necessários nos postos de saúde que ficam fora do posto de sa úde central. Para a documentação do sistema foi utilizada a notação UML (Unified Modeling Language) que permitiu uma documentação padronizada das classes e processos que foram desenvolvidas, auxiliando em implementações futuras no software desenvolvido. A seguir são apresentadas as etapas que foram realizadas no processo de desenvolvimento do software Web. 3.1. Análise e Projeto do Sistema SyS Doctor Web Nesta fase do desenvolvimento do sistema Web, foram levantadas informações essenciais com a equipe que atua no desenvolvimento do software 12 Desktop que a empresa já possui e comercializa, a fim identificar os principais requisitos que cada módulo do sistema Web a ser desenvolvido. Para tanto, foram efetuadas visitas aos municípios que já utilizam a versão Desktop do SyS Doctor, possibilitando uma visualização mais detalhada de como funciona o clico de utilização do software em um ambiente real de trabalho, determinando, com mais clareza, qual deveria ser a sistemática de desenvolvimento do sistema, e vitando impacto e resistência na mudança do software Desktop para o sistema Web. Entrevistas com recepcionistas, farmacêuticos e médicos possibilitou um levantamento do que já está em funcionamento no sistema Desktop e o que deveria ser mantido como padrão de desenvolvimento, e o que poderia ser melhorado na versão Web, permitindo maior participação do usuário final como parte integrante e importante no processo de desenvolvimento do aplicativo Web. A Figura 2 demonstra os principais casos de uso do sistema apresentando com funciona o agendamento de consultas, o registro da consulta agendada e o fornecimento de medicamentos. Pesquisar Paciente Pesquisar Médico Pesquisar Medicamento Pesquisar Tipo Consulta <<include>> <<include>> <<include>> <<include>> <<include>> <<include>> Agendar Consulta Fornecer Medicamento Recepcionista Paciente <<include>> Farmacêutico Pesquisar Consulta Agendada Registrar Consulta Médico Figura 2 – Diagrama de Casos de Uso. O Diagrama de Casos de Uso demonstra como estão divididos os módulos dentro do sistema Web. O módulo de Agendame nto de Consultas, onde estão envolvidos o Recepcionista e o Paciente para o agendamento da mesma; o Registro da consulta onde se encontram o Médico e o Paciente; e o Fornecimento 13 de Medicamentos que tem o Paciente e o Farmacêutico como entidades envolvidas. A Figura 3 demonstra as principais classes do sistema com seus atributos e métodos e seus respectivos relacionamentos. Fornecimento de Medicamento Medicamento +T014_Nr_Codigo +T014_Ca_Descricao +T014_Nr_Custo +T013_Nr_Codigo +T014_Ca_Descritivo +T014_Ca_Sal Medic_Fornecimento +T022_Nr_Codigo +T001_Nr_Codigo +T003_Nr_Codigo +T029_Nr_Codigo +T022_Dt_Data_Retirada Paciente +IncluirRetirada() +AlterarRetirada() +PesquisarRetirada() +ExcluirRetirada() +IncluirMedicamento() +AlterarMedicamento() +PesquisarMedicamento() +ExcluirMedicamento() +Pac_Fornecimento Med_Fornecimento Setor_Fornecimento Médico +T029_Nr_Codigo +T029_Ca_Nome +T003_Nr_Codigo +T003_Ca_Nome +T003_Ca_Endereco +T003_Ca_Bairro +T003_Ca_Telefone +T003_Ca_Celular +T003_Ca_CRM +T003_Ca_Email +T009_Nr_Codigo +IncluirSetor() +AlterarSetor() +PesquisarSetor() +ExcluirSetor() +IncluirMedico() +AlterarMedico() +PesquisarMedico() +ExcluirMedico() Setores +T001_Nr_Codigo +T001_Ca_Nome +T001_Ca_Endereco +T001_Ca_Bairro +T001_Ca_Complemento +T001_Ca_Cep +T001_Ca_Telefone +Pac_Consulta +T001_Ca_Celular +T001_Ca_Rg +T001_Ca_CPF +T001_Ca_Profissao +T001_Ca_Empresa +T001_Ca_Email +T001_Ca_Nome_Pai +T001_Ca_Nome_Mae +T001_Dt_Nascimento +T001_Dt_Cadastro +T009_Nr_Codigo +IncluirPaciente() +AlterarPaciente() +PesquisarPaciente() +ExcluiPaciente() Med_Consulta Tipo Consulta +T006_Nr_Codigo +T006_Ca_Nome +IncluirTipoConsulta() +AlterarTipoConsulta() +PesquisarTipoConsulta() +ExcluirTipoConsulta() Consulta +T011_Nr_Codigo +T001_Nr_Codigo +T003_Nr_Codigo +T006_Nr_Codigo +T004_Ca_Login +T011_Dt_Data +T011_Tm_Hora +T011_Ca_Pulso +T011_Ca_Pressao +T011_Ca_Perimetro_Cefalico +T011_Ca_Peso +T011_Ca_Altura +T011_Bl_Queixas Tp_Consulta_Consulta +IncluirConsulta() +AlterarConsulta() +PesquisarConsulta() +ExcluirConsulta() Figura 3 – Diagrama de Classes. No Diagrama de Classes são demonstradas as classes que compõem os módulos do sistema Web com seus respectivos atributos e métodos. A classe Consulta tem o relacionamento com as classes Paciente, Tipo Consulta e Médico. A classe Fornecimento de Medicamento tem relacionamentos com as classes Paciente, Médico, Setor e Medicamento. 3.2. Análise do Banco de Dados do Sistema Desktop Nesta fase, foram efetuadas análises minuciosas nos diagramas de entidades do banco de dados já existente utilizado na versão desktop. Não foi necessário alterações no banco de dados existente no sistema Desktop o que facilitou a implantação da versão Web, pois não houve necessidade de alterações no sistema Desktop atual. As figuras a seguir apresentam os diagramas de entidade-relacionamento (DER) das principais entidades existentes no software Web. A Figura 4 demonstra a estrutura e os relacionamentos das entidades do módulo de consulta onde temos a entidade T001_Paciente que contém os dados do paciente, a entidade T011_Consulta que armazena os dados da consulta como 14 data, hora, paciente, médico entre outras informações, a entidade T003_Medico que armazena os dados do médico, a entidade T004_Usuario que contém os dados dos usuários cadastrados, a entidade T006_Tp_Consulta armazenando os tipos de consultas e por fim a entidade T009_Cidade que contém os dados de cidades cadastradas. Figura 4 – Diagrama Entidade-Relacionamento do Módulo de Consulta. Neste Diagrama Entidade-Relacionamento pode-se notar que a entidade T011_Consulta contem os principais relacionamentos entre as demais Entidades. Esta Entidade armazena os dados do Paciente, Tipo de Consulta, Usuário e Médico que estão envolvido no agendamento da consulta. A Figura 5 demonstra a estrutura e os relacionamentos das tabelas do módulo de farmácia onde temos a entidade T001_Paciente que contém os dados do paciente, a entidade T022_Saida_Medicamentos que armazena os dados do fornecimento como data, hora, paciente, médico entre outras informações, a entidade T023_Saida_Medic_Item contendo os medicamentos fornecidos, a entidade T014_Medicamento que armazena os dados dos medicamentos cadastrados, a entidade T029_Setores contendo os dados dos setores onde se armazenam medicamentos, a entidade T003_Medico que armazena os dados do 15 médico e por fim a entidade T009_Cidade que contém os dados de cidades cadastradas. Figura 5 – Diagrama Entidade-Relacionamento do Módulo de Farmácia. Neste Diagrama Entidade-Relacionamento percebe-se que a entidade T022_Saida_Medicamentos recebe os principais relacionamentos envolvidas neste módulo, armazenando os dados do Paciente, Médico e Setor envolvidos no fornecimento do medicamento. Existe também uma entidade chamada de T023_Saida_Medic_Item que armazena os dados dos medicamentos fornecidos, interligando-se esta à entidade T022_Saida_Medicamentos. 3.3. Prototipação dos Módulos Desenvolvidos Nesta etapa do desenvolvimento, foram prototipadas as telas agrupadas pelos módulos de Controle de Ambulatório contemplando as telas de Agendamento e Registro de Consultas e Controle de Farmácia contemplando a tela de Fornecimento de Medicamento, criando modelos manuais de interfaces baseados nas entrevistas realizadas, possibilitando ao usuário participar do processo de melhoria dos mesmos. 16 Não foram utilizados ferramentas ou aplicativos específicos para geração de modelos de interfaces de telas, pois como já existia o sistema Desktop utilizado pelos clientes, apenas foram feitas entrevista com os usuários que já utilizam esta versão do sistema, solicitando sugestões ou criticas sobre o sistema atual para que fossem reavaliadas no desenvolvimento da versão Web do sistema. Isto gerou uma reorganização na disposição de campos e exclusão de alguns no momento de desenvolver as telas para que o sistema Web ficasse mais simples e prático. A Figura 6 demonstra como é a tela de Agendamento de consulta do sistema Desktop atual. Figura 6 – Tela de Agendamento de Consultas do Sistema Desktop. Para a versão Web foram solicitados pelos usuários do sistema Desktop a exclusão de campos que não são utilizados por órgãos que não trabalham com convênios, desta forma todos os campos relativos a convênio foram excluídos da versão Web como será demonstrado nas telas do sistema Web. Uma sugestão também acatada para o desenvolvimento, foi dividir a tela de Agendamento de Consulta da tela de Consulta a Agendamentos, já que na versão Desktop estas são dispostas na mesma tela. 17 3.4. Definição da Linguagem Utilizada na Implementação Uma vez feita a análise do banco de dados existente na versão Desktop e efetuada a prototipação manual dos módulos, foi definida a linguagem de programação Java para ser utilizada na implementação do sistema, levando-se em conta alguns fatores: 1) Aspectos Financeiros: deveria ser efetuada a busca por ferramentas eficazes de desenvolvimento para Web e que proporcionassem um melhor custo/benefício na realização deste projeto; 2) Aspectos Operacionais e de Portabilidade: a escolha das ferramentas e linguagens de programação a serem utilizadas na realização deste projeto deveriam aceitar o máximo de flexibilização da utilização, possibilitando o sistema tra nsformar-se em portável a qualquer sistema operacional; 3) Aspectos Visuais: a linguagem de programação escolhida deveria proporcionar ao sistema Web desenvolvido um ambiente de trabalho agradável e que trouxesse praticidade na utilização para o usuário final. 4) Aspectos de Segurança e Desempenho: a linguagem escolhida deveria proporcionar segurança às informações que irão trafegar via Web, garantindo, assim, a integridade das informações registradas. O desempenho também deveria ser levado em consideração, a fim de possibilitar a integração de todos os centros de saúde do município sem a perda de desempenho na utilização do sistema. 3.5. Codificação do Sistema Web Realizada a análise do banco de dados já existente verificando que não existia necessidade de alterações no mesmo para a versão Web, desenvolvido os protótipos das interfaces do sistema, definida a linguagem de programação, 18 passou-se à codificação do sistema, a fim de criar a primeira versão do software para testes. O desenvolvimento foi realizado por etapas, ou seja, foi efetuada, primeiro, a codificação do módulo de Controle de Ambulatório contendo as telas de agendamento e registro de consultas, para, posteriormente, desenvolver o módulo de Controle de Farmácia que contempla a tela de fornecimento de medicamentos. Isso possibilitou a realização de testes em um módulo, ao mesmo tempo em que se codificava outro, permitindo um maior espaço de tempo nos testes de utilização das telas. A seguir são apresentadas as principais telas do sistema Web desenvolvido: A Figura 7 apresenta a tela de acesso ao sistema. Para acessar o sistema, será solicitado o Login e a Senha de acesso ao sistema. Mesmo que se tente acessar uma tela do sistema sem antes se conectar, o usuário será redirecionado a esta tela. Figura 7 – Tela de Acesso ao Sistema. Ao se conectar, o sistema irá criar uma sessão para este usuário conectado, e em todas as telas do sistema, esta, é recuperada para verificação se está ativa. A Figura 8 apresenta a tela de cadastro de pacientes onde é possível consultar informações dos pacientes já cadastrados, alterar informações, excluir pacientes e incluir novos. 19 Figura 8 – Tela de Cadastro de Pacientes. A exclusão do cadastro de um paciente só é permitida se o mesmo não tem nenhum registro de movimentação no sistema, como, por exemplo, agendamento de consulta ou fornecimento de medicamentos. A tela de cadastramento de pacientes traz a mesma sequência de campos que o sistema Desktop para que se tenha um mesmo padrão e não cause resistência na utilização do sistema pelos usuários que já utilizavam a versão Desktop. A Figura 9 apresenta a tela de pesquisa de consultas agendadas que gerencia os agendamentos, podendo-se pesquisar por intervalo de datas, médico ou por paciente. Pode-se ainda filtrar os agendamentos que já foram registrados ou que ainda estão pendentes de atendimento. 20 Figura 9 – Tela de Pesquisa de Consultas Agendadas. O filtro por médico permite a emissão de um relatório na tela dos pacientes agendados para determinado médico, o que agiliza o trabalho do usuário que não tem a necessidade de ter controles manuais dos atendimentos dos médicos. A Figura 10 demonstra a tela de agendamento de consultas onde são registrados todos os agendamentos. São registrados ainda dados do responsável e os sinais vitais. 21 Figura 10 – Tela de Agendamento de Consultas. Como mostrado na Figura 6, a tela de Agendamento de Consultas, teve modificações em relação ao sistema Desktop retirando-se campos que não eram necessários para órgãos que não trabalham com convênios, deixando a tela do sistema Web mais simples e prática. Também foi retirada desta tela a opção de consulta as agendamentos como sugerido pelos usuários do sistema Desktop. A tela de Consulta a Estoque de Medicamentos (Figura 11) permite a pesquisa do estoque da farmácia do posto de saúde central ou de outros postos de saúde cadastrados. Esta tela permite consultar os medicamentos e estoques filtrando-os por Setor, Grupo, Classe ou Medicamentos, em ordem de descrição ou código, e ainda filtrar medicamentos com ou sem estoque. 22 Figura 11 – Tela de Consulta ao Estoque de Medicamentos. O controle de estoque de medicamentos do sistema Desktop e consequentemente do sistema Web, é baseado em Lote e Vencimento, ou seja, para cada agrupamento de lote e vencimento é gerado um estoque dento de cada setor, possibilitando um controle eficaz dos lotes que são fornecidos ao paciente. A tela de fornecimento de medicamentos (Figura 12) é utilizada para registrar todos os fornecimentos de medicamentos que são realizados nos postos de saúde. Ao se registrar um fornecimento de medicamentos, o sistema automaticamente efetua a baixa no estoque do setor que foi selecionado. 23 Figura 12 – Tela de Fornecimento de Medicamentos. Como o sistema controla o estoque de medicamentos baseando-se em lote e vencimento, ao selecionar o medicamento da tela de fornecimento, são apresentados quais estão disponíveis para serem fornecidos. 3.6. Testes no Sistema Desenvolvido À medida em que foi finalizado o desenvolvimento de cada módulo, o sistema foi disponibilizado para testes em um município previame nte estabelecido e que já possui a versão desktop do sistema. A utilização da versão de testes em um município que já possui o sistema desktop justificou-se pelo fato de poder proporcionar ao usuário uma comparação entre versões, induzindo-o a apontar correções e sugerir melhorias que possam ser desenvolvidas e que não foram implementadas na versão desktop. Os testes se basearam na própria utilização do usuário em simulações de casos reais para verificar se as sugestões e melhorias nas telas criadas na versão Web foram válidas e proporcionaram uma melhor utilização do sistema. Estes 24 testes proporcionaram ao usuário anotar e enviar para o desenvolvimento as melhorias necessárias até que se desenvolvesse corretamente o módulo. 3.7. Implantação do Sistema Cumpridas as estadas de projeto e desenvolvimento, ocorreu a etapa de implantação definitiva do sistema em que fora anteriormente testado, efetuando a substituição dos módulos de Controle de Ambulatório e Controle de Farmácia do sistema Desktop utilizado atualmente, pelos novos módulos do sistema Web. A Figura 13 demonstra um Diagrama de Implantação com os principais elementos do sistema Web tais como Servidores, Módulos, Estrutura de Banco de Dados e a comunicação entre estes elementos. Servidor de Banco de Dados Servidor Web Agendamento de Consulta T011_Consulta Internet Registro de Consulta T022_Fornecimento_Medicamento Fornecimento de Medicamento Rede Local Computador Usuário 1 Figura 13 – Diagrama de Implantação. O Diagrama acima demonstra como está distribuída a implantação do sistema Web, onde temos um servidor de estrutura de banco de dados e um servidor Web. O servidor de estrutura de banco de dados armazena as entidades que compõem o sistema, enquanto um servidor Web fornece a estrutura que exibe as informações consultadas bem como cria a interface para o usuário alimentar as informações do sistema. Computadores que conectados via protocolo http, conectam-se ao servidor Web e ao servidor de banco de dados. 25 4. CONCLUSÕES E TRABALHOS FUTUROS Este trabalho teve como objetivo o desenvolvimento de um software Web para gerenciamento dos módulos de Agendamento e Registro de Consultas e Controle de Farmácia para integração à um software Desktop já existente. Para o desenvolvimento de tal sistema Web, foi seguido o paradigma de ciclo de vida clássico de desenvolvimento de software como fundamento teórico com base em suas principais etapas e tecnologias como Java foram adotadas para ambiente de desenvolvimento. O Sistema Web desenvolvido permitiu uma interligação dos postos de saúde em um único banco de dados de forma mais centralizada do que os métodos utilizados anteriormente pelo sistema Desktop. Essa interligação eliminou controles manuais que anteriormente deixavam o atendimento lento. Os usuários do sistema Desktop que posteriormente vieram a utilizar a versão Web do sistema, tiveram papel fundamental nas etapas de levantamento de requisitos, testes e implantação do sistema, pois puderam dar suas opiniões do que poderia ser melhorado no sistema na sua versão Web. Concluiu-se com isto que deve-se dar uma parcela de importância a função do usuário final no processo de desenvolvimento de um software, pois será ele o consumidor final deste software e, portanto, deve ser parte integrante no processo de desenvolvimento. Com os sistemas Web percebe-se uma maior portabilidade à maioria dos ambientes operacionais e sem necessidade de instalação local. O aplicativo pode ser acessado de qualquer computador conectado a Web. Como o sistema Desktop atual contempla 11 módulos, vislumbra-se o desenvolvimento dos módulos que não foram implementados neste trabalho, nos próximos meses, na forma de trabalhos futuros, como segue: Registro de atendimentos de emergência; Controle de solicitação de exames; Controle de encaminhamentos; Controle de Internamentos; Controle de Atendimentos do PSF; Controle de Atendimentos da Assistência Social; 26 Controle de Digitação de Laudos Laboratoriais; Controle de Vacinação; e Controle de Atendimentos da Vigilância Sanitária. 27 REFERÊNCIAS BIBLIOGRÁFICAS CIN UFPE. Introdução ao Eclipse. Disponível em <http://www.cin.ufpe.br/~phmb/ip/MaterialDeEnsino/IntroducaoAoEclipse/Introduc aoAoEclipse.htm> Acessado em Outubro de 2010. Costa, G. A. Desenvolvimento e Avaliação Tecnológica de um Sistema de Prontuário Eletrônico do Paciente, Baseado nos Paradigmas da World Wide Web e da Engenharia de Software. Campinas, 2001. p. 288. Dissertação (Mestrado em Engenharia Biomédica) - Departamento de Engenharia Biomédica, Universidade Estadual de Campinas. Davis, A.M. Software Life Cycle Models. In: Thayer, R. (ed.). Software Engineer ing Project Management. 2nd Edition. Los Alamitos: IEEE, 1997. DevMedia. Conteúdo Digital e Serviços Online. Disponível em <http://www.devmedia.com.br/post-11393-Artigo-Java-Magazine-64-ZK-DirectRia.html> Acessado em Outubro de 2010. Morimoto, C. E. Servidores Linux – Guia Prático. Porto Alegre: Sul Editores, 2008. Firebird. Sistema Gerenciador de Banco de Dados. Disponível em <http://www.firebirdnews.org/docs/fb2min_ptbr.html> Acessado em Outubro de 2010. Infowester. Conteúdo Digital. Disponível em <http://www.infowester.com/versoesjava.php> Acessado em Outubro de 2010. Java. Tecnologia Java. Disponível <http://www.java.com/pt_BR/download/faq/whatis_java.xml> Acessado Outubro de 2010. em em Microsoft. Empresa de Tecnologia da Informação. Disponível <http://www.microsoft.com/windowsserver2008/pt/br/white -papers-rt.aspx> Acessado em Novembro de 2010. em Neto, O. M. Entendendo e Dominando o Java para Internet. São Paulo: Digerati Books, 2006. Pressman, R. S. Engenharia de Software. 3. ed. São Paulo: Makron Books, 1995. SoS Consultoria. Empresa de Tecnologia da Informação. Disponível em < http://www.sossolucoes.com.br/sos/produtos/sysdoctor/sysdoctor.php> Acessado em Novembro de 2010. 28 ZKOSS. Interface Gráfica para Web. Disponível <http://docs.jboss.org/hibernate/stable/core/reference/en/html/preface.html> Acessado em Outubro de 2010. em 29