Você está na página 1de 81

ETEC MACHADO DE ASSIS

Aline Mesquita de Morais Andr Luiz Vargas Galdino de Moura Joo Pedro Santos Oliveira

SIRONAMED

CAAPAVA SP 2011

ETEC MACHADO DE ASSIS

Aline Mesquita de Morais Andr Luiz Vargas Galdino de Moura Joo Pedro Santos Oliveira

SIRONAMED

TCC apresentado na ETEC Machado de Assis, em Caapava para a obteno do ttulo de Tcnico em Informtica. Orientador: Prof. Ferreira Samproni Carlos Antonio

Coordenadora do curso: Prof. Ligia Claudia Ramos dos Santos

CAAPAVA SP 2011 2

Aline Mesquita de Morais Andr Luiz Vargas Galdino de Moura Joo Pedro Santos Oliveira

SIRONAMED

TCC apresentado na ETEC Machado de Assis, em Caapava para a obteno do ttulo de Tcnico em Informtica. Orientador: Prof. Ferreira Samproni Carlos Antonio

Coordenadora do curso: Prof. Ligia Claudia Ramos dos Santos

Aprovada em ___/___/_____

BANCA EXAMINADORA ____________________________

Prof. Ligia Claudia Ramos dos Santos (Coordenadora do Curso) ____________________________

Prof. Carlos Antonio Ferreira Samproni ____________________________ 3

Dedicamos este projeto a todos os que contriburam diretamente ou indiretamente na elaborao do projeto, em especial aos nossos professores que nos ensinaram e nossas famlias que nos do fora nessa jornada, e a todos aqueles que acreditaram em nosso potencial. 4

AGRADECIMENTOS

Agradecemos a Doutora Regina por ceder as informaes necessrias para a realizao deste projeto. Agradecemos tambm todos os professores que estiveram sempre a disposio para nos auxiliar.

"No deixe que os seus medos tomem o lugar dos seus sonhos (Walt Disney) 6

Lista de Ilustraes

Sequecia de Compilao do JAVA .............................................................21 IDE NetBeans 01 ...................................................................................23 IDE NetBeans 01 ...................................................................................23 Diagrama Entidade Relacionamento .........................................................32 Modelo Lgico do Banco de Dados ...........................................................37 Diagrama de Caso de Uso .......................................................................44 Diagramas Sequncia.............................................................................43 Diagrama de Classes ..............................................................................47 Form Menu ...........................................................................................49 Form Paciente .......................................................................................50 Form Receita ........................................................................................57 Form Atestado ......................................................................................61 Form Responsveis ................................................................................64 Form Endereos ....................................................................................67 Form Mdicos ........................................................................................70 Form Planos de Sade ............................................................................71 Form Consultas .....................................................................................74

Lista de Tabelas

Tabela Paciente_Endereco .......................................................................33 Tabela Responsvel ................................................................................33 Tabela Consulta .....................................................................................34 Tabela Mdico .......................................................................................34 Tabela Receita .......................................................................................34 Tabela Atestado .....................................................................................35 Tabela Plano de Sade ...........................................................................35 Tabela Paciente .....................................................................................35 Cronograma de Atividades ......................................................................79

Sumrio

1. 2.

RESUMO ................................................................................................................................ 12 OBJETIVO ............................................................................................................................. 13

2.1 OBJETIVO GERAL .............................................................................13 2.2 OBJETIVOS ESPECFICOS..................................................................13 3. 4. INTRODUO ...................................................................................................................... 14 FUNDAMENTAO TERICA .......................................................................................... 15

4.1 Banco de Dados ...............................................................................15 4.2 Banco de dados Relacional ................................................................15 4.3 A linguagem de Consulta SQL. ...........................................................17 4.4 PostGreSQL .....................................................................................18 4.5 PostGreSQL comparado ao MySQL ......................................................20 4.6 Java ...............................................................................................20 4.7 Pontos positivos e negativos da linguagem Java ...................................22 4.8 NetBens(IDE) ..................................................................................23 4.8 Delphi ............................................................................................25 5. ORIGEM DO NOME SironaMed ...................................................................................... 28

5.1 Sirona ............................................................................................28 6. 7. 8. CONCLUSO ........................................................................................................................ 29 BIBLIOGRAFIA .................................................................................................................... 30 APNDICE ............................................................................................................................. 32

8.1 Entrevista .......................................................................................32 9

8.2 Diagrama Entidade Relacionamento ....................................................34 8.3 Dicionrio de Dados .........................................................................35 8.3.1 Tabela Paciente_Endereco ..........................................................35 8.3.2 Tabela Responsvel...................................................................35 8.3.3 Tabela Consulta ........................................................................36 8.3.4 Tabela Mdico ..........................................................................36 8.3.5 Tabela Receita ..........................................................................36 8.3.6 Tabela Atestado ........................................................................37 8.3.7 Tabela Plano de Sade ..............................................................37 8.3.8 Tabela Paciente ........................................................................37 8.4 Modelo Lgico do Banco de Dados ......................................................39 8.5 Cdigos de Criao do Banco de Dados ...............................................40 8.6 Diagrama de Caso de Uso .................................................................44 8.7 Diagramas Sequncia .......................................................................45 8.8 Diagrama de Classes ........................................................................49 8.9 Layout e Cdigos de Criao ..............................................................50 8.9.1 Conexo com o Banco ...............................................................50 8.9.2 Menu ......................................................................................51 8.9.3 Form Paciente ..........................................................................52 8.9.3.1 Form Receita ....................................................................59 8.9.3.2 Form Atestado ..................................................................63 8.9.3.3 Form Responsvel .............................................................66 10

8.9.3.4 Form Endereos ................................................................69 8.9.4 Form Mdicos...........................................................................72 8.9.5 Form Planos de Sade ...............................................................73 8.9.6 Form Consultas ........................................................................76 8.10 Cronograma de Atividades ...............................................................81

11

1. RESUMO

O projeto visa automatizar o sistema de um consultrio mdico que atualmente s possui um cadastro de clientes informatizado. Temos como finalidade tornar todo o processo de gerenciamento do consultrio computadorizado, inclusive a as receitas e atestados mdicos. Aps uma entrevista com a doutora Regina, foi feito um levantamento das principais necessidades do consultrio, que so o cadastro de clientes e a emisso de atestados e receitas mdicas. Na elaborao do projeto est sendo usada a linguagem de programao Java, devido a sua liberdade de criao. Esta linguagem tem grande nmero de usurios ao redor do mundo, pois o projeto final pode ficar ao gosto do programador, e no caso, do cliente. Est sendo utilizado tambm um Sistema Gerenciador de Banco de Dados, que neste caso o PostGreSQL. Por ter uma licena livre, muitos de seus problemas so corrigidos com freqncia, o que o torna um Gerenciador muito confivel. O objetivo deste sistema ento tornar mais rpido e fcil o atendimento do consultrio.

12

2. OBJETIVO

2.1 OBJETIVO GERAL

Informatizar um consultrio mdico com a automatizao do sistema j existente, visando melhorar o cadastro de clientes e emisso de documentos, agilizando assim as consultas e o atendimento dos clientes no consultrio.

2.2 OBJETIVOS ESPECFICOS

Cadastrar pacientes para controle do consultrio; Cadastrar os convnios de cada paciente; Cadastrar cada consulta; Cadastrar mdicos; Cadastrar receitas; Cadastrar atestados;

13

3. INTRODUO

O mundo atual exige uma maior rapidez nos processos de qualquer lugar. A informatizao essencial e por isso est sendo criado o SironaMed, Sistema de Gerenciamento de um Consultrio Mdico, com o intuito de agilizar e melhorar o atendimento do consultrio. O consultrio est localizado na cidade de Caapava e realiza todos os seus procedimentos manualmente, exceto o cadastro de clientes. quantidade de papel gerada um problema para o consultrio. Aps uma entrevista no consultrio, foi constatado que o sistema poderia ter vrias melhorias. Para comear, alm do cadastro dos pacientes, era preciso ter um cadastro dos doutores que atendem na clnica. Era necessrio tambm possuir um cadastro de receitas e atestados mdico, pois h grandes problemas com esses documentos quando os mesmos so manuscritos. Apesar de ter vrios cadastros, na entrevista foi identificado que no havia necessidade de um cadastro de funcionrios, pois h um nmero pequeno de pessoas trabalhando no consultrio. Foi constatado tambm que os doutores no precisavam de um cadastro de medicamentos. Apesar da quantidade de cadastros serem pequenas, h um grande volume de informaes geradas no consultrio, pois o mesmo cliente realiza vrias consultas e possua muitas receitas e atestados. Por esse motivo, foi decidido que o PostGreSQL ser usado para gerenciar o banco de dados. E devido a sua liberdade de criao, o Java foi escolhido como a linguagem de programao do projeto. A grande

14

4. FUNDAMENTAO TERICA

4.1 Banco de Dados

Temos como definio de banco de dados no dicionrio Aurlio Online:


Banco de dados, arquivo de dados de diversas fontes, armazenado de forma a possibilitar o acesso de vrios usurios; um banco de dados pode conter vrias bases de dados.

Sobre base de dados, tambm do dicionrio Aurlio Online temos:


Base de dados, conjunto de dados e informaes fundamentais para certo conjunto operacional.

H muito tempo j se usa banco de dados de diferentes formas, e sua forma mais atual a informatizada. Banco de dados nada mais do que um conjunto de informaes que so processadas e se tornam dados. Estes dados podem ser depois consultados e alterados. Como podemos ver nas definies acima, os bancos de dados contm informaes que podem ser vistas por vrios usurios.

