CONSTRUÇÃO DE UMA APLICAÇÃO DE BANCO DE DADOS USANDO XML E ASP PROF. CELSO MASSAKI HIRATA (PQ) JULIANA DE MELO BEZERRA (IC) O presente trabalho foca o estudo e a construção de uma aplicação de banco de dados usando uma linguagem emergente chamada XML (eXtensible Markup Language) e outras tecnologias, como SQL, COM+, Visual Basic (VB) e ASP. A XML é uma linguagem de marcação, assim como a HTML, porém seu objetivo reside em descrever dados salientando sua estrutura. Médicos, pacientes e laboratórios na área de ginecologia compõem o sistema desenvolvido e interagem dentro dele. Ao médico confere-se o acesso à ficha completa dos seus pacientes, podendo ele requisitar novos exames, solicitar medicamentos, ver anotações de outros médicos que já atenderam sua paciente e ainda observar resultados de exames anteriormente feitos pela mesma. Assim o médico pode acompanhar o histórico da paciente e diagnosticá-la com maior precisão. No próprio sistema, a paciente pode escolher em qual laboratório pretende realizar seu exame e este recebe a notificação da escolha para posteriormente entrar em contato com a paciente e marcar o horário de atendimento. Projetou-se o sistema como uma aplicação em três camadas, assim alguns passos bem definidos foram cumpridos. O primeiro passo englobou a escolha do sistema e suas funcionalidades. O segundo, a definição e construção das tabelas de banco de dados no SQL Server 7.0 e de stored procedures em SQL que implementam as funcionalidades especificadas no primeiro passo. Ao terceiro passo atribuiu-se o desenvolvimento de toda camada de regras de negócio usando VB. E, por último, o estudo do ASP associado ao XML e XSL. The current project focuses on the study and the construction of a database application using the XML (eXtensible Markup Language) and other technologies: SQL, COM+, Visual Basic (VB) e ASP. The XML is a markup language like the HTML, but its objective is to describe data by emphasying to data structure. Doctors, patients, and laboratories in gynecologic area form the system. The doctor can access the patient’s card, and can later request new exams and medication, see the notes of other doctors who already served his patient, and access the results of exams that these other doctors demanded. On this way, the doctor can follow patient history and diagnose her with more precision. In the system, the patient can choose the laboratory where she will take the exam and the laboratory receives the ask for call the patient and schedule an appointment. The system was design as a three layers application, and some steps are followed for this. The first one was to choose the system and its functions. The second step was to define and develop the database tables in SQL Serve 7.0 and the stored procedures using SQL that implements functions from the first step. The development of the Business Service layer takes place in the third step, using VB. At the last step, the study of ASP associated to XML and XSL was undertaken. 1. O CONTEXTO DO SISTEMA Existem alguns inconvenientes enfrentados pelas pessoas ao fazer seu acompanhamento médico, são eles: guardar seus exames anteriores e mudar de médico. Guardar exames é necessário para que o médico possa acompanhar a evolução de um problema detectado ou a situação do organismo. Caso o médico não tenha acesso aos exames anteriores aumentará a complexidade de uma decisão de tratamento, pois ele irá encarar o problema do paciente como novo e passar vários exames de modo a embasar o diagnóstico. Entretanto, tomar o problema como novo é ineficiente, já que o mesmo tem um passado a ser levado em consideração. Comumente se muda de médico. Pelo serviço público de saúde, o paciente às vezes não pode escolher qual médico deseja ir e acaba realizando sua consulta com um médico diferente do que lhe atendeu anteriormente. As pessoas que têm plano de saúde também sentem o problema de mudar de médico quando trocam de plano, caso o novo plano não possua convênio com os especialistas utilizados anteriormente. O inconveniente da mudança reside em ter que explicar ao novo médico qual seu problema, os exames antes realizados, os medicamentos tomados e as recomendações recebidas. Seria mais fácil se o médico sempre possuísse acesso aos dados históricos da paciente para poder diagnosticar melhor. 2. O SISTEMA PROPOSTO Neste trabalho relata-se a implementação do protótipo de um sistema voltado ao atendimento de pacientes na área da Ginecologia. Tal escolha reside no fato das mulheres possuírem acompanhamento ginecológico durante toda sua vida, a partir de aproximadamente treze anos de idade, estando, então, expostas aos dois inconvenientes básicos: guardar exames anteriores e mudar de médico. O ideal é o ginecologista estar ciente das alterações que por ventura ocorram em sua paciente e conseguir observar adequadamente o andamento destas alterações. Daí a necessidade de disponibilizar o histórico da mulher, com observações, exames e medicações feitas. Por outro lado, há remédios que causam complicações a certas pacientes e se, o médico dispuser desta informação, não irá receitar o mesmo remédio novamente. O sistema proposto consiste na interação entre paciente, médico e laboratório que realiza os exames. Um banco de dados gerencia as informações sobre os pacientes, os médico e os laboratórios; e a cada um dos três é oferecida uma interface diferente tendo em vista o atendimento de suas necessidades específicas. As principais funcionalidades que cada um deles poderá ralizar são: a) Paciente: acessar seus exames já realizados e as observações emitidas pelos médicos que lhe acompanharam, escolher em qual laboratório deseja realizar os exames requisitados e ver as instruções de seu médico quanto à utilização de um dado medicamento. b) Médico: ver a ficha de seus pacientes e seus exames antigos, requisitar novos exames, inserir novas observações sobre um determinado paciente, além de receitar os remédios a serem tomados. c) Laboratório: tem acesso aos exames que foram designados pelo médico e inserir os resultados no próprio sistema. Editar dados Ver exames anteriores Requisitar novo exame Inserir observação Ver observações do médico paciente Ver exames requisitados Escolher o laboratório onde fará o exame laboratório Ver médicos cadastrados Ver laboratórios cadastrados Solicitar novo medicamento médico Ver pacientes cadastradas Ver exames a fazer Figura 1: Use cases do sistema 3. TECNOLOGIAS UTILIZADAS NO SISTEMA Entre as tecnologias empregadas no desenvolvimento do sistema estão: SQL: Usa-se a linguagem SQL (Structured Query Language) para se estabelecer uma interação com um banco de dados, sendo definida, pela ANSI (American National Standards Institute), como linguagem padrão de sistemas de gerência de banco de dados relacionais. Alguns dos sistemas de gerência de banco de dados relacionais mais utilizados são: Oracle, Sybase, Microsoft SQL Server, Access e Ingres. No presente projeto, optou-se pelo Microsoft SQL Server, o qual dispõe de recursos como stored procedures: funções em SQL que lidam diretamente com os dados mantidos no banco de dados. [17][18] COM+: Foi desenvolvido com a finalidade de simplificar a criação e o uso de componentes de software. COM+ provê runtime e serviços já usados por qualquer linguagem ou ferramenta de programação, além disso, permite interoperabilidade entre componentes sem se preocupar com como estes foram implementados. Alguns dos objetivos do COM+: Tornar-se simples para construção de componentes; Tratar questões chaves no desenvolvimento de aplicações; Prover novos serviços para os desenvolvedores; Prover um mecanismo de extensão de padrão para incorporar inovações. [12,13] Visual Basic: A Microsoft baseou o Visual Basic (VB) em uma linguagem de programação chamada BASIC (Beginner’s All-purpose Symbolic Code). O BASIC é estritamente uma linguagem baseada em texto. Tanto o seu programa como sua saída são textuais e não produzem saídas gráficas em janelas como os programas atuais. Houve uma longa evolução desta linguagem até chegar no VB, que é gráfico e bastante simples de usar. O VB tornou-se bastante popular, porque pode ser utilizado tanto interpretado quanto compilado. Pode-se testar um programa em VB executando-o de forma interpretada até eliminar todos seus bugs. Uma vez eliminado os bugs e depois de ter testado completamente o programa, o desenvolvedor pode então compilá-lo em um programa executável rápido e seguro que pode ser distribuído para outras pessoas utilizarem. [5][15] ASP: Active Server Pages (ASPs) são páginas Web que contêm server-side scripts em adição à mistura usual de texto e tags HTML (Hipertext Markup Language). Define-se server-side scripts como comandos especiais colocados nas páginas Web e processados no próprio servidor Web antes das páginas serem enviadas para o browser Web da pessoa que requisitou tais páginas. No sistema proposto, usamos o IIS (Internet Information Server) como servidor Web. XML: Significa eXtensible Markup Language, suas aplicações classificam-se em dois tipos: de documentos e de dados. A vantagem principal da XML em aplicações de documentos é que ela se concentra na estrutura do documento e o torna independente do meio de distribuição. Assim possibilita editar e manter documentos em XML e publicá-los automaticamente em diferentes meios com auxilio da XSL (XML Stylesheet Language). Como aplicações de dados, a XML pode ser usada na troca de dados. Sistemas computacionais e banco de dados contêm dados em formatos incompatíveis, e um desafio para os desenvolvedores habita na troca desses dados entre sistemas pela internet. Convertendo os dados para XML, reduz-se a complexidade, criando-se dados que podem ser lidos por diferentes tipos de aplicação. [3][6] 4. A IMPLEMENTAÇÃO DO SISTEMA O sistema foi desenvolvido como uma aplicação em três camadas, que consiste em duas aplicações cliente/servidor encadeadas. Existem três camadas porque são três partes envolvidas. Cada camada recebe um nome em especial, são elas: camada de dados (Data Services), camada de regras de negócio (Business Services) e camada de interface (User Services).[1] Camada de interface Cliente Camada de regras de negocio Camada de dados Banco de dados Figura 2: Esquema de uma aplicação em três camadas A camada de dados acessa diretamente o banco de dados Microsoft SQL Server 7.0, sendo, no sistema desenvolvido, representada pelas stored procedures em SQL. Um exemplo simples da criação de uma procedure utilizada para resgatar todas informações dos médicos cadastrados, é apresentada a seguir: CREATE PROCEDURE VERMEDICOS AS BEGIN SELECT * FROM MEDICOS END A camada de regras de negócio contém os objetos que representam regras ou lógica do fluxo de operações que se deseja automatizar. Estes objetos, implementados em VB, recorrem aos da camada de dados quando desejam acessar o banco de dados e são gerenciados pela tecnologia COM+. Embora o Visual Basic não seja uma linguagem orientada a objetos, utilizou-se uma maneira alternativa para tornála orientada objetos, que consiste em implementar funções representando construtores e funções representando métodos de acesso às variáveis. Segue o exemplo de uma função destinada ao resgate de todos dados sobre os médicos: Public Function VerMedicos() As Collection On Error GoTo TRAP Dim CONNECTION As New CONNECTION Dim COMMAND As New COMMAND CONNECTION.ConnectionString = AUXCONNECTION CONNECTION.CommandTimeout = 0 CONNECTION.Open COMMAND.ActiveConnection = CONNECTION COMMAND.CommandText = "VERMEDICOS" COMMAND.CommandType = adCmdStoredProc Dim Recordset As New Recordset Set Recordset = COMMAND.Execute() If Recordset.EOF Then Call Err.Raise(1, "Não foi encontrado nenhum registro") End If Dim col As New Collection Dim med As New medico Do While Not Recordset.EOF Call med.newMedico(Recordset("IDMEDICO"), Recordset("NOME"), Recordset("ENDERECO"), Recordset("TELEFONE")) col.Add med Set med = Nothing Recordset.MoveNext Loop Recordset.Close CONNECTION.Close Set VerMedicos = col Exit Function TRAP: Set VerMedicos = Nothing End Function A camada de interface contém os objetos (como formulários) sob a perspectiva do cliente, é conhecida como camada de apresentação porque nela se realiza a interface com o usuário final. As partes das telas do sistema, como barra de menu, foram desenvolvidas em HTML. Inseriu-se código ASP para processar as informações desejadas, chamando as funções dos objetos em VB. Nos casos onde há exposição dos dados na telas, como uma lista de exames ou de medicamentos, o ASP monta um documento XML cuja formatação é dada por uma folha de estilo XSL associada. Figura 3: Tela inicial da paciente e página com medicamentos a ela requisitados 5. CONCLUSÃO O desenvolvimento deste projeto permitiu uma visão total de uma aplicação voltada para internet, desde sua concepção até o objetivo final, que é obter um site funcionando. Percebeu-se a importância de um sistema em três camadas tanto para organização do código quanto para sua otimização. Em cada camada, as descobertas foram surpreendentes, proporcionando um aprendizado intenso de várias tecnologias. A maior dificuldade encontrada foi o aprendizado dos ambientes ainda desconhecidos, como o SQL Server 7.0 e o Visual Studio 6.0. Estudou-se o ambiente Microsoft SQL Server 7.0 no qual se emprega a linguagem SQL, objetivando construir as tabelas do banco de dados e procedimentos necessários para manipular seus dados. A importância do Visual Studio 6.0 foi observada no desenvolvimento de componentes em VB da camada de regras de negócio para prover uma maior divisão entre as camadas do sistema. Como conseqüência, houve um foco na pesquisa sobre a tecnologia COM+ e na própria manipulação da linguagem VB. No desenvolvimento da camada de interface, empregou-se ASP e XML. Assim pode se perceber a importância do ASP no processamento de informações de sistemas cliente/servidor e como é fácil se trabalhar com XML, permitindo uma excelente separação entre layout dos dados e os dados propriamente ditos, já que este layout pode ser atribuído pela aplicação de folhas de estilo XSL. AGRADECIMENTOS A Deus que me deu esta oportunidade de aprendizado e crescimento. E à minha família, que mesmo distante, conforta-me a todo momento. REFERÊNCIAS BIBLIOGRÁFICAS [1] Wilson, Mark; Wilson, Tracey. XML Programação com VB e ASP. Rio de Janeiro: Ciência Moderna Ltda., 2001 (Trad. de XML Programming with VB and ASP); [2] McGrath, Sean. XML Aplicações Práticas, Como desenvolver aplicações de comércio eletrônico. Rio de Janeiro: Campus, 1999 (Trad. de XML by Example, por V.H.P Alves); [3] Marchal, Benoît. XML Conceitos e Aplicações. São Paulo: Berkey, 2000 (Trad. por Daniel Vieira); [4] Mitchell, Scott; Atkinson, James. Aprenda em 21 dias ASP Active Server Pages 3.0. Rio de Janeiro: Campus, 2000 (Trad. por E. Furmankiewicz e J. Figueiredo); [5] Perry, Greg. Aprenda em 21 dias Visual Basic 6. Rio de Janeiro: Editora Campus Ltda., 1999 (Trad. de Teach Tourself Visual Basic 6 in 21 Daysi, por Edson Furmankiewicz) [6] http://xml101.com [7] http://lists.xml.org/archives/xml-dev/200106/msg01040.html [8] http://www.w3schools.com/xml/default.asp [9] http://www.ibiblio.org/xml/books/bible2/chapters/ch17.html [10] http://www.microsoft.com/com/tech/com.asp [11]http://msdn.microsoft.com/library/default.asp?url=/library/enus/dnguion/html/msdn_drguion020298.asp [12] http://www.microsoft.com/com/tech/complus.asp [13] http://www.microsoft.com/msj/defaultframe.asp?page=/msj/1197/complus.htm&nav= /msj/1197/newnav.htm [14] http://msdn.microsoft.com/vbasic/productinfo/previous/vb6/articles/aspsecurity/ default.asp [15] http://www.progsys.com/whyvb.htm [16] http://www.asptutorial.info/ [17] http://www.sqlcourse.com/ [18] http://www.w3schools.com/sql/sql_intro.asp