A aplicação Clínica Médica de Coimbra simula uma clínica médica fictícia, apresentando ao utilizador dados da mesma, podendo estes ser modificados: criar novos dados, editar dados, eliminar dados.
Esta aplicação foi desenvolvida com o intuito de demonstrar como efetuar a ligação de uma aplicação desktop, desenvolvida na linguagem C#, a uma base de dados MySQL/MariaDB.
Para executar esta aplicação é necessário:
- um servidor de base de dados em execução (por exemplo: MariaDB ou MySQL em execução utilizando o software XAMPP)
- a base de dados
clinica_medica_coimbra(ficheiro clinica-medica-coimbra.sql) - o conector MySQL/NET connector
- .NET Framework 4.7.2
Para utilizar a aplicação deverá efetuar login com os seguintes dados:
- utilizador: user1
- password: 123
A aplicação foi desenvolvida com o intuito de demonstrar os seguintes conceitos:
- obter dados de uma base de dados e apresentá-los ao utilizador
- inserir novos dados na base de dados
- editar os dados na base de dados
- eliminar dados na base de dados
Como já foi referido, a aplicação comunica com um servidor de base de dados.
A base de dados contém as seguintes tabelas:
utilizadores: dados de autenticação (username e password) que permitem aos utilizadores o acesso à aplicaçãoespecialidades: especialidades médicas dos médicos da clínicasistemas_saude: sistemas/subsistemas de saúde dos pacientesmedicos: os médicos da clínicapacientes: os pacientes da clínicamarcacoes: marcações de consultas
Para armazenar os dados na aplicação foram definidas as seguintes classes:
EspecialidadeMarcacaoMedicoPacienteSistemaSaude
Estas classes replicam a estrutura da base de dados e permitem armazenar os dados de um único registo: ou seja, uma instância de uma das classes corresponde a um registo de uma tabela.
Para armazenar os dados de todos os registos das tabelas utilizam-se as seguintes classes:
Especialidades(classe estática)SistemasSaude(classe estática)MedicosPacientesMarcacoes
Repare que, em cada uma destas classes, os dados são colocados num dicionário, chamado Dados. A chave de acesso a cada registo no dicionário corresponde à chave primária na tabela da base de dados.
Esta aplicação utiliza o design pattern Active Record: ou seja, as operações de bases de dados (ler, inserir, editar e eliminar) são implementadas diretamente nas classes que armazenam os dados.
As classes possuem os seguintes métodos os quais implementam as referidas operações:
InicializarDados(): obter os dados a partir da base de dadosAdicionar(): inserir um registo na base de dadosAtualizar(): editar um registo na base de dadosEliminar(): eliminar um registo na base de dados
As seguintes classes implementam funcionalidades adicionais:
LigacaoDB: contém os dados de ligação ao servidor de base de dadosAutenticação: esta classe trata da autenticação de um utilizador na aplicaçãoLog: esta classe adiciona registos ao log da aplicação
Importa referir que a connection string para a base de dados, é armazenada na classe LigacaoDB por uma questão de conveniência e sem qualquer tipo de segurança.
Numa aplicação real este tipo de dados deverão ser armazenados num local seguro e encriptado.
O log (ou registo de eventos) é efetuado num ficheiro de texto e serve como suporte ao programador da aplicação permitindo obter informações detalhadas sobre as operações efetuadas e os erros ocorridos:
A classe estática Log é responsável por implementar as operações necessárias:
O nome e localização do ficheiro de texto são especificados na constante privada FicheiroLog. Por defeito o ficheiro de log chama-se clinica-medica.log e é criado na pasta do executável.
O método AdicionarEvento() é utilizado para adicionar os eventos ao ficheiro.
Durante o arranque da aplicação são efetuadas várias operações de inicialização, nomeadamente:
- Registar no log o início da aplicação
- Efetuar autenticação
- Obter dados das especialidades médicas
- Obter dados dados dos sistemas de saúde
- Obter dados dados dos médicos
- Obter dados dados dos pacientes
- Obter dados dados das marcações
- Mostrar a janela principal da aplicação