4.2 Banco de dados Relacional

Considerando alguns elementos que o compem temos: O elemento campo a menor unidade de armazenamento do banco de dados. Campo um conjunto de dados, e cada dado isoladamente representa um determinado valor de identificao, que pode ser: nome, endereo, telefone 15

entre outros. O conjunto de campos relacionados chama-se de registro, o termo que representa um componente do mundo real chamado de ficha, que pode ser: ficha de cadastro de clientes, de cadastro de fornecedores, de movimentao de caixa, entre outros. O conjunto de registros num banco de dados chamado de tabela, e pode ser definida mais de uma tabela para um mesmo banco de dados. Ento Banco de Dados um conjunto de tabelas, que podem estar ou no relacionadas entre si. Quando ocorre o agrupamento de vrios BDs em uma nica estrutura organizacional, temos o que pode se chamar de base de dados ou conjunto de banco de dados. De certa forma um erro, pois o gerenciamento de base de dados usa a ferramenta de apoio integrada tomada de deciso organizacional do tipo ERP (Enterprise Resource Planning) ou Datawarehouse. J o gerenciamento de um banco de dados utilizam SGBD. O modelo relacional de banco de dados foi desenvolvido pelo cientista ingls Dr. Edgar Frank Ted Codd, em junho de 1970, com publicao do Artigo A Relational Model of Data for Large Shared Data Banks na revista Communications of the ACM, v.13, n6, pp. 377-387, publicada por Association for Computing Machinery, Inc. Temos ainda as chaves primrias, chaves estrangeiras e integridade referencial. Integridade referencial um mecanismo que evita quebra de ligao entre os relacionamentos estabelecidos entre tabelas. A chave primria est associada ao campo ou conjunto de campos de tabela que ter um nico valor, que no ser repetido para nenhum outro registro da tabela em foco. Por exemplo, o cdigo do produto, nmeros de matrculas ou qualquer cdigo que no ser repetido na mesma tabela. Chave estrangeira esta relacionada com a chave primria de outras tabelas. Dependendo de sua cardinalidade podem ocorrer trs situaes: Relacionamento um para um a chave estrangeira pode ser criada em qualquer uma das tabelas. Relacionamento um para muitos a chave estrangeira pode ser criada somente na tabela muitos do lado.

16

Relacionamento muitos para muitos a chave estrangeira deve ser criada numa terceira tabela sendo essa o relacionamento entre as outras duas tabelas.

4.3 A linguagem de Consulta SQL.

O nome SQL (Structured Query Language Linguagem de Estrutura de consulta) explica sua finalidade. No uma linguagem de programao de computadores especificamente criada para desenvolver sistemas como so as linguagens Pascal, C, Basic, Cobol, Modula Z, entre outras. somente uma linguagem declarativa utilizada para facilitar o acesso e ir s informaes (por meio de consultas, utilizao e manipulao de dados) armazenadas em banco de dados relacionados. A linguagem de consulta do SQL foi desenvolvida primeiramente pela empresa IBM (Internacional Business Machine) e apresenta em sua primeira verso no ano de 1974, como Structured English Query Language (SEQUEL). A linguagem de consulta SEQUEL foi desenvolvida pela PhD Donald D Chamberlim, e os outros profissionais da IBM. Entre 1974 e 1975 foi disponibilizado um prottipo de banco de dados relacional da IBM denominado SEQUEL-XRM. Em novembro de 1976, a IBM apresentou oficialmente ao mercado de desenvolvimento a linguagem de consulta estruturada SQL, por meio de sua mdia institucional IBM Jounal of R & D. Entre 76 e 77, a IBM apresentou uma reviso da linguagem SEQUEL/2, que posteriormente passou a ser referenciada pela sigla SQL. Em 1979 um grupo de engenheiros que havia participado do projeto de desenvolvimento do System/R (outro prottipo da IBM em 1977) fundou uma empresa denominada Relational Software, Inc. que disponibilizou o primeiro 17

sistema de gerenciamento de banco de dados relacional comercialmente vivel, baseado na linguagem SQL. Esse sistema, denominado Oracle (o mesmo Oracle atualmente conhecido) foi o primeiro e mais forte concorrente da IBM. Em 1980 a 1981 a IBM conseguiu implementar seu padro de SQL no mercado, mas com essa grande oscilao vieram tambm os primeiros problemas operacionais, pois cada empresa passa a implementar funcionalidades e comandos prprios a linguagem SQL, tornando as diferentes da sua forma original. Ento surgiu ANSI (American National Standards Institute) para estabelecer um padro na Linguagem de banco de dados X3H2 em 1982, normas e critrios tcnicos a Linguagem SQL, denominada assim ANSI/SQL. Estendeu-se at 86 onde foi criada a 1 Linguagem padronizada SQL, referenciada como SQL/86. Depois em 87 a ANSI junto com a ISO (Internacional Standards Organizations) trabalharam at que se determina um 2 padro para linguagem SQL, denominado SQL/89. O 3 padro foi em 1992, denominado SQL/92 e o 4 padro em 1999 chamado de SQL/99. A ltima reviso da Linguagem SQL foi apresentada em 2003 com a definio do padro SQL/2003, passa a contar com a incluso de recursos relacionados ao padro XLM, entre outros caractersticas acrescentadas. 4.4 PostGreSQL O PostGreSQL um sistema gerenciador de banco de dados de cdigo aberto que utiliza a linguagem SQL (Structured Query Languange). Seu projeto foi iniciado na Universidade de Berkeley, na Califrnia, em 1986 e era originalmente chamado de POSTGRES. Neste projeto, o programador Michael Stonebraker liderou uma equipe encarregada de criar um novo sistema de banco de dados, um servidor de banco de dados relacionais. Em 1989 foi lanada uma verso estvel do POSTGRES, seguidos de vrios lanamentos anuais com correes de bugs.

18

Em 1994, Jolly Chen e Adrew Yu compatibilizaram o POSTGRES linguagem SQL, e o software ento se tornou o PostGre95. O seu cdigo foi totalmente revisado e o SQL definido como linguagem padro e, em 1996, ele se tornou o PostGreSQL, como conhecido at hoje. Atualmente possui capacidade para suprir as necessidades de pequenas, mdias e grandes aplicaes, pois possui recursos de banco de dados de grande porte. Alm disso, foi projetado para funcionar 24 horas por dia, 7 dias por semana, com grande volume de dados. O PostGreSQL funciona em todos os grandes sistemas operacionais e pode acomodar vrios usurios concorrentes. O tamanho mximo de seu banco de dados e ilimitado, s varia pelo hardware usado. Cada tabela pode possuir at 32TB e at 1600 colunas. O PostGreSQL compatvel com vrias linguagens, como por exemplo PHP, Java, Python e C++. Faz parte da licena BSD (Berkeley Software Distribution) que permite mais liberdade perante outras licenas e o torna mais acessvel. Por seu cdigo ser aberto, possui uma vantagem: seu cdigo revisado a todo o momento por vrias pessoas no mundo, no fica restrito a uma equipe de funcionrios. Entre suas principais caractersticas esto: Recuperao em um ponto do tempo (PITR em ingls); Cpias de segurana; Suporte a transaes ACID (atomicidade, consistncia, isolamentos e durabilidade), que garante qualidade aos servios de bancos de dados: o Atomicidade - Capacidade de uma transao ter todas as suas operaes executada ou nenhuma delas; o Consistncia - Indica que a base de dados est consistente no incio da transao e ao seu final; 19

o Isolamentos - Capacidade das operaes de uma transao no serem vistas pelas outras transaes at que esta esteja encerrada; o Durabilidade - Indica que depois de uma transao ser executada com sucesso, as alteraes efetuadas persistam e no sejam desfeitas.

4.5 PostGreSQL comparado ao MySQL

O MySQL um sistema otimizado para aplicaes web e funciona muito bem com o PHP. Tambm possui licena livre, ou seja, qualquer um pode estud-lo e alter-lo. Ambos, PostGreSQL e MySQL, geralmente so escolhidos por seu tempo de mercado e por suas funcionalidades. A diferena entre eles s notada quando h um grande volume de informaes. O PostGreSQL capaz de lidar melhor com um grande volume de dados gerados pelas operaes de consulta. J o MySQL se sai melhor quando a aplicao necessita retornos rpidos e no possui operaes complexas. Porm, h vrias situaes em que tanto o PostGreSQL quanto o MySQL so boas escolhas, s preciso estudar qual oferece mais vantagens a aplicao.

4.6 Java

O Java uma linguagem de programao desenvolvida no ano de 1990 por uma equipe de programadores chefiada por James Gosling (Programador canadense conhecido como o pai da linguagem Java). 20

