Escolar Documentos
Profissional Documentos
Cultura Documentos
Monografia apresentada como requisito parcial para obteno do diploma de Bacharel em Engenharia da Computao pela Escola Politcnica de Pernambuco Universidade de Pernambuco.
Agradecimentos
Agradeo antes de tudo a Deus por ter me dado esperana, por te me ajudado em minha carreira e minha vida e por me mostrar o caminho certo. Aos meus pais que acreditaram no meu potencial e me deram suporte para a concluso dos meus estudos. A Wellington, meu professor orientador e amigo, por ter tido pacincia e acreditado no meu trabalho. A todos os meus amigos e colegas que me ajudaram de alguma forma seja com sugestes, crticas ou orientaes.
Resumo
A elaborao de pronturios eletrnicos de pacientes envolve um esforo multidisciplinar que engloba desde a computao at as reas do conhecimento ligadas sade. Pronturios eletrnicos visam ser uma soluo para uma gesto eficiente de dados clnicos. Este trabalho apresenta uma ferramenta desenvolvida para a gesto de pronturios para as reas de odontologia e cardiologia: o PEPNET. Foram realizados trs estudos de caso de aplicativos disponveis no mercado de gesto de pronturios. A partir do estudo das ferramentas foram observadas as principais propriedades dos pronturios eletrnicos. A ferramenta desenvolvida neste trabalho, PEPNET, um aplicativo distribudo, heterogneo e seguro, condio esta garantida pelo framework empregado: Spring Security. Para o desenvolvimento foram usados diversos frameworks que seguem a arquitetura de software ModelView-Controller. Durante o processo de construo da ferramenta, foi adotada a metodologia de desenvolvimento gil de software. O PEPNET se mostrou uma ferramenta com bastante potencial para auxiliar os profissionais de sade na gesto racional e tica de informaes clnicas, acrescentando facilidades no uso tais como a melhora na organizao e a integrao dos dado clnicos, da legibilidade das informaes e sua segurana quanto ao seu armazenamento e acesso.
Abstract
The elaboration of electronic patient records approaches a multidisciplinary effort involving fields of interest from computing to health sciences and administration. Electronic patient records are designed to be efficient solutions to manage clinical data. This work presents a web-based tool developed for electronic patient records management, applied to odontology and cardiology: PEPNET. We performed three cases of study on commercial applications dealing with management of electronic patient records. From this study we extracted the principal properties of these electronic records. PEPNET was developed to be a distributed, heterogeneous and safe web tool. Safety is a condition guaranteed by the use of the framework Spring Security. The other frameworks follow the software architecture Model-ViewController. To develop this web tool we used the agile development software methodology. PEPNET proved to be potentially an important tool to aid health professionals to rationally and ethically manage clinical data, adding important resources to organize and integrate data, improving issues like information legibility, and store and access security.
ii
Sumrio
Resumo Abstract Sumrio ndice de Figuras ndice de Tabelas Tabela de Smbolos e Siglas Captulo 1 Introduo
1.1 1.2 1.3 Motivao Objetivos Organizao 8 9 9
i ii iii v vi vii 8
10
2.1.1 Vantagens e Desvantagens do Pronturio Eletrnico 2.2 2.3 2.4 Cdigo de tica Padro de Imagens Mdicas Pesquisa de Mercado
2.4.1 Aplicativo 1: Consultrio Digital da SBC 2.4.2 Aplicativo 2: PEP InCor 2.4.3 Aplicativo 3: Dental Office 2.5 concluso
24
28 29 32 33 36 37
38
Bibliografia Apndice A Anlise de Casos de Uso Apndice B Especificao de Casos de Uso Apndice C Diagramas Apndice D Testes
40 43 46 50 54
iv
ndice de Figuras
Figura 1. Desvantagens do Pronturio em Papel. Pesquisa realizada na Maternidade Escola Janurio Cicco, Natal/RN [4]. .............................................. 11 Figura 2. Vantagens do Pronturio Eletrnico. Pesquisa realizada na
Maternidade Escola Janurio Cicco, Natal/RN [4]. .............................................. 13 Figura 3. Vantagens do Pronturio Eletrnico. Pesquisa realizada na
Maternidade Escola Janurio Cicco, Natal/RN [4]. .............................................. 14 Figura 4. Interface grfica de usurio do Consultrio digital da Sociedade
Brasileira de Cardiologia [17]. ............................................................................. 17 Figura 5. Figura 6. Figura 7. Figura 8. Figura 9. Figura 10. Figura 11. Figura 12. Figura 13. Interface Grfica do Pronturio eletrnico do InCor [21]. ........................ 19 Interface de usurio do Pronturio eletrnico do Dental Office [22]. ....... 21 Tela de Validao dos usurios do sistema. ........................................... 34 Tela de atualizao de perfil de um usurio do sistema. ......................... 34 Tela inicial e principal do sistema. .......................................................... 35 Tela de Gerenciamento de Pacientes. ................................................. 35 Tela de pesquisa do CID. ..................................................................... 36 Diagrama dos Casos de Uso da Gerncia de Usurio Administrador .. 50 Diagrama dos Casos de Uso da Gerncia da Agenda para
Odontologia ......................................................................................................... 50 Figura 14. Diagrama dos Casos de Uso da Gerncia de Pacientes para
Odontologia ......................................................................................................... 51 Figura 15. Diagrama dos Casos de Uso da Gerncia de Pacientes para Mdico . 52
ndice de Tabelas
Tabela 1. Tabela 2. Tabela 3. Tabela 4. Tabela 5. Tabela 6. Tabela 7. Tabela 8. Tabela 9. Comparativo entre os aplicativos analisados........................................... 22 Perodo das atividades da anlise de requisitos...................................... 25 Anlise de Riscos para o Escopo Processos .......................................... 27 Anlise de Riscos para o Escopo Geral .................................................. 28 Descrio da Classe User ....................................................................... 43 Descrio da Classe UserServiceImpl .................................................... 44 Descrio da Classe Cid ......................................................................... 44 Descrio da Classe BaseCidAction ....................................................... 45 Descrio da Classe CidserviceImpl ....................................................... 45
vi
vii
Captulo 1 Introduo
A gesto das informaes do paciente uma prtica muito antiga e essencial no acompanhamento clnico. Com a evoluo da medicina, modificou-se a forma de armazenamento desses dados bem como quais informaes eram mais relevantes a serem registradas. A semiologia mdica [1] estuda atravs das anamneses, exames clnicos, observaes, tabelas, sndromes, entre outros. os sinais e sintomas das doenas humanas com o propsito de se estabelecer um diagnstico. A medicina sempre buscou o uso de uma gesto eficiente dos dados da semiologia mdica. Com o advento da informtica, mais precisamente com o surgimento da rea sistemas da informao, foram desenvolvidos os pronturios eletrnicos do paciente para armazenar os diagnsticos e realizar os acompanhamentos clnicos.
1.1 Motivao
Pronturio eletrnico do paciente a forma que tem se demonstrado mais eficiente na manipulao dos dados clnicos. A utilizao de sistemas eletrnicos para gesto resolve diversos problemas de infra-estrutura e de recuperao das informaes dos pacientes. H diversas solues prontas de gesto de pronturios disponveis na Internet sob licenas proprietria ou livre e so normalmente voltados para um determinado campo da sade. O estudo e desenvolvimento de um sistema para gesto de pronturios que oferea suporte a mais de um campo da sade (por exemplo, odontologia e cardiologia), e que seja acessvel via Internet, pode vir a suprir a carncia de uma soluo que seja mais heterognea e ao mesmo tempo distribuda. Foram escolhidas as reas cardiologia e odontologia, porque inicialmente se teve a um clnica chamada So Mateus localizada na cidade do Crato, Cear, que possui um problema que bastante comum a vrias clnicas e hospitais no Brasil que justamente a gesto descentralizada de pronturios. A Clnica So Mateus 8
trabalha justamente com as reas cardiologia e odontologia e foi proposto como soluo um sistema nico de pronturio que pudesse unir a gesto dos dados dos pacientes da clnica em questo.
1.2 Objetivos
O objetivo deste trabalho estudar sobre a gesto dos pronturios dos pacientes, levando em considerao o cdigo de tica, qual a forma mais eficiente de se administrar os dados clnicos e quais caractersticas so imprescindveis para uma boa gesto. Para validar este estudo, foi desenvolvido um sistema de gesto de pronturios eletrnicos do paciente para as reas de odontologia e cardiologia, denominado PEPNET. Este sistema deve estar de acordo com o cdigo de tica de medicina e odontologia e oferecer as funcionalidades bsicas e essenciais para a gesto de dados clnicos dos pacientes. Os resultados obtidos a partir deste trabalho podero ser usados como base para diversos outros projetos ou estudos mais aprofundados que abordem a administrao informatizada clnica e hospitalar dos pacientes.
1.3 Organizao
O segundo captulo deste documento apresenta a viso geral sobre a gesto de pronturios do paciente; o cdigo de tica dos profissionais de sade, as diferenas, vantagens e desvantagens entre o uso dos pronturios de papeis [2] e dos pronturios eletrnicos; e a anlise sobre adoo de alguns sistemas de gesto dos pronturios eletrnicos. O captulo 3 apresenta o sistema de gesto de pronturios eletrnicos PEPNET, destacando suas funcionalidades, arquitetura bem como sua metodologia de desenvolvimento. No captulo 4, so apresentados os resultados obtidos atravs do estudo e desenvolvimento do sistema de gesto de pronturios eletrnicos PEPNET e sugestes para possveis trabalhos futuros que complementaro este projeto. 9
10
Figura 1. Desvantagens do Pronturio em Papel. Pesquisa realizada na Maternidade Escola Janurio Cicco, Natal/RN [4]. Automatizar esse processo de administrao de informaes de pacientes atravs do uso da tecnologia faz com que os hospitais possam gerir de uma forma melhor os seus recursos financeiros a fim de aperfeioar o atendimento do paciente e saber do que realmente eles necessitam. Alm de garantir a segurana contra perdas, extravios e vazamentos de informaes privadas.
acompanhamento clnico [5]. Principais caractersticas inerentes ao PEP: um sistema distribudo - se considerarmos que uma pessoa recebe que ao longo da vida atendimento em diversas instituies de sade e que cada uma
11
armazena parte de informaes clnicas do indivduo, ento se pode dizer que o PEP conceitualmente distribudo. um sistema heterogneo - como cada instituio de sade possui um sistema prprio de armazenamento das informaes clnicas e com suas prprias caractersticas (hardware, sistema operacional, etc.), ento se pode dizer que o PEP conceitualmente heterogneo. Unificar toda essa base de informao no uma tarefa nada fcil. Ultimamente, tm surgido tecnologias que podem auxiliar a comunicao dos diversos sistemas PEP como XML [6], que nada mais que um padro de representao de documentos. Outra tecnologia muito discutida e defendida para a padronizao dos sistemas de sade o CORBA [7]. O CORBA usado para criar um Middleware Mdico que nada mais que uma camada de software que disponibiliza as aplicaes distribudas em um pacote de servios bsicos para sistemas de sade, tais como identificao e cadastro de pacientes, acesso s imagens mdicas, etc. O principal usurio do PEP o profissional de sade. Muitos destes profissionais ainda no esto totalmente familiarizados com computadores ou no possuem total habilidade em digitao. Para garantir que o sistema seja utilizado da forma correta e plenamente adotado nos ambientes clnicos e hospitalares, deve-se ouvir as observaes feitas por eles. Essa interao crucial para a implantao de um pronturio eletrnico funcional e com boa usabilidade. 2.1.1 Vantagens e Desvantagens do Pronturio Eletrnico
So diversas as vantagens do uso do pronturio eletrnico em relao ao pronturio de papel, dentre elas se destaca: O acesso remoto e simultneo; Legibilidade; Segurana dos dados; Confidencialidade dos dados do paciente; Flexibilidade do layout dos dados; Integrao com outros sistemas de informao; 12
Construo de diversos tipos de relatrios; Atualizao dos dados. Continuando a anlise da pesquisa feita por Costa e Marques em 1999 [4], a agilidade no atendimento sem dvida a maior vantagem no uso do Pronturio Eletrnico, como explanado na Figura 2.
Figura 2. Vantagens do Pronturio Eletrnico. Pesquisa realizada na Maternidade Escola Janurio Cicco, Natal/RN [4].
Mas para garantir as vantagens citadas anteriormente, deve-se assegurar que: os dados devem ser armazenados indefinidamente, de forma estruturada, codificados num vocabulrio comum que permita o apoio pesquisa. Adicionalmente, deve existir um nmero suficiente de terminais de acesso ao sistema, distribudos em todos os locais de atendimento da instituio com todas as informaes sobre os pacientes disponveis.
13
Foram levantadas tambm por Costa e Marques [4] as possveis desvantagens no uso do Pronturio Eletrnico, como mostra a Figura 3, e o principal temor dos funcionrios a necessidade de capacitao para o uso do sistema. Ainda foi citada a possibilidade de o sistema vir a ficar temporariamente indisponvel o que poderia resultar na paralisao do atendimento ou na volta do uso do papel para o armazenamento dos dados dos pacientes.
Figura 3. Vantagens do Pronturio Eletrnico. Pesquisa realizada na Maternidade Escola Janurio Cicco, Natal/RN [4].
pacientes como prova para finalidade jurdica ou pericial. O Cdigo de tica Odontolgica [8], no captulo III, dos Deveres fundamentais, cita que:
14
Art. 5 Constituem deveres fundamentais dos profissionais e entidades de Odontologia: VIII. elaborar e manter atualizados os pronturios de pacientes, conservando-os em arquivos prprios. XIII. resguardar sempre a privacidade do paciente. XVI . garantir ao paciente ou seu responsvel legal, acesso a seu pronturio, sempre que for expressamente solicitado podendo conceder cpia do documento, mediante recibo de entrega. O cdigo de tica Mdica [9] cita que: vedado ao Mdico: Art. 69 - Deixar de elaborar pronturio mdico para cada paciente. vedado ao Mdico: Art. 70 - Negar ao paciente acesso a seu pronturio mdico, ficha clnica ou similar, bem como deixar de dar explicaes necessrias sua compreenso, salvo quando ocasionar riscos para o paciente ou para terceiros. vedado ao Mdico: Art. 71 - Deixar de fornecer laudo mdico ao paciente, quando do encaminhamento ou transferncia para fins de continuidade do tratamento, ou na alta, se solicitado. Por fim, o Art. 11 - O mdico deve manter sigilo quanto s informaes confidenciais de que tiver conhecimento no desempenho de suas funes. O Mesmo se aplica ao trabalho em empresas, exceto nos casos em que seu silncio prejudique ou ponha em risco a sade do trabalhador ou da comunidade. Isso reflete diretamente como devem ser geridos os pronturios mdicos. A segurana um dos fatores que mais pesa de forma positiva para a migrao dos pronturios de papeis para documentos digitais. Em 2002, atravs das Resolues 1.638 [10] e 1.639 [11] (CONSELHO FEDERAL DE MEDICINA, 2002), o PEP foi reconhecido como uma forma legalizada de armazenamento de informaes clnicas de pacientes. O Conselho Federal de Medicina (CFM) reconhece tambm a assinatura eletrnica como legtima para os documentos de internao, alta e prescrio. 15
Ultrassonografias, etc.(...)". A principal vantagem na adoo do padro DICOM a possibilidade de se trocar imagens mdicas e informaes entre equipamentos de diagnsticos geradores de imagens, computadores e hospitais.
Consultrio digital [16] [17] um aplicativo criado pela Sociedade Brasileira de Cardiologia que, apesar de no se propor a ser um Pronturio Eletrnico, ele atende a vrios requisitos no gerenciamento de informaes clnicas. Foi desenvolvido para 16
plataforma Microsoft
Windows e oferece suporte para o gerenciamento informaes sobre os pacientes, exames, imagens mdicas, convnios, medicamentos alm de oferecer uma agenda de controle de consultas. Como recurso extra, pode-se exportar dados para dispositivos mveis como Palmtops ou para Internet. Uma caracterstica importante desse sistema a boa usabilidade como se pode observar atravs da Figura 4, onde demonstra uma interface de usurio simples e com poucos cliques, consegue chegar a uma rea desejada do aplicativo.
Figura 4. Interface grfica de usurio do Consultrio digital da Sociedade Brasileira de Cardiologia [17]. Vantagens Fcil de instalar, no precisa ser um especialista em informtica para implantar e configurar o sistema; Possui uma boa usabilidade; Possui suporte ao usurio via site de Internet, Email e telefone; Todo ano lanada uma nova verso do aplicativo com melhorias;
17
gratuito para os associados Sociedade Brasileira de Cardiologia; Gera grfico a partir dos dados armazenados; Gera laudos personalizados. Desvantagens No atende a todos os requisitos de um Pronturio eletrnico, como por exemplo abordar a mais de uma rea de sade; Criado para funcionar em um computador pessoal, ele no possui uma interface de acesso direta pela internet, impossibilitando o acesso remoto 24 horas ao sistema; No h suporte ao padro DICOM; Fraco gerenciamento de imagens mdicas; Feito somente para a plataforma proprietria Microsoft Windows; No adaptvel a outras necessidades que no seja cardiologia; Licena proprietria, disponvel gratuitamente apenas aos associados Sociedade Brasileira de Cardiologia; Utiliza um sistema de banco de dados de padro proprietrio e no criptografado; No um sistema heterogneo e nem distribudo. 2.4.2 Aplicativo 2: PEP InCor
O instituto do Corao (InCor) [14], para suprir as necessidades de integrao de informaes hospitalares, implementou um conjunto de sistemas para gerenciar Imagens Mdicas e as informaes administrativas e clnica hospitalares. Esse pacote de sistemas foi denominado de Pronturio eletrnico de Pacientes (PEP). O InCor faz parte do Hospital das Clnicas da universidade de So Paulo. Alm dele, h mais cinco outras instituies que compe o Hospital das Clnicas. Cada unidade capaz de gerar uma quantidade expressiva de informaes que muitas vezes so dados que esto duplicados nas outras instituies. Ao integrar essas informaes, o
18
Hospital das Clnicas cortou o desperdcio, agilizou o processo de gerncia e possibilitou o acesso em rede e compartilhado das informaes. O sistema desenvolvido consiste de um pronturio eletrnico completo e funcional que pode gerenciar exames laboratoriais, imagens DICOM (estticas, dinmicas e 3D), laudos, documentos e mesmo sinais vitais de tempo real. Os aplicativos desenvolvidos esto disponveis sob licena gratuita e so de cdigofonte aberto. O PEP possui a caracterstica de ser independe de plataforma, faz uso de um sistema a parte de autenticao de cdigo-fonte livre baseado no OPENLDAP [18] chamado MACA [19], de um sistema de pronturio chamado MiniWebPEP, base de dados PostgreSQL [20] e base de imagens atravs do sistema PACS. A arquitetura do PEP InCor pode ser dividida em camadas onde a parte superior pertence ao sistema web que trabalha em conjunto com o servidor Web e o servidor de autenticao CORBA. A camada mais inferior onde est a toda a base de dados estruturada contendo o conjunto de pronturios, das imagens DICOM, documentos digitalizados e dos laudos XML. Na Figura 5 exibido uma tela do sistema de pronturio do InCor.
Vantagens Cdigo fonte aberto; Criado para ser heterogneo e distribudo. Criado para ser acessado remotamente atravs de um navegador de Internet e assim estar disponvel 24 horas; J testado com sucesso pelo Hospital das Clnicas de So Paulo; Gratuito e disponvel na Internet; Alto nvel de segurana, o projeto foi implementado seguindo padres de segurana. Desvantagens Projeto sem novas atualizaes; Fraco suporte oferecido. H um site de suporte com informaes desatualizadas e Email para contato; Difcil de instalar. necessrio um especialista em informtica para implantar e configurar o sistema em um servidor. 2.4.3 Aplicativo 3: Dental Office
Dental Office [22] um aplicativo proprietrio, pago, que est no mercado desde 1993 voltado exclusivamente para profissionais de odontologia. Ele possui uma seo de administrao clnica e de pronturios de pacientes. Atualmente, h duas verses deste aplicativo: uma para funcionar no desktop e outra disponvel como um sistema web de gerncia de consultrios. Na Figura 6, temos uma exemplificao da interface de usurio do sistema. Vantagens Possui suporte via o site de Internet, Email e telefone; Projeto sempre em desenvolvimento e atualizao.
20
H duas verses, uma para computadores pessoais e outra que um servio online de pronturio disponibilizado no prprio servidor do fabricante; Possui uma boa usabilidade; A verso para computadores pessoais possui uma fcil instalao e configurao sem necessitar de um profissional especializado em informtica;
Figura 6. Interface de usurio do Pronturio eletrnico do Dental Office [22]. Desvantagens um sistema que atende exclusivamente necessidade da rea odontolgica; 21
Licena proprietria, o sistema tem preo nico para a verso para computadores pessoais e uma mensalidade para a verso online; A verso para computador pessoal feita somente para a plataforma proprietria Microsoft Windows; No adaptvel possveis s novas necessidades do usurio; A verso para computador pessoal no possui as caractersticas de ser heterogneo e nem distribudo.
2.5 concluso
O gerenciamento de dados clnicos essencial para uma boa administrao hospitalar e um bom acompanhamento do quadro clnico dos pacientes. O uso da tecnologia no armazenamento e manipulao dos dados traz inmeras vantagens quanto segurana, agilidade e qualidade no atendimento de pacientes. Grandes instituies, como o InCor (Instituto de Corao do Hospital das Clnicas), vivenciou na prtica as melhorias alcanadas pela adoo do PEP como padro de pronturios mdicos. A tendncia que mais e mais hospitais e clnicas sigam a mesma trajetria de sucesso do InCor e de muitas instituies que j usam os pronturios eletrnicos. A Tabela 1 mostra um resumo comparativo entre as trs solues estudadas levando-se em conta os critrios mais importantes em um sistema de pronturios eletrnicos. Tabela 1. Comparativo entre os aplicativos analisados. Critrios Suporte ao cliente Aplicativo 1 Aplicativo 2 Aplicativo 3 Bom. Fraco. Bom. Boa. Boa. Difcil. Bom. Fraco. Fraca. Boa. Fcil. 22
Suporte a imagens Mdicas Fraco. Portabilidade Usabilidade Manuteno Fraca. Boa. Fcil.
Para que um sistema de gesto de dados clnicos seja considerado realmente um sistema de gerenciamento de pronturio eletrnico do paciente, deve-se possuir basicamente trs caractersticas: ser distribudo, heterogneo e seguro. Atravs do comparativo realizado entre os trs aplicativos na Tabela 1, pode-se perceber que somente a soluo apresentada pelo InCor de fato um pronturio eletrnico do paciente.
23
Para o projeto do sistema PEPNET, foi adotada uma combinao da metodologia gil XP (extreme programming) e a metodologia RUP (Rational Unified Process), mais especificamente, no uso da linguagem UML para descrio de casos de uso. Dentre as tcnicas adotadas para o processo de desenvolvimento, deve-se destacar: Participao do cliente atravs de entrevistas iniciais e reunies peridicas; Elaborao dos artefatos do XP (tarefas visuais, iteraes, quadro de histrias, etc.); Descrio de funcionalidades por meio de casos de uso. Importante ressaltar que essa forma de processo combinando metodologias foi escolhida porque estava de acordo com a realidade do projeto PEPNET em que a equipe composta apenas de uma pessoa que responsvel por todas as fases do projeto (planejamento, anlise, implementao e testes). tambm uma tendncia hoje em dia em selecionar quais tcnicas so as mais adequadas das diversas
24
metodologias existentes, para uma gesto eficiente de projetos com curto prazo de tempo para entrega. 3.1.2 Anlise de Requisitos
A idia de elaborao de um sistema de pronturios eletrnicos do paciente surgiu da necessidade da Clnica So Mateus em implantar inicialmente um sistema de consultrio digital unindo a gesto de pacientes das reas de cardiologia e odontologia dos agentes de sade dessa instituio. Notou-se que os profissionais de sade da clnica precisavam organizar melhor a gesto dos pronturios dos pacientes. O levantamento de requisitos [5] foi feito atravs de reunies com um mdico e um dentista, na obteno de modelos de pronturios de papeis (que esto disponveis no apndice A) e na anlise apresentada no captulo 2. A Tabela 2 mostra o perodo e as etapas da atividade de anlise de requisitos. Foi necessrio um ms para que todos os requisitos fossem levantados e ento seguir para a fase de criao dos casos de uso. Tabela 2. Perodo das atividades da anlise de requisitos Atividade Primeiras reunies com os mdicos e dentistas da clnica. Criao do primeiro prottipo em papel a ser discutido com os profissionais de sade. Reviso do primeiro prottipo e gerao do 2 prottipo em papel. Julho/2009 Ms Julho/2009 Julho/2009
Quanto aos requisitos no-funcionais, foram levantados: Usabilidade, o sistema ter como usurios profissionais de sade que no possuem total domnio quanto aos assuntos especficos da rea de informtica; Distribuio, o acesso do sistema deve ser realizado pela Internet;
25
Segurana, o acesso deve acontecer apenas atravs de funcionrios cadastrados no sistema. Os casos de uso [5] (que esto disponveis no apndice B) especificam os comportamentos de um sistema ou parte dele e consiste da descrio conjunto de seqncia de aes e variantes realizadas pelo sistema para produzir um resultado observvel do valor de um ator. Os casos de uso foram definidos a partir das seguintes funcionalidades: Validao do usurio do sistema atravs de um nome de usurio e senha; Gerenciar administrador, relacionado com cadastro, consulta e remoo de administrador no sistema; Gerenciar funcionrios, relacionado com cadastro, consulta e remoo de funcionrios no sistema; Gerenciar agenda, relacionado a cadastro, pesquisa e remoo de consultas de pacientes; Gerenciar pacientes, relacionado com cadastro, consulta e remoo de pacientes no sistema; Gerenciar anamnese dos pacientes, relacionado com edio e atualizao do documento de anamnese de cada paciente cadastrado no sistema; Gerenciar odontograma dos pacientes, relacionado com edio e atualizao do documento de odontograma de cada paciente de odontologia cadastrado no sistema; Gerenciar medicamentos, relacionado com cadastro, consulta e remoo de informao de medicamentos no sistema; Gerenciar laboratrios, relacionado com cadastro, consulta e remoo de informao de laboratrios no sistema; Consulta ao CID (Classificao Internacional de Doenas e Problemas Relacionado Sade); Visualizar e gerar relatrios a partir de dados dos pacientes no sistema;
26
Gerenciar o banco de dados, relacionado a realizar cpia de segurana e restaurao do banco de dados do sistema. No apndice C encontram-se os diagramas de caso de uso do sistema PEPNET. 3.1.3 Anlise de Risco
Foram levantados os riscos [5] do desenvolvimento do sistema PEPNET e as devidas aes de preveno para se evitar problemas graves de gerncia ao longo do ciclo de vida do projeto. Os riscos foram divididos de acordo com o escopo do problema, sob os aspectos de segurana, capacitao em relao ao usurio e gesto, anlise e implementao em relao ao processo de desenvolvimento do projeto. As anlises esto apresentadas na Tabela 3 e na Tabela 4. Tabela 3. Anlise de Riscos para o Escopo Processos Anlise de Riscos para o Escopo Humano Tipo Segurana Descrio Ao Preventiva o cliente a
inadequada
compartilhando
o que prejudica a confidencialidade ressaltando a importncia das informaes dos pacientes. do cdigo de tica mdico e odontolgico. Capacitao A falta de capacitao dos usurios Orientar o cliente a
pode fazer com que o sistema no estabelecer uma poltica seja utilizado da forma adequada ou capacitao at abandonado em troca do uso de funcionrios papel na gerncia dos pronturios. que dos iro
utilizar o sistema.
27
Tabela 4. Anlise de Riscos para o Escopo Geral Anlise de Riscos para o Escopo Geral Tipo Gesto Descrio Ao Preventiva
A pouca experincia em gesto de Estudo aprofundado dos projetos pode ocasionar em conceitos de gerncia de
decises erradas durante o ciclo de projetos e metodologias vida do projeto. Anlise de desenvolvimento.
Anlise mal feita pode acarretar no Estudo atravs de livros e desvio do objetivo final do projeto. artigos sobre elaborao de anlises de requisitos.
Implementao
O aprendizado da tecnologia usada Estudo atravs de livros e para o desenvolvimento do projeto artigos sobre as
ocorre na fase de implementao o tecnologias utilizadas. que pode dificultar a entrega do projeto no prazo estabelecido.
3.1.4
Anlise e Projeto
MVC (Model-View-Controller) [25] [23] uma arquitetura (padro ou modelo) popular para desenho de aplicaes Web complexas e modulares. O padro isola a lgica de negcio da entrada e da apresentao e permite o desenvolvimento, teste e manuteno das partes de forma independente. Na camada de modelo (model), esto as classes que modelam os dados e a lgica de negcio. Em geral, podem ser representadas pelas tecnologias beans e EJBs. A camada de controle (controller) normalmente utilizada para filtro, redirecionamento de pginas e validaes de dados. Normalmente, podem ser implementadas atravs das tecnologias servlets, beans ou EJBs. Por fim, na camada de viso (view) esto as pginas estticas e dinmicas responsveis por exibir informaes na tela aos usurios. Testes de unidade [23] so muito importantes para o desenvolvimento de projeto pois garantem a validao lgica das classes e das regras de negcio. O framework Struts facilita o teste de classes de ao em um ambiente isolado. Uma 28
chave para facilitar a execuo de testes assegurar que qualquer objeto com o qual a ao interaja seja injetado na classe atravs de um setter. No apndice D encontra-se disponvel algumas classes de testes utilizadas no sistema PEPNET. 3.1.5 Implementao
Nesta seo sero apresentadas as tecnologias utilizadas no desenvolvimento do sistema PEPNET: o gerenciador de projetos Maven2, os frameworks Struts, Hibernate, Spring e SiteMesh, a biblioteca Acegi, JSP. Maven2 Maven2 [23] [26] um gerenciador de projetos e consiste de uma ferramenta de linha de comando usada para construir, testar, emitir relatrio e empacotar projetos. Maven prov facilidades para que auxiliem o desenvolvimento de projetos, como: Estrutura padronizada de diretrio: cada projeto que faz uso do Maven ter a mesma estrutura de diretrio; Arquitetura plug-in: cada funo de Maven efetuada por um plug-in, seja compilar ou utilizar o site. Quando o projeto testado ou utilizado pela primeira vez, o Maven gerencia o download dos plug-ins necessrios para a execuo do projeto e os armazena em um repositrio comum; Gerenciamento de dependncia: quando dependncias forem descritas no arquivo de configurao Maven, elas sero acessadas de um repositrio local ou baixadas do repositrio local durante o processo de construo; Gerenciamento de escopo: o pacote final de distribuio contm apenas os elementos exigidos. Os cdigos de teste e as dependncias que no so necessrios ao pacote final so deixados de fora; Arqutipos: o plug-in de arqutipos permite que os desenvolvedores criem um template default de implementao para uma categoria de projeto. Este ento usado para criar um novo projeto rapidamente sem a necessidade de criar a estrutura comum de diretrio, criar os arquivos de configurao e codificar as classes default e testes a partir do zero.
29
Framework Apache Struts Apache Struts [23] [27] um framework de aplicativos web para o desenvolvimento de programas em Java para Web. Esse framework faz uso estende da API do Java Servlets para estimular o uso por parte dos desenvolvedores da arquitetura ModelView-Controller (MVC). Framework Hibernate Hibernate [23] [28] um framework usado para mapear objetos-relacionais escritos em Java. Ele facilita o mapeamento de atributos entre uma base de dados relacionais e o modelo objeto de uma aplicao. Tem por objetivo diminuir a complexidade da interface de comunicao entre o aplicativo Java e o banco de dados relacional atravs da transformao das classes em Java para tabelas de dados. O Hibernate cria os cdigos SQL e livra os desenvolvedores do trabalho manual da converso dos dados para o padro do banco de dados. A grande vantagem a portabilidade do aplicativo desenvolvido porque fica independente de um banco de dados especfico. Framework Spring Spring [23] [29] um framework de cdigo-fonte livre que prov diversas funcionalidades usadas para desenvolver aplicativos Java. Com o Spring, pode-se configurar os componentes da aplicao e gerenciar o tempo de vida dos objetos. O Spring fornece ferramentas para se trabalhar com SGBD relacionais usando o JDBC e ferramentas de mapeamento de objetos relacionais. Abaixo, algumas das funcionalidades do Spring: O mdulo Spring Core possui as principais funcionalidades do Spring, dentre elas, uma implementao responsvel em remover a programao de Singletons e permitindo o baixo acoplamento entre a configurao e a especificao de dependncias, de sua lgica de programao; O mdulo Spring DAO fornece uma camada de abstrao para JDBC, eliminando grande parte da codificao necessria para interagir com um banco de dados. O mdulo ORM fornece uma integrao do Spring com outros frameworks para persistncia de objetos como Hibernate. 30
O mdulo AOP fornece uma implementao de orientao a aspectos; O mdulo Spring Web fornece funcionalidades especficas para o projeto Web como carregamento de arquivos e suporte para utilizao de inverso de controle; O mdulo Spring MVC fornece uma implementao de framework Web, semelhante ao Struts. O Spring possui uma arquitetura baseada em interfaces e POJOs (Plain Old Java Objects), oferecendo aos POJOs caractersticas como mecanismos de segurana e controle de transaes. Tambm facilita testes unitrios e surge como uma alternativa complexidade existente no uso de EJBs. Framework Acegi O framework Acegi [23] [30] (tambm conhecido como Spring Security) fornece ferramentas de segurana, como autenticao segura atravs de criptografia da senha e lista de controle de acesso, para ser usado em conjunto com o framework Spring. Esta biblioteca tem por funo evitar que o desenvolvedor necessite elaborar e implementar toda a infra-estrutura de segurana do sistema web. Foi criado originalmente para a comunidade Spring e faz uso intenso das bibliotecas do framework Spring em sua implementao. A integrao com o Acegi fornece um controle de alto nvel sobre a configurao e autorizao de usurios que usam o aplicativo web. Usurios podem ser criados pela lgica de seu aplicativo e os mesmos servios de negcio podem ser usados para verificar usurios para autenticao, o que evita a aplicao de qualquer servlet externo. Framework SiteMesh SiteMesh [23] [31] um framework de integrao e de layout de pginas de Internet e usado para auxiliar a criao de grandes sites que possui muitas pginas e necessitam de consistncia na aparncia. O SiteMesh intercepta requisies para qualquer pgina Web, esttica ou dinmica, faz um parsing no contedo e gera a pgina final.
31
Java Server Pages e o Servidor Apache Tomcat JSP [25] [32] (Java Server Pages) uma tecnologia para desenvolvimento de pginas de Internet de contedo dinmico. Por ser baseada em Java, possui a caracterstica de ser independente da plataforma. Atualmente, h dois famosos servidores Java que suportam a tecnologia JSP: o Apache Tomcat [33] (padro em hospedagem de pginas JSP) e o Sun Glassfish. Foi adotado para o projeto PEPNET o servidor Tomcat por fornecer uma compatibilidade maior com o framework Struts que tambm pertence empresa Apache e por ser o padro na Web.
Gerenciamento de Medicamentos usurios criao, atualizao de perfis e remoo de medicamentos;. 3.2.1 Interface Grfica
A construo da interface grfica foi feita atravs do uso de templates, do framework SiteMesh, de HTML e JSP. Para cada funcionalidade descrita na seo 3.1.2,Erro! Fonte de referncia no encontrada. h uma tela do sistema correspondente. Abaixo h uma descrio de algumas telas do sistema: Anlise da Tela de Efetuar Validao do Usurio A tela exibida na Figura 7 Tela de Validao dos usurios do sistema.corresponde validao do usurio e realizada fornecendo um email vlido no campo Nome e uma senha de seis a doze dgitos no campo senha. Todas as demais telas to sistema (com exceo da tela inicial) dependem da validao do usurio para serem acessveis. Anlise da Tela de Editar Perfil do Usurio A tela exibida na Figura 8 corresponde funcionalidade de atualizao dos dados do usurio. H um campo para o nome, senha, email e retrato. Anlise da Tela Principal do Sistema A tela da Figura 9 corresponde pgina principal e inicial do sistema. Nota-se que abaixo do menu horizontal da tela h um espao com imagens e textos, este contudo inserido apenas para exemplificar a possibilidade futura de personalizao do espao do sistema com notcias RSS, banners e assim por diante. Anlise da Tela de Gerenciamento dos Pacientes A tela conforme a Figura 10 responsvel por oferecer as quatro funcionalidades bsicas no gerenciamento de um paciente: cadastrar, pesquisar, editar e excluir. Anlise da Tela de Consulta do CID O CID composto por mais de 12 mil cdigo de doenas. A tela da Figura 11 mostra justamente a funcionalidade de pesquisa do cdigo do CID alm de listar as doenas associada a cada cdigo.
33
34
35
O sistema PEPNET um sistema que de fato pode ser chamado de pronturio eletrnico do paciente porque possui caractersticas de ser heterogneo, distribudo e seguro. O sistema heterogneo porque aborda mais de uma rea de sade, cardiologia e odontologia; distribudo porque o seu acesso distribudo, o usurio pode acessar o aplicativo de onde estiver bastando possuir um ponto de acesso a Internet; e seguro porque a tecnologia utilizada para construo do aplicativo, o framework Spring Security, garante essa qualidade ao gerenciar a validao de usurio e proteger contra tcnicas comuns de ataques de hackers. Essas trs caractersticas apresentadas so justamente as vantagens do sistema PEPNET. Alm das vantagens citadas anteriormente, o sistema PEPNET possui as seguintes qualidade: gratuito; De fcil instalao; Possui uma boa usabilidade; portvel a diversos sistemas operacionais. 36
A desvantagem do sistema que ele ainda no possui todas as funcionalidades implementadas e desejadas em um aplicativo de gesto clnicas, como: No h suporte a imagens mdicas; No h suporte ao cliente; No h um gerenciador de relatrios; No realiza backup dos dados armazenados; No possui um gerenciador de agenda. 3.2.3 Futuro do PEPNET
At o final deste trabalho, a construo do sistema PEPNET no ficou totalmente concluda o que impossibilitou de ser implantada na clnica So Mateus. No h inteno de vender o sistema para clnica, a idia que o PEPNET se torne uma soluo gratuita e que seja adotada alguma licena de software livre para o aplicativo. PEPNET vai ser tornar produto que estar disponvel para download gratuitamente na Internet sob o endereo www.pepnet.com.br que j foi registrado com sucesso. As funcionalidades que no foram desenvolvidas at o momento da finalizao deste trabalho foram deixadas para trabalhos futuros.
37
38
39
Bibliografia
[1] TRIANA, A. A semiologia biomdica e seus limites: desvendando o caminho entre o sutil e o evidente. UNICAMP. Campinas. 1999. [2] MARTINS, S. Relatrio tcnico sobre pronturio do paciente para odontologia e medicina. Universidade de Pernambuco. Recife, p. 27. 2009. [3] OSLER, W. The Evolution Of Modern Medicine: A Series Of Lectures Delivered At Yale University In April 1913. New York: Kaplan, 2009. p. 15-18,32. [4] COSTA, C.; MARQUES, A. Implementao de um Pronturio Eletrnico do Paciente na Maternidade Escola Janurio Cicco: Um Primeiro Passo, Rio de Janeiro, 1999. [5] COSTA, C. G. A. Desenvolvimento e Avaliao Tecnolgica de um Sistema de Pronturio Eletrnico do Paciente, Baseado nos Paradigmas da World Wide Web e da Engenharia de Software, Universidade Estadual de Campinas, Campinas, 2001. [6] W3C. Extensible Markup Language (XML). Disponivel em:
<http://www.w3.org/XML/>. Acesso em: 18 dez. 2009. [7] OMG. Welcome To The OMG's CORBA Website. Disponivel em:
<http://www.corba.org/>. Acesso em: 18 dez. 2009. [8] BRASIL. Resoluo CFO-42/2003, Rio de Janeiro, 20 Maio 2003. [9] BRASIL. Resoluo CFM n 1.246/88, Rio de Janeiro, p. 23, 08 Setembro 2009. [10] BRASIL. Resoluo CFM n 1.638/2002. Disponivel em:
<http://www.portalmedico.org.br/resolucoes/cfm/2002/1638_2002.htm>. Acesso em: 18 dez. 2009. [11] BRASIL. Resoluo CFM n 1.639/2002. Disponivel em:
40
[12] FIGUEREDO, J. C. B. Sistema Compacto para Armazenamento e Distribuio de Imagens Mdicas em Ambientes Clnico-Hospitalares, So Paulo, 2004. [13] URTIGA, K. S. Desenho de Interface para Sistema de Armazenamento e Distribuio de Imagens Mdicas em Ambientes Clnico-Hospitalares, So Paulo, 2004. [14] FURUIE, S. S.; GUTIERREZ, M. A. Pronturio Eletrnico de Pacientes: integrando informaes clnicas e imagens mdicas. Revista brasileira de engenharia biomdica, So Paulo, v. 19, p. 125 - 137, 01 Dezembro 2003. ISSN 1517-3151. [15] BABYLON. DICOM | Portuguese | Dictionary & Translation by Babylon. Disponivel em: <http://www.babylon.com/definition/DICOM/Portuguese>. Acesso em: 14 Setembro 2009. [16] OLIVEIRA, C. C. Consultrio Digital Guia do Usurio. 2 Edio. ed. [S.l.]: Sociedade Brasileira de Cardiologia, 2009. [17] SBC. Sociedade Brasileira de Cardiologia - Consultrio Digital. Disponivel em: <http://consultorio.cardiol.br/>. Acesso em: 14 Setembro 2009. [18] OPENLDAP FOUNDATION. OpenLDAP - Main Page. Disponivel em: <http://www.openldap.org/>. Acesso em: 14 Setembro 2009. [19] MOTTA, G. H. M. B.; FURUIE, S. S. MACA: Uma Ferramenta de Autorizao e Controle de Acesso para o Pronturio Eletrnico de Pacientes, Natal, 2002. [20] POSTGRESQL. PostgreSQL: The world's most advanced open source database. Disponivel em: <http://www.postgresql.org/>. Acesso em: 14 Setembro 2009. [21] ALMEIDA, C. A. P. PRONTURIO ODONTOLGICO Uma orientao para o cumprimento da exigncia contida no inciso VIII do art. 5 do Cdigo de tica Odontolgica, Rio de Janeiro, 2002. [22] RH! Dental Office - Software Odontolgico /Software para Odontologia. Disponivel em: <http://www.dentaloffice.com.br/introducao.html>. Acesso em: 14 set. 2009. 41
[23] ROUGHLEY, I. Practical Apache Struts 2 Web 2.0 Projects. 1 Edio. ed. Rio de Janeiro: Cincia Moderna, 2008. [24] BECK, K. Manifesto for Agile Software Development. Disponivel em: <http://agilemanifesto.org/>. Acesso em: 14 set. 2009. [25] FRANKLINT, K. Java EE 5 - Guia Prtico Scriplets, Servlets, JavaBeans. 2 Edio. ed. So Paulo: rica, 2007. [26] APACHE. Maven Welcome to Apache Maven. Disponivel em:
<http://maven.apache.org/>. Acesso em: 14 set. 2009. [27] APACHE. Apache Struts Welcome. Disponivel em:
<http://struts.apache.org/>. Acesso em: 14 set. 2009. [28] RED HAT. hibernate.org Hibernate. Disponivel em:
<https://www.hibernate.org/>. Acesso em: 14 set. 2009. [29] SPRINGSOURCE. SpringSource.org. Disponivel em:
<http://www.springsource.org/>. Acesso em: 14 set. 2009. [30] SPRINGSOURCE. Spring Security, 14 set. 2009. Disponivel em:
<http://www.opensymphony.com/sitemesh/>. Acesso em: 14 set. 2009. [32] SUN MICROSYSTEMS. JavaServer Pages Technology. Disponivel em: <http://java.sun.com/products/jsp/>. Acesso em: 14 set. 2009. [33] APACHE. Apache Tomcat, 14 set. 2009. Disponivel em:
<http://tomcat.apache.org/>. [34] BOOCH, G.; RUMBAUGH, J.; JACOBSON, I. UML Guia Do Usurio. 2 Edio. ed. Rio de Janeiro: Campus, 2005.
42
Descrio: classe que contm as informaes cadastrais de um usurio no sistema. Tabela 5. Descrio da Classe User
Atributos Email Senha Nome sobrenome Retrato Descrio Login de acesso do sistema. Senha de acesso ao sistema. Nome do usurio. Sobrenome do usurio. Retrato do usurio. Tipo string string string string string
1.2
Classe AcegiInterceptor
Descrio: classe que intercepta uma ao do sistema e verifica se h algum usurio validado no momento. 1.3 Classe BaseUserAction
Descrio: classe que cuida da ao de criar um objeto Usurio com todas as configuraes passadas pela tela de registrar ou atualizar perfil de usurio. 1.4 Classe UserAction
43
1.5
Classe UpdateUserAction
Descrio: classe responsvel por passar o objeto usurio em questo para a classe UserServiceImpl. 1.6 Classe UserServiceImpl
Descrio: classe responsvel por gravar o objeto usurio em questo no banco de dados utilizando o framework Hibernate. Tabela 6. Descrio da Classe UserServiceImpl
Atributos emf Descrio instncia utilizada pelo aplicativo para obter a entidade de gerenciamento de aplicativo para a camada de dados. Tipo EntityManagerFactory
2 2.1
Descrio: classe que contm as informaes de um registro CID no sistema. Tabela 7. Descrio da Classe Cid
Atributos cdigo comentrio Descrio Cdigo de acesso ao CID. Descrio da doena referente ao cdigo do CID. Tipo string string
44
2.2
Classe BaseCidAction
Descrio: classe que cuida da ao de criar um objeto Cid com todas as configuraes passados pela tela de pesquisa de CID. Tabela 8. Descrio da Classe BaseCidAction
Atributos cid service resultado Descrio Objeto CID. Objeto da classe CidService. Lista de objetos Cid Tipo Cid CidService List<Cid>
2.3
Classe CidAction
Descrio: classe responsvel por chamar o mtodo de pesquisa passando como argumento o cdigo do objeto CID criado pelo BaseCidAction a ser pesquisado. 2.5 Classe ListarCidAction
Descrio: classe responsvel por buscar o objeto cid em questo no banco de dados utilizando o framework Hibernate. Tabela 9. Descrio da Classe CidserviceImpl
Atributos emf Descrio instncia utilizada pelo aplicativo para obter a entidade de gerenciamento de aplicativo para a camada de dados. Tipo EntityManagerFactory
45
46
O usurio insere um email ou senha invlidos. Uma mensagem de erro exibida. 2.4 2.5 Pr-condies: no h. Ps-condies: o usurio atualiza as informaes do perfil no sistema ou uma mensagem de erro exibida. 3 3.1 3.2 Registrar Usurio Descrio: cadastra um usurio no sistema. Fluxo Bsico de Eventos: Na pgina principal do sistema, o usurio validado clica em registrar usurio. O usurio cadastra um novo usurio informando os campos de nome, sobrenome, email, senha e foto. Pressiona o boto de cadastrar. O usurio passa para pgina principal do sistema. 3.3 Fluxo Alternativo de Eventos: O usurio no est mais no determinado momento validado pelo sistema O usurio insere um e-mail ou senha invlidos. Uma mensagem de erro exibida. 3.4 Pr-condies: O usurio que ir cadastrar o segundo usurio precisa estar validado no sistema. 3.5 Ps-condies: O usurio cadastrar o usurio no sistema ou uma mensagem de erro exibida. 4 4.1 4.2 Registrar Paciente Descrio: cadastra um paciente no sistema. Fluxo Bsico de Eventos: Na pgina principal do sistema, o usurio validado clica em paciente no menu horizontal do sistema. 47
O usurio cadastra um novo paciente. Pressiona o boto de cadastrar. O usurio passa para pgina de gerenciar paciente do sistema. 4.3 Fluxo Alternativo de Eventos: O usurio no est mais no determinado momento validado pelo sistema O usurio insere um dados invlidos na ficha de cadastro do paciente. Uma mensagem de erro exibida. 4.4 Pr-condies: O usurio que ir cadastrar um paciente precisa estar validado no sistema. 4.5 Ps-condies: O usurio cadastrar um paciente no sistema ou uma mensagem de erro exibida. 5 5.1 Consultar CID Descrio: Pesquisa o cdigo e a informao correlata de uma doena no CID do sistema. 5.2 Fluxo Bsico de Eventos: Na pgina principal do sistema, o usurio validado clica em CID no menu horizontal do sistema. O usurio insere um cdigo a ser pesquisado. Pressiona o boto de pesquisar. A descrio e cdigo da doena pesquisada so exibidas na tela. 5.3 Fluxo Alternativo de Eventos: O usurio no est mais no determinado momento validado pelo sistema O usurio insere um dados invlidos na ficha de cadastro do paciente. Uma mensagem de erro exibida. O usurio insere uma doena a ser pesquisada. Pressiona o boto de pesquisar. A descrio e cdigo da doena pesquisada so exibidas na tela. 48
5.4
5.5
49
Apndice C Diagramas
1. Diagramas de Casos de Uso [34]
Figura 13. Diagrama dos Casos de Uso da Gerncia da Agenda para Odontologia 50
Figura 14. Diagrama dos Casos de Uso da Gerncia de Pacientes para Odontologia 51
Figura 15. Diagrama dos Casos de Uso da Gerncia de Pacientes para Mdico 52
53
Apndice D Testes
1. Teste de persistncia
package br.com.pepnet.s2.domain; import import import import import junit.framework.TestCase; javax.persistence.EntityTransaction; javax.persistence.EntityManager; javax.persistence.EntityManagerFactory; javax.persistence.Persistence;
public class PersistenceBaseClass extends TestCase { private EntityManagerFactory emf; protected EntityManager entityMgr; protected EntityTransaction tx; public PersistenceBaseClass() { super(); emf = Persistence.createEntityManagerFactory("slunart_s2pepnet"); } protected void setUp() throws Exception { super.setUp(); entityMgr = emf.createEntityManager(); tx = entityMgr.getTransaction(); tx.begin(); } protected void tearDown() throws Exception { super.tearDown(); tx.rollback(); } }
54
public class AcegiInterceptorTestCase extends TestCase { public void testIntercept() throws Exception { TestAction action = new TestAction(); AcegiInterceptor interceptor = new AcegiInterceptor(); MockActionInvocation ai = new MockActionInvocation(); ai.setAction(action); SecurityContextImpl sc = new SecurityContextImpl(); Authentication auth = new TestingAuthenticationToken( new PermissionedUser(new User()),"password",new GrantedAuthority[] {} ); sc.setAuthentication( auth ); SecurityContextHolder.setContext(sc); assertNull(action.getUser()); interceptor.intercept(ai); assertNotNull(action.getUser()); assertEquals(auth.getPrincipal(),action.getUser()); } class TestAction { private PermissionedUser user; public PermissionedUser getUser() { return user; } @AcegiPrincipal public void setUser(PermissionedUser user) { this.user = user; } public String execute() { return Action.SUCCESS; } } }
55