Sistema Borboleta Desktop
Introdução
A principal função da interface desktop do sistema é intermediar a comunicação entre a base de dados do CSE e os dispositivos móveis. As principais funcionalidades são inserção e alteração de cadastros de pacientes, médicos e medicamentos do centro de saúde.

Ambiente de desenvolvimento
O sistema Borboleta Desktop foi desenvolvido em linguagem Java [java], mais especificamente com a plataforma J2SE 5.0. A plataforma Eclipse foi utilizada para o desenvolvimento do sistema juntamente com os plug-ins (vide Ferramentas e Tecnologias) jUnit (para testes do sistema), EMF (criar e modificar XML e SCHEMA) e Subclipse (comunicação com o repositório de código).


Ferramentas
Para o desenvolvimento da interface desktop foram utilizadas ferramentas já conhecidas pela equipe de desenvolvimento (vide Ferramentas e Tecnologias). Algumas pesquisas foram realizadas para decidir entre duas tecnologias como, no caso do gerenciador de dados, MySQL e PostgreSQL. Para fazer as melhores escolhas, um estudo detalhado do sistema e de suas perspectivas de extensão fez-se necessário.

Desenvolvimento
O processo de desenvolvimento do sistema foi dividido em 4 partes. Algumas destas foram realizadas simultâneamente e o restante de forma sequencial. Podemos enumerar as 4 partes da seguinte forma:
  • Levantamento e análise de requisitos;

  • Análise e estudo da base de dados existente;

  • desenvolvimento da camada de lógica;

  • desenvolvimento da camada de apresentação;


Levantamento e análise de requisitos
Para que o sistema atendesse a necessidade de médicos e profissionais de saúde do CSE, foram realizadas reuniões entre a equipe de desenvolvimento do IME e representantes do CSE. Estas reuniões foram importantes para a identificação das necessidades e classificação das mesmas de acordo com a prioridade dada a cada uma delas.

A metodologia aplicada consistia em ouvir os relatos da equipe de saúde e listar os requisitos solicitados. Mas para classificá-los de acordo com a prioridade, foi necessário entender o fluxo das informações e o trabalho diário realizado no CSE.

Após esta fase de identificação de requisitos, nosso trabalho foi orientar a equipe de saúde mostrando a viabilidade de implementação dos requisitos e o impacto do desenvolvimento destes itens nos problemas relatados (Veja os requisitos iniciais do sistema). Assim, requisitos foram filtrados e prioridades foram distribuídas tornando viável o desenvolvimento do sistema como projeto de formatura.

Em paralelo com o levantamento de requisitos, a análise e o estudo da base de dados existente no centro de saúde foi feita.

Análise e estudo da base de dados existente
Em paralelo ao levantamento de requisitos, fizemos a análise e o estudo da base de dados. A base de dados atual do CSE está armazenada em um banco de dados FoxPro antigo. O FoxPro se comporta como uma grande tabela, não suporta transações, acessos concorrentes e é software proprietário (Microsoft). Além disso, o modelo da base de dados é rudimentar e cada tabela chega a ter 69 campos. O fluxo de medicamentos é representado por status o que não permite visualizar o caminho seguido pelo medicamento dentro do CSE e não há como obter o histórico de pacientes. A estrutura da base dados atual é representada abaixo:
Ver campos



Ver campos

É fácil ver que não existe modelagem de dados e é inevitável a presença de campos nulos. Muitos campos não são mais utilizados e a estrutura torna o acesso aos dados lento. Estas características eram conflitantes com as necessidades do sistema. Era preciso migrar a base de dados.

Então, iniciamos o estudo da viabilidade de migrar a base de dados existente para o novo gerenciador de dados PostgreSQL. Concluímos que não era viável realizar este trabalho, pois o CSE tem aplicações desenvolvidas para interagir com o FoxPro. A substituição da base de dados faria com que estas aplicações deixassem de funcionar.