O nome Java veio, pois a Sun apostava na convergncia de computadores com outros equipamentos e eletrodomsticos assim produzindo um controle remoto com uma interface touchscreen com um nome de *7 (Star Seven). No desenvolvimento de parte do sistema operacional e dos aplicativos do *7, foi criada uma linguagem de programao baseada no C++ e no smalltalk (linguagem de programao orientada objeto), chamando assim de Oak em homenagem a uma rvore que podia ser vista da janela da sede da Sun. Mais tarde descobre-se que Oak j era usado em outra linguagem de programao, assim surgindo a nome Java. Outra verso do nome que a equipe visitou uma cafeteria chamada Java e em referncia Java. O Java e as tecnologias na orientao a objetos tm uma caracterstica peculiar que provoca confuso e dvidas entre a maioria das pessoas, pois na linguagem orientada a objeto tem um universo de siglas e acrnimos que permeia todas as fases do desenvolvimento e tambm formam uma verdadeira sopa de letrinhas. O Java iniciou na verso 1.0, mas na verso 1.2, houve uma srie de atualizaes e um significativo aumento nas APIs (banco de recurso da linguagem). Os ambientes de desenvolvimento Java contm um pacote chamado de JRE que executado como um aplicativo do sistema operacional e interpreta a execuo de programas Java. O JRE composto pelo Java Virtual Machine pela sigla JVM, por um conjunto de APIs e por alguns pacotes de desenvolvimento. O JVM um programa que carrega e executa os programas desenvolvidos em Java, convertendo os bytecodes em cdigo executvel de mquina, ou seja, os nmeros binrios. Para podermos desenvolver programas em Java precisamos de uma ferramenta chamada de JDK, pois sem ela no possvel abrir o local de desenvolvimento do programa. cidade de origem de um tipo de caf importado pelo estabelecimento. Nesta verso explica a xcara estilizada estampada no logo do

21

O Java pode ser executado atravs do Prompt de comando, ou atravs de programas especiais para a rea de programao Java como o Eclipse e o JCreator. Enfim, para o Java poder ser executado precisamos do programa fonte, ou seja, a extenso .java, logo depois que cria a extenso voc deve compilar o arquivo, este compilador que transforma o arquivo em .class, ou seja, os bytecodes que so o tipo de linguagem que o computador entende, logo no havendo nenhum erro na execuo o interpretador Java transforma novamente a linguagem que estava em um jeito que possamos entender e enfim mostrado o programa. Ficar mais claro com a imagem a seguir:

1 Sequencia de Compilao do JAVA

4.7 Pontos positivos e negativos da linguagem Java A Portabilidade: por ser uma linguagem interpretada, o java pode ser executado em qualquer plataforma ou equipamento que possua um interpretador Java. Robustez: Dificilmente os recursos da linguagem e do ambiente para o tempo de execuo garantem que o cdigo no deixe de cair o sistema de algum, que tropece em uma home page contendo uma animao.

22

Segurana: A Equipe de desenvolvedores do java tem como maior preocupao a segurana, pois eles tendem de proteger o sistema do cliente contra possveis ataques no-intencionais ao ambiente de trabalho. A equipe desenvolvedora do Java teve com muito empenho para aplicar para a linguagem nesse sentido. Orientao a Objeto: Java uma Linguagem de Programao a Orientada a Objeto, ou seja, permitindo ao usurio a reutilizao e a herana de cdigos de forma dinmica e esttica. Facilidade: A Linguagem orientada a objetos Java de bom desempenho pois alm de poder alteras nos seus pacotes, ou seja, podendo ser alterado atravs do seu programador suas ferramentas . O nico ponto negativo o uso dos cdigos. Os cdigos na Linguagem Java so mais difceis de memorizar por causa da extenso de palavras.Porm, a partir desses cdigos feita a programao orientada a objeto. O ambiente de trabalho que usamos para programar em Java , por exemplo, o JCreator ou Eclipse e na parte de transformar o cdigo feito nesses ambientes usamos o NetBens.

4.8 NetBens(IDE)

O NetBeans um ambiente de desenvolvimento integrado Java gratuito e de cdigo aberto fornecido pela empresa Sun Microsystems para o desenvolvimento de softwares. O NetBens se iniciou por dois estudantes tchecos da Universidade de Charles, em Praga, quando o Java no era popular ainda . O nome do projeto dado pelos estudantes era Xelfi, em referncia ao Delphi. 23

Os estudantes viram que no Delphi a interface era mais fcil de ser criada, por isso eles tomaram a interface do Delphi mais a linguagem de programao Java , e esta unio dos dois ficou muito til e fcil de ser compreendida, com exceo dos cdigos usados que continuam grandes porm mais atrativos pelo NetBeans. Em 1999 o projeto Xelfi havia evoludo para o NetBeansIDE DeveloperX2 que seria uma ferramenta com idia de reutilizao de componentes que era a base do Java, no mesmo ano a empresa Sun MicroSystem havia desitido do IDE Java Workshop, com isso a empresa estava buscando por outro tipo de software que pudesse completar o pacote de softwares ento ela adquiriu o NetBeansIDE DeveloperX2 para completar sua linha. A Sun MicroSystem adquiriu uma outra ferramenta chamada Forte NetBeans para Java e manteve este projeto assim retirando o nome NetBens. Em 2000 a Sun MircoSystem liberou o cdigo fonte do NetBeans tornando-o OpenSource consequentemente mais popular. uma plataforma

2 IDE NetBeans

24

3 IDE NetBeans

4.8 Delphi

O ambiente Delphi baseado na linguagem Object Pascal, oriunda da linguagem Pascal, projetada pelo professor Niklaus Wirth (Zurique Sua), para ensinar seus alunos a programar Algol, Fortran e PLI na dcada de 1960. Um dos alunos de Wirth foi o Francs Philippe Khan que se mudaria para os Estados Unidos em 1982 e fundaria a Borland no ano seguinte. O nome Pascal uma homenagem ao filsofo e matemtico francs Blaise Pascal (1623 1662). Em 1970 disponibilizado, ainda como produto acadmico o primeiro compilador para linguagem Pascal. Em 1983 uma pequena empresa chamada Borland Internacional Inc., lanou a verso Turbo Pascal, e logo foi atualizada para 2.0.

25

Ainda na dcada de 1980 foram lanadas algumas verses do Turbo Pascal, tais como: 3.0, 4.0, 5.0, 5.5 (que trouxe o conceito de programao orientada, por meio da Object Pascal), 6.0 e 7.0 at ento para DOS da Microsoft. Anders Hejlsberg, criador do ncleo do Turbo Pascal, comeou a trabalhar na Borland, ficando at o desenvolvimento das verses iniciais do Delphi. No incio de 1995 foi lanado pela Borland o ambiente Delphi 1.0, para Windows 3.1, unindo a potncia do Turbo Pascal e o conceito de programao visual do Windows. Um ano depois surge a 2.0 para Windows 95 ou NT351. A partir de Maro de 1997 apresentada a verso 3.0 para Windows 95 ou Windows NT4.0, a qual foi implementada recursos para internet. A Borland passou a ser lder mundial no mercado em solues para

desenvolvedores de software. Entre as ferramentas mais populares da Borland, esto Delphi, Borland C++, Borland C++ Builder, dBase, Inter Base, Intra Builder, Visual dBase e Jbuilder. Em 1998 a Borland passou a ser representada pela Inprise que lanou o Delphi 4, na Fenasoft, em 22/07/1998. Trazendo consigo mudanas internas, inclusive melhoria visual. Em 1999, na mesma Fenasoft, a Inprise apresentou o Delphi 5, em sua verso Beta, lanado no Brasil em outubro de 1999 oferecendo recursos para facilitar o desenvolvimento de aplicaes individuais a corporativas de sistemas robustos, principalmente voltados para internet. Em 2001, a Borland lana no Brasil o Delphi 6. Possuindo novas caractersticas: suporte aos padres XML, SOAP, WSDL e XLS; suporte as plataformas WEB services: dotNET, BizTalk(Microsoft Corporation) e ONE (SUN Microsystems); compatibilidade entre Delphi 6 (Windows) e Kylix (Linux) por meio da utilizao da biblioteca de componentes CLX (Existente a partir da verso 6 nas duas

26

plataformas de sistemas operacionais) similar a biblioteca VCL; especificaes Visibroker CORBA. Na Fenasoft de 2002, a Borland divulga a verso 7 do ambiente de desenvolvimento Delphi. Com novas caractersticas: recursos para a migrao da tecnologia dotNET; Intra WEB que possibilita a criao de relatrios entre outros. Foi disponibilizado em quatro verses: Architect, Enterprise, Professional e Personal. Atualmente, o Delphi muito utilizado no desenvolvimento de aplicaes desktop, aplicaes multicamadas e cliente/servidor, compatvel com os bancos de dados mais conhecidos do mercado, principalmente o Paradox. O Delphi pode ser utilizado para diversos tipos de desenvolvimento de projeto, abrangendo desde Servios a Aplicaes Web e CTI.

27

5. ORIGEM DO NOME SironaMed

5.1 Sirona

Sirona a Deusa Gaulesa das fontes curativas. Era geralmente retratada sozinha ou na companhia de Apollo ou Esculpio (deus grego da medicina), o que refora seu carter como Deusa da prosperidade, da sade e da cura.

28

6. CONCLUSO

O SironaMed foi criado com sucesso com base em entrevistas e pesquisas. rapidamente.

objetivo principal foi atingido e o trabalho no consultrio pode ser realizado mais

Alm disso, a combinao de JAVA com o gerenciador de bancos de dados PostGreSQL funcionou perfeitamente, sem falhas. Agora no consultrio possvel cadastrar todos os mdicos e planos de sade com qual os doutores trabalham, assim como ter acesso mais rpido ao cadastro de pacientes. A marcao de consulta tambm poder ser feita pelo SironaMed, assim como a emisso de receitas e atestados.

29

7. BIBLIOGRAFIA

