Diagramas do projeto
Diagrama do Entidade e Relacionamentos (DER)
classDiagram
class operadores {
+id: Integer
+nome: String(50) not null
+login: String(50) not null
+password: String(50) not null
+telefone: String(20)
}
class hospitais {
+id: Integer
+nome: String(50)
+telefone: String(20)
}
class status_da_agenda_ou_consulta {
+id: Integer
+nome: String(20)
}
class medicos {
+id: Integer
+id_operadores: Integer
+nome: String(50)
+telefone: String(25)
+telefone_da_secretaria: String(25)
+login: String(50)
+senha: String(20)
}
class servico_de_agendas {
+id: Integer
+id_operador: Integer
+nome: String(100)
+login: String(50)
+senha: String(50)
}
class convenios {
+id: Integer
+id_medico: Integer
+nome: String(50)
+login: String(50)
+senha: String(50)
}
class clientes {
+id: Integer
+nome: String(50) not null
+telefone_whatsApp: String(25)
+e_mail: String(50)
+login: String(50) not null
+senha: String(20) not null
+id_convenio: Integer
+dataTime_disponivel: Date
+matricula_no_convenio: String(50)
}
class integracao {
+id: Integer
+endereco_do_site: String(255) not null
+login: String(50) not null
+senha: String(20) not null
+status: Boolean not null
}
class expediente_do_medico_data {
+id_medico: Integer not null
+data: Date not null
+hora_inicial: timestamp not null
+hora_final: timestamp not null
}
class agenda {
+id: Integer
+id_Medico: Integer not null
+id_Cliente: Integer not null
+data: timestamp not null
+hora: timestamp not null
+data_confirmacao: timestamp not null
+id_convenio: Integer
+id_status_da_agenda_ou_consulta: Integer not null
+id_formas_de_pagamento: Integer
+dataTime_criacao: timestamp not null
+observacoes: String(255)
}
class formas_de_pagamento {
+id: Integer
+Nome: String(30) not null
}
class consulta {
+id: Integer
+id_agenda: Integer
+id_cliente: Integer not null
+id_medico: Integer not null
+dataTime: timestamp not null
+id_convenio: Integer
+id_forma_de_pagamento: Integer
+id_status_da_agenda_ou_consulta: Integer not null
+Observacao: String(255)
}
operadores "1" -- "1..n" medicos : id_operadores
medicos "0" -- "1..n" convenios : id_medico
clientes "1" -- "0..n" convenios : id_convenio
clientes "1" -- "1..n" agenda : id_Cliente
medicos "1" -- "0..n" expediente_do_medico_data : id_medico
expediente_do_medico_data "1" -- "1..n" medicos : id_medico
agenda "1" -- "0..1" convenios : id_convenio
agenda "1" -- "0..1" formas_de_pagamento : id_formas_de_pagamento
agenda "1" -- "1..n" status_da_agenda_ou_consulta : id_status_da_agenda_ou_consulta
consulta "1" -- "0..1" convenios : id_convenio
consulta "1" -- "0..1" formas_de_pagamento : id_forma_de_pagamento
consulta "1" -- "1..n" status_da_agenda_ou_consulta : id_status_da_agenda_ou_consulta
medicos "1" -- "1..n" agenda : id_Medico
- Explicação do diagrama
-
O diagrama de entidade de relacionamento (DER) mostra as relações entre as entidades de um sistema. No caso deste diagrama, as entidades são:
- Operador
- Hospital
- Status_da_agenda_ou_consulta
- Medico
- ServiçoDeAgendas
- Convenio
- Cliente
- Integração
- ExpedienteDoMedicoData
- Agenda
- FormasDePagamento
- Consulta
-
A simbologia usada para indicar os relacionamentos são:
-
1 : Indica o lado do relacionamento que só pode conter uma ocorrência.
-
1..1 : Indica que o identificador de ambas a tabelas devem ser iguais;
- Exemplo:
- Código da agenda.idCliente é obrigatório ser igual a cliente.id.
- Exemplo:
-
1..n : Indica que pelo menos um (1) identificador de uma das tabelas devem ser igual o identificador da outra;
- Exemplo:
- O identificador agenda.idNaturezaDaInteracao é obrigatório ser igual ao identificador NaturezaDaInteracao.id e NaturezaDaInteracao.id pode existir mais de uma ocorrência na agenda.
- Exemplo:
-
0..n : Indica que o relacionamento entre as tabelas é opcional e que pode haver mais de referência de uma tabela na outra;
- Exemplo:
- O identificador Consulta.idAgenda é opcional ser igual ao identificador Agenda.id porque o médico pode atender um paciente sem que o mesmo tenha sido agendado.
- Exemplo:
-
-
Diagrama do projeto que deu origem ao gráfico acima
classDiagram
class operadores {
+id: Integer
+nome: String(50) not null
+login: String(50) not null
+password: String(50) not null
+telefone: String(20)
}
class hospitais {
+id: Integer
+nome: String(50)
+telefone: String(20)
}
class status_da_agenda_ou_consulta {
+id: Integer
+nome: String(20)
}
class medicos {
+id: Integer
+id_operadores: Integer
+nome: String(50)
+telefone: String(25)
+telefone_da_secretaria: String(25)
+login: String(50)
+senha: String(20)
}
class servico_de_agendas {
+id: Integer
+id_operador: Integer
+nome: String(100)
+login: String(50)
+senha: String(50)
}
class convenios {
+id: Integer
+id_medico: Integer
+nome: String(50)
+login: String(50)
+senha: String(50)
}
class clientes {
+id: Integer
+nome: String(50) not null
+telefone_whatsApp: String(25)
+e_mail: String(50)
+login: String(50) not null
+senha: String(20) not null
+id_convenio: Integer
+dataTime_disponivel: Date
+matricula_no_convenio: String(50)
}
class integracao {
+id: Integer
+endereco_do_site: String(255) not null
+login: String(50) not null
+senha: String(20) not null
+status: Boolean not null
}
class expediente_do_medico_data {
+id_medico: Integer not null
+data: Date not null
+hora_inicial: timestamp not null
+hora_final: timestamp not null
}
class agenda {
+id: Integer
+id_Medico: Integer not null
+id_Cliente: Integer not null
+data: timestamp not null
+hora: timestamp not null
+data_confirmacao: timestamp not null
+id_convenio: Integer
+id_status_da_agenda_ou_consulta: Integer not null
+id_formas_de_pagamento: Integer
+dataTime_criacao: timestamp not null
+observacoes: String(255)
}
class formas_de_pagamento {
+id: Integer
+Nome: String(30) not null
}
class consulta {
+id: Integer
+id_agenda: Integer
+id_cliente: Integer not null
+id_medico: Integer not null
+dataTime: timestamp not null
+id_convenio: Integer
+id_forma_de_pagamento: Integer
+id_status_da_agenda_ou_consulta: Integer not null
+Observacao: String(255)
}
class dm_xtable {
+id:integer
+nome String(50)
+endereco String(255)
+cnpj String(18)
+cpf String(14)
+cep String(10)
+valor_SMALLINT SMALLINT
+valor_Integer Integer
+valor_FLOAT8 DOUBLE
+dd_mm_yy date
+dd_mm_yyyy date
+dd_mm_yy_hh_nn timeStamp
+dd_mm_yy_hh_nn_ss timeStamp
+dd_mm_yyyy_hh_nn timeStamp
+dd_mm_yyyy_hh_nn_ss timeStamp
+hh_nn time
+hh_nn_ss time
+sexo string(15)
+EstadoCivil string(15)
+Status string(5)
}
);
operadores "1" -- "1..n" medicos : id_operadores
medicos "0" -- "1..n" convenios : id_medico
clientes "1" -- "0..n" convenios : id_convenio
clientes "1" -- "1..n" agenda : id_Cliente
medicos "1" -- "1..n" expediente_do_medico_data : id_medico
expediente_do_medico_data "1" -- "1..n" expediente_do_medico_horas : id_expediente_do_medico_data
agenda "1" -- "0..1" convenios : id_convenio
agenda "1" -- "0..1" formas_de_pagamento : id_formas_de_pagamento
agenda "1" -- "1..n" status_da_agenda_ou_consulta : id_status_da_agenda_ou_consulta
consulta "1" -- "0..1" convenios : id_convenio
consulta "1" -- "0..1" formas_de_pagamento : id_forma_de_pagamento
consulta "1" -- "1..n" status_da_agenda_ou_consulta : id_status_da_agenda_ou_consulta
medicos "1" -- "1..n" agenda : id_Medico