https://github.com/manumarcos/clinica-backend
Backend de gestión para una clínica desarrollado con Spring Boot. Incluye autenticación con JWT, gestión de usuarios y turnos, y documentación con Swagger.
https://github.com/manumarcos/clinica-backend
backend-api spring spring-boot spring-data-jpa spring-security-jwt
Last synced: 2 months ago
JSON representation
Backend de gestión para una clínica desarrollado con Spring Boot. Incluye autenticación con JWT, gestión de usuarios y turnos, y documentación con Swagger.
- Host: GitHub
- URL: https://github.com/manumarcos/clinica-backend
- Owner: ManuMarcos
- Created: 2025-01-27T21:38:44.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-03-02T23:02:06.000Z (over 1 year ago)
- Last Synced: 2025-03-30T05:12:17.321Z (about 1 year ago)
- Topics: backend-api, spring, spring-boot, spring-data-jpa, spring-security-jwt
- Language: Java
- Homepage:
- Size: 7.21 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Clínica Médica - Gestión de Consultas, Pacientes, Médicos, Servicios y Facturaciones
# Spring Boot Application
Este repositorio contiene una aplicación desarrollada con **Spring Boot**. A continuación, se detallan las instrucciones para ejecutar la aplicación en tu entorno local.
## Requisitos previos
Asegúrate de tener instalado lo siguiente antes de ejecutar la aplicación:
- **JDK 11 o superior**
- **Maven**
## Clonar el repositorio
Ejecuta el siguiente comando para clonar el repositorio:
```bash
git clone https://github.com/ManuMarcos/clinica-backend.git
cd clinica-backend
```
## Construcción y ejecución
Para compilar y ejecutar la aplicación, usa los siguientes comandos:
```bash
mvn clean install
mvn spring-boot:run
```
## Documentación de la API
La documentación de la API generada con **Swagger** está disponible en:
```
http://localhost:8080/swagger-ui/index.html#/
```
## Consigna
Una clínica médica necesita desarrollar una aplicación web para gestionar las consultas, pacientes, médicos, servicios y facturaciones. Un analista funcional llevó a cabo un relevamiento detallado de las acciones y aspectos a tener en cuenta para el desarrollo del sistema.
## Servicios Médicos
La clínica ofrece diversos servicios médicos, tales como:
- Consultas generales
- Consultas especializadas (cardiología, dermatología, pediatría, etc.)
- Exámenes médicos (análisis de sangre, radiografías, ecografías, etc.)
- Cirugías
- Terapias y tratamientos varios
### Datos de cada servicio:
- `codigo_servicio`
- `nombre`
- `descripcion`
- `precio`
## Paquete de Servicios
Un paquete de servicios es una combinación de diferentes servicios médicos ofrecidos a un precio con descuento. Por ejemplo, un paquete puede incluir una consulta general y un examen de sangre.
### Datos de cada paquete de servicios:
- `codigo_paquete`
- `lista_servicios_incluidos`
- `precio_paquete`
El precio del paquete se calcula como la suma de los precios de los servicios que lo componen, con un descuento de 15% por ser un paquete.
Ejemplo:
Si la consulta general cuesta $2,000 y el examen de sangre $500, la sumatoria es $2,500, y el precio del paquete sería $2,500 - 15% = **$2,125**.
Además, se debe hacer un **descuento adicional de 20%** a aquellos pacientes que cuenten con Obra Social/Seguro Médico.
## Pacientes
El sistema debe permitir registrar nuevos pacientes. Para cada paciente se requiere la siguiente información:
- `id_paciente`
- `nombre`
- `apellido`
- `dni`
- `fecha_nac`
- `email`
- `telefono`
- `direccion`
## Médicos
El sistema debe permitir registrar médicos de la clínica. Cada médico debe contar con los mismos datos que un paciente, añadiendo:
- `especialidad médica`
- `turnos disponibles`
- `sueldo`
## Consultas/Citas Médicas
El sistema debe permitir registrar las consultas médicas, que pueden ser de diversos tipos (generales o especializadas). Cada consulta tendrá los siguientes datos:
- `id_consulta`
- `fecha_consulta`
- `hora_consulta`
- `un_paciente`
- `un_medico`
- `un_servicio` o `un_paquete` (el servicio o paquete contratado)
- `monto_total`
- `pagado` (Sí/No)
## ABML (Altas, bajas, modificaciones y lecturas necesarias)
El sistema debe ser capaz de realizar las operaciones ABML de los diferentes servicios, paquetes, pacientes, médicos y consultas. Para cada uno de ellos, se debe poder realizar:
- Alta
- Baja
- Modificación
- Consulta
## Entregables
1. Diagrama de clases del modelo de datos (UML).
2. Repositorios de GitHub (Frontend y Backend).
3. Especificación de configuraciones de base de datos.
4. Aplicación desplegada y en funcionamiento.
5. Documento de supuestos realizados por el analista/programador.
## Se Valorará
- Diseño atractivo y funcional.
- Visualización eficiente de los datos.
- Uso de buenas prácticas en el desarrollo.
## Bonus Point
El director de la clínica desea conocer las ganancias diarias y mensuales generadas por cada tipo de consulta o servicio. Se otorgarán puntos extra si el sistema permite:
- Calcular las ganancias de manera eficiente.
- Manejar alguna forma de registro de pagos, facturaciones y medios de pago.
Aún más puntos serán otorgados si el sistema permite la generación de recibos/facturas en formato PDF.