CORREIA, CARLOS HENRIQUE Anlise Orientada a Objetos Segunda Edio Florianpolis, Visual Books, 2006. MANZANO, J. A. N. G.; Mendes, S. S. V. Estudo Dirigido Delphi 7 So Paulo: rica, p. 17-21, 2003. CRTEZ, P. L. Trabalhando com Banco de Dados utilizando o Delphi 2005: MySQL, SQL, Server2000, Oracle 9i e Microsoft Office Access 2003 So Paulo:rica, p. 20 24, 2005. DELLA CROCE FILHO, Ralfe -- Manual de Informtica Centro Paula Souza - So Paulo: Fundao Padre Anchieta, 2010, v.4. MIYAGUSKU, Renata Prtica de SQL. MANZANO, J. A. N. G. Microsoft SQL Server 2005: Express Edition: Interativo: Guia Bsico - 1 Edio - So Paulo: rica, 2007 MILANI, Andr - PostGreSQL Guia do Programador: Novatec, 2008. p 25-34. MORIMOTO, Carlos E. Licena BSD. Disponvel em: HTTP://www.guiadohardware.net/termos/licenca-bsd. Data de acesso: 18/11/2010. PostGreSQL. Disponvel em: HTTP://postgresql.org.br/sobre. Data de acesso: 03/11/2010. ALECRIM, Emerson Bancos de Dados PostgreSQL e MySQL. Disponvel em: HTTP://www.infowester.com/postgremysql.php. Data de Acesso: 03/11/2010. 30

ACID Disponvel em: HTTP://javafree.uol.com.br/wiki/ACID. Data de Acesso: 16/11/2010. Redao Ofina da Net - O QUE NETBEANS? - Disponvel em: http://www.oficinadanet.com.br/artigo/1061/o_que_e_o_netbeans - Data de Acesso: 09/06/2011 THE JAVA LANGUAGE, AN OVERVIEW - Disponvel em: http://java.sun.com/docs/overviews/java/java-overview-1.html - Data de Acesso: 09/06/2011 UMA INTRODUO AO MUNDO JAVA - Disponvel em: http://www.gta.ufrj.br/grad/flavio/Javaret.html - Data de Acesso: 09/06/2011 SOUZA, Sadro J. S. - VATAGENS DA LINGUAGEM JAVA - Disponvel em: http://www.htmlstaff.org/ver.php?id=4384 - Data de Acesso: 09/06/2011 A BRIEF HISTORY OF NETBEANS - Disponvel em: http://netbeans.org/about/history.html - Data de Acesso: 09/06/2001 ARTIGOS DIVERSOS - Disponvel em: http://www.macoratti.net/Default.aspx Data de Acesso 14/06/2011.

31

8. APNDICE

8.1 Entrevista Entrevista com a doutora Regina de Souza Teixeira, representando o consultrio, e secretrias. 1 Possui um sistema atualmente? Sim. Na recepo h um computador e os pronturios so todos feitos manualmente. 2 Quais os maiores problemas encontrados no seu sistema de armazenamento atual? Ocupa muito espao. Os arquivos tm que ser sempre reorganizados. 3 Como so armazenados os dados cadastrais e a vida mdica do paciente atualmente? Manualmente, em fichas de papel. O dado cadastral tem no pronturio de papel e no computador. 4 Voc utiliza computador? Se sim, quais so suas configuraes? usado computador na recepo para cadastro de pacientes e emisso de guias mdicas via internet. 5 Quais campos so importantes para o cadastro de clientes? Nome, data de nascimento, naturalidade, profisso, sexo, convnio. Alm disso, feito cadastro de todas as consultas e histrico de medicamentos e doenas dos pacientes. 6 armazenado algum dado sobre o convnio mdico do paciente? Se sim, quais? Sim, o tipo de convnio. 32

7 Como feita a marcao de consultas? Quais dados so importantes para a marcao de uma consulta? marcada em agenda de papel. Dados: se j se consultou antes com o mdico, convnio, nome, data e hora. 8 Quais dados do paciente so importantes ter na consulta? Quais dados preciso editar sobre o paciente? Todos os dados do cadastro de clientes. 9 O que importante conter no cadastro de medicamentos? No necessrio um cadastro de medicamentos. 10 Gostaria de automatizar a emisso de receitas e atestados? Sim. 11 Quais dados do cliente e do mdico so importantes estar contido nas receitas e atestados? Paciente: nome, remdio a ser tomado, modo de utilizar o medicamento e data da receita. Mdico: nome, ttulo de especialista, nmero CRM, endereo e telefone do consultrio. 12 Gostaria de ter um cadastro de funcionrios? Se sim, com quais informaes? No necessrio, j que s h duas funcionrias. 13 Gostaria de incluir mais alguma coisa em seu sistema? No. 14 Quanto voc disponibilizaria para possuir um sistema informatizado? No tenho idia do custo. Faria uma pesquisa com empresas da rea.

33

8.2 Diagrama Entidade Relacionamento

34

8.3 Dicionrio de Dados

8.3.1 Tabela Paciente_Endereco Entidade: Paciente Endereo Atributo Paciente_end_codigo Paciente_cep Paciente_rua Paciente_num Paciente_complemento Paciente_bairro Classe Domnio Tamanho Descrio Codigo do endereo Determinante Serial Simples Simples Simples Simples Simples Texto Texto Texto Texto Texto 9 60 4 20 20 do paciente. CEP do Paciente. Nome da rua do Paciente. Nmero da casa do Paciente. Compelmento. Ex: Apartamento, Bloco. Nome do bairro do Paciente. Nome da cidade Paciente_cidade Paciente_estado 8.3.2 Tabela Responsvel Simples Simples Texto Texto 20 2 do Paciente. Estado do Paciente.

Entidade: Responsvel Atributo Responsavel_codigo Responsavel_nome Classe Domnio Tamanho Descrio Cdigo do responsvel Determinante Serial Simples Texto 60 pelo paciente. Nome do responsvel pelo paciente. CPF do responsvel pelo paciente. Telefone do responsvel pelo paciente.

Responsavel_cpf Responsavel_tel

Simples Simples

Texto Texto

14 13

35

8.3.3 Tabela Consulta

Entidade: Consulta Atributo Consulta_codigo Consulta_dia Consulta_hora Medico_crm Paciente_codigo 8.3.4 Tabela Mdico Classe Domnio Tamanho Descrio Cdigo da consulta. Dia da consulta. Exemplo 16/06/2011. Hora da consulta. Exemplo 15:00. 7 CRM do Mdico. Cdigo do paciente.

Determinante Serial Simples Simples Simples Simples Data Hora Texto Nmero

Entidade: Mdico Atributo Medico_crm Medico_nome Medico_espec1 Medico_espec2 Classe Domnio Tamanho Descrio 7 60 40 40 CRM do Mdico. Nome completo do Mdico. Especialidade do Mdico. Especialidade do Mdico.

Determinante Texto Simples Simples Simples Texto Texto Texto

8.3.5 Tabela Receita

Entidade: Receita Atributo Receita_codigo Receita_medicamento Receita_apresentacao Receita_prescricao Receita_uso Classe Domnio Tamanho Descrio Cdigo da receita para controle. 40 15 20 20 Nome do medicamento. Conteudo do comprimido. Simples Simples Simples Texto Texto Texto Ex. 100/25 mg. Horrio para tomar o remdio. Ex: A cada 3 Horas. Remedio de uso Interno ou Externo. Quantidade de medicamentos. Receita_quantidade Receita_tempo Consulta_codigo Simples Simples Simples Texto Texto Nmero 20 20 Ex: 2 Caixas. Tempo para tomar o remdio. Ex: 1 semana. Cdigo da consulta.

Determiannte Serial Simples Texto

36

8.3.6 Tabela Atestado

Entidade: Atestado Atributo Atestado_codigo Atestado_procedimentos Consulta_codigo 8.3.7 Tabela Plano de Sade Classe Domnio Tamanho Descrio Cdigo do atestado. 100 Procedimentos do atestado. Cdigo da consulta.

Determinante Serial Simples Simples Texto Nmero

Entidade: Plano de Sade Atributo Plano_codigo Plano_nome Plano_descricao 8.3.8 Tabela Paciente Entidade: Paciente Atributo Paciente_codigo Paciente_nome Paciente_cpf Paciente_rg Paciente_beneficio Paciente_nascimento Paciente_sexo Paciente_estadocivil Paciente_profissao Paciente_naturalidade Paciente_local_de_trabalho Paciente_tel_residencial Classe Domnio Tamanho Descrio Cdigo do paciente. 60 14 12 10 Nome do Paciente. CPF do Paciente. RG do Paciente. Nmero do convenio Simples Simples Simples Simples Simples Simples Simples Simples Texto Data Texto Texto Texto Texto Texto Texto 1 15 20 40 40 13 do Paciente. Data de Nascimento do Paciente. Sexo do Paciente. Estado Civil do Paciente. Profisso do Paciente. Naturalidade do Paciente. Local de trabalho do Paciente. Nmero do Telefone residencial do Paciente. Nmero do Telefone Paciente_tel_cel Simples Texto 13 celular do Paciente. Classe Domnio Tamanho Descrio Cdigo do plano de sade. 40 100 Nome do plano de sade. Descrio do plano de sade.

Determinante Serial Simples Simples Texto Texto

Determinante Serial Simples Simples Simples Texto Texto Texto

37

