Skip to main content

Banco de Dados

  O banco de dados é um componente essencial para o funcionamento do sistema, pois é responsável por armazenar e gerenciar as informações necessárias para o correto funcionamento da aplicação. Neste contexto, o banco de dados da solução Pharmabot foi projetado para armazenar informações sobre os usuários, medicamentos, pedidos de fitas de medicamentos e registros de saídas dos medicamentos. A seguir, são apresentadas as entidades e atributos do banco de dados, bem como o modelo entidade-relacionamento (ER) elaborado para a solução.

Modelo Entidade-Relacionamento (ER)

  O modelo entidade-relacionamento (ER) é uma representação gráfica das entidades e relacionamentos presentes no banco de dados, permitindo visualizar a estrutura e as interações entre os dados. No contexto da solução Pharmabot, o modelo ER foi elaborado considerando as principais entidades e atributos necessários para o funcionamento do sistema. A seguir, é apresentado o modelo ER da solução Pharmabot.

Figura 1 - Modelo Entidade-Relacionamento (ER) da Solução Pharmabot

Modelo ER

Fonte: Elaboração própria (2025)

  O modelo ER apresentado na Figura 1 contempla as seguintes entidades e atributos:

  • Medicamentos: Armazena informações sobre os medicamentos cadastrados no sistema, como nome, descrição, fabricante, validade, lote e dose.

  • Pacientes: Contém os dados dos pacientes atendidos pelo hospital, como nome, número do prontuário (HC) e leito.

  • Configurações Robô: Registra as configurações do robô, como velocidade de operação e status.

  • Usuários: Armazena os dados dos usuários do sistema, como nome, e-mail, senha e data de criação.

  • Pedidos: Registra os pedidos de fitas de medicamentos realizados pelos usuários, contendo informações como status, data do pedido, paciente associado, prioridade e usuário que liberou o pedido.

  • Estoque: Gerencia o estoque de medicamentos disponíveis no hospital, com informações sobre a quantidade, localização e medicamento associado.

  • Logs do Sistema: Registra as ações realizadas pelos usuários no sistema, como autenticação, solicitação de fitas de medicamentos e consultas de estoque.

  • Configurações Bins: Armazena as configurações dos bins de armazenamento dos medicamentos, com informações sobre o bin, coordenada e configuração do robô associada.

  • Pedidos Medicamentos: Relaciona os pedidos de fitas de medicamentos com os medicamentos solicitados, contendo informações sobre a quantidade de cada medicamento no pedido.

  Com base no modelo ER apresentado, foram elaboradas as tabelas do banco de dados da solução Pharmabot, conforme descrito a seguir.

Tabelas do Banco de Dados

  A seguir, são apresentadas as tabelas do banco de dados da solução Pharmabot, com os atributos e relacionamentos entre as entidades e os comando SQL para a criação de cada tabela.

Tabela medicamentos

  A tabela medicamentos armazena informações sobre os medicamentos cadastrados no sistema, como nome, descrição, fabricante, validade, lote e dose.

CREATE TABLE `medicamentos` (
`id` INT NOT NULL AUTO_INCREMENT,
`nome` TEXT NOT NULL,
`descricao` TEXT,
`fabricante` TEXT,
`validade` DATE,
`lote` TEXT,
`dose` TEXT,
PRIMARY KEY (`id`)
) ENGINE=InnoDB;

Tabela pacientes

  A tabela pacientes contém os dados dos pacientes atendidos pelo hospital, como nome, número do prontuário (HC) e leito.

CREATE TABLE `pacientes` (
`id` INT NOT NULL AUTO_INCREMENT,
`nome` TEXT NOT NULL,
`hc` TEXT,
`leito` TEXT,
PRIMARY KEY (`id`)
) ENGINE=InnoDB;

Tabela configuracoes_robo

  A tabela configuracoes_robo registra as configurações do robô, como velocidade de operação e status.

