diegovivas / Hospital_API_Rest

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

API_REST Hospitales

Descripcion

Servicio web (API REST), que sirve de endpoints para un sistema de gestion de historia clinica centralizada, utilizando Phyton con Flask, y PostgreSQL como motor de la base de datos.

Como instalar

  • Base de datos:

    • /modelos/engine/dbstorage.py
    • configurar el metodo __init__ en la linea self.__engine = db.create_engine('postgresql://usuario:password@localhost/API_REST_HOSPITAL'), poner su usuario y password de Postgres.
  • Dependencias:

    • requirements.txt
    • Para instalar todos los paquetes de python necesarios para correr la api, recomiendo crear un entorno virtual python3 -m venv nombredelentorno y puego source /nombredelentorno/bin/activate
    • luego dentro del entorno ejecutar pip install -r requirements.txt
    • variables de entorno: para poder enviar los correos de confirmacion, es necesario ajustar las variables de entorno con mail=correoqueenvia y password=passworddelcorreo

modulos y archivos

  • /modelos: En este paquete se encuentran declaradas todas las clases usadas en la api.
  • /modelos/engine: Aqui se encuentra el modulo dbstorage.py encargado de conectarse con la base de datos y gestionar todos los objetos en ella.
  • /api/v1: Se encuentra el modulo app.py en el que se inicia la API, y se conecta con todas las Blueprints y metodos de la API.

Ejecutar

  • En Linux Desde la carpeta root del proyecto ejecutar python3 -m api.v1.app

Metodos

  • Registar Usuarios: de entrada la API permite registrar dos tipos de usuario hospital y paciente, ademas crea un link para autenticar el registro por medio del correo.

  • Registrar Paciente:

POST /api/v1/register 

Recibe los siguientes parametros:

{
"usuario" : "paciente",
"formulario" : {
		  "nombre": string,
 	  "id": string,
 	  "password": string,
 	  "correo": string,
 	  "telefono": string,
 	  "direccion": string,
 	  "fecha_nacimiento": string
		  }
}
  • Registrar Hospital:
POST /api/v1/register 

Recibe los siguientes parametros:

{
"usuario" : "hospital",
"formulario" : {
		  "nombre": string,
 	  "id": string,
 	  "password": string,
 	  "correo": string,
 	  "telefono": string,
 	  "direccion": string,
		  },
"servicios" : ["string", "string", ...]   	          		  
}
  • Login Usuarios: para hacer login es necesario haberse verificado con el correo.
POST /api/v1/login 

Recibe los siguientes parametros:

{
"id" : string,
"password" : string, 
}

Retorna un token para el acceso al sistema.

{"id" : "token"}
  • Reiniciar password: crea un link para reiniciar el password con el correo.
POST /api/v1/reset_password

Recibe los siguientes parametros:

{
 "correo": string,
}

Metodos con uso del tokem o con usuario autenticado

Cada que un usuario hace login y este es exitoso la api retorna un token que se debe enviar en los headers como: "Authorization: Bearer token" todos los metodos que siguen acontinuacion utilizan este token para funcionar.

  • Registrar medicos: Solo los usuarios de tipo Hospital pueden registrar un nuevo medico.
POST /api/v1/registrar_medico 

Recibe los siguientes parametros:

{
"usuario" : "paciente",
"formulario" : {
		  "nombre": string,
 	  "id": string,
 	  "password": string,
 	  "correo": string,
 	  "telefono": string,
 	  "direccion": string,
 	  "especialidad": string
		  }
}
  • Registrar Observacion: Solo los usuarios de tipo Medico pueden registrar una observacion de sus pacientes.
PUT /api/v1/registrar_observacion 

Recibe los siguientes parametros:

{
"formulario" : {
		  "paciente_id": string,
 	  "registro": string,
 	  }
}
  • Consultar registros: Un usuario de tipo Paciente puede consultar solo sus registros, uno de tipo Medico solo puede consultar los registros realizados por el mismo y un usuario de tipo Hospital solo puede consultar los registros realizados por sus medicos.
GET /api/v1/consultar

Retorna un diccionario de tipo JSON con los registros.

  • Descargar registros: Un usuario de tipo medico puede descargar todas las observaciones registradas a un paciente en formato csv.
GET /descargar_consulta/<paciente_id>

retorna un archivo en formato csv.

  • Cambiar password:
POST /api/v1/change_password

Recibe los siguientes parametros:

{
 "old_password": string,
 "new_passwor": string,
}

Status Codigos

La API retorna los siguientes codigos de status:

Status Codigo Description
200 OK
201 CREATED
401 BAD REQUEST
404 NOT FOUND
500 INTERNAL SERVER ERROR

Autor

About


Languages

Language:Python 100.0%