Nmero do Telefone para Paciente_tel_recado Paciente_peso Paciente_altura Paciente_cor Responsavel_codigo Plano_codigo Paciente_end_codigo Simples Simples Simples Simples Simples Simples Simples Texto Nmero Nmero Texto Nmero Nmero Nmero 13 5 3 10 recado do Paciente. Peso do Paciente. Exemplo 65.5. Altura do Paciente. Exemplo 1.75. Cor do Paciente. Cdigo do responsvel pelo paciente. Cdigo do plano do paciente. Cdigo do endereo do paciente.

38

8.4 Modelo Lgico do Banco de Dados

39

8.5 Cdigos de Criao do Banco de Dados


CREATE TABLE Paciente_endereco ( Paciente_end_codigo Serial PRIMARY KEY, Paciente_cep VarChar(9), Paciente_rua VarChar(60), Paciente_num VarChar(4), Paciente_complemento VarChar(20), Paciente_bairro VarChar(20), Paciente_cidade VarChar(20), Paciente_estado VarChar(2) ) CREATE TABLE Responsavel ( Responsavel_codigo Serial PRIMARY KEY, Responsavel_nome VarChar(60), Responsavel_cpf VarChar(14), Responsavel_tel VarChar(13) ) CREATE TABLE Consulta ( Consulta_codigo Serial PRIMARY KEY, Consulta_dia Date, Consulta_hora Time, Medico_crm VarChar(7), Paciente_codigo int ) CREATE TABLE Medico ( Medico_crm VarChar(7) PRIMARY KEY, Medico_nome VarChar(60) not null, Medico_espec1 VarChar(40) not null, Medico_espec2 VarChar(40) ) CREATE TABLE Receita (

40

Receita_codigo Serial PRIMARY KEY, Receita_medicamento VarChar(40), Receita_apresentacao VarChar(30), Receita_prescricao VarChar(30), Receita_uso VarChar(20), Receita_quantidade VarChar(20), Receita_tempo VarChar(20), Consulta_codigo int, FOREIGN KEY(Consulta_codigo) REFERENCES Consulta (Consulta_codigo) ) CREATE TABLE Atestado ( Atestado_codigo Serial PRIMARY KEY, Atestado_procedimentos VarChar(100) not null, Consulta_codigo int, FOREIGN KEY(Consulta_codigo) REFERENCES Consulta (Consulta_codigo) ) CREATE TABLE Plano_Saude ( Plano_Codigo Serial PRIMARY KEY, Plano_Nome varchar (60), Plano_Descricao VarChar(100) ) CREATE TABLE Paciente ( Paciente_codigo Serial PRIMARY KEY, Paciente_nome VarChar(60) not null, Paciente_cpf VarChar(14), Paciente_rg VarChar(12), Paciente_beneficio VarChar(10), Paciente_nascimento Date, Paciente_sexo VarChar(1), Paciente_estadocivil VarChar(15), Paciente_profissao VarChar(20), Paciente_naturalidade VarChar(40), Paciente_local_de_trabalho VarChar(40), Paciente_tel_residencial VarChar(13) not null,

41

Paciente_tel_cel VarChar(13), Paciente_tel_recado VarChar(13), Paciente_peso numeric (5,2), Paciente_altura numeric (3,2), Paciente_cor VarChar(10), Responsavel_codigo int, Plano_Codigo int, Paciente_end_codigo int, FOREIGN KEY(Responsavel_codigo) REFERENCES Responsavel (Responsavel_codigo), FOREIGN KEY(Plano_Codigo) REFERENCES Plano_Saude (Plano_Codigo), FOREIGN KEY(Paciente_end_codigo) REFERENCES Paciente_endereco (Paciente_end_codigo) ) ALTER TABLE Consulta ADD FOREIGN KEY(Medico_crm) REFERENCES Medico (Medico_crm) ALTER TABLE Consulta ADD FOREIGN KEY(Paciente_codigo) REFERENCES Paciente (Paciente_codigo)

Isero de Dados na Tabela Plano_Saude insert into plano_saude (plano_nome, plano_descricao) values ('Sem Plano de Saude','Dinheiro'), ('Unimed','Convnio'); Isero de Dados na Tabela Medico insert into medico (medico_crm, medico_nome, medico_espec1, medico_espec2) values ('41414','REGINA DE SOUZA TEIXEIRA','Pediatra',''), ('46920','AFONSO CESAR CABRAL GUEDES MACHADO','Ginecologista','');

Isero de Dados na Tabela Responsavel insert into responsavel (responsavel_nome, responsavel_cpf, responsavel_tel) values ('Sem Responsavel','-','-'), ('Joao Pedro','478291748-64','36537617');

42

Isero de Dados na Tabela Paciente_endereco insert into paciente_endereco (paciente_cep, paciente_rua, paciente_num, paciente_complemento, paciente_bairro, paciente_cidade, paciente_estado) values ('12280000','Rua Amazonas','1245','Casa','Vila Menino Jesus','Caapava','SP'), ('12289060','Avenida Ademar Moreira Barbosa Romeu','800','Casa','Eldorado','Caapava','SP'); Isero de Dados na Tabela Paciente insert into paciente (paciente_nome, paciente_cpf, paciente_rg, paciente_beneficio, paciente_nascimento, paciente_sexo, paciente_estadocivil, paciente_profissao, paciente_naturalidade, paciente_local_de_trabalho, paciente_tel_residencial, paciente_tel_cel, paciente_tel_recado, paciente_peso, paciente_altura, paciente_cor, responsavel_codigo, plano_codigo, paciente_end_codigo) values ('Joao Pedro','47829174864','12345678','Unimed','24/02/1999','M','Solteiro','Tecnico Informatica','brasileiro','-','36537617','-','-','83','1.5','branco','1','2','2'), ('Luiz','45878996554','32145687','01','30/08/1990','M','Solteiro','','brasileiro','','3658859 6','-','-','75','1.8','branco','1','2','2'); Isero de Dados na Tabela Consulta insert into consulta (consulta_dia, consulta_hora, medico_crm, paciente_codigo) values ('20/07/2011','15:00','41414','1'), ('14/08/2011','16:00','41414','1'); Isero de Dados na Tabela Receita insert into receita (receita_medicamento, receita_apresentacao, receita_prescricao, receita_uso, receita_quantidade, receita_tempo, consulta_codigo) values ('Dipirona','500mg','4 vezes/dia','Interno','2 caixas','1 Semana','1'), ('AAS','500mg','3 vez/dia','Interno','2 envelope','1 Semana','1'); Isero de Dados na Tabela Atestado insert into atestado (atestado_procedimentos, consulta_codigo) values ('Repousar 1 dia','1'), ('Repousar por 1 dia para baixar a febre','1');

43

8.6 Diagrama de Caso de Uso

44

8.7 Diagramas de Sequncia Diagramas Sequncia Cadastrar Paciente

45

Diagrama de Sequncia Cadastrar Plano de Sade

Diagrama de Sequncia Marcar Consulta

46

Diagrama de Sequncia Desmarcar Consulta

Diagrama de Sequncia Prescrever Receita

47

Diagrama de Sequncia Prescrever Atestado

48

8.8 Diagrama de Classes

49

8.9 Layout e Cdigos de Criao 8.9.1 Conexo com o Banco

String driver = "org.postgresql.Driver"; String banco = "sironamed"; String host = "localhost"; String str_conn = "jdbc:postgresql://"+host+":5432/"+banco; String usuario = "postgres"; String senha = "root"; try{ Class.forName(driver); Connection conn =DriverManager.getConnection(str_conn, usuario, senha); Statement stmt =conn.createStatement(); } catch(ClassNotFoundException ex){ System.out.println("No foi possvel carregar o driver."); ex.printStackTrace(); } catch(SQLException ex){ System.out.println("Problema com o SQL"); ex.printStackTrace(); }

50

8.9.2 Menu

Boto Pacientes new Paciente().setVisible(true); this.hide(); Boto Mdicos new Medico().setVisible(true); this.hide(); Boto Consultas new Consulta().setVisible(true); this.hide(); Boto Planos de Sade new PlanoSaude().setVisible(true); 51

this.hide(); Boto Sair System.exit(0);

8.9.3 Form Paciente

Boto Cadastrar String sqlinsert= "insert into paciente (paciente_nome, paciente_cpf, paciente_rg, paciente_nascimento, paciente_sexo, plano_codigo,paciente_beneficio, responsavel_codigo, paciente_tel_residencial, paciente_tel_cel, paciente_tel_recado,paciente_naturalidade, paciente_estadocivil, paciente_profissao, paciente_local_de_trabalho, paciente_peso, paciente_altura,paciente_cor, paciente_end_codigo) values ('"+ jTextField2.getText()+"','"+ jTextField3.getText()+"','"+ 52

jTextField4.getText()+"','"+ jTextField5.getText()+"','"+ jTextField6.getText()+"','"+ jTextField7.getText()+"','"+ jTextField8.getText()+"','"+ jTextField9.getText()+"','"+ jTextField10.getText()+"','"+ jTextField11.getText()+"','"+ jTextField12.getText()+"','"+ jTextField13.getText()+"','"+ jTextField14.getText()+"','"+ jTextField15.getText()+"','"+ jTextField16.getText()+"','"+ jTextField17.getText()+"','"+ jTextField18.getText()+"','"+ jTextField19.getText()+"','"+ jTextField20.getText()+"')"; stmt.executeUpdate(sqlinsert); JOptionPane.showMessageDialog(null, "Gravao realizado com sucesso!");

