128 lines
4.0 KiB
Markdown
128 lines
4.0 KiB
Markdown
# CancerCare
|
|
|
|
## Descripción
|
|
CancerCare es una aplicación web diseñada para ayudar a personas diagnosticadas con cáncer a controlar su evolución durante el tratamiento, llevar un seguimiento de sus síntomas, citas médicas, medicación y evolución general.
|
|
|
|
La plataforma permite a cada usuario gestionar su información de forma segura y compartir resúmenes relevantes con su médico, facilitando la comunicación entre paciente y profesional sanitario.
|
|
|
|
## Objetivo
|
|
Proporcionar una herramienta digital para:
|
|
- registrar y controlar síntomas
|
|
- gestionar citas médicas
|
|
- mantener un seguimiento de tratamientos
|
|
- mantener un historial de evolución
|
|
- compartir información resumida con el médico
|
|
- mejorar la organización y la comunicación entre paciente y profesionales
|
|
|
|
## Usuarios
|
|
La aplicación estará pensada para distintos tipos de usuarios:
|
|
|
|
- Paciente
|
|
- Médico
|
|
- Administrador
|
|
|
|
## Funcionalidades principales
|
|
|
|
### Paciente
|
|
- Registro e inicio de sesión
|
|
- Edición de perfil personal
|
|
- Registro de síntomas
|
|
- Registro de citas y revisiones
|
|
- Seguimiento de tratamientos y medicación
|
|
- Historial clínico básico
|
|
- Exportación de resúmenes en PDF
|
|
- Envío de información a su médico
|
|
- Recordatorios y alertas
|
|
|
|
### Médico (para más adelante)
|
|
- Registro e inicio de sesión
|
|
- Asociación con pacientes
|
|
- Visualización del historial del paciente
|
|
- Consulta de síntomas y evolución
|
|
- Recepción de resúmenes compartidos
|
|
- Gestión de seguimiento clínico
|
|
|
|
### Administrador
|
|
- Gestión de usuarios
|
|
- Control de permisos
|
|
- Supervisión de la plataforma
|
|
- Administración de roles
|
|
|
|
## Tecnologías previstas
|
|
La aplicación se desarrollará como una solución web, accesible desde ordenador, tablet y móvil.
|
|
|
|
### Frontend
|
|
- HTML
|
|
- CSS
|
|
- JavaScript
|
|
- Bootstrap
|
|
|
|
### Backend
|
|
- Java
|
|
- Spring Boot
|
|
|
|
### Seguridad
|
|
- Spring Security
|
|
- Autenticación por usuario y contraseña
|
|
- Roles y permisos por tipo de usuario
|
|
|
|
### Base de datos
|
|
- MySQL
|
|
|
|
## Arquitectura recomendada
|
|
- Frontend responsivo con Bootstrap
|
|
- Backend en Spring Boot
|
|
- API REST
|
|
- Persistencia con MySQL
|
|
- Seguridad con Spring Security
|
|
- Autenticación basada en usuarios y roles
|
|
|
|
## Modelo de datos previsto
|
|
La aplicación gestionará información sobre:
|
|
- usuarios
|
|
- pacientes
|
|
- médicos
|
|
- citas
|
|
- síntomas
|
|
- tratamientos
|
|
- medicación
|
|
- historial médico
|
|
- documentos o resúmenes compartidos
|
|
|
|
## Casos de uso
|
|
- Un paciente registra sus síntomas diarios.
|
|
- El sistema guarda la información en la base de datos.
|
|
- El paciente añade una cita con su médico.
|
|
- El médico accede al resumen de evolución del paciente.
|
|
- El paciente exporta un informe en PDF y lo comparte con su profesional sanitario.
|
|
|
|
## Importancia del proyecto
|
|
Este proyecto tiene un valor real para personas que necesitan un seguimiento constante de su salud durante el tratamiento, y además ayuda a los profesionales médicos a tener acceso más rápido a información útil y organizada.
|
|
|
|
## Fase inicial (MVP)
|
|
Se propone desarrollar una primera versión con estas funcionalidades:
|
|
1. Registro e inicio de sesión
|
|
2. Gestión de perfil
|
|
3. Registro de síntomas
|
|
4. Registro de citas
|
|
5. Historial de evolución
|
|
6. Exportación de resumen para compartir con el médico
|
|
|
|
## Estado del proyecto
|
|
Proyecto en fase de diseño e ideación inicial.
|
|
|
|
## Entorno local con Docker
|
|
|
|
Docker Compose levanta MySQL 8.4 y conserva los datos en un volumen entre reinicios:
|
|
|
|
```bash
|
|
docker compose up -d
|
|
```
|
|
|
|
La base de datos queda disponible en `localhost:3306`, con el nombre `cancercare`. Para detener el servicio:
|
|
|
|
```bash
|
|
docker compose down
|
|
```
|
|
|
|
Los valores de conexión predeterminados son solo para desarrollo local y se pueden sustituir con variables de entorno o un archivo `.env`. `schema.sql` crea las tablas automáticamente la primera vez que MySQL inicializa el volumen; `schema.mmd` contiene el diagrama entidad-relación. Si ya existe un volumen de datos, MySQL no vuelve a ejecutar los scripts de inicialización. El backend y el frontend todavía no están implementados, así que por ahora solo se ejecuta la base de datos. |