Assim, antes de substituir a base de dados, todas as aplicações utilizadas pelo CSE deveriam ser migradas. Além disso, deveríamos modelar o banco de dados, identificando os objetos, os fluxos e os relacionamentos. O tempo exigido por estas tarefas não nos permitiria desenvolver um protótipo do sistema que pudesse ser avaliado pela equipe médica.

Decidimos utilizar um conversor de dados FoxPro para PostgreSQL e o sistema seria desenvolvido sobre esta base de dados. As tarefas de modelagem da nova base de dados e migração das aplicações fazem parte da segunda etapa do projeto Borboleta.

O conversor de dados FoxPro para PostgreSQL utilizado foi desenvolvido pela própria equipe de desenvolvimento do sistema Borboleta. O FoxPro tem uma opção de exportar seus dados em alguns formatos comuns na plataforma Windows, como Excel e Access. Escolhemos a opção de exportar para um banco de dados Access. Com os dados armazenados em um banco Access, podemos novamente exportar os dados em um arquivo texto formatado à escolha do usuário. Nosso conversor utiliza este arquivo texto como entrada e seu resultado é um arquivo com queries SQL.

Desenvolvimento da camada lógica
O desenvolvimento da camada lógica consistiu em implementar a interação entre o sistema desktop e o gerenciador de dados e intermediar a comunicação entre os dispositivos móveis e a base de dados. A descrição do processo de desenvolvimento encontra-se no link abaixo:
Camada lógica

Desenvolvimento da camada de apresentação
O desenvolvimento da camada de apresentação consistiu em implementar a interface gráfica do sistema. Esta deveria ser simples e permitir o uso do sistema por usuários leigos. A descrição do processo de desenvolvimento encontra-se no link abaixo:
Camada de apresentação

Métricas Post-Mortem e Resultados
Abaixo segue uma tabela relacionando as atividades feitas e o resultado obtido.

Atividade Descrição Tempo Resultado Obtido
Levantamento de Requisitos do sistema Obtenção de informações sobre o CSE e os programas de saúde mantidos. Reuniões entre a equipe médica e desenvolvimento. 4-6 semanas Chegou-se à conclusão de que muitos requisitos levantados pela equipe médica eram inviáveis. Foi feita um seleção dos requisitos mais importantes e um plano de trabalho foi desenhado pelo professor Fabio Kon com o objetivo de atendê-los.
Estudo da base de dados do CSE e escolha do gerenciador Estudo da estrutura da base de dados e do atual banco de dados, FoxPro. Pesquisa sobre exportação de dados de FoxPro para SQL, estudo comparativo entre MySQL e PostgreSQL e estudo da linguagem Perl. 8 semanas O acesso aos dados no FoxPro pelo sistema Java não era viável. Chegou-se a conclusão de que os dados deveriam ser exportados para o gerenciador SQL. Encontrou-se um conversor de dados(FoxPro -> MySQL) em Perl, iniciou-se o estudo desta linguagem. Mas com o estudo comparativo entre PostgreSQL e MySQL, optamos pelo PostgreSQL. Assim, o conversor em Perl não era mais adequado e decidiu-se implementar o conversor. (*)
Sistema Borboleta - Camada lógica Desenvolvimento da camada lógica do sistema 8-9 semanas Optou-se pelo uso de XML e HTTP para a exportação de dados para os dispositivos móveis.
GUI para o sistema Borboleta Pesquisa e estudo comparativo entre Swing e AWT 1 semana Optou-se pelo Swing devido a maior flexibilidade.
Sistema Borboleta - Camada de apresentação Desenvolvimento da camada de apresentação do sistema 7-8 semanas Interface gráfica para do sistema Borboleta utilizando Swing
(*) Neste momento da pesquisa, a orientação da aluna de mestrado, na área de banco de dados, Kelly Rosa Braghetto foi fundamental.
(**) OBS: o tempo levado foi considerado como sendo o tempo total usado para a atividade, havendo atividades que foram feitas "simultaneamente".