Boto Ir Para String sql = "SELECT paciente_nome, paciente_cpf, paciente_rg, paciente_nascimento, paciente_sexo, plano_codigo,paciente_beneficio, responsavel_codigo, paciente_tel_residencial, paciente_tel_cel, paciente_tel_recado, paciente_naturalidade, paciente_estadocivil, paciente_profissao, paciente_local_de_trabalho, paciente_peso, paciente_altura, paciente_cor, paciente_end_codigo FROM paciente WHERE paciente_codigo=('"+ jTextField1.getText()+"')"; ResultSet rs=stmt.executeQuery(sql);

53

while (rs.next()){ jTextField2.setText(rs.getString("paciente_nome")); jTextField3.setText(rs.getString("paciente_cpf")); jTextField4.setText(rs.getString("paciente_rg")); jTextField5.setText(rs.getString("paciente_nascimento")); jTextField6.setText(rs.getString("paciente_sexo")); jTextField7.setText(""+rs.getInt("plano_codigo")); jTextField8.setText(rs.getString("paciente_beneficio")); jTextField9.setText(""+rs.getInt("responsavel_codigo")); jTextField10.setText(rs.getString("paciente_tel_residencial")); jTextField11.setText(rs.getString("paciente_tel_cel")); jTextField12.setText(rs.getString("paciente_tel_recado")); jTextField13.setText(rs.getString("paciente_naturalidade")); jTextField14.setText(rs.getString("paciente_estadocivil")); jTextField15.setText(rs.getString("paciente_profissao")); jTextField16.setText(rs.getString("paciente_local_de_trabalho")); jTextField17.setText(""+rs.getDouble("paciente_peso")); jTextField18.setText(""+rs.getDouble("paciente_altura")); jTextField19.setText(rs.getString("paciente_cor")); jTextField20.setText(""+rs.getInt("paciente_end_codigo")); } Boto Excluir String sqlinsert = "Select consulta_codigo FROM consulta WHERE paciente_codigo= "+jTextField1.getText(); ResultSet rs=stmt.executeQuery(sqlinsert); while(rs.next()){ Statement stmt02 = conn.createStatement(); String sqlinsert02="DELETE FROM atestado WHERE consulta_codigo="+(""+rs.getInt("consulta_codigo")); stmt02.executeUpdate(sqlinsert02); 54

String sqlinsert03="DELETE FROM receita WHERE consulta_codigo="+(""+rs.getInt("consulta_codigo")); stmt02.executeUpdate(sqlinsert03); String sqlinsert04="DELETE FROM consulta WHERE consulta_codigo="+(""+rs.getInt("consulta_codigo")); stmt02.executeUpdate(sqlinsert04); } Statement stmt03 = conn.createStatement(); String sqlinsert05="DELETE FROM paciente WHERE paciente_codigo= "+jTextField1.getText(); stmt03.executeUpdate(sqlinsert05); JOptionPane.showMessageDialog(null, "Excluso realizada com sucesso!"); Boto Receita new Receita().setVisible(true); Boto Atestado new Atestado().setVisible(true); Boto Responsvel new Responsavel().setVisible(true); Boto Endereo new Endereco().setVisible(true);

55

Boto Retornar ao Menu new Menu().setVisible(true); this.hide(); Boto Localizar if(jTextField21.getText().equals("")){ JOptionPane.showMessageDialog(null,"Digite algo para localizar!"); } if(jComboBox1.getSelectedItem()=="Paciente"){ String sql = "SELECT paciente_codigo, paciente_nome, paciente_cpf FROM paciente WHERE paciente_nome LIKE ('"+ '%'+jTextField21.getText()+'%'+"')"; ResultSet rs=stmt.executeQuery(sql); while(rs.next()){ System.out.println("Cdigo: "+""+rs.getInt("paciente_codigo")); System.out.println("Nome: "+""+rs.getString("paciente_nome")); System.out.println("CPF: "+""+rs.getString("paciente_cpf")); System.out.println("-----------------------"); } } if(jComboBox1.getSelectedItem()=="Endereo - cdigo"){ String sql = "SELECT paciente_end_codigo, paciente_rua, paciente_num FROM paciente_endereco WHERE paciente_end_codigo = ('"+ jTextField21.getText()+"')"; ResultSet rs=stmt.executeQuery(sql); while (rs.next()){ 56

System.out.println("Cdigo: "+""+rs.getInt("paciente_end_codigo")); System.out.println("Rua: "+""+rs.getString("paciente_rua")); System.out.println("Nmero: "+""+rs.getString("paciente_num")); System.out.println("-----------------------"); } } if(jComboBox1.getSelectedItem()=="Endereo - rua"){ String sql = "SELECT paciente_end_codigo, paciente_rua, paciente_num FROM paciente_endereco WHERE paciente_rua LIKE ('"+ '%'+jTextField21.getText()+'%'+"')"; ResultSet rs=stmt.executeQuery(sql); while (rs.next()){ System.out.println("Cdigo: "+""+rs.getInt("paciente_end_codigo")); System.out.println("Rua: "+""+rs.getString("paciente_rua")); System.out.println("Nmero: "+""+rs.getString("paciente_num")); System.out.println("-----------------------"); } } if(jComboBox1.getSelectedItem()=="Responsvel - cdigo"){ String sql = "SELECT responsavel_codigo, responsavel_nome, responsavel_cpf FROM responsavel WHERE responsavel_codigo = ('"+ jTextField21.getText()+"')"; ResultSet rs=stmt.executeQuery(sql); while (rs.next()){ System.out.println("Cdigo: "+""+rs.getInt("responsavel_codigo")); System.out.println("Nome: "+""+rs.getString("responsavel_nome")); 57

System.out.println("CPF: "+""+rs.getString("responsavel_cpf")); System.out.println("-----------------------"); } } if(jComboBox1.getSelectedItem()=="Responsvel - nome"){ String sql = "SELECT responsavel_codigo, responsavel_nome, responsavel_cpf FROM responsavel WHERE responsavel_nome LIKE ('"+ '%'+jTextField21.getText()+'%'+"')"; ResultSet rs=stmt.executeQuery(sql); while (rs.next()){ System.out.println("Cdigo: "+""+rs.getInt("responsavel_codigo")); System.out.println("Nome: "+""+rs.getString("responsavel_nome")); System.out.println("CPF: "+""+rs.getString("responsavel_cpf")); System.out.println("-----------------------"); } } if (jComboBox1.getSelectedItem()=="Plano - cdigo"){ String sql = "SELECT plano_codigo, plano_nome FROM plano_saude WHERE plano_codigo = ('"+ jTextField21.getText()+"')"; ResultSet rs=stmt.executeQuery(sql); while (rs.next()){ System.out.println("Cdigo: "+""+rs.getInt("plano_codigo")); System.out.println("Nome: "+""+rs.getString("plano_nome")); System.out.println("-----------------------"); } } if (jComboBox1.getSelectedItem()=="Plano - nome"){ 58

String sql = "SELECT plano_codigo, plano_nome FROM plano_saude WHERE plano_nome LIKE ('"+ '%'+jTextField21.getText()+'%'+"')"; ResultSet rs=stmt.executeQuery(sql); while (rs.next()){ System.out.println("Cdigo: "+""+rs.getInt("plano_codigo")); System.out.println("Nome: "+""+rs.getString("plano_nome")); System.out.println("-----------------------"); } }

8.9.3.1 Form Receita

59

Boto Cadastrar String sqlinsert= "insert into receita (receita_medicamento, receita_apresentacao, receita_prescricao, receita_uso, receita_quantidade, receita_tempo) values ('"+ jTextField3.getText()+"','"+ //Medicamento jTextField6.getText()+"','"+ //Apresentao jTextField4.getText()+"','"+ //Prescrio jTextField7.getText()+"','"+ //Uso jTextField8.getText()+"','"+ //Quantidade jTextField5.getText()+"')"; //Tempo stmt.executeUpdate(sqlinsert); JOptionPane.showMessageDialog(null, "Gravao realizado com sucesso!"); Boto Ir Parar String sql = "SELECT receita_codigo, receita_medicamento, receita_apresentacao, receita_prescricao, receita_uso, receita_quantidade, receita_tempo, consulta_codigo FROM receita WHERE receita_codigo=('"+ jTextField1.getText()+"')"; ResultSet rs=stmt.executeQuery(sql); while (rs.next()){ jTextField1.setText(rs.getString("receita_codigo")); jTextField3.setText(rs.getString("receita_medicamento")); jTextField6.setText(rs.getString("receita_apresentacao")); jTextField4.setText(rs.getString("receita_prescricao")); jTextField7.setText(rs.getString("receita_uso")); jTextField8.setText(rs.getString("receita_quantidade")); jTextField5.setText(rs.getString("receita_tempo")); jTextField2.setText(""+rs.getString("consulta_codigo")); } 60

