Skip to content

API REST para manejo de pacientes, doctores y sus respectivas citas

Notifications You must be signed in to change notification settings

SparkleCow/Cowsalud-EPS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CowSalud EPS (API REST) 😷

DESARROLLO WEB BACK END
Unidad 15
Docente: Norbey Danilo Muñoz

Autor: Jonathan David Ramos Gallego

Hola a todos, bienvenidos a CowSalud EPS. (API REST para manejo de pacientes, doctores y sus respectivas citas)

¿Qué tecnologías se emplearon en el proyecto? 🤖

  • Java 17
  • Spring y SpringBoot
  • Spring Security Y JWT
  • JPA e Hibernate
  • SpringBoot Actuator
  • Lombok
  • MySQL
  • Visual Studio Code e IntelliJ
  • Postman

Instalación:

Para ejecutar el API, debes asegurarte previamente de tener maven en tu sistema.

  1. Descarga el proyecto: Clona el repositorio con git clone https://github.com/SparkleCow/Cowsalud-EPS.git o descarga el repositorio en formato .rar para poder manipularlo.
  2. Configurar el proyecto: Configura las variables de entorno y gestiona el proyecto a través del archivo application.properties, aqui deberas especificar tu base de datos y tus datos para un optimo arranque del servidor.
  3. Instalar las dependencias del proyecto: Instala todas las dependencias que se encuentran en el archivo pom.xml con ayuda de maven.
  4. Crea la base de datos: Crea una base de datos para poder implementar en el proyecto. Asegurate de agregar su información en el archivo application.properties
  5. Iniciar el proyecto: Ejecuta el proyecto desde la clase CowSaludEpsApplication.

Modelos de datos:

Las entidades "Patient" (Paciente) y "Doctor" tienen un estatus equivalente a si se encuentran activos o fueron desvinculados de la EPS. Por otro lado, ambas entidades emplean un codificador para guardar y asegurar la integridad de las contraseñas. Tambien, ambas entidades implementan la interfaz de UserDetails para poder emplearlas en el contexto de seguridad de Spring y de igual forma, fueron generadas con ayuda de la libreria de Lombok.

  1. Pacientes

image

Esta entidad representa a los pacientes de la EPS, sin embargo se emplearon distintos DTO con el fin de obtener y mostrar información concreta a la hora de gestionar la información. Se creo un DTO para mostrar la información sin datos sensibles como lo es la contraseña, de igual forma se creó un DTO para recibir la información de un nuevo paciente para que de esta manera no se pueda setear sus roles o estatus y finalmente se empleo un DTO para la actualización de datos sin otorgar la oportunidad a algún paciente de agregar o cambiar información sensible. Otro punto esencial a tener en cuenta es que desde el API se gestiona la creación de los pacientes y se les da como valor predeterminado un rol del tipo "PATIENT"

  1. Doctores

image

La entidad de que representa a los doctores (Doctor) tiene un tratamiento similar al de los pacientes, sin embargo, a diferencia de los pacientes, los doctores tienen una lista de roles que pueden contener el rol "DOCTOR", "CHIEF_DOCTOR" o ambos, esto con el fin de dar permisos a información y endpoints cruciales en la logica de negocio.

  1. Citas

image

La entidad de citas contiene un Id compuesto con el cual mapea a las entidades de doctor y paciente que hacen parte de su relación (ManyToOne). Tambien tiene un DTO para dar respuestas a las solicitudes sin dejar entrever información sensible de los doctores ni pacientes.

image

Pruebas Postman

Logueo

(No requiere ninguna autorización ni autenticación)

Contraseña errada

image

Logueo

image

Paciente

Crear paciente (No requiere ninguna autorización ni autenticación)

image

Encontrar paciente por ID (Requiere rol de doctor, doctor jefe o paciente)

image

Encontrar pacientes (Requiere rol de doctor o doctor jefe)

image

Encontrar pacientes activos (Requiere rol de doctor o doctor jefe)

image

Encontrar paciente por Email (Requiere rol de doctor, doctor jefe o paciente)

image

Borrar paciente (Requiere rol de doctor jefe. Se realiza un borrado lógico a través del atributo "status" cambiandolo de 1 a 0)

image

Actualizar paciente (Requiere rol de doctor jefe)

image

Doctor

Registar un nuevo doctor (Requiere rol de doctor jefe)

image

Registar un nuevo doctor jefe (Requiere rol de doctor jefe)

image

Obtener todos los doctores (Requiere rol de doctor jefe)

image

Obtener todos los doctores activos (Requiere rol de doctor o doctor jefe)

image

Obtener un doctor por su ID (Requiere rol de doctor o doctor jefe)

image

Obtener un doctor por su Email (Requiere rol de doctor o doctor jefe)

image

Obtener doctores por especialidad (Requiere rol de doctor, doctor jefe o paciente)
image

Actualizar un doctor por su ID (Requiere rol de doctor jefe)

image

Eliminar un doctor por su ID (Requiere rol de doctor jefe. Se realiza un borrado lógico a través del atributo "status" cambiandolo de 1 a 0)

image

Citas

Encontrar citas por medio del ID del paciente (Requiere rol de doctor, doctor jefe o paciente)

image

Encontrar citas por medio del ID del doctor(Requiere rol de doctor o doctor jefe)

image

Encontrar todas las citas (Requiere rol doctor jefe)

image

Borrar cita por medio de su ID (Requiere rol doctor jefe)

image