Skip to content

Bi Queries

Celeste edited this page Oct 20, 2023 · 7 revisions

Dentro de este repositorio se encuentra el proyecto de bi-queries.

Configuración

Para configurar y ejecutar el micro-servicio seguir los pasos de: README.md bi-queries

NOTA: La variable de entorno utilizada (MONGO_HOST) la podemos configurar en el archivo index.ts. Por ejemplo, para la base local agregamos:

const MONGO_HOST = process.env.MONGO_HOST || 'mongodb://localhost:27017/andes?authSource=admin';

Estructura de las queries

Una query tiene el siguiente formato:

{
   "_id" : "5e7d2fb18fe0e0cde9ed6044",
   "nombre" : "nombre-query",
   "coleccion" : "nombre_coleccion-bd",
   "query" : [
       {
    "!match" : {
               "paciente.id" : "#paciente"
               }
       },
       {
           "!project" : {
               "paciente_nombre" : "$paciente.nombre",
               "paciente_apellido" : "$paciente.apellido",
               "paciente_documento" : "$paciente.documento"
           }
       }
   ],
   "argumentos" : [
       {
           "key" : "paciente",
           "tipo" : "string",
           "required" : true,
       }
   ],
   "mapping" : []
} 

La query tiene que ser un aggregate, pero por una limitación de mongo los operadores del pipeline deben ser guardados con ! y no con el signo $.

Puede recibir argumentos, e insertarlos en el aggregate. Por ejemplo:

"argumentos" : [ 
               {
                 "key" : "desde",
        	"label" : "Desde",
        	"tipo" : "date",
        	"required" : true 
               },
    	       {
                 "key" : "hasta",
        	"label" : "Hasta",
        	"tipo" : "date",
	        "required" : true 
               }
]

Las key “desde” y “hasta” luego son reemplazadas en el pipeline en cada una de sus ocurrencias que aparecen antecedidas por el prefijo “#”.

Las queries también se pueden usar para exportar los datos que se obtienen a otra base. Se debe sumar una propiedad más llamada export, con las credenciales para conectarse a la base a la que se va a exportar, la tabla destino y el adapter. Por ejemplo:

{   
"export" : {
       "adapter" : "sql-server",
       "table" : "checkouts",
       "deleteColumnKey" : "_id",
       "config" : {
           "user" : "user-db",
           "password" : "password",
           "server" : "184.16.1.121",
           "database" : "Andes"
       }
}

RUTAS:

Todas las rutas disponibles se encuentran en index.ts. Ejemplo de ruta para ejecutar una consulta, que se encuentra en la colección de queries.

  • Desde MS: localhost:3000/queries/:id/csv:

  • Desde api de Andes: La API funciona como "proxy" entre al microservicio y redirecciona cada petición agregando “bi” a la ruta del microservicio. Si la api corre en localhost, con puerto 3002. GET a localhost:3002/api/bi/csv.

Reemplazando :id por el nombre de la query a utilizar.

Clone this wiki locally