Boto Excluir String sqlinsert = "delete from receita where receita_codigo="+ jTextField1.getText(); stmt.executeUpdate(sqlinsert); JOptionPane.showMessageDialog(null, "Excluso realizada com sucesso!"); Boto Limpar jTextField1.setText(""); jTextField2.setText(""); jTextField3.setText(""); jTextField4.setText(""); jTextField5.setText(""); jTextField6.setText(""); jTextField7.setText(""); jTextField8.setText(""); jTextField9.setText(""); Boto Retornar this.hide(); Boto Localizar if(jTextField9.getText().equals("")){ JOptionPane.showMessageDialog(null,"Digite algo para localizar!"); } if(jComboBox1.getSelectedItem()=="Data"){ String sql = "SELECT consulta.consulta_codigo, paciente.paciente_nome, consulta.consulta_dia, consulta.medico_crm FROM consulta INNER JOIN paciente

61

ON paciente.paciente_codigo=consulta.paciente_codigo AND consulta.consulta_dia=('"+ jTextField9.getText()+"')"; ResultSet rs=stmt.executeQuery(sql); while(rs.next()){ System.out.println("Cdigo: "+""+rs.getInt("consulta_codigo")); System.out.println("Nome: "+rs.getString("paciente_nome")); System.out.println("Data: "+rs.getString("consulta_dia")); System.out.println("CRM: "+rs.getString("medico_crm")); System.out.println("-----------------------"); } } if(jComboBox1.getSelectedItem()=="Paciente"){ String sql = "SELECT consulta.consulta_codigo, paciente.paciente_nome, consulta.consulta_dia, consulta.medico_crm FROM consulta INNER JOIN paciente ON paciente.paciente_codigo=consulta.paciente_codigo AND paciente.paciente_nome LIKE ('"+ '%'+jTextField9.getText()+'%'+"')"; ResultSet rs=stmt.executeQuery(sql); while(rs.next()){ System.out.println("Cdigo: "+""+rs.getInt("consulta_codigo")); System.out.println("Nome: "+rs.getString("paciente_nome")); System.out.println("Data: "+rs.getString("consulta_dia")); System.out.println("CRM: "+rs.getString("medico_crm")); System.out.println("-----------------------"); } }

62

8.9.3.2 Form Atestado

Boto Cadastrar String sqlinsert= "insert into atestado (consulta_codigo,atestado_procedimentos) values ('"+ jTextField2.getText()+"','"+ jTextPane1.getText()+"')"; stmt.executeUpdate(sqlinsert); JOptionPane.showMessageDialog(null, "Gravao realizado com sucesso!");

Boto Ir Para String sql = "SELECT atestado_codigo, consulta_codigo, atestado_procedimentos FROM atestado WHERE atestado_codigo=('"+ 63

jTextField1.getText()+"')"; ResultSet rs=stmt.executeQuery(sql); while (rs.next()){ jTextField1.setText(rs.getString("atestado_codigo")); jTextField2.setText(rs.getString("consulta_codigo")); jTextPane1.setText(rs.getString("atestado_procedimentos")); } Boto Excluir String sqlinsert = "delete from atestado where atestado_codigo="+ jTextField1.getText(); stmt.executeUpdate(sqlinsert); JOptionPane.showMessageDialog(null, "Excluso realizada com sucesso!"); Boto Limpar jTextField1.setText(""); jTextField2.setText(""); jTextField3.setText(""); jTextPane1.setText(""); Boto Retornar this.hide(); Boto Localizar if(jTextField3.getText().equals("")){ JOptionPane.showMessageDialog(null,"Digite algo para localizar!"); }

64

if(jComboBox1.getSelectedItem()=="Data"){ String sql = "SELECT consulta.consulta_codigo, paciente.paciente_nome, consulta.consulta_dia, consulta.medico_crm FROM consulta INNER JOIN paciente ON paciente.paciente_codigo=consulta.paciente_codigo AND consulta.consulta_dia=('"+ jTextField3.getText()+"')"; ResultSet rs=stmt.executeQuery(sql); while(rs.next()){ System.out.println("Cdigo: "+""+rs.getInt("consulta_codigo")); System.out.println("Nome: "+rs.getString("paciente_nome")); System.out.println("Data: "+rs.getString("consulta_dia")); System.out.println("CRM: "+rs.getString("medico_crm")); System.out.println("-----------------------"); } } if(jComboBox1.getSelectedItem()=="Paciente"){ String sql = "SELECT consulta.consulta_codigo, paciente.paciente_nome, consulta.consulta_dia, consulta.medico_crm FROM consulta INNER JOIN paciente ON paciente.paciente_codigo=consulta.paciente_codigo AND paciente.paciente_nome LIKE ('"+ '%'+jTextField3.getText()+'%'+"')"; ResultSet rs=stmt.executeQuery(sql); while(rs.next()){ System.out.println("Cdigo: "+""+rs.getInt("consulta_codigo")); System.out.println("Nome: "+rs.getString("paciente_nome")); System.out.println("Data: "+rs.getString("consulta_dia")); System.out.println("CRM: "+rs.getString("medico_crm")); System.out.println("-----------------------"); } }

65

8.9.3.3 Form Responsvel

Boto Cadastrar String sqlinsert= "insert into responsavel (responsavel_nome, responsavel_cpf, responsavel_tel) values ('"+ jTextField2.getText()+"','"+ //Nome jTextField3.getText()+"','"+ //CPF jTextField4.getText()+"')"; //Tel stmt.executeUpdate(sqlinsert); JOptionPane.showMessageDialog(null, "Gravao realizado com sucesso!"); } Boto Ir Para String sql = "SELECT responsavel_codigo, responsavel_nome, responsavel_cpf, responsavel_tel FROM responsavel WHERE responsavel_codigo=('"+ jTextField1.getText()+"')"; 66

ResultSet rs=stmt.executeQuery(sql); while (rs.next()){ jTextField1.setText(rs.getString("responsavel_codigo")); jTextField2.setText(rs.getString("responsavel_nome")); jTextField3.setText(rs.getString("responsavel_cpf")); jTextField4.setText(rs.getString("responsavel_tel")); } Boto Excluir

String sqlinsert = "delete from responsavel where responsavel_codigo="+ jTextField1.getText(); stmt.executeUpdate(sqlinsert); JOptionPane.showMessageDialog(null, "Excluso realizada com sucesso!"); Boto Limpar jTextField1.setText(""); jTextField2.setText(""); jTextField3.setText(""); jTextField4.setText(""); jTextField5.setText(""); Boto Retornar this.hide();

67

Boto Localizar if(jTextField5.getText().equals("")){ JOptionPane.showMessageDialog(null,"Digite algo para localizar!"); }

else{ String sql = "SELECT responsavel_codigo, responsavel_nome, responsavel_cpf, responsavel_tel FROM responsavel WHERE responsavel_nome LIKE ('"+ '%'+jTextField5.getText()+'%'+"')"; ResultSet rs=stmt.executeQuery(sql); while (rs.next()){ System.out.println("Cdigo: "+""+rs.getString("responsavel_codigo")); System.out.println("Nome: "+""+rs.getString("responsavel_nome")); System.out.println("CPF: "+""+rs.getString("responsavel_cpf")); System.out.println("Telefone: "+""+rs.getString("responsavel_tel")); System.out.println("-----------------------"); } }

68

8.9.3.4 Form Endereos

Boto Cadastrar String sqlinsert= "insert into paciente_endereco (paciente_cep, paciente_rua, paciente_num, paciente_complemento, paciente_bairro, paciente_cidade, paciente_estado) values ('"+ jTextField8.getText()+"','"+ jTextField2.getText()+"','"+ jTextField3.getText()+"','"+ jTextField4.getText()+"','"+ jTextField5.getText()+"','"+ jTextField6.getText()+"','"+ jTextField7.getText()+"')"; stmt.executeUpdate(sqlinsert);

69

JOptionPane.showMessageDialog(null, "Gravao realizado com sucesso!"); Boto Ir Para String sql = "SELECT paciente_end_codigo, paciente_cep, paciente_rua, paciente_num, paciente_complemento, paciente_bairro, paciente_cidade, paciente_estado FROM paciente_endereco WHERE paciente_end_codigo=('"+ jTextField1.getText()+"')"; ResultSet rs=stmt.executeQuery(sql); while (rs.next()){ jTextField1.setText(rs.getString("paciente_end_codigo")); jTextField8.setText(rs.getString("paciente_cep")); jTextField2.setText(rs.getString("paciente_rua")); jTextField3.setText(rs.getString("paciente_num")); jTextField4.setText(rs.getString("paciente_complemento")); jTextField5.setText(rs.getString("paciente_bairro")); jTextField6.setText(rs.getString("paciente_cidade")); jTextField7.setText(rs.getString("paciente_estado")); } Boto Excluir String sqlinsert = "delete from endereco where paciente_end_codigo="+ jTextField1.getText(); stmt.executeUpdate(sqlinsert); JOptionPane.showMessageDialog(null, "Excluso realizada com sucesso!"); Boto Limpar jTextField1.setText(""); jTextField2.setText(""); jTextField3.setText(""); jTextField4.setText(""); jTextField5.setText(""); 70

jTextField6.setText(""); jTextField7.setText(""); jTextField8.setText(""); jTextField9.setText(""); Boto Retornar this.hide(); Boto Localizar if(jTextField9.getText().equals("")){ JOptionPane.showMessageDialog(null,"Digite algo para localizar!"); }

else{ String sql = "SELECT paciente_end_codigo, paciente_cep, paciente_rua, paciente_num FROM paciente_endereco WHERE paciente_rua LIKE ('"+ '%'+jTextField9.getText()+'%'+"')"; ResultSet rs=stmt.executeQuery(sql); while (rs.next()){ System.out.println("Cdigo: "+""+rs.getString("paciente_end_codigo")); System.out.println("CEP: "+""+rs.getString("paciente_cep")); System.out.println("Rua: "+""+rs.getString("paciente_rua")); System.out.println("Nmero: "+""+rs.getString("paciente_num")); System.out.println("-----------------------"); } }

71

8.9.4 Form Mdicos

Boto Cadastrar String sqlinsert= "insert into medico (medico_crm, medico_nome, medicoespec1, medico_espec2) values ('"+ jTextField1.getText()+"','"+ //CRM jTextField2.getText()+"','"+ //Nome jTextField3.getText()+"','"+ //Especializao jTextField4.getText()+"')"; //Especializao stmt.executeUpdate(sqlinsert); JOptionPane.showMessageDialog(null, "Gravao realizado com sucesso!"); Boto Ir Para String sql = "SELECT medico_crm, medico_nome, medico_espec1, medico_espec2 FROM medico WHERE medico_crm=('"+ jTextField1.getText()+"')"; ResultSet rs=stmt.executeQuery(sql);

72

while (rs.next()){ jTextField1.setText(rs.getString("medico_crm")); jTextField2.setText(rs.getString("medico_nome")); jTextField3.setText(rs.getString("medico_espec1")); jTextField4.setText(rs.getString("medico_espec2")); } Boto Excluir String sqlinsert = "delete from medico where medico_crm="+ jTextField1.getText(); stmt.executeUpdate(sqlinsert); JOptionPane.showMessageDialog(null, "Excluso realizada com sucesso!"); Boto Limpar jTextField1.setText(""); jTextField2.setText(""); jTextField3.setText(""); jTextField4.setText(""); jTextField5.setText(""); Boto Retornar new Menu().setVisible(true); this.hide(); 8.9.5 Form Planos de Sade

73

Boto Cadastrar String sqlinsert= "insert into planosaude (plano_nome, plano_descricao) values ('"+ jTextField2.getText()+"','"+ //Nome jTextArea1.getText()+"')"; //Descrio stmt.executeUpdate(sqlinsert); JOptionPane.showMessageDialog(null, "Gravao realizado com sucesso!"); Boto Ir Para String sql = "SELECT plano_codigo, plano_nome, plano_descricao FROM plano_saude WHERE plano_codigo=('"+ jTextField1.getText()+"')"; ResultSet rs=stmt.executeQuery(sql); while (rs.next()){ jTextField1.setText(rs.getString("plano_codigo")); jTextField2.setText(rs.getString("plano_nome")); jTextArea1.setText(rs.getString("plano_descricao")); } Boto Excluir String sqlinsert = "delete from planosaude where plano_codigo="+ jTextField1.getText(); stmt.executeUpdate(sqlinsert); JOptionPane.showMessageDialog(null, "Excluso realizada com sucesso!"); Boto Limpar jTextField1.setText(""); jTextField2.setText(""); jTextField3.setText(""); jTextArea1.setText(""); 74

Boto Retornar new Menu().setVisible(true); this.hide(); Boto Localizar if(jTextField3.getText().equals("")){ JOptionPane.showMessageDialog(null,"Digite algo para localizar!"); } else{ String sql = "SELECT plano_codigo, plano_nome, plano_descricao FROM plano_saude WHERE plano_nome LIKE ('"+ '%'+jTextField3.getText()+'%'+"')"; ResultSet rs=stmt.executeQuery(sql); while (rs.next()){ System.out.println("Cdigo:"+""+rs.getString("plano_codigo")); System.out.println("Nome:"+""+rs.getString("plano_nome")); System.out.println("Descrio:"+""+rs.getString("plano_descricao")); System.out.println("-----------------------"); } }

75

8.9.6 Form Consultas

Boto Cadastrar String sqlinsert= "insert into consulta (paciente_codigo,consulta_dia, consulta_hora, medico_crm) values ('"+ jTextField2.getText()+"','"+ //pac_cod jTextField4.getText()+"','"+ //Dia jTextField5.getText()+"','"+ //Hora jTextField3.getText()+"')"; //CRM do Mdico stmt.executeUpdate(sqlinsert); JOptionPane.showMessageDialog(null, "Gravao realizado com sucesso!"); Boto Ir Para String sql = "SELECT consulta_codigo, paciente_codigo, medico_crm, consulta_dia, consulta_hora FROM consulta WHERE consulta_codigo=('"+ jTextField1.getText()+"')"; ResultSet rs=stmt.executeQuery(sql); while (rs.next()){ jTextField1.setText(rs.getString("consulta_codigo")); 76

jTextField2.setText(""+rs.getString("paciente_codigo")); jTextField3.setText(rs.getString("medico_crm")); jTextField4.setText(rs.getString("consulta_dia")); jTextField5.setText(rs.getString("consulta_hora")); } Boto Excluir String sqlinsert = "delete from atestado where consulta_codigo= "+jTextField1.getText(); stmt.executeUpdate(sqlinsert); String sqlinsert02 = "delete from receita where consulta_codigo= "+jTextField1.getText(); stmt.executeUpdate(sqlinsert02); String sqlinsert03= "delete from consulta where consulta_codigo= "+jTextField1.getText(); stmt.executeUpdate(sqlinsert03); JOptionPane.showMessageDialog(null, "Excluso realizada com sucesso!"); Boto Limpar jTextField1.setText(""); jTextField2.setText(""); jTextField3.setText(""); jTextField4.setText(""); jTextField5.setText(""); jTextField7.setText(""); jTextField8.setText(""); Boto Retornar new Menu().setVisible(true); this.hide(); 77

