cancertracker/backend/bbdd/schema.mmd

127 lines
2.7 KiB
Plaintext

erDiagram
USUARIO {
bigint id PK
varchar nombre
varchar apellido1
varchar apellido2
varchar email
varchar password_hash
varchar telefono
datetime fecha_registro
varchar rol
}
PACIENTE {
bigint id PK
bigint usuario_id FK
date fecha_nacimiento
varchar genero
varchar tipo_cancer
text observaciones
}
MEDICO {
bigint id PK
bigint usuario_id FK
varchar numero_colegiado
varchar especialidad
varchar hospital
}
CITA {
bigint id PK
bigint paciente_id FK
bigint medico_id FK
datetime fecha_hora
varchar tipo
text notas
varchar estado
}
SINTOMA {
bigint id PK
bigint paciente_id FK
datetime fecha
varchar nombre
int severidad
text descripcion
}
TRATAMIENTO {
bigint id PK
bigint paciente_id FK
varchar nombre
varchar tipo
date fecha_inicio
date fecha_fin
text descripcion
}
MEDICINA {
bigint id PK
varchar nombre
varchar descripcion
}
MEDICACION {
bigint id PK
bigint tratamiento_id FK
bigint medicina_id FK
bigint medico_id FK
varchar dosis
varchar frecuencia
datetime fecha_inicio
datetime fecha_fin
text observaciones
}
HISTORIAL_CLINICO {
bigint id PK
bigint paciente_id FK
datetime fecha
varchar tipo
text descripcion
}
RESUMEN_COMPARTIDO {
bigint id PK
bigint paciente_id FK
bigint medico_id FK
datetime fecha_creacion
varchar formato
text contenido
varchar estado
}
ARCHIVO {
bigint id PK
bigint paciente_id FK
varchar nombre
varchar tipo
text ruta
datetime fecha_subida
}
NOTIFICACION {
bigint id PK
bigint usuario_id FK
varchar tipo
text mensaje
boolean leida
datetime fecha_creacion
}
USUARIO ||--o{ PACIENTE : "es"
USUARIO ||--o{ MEDICO : "es"
PACIENTE ||--o{ CITA : "tiene"
MEDICO ||--o{ CITA : "atiende"
PACIENTE ||--o{ SINTOMA : "registra"
PACIENTE ||--o{ TRATAMIENTO : "realiza"
TRATAMIENTO ||--o{ MEDICACION : "incluye"
MEDICINA ||--o{ MEDICACION : "aparece_en"
MEDICO ||--o{ MEDICACION : "receta"
PACIENTE ||--o{ HISTORIAL_CLINICO : "tiene"
PACIENTE ||--o{ RESUMEN_COMPARTIDO : "genera"
MEDICO ||--o{ RESUMEN_COMPARTIDO : "recibe"
PACIENTE ||--o{ ARCHIVO : "sube"
USUARIO ||--o{ NOTIFICACION : "recibe"