Trabalho de Formatura Supervisionado – MAC499 Estágio: Mai/2002 – Dez/2003 Aluno: Danilo Toshiaki Sato Orientador: Marco Dimas Gubitoso Trabalho de Formatura Supervisionado – MAC499 A Empresa • A Touch foi fundada há alguns anos atrás para desenvolver sistemas para o grupo Diagnósticos da América • Conta com uma equipe de aproximadamente 30 pessoas entre desenvolvedores e web designers • O grupo Diagnósticos da América atua no ramo de medicina diagnóstica e conta com 6 divisões – Delboni Auriemo, Lavoisier, Club DA, Bronstein, Lâmina e Santa Casa – atuando em 11 cidades, nos estados de São Paulo, Rio de Janeiro, Paraná e Minas Gerais. • Atualmente a Touch não trabalha apenas para o grupo Diagnósticos da América Trabalho de Formatura Supervisionado – MAC499 O Projeto • O Motion é um sistema para controle operacional dos NTO´s (Núcleo Técnico Operacional) da empresa. O NTO é o lugar onde todos os exames são processados • Criado para substituir os sistemas legados dos laboratórios da empresa, de modo a adequar e integrar o sistema à nova realidade da empresa • Totalmente baseado na tecnologia J2EE e ferramentas Java como: Struts Ant AspectJ JUnit/Cactus StrutsTestCase SableCC Trabalho de Formatura Supervisionado – MAC499 O Projeto - Escopo Coleta 1 Entrada 2 Execução & C.Q. 3 Análise de Consistência 4 Liberação 5 Laudo 6 • Durante o estágio fui alocado no grupo encarregado pelos módulos de análise de consistência e de liberação, responsáveis pela validação dos resultados obtidos na execução • Análise de Consistência: Automatiza a análise dos resultados • Liberação: Permite que o resultado de um exame seja laudado Trabalho de Formatura Supervisionado – MAC499 Atividades Realizadas • Treinamento e integração com o projeto • Desenvolvimento das entidades EJB do sistema • Criação das páginas web do sistema: tela de cadastro de ações automáticas, tela de liberação manual (vide figura), dentre outras... Trabalho de Formatura Supervisionado – MAC499 Atividades Realizadas - LMotion • • Fui responsável por um módulo do sistema responsável pela definição e interpretação de código escrito numa linguagem interna, chamada LMotion Facilita o acesso aos dados do modelo: resultado de um exame, altura do paciente, etc Exemplos de código LMotion: se resultado < 0 entao enviarRepeticao senao se resultado > 100 && sexoPaciente == M entao enviarRepeticao senao se resultado > 200 && sexoPaciente == F entao enviarRepeticao senao se resultado > 300 entao avisarPanico (exemplo de código para a fila de ações automáticas) diaDaSemana[#sexta-feira#] && horaAtual > #18:00# • • Permite escrever ações sobre o modelo: envio para repetição, aviso de pânico, etc Expressões e Condicionais (exemplo de uma expressão booleana para definir se um resultado deve ter dupla digitação) resultado[“TST2”] * (pesoPaciente/alturaPaciente) (exemplo de uma expressão que define a fórmula para cálculo do resultado de um exame) Trabalho de Formatura Supervisionado – MAC499 Ambiente de Teste Web • Um dos desafios encontrados surgiu na fase de testes. Desenvolvi uma ferramenta para facilitar a geração de código de testes automatizados sobre o framework StrutsTestCase (uma extensão do JUnit para o Struts), utilizando o AspectJ. Request HTTP Response Desenvolvimento (browser) Teste Automático Servidor Web - Struts (Apache + Tomcat) Trabalho de Formatura Supervisionado – MAC499 Ambiente de Teste Web • A ferramenta facilitou o trabalho de escrita de código, resumindo-a a três passos: 1. Configurar 2. Gravar 3. Testar http://www.linux.ime.usp.br/~dtsato/mac499