Sistema Borboleta Móvel |
Introdução
O sistema Borboleta Móvel tem o objetivo de melhorar a qualidade do atendimento aos pacientes do programa APD (Atenção Primária Domiciliar). As principais funcionalidades são organizar os dados dos pacientes atendidos pelo programa, organizar os prontuários eletrônicos dos pacientes e enviar dados a outros profissionais de forma online. E o sistema deve ser portável, ou seja, possuir capacidade de execução em uma grande variedade de dispositivos móveis.
Ambiente de desenvolvimento
O sistema Borboleta Móvel foi desenvolvido com a linguagem Java [java], mais especificamente a plataforma Java Micro Edition [j2me] com o ambiente de desenvolvimento Eclipse [eclipse]. Utilizamos ainda os plug-ins EclipseME [eclime] e o Subclipse [subcli].Como o Eclipse não possui emulador de Palm, foi necessário utilizar o Palm OS Garnet Simulator para se verificar a interface gráfica dos aplicativos no PDA. Para isso, havia a necessidade de se gerar um arquivo de configuração jad (Java Application Descriptor) e um arquivo com o executável jar (Java Application Resource) pelo Eclipse. Estes dois arquivos são utilizados por um aplicativo para gerar o arquivo prc (Palm Resource). Esse último, então, podia ser utilizado para executar o programa no simulador de Palm. Ferramentas
As tecnologias e ferramentas utilizadas para o desenvolvimento desse módulo foram J2ME, kXML, WTK e o Palm. Vide mais detalhes em Ferramentas e Tecnologias.Desenvolvimento
Módulo de importação de dados
O primeiro passo foi desenvolver o módulo que faz a importação dos dados de pacientes. Esse módulo importa os dados a partir de arquivos XML gerados no sistema Borboleta Desktop. Para desenvolver a classe, utilizamos os Padrões de Projeto Template Method [GoF95] e Data Access Object [CJ2P]. Nos primeiros testes, efetuados em emuladores do Sun Java Wireless Toolkit [wtk], a operação foi efetuada com sucesso.Testes em dispositivos reais
Após os testes com sucesso em emuladores, queríamos testar em dispositivos reais. O dispositivo escolhido foi um aparelho Palm [palm], pois alguns participantes do projeto já estavam familiarizados com ele. A partir daqui começaram a surgir problemas mais sérios. Apesar da linguagem Java ser portável, é necessário que transformemos os arquivos executáveis gerados pelo WTK. No caso de dispositivos Palm, o formato é o PRC, Palm Resource ou recurso Palm.Primeiro problema encontrado
Aplicativo instalado no dispositivo real. Primeiro problema, o aplicativo é executado no dispositivo em um ambiente seguro e o acesso ao sistema de arquivo é efetuado através de uma biblioteca, disponibilizada pela PalmSource [palmsource]. Como esta biblioteca foi desenvolvida na linguagem C, resolvemos procurar outra solução já que esta solução confrontava-se com um dos nossos objetivos. Relembrando, este objetivo é dar portabilidade ao aplicativo, ou seja, utilizar o aplicativo em um máximo de dispositivos possíveis, inclusive, no futuro, aparelhos celulares.A solução para a importação de dados
Para solucionar o problema da importação de dados dos pacientes, resolvemos que o meio seria online via HTTP. A justificativa para o uso desta solução foi que um celular com conexão à Internet e com suporte a Bluetooth, nos dias de hoje, já é acessível e a grande maioria dos PDAs possuem suporte a Bluetooth e alguns até com conexão Wi-Fi, que possibilita acesso à Internet sem intermediários.
![]()
Figura 2: Screenshot módulo Importação de pacientes.
PEP: Prontuário Eletrônico do Paciente
A principal discussão para o módulo prontuário eletrônico foi a respeito dos dados. Definimos que a principal forma de preenchimento deles seriam as caixas de seleção. Um campo texto, de observação, poderia ser utilizado quando as opções das caixas de seleção não contemplassem o dado a ser preenchido. O PEP poderia ter várias perguntas agrupadas em formulários.
Como na importação de dados, este tópico também era novidade para os integrantes da equipe. Iniciou-se o desenvolvimento da parte gráfica da aplicação, utilizando o padrão de projeto Template Method [GoF95]. A inteface gráfica (GUI) foi desenvolvida com a API de alto nível do J2ME. Veja mais sobre GUI J2ME. As classes ListPEP e ListPaciente (figura 3) apenas listam as consultas e os dados de pacientes, respectivamente. Cada uma delas acessam os DAOs necessários. Um exemplo é a classe ListPaciente acessa a classe RmsIdentificationDAO (figura 1). A estrutura abaixo ilustra a arquitetura projetada para a geração de formulários dinamicamente do PEP. As classes, TextPergunta e DatePergunta que herdam de Pergunta, tem o seu funcionamento muito parecido. A principal diferença é qual objeto Item da API de alto nível da interface gráfica será instanciada. Do mesmo modo que estas classes que implementam campos texto, as classes RadioBoxPergunta e CheckBoxPergunta diferem-se somente pela quantidade de caixas que podem ser selecionadas. ![]() ![]()
Figura 7: Screenshots módulo PEP.
Métricas Post-Mortem e Resultados
A atividade do cronograma de Julho de 2005, implementação do protótipo inicial do projeto, desde o banco de dados DBF até o Palm, integrando as aplicações Palm/Desktop para este modulo do sistema consistiu em ler documentos em formato XML e foi implementado uma versão de testes. Os testes com o emulador do [wtk] foram efetuados com sucesso.
Porém com os problemas encontrados com dispositivos móveis, a fase de integração de dados foi parcialmente concluída em Outubro de 2005 com a importação de dados via protocolo HTTP. A exportação de dados, dispositivo para sistema Desktop, não foi desenvolvida, pois teríamos que abrir uma conexão HTTP e desenvolver um outro sistema Web que recebesse estes dados. A atividade de Setembro de 2005, implementação das fichas de atendimento domiciliar, foi executada. De acordo com o propósito inicial, iríamos apenas inserir um campo texto e preencher este campo. Na atividade refinamento da implementação, as prioridades foram facilitar o preenchimento de dados e inclusão de mais campos de preenchimento. A solução encontrada para facitar o preenchimento dos dados foi incluir opções mais comuns de preenchimento do campo em conjunto com um campo texto para observações. A inclusão de novos campos no PEP visava facilitar a busca por uma informação no PEP de forma mais organizada. Inicialmente, os formulários foram desenvolvidos de forma estática, ou seja, se houvesse alguma alteração de campo do PEP seria necessário uma modificação no código. Atualmente, estamos desenvolvendo um módulo para gerenciamento de campos dos formulários. Desta maneira, a medida que o PEP for amadurecendo, a própria equipe do CSE poderá alterar os campos de preenchimento do PEP. Os testes de usabilidade e experimentos estão sendo feitos e mais outros ainda estão previstos. Como resultado, o dispositivo móvel é capaz de importar dados de pacientes via protocolo HTTP e inserir dados no PEP. [voltar]
|