Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • W wiki
  • Project information
    • Project information
    • Activity
    • Labels
    • Planning hierarchy
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Infrastructure Registry
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Amparo
  • wiki
  • Wiki
  • banco_dados

Last edited by Clara Da Cunha D Ávila Oct 06, 2023
Page history
This is an old version of this page. You can view the most recent version or browse the history.

banco_dados

Home Escopo e Cronograma Processo Design/Mockups Configuração Arquitetura Código BD Qualidade Utilização

Banco de Dados

Descrição

O PostgreSQL, muitas vezes chamado de Postgres, é um poderoso sistema de gerenciamento de banco de dados relacional de código aberto. Ele é projetado para armazenar, recuperar e gerenciar dados estruturados em um ambiente de banco de dados relacional. Sua natureza de código aberto significa que seu código-fonte é livremente acessível e modificável pela comunidade de desenvolvedores em todo o mundo.

Banco de Dados Amparo

Este banco de dados PostgreSQL é projetado para gerenciar informações relacionadas à plataforma de saúde Amparo, que envolve médicos, pacientes, planos de saúde, medicamentos, informações médicas, agendamento de consultas, exames e interações sociais entre pacientes por meio de postagens e votos em postagens.

Tabelas e Relações

  • User: Armazena informações de usuários, incluindo médicos e pacientes, com um identificador único (UUID). Os usuários têm campos como email, senha criptografada, nome, número de celular e podem ter uma imagem de perfil. Também há um campo booleano para determinar se o usuário é anônimo.

  • Doctor: Mantém informações específicas de médicos, como CRM (registro médico) e UF (unidade federativa), e possui uma relação com a tabela de usuários para identificação única.

  • HealthPlan: Armazena detalhes sobre planos de saúde, incluindo nome e imagem do plano.

  • DoctorHealthPlan: Registra a associação entre médicos e planos de saúde, permitindo que médicos aceitem ou trabalhem com planos específicos.

  • Patient: Armazena informações de pacientes, incluindo CPF (Cadastro de Pessoa Física), com relação à tabela de usuários para identificação única.

  • Information: Mantém informações médicas e de saúde, como título, link, imagem e descrição, associadas a médicos.

  • DoctorPatient: Registra a relação entre médicos e pacientes, permitindo que médicos tenham pacientes atribuídos.

  • Appointment: Controla agendamentos de consultas entre médicos e pacientes, com informações de data e hora.

  • Medicine: Armazena detalhes sobre medicamentos, incluindo nome e folheto informativo.

  • Dosage: Registra informações sobre dosagens de medicamentos, incluindo a quantidade, hora inicial, frequência e data final, associadas a pacientes e medicamentos.

  • Incompatibility: Mantém informações sobre incompatibilidades entre medicamentos, com um campo de severidade e descrição.

  • Exam: Gerencia informações de exames médicos, incluindo descrição, data do exame e status de conclusão, com associação a pacientes.

  • Post: Permite que pacientes criem postagens relacionadas à saúde, com conteúdo, data de criação e a capacidade de serem relacionadas a outras postagens. Os pacientes podem votar nas postagens (curtir ou não gostar), e as postagens podem ser marcadas como principais ou não.

  • Vote: Registra os votos (curtir ou não gostar) dados pelos pacientes nas postagens, com relação à tabela de postagens e pacientes.

Este banco de dados é projetado para oferecer suporte a uma variedade de operações relacionadas à saúde, desde o gerenciamento de informações médicas até a comunicação e interação entre médicos e pacientes por meio de agendamento de consultas e interações sociais na forma de postagens.

Sumário

  • Modelagem
  • Esquema Conceitual
  • Esquema Lógico
  • Implementação
  • Knex
  • Schemas
  • Postgrees

Modelagem

Esquema Conceitual

TBD

Esquema Lógico

Esquema Lógico

Implementação

TBD

Knex

TBD

Schemas