CREATE TABLE `configuracoes_robo` (
`id` INT NOT NULL AUTO_INCREMENT,
`velocidade_operacao` INT,
`status` TEXT,
PRIMARY KEY (`id`)
) ENGINE=InnoDB;

Tabela usuarios

  A tabela usuarios armazena os dados dos usuários do sistema, como nome, e-mail, senha e data de criação.

CREATE TABLE `usuarios` (
`id` INT NOT NULL AUTO_INCREMENT,
`nome` TEXT NOT NULL,
`email` TEXT NOT NULL,
`senha` TEXT NOT NULL,
`data_criacao` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB;

Tabela pedidos

  A tabela pedidos registra os pedidos de fitas de medicamentos realizados pelos usuários, contendo informações como status, data do pedido, paciente associado, prioridade e usuário que liberou o pedido.

CREATE TABLE `pedidos` (
`id` INT NOT NULL AUTO_INCREMENT,
`status` TEXT,
`data_pedido` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
`paciente_id` INT,
`prioridade` INT,
`liberado_por` TEXT,
PRIMARY KEY (`id`),
FOREIGN KEY (`paciente_id`) REFERENCES `pacientes`(`id`)
) ENGINE=InnoDB;

Tabela estoque

  A tabela estoque gerencia o estoque de medicamentos disponíveis no hospital, com informações sobre a quantidade, localização e medicamento associado.

CREATE TABLE `estoque` (
`id` INT NOT NULL AUTO_INCREMENT,
`medicamento_id` INT,
`quantidade` INT NOT NULL,
`bin_localizacao` TEXT,
PRIMARY KEY (`id`),
FOREIGN KEY (`medicamento_id`) REFERENCES `medicamentos`(`id`)
) ENGINE=InnoDB;

Tabela logs_sistema

  A tabela logs_sistema registra as ações realizadas pelos usuários no sistema, como autenticação, solicitação de fitas de medicamentos e consultas de estoque.

CREATE TABLE `logs_sistema` (
`id` INT NOT NULL AUTO_INCREMENT,
`usuario_id` INT,
`acao` TEXT NOT NULL,
`data_hora` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
`detalhes` TEXT,
PRIMARY KEY (`id`),
FOREIGN KEY (`usuario_id`) REFERENCES `usuarios`(`id`)
) ENGINE=InnoDB;

Tabela configuracoes_bins

  A tabela configuracoes_bins armazena as configurações dos bins de armazenamento dos medicamentos, com informações sobre o bin, coordenada e configuração do robô associada.

CREATE TABLE `configuracoes_bins` (
`id` INT NOT NULL AUTO_INCREMENT,
`configuracao_robo_id` INT,
`bin_id` TEXT NOT NULL,
`coordenada` TEXT NOT NULL,
PRIMARY KEY (`id`),
FOREIGN KEY (`configuracao_robo_id`) REFERENCES `configuracoes_robo`(`id`)
) ENGINE=InnoDB;

Tabela pedidos_medicamentos

  A tabela pedidos_medicamentos relaciona os pedidos de fitas de medicamentos com os medicamentos solicitados, contendo informações sobre a quantidade de cada medicamento no pedido.

CREATE TABLE `pedidos_medicamentos` (
`id` INT NOT NULL AUTO_INCREMENT,
`pedido_id` INT,
`medicamento_id` INT,
`quantidade` INT NOT NULL,
PRIMARY KEY (`id`),
FOREIGN KEY (`pedido_id`) REFERENCES `pedidos`(`id`),
FOREIGN KEY (`medicamento_id`) REFERENCES `medicamentos`(`id`)
) ENGINE=InnoDB;

  Com as tabelas e relacionamentos definidos, o banco de dados da solução Pharmabot está estruturado para armazenar e gerenciar as informações necessárias para o correto funcionamento do sistema, garantindo a eficiência e qualidade da aplicação.