Boto Localizar Paciente if(jTextField8.getText().equals("")){ JOptionPane.showMessageDialog(null,"Digite algo para localizar!"); } if(jComboBox2.getSelectedItem()=="Cdigo"){ String sql = "SELECT paciente_codigo, paciente_nome, paciente_cpf FROM paciente WHERE paciente_codigo = ('"+ jTextField8.getText()+"')"; ResultSet rs=stmt.executeQuery(sql); while(rs.next()){ System.out.println("Cdigo: "+""+""+rs.getInt("paciente_codigo")); System.out.println("Nome: "+""+rs.getString("paciente_nome")); System.out.println("CPF: "+""+rs.getString("paciente_cpf")); System.out.println("-----------------------"); } } if(jComboBox2.getSelectedItem()=="Nome"){ String sql = "SELECT paciente_codigo, paciente_nome, paciente_cpf FROM paciente WHERE paciente_nome LIKE ('"+ '%'+jTextField8.getText()+'%'+"')"; ResultSet rs=stmt.executeQuery(sql); while(rs.next()){ System.out.println("Cdigo: "+""+""+rs.getInt("paciente_codigo")); System.out.println("Nome: "+""+rs.getString("paciente_nome")); System.out.println("CPF: "+""+rs.getString("paciente_cpf")); System.out.println("-----------------------"); } Boto Localizar Cosulta if(jTextField7.getText().equals("")){ JOptionPane.showMessageDialog(null,"Digite algo para localizar!"); 78

} if(jComboBox1.getSelectedItem()=="CRM"){ String sql = "SELECT medico_crm, paciente_codigo, consulta_dia, consulta_hora, consulta_codigo FROM consulta WHERE medico_crm = ('"+ jTextField7.getText()+"')"; ResultSet rs=stmt.executeQuery(sql); while(rs.next()){ System.out.println("CRM: "+""+rs.getInt("medico_crm")); System.out.println("Cdigo do Paciente: "+""+rs.getString("paciente_codigo")); System.out.println("Dia: "+""+rs.getString("consulta_dia")); System.out.println("Hora: "+""+rs.getString("consulta_hora")); System.out.println("Cdigo da Consulta: "+""+""+rs.getString("consulta_codigo")); System.out.println("-----------------------"); } } if(jComboBox1.getSelectedItem()=="Data"){ String sql = "SELECT consulta_codigo,consulta_dia, consulta_hora, medico_crm, paciente_codigo FROM consulta WHERE consulta_dia = ('"+ jTextField7.getText()+"')"; ResultSet rs=stmt.executeQuery(sql); while(rs.next()){ System.out.println("Cdigo da Consulta: "+""+""+rs.getInt("consulta_codigo")); System.out.println("Dia: "+""+rs.getString("consulta_dia")); System.out.println("Hora: "+""+rs.getString("consulta_hora")); System.out.println("CRM: "+""+rs.getString("medico_crm")); System.out.println("Cdigo do Paciente: "+""+rs.getString("paciente_codigo")); System.out.println("-----------------------"); 79

} } if(jComboBox1.getSelectedItem()=="Paciente"){ String sql = "SELECT paciente_codigo, consulta_dia, consulta_hora FROM consulta WHERE paciente_codigo = ('"+ jTextField7.getText()+"')"; ResultSet rs=stmt.executeQuery(sql); while(rs.next()){ System.out.println("Cdigo: "+""+rs.getInt("paciente_codigo")); System.out.println("Dia: "+""+rs.getString("consulta_dia")); System.out.println("Hora: "+""+rs.getString("consulta_hora")); System.out.println("-----------------------"); }

80

8.10 Cronograma de Atividades

Cronograma de Atividades ATIVIDADES


Set S 6 S 13 S S S 3 S 10 Out S 17 S S S 7 S 14 Nov S S Dez S 5 Mar S 28 S 4 S 11 Abr S S S 2 S 9 Mai S 16 S 23 S 30 S 6 Jun S 13

20 27

24 31

21 28

18 25

Planejamento Elaborao da Entrevista Entrevista com a Mdica DER Elaborao de Tabelas Pesquisas Elaborao e Correo de Diagramas e Fluxogramas Criao do Banco de Dados Criao da Interface Grfica e Programao Finalizao do Trabalho para Impresso

81

Você também pode gostar