Table User

  • id (uuid, primary key)
  • email (text unique, not null)
  • password (text not null)
  • salt (text not null)
  • name (text not null)
  • cellphone (text not null)
  • profile_picture (text)
  • is_anonymous (boolean)

Table Doctor

  • id (uuid, unique, primary key)
  • crm (text unique, not null)
  • uf (text not null)
  • id (uuid, foreign key referencing User)

Table HealthPlan

  • id (uuid, primary key)
  • name (text not null)
  • health_plan_image (text)

Table DoctorHealthPlan

  • id (uuid, primary key)
  • id_doctor (uuid)
  • id_health_plan (uuid)
  • Foreign key (id_doctor) references Doctor (id)
  • Foreign key (id_health_plan) references HealthPlan (id)

Table Patient

  • id (uuid, unique, primary key)
  • cpf (text)
  • Foreign key (id) references User (id)

Table Information

  • id (uuid, primary key)
  • title (text)
  • link (text)
  • image (text)
  • description (text)
  • id_doctor (uuid, not null)
  • Foreign key (id_doctor) references Doctor (id)

Table DoctorPatient

  • id (uuid, primary key)
  • id_doctor (uuid)
  • id_patient (uuid)
  • Foreign key (id_doctor) references Doctor (id)
  • Foreign key (id_patient) references Patient (id)

Table Appointment

  • id (uuid, primary key)
  • id_doctor (uuid)
  • id_patient (uuid)
  • appointment_date (timestamp not null)
  • Foreign key (id_doctor) references Doctor (id)
  • Foreign key (id_patient) references Patient (id)

Table Medicine

  • id (uuid, primary key)
  • name (text not null)
  • leaflet (text)

Table Dosage

  • id (uuid, primary key)
  • id_patient (uuid)
  • id_medicine (uuid)
  • quantity (text not null)
  • initial_hour (timestamp)
  • frequency (timestamp)
  • final_date (timestamp)
  • Foreign key (id_patient) references Patient (id)
  • Foreign key (id_medicine) references Medicine (id)

Table Incompatibility

  • id (uuid, primary key)
  • id_medicine (uuid)
  • id_medicine_inc (uuid)
  • severity (text)
  • description (text)
  • Foreign key (id_medicine) references Medicine (id)
  • Foreign key (id_medicine_inc) references Medicine (id)

Table Exam

  • id (uuid, primary key)
  • description (text)
  • exam_date (timestamp not null)
  • is_done (boolean)
  • id_patient (uuid)
  • Foreign key (id_patient) references Patient (id)

Table Post

  • id (uuid, primary key)
  • content (text)
  • creation_date (timestamp not null)
  • id_patient (uuid)
  • is_main (boolean not null)
  • id_post (uuid)
  • Foreign key (id_post) references Post (id)
  • Foreign key (id_patient) references Patient (id)

Table Vote

  • id (uuid, primary key)
  • is_like (boolean not null)
  • id_post (uuid not null)
  • id_patient (uuid)
  • Foreign key (id_patient) references Patient (id)
  • Foreign key (id_post) references Post (id)

PostgreSQL

O PostgreSQL, frequentemente chamado de Postgres, é um sistema de gerenciamento de banco de dados relacional de código aberto amplamente respeitado e utilizado em todo o mundo. Ele se destaca por sua flexibilidade, confiabilidade e capacidade de lidar com uma ampla gama de cargas de trabalho de bancos de dados.

Uma das características distintivas do PostgreSQL é sua extensibilidade. Ele permite que os desenvolvedores estendam suas capacidades incorporando novos tipos de dados, funções e operadores personalizados diretamente no banco de dados. Isso significa que você pode adaptar o PostgreSQL para atender às necessidades específicas do seu projeto, tornando-o adequado para uma variedade de cenários de aplicativos.

Clone repository
  • arquitetura
  • banco_dados
  • codigo
  • configuracao
  • design_mockups
  • escopo
  • Home
  • processo
  • qualidade
  • utilizacao